Rewrite patterns#
\mkern #1\mspace{#1}
Examples#
Each example shows this rule applied in isolation. A complete normalization profile may make additional changes.
mkern between text glyphs#
Rendering verified with the declared packages.
mkern mu length#
Rendering verified with the declared packages.
Text mkern braced space loss#
The rendered result has pixel differences from the input.
Related rules#
Same family#
ams/nobreakspace-to-tildeCollapse nobreakspace to the canonical nonbreaking space token.base/break-to-linebreakCollapse break to the explicit linebreak command.base/newline-to-linebreakCollapse newline to the explicit linebreak command.base/control-space-to-tildeRewrite math-mode control space to the canonical active space token.base/gt-space-to-colon-spaceCollapse \> to the canonical medium math space command \:base/hfil-to-hfillCollapse hfil to the canonical hfill command under MathJax spacing semantics.base/hfilll-to-hfillCollapse hfilll to the canonical hfill command.base/hskip-to-hspaceCollapse hskip to the explicit hspace command.base/negthinspace-to-neg-comma-spaceCollapse negthinspace to the explicit negative thin math space command.base/space-to-tildeCollapse space to the explicit nonbreaking space token.base/thinspace-to-comma-spaceCollapse thinspace to the explicit thin math space command.base/double-enspace-to-quadRewrite two adjacent enspaces to one exact-width quad.base/double-quad-to-qquadMerge two adjacent quads into one qquad for authoring normalization.base/small-spacer-merge-to-enspaceMerge exact half-em small-spacer chunks into enspace in one pass.base/allowbreak-dropDrop allowbreak as a pure linebreak hint during cleanup-oriented normalization.base/badbreak-dropDrop badbreak as a pure linebreak hint during cleanup-oriented normalization.base/goodbreak-dropDrop goodbreak as a pure linebreak hint during cleanup-oriented normalization.base/mathstrut-dropDrop the invisible mathstrut layout helper in cleanup-oriented normalization.base/nobreak-dropDrop nobreak as a pure linebreak hint during cleanup-oriented normalization.base/strut-dropDrop the fixed empty strut node in cleanup-oriented normalization.base/enspace-dropDrop enspace in math mode and collapse each text-mode enspace run to one ordinary space.base/qquad-dropDrop qquad in math mode and collapse each text-mode qquad run to one ordinary space.base/quad-dropDrop quad in math mode and collapse each text-mode quad run to one ordinary space.base/mskip-to-mspaceCollapse mskip to the explicit mspace command.
Notes#
MathJax base/math gives \mkern a nobreak flag that \mspace does not preserve. In text content, MathJax's unbraced dimension scanner also consumes one ASCII space after the unit, while a braced dimension preserves it; TeXForm's AST cannot distinguish those scalar source forms, so canonicalizing the common primitive form can drop an intentional space after a braced argument. Both gaps make worst-case fidelity approximate. The base record owns this name by package import order.
Disable this rule#
TransformEngine(profile="corpus", disable_rules=["base/mkern-to-mspace"])new TransformEngine({ profile: 'corpus', disableRules: ['base/mkern-to-mspace'] })