From e0e797c27d4eff3fbca2a182aee2700f20ed6c21 Mon Sep 17 00:00:00 2001 From: Liam Murphy Date: Tue, 18 Jul 2023 00:08:19 +1000 Subject: [PATCH] Classify `dots.c`, `dots.down`, `dots.up` and `dots.v` as normal (#1726) Fixes #713. They were previously classified by Unicode as relations, which caused a '+' sign after one of them to be treated as a unary operator rather than a binary operator. This PR overrides the Unicode classification and classifies them as normal instead, which causes a '+' sign after one of them to be properly treated as a binary operator. --- crates/typst-library/src/math/fragment.rs | 1 + tests/ref/math/spacing.png | Bin 18271 -> 17881 bytes tests/typ/math/spacing.typ | 3 ++- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/crates/typst-library/src/math/fragment.rs b/crates/typst-library/src/math/fragment.rs index 1a90eaadd..85fdf6a61 100644 --- a/crates/typst-library/src/math/fragment.rs +++ b/crates/typst-library/src/math/fragment.rs @@ -216,6 +216,7 @@ impl GlyphFragment { pub fn with_id(ctx: &MathContext, c: char, id: GlyphId, span: Span) -> Self { let class = match c { ':' => Some(MathClass::Relation), + '⋯' | '⋱' | '⋰' | '⋮' => Some(MathClass::Normal), _ => unicode_math_class::class(c), }; let mut fragment = Self { diff --git a/tests/ref/math/spacing.png b/tests/ref/math/spacing.png index abcfae805928acc2cf19d85f878c3e0b3c8755e8..5e717effc94abefba6e09e7b78f044d15e6244fd 100644 GIT binary patch literal 17881 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 z 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 diff --git a/tests/typ/math/spacing.typ b/tests/typ/math/spacing.typ index b763fb2da..132477f7f 100644 --- a/tests/typ/math/spacing.typ +++ b/tests/typ/math/spacing.typ @@ -11,7 +11,8 @@ $a not b$ \ $a+b, a*b$ \ $sum x, sum(x)$ \ $sum product x$ \ -$f(x), zeta(x), "frac"(x)$ +$f(x), zeta(x), "frac"(x)$ \ +$a+dots.c+b$ --- // Test ignored vs non-ignored spaces.