                      Static MathJax v0.1 README
                      ==========================

Author: Jan Böcker <jan.boecker@jboecker.de>
Date: 2010-08-15 13:53:39 CEST


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 [http://en.wikipedia.org/wiki/Data_URI_scheme])

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


Table of Contents
=================
1 Usage 
2 Caveats 


1 Usage 
~~~~~~~~
  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 <URL>>
  <input file> <output file>

  If you prefer to call "staticmathjax" instead of "xulrunner
  application.ini", link xulrunner-stub into the directory:
  ln /usr/lib/xulrunner-1.9.2.8/xulrunner-stub ./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.

  --embed-fonts: 
      if specified, the math fonts will be embedded into
      the output file using data: URIs

  --final-mathjax-url <URL>: 
      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
      "[http://orgmode.org/mathjax]" to use the version hosted on the Org
      website.
      
      All references to math fonts in the output file will point to
      this directory.

2 Caveats 
~~~~~~~~~~
  
  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.
