fix(markup): use installed math fonts for MathML in Chromium

Chromium maps the math font family to a single font per platform, which
Linux and ChromeOS don't install, so MathML falls back to a text font and
its brackets and large operators don't stretch. Keep the browser's choice
and fall back to the math fonts those systems ship, instead of bundling
a font.

Assisted-by: Claude Code:claude-opus-5-5
This commit is contained in:
silverwind
2026-10-01 02:12:01 +02:00
parent 62e80124ce
commit 7388690e90
4 changed files with 6 additions and 38 deletions
+6
View File
@@ -2,6 +2,8 @@
/* fonts */
--fonts-proportional: -apple-system, "Segoe UI", system-ui, Roboto, "Helvetica Neue", Arial;
--fonts-monospace: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace, var(--fonts-emoji);
/* Chromium's "math" is a font Linux and ChromeOS don't ship, so fall back to the math fonts they do */
--fonts-math: math, "STIX Two Math", "DejaVu Math TeX Gyre", "Noto Sans Math";
/* GitHub explicitly sets font names like: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", "Twemoji Mozilla";
Actually "Twemoji Mozilla" emoji font is widely used by browsers like Firefox, Pale Moon, and it is more likely up-to-dated than the system emoji font.
So not setting emoji font seems to be the best choice, here we just use a non-existing dummy font name and let browsers choose. */
@@ -107,6 +109,10 @@ samp,
font-size: 0.95em; /* compensate for monospace fonts being usually slightly larger */
}
math {
font-family: var(--fonts-math);
}
/* there are many <code> blocks in non-markup(.markup code) / non-code-diff(code.code-inner) containers, for example: translation strings, etc,
so we need to make <code> have default global styles, ".markup code" has its own styles and these styles sometimes conflict.
TODO: in the future, we should use `div` instead of `code` for `.code-inner` because it is a container for highlighted code line, then drop this ":not" patch */
-10
View File
@@ -5,16 +5,6 @@
overflow-wrap: break-word;
}
@font-face {
font-family: NewComputerModernMath;
src: local("NewComputerModernMath"), url("../../fonts/NewCMMath-Book.woff2") format("woff2");
}
.markup math {
font-family: NewComputerModernMath, "Latin Modern Math", "STIX Two Math", "Cambria Math", math;
font-size-adjust: ex-height 0.52;
}
.markup > *:first-child {
margin-top: 0 !important;
}
-28
View File
@@ -1,28 +0,0 @@
% This is version 1.0, dated 22 June 2009, of the GUST Font License.
% (GUST is the Polish TeX Users Group, http://www.gust.org.pl)
%
% For the most recent version of this license see
% http://www.gust.org.pl/fonts/licenses/GUST-FONT-LICENSE.txt
% or
% http://tug.org/fonts/licenses/GUST-FONT-LICENSE.txt
%
% This work may be distributed and/or modified under the conditions
% of the LaTeX Project Public License, either version 1.3c of this
% license or (at your option) any later version.
%
% Please also observe the following clause:
% 1) it is requested, but not legally required, that derived works be
% distributed only after changing the names of the fonts comprising this
% work and given in an accompanying "manifest", and that the
% files comprising the Work, as listed in the manifest, also be given
% new names. Any exceptions to this request are also given in the
% manifest.
%
% We recommend the manifest be given in a separate file named
% MANIFEST-<fontid>.txt, where <fontid> is some unique identification
% of the font family. If a separate "readme" file accompanies the Work,
% we recommend a name of the form README-<fontid>.txt.
%
% The latest version of the LaTeX Project Public License is in
% http://www.latex-project.org/lppl.txt and version 1.3c or later
% is part of all distributions of LaTeX version 2006/05/20 or later.
Binary file not shown.