What’s 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=math by 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=simple for each typeset.

  • #1556 Improve menu placement.

  • #1627 Add Accessibility submenu.

HTML/SVG/nativeMML display

  • #1454 SVG output: Use full location URL for xlink references 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 0 remains 0 when rounding to pixels (plus a bit).

  • #1462 CommonHTML output: Bubble percentage widths up while line breaking.

  • #1475 PreviewHTML: Avoid error when \overset or \underset is empty.

  • #1479 All outputs: Properly determine (shrink-wrapping) container widths.

  • #1503 CommonHTML output: Handle adjusting table cell heights properly.

  • #1507 SVG output: Remove invalid src attribute 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 href correctly when line breaking.

  • #1574 HTML-CSS and SVG output: Use currentColor for menclose with no mathcolor.

  • #1595 CommonHTML output: Properly scale elements with font-family specified.

TeX emulation

  • #1455 Fix TeX.Environment() to use the correct end environment.

  • #1464 Make sure resetEquationNumbers is always defined.

  • #1484 Mark accented operators as not having movable limits.

  • #1485 Allow line breaks within TeXAtom elements

  • #1508 Surround \middle with OPEN and CLOSE TeXAtoms to match TeX spacing

  • #1509 Make delimiters (in particular arrows) symmetric for \left and \right.

  • #1514 Don’t unwrap rows when creating fenced elements.

  • #1523 Don’t copy environment into array environments.

  • #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 \+SPACE in 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 \ref properly when there is a <base> tag.

Asciimath

MathML

  • #1505 Handle rowlines="" and rowlines=" " like rowlines="none".

  • #1511 Don’t convert attribute to boolean unless the default is a boolean.

  • #1526 Make minus in <mn> produce U+2212 rather than U+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+007C and U+2016 for delimiters rather than U+2223 and U+2225.

  • #1421 MathJax TeX fonts: Fix SVG font data for stretchy characters.

  • #1418 Alias U+2206 to U+0394 and remove incorrect U+2206 from 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= to V= in cache breaking code.