Skip to content

v0.2.1

Choose a tag to compare

@moeakwak moeakwak released this 18 Jul 15:26
· 55 commits to main since this release
e205ac7

This release expands the normalization rule set with spacing canonicalization and a batch of alias and macro-expansion rules, so more spacing markup, legacy shorthand, and convenience commands collapse to canonical, universally renderable forms.

Added

  • Spacing normalization rules. Adjacent \quad pairs merge into \qquad and repeated small spacers collapse; MathJax spacing aliases — \thinspace, \negthinspace, \hskip, \mkern, \mskip, \hfil, \hfilll, \space, \nobreakspace, and \gt — map to their canonical spellings while preserving scalar dimensions and documented fidelity boundaries; and pure layout hints (\mathstrut, \strut, and line-break hints) are dropped.
  • Alias and macro-expansion rules that fold convenience and legacy forms into universal output: \ast canonicalizes to the pixel-identical literal *; \dots resolves to \ldots or \cdots from the surrounding atom class, leaving unclassifiable and boundary cases untouched; \impliedby expands to the source-equivalent spaced \Longleftarrow; the Vmatrix environment expands into a matrix wrapped in explicit double-bar fences; and the \bigl/\bigr/\bigm class variants — with their \Big, \bigg, and \Bigg counterparts — collapse to the plain \big-family delimiters.

Fixed

  • Rule metadata is aligned with the published rule proposals, keeping each rule's declared normalization level and fidelity in sync with its documented contract.
  • Rewrite rules that synthesize new commands — the implies, derivative, eval, and multi-integral expansions — now declare every character they emit, drawing on builtin character records so the engine's eliminated-form contract sees their full output.