Since our last update in February, Igalia has upstreamed MathML patches to Chromium at a good pace: already 42 patches! Thanks to very helpful review from Google’s rendering core team, we have been able to refine our implementation both for upstreamed patches and for our downstream branch. Here are some highlights of what has landed:
The low-level OpenType MATH support (layout parameters and shaping of stretchy operators) is completely upstreamed and will be used by the MathML layout for radicals and operators.
Experimental CSS properties corresponding to TeX’s concepts of displaystyle and cramped are implemented. We are currently working on extending the font-size and text-transform properties to implement scriptlevel and mathvariant changes.
Basic layout is implemented for grouping, spacing, fractions and scripts (<mrow>
-like elements, <mspace>
, <mfrac>
, <msub>
, <msup>
, <msubsup>
, <munder>
, <mover>
, <munderover>
).
Although this is still work in progress, one can already notice some improvements. For example, the LaTeX formula \sum_{n=1}^{+\infty} \frac{1}{n^4} = \frac{\pi^4}{90}
converted to MathML is rendered by your browser as
$$\sum _{n=1}^{+\mathrm{\infty}}\frac{1}{{n}^{4}}=\frac{{\pi}^{4}}{90}$$
In Chromium upstream (Canary, experimental web features enabled) and in our downstream branch, it currently looks like this:
We would like to thank all the people who have written encouragements and supported this work, including our fellow Igalians who have helped invest funding. If, like them, you believe in this project and the broader work that we do please consider becoming a sponsor. You can reach us with comments or questions via email or Twitter.