Typst's MathML uses Plane 1 math alphanumerics (f comes out as U+1D453),
and browser fallback for those is unreliable, so a math font has to ship.
typst fonts --ignore-system-fonts shows what the library already embeds:
New Computer Modern, New Computer Modern Math, Libertinus Serif, DejaVu Sans Mono.
NewCM Sans and NewCM Sans Math are not embedded and ship with typstdoc, subsetted.
Which font a page uses is CSS and belongs under [package.metadata.typstdoc].
Compiling the same equation under two different math fonts gives byte-identical MathML,
so the choice cannot travel through the Typst source.
rustdoc's own implementation (rust-lang/rust#156032)
ships a subsetted Noto Sans Math woff2 with mathml.css,
and links both only from pages that contain math.
Do the same, driven by the assets a fragment reports.
Typst emits its own stylesheet for equations.
Diff it against rustdoc's mathml.css rather than writing a third one.
Typst's MathML uses Plane 1 math alphanumerics (
fcomes out as U+1D453),and browser fallback for those is unreliable, so a math font has to ship.
typst fonts --ignore-system-fontsshows what the library already embeds:New Computer Modern, New Computer Modern Math, Libertinus Serif, DejaVu Sans Mono.
NewCM Sans and NewCM Sans Math are not embedded and ship with typstdoc, subsetted.
Which font a page uses is CSS and belongs under
[package.metadata.typstdoc].Compiling the same equation under two different math fonts gives byte-identical MathML,
so the choice cannot travel through the Typst source.
rustdoc's own implementation (rust-lang/rust#156032)
ships a subsetted Noto Sans Math woff2 with
mathml.css,and links both only from pages that contain math.
Do the same, driven by the assets a fragment reports.
Typst emits its own stylesheet for equations.
Diff it against rustdoc's
mathml.cssrather than writing a third one.