MathJaxhttps://www.mathjax.org/MathJax Consortium2020-09-03T11:48:53+00:00MathJax v3.1.0 now availablehttps://www.mathjax.org/MathJax-v3-1-0-available/2020-08-25T00:00:00+00:002020-08-25T00:00:00+00:00The MathJax team is pleased to announce version 3.1 of MathJax, released earlier today. This is a feature release that includes a number of API improvements, new extensions, and updates to the assistive tools, as described below. It also includes several bug fixes.
<p>The MathJax team is pleased to announce version 3.1 of MathJax, released earlier today. This is a feature release that includes a number of API improvements, new extensions, and updates to the assistive tools, as described below. It also includes several bug fixes.</p>
<p>See the individual issues and pull requests linked below, as well as the <a href="https://docs.mathjax.org/en/v3.1-latest/upgrading/whats-new-3.1.html">What’s new in v3.1</a> section of the MathJax documentation, for more details.</p>
<p>Also note that the demos in the <a href="https://github.com/mathjax/MathJax-demos-node">node examples</a> have been updated and expanded to include examples of using a <a href="https://github.com/mathjax/MathJax-demos-node/tree/master/simple">simplified interface</a> for MathJax in server-side node applications, <a href="https://github.com/mathjax/MathJax-demos-node/tree/master/puppeteer">MathJax with Puppeteer</a>, and <a href="https://github.com/mathjax/MathJax-demos-node/tree/master/jsdom">MathJax with jsdom</a>.</p>
<h2 id="new-features-in-this-release">New Features in this Release</h2>
<ul>
<li>New <code class="language-plaintext highlighter-rouge">textmacros</code> extension for handling some macros in text-mode. (<a href="https://github.com/mathjax/MathJax-src/pull/509">#509</a>)</li>
<li>Add <code class="language-plaintext highlighter-rouge">safe</code> extension and component. (<a href="https://github.com/mathjax/MathJax-src/pull/514">#514</a>)</li>
<li>New German localization for speech output using the expression explorer.</li>
<li>Updated options within the accessibility contextual menu. (<a href="https://github.com/mathjax/MathJax-src/pull/505">#505</a>)</li>
<li>Allow MathML verification options to be specified in the input jax. (<a href="https://github.com/mathjax/MathJax-src/pull/519">#519</a>)</li>
<li>Add enable/disable options to document handlers for a11y and menu. (<a href="https://github.com/mathjax/MathJax-src/pull/499">#499</a>)</li>
<li>Add configuration options to <code class="language-plaintext highlighter-rouge">noundefined</code> extension. (<a href="https://github.com/mathjax/MathJax-src/pull/507">#507</a>)</li>
<li>Fix problems with <code class="language-plaintext highlighter-rouge">mtextInheritFont</code>, and provide new <code class="language-plaintext highlighter-rouge">mtextFont</code> option. (<a href="https://github.com/mathjax/MathJax/issues/2189">mathjax/MathJax#2189</a>)</li>
<li>Make <code class="language-plaintext highlighter-rouge">formatError</code> a configuration option for tex input jax. (<a href="https://github.com/mathjax/MathJax-src/pull/483">#483</a>)</li>
<li>Improve <code class="language-plaintext highlighter-rouge">startup.promise</code> so it is always valid. (<a href="https://github.com/mathjax/MathJax/issues/2189">mathjax/MathJax#2307</a>)</li>
<li>Add functions to manage math items within a given container. (<a href="https://github.com/mathjax/MathJax-src/issues/351">#351</a>)</li>
<li>General improvements to input/output errors. (<a href="https://github.com/mathjax/MathJax-src/pull/491">#491</a>)</li>
<li>Allow MathML verification options to be specified in the input jax. (<a href="https://github.com/mathjax/MathJax-src/pull/519">#519</a>)</li>
<li>Update string processing to handle SMP unicode blocks better. (<a href="https://github.com/mathjax/MathJax-src/pull/504">#504</a>)</li>
<li>Add TeX error as <code class="language-plaintext highlighter-rouge">data-mjx-error</code>, similar to compile/typeset errors. (<a href="https://github.com/mathjax/MathJax-src/pull/490">#490</a>)</li>
</ul>
<h2 id="file-location-changes">File Location Changes</h2>
<ul>
<li>Normalize extension names to all lowercase with no underscores. (<a href="https://github.com/mathjax/MathJax-src/pull/485">#485</a>)</li>
<li>Remove MathItem <code class="language-plaintext highlighter-rouge">bbox</code> property. (<a href="https://github.com/mathjax/MathJax-src/pull/495">#495</a>)</li>
<li>Move <code class="language-plaintext highlighter-rouge">output/common/BBox.ts</code> to util directory. (<a href="https://github.com/mathjax/MathJax-src/pull/494">#494</a>)</li>
<li>Move <code class="language-plaintext highlighter-rouge">output/common/CssStyles.ts</code> to <code class="language-plaintext highlighter-rouge">util/StyleList.ts</code>. (<a href="https://github.com/mathjax/MathJax-src/pull/493">#493</a>)</li>
</ul>
<h2 id="bug-fixes-in-this-release">Bug Fixes in this Release</h2>
<ul>
<li>Fix LiteDOM comments and add support for DOCTYPE. (<a href="https://github.com/mathjax/MathJax-src/pull/523">#523</a>)</li>
<li>Remove ids from assistive MathML to avoid duplicates. (<a href="https://github.com/mathjax/MathJax-src/pull/525">#525</a>)</li>
<li>Fix SRE source location to work in node-main and components. (<a href="https://github.com/mathjax/MathJax-src/pull/521">#521</a>)</li>
<li>Don’t replace stylesheet unnecessarily. (<a href="https://github.com/mathjax/MathJax/issues/2454">mathjax/MathJax#2454</a>)</li>
<li>Properly inherit <code class="language-plaintext highlighter-rouge">scriptminsize</code> and <code class="language-plaintext highlighter-rouge">scriptsizemultiplier</code>. (<a href="https://github.com/mathjax/MathJax-src/pull/515">#515</a>)</li>
<li>Fix processing of <code class="language-plaintext highlighter-rouge">texClass</code> for multi-character <code class="language-plaintext highlighter-rouge"><mi></code> elements. (<a href="https://github.com/mathjax/MathJax-src/pull/503">#503</a>)</li>
<li>Fix <code class="language-plaintext highlighter-rouge">node-main</code> to be able to load SRE more easily. (<a href="https://github.com/mathjax/MathJax-src/pull/479">#479</a>)</li>
<li>Fix problems with <code class="language-plaintext highlighter-rouge">texClass</code>. (<a href="https://github.com/mathjax/MathJax-src/pull/512">#512</a>)</li>
<li>Handle <code class="language-plaintext highlighter-rouge">classList</code> when elements don’t have it. (<a href="https://github.com/mathjax/MathJax/issues/2411">mathjax/MathJax#2411</a>)</li>
<li>Make <code class="language-plaintext highlighter-rouge">\underset</code> explicitly turn off movablelimits. (<a href="https://github.com/mathjax/MathJax/issues/2460">mathjax/MathJax#2460</a>)</li>
<li>Make <code class="language-plaintext highlighter-rouge">\boldsymbol\partial</code> work properly. (<a href="https://github.com/mathjax/MathJax/issues/2417">mathjax/MathJax#2417</a>)</li>
<li>Fix issue with <code class="language-plaintext highlighter-rouge">\overbrace</code> in SVG output. (<a href="https://github.com/mathjax/MathJax/issues/2402">mathjax/MathJax#2402</a>)</li>
<li>Fix processing of root directory under Windows. (<a href="https://github.com/mathjax/MathJax/issues/2486">mathjax/MathJax#2486</a>)</li>
<li>Allow spaces after \begin, \end, and \ref when finding math delimiters. (<a href="https://github.com/mathjax/MathJax/issues/2494">mathjax/MathJax#2494</a>)</li>
<li>Fix problem with maction when the math is converted from a string. (<a href="https://github.com/mathjax/MathJax/issues/2490">mathjax/MathJax#2490</a>)</li>
<li>Fix Unicode mapping of \ncong (<a href="https://github.com/mathjax/MathJax/issues/2497">mathjax/MathJax#2497</a>)</li>
<li>Remove extra remapping of stretchy characters (<a href="https://github.com/mathjax/MathJax/issues/2497">mathjax/MathJax#2497</a>)</li>
</ul>
<h2 id="availability-of-310">Availability of 3.1.0</h2>
<p>Although version 3.1.0 was released earlier today, it may take a day or two for the new version to propagate to the various CDN network computers, so you may not see v3.1.0 immediately if you are loading mathjax using a generic <code class="language-plaintext highlighter-rouge">mathjax@2</code> URL. You should be able to obtain it immediately if you use the full version <code class="language-plaintext highlighter-rouge">mathjax@3.1.0</code>.</p>
<p>You may also have a cached version in your browser, so may need to either clear the browser cache, or relaunch your browser (or both) in order to get the latest version (the cached version should expire in about a week, depending on the CDN being used).</p>
<p>Note that it is possible for some files to be updated before others, so it may be the case that users of websites that load extensions (either explicitly or by autoloading TeX packages) may get mixed versions for until the CDN versions stabilize, which should be within a day. If you are loading one of the combined components (e.g., <code class="language-plaintext highlighter-rouge">tex-chml.js</code>), this is less likely to be an issue, and if you are loading a component ending in <code class="language-plaintext highlighter-rouge">-full</code> it is even less likely to occur.</p>
<p>Version 3.1.0 is available immediately from npm and GitHub for use in node applications.</p>
MathJax v2.7.9 now availablehttps://www.mathjax.org/MathJax-v2-7-9-available/2020-08-25T00:00:00+00:002020-08-25T00:00:00+00:00The MathJax team is happy to release version 2.7.9 of MathJax, which updates the version of the Speech-Rule Engine (SRE) that underlies MathJax’s accessibility features. MathJax now uses version 3.1 of SRE, which includes new languages (German and French), and access to the Clearspeak rules via the accessibility menu. It also includes bug fixes in SRE, and faster conversion of expressions to speech. See the SRE release notes for details (note that MathJax was using version 2.4 previously, and there have been a number of updates since that version).
<p>The MathJax team is happy to release version 2.7.9 of MathJax, which updates the version of the Speech-Rule Engine (SRE) that underlies MathJax’s accessibility features. MathJax now uses version 3.1 of SRE, which includes new languages (German and French), and access to the Clearspeak rules via the accessibility menu. It also includes bug fixes in SRE, and faster conversion of expressions to speech. See the <a href="https://github.com/zorkow/speech-rule-engine/releases">SRE release notes</a> for details (note that MathJax was using version 2.4 previously, and there have been a number of updates since that version).</p>
<p>MathJax 2.7.9 also updates the a11y extensions to version 1.6.0 to take advantage of the new SRE version.</p>
<h2 id="mathjax-and-cdnjs">MathJax and CDNJS</h2>
<p>MathJax is hosted by a number of different CDNs. For version 2, we had been recommending <code class="language-plaintext highlighter-rouge">cdnjs.cloudflare.com</code>, which had served us well for many years. Now that MathJax has released version 3, it appears that <code class="language-plaintext highlighter-rouge">cdnjs</code> is no longer picking up earlier versions, so version 2.7.9 has not appeared there. That means version 2.7.9 cannot be obtained from <code class="language-plaintext highlighter-rouge">cdnjs</code>, and the <code class="language-plaintext highlighter-rouge">latest.js</code> file will not update automatically to this version</p>
<p>In order to use MathJax v2.7.9, you will need to change the CDN to one of the other ones that does provide all versions of MathJax. Our current recommendation is <code class="language-plaintext highlighter-rouge">jsdelivr</code>, which provides all past versions, as well as an automatic latest version if you wish. For example, you can use</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cdn.jsdelivr.net/npm/mathjax@2/MathJax.js
</code></pre></div></div>
<p>to obtain the latest version 2 release (2.7.9 currently). Alternatively, you can request a specific version and stay at it until you are ready to change to a new version, e.g.,</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cdn.jsdelivr.net/npm/mathjax@2.7.9/MathJax.js
</code></pre></div></div>
<p>will keep you at version 2.7.9 until you change the version number yourself.</p>
<p>Other CDNs are listed in the <a href="http://docs.mathjax.org/en/latest/web/start.html#using-mathjax-from-a-content-delivery-network-cdn">MathJax documentation</a>, in case you prefer one of the alternatives.</p>
<h2 id="availability-of-279">Availability of 2.7.9</h2>
<p>Although version 2.7.9 was released earlier today, it may take a day or two for the new version to propagate to the various CDN network computers, so you may not see v2.7.9 immediately if you are loading mathjax using a generic <code class="language-plaintext highlighter-rouge">mathjax@2</code> URL. You should be able to obtain it immediately if you use the full version <code class="language-plaintext highlighter-rouge">mathjax@2.7.9</code>.</p>
<p>You may also have a cached version in your browser, so may need to either clear the browser cache, or relaunch your browser (or both) in order to get the latest version (the cached version should expire in about a week, depending on the CDN being used).</p>
<p>Version 2.7.9 is available immediately from npm and GitHub for use in node applications.</p>
Springer Nature continues as MathJax supporterhttps://www.mathjax.org/springer-nature-continues-as-mathjax-supporter-2020/2020-06-16T00:00:00+00:002020-06-16T00:00:00+00:00Springer Nature continues to support the MathJax project as a MathJax Supporter. Springer Nature describes themselves as follows:
<p><a href="http://www.springernature.com/">Springer Nature</a> continues to support the MathJax project as a MathJax Supporter. Springer Nature describes themselves as follows:</p>
<p>“Springer Nature advances discovery by providing the best possible service to the whole research community. We make sure all the research we publish is significant, robust and stands up to objective scrutiny and reaches all relevant audiences in the best possible format so it can be discovered, accessed, used, re-used and shared. We support librarians with innovation in technology and data; and provide quality publishing support to societies. Springer Nature is home to trusted brands including Springer, Nature Research, BMC, Palgrave Macmillan and Scientific American. For more information please visit <a href="https://www.springernature.com">springernature.com</a> and <a href="https://www.facebook.com/SpringerNature/">@SpringerNature</a>.”</p>
<p>“The quality of our online publications relies on accurate display of mathematical content”, they continue. “MathJax is critical to achieving this. We are pleased to continue our sponsorship of MathJax and engage with its team as well as a community dedicated to the advancement of mathematics on the web.”</p>
<p>MathJax’s lead developer responds: “We value the contribution that Springer Nature makes to science, and their support of the MathJax project. Springer’s ongoing donations to MathJax allow us to develop new features, and help maintain MathJax as a key component for accessible mathematics on the web.”</p>
<p>The MathJax team looks forward to continuing the collaboration with Springer and welcomes their ongoing support for the MathJax project.</p>
The London Mathematical Society continues as MathJax supporterhttps://www.mathjax.org/the-london-mathematical-society-continues-as-mathjax-supporter-2020/2020-05-29T00:00:00+00:002020-05-29T00:00:00+00:00The London Mathematical Society continues to support MathJax as a MathJax Supporter.
<p>The <a href="http://lms.ac.uk/">London Mathematical Society</a> continues to support MathJax as a MathJax Supporter.</p>
<p>The London Mathematical Society (LMS) is the major UK learned society for mathematics with a nationwide and international membership. The LMS offers a rich publishing program, provides a diverse grant program, and organizes scientific meetings and lectures. Beyond that, the LMS contributes to public debate on matters affecting mathematics and mathematics education.</p>
<p>“The London Mathematical Society ensures that MathJax is used for rendering browser-friendly mathematics in its journals”, said Caroline Wallace, Executive Secretary, LMS. “Provision of full-text HTML along with the PDF is now the publishing standard. MathJax provides a particularly simple means of rendering mathematics in HTML because of its ability to display embedded LaTeX equations. The LMS is proud to support the continued development and enhancement of MathJax to ensure that it remains up to date, versatile, and continues to offer fluid rendering of mathematical web pages.”</p>
<p>“We value the continuing support of the London Mathematical Society as one of our key sponsors”, said Davide Cervone, MathJax lead developer and project manager. “Their support helps us to maintain and improve MathJax, so that MathJax remains reliable, flexible, and open source into the future.”</p>
<p>We look forward to continuing our collaboration with the LMS, and welcome their ongoing support for the MathJax project.</p>
MathJax v3.0.5 now availablehttps://www.mathjax.org/MathJax-v3-0-5-available/2020-04-10T00:00:00+00:002020-04-10T00:00:00+00:00Last August, the MathJax Consortium quietly released version 3.0.0 of MathJax, a complete rewrite of MathJax from the ground up with the goal of modernizing MathJax’s internal infrastructure, bringing it more flexibility for use with contemporary web technologies, making it easier to use with NodeJS for pre-processing and server-side support, and making it faster to render your mathematics.
<p>Last August, the MathJax Consortium quietly released version 3.0.0 of MathJax, a complete rewrite of MathJax from the ground up with the goal of modernizing MathJax’s internal infrastructure, bringing it more flexibility for use with contemporary web technologies, making it easier to use with NodeJS for pre-processing and server-side support, and making it faster to render your mathematics.</p>
<p>Because this was a major update to MathJax, with a completely new application programmer interface (API), and because not all the MathJax version 2 features were ported to version 3, we wanted to wait a bit before making a formal announcement of the new version. During the fall, we collected bug reports and responded to requests for code examples, and in early February 2020, we released version 3.0.1, a bug-fix version that resolved a number of important issues with 3.0.0.</p>
<p>Today, we release version 3.0.5, which fixes additional bugs, and puts MathJax v3 into a stable enough position to warrant formal announcement of the availability of version 3. Note that versions 3.0.2 and 3.0.3 had problems with their <code class="language-plaintext highlighter-rouge">npm</code> deployment, and have been removed. Version <a href="https://github.com/mathjax/MathJax-src/releases/tag/3.0.4">3.0.4</a> is the bug-fix release that fixes most issues that have been reported in v3.0.1, and v3.0.5 is a hot-fix release to resolve an important problem with v3.0.4.</p>
<p>We are pleased to present this result of over three years of work by the MathJax developers. The following material comes from the <a href="">What’s New in v3</a> section of the <a href="http://docs.mathjax.org/en/latest/index.html">MathJax documentation</a>.</p>
<p>For information about converting from version 2 to version 3, see the section on <a href="http://docs.mathjax.org/en/latest/upgrading/v2.html">Upgrading from v2</a>. In particular, note that there is a <a href="https://mathjax.github.io/MathJax-demos-web/convert-configuration/convert-configuration.html">configuration conversion tool</a> to help you move your version 2 configuration to the new version 3 format. There are a number of examples for using MathJax in web pages in the <a href="https://github.com/mathjax/MathJax-demos-web#mathjax-demos-web">MathJax Web Demos</a> repository, and examples of using MathJax in NodeJS applications in the <a href="https://github.com/mathjax/MathJax-demos-node#mathjax-demos-node">MathJax Node Demos</a> repository.</p>
<h1 id="features-of-version-3">Features of Version 3</h1>
<h2 id="improved-speed">Improved Speed</h2>
<p>There were a number of design goals to the version 3 rewrite. A primary one was to improve the rendering speed of MathJax, and we feel we have accomplished that. Because the two versions operate so differently, it is difficult to make precise comparisons, but in tests that render a complete page with several hundred expressions, we see a reduction in rendering time of between 60 and 80 percent, depending on the browser and type of computer.</p>
<h2 id="more-flexibility">More Flexibility</h2>
<p>Another goal was to make MathJax 3 more flexible for web developers using MathJax as part of a larger framework, while still keeping it easy to use in simple settings. To that end, we have broken down the actions that MathJax takes into smaller units than in version 2, and made it possible to call on them individually, or replace them with alternative versions of your own. For example, the typesetting process has been broken into a number of pieces, including finding the math in the page, compiling it into the internal format (MathML), getting metric data for the location of the math, converting the math into the output format, inserting it into the page, adding menu event handlers, and so on. You have control over which of these to perform, and can modify or remove the existing actions, or add new ones of your own. See the <a href="http://docs.mathjax.org/en/latest/options/document.html#document-renderactions"><code class="language-plaintext highlighter-rouge">renderActions</code></a> documentation for details.</p>
<h2 id="improved-support-for-assistive-technology">Improved Support for Assistive Technology</h2>
<p>Accessibility of mathematics has always been an important focus of MathJax, and that continues to be the case in version 3. The speech-rule engine (SRE) that underlies most of MathJax’s assistive support has been improved for version 3 to include more sophisticated speech generation, support for Nemeth Braille output, localization in several languages, and more user control over the speech that is generated. See the <a href="http://docs.mathjax.org/en/latest/basic/accessibility.html#accessibility">Accessibility Features</a> page for more details.</p>
<h2 id="synchronous-conversion">Synchronous Conversion</h2>
<p>A key feature that we wanted to include in version 3 is the ability to run MathJax synchronously, and in particular, to provide a function that can translate an input string (say a TeX expression) into an output DOM tree (say an SVG image). This was not really possible in version 2, since its operation was inherently asynchronous at a fundamental level. With MathJax version 3, this is straight-forward, as we provide a synchronous typesetting path, both within the page, and for individual expressions, provided you load all the components you need ahead of time. See <a href="http://docs.mathjax.org/en/latest/web/typeset.html#web-typeset">Typesetting and Converting Mathematics</a> for details.</p>
<h2 id="no-queues-signals-callbacks">No Queues, Signals, Callbacks</h2>
<p>One of the more difficult aspects of working with MathJax version 2 was having to synchronize your actions with those of MathJax. This involved using <em>queues</em>, <em>callbacks</em>, and <em>signals</em> to mediate the asynchronous actions of MathJax. Since these were not standard javascript paradigms, they caused confusion (and headaches) for many developers trying to use MathJax. With version 3, MathJax has the option of working synchronously (as described above), but it still allows for asynchronous operation (<em>e.g.</em>, to allow TeX’s <code class="language-plaintext highlighter-rouge">\require</code> command to load extensions dynamically) if you wish. This no longer relies on queues, callbacks, and signals, however. Instead, these actions are managed through the ES6 <a href="https://developers.google.com/web/fundamentals/primers/promises">promise</a>, which is a javascript standard and should make integrating MathJax into your own applications more straight-forward.</p>
<h2 id="package-manager-support">Package Manager Support</h2>
<p>Because MathJax version 2 used its own loading mechanism for accessing its components, and because there was no method for combining all the pieces needed by MathJax into one file, MathJax did not work well with javascript packaging systems like <code class="language-plaintext highlighter-rouge">webpack</code>. Version 3 resolves that problem, so it should interoperate better with modern web workflows. You can make your own custom single-file builds of MathJax (see <a href="http://docs.mathjax.org/en/latest/web/webpack.html#web-custom-build">Making a Custom Build of MathJax</a>), or can include it as one component of a larger asset file.</p>
<h2 id="mathjax-components">MathJax Components</h2>
<p>MathJax 3 still provides a loading mechanism similar to the one from version 2, however, so you can customize the extensions that it loads, meaning that you only load the ones you need (though this does require that you use MathJax in its asynchronous mode). The various pieces of MathJax have been packaged into “components” that can be mixed and matched as needed, and which you configure through a global <code class="language-plaintext highlighter-rouge">MathJax</code> variable (see <a href="http://docs.mathjax.org/en/latest/web/examples.html#web-examples">Examples in a Browser</a>). This is how MathJax is being distributed through the various CDNs that host it. When loaded this way, MathJax will automatically set up all the objects and functions that you need to use the components you have loaded, giving you easy access to typesetting and conversion functions for the input and output formats you have selected. See the section on <a href="http://docs.mathjax.org/en/latest/web/components/index.html#web-components">The MathJax Components</a> for more information. You can also create your own custom components to complement or replace the ones provided on the CDN (see <a href="http://docs.mathjax.org/en/latest/web/webpack.html#custom-extension">A Custom Extension</a> for more).</p>
<h2 id="startup-actions">Startup Actions</h2>
<p>If you use any of the <a href="http://docs.mathjax.org/en/latest/web/components/combined.html#combined-components">combined component</a> files, MathJax will perform a number of actions during its startup process. In particular, it will create the input and output jax, math document, DOM adaptor, and other objects that are needed in order to perform typesetting in your document. You can access these through the <code class="language-plaintext highlighter-rouge">MathJax.startup</code> object, if you need to. MathJax will also set up functions that perform typesetting for you, and conversion between the various input and output formats that you have loaded. This should make it easy to perform the most important actions available in MathJax. See <a href="http://docs.mathjax.org/en/latest/web/typeset.html#web-typeset">Typesetting and Converting Mathematics</a> for more details.</p>
<h2 id="server-side-mathjax">Server-Side MathJax</h2>
<p>While MathJax 2 was designed for use in a web browser, an important use case that this left unaddressed is pre-processing mathematics on a server. For version 2, we provided <a href="https://github.com/mathjax/mathjax-node">mathjax-node</a> to fill this gap, but it is not as flexible or easy to use as many would have liked. MathJax 3 resolves this problem by being designed to work with node applications in essentially the same way as in a browser. That is, you can load MathJax components, configure them through the MathJax global variable, and call the same functions for typesetting and conversion as you do within a browser. This makes parallel development for both the browser and server much easier.</p>
<p>Moreover, node applications can access MathJax modules directly (without the packaging used for MathJax components). This gives you the most direct access to MathJax’s features, and the most flexibility in modifying MathJax’s actions. See <a href="http://docs.mathjax.org/en/latest/server/examples.html#node-examples">Examples of MathJax in Node</a> for examples of how this is done.</p>
<h2 id="es6-and-typescript">ES6 and Typescript</h2>
<p>MathJax 3 is written using ES6 modules and the <a href="https://www.typescriptlang.org/">Typescript</a> language. This means the source code includes type information (which improves the code reliability), and allows MathJax to be down-compiled to ES5 for older browsers while still taking advantage of modern javascript programming techniques. It also means that you can produce pure ES6 versions of MathJax (rather than ES5) if you wish; these should be smaller and faster than their ES5 equivalents, though they will only run in modern browsers that support ES6, and so limit your readership. We may provide both ES6 and ES5 versions on the CDN in the future.</p>
<h1 id="new-features-for-existing-components">New Features for Existing Components</h1>
<p>In addition to the new structure for MathJax described above, some new features have been added to existing pieces of MathJax.</p>
<h2 id="tex-input-extensions">TeX Input Extensions</h2>
<p>There are two new TeX input extensions: <a href="http://docs.mathjax.org/en/latest/input/tex/extensions/braket.html#tex-braket">braket</a> and <a href="http://docs.mathjax.org/en/latest/input/tex/extensions/braket.html#tex-braket">physics</a>. Also, some functionality that was built into the TeX input jax in version 2 has been moved into extensions in version 3. This includes the <a href="http://docs.mathjax.org/en/latest/input/tex/extensions/configMacros.html#tex-configmacros">macros</a> configuration option, the <a href="http://docs.mathjax.org/en/latest/input/tex/extensions/tagFormat.html#tex-tagformat">tag formatting</a> configuration options, and the <a href="http://docs.mathjax.org/en/latest/input/tex/extensions/require.html#tex-require">require</a> macro. The new <a href="http://docs.mathjax.org/en/latest/input/tex/extensions/autoload.html#tex-autoload">autoload</a> extension replaces the older autoload-all extension, is more configurable, and is included in the TeX input components by default. There a several extensions that are not yet ported to version 3, including the <code class="language-plaintext highlighter-rouge">autobold</code>, <code class="language-plaintext highlighter-rouge">mediawiki-texvc</code>, and the various third-party extensions.</p>
<h2 id="svg-output">SVG Output</h2>
<p>The SVG output for equations with labels has been improved so that the positions of the labels now react to changes in the container width (just like they do in the HTML output formats).</p>
<h2 id="improved-expression-explorer">Improved Expression Explorer</h2>
<p>The interactive expression explorer has been improved in a number of ways. It now includes better heuristics for creating the speech text for the expressions you explore, provides more keyboard control of the features in play during your exploration, adds support for braille output, adds support for zooming on subexpressions, and more. See the <a href="http://docs.mathjax.org/en/latest/basic/accessibility.html#accessibility">Accessibility Features</a> page for more details.</p>
MathJax v2.7.8 now availablehttps://www.mathjax.org/MathJax-v2-7-8-available/2020-04-08T00:00:00+00:002020-04-08T00:00:00+00:00It has been some time since there was a bug-fix release for MathJax version 2. This is largely due to our efforts to produce version 3, which was a complete rewrite of MathJax, so was pretty time-intensive. Now that version 3 is out, we have been able to return to version 2.7 for a welcome update.
<p>It has been some time since there was a bug-fix release for MathJax version 2. This is largely due to our efforts to produce version 3, which was a complete rewrite of MathJax, so was pretty time-intensive. Now that version 3 is out, we have been able to return to version 2.7 for a welcome update.</p>
<p>We are happy to release version 2.7.8, which fixes a number of bugs, many of them long-standing ones. It also adds a new extension to handle some tex-mode macros inside <code class="language-plaintext highlighter-rouge">\text{}</code> and similar commands.</p>
<h2 id="mathjax-and-cdnjs">MathJax and CDNJS</h2>
<p>MathJax is hosted by a number of different CDNs. For version 2, we had been recommending <code class="language-plaintext highlighter-rouge">cdnjs.cloudflare.com</code>, which had served us well for many years. Now that MathJax has released version 3, it appears that <code class="language-plaintext highlighter-rouge">cdnjs</code> is no longer picking up earlier versions, so version 2.7.8 has not appeared there. That means version 2.7.8 can not be obtained from <code class="language-plaintext highlighter-rouge">cdnjs</code>, and the <code class="language-plaintext highlighter-rouge">latest.js</code> file will not update automatically to this version</p>
<p>In order to use MathJax v2.7.8, you will need to change the CDN to one of the other ones that does provide all versions of MathJax. Our current recommendation is <code class="language-plaintext highlighter-rouge">jsdelivr</code>, which provides all past versions, as well as an automatic latest version if you wish. For example, you can use</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cdn.jsdelivr.net/npm/mathjax@2/MathJax.js
</code></pre></div></div>
<p>to obtain the latest version 2 release (2.7.8 currently). Alternatively, you can request a specific version and stay witht at until you are ready to change to a new version, e.g.,</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cdn.jsdelivr.net/npm/mathjax@2.7.8/MathJax.js
</code></pre></div></div>
<p>will keep you at version 2.7.8 until you change the version number yourself.</p>
<p>Other CDNs are listed in the <a href="http://docs.mathjax.org/en/latest/web/start.html#using-mathjax-from-a-content-delivery-network-cdn">MathJax documentation</a>, in case you prefer one of the alternatives.</p>
<h2 id="bug-fixes-in-this-version">Bug Fixes in this Version</h2>
<p>The following bug fixes are included in version 2.7.8:</p>
<h3 id="output-issues">Output issues</h3>
<ul>
<li>
<p>Fix <code class="language-plaintext highlighter-rouge">displayIndent</code> in CHTML with floating elements. (<a href="https://github.com/mathjax/MathJax/issues/2352">#2352</a>)</p>
</li>
<li>
<p>Add skew values to STIX font italic and bold-italic characters in Plane 1. (<a href="https://github.com/mathjax/MathJax/issues/2050">#2050</a>)</p>
</li>
<li>
<p>Fix CHTML <code class="language-plaintext highlighter-rouge">mroot</code> positioning to match SVG and HTML-CSS. (<a href="https://github.com/mathjax/MathJax/issues/2143">#2143</a>)</p>
</li>
<li>
<p>Make line breaks cause full-width bounding box when they are at the top level. (<a href="https://github.com/mathjax/MathJax/issues/1804">#1804</a>)</p>
</li>
<li>
<p>Fix problem with italic correction not being removed from integrals after a line break. (<a href="https://github.com/mathjax/MathJax/issues/2139">#2139</a>)</p>
</li>
<li>
<p>Fix scaling of enclosures in zoomed CHTML. (<a href="https://github.com/mathjax/MathJax/issues/1815">#1815</a>)</p>
</li>
<li>
<p>Use proper spacing for <code class="language-plaintext highlighter-rouge">mstyle</code> containing a stretchy operator. (<a href="https://github.com/mathjax/MathJax/issues/2052">#2052</a>)</p>
</li>
<li>
<p>Add some missing stretchy character data. (<a href="https://github.com/mathjax/MathJax/issues/2135">#2135</a>)</p>
</li>
<li>
<p>Add CSS to fix RTL issue in Chrome. (<a href="https://github.com/mathjax/MathJax/issues/2190">#2190</a>)</p>
</li>
<li>
<p>Fix over-wide SVG output when <code class="language-plaintext highlighter-rouge">\vphantom</code> is used. (<a href="https://github.com/mathjax/MathJax/issues/1637">#1637</a>)</p>
</li>
<li>
<p>Scale <code class="language-plaintext highlighter-rouge">mglyphs</code> to proper script size. (<a href="https://github.com/mathjax/MathJax/issues/#2125">#2125</a>)</p>
</li>
<li>
<p>Make sure SVG elements are scaled properly in <code class="language-plaintext highlighter-rouge">menclose</code> for CHTML (<a href="https://github.com/mathjax/MathJax/issues/2089">#2089</a>)</p>
</li>
<li>
<p>Properly handle <code class="language-plaintext highlighter-rouge">'fit'</code> columns in percentage-width tables. (<a href="https://github.com/mathjax/MathJax/issues/2075">#2075</a>)</p>
</li>
<li>
<p>Correct offset into Math Alphabet for bold-italic in STIX font data. (<a href="https://github.com/mathjax/MathJax/issues/2035">#2035</a>)</p>
</li>
</ul>
<h2 id="tex-input">TeX Input</h2>
<ul>
<li>
<p>Don’t add <code class="language-plaintext highlighter-rouge">\text</code> to operators whose name already include it. (<a href="https://github.com/mathjax/MathJax/issues/2222">#2222</a>)</p>
</li>
<li>
<p>Allow <code class="language-plaintext highlighter-rouge">\newline</code> to work like <code class="language-plaintext highlighter-rouge">\\</code>. (<a href="https://github.com/mathjax/MathJax/issues/2141">#2141</a>)</p>
</li>
<li>
<p>Use proper spacing for <code class="language-plaintext highlighter-rouge">\mathrel</code> in align environment. (<a href="2175">#2175</a>)</p>
</li>
<li>
<p>Number a single <code class="language-plaintext highlighter-rouge">split</code> environment when <code class="language-plaintext highlighter-rouge">autoNumber</code> is <code class="language-plaintext highlighter-rouge">'all'</code>. (<a href="https://github.com/mathjax/MathJax/issues/2272">#2272</a>, <a href="https://github.com/mathjax/MathJax/issues/1811">#1811</a>)</p>
</li>
<li>
<p>[mediawiki-texvc.js] drop redefinition of <code class="language-plaintext highlighter-rouge">\oint</code> (<a href="https://github.com/mathjax/MathJax/issues/2095">#2095</a>)</p>
</li>
<li>
<p>Add extension to process some text-mode macros (<a href="https://github.com/mathjax/MathJax/issues/2051">#2051</a>)</p>
</li>
<li>
<p>Fix handing of unbalanced braces in TeX input. (<a href="https://github.com/mathjax/MathJax/issues/2036">#2036</a>)</p>
</li>
</ul>
<h2 id="miscellaneous">Miscellaneous</h2>
<ul>
<li>
<p>Update mhchem, SRE, and AsciiMath to current versions (<a href="https://github.com/mathjax/MathJax/issues/2344">#2344</a>)</p>
</li>
<li>
<p>Allow <code class="language-plaintext highlighter-rouge">tex2jax</code> end delimiters to be close braces. (<a href="https://github.com/mathjax/MathJax/issues/2034">#2034</a>)</p>
</li>
<li>
<p>Remove references to <code class="language-plaintext highlighter-rouge">cdn.mathjax.org</code>. (<a href="https://github.com/mathjax/MathJax/issues/2160">#2160</a>)</p>
</li>
</ul>
Taylor & Francis continues as MathJax Supporterhttps://www.mathjax.org/taylor-francis-continues-as-mathjax-supporter-2020/2020-03-20T00:00:00+00:002020-03-20T00:00:00+00:00Taylor & Francis continues to support MathJax as a MathJax Supporter.
<p><a href="http://www.taylorandfrancisgroup.com/">Taylor & Francis</a> continues to support MathJax as a <a href="/#supporters">MathJax Supporter</a>.</p>
<p>Taylor & Francis, a division of <a href="http://www.informa.com/">Informa plc</a>, is a leading international academic publisher with more than 2,700 journals, over 7,000 new books each year, and a books backlist in excess of 140,000 specialist titles. Access to all journals from Taylor & Francis, Routledge and Psychology Press is provided by T&F’s state-of-the art platform <a href="http://tandfonline.com">Taylor & Francis Online</a> where MathJax provides beautiful, accessible mathematics in publications such as the journals of the <a href="http://amstat.tandfonline.com/">American Statistical Association</a> and the <a href="https://maa.tandfonline.com/">Mathematical Association of America</a>.</p>
<p>Paul Naish, Global Head of Portfolio for Mathematics & Statistics at Taylor & Francis, noted “Taylor & Francis are dedicated supporters of MathJax since 2014. It provides elegant, accurate, and adaptive mathematical equations in any browser which is crucial to researchers in multiple disciplines across the globe.”</p>
<p>“Thanks to the dedication of sponsors like Taylor & Francis, we are able to continue to improve MathJax as we move forward with MathJax version 3,” comments Davide Cervone, MathJax lead developer and project manager. “The support we receive from the team at Taylor & Francis is invaluable in achieving our mission to make mathematics an integral part of the web.”</p>
<p>We look forward to continuing the collaboration with Taylor & Francis, and welcome their ongoing participation in the MathJax project.</p>
MathJax v2.7.6 now availablehttps://www.mathjax.org/mathjax-v2-7-6-now-available/2019-08-21T00:00:00+00:002019-08-21T00:00:00+00:00We are happy to officially release MathJax v2.7.6 today.
<p>We are happy to officially release MathJax v2.7.6 today.</p>
<p>This is a maintenance release that fixes an issue with the <code class="language-plaintext highlighter-rouge">latest.js</code> file that is used to obtain the most current 2.x version of MathJax from one of the CDNs that serves MathJax. The problem is that the most current version is only obtained if the highest version on the CDN is version 2.x.y for some x and y, so when MathJax goes to version 3.0.0 (scheduled for August 31st), <code class="language-plaintext highlighter-rouge">latest.js</code> will find that the current CDN version is 3.0.0 and (correctly) will not switch to that, but instead will (incorrectly) use the version from which <code class="language-plaintext highlighter-rouge">latest.js</code> was loaded rather than the highest 2.x.y available. This means that when version 3.0 is released, sites using <code class="language-plaintext highlighter-rouge">latest.js</code> will fall back from version 2.7.5 to the version that they specified for <code class="language-plaintext highlighter-rouge">latests.js</code>. MathJax will still run on those pages, but it may be an earlier version than you have been getting in the past.</p>
<p>The new version of <code class="language-plaintext highlighter-rouge">latest.js</code> properly handles the situation when the current version is not 2.x, so switching to</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.6/latest.js
</code></pre></div></div>
<p>should mean you will get the highest 2.x version in the future, even when v3.0 is released. This version also updates the CDN list to include additional servers, and to remove RawGit, which is no longer in service. Finally, it updates the packed version of the <code class="language-plaintext highlighter-rouge">mhchem</code> TeX extension to version 3.3.0, so that the unpacked and packed versions are the same.</p>
<p>We recommend anyone using <code class="language-plaintext highlighter-rouge">latest.js</code> switch to this version.</p>
MathJax v3 beta.4 releasedhttps://www.mathjax.org/MathJax-v3-beta.4/2019-05-21T00:00:00+00:002019-05-21T00:00:00+00:00The MathJax team has been working hard on a major rewrite of MathJax from the ground up, with the goal of modernizing MathJax’s internal infrastructure, bringing it more flexibility for use with contemporary web technologies, making it easier to use with NodeJS for pre-processing and server-side support, and making it faster to render your mathematics. We have made headway in all these areas and we are pleased to announce the fourth public beta release of MathJax v3.
<p>The MathJax team has been working hard on a major rewrite of MathJax from the ground up, with the goal of modernizing MathJax’s internal infrastructure, bringing it more flexibility for use with contemporary web technologies, making it easier to use with NodeJS for pre-processing and server-side support, and making it faster to render your mathematics. We have made headway in all these areas and we are pleased to announce the fourth public <a href="https://github.com/mathjax/mathjax-v3/releases/tag/3.0.0-beta.4">beta release of MathJax v3</a>.</p>
<h2 id="where-to-find-the-beta-release">Where to Find the Beta Release</h2>
<p>The code for the release is available in the <a href="https://github.com/mathjax/mathjax-v3/tree/beta">beta</a> branch of the <a href="https://github.com/mathjax/mathjax-v3">MathJax v3</a> github repository.</p>
<p>The <a href="https://github.com/mathjax/mj3-demos">mj3-demos repository</a> includes examples of how to use MathJax v3 in web browsers, including interactive examples, custom configurations, custom tex extensions, and custom builds that you can use as a starting point for your own projects. See the instructions in that repository for more details.</p>
<p>The <a href="https://github.com/mathjax/mj3-demos-node">mj3-demos-node repository</a> includes examples for how to use MathJax v3 in NodeJS applications, and includes sample tools and examples of how to use a number of MathJax v3’s features.</p>
<h2 id="whats-included-in-mathjax-v3">What’s Included in MathJax v3</h2>
<p>This beta version includes two input processors (TeX and MathML) and two output processors (CommonHTML and SVG). Other input and output processors (e.g., AsciiMath input) will be added in the future.</p>
<p>The current TeX input processor has all the core functionality of the MathJax v2 TeX input, and nearly all the extensions that are now available in v3.</p>
<p>The CommonHTML and SVG output implement all the MathML elements that they do in v2, but do not yet include support for line breaking (neither automatic nor explicit ones); this will be implemented in a later version. Both output renderers currently only support the MathJax TeX font; other fonts will be added in the future.</p>
<h2 id="whats-new">What’s New</h2>
<p>This beta includes a number of important improvements over the beta.3 version.</p>
<h3 id="mathjax-components">MathJax Components</h3>
<p>The biggest change is the ability to create MathJax “components” that can be dynamically loaded by MathJax as needed (much as could be done in version 2). This allows portions of MathJax to be bundled together into components that include most or all of what you need to run MathJax, but still allows less-used pieces to be loaded on demand later when needed. This is similar to v2’s combined configuration files and TeX extensions.</p>
<p>The main goal of these components is to use them for the delivery of MathJax from the CDNs that host MathJax. This allows you to customize the MathJax components that you use without having to have (as single files on the CDN) every possible combination of parts that anyone would need packaged together. We will provide a number of all-in-one packages that include an input and output jax together with the data for a font to be used, but also will provide separate components for the individual input and output jax, fonts, TeX extensions, and so on, so that you can mix-and-match them as needed.</p>
<p>MathJax components can be used in the browser as well as on the server in <code class="language-plaintext highlighter-rouge">NodeJS</code> applications, so browser and server-side applications can use the same code base and configurations. Components can be combined together into larger packages, either with other MathJax components, or with your own code, via <code class="language-plaintext highlighter-rouge">webpack</code>, for example.</p>
<p>Moreover, the tools for building components are available so that you can create your own custom components that you can serve from your own website if you have special needs not addressed by the CDN. For example, authors writing TeX extensions for MathJa can create their own components that can be loaded into MathJax from a different server even if the core MathJax is loaded from a CDN.</p>
<p>Although components are a convenient way of working with MathJax, those writing <code class="language-plaintext highlighter-rouge">NodeJS</code> scripts that use MathJax need not use the components as we have packaged them at all; they can continue to import MathJax into their projects directly, as in previous beta versions.</p>
<h3 id="configuring-components">Configuring Components</h3>
<p>The component system described above can be configured using a global variable <code class="language-plaintext highlighter-rouge">MathJax</code> that you set before loading the main MathJax component that you are planning to use. The <code class="language-plaintext highlighter-rouge">MathJax</code> variable specifies configuration blocks for the various components in much the same was as was done in version 2 (this is illustrated in the examples below, and described in more detail in a separate section below). MathJax will modify this global variable to include the methods and data that it creates during the startup process for your use in your applications.</p>
<h3 id="rendering-and-converting-math">Rendering and Converting Math</h3>
<p>The mechanism for rendering expressions in previous beta versions of MathJax 3 involved calling a sequence of MathJax commands to perform the individual actions required to find, compile, typeset, and insert the math into the page. These functions are still available, but there are now several new functions to make that process easier and more natural to perform. The <code class="language-plaintext highlighter-rouge">render()</code> method of the <code class="language-plaintext highlighter-rouge">MathDocument</code> and <code class="language-plaintext highlighter-rouge">MathItem</code> classes will perform all the actions normally needed for typesetting math to the page, and the <code class="language-plaintext highlighter-rouge">convert()</code> method will perform conversion from the input format to the output format of the page (or to MathML, which is used internally by MathJax).</p>
<p>These methods use an internal list of actions to be taken when they are called, and those lists are updated automatically when extensions are loaded. For example, when the semantic-enrichment extension is loaded, the action that performs the enrichment is added to <code class="language-plaintext highlighter-rouge">render()</code> and <code class="language-plaintext highlighter-rouge">convert()</code> automatically, so you don’t have to call the extension’s methods yourself. You can even add your own actions to the list, if you want, or could remove the automatic ones to fully customize the rendering process.</p>
<p>If you use the MathJax components described above, MathJax will set up short-hand functions for you for typesetting the page or converting from input to output formats. For example, if you load the <code class="language-plaintext highlighter-rouge">input/tex</code> and <code class="language-plaintext highlighter-rouge">output/chtml</code> components (or the <code class="language-plaintext highlighter-rouge">tex-chtml</code> combonent that combines them), you automatically get methods <code class="language-plaintext highlighter-rouge">Typeset()</code> and <code class="language-plaintext highlighter-rouge">TypesetPromise()</code> for typesetting the page, and <code class="language-plaintext highlighter-rouge">tex2chml()</code>, <code class="language-plaintext highlighter-rouge">tex2chtmlPromise()</code>, <code class="language-plaintext highlighter-rouge">tex2mml()</code>, and <code class="language-plaintext highlighter-rouge">tex2mmlPromise()</code> that convert from TeX to HTML or MathML. You also get <code class="language-plaintext highlighter-rouge">texReset()</code>, <code class="language-plaintext highlighter-rouge">TypesetClear()</code>, and <code class="language-plaintext highlighter-rouge">chtmlStylesheet()</code> that reset TeX’s labels and equation numbers, reset the typesetting system entirely (the information about CSS used, font caches, etc.), and produce the CSS stylesheet object used by CommonHTML for the expressions you have processed so far. The ones ending in <code class="language-plaintext highlighter-rouge">Promise</code> return a promise that is resolved when the math is completed (use this if there is a chance that an external module needs to be loaded, e.g., with <code class="language-plaintext highlighter-rouge">\require</code>), while the others perform the typesetting or conversion and return the result immediately (they will throw an error if an external module needs to be loaded).</p>
<p>If you are using the MathJax components, then the <code class="language-plaintext highlighter-rouge">MathJax.startup</code> object includes references to the important objects created by MathJax automatically, like the input and output jax, the DOM adaptor, and the MathDocument. You may reference these as needed in order to access their methods for more special-purpose needs. Some of the examples below illustrate this.</p>
<h3 id="contextual-menu">Contextual Menu</h3>
<p>A contextual menu similar to the one in version 2 has been added to MathJax v3 in this beta version. It has the actions familiar from version 2, but also includes some new features like copying to the clipboard.</p>
<h3 id="assistive-technology">Assistive Technology</h3>
<p>This beta version now includes support for assistive technology via the generation of speech strings attached to the math elements, and via an interactive expression explorer like the one in version 2. These can be activated using the contextual menu, as in version 2, or by importing the a11y components into your node project or custom webpacked version of MathJax.</p>
<h3 id="commonhtml-css">CommonHTML CSS</h3>
<p>The CommonHTML output now produces only the CSS needed for the expressions on the page, rather than the CSS for every possible character in the font being used. This reduces the number of CSS rules used by CommonHTML considerably, and improves performance of browser refreshes and zooming. If you use <code class="language-plaintext highlighter-rouge">NodeJS</code> applications to preprocess math expressions and capture the CSS output to a separate CSS file, you may need to process all the math expressions before generating the CSS file. Alternatively, there is a new <code class="language-plaintext highlighter-rouge">adaptiveCSS</code> option for the CommonHTML output jax that you can set to <code class="language-plaintext highlighter-rouge">false</code> to have MathJax return to the beta.3 behavior.</p>
<h3 id="svg-font-caching">SVG Font Caching</h3>
<p>The SVG output now includes the option of caching the glyphs used to render the mathematics so that the paths are shared if a character is used more than once. The cache can either be global (all expressions on the page share a common cache) or local (each expression has a cache for glyphs used within it, but they are not shared between expressions). This can be set using the <code class="language-plaintext highlighter-rouge">fontCache</code> option for the SVG jax, and it can be set to <code class="language-plaintext highlighter-rouge">'global'</code>, <code class="language-plaintext highlighter-rouge">'local'</code>, or <code class="language-plaintext highlighter-rouge">'none'</code>. The default is <code class="language-plaintext highlighter-rouge">'local'</code> so that conversion of math to SVG will produce self-contained SVG expressions.</p>
<h3 id="tex-extensions">TeX Extensions</h3>
<p>As part of the new components feature discussed above, the TeX input jax can load TeX extensions in much the same way that v2 could. This is accomplished through the new <code class="language-plaintext highlighter-rouge">require</code> extension that implements the <code class="language-plaintext highlighter-rouge">\require</code> macro to load extensions. There is also and <code class="language-plaintext highlighter-rouge">autoload</code> extension that will load extensions automatically when their macros or environments are first used. These are included in the default <code class="language-plaintext highlighter-rouge">input/tex</code> component, so you if you use that component (or one of the combined components based on it, like <code class="language-plaintext highlighter-rouge">tex-chtml</code> or <code class="language-plaintext highlighter-rouge">tex-svg</code>), you should have access to these extensions automatically. For example, <code class="language-plaintext highlighter-rouge">\require{physics}</code> will load the <code class="language-plaintext highlighter-rouge">physics</code> package.</p>
<p>Another new TeX package is the <code class="language-plaintext highlighter-rouge">configMacros</code> extension that allows you to configure pre-defined macros using the TeX input jax options, much like you could do in v2.</p>
<p>The new <code class="language-plaintext highlighter-rouge">tagFormat</code> extension allows you to customize how tags are handled in MathJax, and provides the equivalent of the <code class="language-plaintext highlighter-rouge">formatNumber()</code>, <code class="language-plaintext highlighter-rouge">formatTag()</code>, <code class="language-plaintext highlighter-rouge">formatID()</code> and <code class="language-plaintext highlighter-rouge">formatURL()</code> options of the TeX <code class="language-plaintext highlighter-rouge">equationNumbers</code> configuration block from v2.</p>
<p>The new <code class="language-plaintext highlighter-rouge">braket</code> extension implements the physics bra-ket notation macros. They will be loaded automatically if you use the <code class="language-plaintext highlighter-rouge">input/tex</code> component, or include the <code class="language-plaintext highlighter-rouge">autoload</code> extension in your project.</p>
<h3 id="color-macro">Color Macro</h3>
<p>In version 2, the <code class="language-plaintext highlighter-rouge">\color</code> macro worked in a non-standard way. The LaTeX <code class="language-plaintext highlighter-rouge">\color</code> macro acts as a switch, to change the current color for all the math that follows it, while the MathJax version took a second argument that enclosed the math to be colored. Version 2 included a <code class="language-plaintext highlighter-rouge">color</code> extension that implemented the LaTeX <code class="language-plaintext highlighter-rouge">\color</code> behavior, but it was not loaded by default.</p>
<p>In version 3, the LaTeX <code class="language-plaintext highlighter-rouge">\color</code> macro will be the default behavior if you are using the <code class="language-plaintext highlighter-rouge">input/tex</code> or <code class="language-plaintext highlighter-rouge">input/tex-full</code> components, or any component build on them (e.g., <code class="language-plaintext highlighter-rouge">tex-chtml</code> or <code class="language-plaintext highlighter-rouge">tex-svg</code>). You can restore the v2 behavior by setting <code class="language-plaintext highlighter-rouge">color: []</code> in the <code class="language-plaintext highlighter-rouge">autoload</code> configuration for the <code class="language-plaintext highlighter-rouge">tex</code> component (when using <code class="language-plaintext highlighter-rouge">input/tex</code>), or by removing the <code class="language-plaintext highlighter-rouge">color</code> extension from the package list using <code class="language-plaintext highlighter-rouge">packages: {'[-]': ['color']}</code> in the <code class="language-plaintext highlighter-rouge">tex</code> configuration (for <code class="language-plaintext highlighter-rouge">input/tex-full</code>).</p>
<h2 id="note">NOTE</h2>
<p>This is the fourth public beta release of MathJax v3.</p>
<p>Mathjax v3 is in beta release. <strong>Do not use this in production</strong>, but please test it and report issues on the <a href="https://github.com/mathjax/mathjax-v3/issues">MathJax v3 issue tracker</a>!</p>
<p>This is the final planned beta version. We expect an official 3.0 release in the near future.</p>
MathJax v3 beta.3 releasedhttps://www.mathjax.org/MathJax-v3-beta.3/2018-11-28T00:00:00+00:002018-11-28T00:00:00+00:00The MathJax team has been working hard on a major rewrite of MathJax from the ground up, with the goal of modernizing MathJax’s internal infrastructure, bringing it more flexibility for use with contemporary web technologies, making it easier to use with NodeJS for pre-processing and server-side support, and making it faster to render your mathematics. We have made headway in all these areas and we are pleased to announce the third public beta release of MathJax v3.
<p>The MathJax team has been working hard on a major rewrite of MathJax from the ground up, with the goal of modernizing MathJax’s internal infrastructure, bringing it more flexibility for use with contemporary web technologies, making it easier to use with NodeJS for pre-processing and server-side support, and making it faster to render your mathematics. We have made headway in all these areas and we are pleased to announce the third public <a href="https://github.com/mathjax/mathjax-v3/releases/tag/3.0.0-beta.3">beta release of MathJax v3</a>.</p>
<h2 id="where-to-find-the-beta-release">Where to Find the Beta Release</h2>
<p>The code for the release is available in the <a href="https://github.com/mathjax/mathjax-v3/tree/beta">beta</a> branch of the <a href="https://github.com/mathjax/mathjax-v3">MathJax v3</a> github repository.</p>
<p>Examples of how to use MathJax v3 in web pages are available in the <a href="https://github.com/mathjax/mj3-demos">mj3-demos</a> repository. This includes several pre-packaged versions of MathJax for common use cases (e.g., converting TeX to HTML in a web page) that you can link to for your own test pages, along with sample HTML pages that call them and documentation on how to configure MathJax v3. There are also instructions on how to make your own custom webpacked version of MathJax v3.</p>
<p>Examples of how to use MathJax v3 in NodeJS are available in the <a href="https://github.com/mathjax/mj3-demos-node">mj3-demos-node</a> repository. These include samples of how to convert a TeX string to an HTML string, an SVG string, or a MathML string, for example, or how to process a complete HTML page containing math.</p>
<h2 id="whats-included-in-mathjax-v3">What’s Included in MathJax v3</h2>
<p>This beta version includes two input processors (TeX and MathML) and two output processors (CommonHTML and SVG). Other input and output processors (e.g., AsciiMath input) will be added in the future.</p>
<p>The current TeX input processor has all the core functionality of the MathJax v2 TeX input, and nearly all the extensions are now available in v3.</p>
<p>The CommonHTML and SVG output implement all the MathML elements that they do in v2, but do not yet include support for line breaking (neither automatic nor explicit ones); this will be implemented in a later beta version. Both output renderers currently only support the MathJax TeX font; other fonts will be added in the future.</p>
<p>The CommonHTML output currently uses a very large CSS file that encodes the font information needed for all the characters in the MathJax TeX fonts. This is a preliminary implementation of the font support, which will be updated to reduce the size of the CSS in future versions.</p>
<p>The SVG output currently uses explicit SVG <code class="language-plaintext highlighter-rouge"><path></code> elements for the characters it displays, whereas version 2 cached the paths in a common SVG <code class="language-plaintext highlighter-rouge"><defs></code> element so that paths didn’t have to be repeated in the individual expressions that used them. This will be implemented in a future version.</p>
<p>The MathJax contextual menu is not yet implemented.</p>
<p>The ability to customize MathJax through a configuration object, as in v2, is limited at the moment, but see the <a href="https://github.com/mathjax/mj3-demos">mj3-demos</a> repository for examples of how this can be done currently. In version 3, this type of customization is handled through building custom packed versions of MathJax, and that is not yet fully documented; again, the demo repository includes examples.</p>
<h2 id="whats-new">What’s New</h2>
<p>This release fixes a number of display issues with the SVG output (see <a href="https://github.com/mathjax/mathjax-v3/issues/153">#153</a>, <a href="https://github.com/mathjax/mathjax-v3/issues/156">#156</a>, <a href="https://github.com/mathjax/mathjax-v3/issues/157">#157</a>, <a href="https://github.com/mathjax/mathjax-v3/issues/137">#137</a>) and improves the output for nested tables, particularly those with labels and those with percentage widths, in both CommonHTML and SVG output. Problems with table lines in SVG output in Safari and IE were fixed as well.</p>
<p>The TeX input has been updated to include nearly all the extensions that were available in v2, including the color, action, unicode, bbox, html, and several other extensions. These are all included in the webpacked files available in the demos repository (listed below), although the color extension is not enabled by default in order to preserve the behavior of <code class="language-plaintext highlighter-rouge">\color</code> in version 2 (this will probably change in the official release of v3).</p>
<p>In addition, there were some changes internally to how the MathDocument and MathItem classes, and the Handler class now allows more flexibility in overriding these. These changes are needed to better support extensions that may need to subclass the document and math-item classes. The next release will formalize the extension mechanisms and will include examples of how extensions will operate.</p>
<p>Finally, the <code class="language-plaintext highlighter-rouge">TeX-lab.html</code> and <code class="language-plaintext highlighter-rouge">MML-lab.html</code> files have been merged into a single <code class="language-plaintext highlighter-rouge">v3-lab.html</code>, and the original files removed. This late allows you to experiment will both input and both output formats, as well as enable/disable each of the extensions individual.</p>
<h2 id="note">NOTE</h2>
<p>Mathjax v3 is in beta release. <strong>Do not use this in production</strong>, but please test it and report issues on the <a href="https://github.com/mathjax/mathjax-v3/issues">MathJax v3 issue tracker</a>!</p>
<p>We are continuing to add more functionality to version 3, and will be releasing additional beta versions as new features become available. So watch this site for more news to come!</p>
MathJax v3 beta.2 releasedhttps://www.mathjax.org/MathJax-v3-beta.2/2018-10-05T00:00:00+00:002018-10-05T00:00:00+00:00The MathJax team has been working hard on a major rewrite of MathJax from the ground up, with the goal of modernizing MathJax’s internal infrastructure, bringing it more flexibility for use with contemporary web technologies, making it easier to use with NodeJS for pre-processing and server-side support, and making it faster to render your mathematics. We have made headway in all these areas and we are pleased to announce the second public beta release of MathJax v3.
<p>The MathJax team has been working hard on a major rewrite of MathJax from the ground up, with the goal of modernizing MathJax’s internal infrastructure, bringing it more flexibility for use with contemporary web technologies, making it easier to use with NodeJS for pre-processing and server-side support, and making it faster to render your mathematics. We have made headway in all these areas and we are pleased to announce the second public <a href="https://github.com/mathjax/mathjax-v3/releases/tag/3.0.0-beta.2">beta release of MathJax v3</a>.</p>
<h2 id="where-to-find-the-beta-release">Where to Find the Beta Release</h2>
<p>The code for the release is available in the <a href="https://github.com/mathjax/mathjax-v3/tree/beta">beta</a> branch of the <a href="https://github.com/mathjax/mathjax-v3">MathJax v3</a> github repository.</p>
<p>Examples of how to use MathJax v3 in web pages are available in the <a href="https://github.com/mathjax/mj3-demos">mj3-demos</a> repository. This includes several pre-packaged versions of MathJax for common use cases (e.g., converting TeX to HTML in a web page) that you can link to for your own test pages, along with sample HTML pages that call them and documentation on how to configure MathJax v3. There are also instructions on how to make your own custom webpacked version of MathJax v3.</p>
<p>Examples of how to use MathJax v3 in NodeJS are available in the <a href="https://github.com/mathjax/mj3-demos-node">mj3-demos-node</a> repository. These include samples of how to convert a TeX string to an HTML string, an SVG string, or a MathML string, for example, or how to process a complete HTML page containing math.</p>
<h2 id="whats-included-in-mathjax-v3">What’s Included in MathJax v3</h2>
<p>This beta version includes two input processors (TeX and MathML) and two output processors (CommonHTML and SVG). Other input and output processors (e.g., AsciiMath input) will be added in the future.</p>
<p>The current TeX input processor has all the core functionality of the MathJax v2 TeX input, and several of the extensions built in, but some extensions are still to come. For example, <code class="language-plaintext highlighter-rouge">\unicode</code>, <code class="language-plaintext highlighter-rouge">\bbox</code>, and the <code class="language-plaintext highlighter-rouge">color</code> extension are not yet available.</p>
<p>The CommonHTML and SVG output implement all the MathML elements that they do in v2, but do not yet include support for line breaking (neither automatic nor explicit ones); this will be implemented in a later beta version. Both output renderers currently only support the MathJax TeX font; other fonts will be added in the future.</p>
<p>The CommonHTML output currently uses a very large CSS file that encodes the font information needed for all the characters in the MathJax TeX fonts. This is a preliminary implementation of the font support, which will be updated to reduce the size of the CSS in future versions.</p>
<p>The SVG output currently uses explicit SVG <code class="language-plaintext highlighter-rouge"><path></code> elements for the characters it displays, whereas version 2 cached the paths in a common SVG <code class="language-plaintext highlighter-rouge"><defs></code> element so that paths didn’t have to be repeated in the individual expressions that used them. This will be implemented in a future version.</p>
<p>The MathJax contextual menu is not yet implemented.</p>
<p>The ability to customize MathJax through a configuration object, as in v2, is limited at the moment, but see the <a href="https://github.com/mathjax/mj3-demos">mj3-demos</a> repository for examples of how this can be done currently. In version 3, this type of customization is handled through building custom packed versions of MathJax, and that is not yet fully documented; again, the demo repository includes examples.</p>
<h2 id="note">NOTE</h2>
<p>Mathjax v3 is in beta release. <strong>Do not use this in production</strong>, but please test it and report issues on the <a href="https://github.com/mathjax/mathjax-v3/issues">MathJax v3 issue tracker</a>!</p>
<p>We are continuing to add more functionality to version 3, and will be releasing additional beta versions as new features become available. So watch this site for more news to come!</p>
MathJax v2.7.5 now availablehttps://www.mathjax.org/mathjax-v2-7-5-now-available/2018-07-20T00:00:00+00:002018-07-20T00:00:00+00:00We are happy to officially release MathJax v2.7.5 today.
<p>We are happy to officially release MathJax v2.7.5 today.</p>
<p>This is a maintenance release primarily to address a bug in WebKit that can cause the page to crash or some text to be missing in recent versions of Safari. For details on all bug fixes and enhancements, please <a href="#new-in-release">see below</a>.</p>
<p>This release should be available on all CDN providers, e.g., <a href="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js">https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js</a> which you can load it in place of the version you are currently using (or load <code class="language-plaintext highlighter-rouge">latest.js</code> instead of <code class="language-plaintext highlighter-rouge">Mathjax.js</code> to get the latest version 2.x, whatever it is, but note that this loads asynchronously, so the <code class="language-plaintext highlighter-rouge">MathJax</code> global variable may not be available immediately).</p>
<p>Alternatively, you can get a <a href="https://github.com/mathjax/MathJax/archive/2.7.5.zip">ZIP archive</a> or access the branch <a href="https://github.com/mathjax/MathJax/tree/2.7.5">on GitHub</a>.</p>
<p>Thanks for your continuing interest in MathJax. We hope that this release makes your MathJax experience even better.</p>
<p>The MathJax Team.</p>
<hr />
<h2 id="new-in-release">New in MathJax v2.7.5</h2>
<ul>
<li>Update AsciiMath to current master version</li>
<li>Update mhchem to version 3.3.0</li>
<li>Update a11y to version 1.5.0 (with SRE 2.2.2)</li>
<li>Use Plane1 alphabets for STIX fonts when possible in HTML-CSS and SVG. (<a href="https://github.com/mathjax/MathJax/issues/1923">#1923</a>)</li>
<li>Improve line breaking algorithm for all output modes. (<a href="https://github.com/mathjax/MathJax/issues/1970">#1970</a>)</li>
<li>Fix problems with multline in CHTML (with tags) and SVG (with small containers). (<a href="https://github.com/mathjax/MathJax/issues/1974">#1974</a>)</li>
<li>Add CSS for munder in CHTML. (<a href="https://github.com/mathjax/MathJax/issues/1981">#1981</a>)</li>
<li>Adjust measuring of ex size and container width to avoid line breaks for inline math in WebKit. (<a href="https://github.com/mathjax/MathJax/issues/1982">#1982</a>)</li>
<li>Don’t rescale mstyle bbox for scriptstyle changes in CHTML. (<a href="https://github.com/mathjax/MathJax/issues/1985">#1985</a>)</li>
<li>Prevent potential infinite loop in <code class="language-plaintext highlighter-rouge">setRenderer()</code>. (<a href="https://github.com/mathjax/MathJax/issues/1986">#1986</a>)</li>
<li>Make sure <code class="language-plaintext highlighter-rouge">\big</code>, etc., are at the right size in script styles in CHTML. (<a href="https://github.com/mathjax/MathJax/issues/1987">#1987</a>)</li>
<li>Fix problem with position of under/over applied to tables in SVG and HTML-CSS. (<a href="https://github.com/mathjax/MathJax/issues/1993">#1993</a>)</li>
<li>Properly handle MML spacing for explicit FORM attributes in all output modes. (<a href="https://github.com/mathjax/MathJax/issues/1997">#1997</a>)</li>
<li>Fix potential crash and missing text in recent Safari versions. (<a href="https://github.com/mathjax/MathJax/issues/2005">#2005</a>)</li>
<li>Change WebKit version for accent fix from 603 to 602. (<a href="https://github.com/mathjax/MathJax/issues/2017">#2017</a>)</li>
<li>Adjust <code class="language-plaintext highlighter-rouge">max-width</code> in SVG output to account for scaling factor.</li>
<li>Fix for <code class="language-plaintext highlighter-rouge">useMMLspacing</code> and <code class="language-plaintext highlighter-rouge">FORM</code> attributes.</li>
<li>Properly count multi-character glyphs when looking for a single character</li>
</ul>
<p>For more information see also the <a href="https://github.com/mathjax/MathJax/milestone/19?closed=1">2.7.5 milestone</a>.</p>
MathJax v3 beta releasedhttps://www.mathjax.org/MathJax-v3-beta/2018-06-11T00:00:00+00:002018-06-11T00:00:00+00:00The MathJax team has been working hard over the past year and a half on a major rewrite of MathJax from the ground up, with the goal of modernizing MathJax’s internal infrastructure, bringing it more flexibility for use with contemporary web technologies, making it easier to use with NodeJS for pre-processing and server-side support, and making it faster to render your mathematics. We have made headway in all these areas and we are pleased to announce the first public beta release of MathJax v3.
<p>The MathJax team has been working hard over the past year and a half on a major rewrite of MathJax from the ground up, with the goal of modernizing MathJax’s internal infrastructure, bringing it more flexibility for use with contemporary web technologies, making it easier to use with NodeJS for pre-processing and server-side support, and making it faster to render your mathematics. We have made headway in all these areas and we are pleased to announce the first public <a href="https://github.com/mathjax/mathjax-v3/releases/tag/3.0.0-beta.1">beta release of MathJax v3</a>.</p>
<h2 id="where-to-find-the-beta-release">Where to Find the Beta Release</h2>
<p>The code for the release is available in the <a href="https://github.com/mathjax/mathjax-v3/tree/beta">beta</a> branch of the <a href="https://github.com/mathjax/mathjax-v3">MathJax v3</a> github repository.</p>
<p>Examples of how to use MathJax v3 in web pages are available in the <a href="https://github.com/mathjax/mj3-demos">mj3-demos</a> repository. This includes several pre-packaged versions of MathJax for common use cases (e.g., converting TeX to HTML in a web page) that you can link to for your own test pages, along with sample HTML pages that call them, and documentation on how to configure MathJax v3. There are also instructions on how to make your own custom webpacked version of MathJax v3.</p>
<p>Examples of how to use MathJax v3 in web pages are available in the <a href="https://github.com/mathjax/mj3-demos-node">mj3-demos-node</a> repository. These include samples of how to convert a TeX string to an HTML string or to a MathML string, for example.</p>
<h2 id="whats-included-in-mathjax-v3">What’s Included in MathJax v3</h2>
<p>This beta version includes two input processors (TeX and MathML) and one output processor (CommonHTML). Other input and output processors (e.g., AsciiMath input and SVG output) will be added in the future.</p>
<p>The current TeX input processor has all the core functionality of the MathJax v2 TeX input, and several of the extensions built in, but some extensions are still to come. For example, <code class="language-plaintext highlighter-rouge">\unicode</code>, <code class="language-plaintext highlighter-rouge">\bbox</code>, and the <code class="language-plaintext highlighter-rouge">color</code> extension are not yet available.</p>
<p>The CommonHTML output implements all the MathML elements that v2 does, but does not yet include support for line breaking (neither automatic nor explicit ones); this will be implemented in a later beta version. Currently, there is no support for characters that are not within the MathJax TeX fonts, but that will be included in the future.</p>
<p>The MathJax contextual menu is not yet implemented.</p>
<p>The ability to customize MathJax through a configuration object, as in v2, is limited at the moment, but see the <a href="https://github.com/mathjax/mj3-demos">mj3-demos</a> repository for examples of how this can be done currently. In version 3, this type of customization is handled through building custom packed versions of MathJax, and that is not yet fully documented; again, the demo repository includes examples.</p>
<h2 id="note">NOTE</h2>
<p>Mathjax v3 is in early beta release. <strong>Do not use this in production</strong>, but please test it and report issues on the <a href="https://github.com/mathjax/mathjax-v3/issues">MathJax v3 issue tracker</a>!</p>
<p>We are continuing to add more functionality to version 3, and will be releasing additional beta versions as new features become available. So watch this site for more news to come!</p>
The American Statistical Association becomes a MathJax Supporterhttps://www.mathjax.org/ASA-supports-MathJax/2018-04-06T00:00:00+00:002018-04-06T00:00:00+00:00MathJax today announced that the American Statistical
Association is joining its sponsorship program as
a MathJax Supporter.
<p>MathJax today announced that the <a href="https://www.amstat.org/">American Statistical
Association</a> is joining its sponsorship program as
a <a href="//www.mathjax.org/#sponsors">MathJax Supporter</a>.</p>
<p>The American Statistical Association (ASA) is the “Big Tent for
Statistics” as the world’s largest community of statisticians. The ASA
was founded in Boston in 1839 making it the second-oldest, continuously
operating professional association in the United States. The ASA supports
excellence in the development, application, and dissemination of
statistical science through meetings, publications, membership services,
education, accreditation, and advocacy.</p>
<p>Ronald L. Wasserstein, Executive Director of ASA notes that “The ASA is
committed to advancing and disseminating high quality research in
statistics. MathJax helps assure our publications appear accurately across
platforms so that they can be viewed by researchers everywhere.”</p>
<p>“By becoming a MathJax sponsor, the ASA demonstrates its partnership to
the science community on the web”, comments Tom Blythe, MathJax
Consortium. “Becoming a MathJax Supporter allows the ASA to make optimal
use of MathJax, and makes an important contribution to keeping MathJax the
reliable, flexible, and open technology it is today.”</p>
<p>The MathJax team looks forward to the collaboration with the ASA, and
welcomes its support for the MathJax project.</p>
MathJax v2.7.4 now availablehttps://www.mathjax.org/mathjax-v2-7-4-now-available/2018-04-03T00:00:00+00:002018-04-03T00:00:00+00:00We are happy to officially release MathJax v2.7.4 today.
<p>We are happy to officially release MathJax v2.7.4 today.</p>
<p>This is a bug-fix release. Among the issue fixed in this release are the following:</p>
<p>For details on all bug fixes and enhancements, please <a href="#new-in-release">see below</a>.</p>
<p>This release should be available on all CDN providers, e.g., <a href="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js">https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js</a> which you can load it in place of the version you are currently using (or load <code class="language-plaintext highlighter-rouge">latest.js</code> instead of <code class="language-plaintext highlighter-rouge">Mathjax.js</code> to get the latest version 2.x, whatever it is, but note that this loads asynchronously, so the <code class="language-plaintext highlighter-rouge">MathJax</code> global variable may not be available immediately).</p>
<p>Alternatively, you can get a <a href="https://github.com/mathjax/MathJax/archive/2.7.4.zip">ZIP archive</a> or access the branch <a href="https://github.com/mathjax/MathJax/tree/2.7.4">on GitHub</a>.</p>
<p>Thanks for your continuing interest in MathJax. We hope that this release makes your MathJax experience even better.</p>
<p>The MathJax Team.</p>
<hr />
<h2 id="new-in-release">New in MathJax v2.7.4</h2>
<ul>
<li>Prevent infinite loop if an autoloaded component fails to load. (#1936)</li>
<li>Always set movablelimits to false in <code class="language-plaintext highlighter-rouge">\overset</code> and <code class="language-plaintext highlighter-rouge">\underset</code>. (#1929)</li>
<li>CSS reset for box-sizing in HTML-CSS output. (#1942)</li>
<li>Add <code class="language-plaintext highlighter-rouge">px</code> to <code class="language-plaintext highlighter-rouge">max-width</code> for SVG output containing tags. (#1950)</li>
<li>Properly handle namespaces starting with <code class="language-plaintext highlighter-rouge">math</code> in MathML input. (#1951)</li>
<li>Make <code class="language-plaintext highlighter-rouge">tex2jax</code> and <code class="language-plaintext highlighter-rouge">asciimath2jax</code> rescan after unmatched delimiter. (#1960)</li>
<li>Fix minimum height of accents in scripts. (#1956)</li>
<li>Make monospaced non-breaking space be of correct width. (#1953)</li>
<li>Handle size of centered large operators correctly in mrows. (#1933)</li>
</ul>
<p>For more information see also the <a href="https://github.com/mathjax/MathJax/milestone/18?closed=1">2.7.4 milestone</a>.</p>
MathJax v2.7.3 now availablehttps://www.mathjax.org/mathjax-v2-7-3-now-available/2018-02-08T00:00:00+00:002018-02-08T00:00:00+00:00We are happy to officially release MathJax v2.7.3 today.
<p>We are happy to officially release MathJax v2.7.3 today.</p>
<p>This is mostly a bug-fix release, with a few enhancements as well.</p>
<p>The primary enhancement is the addition of version 2.3 of the Speech-Rule Engine that underlies the MathJax accessibility tools. This includes performance enhancements as well as a Spanish localization that is tied to the MathJax localization menu. In addition, the Explorer menu in the Assistive submenu has been slimmed down to remove unneeded options.</p>
<p>For details on all bug fixes and enhancements, please <a href="#new-in-release">see below</a>.</p>
<p>This release should be available on all CDN providers, e.g., <a href="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/MathJax.js">https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/MathJax.js</a> which you can load it in place of the version you are currently using (or load <code class="language-plaintext highlighter-rouge">latest.js</code> instead of <code class="language-plaintext highlighter-rouge">Mathjax.js</code> to get the latest version 2.x, whatever it is, but note that this loads asynchronously, so the <code class="language-plaintext highlighter-rouge">MathJax</code> global variable may not be available immediately).</p>
<p>Alternatively, you can get a <a href="https://github.com/mathjax/MathJax/archive/2.7.3.zip">ZIP archive</a> or access the branch <a href="https://github.com/mathjax/MathJax/tree/2.7.3">on GitHub</a>.</p>
<p>Thanks for your continuing interest in MathJax. We hope that this release makes your MathJax experience even better.</p>
<p>The MathJax Team.</p>
<hr />
<h2 id="new-in-release">New in MathJax v2.7.3</h2>
<h3 id="input">Input</h3>
<ul>
<li>
<p>AsciiMath has been updated to include new features that have been added in the official <code class="language-plaintext highlighter-rouge">AsciiMathML.js</code> file since v2.7.2 was released.</p>
</li>
<li>
<p>TeX: Remove balanceBraces option from tex2jax, which was never implemented (<a href="https://github.com/mathjax/MathJax/issues/1871">#1871</a>)</p>
</li>
<li>
<p>TeX: Make HTML id’s used in <code class="language-plaintext highlighter-rouge">\tag</code> handling more robust (<a href="https://github.com/mathjax/MathJax/issues/1899">#1899</a>)</p>
</li>
<li>
<p>TeX: Make <code class="language-plaintext highlighter-rouge">\DeclareMathOperator</code> and <code class="language-plaintext highlighter-rouge">\Newextarrow localizable</code> by begingroup (<a href="https://github.com/mathjax/MathJax/issues/1876">#1876</a>)</p>
</li>
<li>
<p>TeX: Have <code class="language-plaintext highlighter-rouge">\bigg</code> and friends to trim spaces from their arguments (<a href="https://github.com/mathjax/MathJax/issues/1819">#1819</a>)</p>
</li>
<li>
<p>TeX: Don’t produce unwanted mrows with \left…\right (<a href="https://github.com/mathjax/MathJax/issues/1829">#1829</a>)</p>
</li>
</ul>
<h3 id="output">Output</h3>
<ul>
<li>
<p>HTML-CSS: Improve detection of web fonts (<a href="https://github.com/mathjax/MathJax/issues/517">#517</a>)</p>
</li>
<li>
<p>Improve line breaking past the container width when no break is found within it (<a href="https://github.com/mathjax/MathJax/issues/1883">#1883</a>)</p>
</li>
<li>
<p>SVG: Don’t lose pre-spacing in elements containing line breaks (<a href="https://github.com/mathjax/MathJax/issues/1915">#1915</a>)</p>
</li>
<li>
<p>CommonHTML: Fix width of roots containing line breaks (<a href="https://github.com/mathjax/MathJax/issues/1882">#1882</a>)</p>
</li>
<li>
<p>SVG: Measure sizes of annotation-xml elements properly (<a href="https://github.com/mathjax/MathJax/issues/1870">#1870</a>)</p>
</li>
<li>
<p>Handle default border width properly in SVG and HTML-CSS (<a href="https://github.com/mathjax/MathJax/issues/1855">#1855</a>)</p>
</li>
<li>
<p>CommonHTML: Reset character width if a reset occurs while an equation is being processed (<a href="https://github.com/mathjax/MathJax/issues/1837">#1837</a>)</p>
</li>
<li>
<p>CommonHTML: Properly scale widths in line breaking algorithm (<a href="https://github.com/mathjax/MathJax/issues/1881">#1881</a>)</p>
</li>
<li>
<p>HTML-CSS: Fix position of rightmost glyph in multi-glyph horizontal stretchy characters (<a href="https://github.com/mathjax/MathJax/issues/1896">#1896</a>)</p>
</li>
<li>
<p>MathML: Don’t add duplicate xmlns attribute when original is empty (<a href="https://github.com/mathjax/MathJax/issues/1862">#1862</a>)</p>
</li>
</ul>
<h3 id="interface">Interface</h3>
<ul>
<li>Decode hash URI component so it works with special characters (#1843)</li>
</ul>
<p>For more information see also the <a href="https://github.com/mathjax/MathJax/milestone/17?closed=1">2.7.3 milestone</a>.</p>
MathWorks continues as MathJax Supporterhttps://www.mathjax.org/the-mathworks-continues-as-mathjax-supporter-2017/2017-12-27T00:00:00+00:002017-12-27T00:00:00+00:00MathWorks continues to support the MathJax project as a MathJax Supporter.
<p><a href="http://www.mathworks.com">MathWorks</a> continues to support the MathJax project as a MathJax Supporter.</p>
<p>MathWorks provides the fundamental tools for research and development in academia and industry. Its leading computing software products, <a href="http://www.mathworks.com/products/matlab/">MATLAB</a> and <a href="http://www.mathworks.com/products/simulink/">Simulink</a>, help engineers and scientists worldwide to accelerate the pace of discovery, innovation, and development. From industries, such as aerospace and industrial automation, to technical fields, such as financial services and computational biology, to more than 5000 colleges and universities around the world, the tools support teaching and research in a broad range of technical disciplines.</p>
<p>“MathWorks is pleased to continue its support for MathJax and its mission to remove barriers for people wanting easy access to mathematical and scientific content on the web,” said Mary Ann Freeman, director of engineering, MATLAB Products, MathWorks. “MathWorks shares the goal of ensuring people have access to the tools and training necessary to advance their skills and competencies in STEM.”</p>
<p>“Thanks to dedicated sponsors like MathWorks, we are able to develop MathJax continuously,” comments Peter Krautzberger, MathJax Manager. “We are very grateful for MathWorks’s continued support as it allows us to keep MathJax the universal, high-quality rendering solution it is today”.</p>
<p>We look forward to continuing the collaboration with MathWorks and welcome their ongoing support for the MathJax project.</p>
Oxford University Press continues as MathJax Supporterhttps://www.mathjax.org/oxford-university-press-continues-as-mathjax-supporter-2017/2017-12-21T00:00:00+00:002017-12-21T00:00:00+00:00Oxford University Press (OUP) continues to support the MathJax project as a MathJax Supporter.
<p><a href="http://www.oup.com">Oxford University Press</a> (OUP) continues to support the MathJax project as a MathJax Supporter.</p>
<p>OUP, a department of <a href="http://www.ox.ac.uk/">Oxford University</a>, is the largest university press in the world, currently publishing over 6,000 titles in more than 40 languages each year. OUP’s broad academic and educational spectrum includes dictionaries, journals, scholarly monographs, and schoolbooks. Beyond traditional publishing products, OUP provides services such as digital learning and assessment platforms as well as online research tools.</p>
<p>“Oxford University Press is very pleased to continue its support of MathJax,” said Mark Seymour, Digital Development Programme Manager, Digital Strategy, Global Academic. “MathJax is an essential tool for displaying maths on research publishing platforms, and we are delighted to support the MathJax Consortium in advancing mathematical and scientific content on the Web in this way.</p>
<p>“Dedicated sponsors like OUP help ensure the long-term development of MathJax”, comments Peter Krautzberger, MathJax manager. “Thanks to the feedback from OUP’s team we can keep MathJax the robust and high-quality rendering solution it is today.”</p>
<p>We look forward to continuing the collaboration with OUP, and welcome their ongoing support for the MathJax project.</p>
EBSCO Information Services continues as a MathJax Supporterhttps://www.mathjax.org/EBSCO-continues-as-MathJax-supporter-2017/2017-12-19T00:00:00+00:002017-12-19T00:00:00+00:00EBSCO Information Services (EBSCO) continues to support MathJax as a MathJax Supporter.
<p><a href="http://www.ebsco.com">EBSCO Information Services</a> (EBSCO) continues to support MathJax as a MathJax Supporter.</p>
<p>EBSCO provides premium online information resources for tens of thousands of institutions worldwide, representing millions of end users. EBSCO content and its platforms serve the needs of researchers at all levels, including academic institutions, schools, public libraries, hospitals and medical institutions, corporations or government institutions. Its participation in the sponsorship program is just one way that EBSCO is involved with MathJax. EBSCO also uses MathJax to ensure that the mathematical equations are optimally displayed when they appear in its research databases.</p>
<p>EBSCO Information Services Vice President of Database Partnerships, Ryan Bernier, said, “MathJax improves accessibility, readability and interpretation of equations on both desktop and mobile devices. As a provider of STEM e-journals and databases including MathSciNet, EBSCO is proud to support the development and enhancement of MathJax.”</p>
<p>“EBSCO provides the team at MathJax with important support and feedback for our development,” comments Peter Krautzberger, MathJax manager. “Thanks to long-term supporters like EBSCO, we can keep MathJax the reliable, high-quality rendering solution it is today.”</p>
<p>The MathJax team looks forward to the collaboration with EBSCO, and welcomes its support for the MathJax project.</p>
The London Mathematical Society continues as MathJax supporterhttps://www.mathjax.org/the-london-mathematical-society-continues-as-mathjax-supporter-2017/2017-12-14T00:00:00+00:002017-12-14T00:00:00+00:00The London Mathematical Society continues to support MathJax as a MathJax Supporter.
<p>The <a href="http://lms.ac.uk/">London Mathematical Society</a> continues to support MathJax as a MathJax Supporter.</p>
<p>The London Mathematical Society (LMS) is the major UK learned society for mathematics with a nationwide and international membership. The LMS offers a rich publishing program, provides a diverse grant program, and organizes scientific meetings and lectures. Beyond that, the LMS contributes to public debate on matters affecting mathematics and mathematics education.</p>
<p>“The London Mathematical Society leverages MathJax in the full-text HTML of its journals.” said Fiona Nixon, Executive Secretary, LMS. “Feedback from our readers continues to be positive and we recognise that development needs to continue in the quest to render mathematical web pages with the same fluidity and versatility as non-mathematical ones. The LMS is therefore proud to continue to support the development and enhancement of MathJax”.</p>
<p>“The support as a MathJax sponsor demonstrates the LMS’s commitment to being a partner to the math and science community on the web”, comments Peter Krautzberger, MathJax manager. “As a MathJax Supporter, the LMS makes an important contribution to keeping MathJax the reliable, flexible, and open technology it is today.”</p>
<p>We look forward to continuing the collaboration with the LMS, and welcome their ongoing support for the MathJax project.</p>