MJ4: \mskip\thickmuskip yields typesetting error
Issue Summary
\mskip\thickmuskip yields Missing dimension or its units for \mskip in math mode with MJ4, but shouldn't.
Of note: \; (shorthand for \mskip\thickmuskip) doesn't yield an error.
Steps to Reproduce:
- Go to https://codepen.io/alexedgcomb/pen/LYveYBK
Observed: Typesetting error
Expected: No typesetting error, like MJ2:
https://codepen.io/alexedgcomb/pen/qBwpByG
Technical details:
- MathJax Version: 4.0.0-beta.4
- Client OS: MacOS 13.4
- Browser: Firefox 124.0.1
I am NOT using a MathJax configuration and loading MathJax via:
<script src="https://cdn.jsdelivr.net/npm/[email protected]/tex-mml-svg.js"></script>
Supporting information:
Issue present in MJ4.0.0-alpha.1: https://codepen.io/alexedgcomb/pen/MWRrWPX
Issue NOT present with \; in beta.4: https://codepen.io/alexedgcomb/pen/yLrpLxK (also not present in alpha.1)
MathJax does not implement dimen registers, count registers, token registers, boxes, or many of the other low-level internals of actual TeX. In particular, the means \thickmuskip and other similar registers, are not implemented. MathJax only processes explicit dimensions for \mskip and other macros that take dimensions.
This was also true in v2. There reason your example "worked" is that v2 had a very simplistic approach to array environment preambles: it completely ignored any characters other than c, l, and r, so your r@{\mskip\thickmuskip}l was reduced to rcl (the 'c' from within the "thick" in \thickmuskip) before being processed. In contrast, v4 implements most of the array preamble options from array.sty, and so actually tries to handle \mskip\thickmuskip, but it looks for an explicit dimension, and can't process \thickmuskip (which is not defined in MathJax in any case).
As you may have guessed, \; is not short for \mskip\thickmuskip in MathJax.
Thank you, @dpvc !