Rewrite patterns#
- math-enspace
\enspace∅ removed - text-enspace-run
\enspace\enspace
Examples#
Each example shows this rule applied in isolation. A complete normalization profile may make additional changes.
Math enspace#
The rendered result has pixel differences from the input.
Text enspace run#
The rendered result has pixel differences from the input.
Text enspace singleton#
The rendered result has pixel differences from the input.
Related rules#
Upstream rules#
base/small-spacer-merge-to-enspaceMerge exact half-em small-spacer chunks into enspace in one pass.
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/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/mkern-to-mspaceCollapse mkern to the explicit mspace command.base/mskip-to-mspaceCollapse mskip to the explicit mspace command.
Notes#
Owns the shared enspace target across base/math and textmacros/text active records. In math mode, remove every enspace, including singletons. In text mode, replace each maximal adjacent run of one or more enspace commands with one ordinary text space. Actual text nodes split text-mode runs. Do not cross groups, arguments, scripts, environment cells, slots, modes, or non-Spacer nodes. Authoring-level fixed-spacing canonicalizations may produce quad from enspace pairs; quad-drop owns that downstream Equiv target, so the final Equiv normal form is independent of whether double-enspace-to-quad runs first.
Disable this rule#
TransformEngine(profile="corpus", disable_rules=["base/enspace-drop"])new TransformEngine({ profile: 'corpus', disableRules: ['base/enspace-drop'] })