2.9 KB

Static MathJax v0.1 README

Static MathJax is a XULRunner application which loads a HTML input file that uses MathJax into a browser, waits until MathJax is done processing, and then writes the formatted result to an output HTML file.

I have only tested exports from Emacs Org-mode as input files. (As of 2010-08-14, MathJax is used by default with HTML exports in the current Org development version.)

Optionally, references to the math fonts used will be converted to "data:" URIs, thus embedding the font data into the HTML file itself. (see

The code is licensed under the GNU General Public License version 2, or, at your option, any later version.


To run Static MathJax, an existing XULRunner installation is required. From the directory to which you unpacked Static MathJax, run:

xulrunner application.ini <--embed-fonts | --final-mathjax-url >

If you prefer to call "staticmathjax" instead of "xulrunner application.ini", link xulrunner-stub into the directory: ln /usr/lib/xulrunner- ./staticmathjax

input file
name of the input file (the result of a HTML export from Org-mode). It is assumed that this file uses the UTF-8 character encoding.
  • output file ::
  • name of the output file.
if specified, the math fonts will be embedded into the output file using data: URIs
if --embed-fonts is not specified, this must be the URL to a MathJax installation folder (e.g. "MathJax" if MathJax is installed in a subdirectory, or "" to use the version hosted on the Org website.

All references to math fonts in the output file will point to this directory.


The input file must not use a MathJax installation on the web. Otherwise, due to a security feature of Firefox, MathJax will fallback to image fonts. If you have unpacked MathJax to a subdirectory "MathJax", specify the following in your Org file:

#+MathJax: path:"MathJax"

The math is rendered in Firefox, so MathJax applies its Firefox-specific settings. When viewing the output files in other browsers, it will look slightly different than the result that running MathJax in that browser would produce.

Internet Explorer does not use the correct font, because it only supports the EOT font format. For all other browsers (including Firefox), MathJax uses the OTF font format.

Embedding fonts into the HTML file wastes some space due to the base64 encoding used in data: URIs.

I have found no way to access stdout or set an exit code in an XULRunner app, so any code which calls Static MathJax has no idea if processing was successful and when an error occurs, graphical message boxes are displayed.