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