Key differences between MathJax 2, 3 and 4
MathJax 2
The long-standing version used by many sites. It is configured with
MathJax.Hub.Config and a text/x-mathjax-config script, and re-rendering uses
MathJax.Hub.Queue. It is slower than newer versions and no longer actively developed.
MathJax 3
A full rewrite in TypeScript with much faster rendering. Configuration moved to a
window.MathJax object, re-rendering uses MathJax.typesetPromise(), and some
version 2 extensions and output modes were renamed or dropped. Output can differ slightly from version 2.
MathJax 4
Builds on version 3 with new default fonts covering many more characters, automatic line breaking for
long equations, and improved accessibility. Glyph shapes and spacing can look different from version 3.
Frequently asked questions
Why does my equation look different in MathJax 3 or 4 than in MathJax 2?
MathJax 3 was a complete rewrite and MathJax 4 ships new fonts and line breaking, so spacing, glyphs and
supported extensions can differ. Some MathJax 2 extensions and configuration options were renamed or removed.
Is my content sent to a server?
No. All rendering happens in your browser. Your content is only saved in your browser's local storage.
Which math delimiters are supported?
Inline math with $...$ or \(...\), and display math with $$...$$ or
\[...\]. MathML and HTML are also supported.
Does it support chemistry equations with mhchem?
Yes. The mhchem extension is loaded in all three versions, so \ce{...} works everywhere.
MathJax 2.7 uses an older version of mhchem by default, so newer syntax such as \pu{...} may
not render there. See the mhchem examples guide.
How do I share my equations with someone?
Click Copy share link. Your content is compressed into the link itself, so nothing is
uploaded and anyone who opens the link sees the same preview.