# Fonts for Mozilla's MathML engine Redirect 1

Note: These instructions are for Gecko 2.0 (Firefox 4) and later. For former versions see Fonts for Mozilla 1.8 or Fonts for Mozilla 1.9.

## Quick Instructions

Try this test page to quickly determine whether you need to install additional fonts and to follow the instructions below. You may also want to check out the Mozilla MathML torture test to test your installation against concrete examples.

• On Windows: use this MathML fonts installer.
• On Mac OS X Lion (10.7) and greater STIX fonts are already installed, you do not need to do anything. An experimental font installer is also available on bug 770005.
• On most Linux distributions, you can install STIX and Asana fonts from your package manager. MathJax fonts are also available in Debian testing and derived distributions such as Ubuntu or Mint.
• On Android, Gecko 15.0 (Firefox 15.0 / Thunderbird 15.0 / SeaMonkey 2.12) or greater: install the MathML-fonts add-on.
• Otherwise, install the fonts contained in this zip archive.
• If that's still not possible and you are running Gecko 15.0 (Firefox 15.0 / Thunderbird 15.0 / SeaMonkey 2.12) or greater, consider installing the MathML-fonts add-on.

• If you need Arabic Mathematical Numeric Symbols then you might want to install the XITS fonts as well.
• If you wish to test the experimental support for fonts with a MATH table, see below.

## Overview

Mathematical formulas make use of various symbols represented by specific Unicode characters. Mozilla can display any of these symbols provided suitable Unicode fonts are installed. Furthermore, in accordance with the W3C CSS2 recommendation on fonts, authors can specify an ordered list of particular fonts which they prefer (using the font-family property of CSS), with the assurance that Mozilla's font engine will hunt for alternate fonts whenever their specified fonts are not found on a particular user's system. If no appropriate font is ultimately found for a given character, Mozilla will instead display a box containing the hexadecimal representation of the Unicode code point for the character.

Some mathematical operators are also drawn by using glyphs for larger variants of the character (e.g. summation symbol) or by assembling glyphs for a few pieces of the character (e.g braces). These variant or part glyphs do not in general have Unicode assignments, and so font-specific support is required for some characters. Mozilla has general support for the common delimiters and arrows that have the necessary Unicode assignments. For other characters, Mozilla has font-specific support. In general, if the necessary glyphs are not available on the system then Mozilla tries to stretch symbols using scale transforms, but that may result in a less pleasant rendering.

To see MathML as intended, you need sufficient font support, which may mean installing some fonts. Note that some Web sites may provide the required mathematical fonts as Web fonts. In that case, you will see the correct rendering on these pages if you use Gecko 15.0 (Firefox 15.0 / Thunderbird 15.0 / SeaMonkey 2.12) or greater.

The STIX Fonts Project has been developing a comprehensive set of fonts that cover all the symbols in MathML and also contains glyphs to stretch mathematical operators. They are available under the SIL Open Font License and should be installed for best MathML rendering. Note that currently, only the fonts in /Fonts/STIX-General/ are used for stretching mathematical operators with STIX fonts. Asana Math is also freely available under the SIL Open Font License and has good support for mathematical characters. Starting in Gecko 7.0 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4), Mozilla can also use the glyphs contained in that font for stretchy operators. Starting in Gecko 13.0 (Firefox 13.0 / Thunderbird 13.0 / SeaMonkey 2.10), MathJax fonts are used as the default fonts for mathematical text and symbol stretching. These fonts are freely available under the Apache License. They are close to LaTeX rendering and should look more familiar to scientists. MathJax fonts also improves support for mathvariant attribute (e.g. to write double-struck, script or fraktur text).

All the fonts mentioned above may already be installed by default on your system or can easily be installed via your software manager. For convenience we provide a zip archive of MathML fonts. The fonts may be installed by extracting the font files (which have the .otf extension) from the zip archive, then following instructions for Microsoft Windows, or copying the files to a ~/Library/Fonts folder on Mac OS X, or to a ~/.fonts/ directory (which may need to be created) on Unix/Linux systems. Alternatively, follow dafont's "How to install a font". These fonts are OpenType PostScript fonts, which are supported by most modern operating systems. However some operating systems may not support these fonts. On such systems, it will be necessary to convert the fonts to a supported format. For example Asana Math is available in TrueType format and there is an unofficial TrueType conversion for STIX fonts.

The following fonts are not necessary when the above fonts are installed, but are worth noting because of their Unicode support for many mathematical characters.

• DejaVu Serif and DejaVu Sans are freely available and installed with many Linux distributions. They contain support for many mathematical characters, and Mozilla will display some MathML reasonably on systems with these fonts installed, even without STIX fonts. The font only contains glyphs for stretchy operators that have Unicode assignments.

• Cambria Math is preinstalled on Microsoft Windows Vista, and also comes with Miscrosoft Office 2007 or Microsoft PowerPoint Viewer 2007. The font has good support for mathematical characters, and so, with any of these products installed, Mozilla will be able to display some MathML reasonably even without STIX fonts. The font contains the necessary glyphs for stretchy operators but Mozilla does not yet make use of all of these. The license allows you to "use this font as permitted by the EULA for the product in which this font is included to display and print content", so consulting your lawyer is recommended if considering installing this on systems without the associated product.

## Experimental Fonts with a MATH table

We are currently adding support for fonts with a MATH table. MathJax and STIX-General fonts are expected to be deprecated in future versions. If you have the right builds and wish to test the new fonts then here is a list of such fonts. Note that this list is not exhaustive, any font with a MATH table will be supported and you can even create your own fonts.