After a very smooth beta run, we’re happy to officially release MathJax v2.7.
New in MathJax v2.7
MathJax v2.7 is primarily a bug-fix release with over 60 important bug fixes. In addition, this release adds several new features as an opt-in. The following are some of the highlights:
- CommonHTML output improvements Several important bugs in the layout model have been fixed, in particular tabular layout is now much more robust.
- Accessibility extensions. After the completion of the MathJax Accessibility Extensions, we are integrating the lightweight opt-in into the MathJax core. This allows readers to opt into the following features via the MathJax Menu:
    - Responsive Equations. An innovative responsive rendering of mathematical content through collapsing and exploration of subexpressions.
- Universal aural Rendering. An aural rendering tool providing on-the-fly speech-text for mathematical content and its subexpressions using various rule sets.
- Full Exploration. A fully accessible exploration tool, allowing for meaningful exploration of mathematical content including multiple highlighting features and synchronized aural rendering.
- For detailed information check the accessibility extensions’ release announcement.
 
- Opt-in for mhchem v3 The mhchem extension in the core now provides a configuration option to switch to mchhem v3. This new version was (re-)written by Martin Hensel, author of the original $\rm \LaTeX$ package, and greatly revises and extends it. This new extension is also available directly through the MathJax Third Party Extension repository
- Simplified opt-in for third party extensions MathJax v2.7 configures the [Contrib]path variable to the URL of the third party extension repository on the MathJax CDN. This simplifies loading contributed extensions.
- Third Party Extension Updates Our Third Party Extension repository as seen some great additions recently. The MathJax team is grateful for these contributions from the community!
    - arabic.js: Omar Al-Ithawi (@omarithawi) from Edraak.org contributed this extension for basic Arabic support in the TeX input.
- physics.js An extension by @ickc providing basic support for the physics package for $\rm \LaTeX$.
- siunitx.js: Yves Delley (@burnpanck) contributed a basic implementation of the siunitx package for $\rm \LaTeX$ .
- mhchem.js: As already mentioned, Martin Hensel (@mhchem) re-wrote the mhchem extension to better match his well-known mhchem package for $\rm \LaTeX$.
 
For details on all bug fixes, please see below.
Please note the following.
Changes to the combined configuration files
If you are using a combined configuration, please note that we added the the accessibility menu extension to all combined configuration files. This extension will always load from cdn.mathjax.org/mathjax/contrib. If you are hosting your own copy of MathJax and if your users will not be able to access cdn.mathjax.org, then you should disable the [Contrib] path by adding noContrib to the query string, e.g., MathJax.js?config=...&noContrib to avoid unnecessary failed requests.
Release on the MathJax CDN
MathJax v2.7 is available on the CDN, and for download from GitHub; see the documentation for details.
Version 2.7 is available on the CDN at
and starting today the files at the
address will be switched over the v2.7. If you are using the mathjax/latest address you might get a mixture of files in your browser cache, and so may need to clear your browser cache and for some browsers (e.g., Chrome) restart your browser in order to get a consistent version of all files.
If you are a page author and concerned about this, you can change (temporarily) to the mathjax/2.7-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 in a few days when the new version has migrated to all the locations in the cloud. If you want to keep using Mathjax v2.6 you can switch to mathjax/2.6-latest.
Thanks for your continuing interest in MathJax. We hope that this release makes your MathJax experience even better.
The MathJax Team.
New in MathJax v2.7
MathJax v2.7 is primarily a bug-fix release with over 60 important bug fixes, in particular to the CommonHTML output. In addition, this release adds several new features as an opt-in. The following are some of the highlights.
Features
- Common HTML output improvements Several important bugs in the layout model have been fixed, in particular tabular layout is now much more robust.
- Accessibility improvements. After the completion of the MathJax Accessibility Extensions, we are integrating the opt-in for the MathJax menu into the core distribution. We are grateful to the web accessibility community for their guidance, support, and feedback in our efforts towards making MathJax completely accessible to all users. This allows end-users to opt into the following features via the MathJax Menu:
    - Responsive Equations. An innovative responsive rendering of mathematical content through collapsing and exploration of subexpressions.
- Universal aural Rendering. An aural rendering tool providing on-the-fly speech-text for mathematical content and its subexpressions using various rule sets.
- Full Exploration. A fully accessible exploration tool, allowing for meaningful exploration of mathematical content including multiple highlighting features and synchronized aural rendering.
- For more information check the release announcement and the dedicated repository at mathjax/mathjax-a11y.
 
For a detailed listing please check the release milestone.
Accessibility
- mathajx-dev/#20 Add the Menu extension from the MathJax Accessibility tools to all combined configuration files.
- #1465 CHTML and HTML-CSS output: do not add role=mathby default.
- #1483 Catch IE8 errors with inserting MathML from AssistiveMML extension.
- #1513 Disable the AssistiveMML extension when the output renderer is PlainSource.
Interface
- #1463 Reset message strings for messageStyle=simplefor each typeset.
- #1556 Improve menu placement.
- #1627 Add Accessibility submenu.
HTML/SVG/nativeMML display
- #1454 SVG output: Use full location URL for xlinkreferences in SVG<use>elements.
- #1457 Common-HTML output: Fix problem with characters from Unicode Plane 1 not being mapped to the MathJax fonts properly
- #1458 SVG output: Fix problem with container width when math is scaled.
- #1459 CommonHTML output: Improve getNode()to fix processing errors when line-breaking.
- #1460 HTML-CSS output: Adjust position of rule for square root when it is made via createRule().
- #1461 HTML-CSS output: Make sure 0remains0when rounding to pixels (plus a bit).
- #1462 CommonHTML output: Bubble percentage widths up while line breaking.
- #1475 PreviewHTML: Avoid error when \oversetor\undersetis empty.
- #1479 All outputs: Properly determine (shrink-wrapping) container widths.
- #1503 CommonHTML output: Handle adjusting table cell heights properly.
- #1507 SVG output: Remove invalid srcattribute from<mglyph>output.
- #1510 CommonHTML output: Prevent CSS bleed-through for box-sizing.
- #1512 CommonHTML output: make <mglyph>scale image size by hand.
- #1530 All outputs: Fix problem with Safari inserting line breaks before in-line math.
- #1533 CommonHTML output: improve aligning labels with their table rows.
- #1534 CommonHTML output: ensure output stays a table-cell when focused.
- #1538 All outputs: Don’t let preview width interfere with the determination of the container width.
- #1542 CommonHTML output: improve stretching <mover>in<mtd>elements.
- #1547 HTML-CSS output: improve line breaks within fractions.
- #1549 All outputs: Improve determination of line-breaking parent element.
- #1550 CommonHTML output: Improve vector arrow positioning.
- #1552 All outputs: Handle hrefcorrectly when line breaking.
- #1574 HTML-CSS and SVG output: Use currentColorfor<menclose>with nomathcolor.
- #1595 CommonHTML output: Properly scale elements with font-familyspecified.
TeX emulation
- #1455 Fix TeX.Environment()to use the correct end environment.
- #1464 Make sure resetEquationNumbersis always defined.
- #1484 Mark accented operators as not having movable limits.
- #1485 Allow line breaks within TeXAtomelements
- #1508 Surround \middlewithOPENandCLOSETeXAtoms to match TeX spacing
- #1509 Make delimiters (in particular arrows) symmetric for \leftand\right.
- #1514 Don’t unwrap rows when creating fenced elements.
- #1523 Don’t copy environment into arrayenvironments.
- #1537 mhchem: add config parameter to select mhchem v3.0.
- #1596 Prevent \require{mhchem}to override one already loaded.
- #1551 Allow <wbr>in TeX code.
- #1565 Handle \+SPACEin macro definitions.
- #1569 Treat control sequences as a unit when matching a macro template.
- #1587 Make sure trimSpaces()doesn’t remove tailing space in\+SPACE.
- #1602 Handle \refproperly when there is a<base>tag.
Asciimath
- asciimath/f649ba4 Add newsymbolcommand for adding a new symbol object
MathML
- #1505 Handle rowlines=""androwlines=" "likerowlines="none".
- #1511 Don’t convert attribute to boolean unless the default is a boolean.
- #1526 Make minus in <mn>produceU+2212rather thanU+002D.
- #1567 Fix spacing for initial fraction in exponent position.
Fonts
- #1521 STIX fonts: Make left arrow use combining left arrow for accents.
- #1092 STIX fonts: Make U+222B(integral) stretchy.
- #1154 STIX fonts: Remap |to variant form (with descender) and map variant to original form.
- #1175 Use U+007CandU+2016for delimiters rather thanU+2223andU+2225.
- #1421 MathJax TeX fonts: Fix SVG font data for stretchy characters.
- #1418 Alias U+2206toU+0394and remove incorrectU+2206from SVG font files.
- #1187 Make height and depth of minus match that of plus (needed for TeX-layout super/subscript algorithm to work properly), and adjust for that when it is used as an extender in stretchy characters.
- #1546 MathJax TeX fonts: Add stretchy data for U+20D7.
Localization
- #1604 Updated locales thanks to the contributors at Translatewiki.net; activate locale for Zazaki.
APIs
- #1504 Make getJaxForMath()work even during chunking.
- #1522 Add Third Party Extensions Repository to the Ajax paths as [Contrib].
- #1525 Allow MathJax root to be configured.
Misc.
- #1456 Prevent removal of DOM elements while MathJax is running from stopping processing, or to leaving duplicate math in place.
- #1524 Prevent pre-processors from adding duplicate preview elements.
- #1554 Safe extension: Add filtering of CSS styles like padding,margin.
- #1590 Set previews to have display:none.
- #1591 Change rev=toV=in cache breaking code.