A mathematical glyph variant is an alternative ready-made glyph supplied for a mathematical shape at a different extent. In an OpenType MATH table, each MathGlyphVariantRecord pairs a glyph index with its advanceMeasurement along the extension direction.[ref]
Consider an invented set of vertical variants with construction measurements 900, 1300 and 1800 font units. A selection policy seeking the smallest variant at least 1200 units tall chooses 1300; a target of 1700 chooses 1800. A target of 2000 exceeds the set and may need a mathematical glyph assembly if the font supplies suitable parts.
This discrete choice is useful for growing mathematical delimiters around tall expressions. The numbers are an explanatory selection example, not measurements of an installed computer font. A separately drawn taller glyph can change proportions without requiring every stroke to undergo the same uniform enlargement.
Mathematical typesetting 2026-11-05
Mathematical typesetting arranges symbolic expressions in two dimensions. It must coordinate computer fonts, glyph positioning, typesetting boxes and text baselines while preserving the expression's visible structure. A typeset fraction positions its components above and below a bar; superscripts, subscripts, square roots and mathematical delimiters impose other geometric relationships.[ref]
For example,
contains a superscript inside the upper component and a square root inside the lower component. Their dimensions help determine the height of the complete typeset fraction. A larger expression may then require larger surrounding mathematical delimiters. Laying out the smallest parts first makes this a recursive geometric construction.
An OpenType MATH table supplies font-specific information such as placement constants and suitable glyph variants. The table supplies data for layout; different implementations can use those data in different algorithms. TeX and LaTeX provide established authoring systems for expressing such mathematical structure.[ref]
MathML Core 2026-11-05
MathML Core is a browser-oriented subset of MathML with specified rules for mathematical presentation and layout. The pinned 24 June 2025 document is a Candidate Recommendation Snapshot. It defines a concrete target for implementation, rather than identifying the whole MathML language with one browser's output.[ref]
For an original example, encode a typeset fraction surrounded by parentheses as <math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mo stretchy="true">(</mo><mfrac><mi>x</mi><mn>2</mn></mfrac><mo stretchy="true">)</mo></mrow></math>. The row has three children: a left mathematical delimiter, the typeset fraction and a right mathematical delimiter. The fraction's children supply numerator and denominator 2.
The parentheses are stretchy mathematical operators: their markup requests size-sensitive layout around the fraction. Core specifies operator stretching and row layout; mathematical glyph variants or mathematical glyph assemblies can supply suitable forms.[ref] This illustrates why presenting a formula requires more than placing all its characters on one text baseline.
Changing stretchy="true" to stretchy="false" changes the layout instruction without changing the fraction's two operands. Exact dimensions also depend on the computer font and applicable layout properties. The markup supplies structure and presentation instructions; substituting a numerical value for and evaluating the quotient is a separate operation.
OpenType MATH table 2026-11-05
For example, a tall typeset fraction can require larger surrounding mathematical delimiters. The font may offer several ready-made parentheses and parts for assembling still taller ones. An implementation can use those data together with the expression's measured dimensions. Merely scaling one outline uniformly could change its stroke weight along with its height; the supplied variants and parts give the font designer more control over the result.
The same general division of labour applies to subscripts and superscripts: a font supplies relevant dimensions and placement information, while the layout process combines them with the actual expression. The table is a data interface used by layout algorithms. It does not uniquely prescribe the complete appearance of every formula.[ref]
A stretchy mathematical operator can adapt its extent to the surrounding mathematical layout. In MathML Core, an mo element's stretchy property participates in this decision. A mathematical delimiter around a tall typeset fraction is a familiar example. Actual stretching also requires an applicable constraint and suitable computer font data.[ref]
For an original example, use <math xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mo stretchy="true" minsize="2em" maxsize="3em">(</mo><mfrac><mi>x</mi><mn>2</mn></mfrac><mo stretchy="true" minsize="2em" maxsize="3em">)</mo></mrow></math>. The row places two mathematical delimiters around a typeset fraction with numerator and denominator 2.
Suppose the positive block-axis target totals, already expressed at a common scale, are , and em. The stated size bounds adjust them to , and em, respectively. This is the target-size constraint step, not a prediction of exact rendered ink heights. The complete algorithm also handles ascent/descent and symmetry about the Math axis.[ref]
Suitable mathematical glyph variants or mathematical glyph assemblies can supply the extended form. Setting stretchy="false" changes the operator's instruction without changing the fraction's two operands. Layout properties and font constructions therefore belong in a controlled comparison; enlarging every outline uniformly is not the definition of stretching.