After a successful beta run, we’re happy to officially release MathJax v2.2.

MathJax v2.2 is available on the CDN, and for download from GitHub or via the download page at

Version 2.2 is available on the CDN at

and starting today the files at the

address will be switched over the v2.2; it may take some time for them to propagate out to the distributed cloud servers.

During the time that the files are making their way out to the CDN’s servers, there may be a mixture of files in a browser cache, and so users may need to clear their cache and restart their browser in order to get a consistent version of the files.

If you are a page author and concerned about this, you can change (temporarily) to the mathjax/2.2-latest URL instead of mathjax/latest since that is a new address that will not have any cached older versions to worry about. You can switch back to mathjax/latest after a day or two when the new version has migrated to all the locations in the cloud.

See for details about the changes in v2.2, and some caveats about the effect of these changes on existing sites.

We anticipate a smooth upgrade from v2.1 to v2.2, but as always, let us know on the bug tracker if you experience problems with this new version of MathJax.  Thank you for your continued support.

The MathJax Team.

What’s New in MathJax v2.2

MathJax v2.2 includes a number of new features, as well a more than 40

important bug fixes.


  • Localization of MathJax user interface. (German and French

    translations currently available in addition to English.)

  • Commutative diagrams via the AMScd extension.

  • New Safe-mode extension that allows you to restrict potentially

    dangerous features of MathJax when it is used in a shared

    environment (e.g., href to javascript, styles and classes, etc.)

  • Improve MathML rendering for mfenced and mlabeldtr elements in

    browsers that don’t support them well.

  • Experimental Content MathML support.

TeX input:

  • Avoid potential infinite loops in \mathchoice constructs.

    (Issue #373

  • Add error message when an evironment closes with unbalanced braces.

    (Issue #454

  • Allow spaces in the RGB, rgb, and greyscale color specifications.

    (Issue #446 <

  • Process \$ in \text arguments. (Issue #349)

  • Preserve spaces within \verb arguments. (Issue #381

  • Make \smallfrown and \smallsmile come from the variant font so

    they have the correct size. (Issue #436

  • Make the input TeX jax generate mrow plus mo elements rather than

    mfenced elements (for better compatibility with native MathML


  • Make \big and its relatives use script or scriptscript fonts

    (although size is still absolute, as it is in TeX) so that it

    balances the text weight in scripts. (Issue #350

  • Convert true and false attributes to booleans in \mmlToken.

    (Issue #451


  • Rename AsciiMath config option from decimal to decimalsign.

    (Issue #384


  • Add Greek Delta to SVG fonts. (Issue #347

  • Fix monospace space character to be the same width as the other

    monospace characters. (Issue #380

  • Better handling of unknown or invalid values for mathvariant or

    values not supported by generic fonts.


  • Handle empty child nodes better.

  • Improved MathML rendering for mfenced and mlabeldtr elements.

  • Ignore linebreak attribute on mspace when dimensional attributes are

    set. (Issue #388

  • Implement rowspacing/columnspacing for mtable in native MathML

    output in Firefox using cell padding.


  • Allow \color to override link color in SVG output. (Issue #427

  • Add min-width to displayed equations with labels so that they cause

    their containers to have non-zero width (like when they are in a

    table cell or an absolutlye positioned element). (Issue #428

  • Fix a processing error with elements that contain hyperlinks.

    (Issue #364

  • Try to isolate MathJax from CSS transitions. (Issue #449

  • Go back to using em’s (rounded to nearest pixel) for Chrome.

    Rounding makes the placement work more reliably, while still being

    in relative units. (Issue #443

  • Prevent error when math contains characters outside of the MathJax

    fonts. (Issue #441

  • Make final math size be in relative units so that it prints even if

    print media has a different font size. (Issue #386

  • Don’t scale line thickness for menclose elements (so lines won’t

    disapear in scripts). (Issue #414

  • Fix fontdata.js to allow it to be included in combined configuration

    files. (Issue #413 <

  • Makes math-based tooltips be spaced properly when rendered. (Issue #412

  • Fix Math Processing Error when &ApplyFunction; is used without preceding content. (Issue #410

  • Fix a problem using an empty table as a super- or subscript. (Issue #392

  • Handle the case where selection in maction is invalid or out of

    range. (Issue #365

  • Add a pixel extra around the SVG output to accommodate antialiasing

    pixels. (Issue #383

  • Fix Math Processing Error for msubsup/msub/msup elements.

  • Limit the number of repetition to build stretchy chars in HTML-CSS.

    (Issue #366

  • Fix Math Processing Error in mmultiscripts/menclose. (Issue

    362 )


  • Make zoom work properly with expressions that have full width (e.g.,

    tagged equations).

  • Handle zooming when it is inside a scrollable element when it is not

    the main body element. (Issue #435

  • Update math processing errors to include original format and actual

    error message in the “Show Math As” menu. (Issue #450 <

  • Add a Help dialog box (rather than link to

  • Remove the v1.0 configuration warning. (Issue #445

  • Trap errors while saving cookies (and go on silently). (Issue #374

  • Fix typo in IE warning message. (Issue #397

  • Use UA string sniffing for identifying Firefox and handle detecting

    mobile versions better.

  • Make MathML source show non-BMP characters properly. (Issue #361

  • Make tool tips appear above zoom boxes. (Issue #351


  • Allow preview for preprocessors to be just a plain string (rather

    than requiring [string]).

  • Remap back-tick to back-quote. (Issue #402

  • Handle script tags in HTML.Element() so they work in IE.

    (Issue #342

  • Add the MathJax_Preview class to the ignoreClass list so that

    tex2jax and asciimath2jax won’t process previews accidentally.

    (Issue #378

  • Fix processing errors with various table and menclose attributes.

    (Issue #367

  • Use hasOwnProperty() when checking file specification objects

    (prevents problems when Object.prototype has been modified).

    (Issue #352