Skip to content

Releases: mathjax/MathJax

MathJax v4.0.0

04 Aug 19:30
cfcb216

Choose a tag to compare

This is the long-awaited 4.0.0 release of MathJax, which has been several years in the making. Among the many new features in this release are:

  • Extended font support (11 new fonts)
  • A new default font with much greater character coverage.
  • Line-breaking support (for in-line as well as displayed equations)
  • An updated expression explorer that is now on by default.
  • Separation of speech generation into a webworker thread for better performance.
  • Support for HTML embedded in TeX and MathML expressions.
  • Availability as ES6 modules as well as CommonJS modules.
  • New TeX extensions, including the begingroup extension from v2 (with more features), and several font-related extensions.
  • Inclusion of the textmacros extension in all combined component files.
  • Updated mathtools package to include the changes from 2022 and 2024.
  • Improvements in the baseline alignment of text in CHTML output in WebKit-based browsers.
  • Improved stretchy delimiters in CHTML output.
  • More promise-based conversion and typesetting calls at the document level.

For many sites, the only change that will be needed to use v4 is to change the URL where you load MathJax to refer to version 4 rather than version 3, and to remove the /es5 directory from the URL. Most v3 configurations should still work with v4; but if you use the startup.ready() function to modify MathJax or create new TeX extensions, there may be some adjustments needed. One important change of note is that, since the number of TeX packages has grown, the all-packages extension and the "-full" components have been removed, so if you are using those, you will need to change to a component without the "-full" and either rely on the autoload extension to load the needed packages, or load them explicitly.

The MathJax documentation has been substantially updated for version 4, and now includes the missing or limited sections on using MathJax in node, including many examples and details. See the What's New in V4.0 section (more than 50 pages long) for much more information about the features described above, and in particular, check the Breaking Changes section for any changes that may affect your usage.

The MathJax web demos repository has been updated for v4.0, and reorganized for easier viewing. The demos now include a "Show Source" button that displays explanations and the important sections of the source code rather than using separate .md files, so there are fewer files to wade through, and you can compare the source code to the output more easily. There are also new examples in the documentation on using MathJax in a browser; most are listed in the Examples in a Browser section.

The MathJax node demos repository is being updated and reorganized as well, but work is still being done on that, as some of the documentation needs to be expanded (for now, you may need to read the comments in the code). The tools in this repository have been made more powerful and complete, and much of the functionality that is common across multiple tools have been moved to utility libraries that can be shared by several tools. That means the examples are no longer stand-alone files, but they are more complete in their ability to use the features of MathJax. For example, all the examples that produce CHTML or SVG output can select the font to use, or add speech labels, and so on, and because speech is now available in all those examples, there are no longer separate speech demos. The tools can now take several expressions at once to typeset, or take them from a file, or process a complete HTML page. This means there are no longer separate page-based tools, so the number of examples is reduced, but the functionality is expanded. The MathJax documentation now covers using MathJax in node application in more detail than for v3, with lots of examples; most of these are listed in the Examples in Node Applications section.

As always, you may report issues in the MathJax issue tracker for v4; this is a major update, and there are sure to be things that will need adjusting.

MathJax v4.0.0-rc.4

26 Jun 21:26

Choose a tag to compare

MathJax v4.0.0-rc.4 Pre-release
Pre-release

This is the release candidate release for version 4.0. The major new features for this version are:

  • The speech generation has been moved to a webworker to improve performance.

  • The expression explorer internals have been rewritten to work more reliably in more browser/os/screen-reader combinations, both during expression exploration, as well as when the page is being read as a whole.

  • The default font has been changed from mathjax-modern to a new font, mathjax-newcm, based on the New Computer Modern font. It has the same look as mathjax-modern, but with more character coverage and a slightly darker weight.

  • MathJax has now moved to using scoped npm packages, so the mathjax-full package is being replaced by @mathjax/src, and the fonts are now of the form @mathjax/mathjax-newcm-font. The mathjax package remains un-scoped, however, so the URLs for obtaining this release of MathJax only need to change the version number.

  • The textmacros package is now included in the combined components by default, so macros within \text{} and other text-mode macros should be processed. See the release notes for more information.

  • The begingroup TeX extension is included in this release. See the release notes for more details.

  • New promise-based versions of the render(), convert(), and rerender() methods of the MathDocument class have been added, so that direct calls to MathJax.startup.document.convertPromise(), etc. can be made with support for asynchronous loads, relieving you from having to use mathjax.handleRetriesFor() yourself. There is also a new whenReady() method that can be used to synchronize your code with MathJax's typesetting pipeline. See the release notes for more information.

Much more documentation is available in the release notes, including information on potential breaking changes, as well as details about how the separation of the speech generation into a webworker affects node applications.

Note that 4.0.0-rc.1 to rc.3 were removed due to issues with the releases (we are using a new release process that had some glitches to be ironed out).

MathJax v4.0.0-beta.7

21 Jul 14:59

Choose a tag to compare

MathJax v4.0.0-beta.7 Pre-release
Pre-release

This release is primarily a bug-fix release. In particular, the redesign of the way speech is computed and attached to MathJax’s output that was part of the beta.6 release introduced a performance degradation that needed to be addressed. The main purpose of the beta.7 release is to fix that performance problem.

The main fixes and features include:

  • Fix performance problem introduced in 4.0.0-beta.6, and in particular, improve the performance when the lazy typesetting extension is in use.

  • Allow table columns to shrink when their contents have line-breaks.

  • Work around a problem with in-line breaking in Safari.

  • The computations for the bounding boxes of the layouts in the bussproofs TeX package have been improved.

  • A security issue involving the potential for users being able to insert CSS styles into MathJax equations was identified by the GitHub security team, and is addressed here.

  • The all-packages extension and corresponding AllPackages.ts file and the tex-full component that used them have been removed.

  • Font extension can now be generic extensions so that they work with any base font, and the bbm, bboldx, and dsfonts packages have been rebuilt to be generic font extensions.

See the release notes for more details.

MathJax v4.0.0-beta.6

30 Apr 19:55

Choose a tag to compare

MathJax v4.0.0-beta.6 Pre-release
Pre-release

This is the fourth beta release of version 4 of MathJax (beta.1 and beta.5 had problems with the release process). The main new features are the following:

  • The expression explorer has been significantly rewritten to work with the use of aria-label attributes rather than ARIA live regions. This improves compatibility and stability of the explorer.

  • The expression explorer can now be entered by clicking on any character in an expression, and exploration will start at that location in the expression.

  • The accessibility menu has been reorganized, and its contents moved to the top level of the MathJax contextual menu for easier access and a more rational organization.

  • Several new TeX packages with different double-struck options are now available: bbm, bboldx, and dsfont.

Details on these changes, and the full list of bugs that are fixed in this release are listed in the release notes

Note that the 4.0.0-beta.5 had an issue with the packaging and caused problems within node applications, and so was removed.

MathJax v4.0.0-beta.4

04 Oct 17:32

Choose a tag to compare

MathJax v4.0.0-beta.4 Pre-release
Pre-release

This is the second beta release of version 4 of MathJax. It is mostly a bug fix release. The main improvements are the following:

  • Some issues arose with the move to ESM modules and ES6 versions of the javascript code. These caused some TeX extension packages to fail to load; these have been fixed in this beta release.

  • A problem where Mathjax could produce an error setting getter-only property "Package" during its processing of the MathJax configuration has been resolved.

  • An issue where the equation, equation*, displaymath, and math LaTeX environments would produce an error about incorrectly nested environments, regardless of their content, has been fixed.

  • An issue where the \text{} macro would produce an error message when the textmacros package is used in beta.3 has been fixed.

  • Line breaking for in-line math has been improved to avoid extra line breaks that could cause unexpected blank lines.

Additional issues fixed by, and new features provided in, this release are described in the release notes.

MathJax v4.0.0-beta.3

19 Jul 21:48

Choose a tag to compare

MathJax v4.0.0-beta.3 Pre-release
Pre-release

This is the first beta release of MathJax version 4.0.0, which includes significant improvements over the alpha release. In particular:

  • This version uses version ES6 of javascript rather than the down-compiled ES5 code of previous versions. That means it no longer supports IE11, which does not implement enough of the ES6 features to run MathJax.

  • Because the code is now ES6, the es5 directory is no longer an accurate name, and the MathJax component files are now available at the top level, so you no longer need to include /es5 in the URL that you use to load MathJax. E.g., you can use

    https://cdn.jsdelivr.net/npm/[email protected]/tex-mml-chtml.js
    

    as the URL to load the tex-mml-chtml.js combined component.

  • A number of issues with line breaking have been addressed.

  • Several new menu items are available in the Show Math As and Copy to Clipboard submenus.

  • The promise-based functions like MathJax.typesetPromise() now use MathJax.startup.promise internally to synchronize their actions, so you no longer have to do that yourself.

See the release notes for more details.

MathJax v4.0.0-alpha.1

02 Oct 14:21

Choose a tag to compare

Pre-release

This is the first alpha release of a major update to MathJax that adds significant new functionality, including:

  • Support for 11 different fonts, including the STIX2 font set, five Gyre math fonts, and a sans-serif font based on the Fira-Math font.

  • Support for automatic and explicit line breaks in both display and in-line expressions, automatic breaking of text elements, better breaking in tables and arrays, more array column specifiers for the array preamble, and TeX macros to control line breaking, indentation, and alignment, as well as more commands for making fixed-size boxes in which line breaking can occur.

  • Support for HTML embedded in MathML and TeX expressions (e.g., you can insert form elements into the math).

  • Improvements to the assistive support by including the expression explorer (activated) in all combined components.

See the release notes for extensive details about the new features and how to use them. This includes information about new configuration options for these features, and new TeX macros and control that they provide.

MathJax v3.2.2

08 Jun 17:47

Choose a tag to compare

This is a hot-fix release that resolves three issues introduced in v3.2.1. See the release notes for details.

MathJax v3.2.1

19 May 20:58

Choose a tag to compare

This is a bug fix release that resolves more than 40 issues, and includes significant updates to the speech-rule engine that handles MathJax's assistive technology. See the release notes for details.

MathJax v3.2.0

17 Jun 14:47

Choose a tag to compare

This is a feature release that includes a new lazy-typesetting extension, nine new TeX extensions, a port of the v2 MML3 extension, new Hindi support in the expression explorer, along with several other improvements, and a number of bug fixes. See the release notes for details.