# What’s New in MathJax v2.5

MathJax v2.5 includes a number of new features, as well a more than 70 important bug fixes. The following are some of the highlights.

## Features

- Speed improvements. The HTML-CSS output performance was improved by 30-40% (depending on content complexity, with higher gains in more complex content such as very long documents).

- New output for fast preview. The new CommonHTML output provides a rough but 10x-faster rendering. The `CHTML-preview` extension will use this fast output as a preview mode for HTML-CSS or SVG output.

- Improved Content MathML support. Content MathML is now fully supported via a new extension, in particular this allows customization of the conversion process.

- Improved elementary math support The experimental support for elementary math elements has been significantly improved special thanks to David Carlisle.

- NodeJS compatibility. Enable the implementation of a NodeJS API (released as MathJax-node).

Numerous display bugs, line-breaking problems, and interface issues have been resolved; for a detailed listing please check the release milestone.

## Interface

- #834 Fix incorrect line-width when zooming which can cause line-breaking problems.

- #918 Fix zoom box size in NativeMML output.

- #835 Fix zoom for equations extending beyond their bounding box.

- #893 Fix outdated ARIA values for HTML-CSS and SVG output.

- #860, #502 Preserve RDFa, microdata, aria labels, and other attributes in HTML-CSS and SVG output.

- #935 Escape special characters in TeX annotations.

- #912 Fix missing `mstyle` attributes in `toMathML` output.

- #971 Fix lost attributes when `toMathML` is restarted.

## Line-breaking

- #949 Fix processing error due to empty elements.

## HTML-CSS/SVG/nativeMML display

- #863 Fix broken MathML preview in MathML pre-processor.

- #891 Fix deprecated regexp affecting mtable alignment.

- #323 Improve MathPlayer compatibility on Internet Explorer 10+.

- #826 Scale content in fallback fonts.

- #898 Fix invalid SVG output when using fallback characters.

- #800 Fix misplaced background color for stretched mphantom elements in SVG output.

- #490 Fix `\overline` issues in combination with text-style limits.

- #829 Implement `\delimitershortfall`, `\delimiterfactor`.

- #775 Fix lost text content in SVG output.

- #917 Fix cases of incorrect bounding boxes in HTML-CSS output.

- #807 Fix clipping of table columns in HTML-CSS output.

- #804 Fix cases of uneven subscripts.

- #944 Fix rendering error when scaling-all-math of labeled equations.

- #930 Fix SVG output failure when `<math>` element has inline styles with border or padding.

- #931 Fix baseline alignment in Safari 6.2/7.1/8.0.

- #937 Fix incorrect width in MathJax font data affecting underlining.

- #966 Fix SVG output overlapping when using prefix notation.

- #993 Add workaround for Native MathML in Gecko to re-enable `mlabeledtr` etc.

- #1002 Enable SVG output to inherit surrounding text color.

## TeX emulation

- #881 Allow `\newenvironment` to process optional parameters.

- #889 remove extra space around some parenthesis constructs.

- #856 Recognize comma as decimal delimiter in units.

- #877 Fix bug related to multiple accent having different width.

- #832 Fix multline environment not being centered in HTML-CSS output.

- #776 Fix stretchy delimiters of `binom` and `choose`.

- #900 Fix `\buildrel` getting TeX class ORD instead of REL.

- #890 Enable px as dimension in `\\[...]`.

- #901 Allow `\limits` in more cases and add errors for some cases of multiple subscripts.

- #903 Allow `\hfill` to set alignment in matrices and arrays (for old fashioned TeX layout).

- #902 Convert `\eqalignno` and `\leqalignno` into `mlabeledtr`.

- #906 Allow comma separated parameters in `\mmlToken`.

- #913 Allow attributes in `\mmlToken` whose defaults are false or blank.

- #972 Fix autoload of the `color` extension.

- #375 Add `\{`, `\}`, and `\\` to macros working within `\text{}` etc.

- #969 Fix incorrect spacing with some `\frac` constructs.

- #982 Fix incorrect spacing in `aligned` environments.

- #1013 Fix processing error caused by `'` in commutative diagrams using `AMScd.js`.

- #1005 Add `wikipedia-texvc.js` extension.

## Asciimath

- #851 Prevent leading space in quote from causing processing errors.

- #431 Fix handling of special characters in exponents.

- #741 Add underbrace macro.

- #857 Update AsciiMathML to 2.2; changes include improve entity handling, add triangle macro, map ast to asterisk, allow input of row vectors, allow lambda, switch phi/varphi mapping, add underbrace macro, handle empty nodes better, add vector norm macro, improve @ macro.

## MathML Handling

- #847 Fix line-breaks in annotation elements.

- #805 Prevent empty annotation elements from causing math processing errors.

- #769 Update `indentshift` implementation to meet clarified MathML specification.

- #768 Fix processing of percentage values for `indenshift`.

- #839 Update inheritance of `displaystyle` in `mtable` to meet clarified MathML specification.

- #695 Allow Content MathML conversion to be customized.

- #964 Move experimental support for elementary math and RTL to its own extension.

## Fonts

- #845 Fix webfont bug in Safari 7.

- #950 Fix webfont bug in IE 11.

## Localization

- #979 Updated locales thanks to Translatewiki.net; activate locales for Scots and Southern Balochi.

## APIs

- #873 Combine array of elements when typesetting.

- #693 Add API to allow listeners to be cleared.

## Misc.

- #870 Add Composer package information.

- #872 Add small delay between input and output phase to prevent performance degradation.

- #1016 Fix bug related to `<script>` elements with namespace prefix, e.g., in xHTML.