fix(REN-4): use mathematical angle brackets U+27E8/U+27E9 in delimiter table#232
fix(REN-4): use mathematical angle brackets U+27E8/U+27E9 in delimiter table#232kostub wants to merge 2 commits into
Conversation
…r table The delimiter table in +[MTMathAtomFactory delimiters] mapped \langle, \rangle, < and > to the deprecated CJK angle brackets U+2329/U+232A. The symbol (open/close) table already used U+27E8/U+27E9, so the same logical bracket rendered with different glyphs depending on context. All bundled fonts only ship growable variants for uni27E8/uni27E9 — not uni2329/uni232A — meaning \left\langle…\right\rangle could not grow. Change all four delimiter-table entries to U+27E8/U+27E9. Update the two test fixtures that asserted the old code points, and add a regression test that directly encodes the invariant: both paths must produce the same glyph. Round-trip serialization is preserved (</> remain the shortest inverse commands for U+27E8/U+27E9). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
There was a problem hiding this comment.
Code Review
This pull request updates the angle bracket delimiters (<, >, \langle, \rangle) to use the mathematical Unicode characters U+27E8 and U+27E9 instead of the deprecated U+2329 and U+232A characters, and adds a new test to ensure delimiter consistency. The feedback suggests using uppercase hex digits for the Unicode escape sequence in the test file to maintain consistency with the rest of the codebase.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
| @[ @"\\Bigm\\|", @(kMTMathAtomRelation), @(kMTDelimiterSize2), @"\u2016" ], | ||
| @[ @"\\biggm\\Vert", @(kMTMathAtomRelation),@(kMTDelimiterSize3), @"\u2016", @"\\biggm\\|" ], | ||
| @[ @"\\Biggm\\langle", @(kMTMathAtomRelation),@(kMTDelimiterSize4), @"\u2329", @"\\Biggm<" ], | ||
| @[ @"\\Biggm\\langle", @(kMTMathAtomRelation),@(kMTDelimiterSize4), @"\u27e8", @"\\Biggm<" ], |
There was a problem hiding this comment.
|
EM-REVIEW v1 Severity: NON-BLOCKING. No blocking issues found. Independently sanity-checked the diff via SummaryREN-4 fix is correct and complete. The four delimiter-table entries in Verified findings
Minor nit (non-blocking)
No approval, no merge — review comment only. |
Addresses code review nit: line 1719 used a lowercase ⟨ escape while the rest of the file uses uppercase hex. Functionally identical; purely cosmetic. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Summary
Fixes REN-4 from issues.md: the delimiter table in
+[MTMathAtomFactory delimiters]mapped\langle,\rangle,<, and>to the deprecated CJK angle brackets U+2329/U+232A, while the symbol (open/close) table already mapped them to the correct mathematical angle brackets U+27E8/U+27E9. This caused:\langle x \rangleand\left\langle x \right\rangleto render with different glyphs.\left\langle…\right\rangleand all\big*\langleforms to be unable to grow, because all 8 bundled fonts only ship growable vertical variants foruni27E8/uni27E9— notuni2329/uni232A.Changes:
iosMath/lib/MTMathAtomFactory.m: change all four delimiter-table entries (<,>,langle,rangle) from U+2329/U+232A to U+27E8/U+27E9.iosMathTests/MTMathListBuilderTest.m: update two existing fixtures whose expected boundary nuclei were the old (deprecated) code points. Serialization assertions (\left< x\right>,\Biggm<) are unchanged because</>remain the shortest inverse commands for U+27E8/U+27E9.testAngleBracketDelimiterConsistencythat directly encodes the invariant: both the symbol-table path (\langle x \rangle) and the delimiter-table path (\left\langle x \right\rangle,\left< x \right>) must produce U+27E8/U+27E9 nuclei.Test plan
〈/〉vs⟨/⟩).swift buildsucceeds cleanly.\left< x\right>and\Biggm<unchanged.🤖 Generated with Claude Code