Version 3 is now the current version of MathJax. This document is for version 1.

The MathJax variable

MathJax has a single global variable, MathJax, in which all its data, and the data for loaded components, are stored. The MathJax variable is a nested structure, with its top-level properties being objects themselves.

Main MathJax Components


Contains the MathJax hub code and variables, including the startup code, the onload handler, the browser data, and so forth.


Contains the code for loading external modules and creating stylesheets. Most of the code that causes most of MathJax to operate asynchronously is handled here.


Contains the code to handle the intermittent message window that periodically appears in the lower left-hand corner of the window.


Contains support code for creating HTML elements dynamically from descriptions stored in JavaScript objects.


Contains the code for managing MathJax callbacks, queues and signals.


Initially empty, this is where extensions can load their code. For example, the tex2jax preprocessor creates MathJax.Extensions.tex2jax for its code and variables.


Contains the code for the MathJax object-oriented programming model.


The base class for all input jax objects. Subclasses for specific input jax are created as sub-objects of MathJax.InputJax. For example, the TeX input jax loads itself as MathJax.InputJax.TeX.


The base class for all output jax objects. Subclasses for specific output jax are created as sub-objects of MathJax.OutputJax. For example, the HTML-CSS output jax loads itself as MathJax.OutputJax["HTML-CSS"].


The base class for all element jax objects. Subclasses for specific element jax are created as sub-objects of MathJax.ElementJax. For example, the mml element jax loads itself as MathJax.ElementJax.mml.



The version number of the MathJax library.


This is set to true when MathJax is set up and ready to perform typesetting actions (and is null otherwise).