diff --git a/math-core/src/latex_parser/parse.rs b/math-core/src/latex_parser/parse.rs index bbcb07a..18ddeff 100644 --- a/math-core/src/latex_parser/parse.rs +++ b/math-core/src/latex_parser/parse.rs @@ -705,7 +705,12 @@ where } else if matches!( self.peek.token(), Token::Relation(_) | Token::Punctuation(_) | Token::Colon - ) { + ) || (prev_state.real_boundaries + && matches!( + self.peek.token(), + Token::Eof | Token::GroupEnd | Token::End | Token::Right + )) + { Some(MathSpacing::Zero) } else { Some(MathSpacing::FiveMu) diff --git a/math-core/src/lib.rs b/math-core/src/lib.rs index 374e518..13b57b6 100644 --- a/math-core/src/lib.rs +++ b/math-core/src/lib.rs @@ -461,6 +461,8 @@ mod tests { ("colon_fusion", r"a := 2 \land b :\equiv 3"), ("double_colon", r"a :: b"), ("colon_first_group", r"x{:x}"), + ("colon_last_group", r"{x:}x"), + ("colon_alone_group", r"x{:}x"), ("colon_approx", r"x:\approx 2"), ("colon_sqrt", r"\sqrt :"), ( diff --git a/math-core/src/snapshots/math_core__tests__colon_alone_group.snap b/math-core/src/snapshots/math_core__tests__colon_alone_group.snap new file mode 100644 index 0000000..459634a --- /dev/null +++ b/math-core/src/snapshots/math_core__tests__colon_alone_group.snap @@ -0,0 +1,9 @@ +--- +source: math-core/src/lib.rs +expression: "x{:}x" +--- + + x + : + x + diff --git a/math-core/src/snapshots/math_core__tests__colon_last_group.snap b/math-core/src/snapshots/math_core__tests__colon_last_group.snap new file mode 100644 index 0000000..90ee815 --- /dev/null +++ b/math-core/src/snapshots/math_core__tests__colon_last_group.snap @@ -0,0 +1,11 @@ +--- +source: math-core/src/lib.rs +expression: "{x:}x" +--- + + + x + : + + x +