wiki:MathML/Fonts

Version 7 (modified by fred.wang@free.fr, 8 years ago) (diff)

--

Overview

Fonts with appropriate Unicode coverage and Open Font Format features are required for good math rendering. Maintainers of WebKit ports and operating systems should ensure that such fonts are available to get more reliable results on MathML tests and to maximize user experience. WebKit users encountering troubles with the rendering of MathML are encouraged to check that such a font is installed on their system. They are also invited to configure the default math font to match their preference.

Recommended Math Fonts

Here is a list of known math fonts that can be used to render MathML formulas in WebKit:

Latin Modern Math is recommended for users who are familiar with TeX's Computer Modern style. The STIX family provides the best unicode coverage but it has many bugs that will only be fixed in version 2. These two fonts form the recommended minimal set to consider for maintainers and the default option to try for users.

Customizing Math Font

The default font-family on the <math> tag is not inherited but set to a list of known math fonts. Authors or readers of MathML equations can easily customize it by adding the following CSS rule to the author/user style sheet:

  math {
     font-family: "My Fancy Math Font";
  }

For best rendering, it is recommended to use text font and math font that have consistent style. For example, authors can use the following stylesheet to display their page with the "Latin Modern" style:

  body {
     font-family: "Latin Modern Roman";
  }
  math {
     font-family: "Latin Modern Math";
  }

For more information, this page with Web fonts, sample CSS style sheets and online demos.

Unicode Coverage

In order to display various scientific and technical symbols, math fonts should cover the largest possible subset of Unicode Character Ranges for Scientific Documents and more specifically:

Mathematical Alphanumeric Characters are required to display variables with their default mathematical italic style and to support the mathvariant attribute. However, the former is currently done with CSS (bug 155018) and the latter is not implemented yet (bug 108778).

The following characters are also used to provide minimal operator stretching for fonts without a MATH table: U+007C, U+2016, U+2225, U+2320, U+2321, U+239B, U+239C, U+239D, U+239E, U+239F, U+23A0, U+23A1, U+23A2, U+23A3, U+23A4, U+23A5, U+23A6, U+23A7, U+23A8, U+23A9, U+23AA, U+23AB, U+23AC, U+23AD, U+23AE.

Open Font Format features

Development is in progress to make our MathML support rely on TeX rules and OpenType features. These features should be available in math fonts.

MathConstants table

These are layout constants for example the default thickness of fraction bar. Here is the implementation status:

MathGlyphInfo table

Currently, we only use italic correction to position subscripts of large operators (bug 153918).

MathVariants table

This table is very important for proper display of integrals, radicals, fences etc Currently, we support search for a MathGlyphVariantRecord as well as simple constructions via a GlyphAssembly.

Tags

Nothing has been implemented yet. The following tags should be considered: math, ssty, flac, dtls and rtlm.