Beautiful and accessible math in all browsers

Overview

MathJax

Beautiful math in all browsers

GitHub release version GitHub release version (v2) NPM version powered by NumFOCUS
jsdelivr rank jsDelivr hits (npm) npm monthly downloads (full) npm total downloads

MathJax is an open-source JavaScript display engine for LaTeX, MathML, and AsciiMath notation that works in all modern browsers. It was designed with the goal of consolidating the recent advances in web technologies into a single, definitive, math-on-the-web platform supporting the major browsers and operating systems. It requires no setup on the part of the user (no plugins to download or software to install), so the page author can write web documents that include mathematics and be confident that users will be able to view it naturally and easily. Simply include MathJax and some mathematics in a web page, and MathJax does the rest.

Some of the main features of MathJax include:

  • High-quality display of LaTeX, MathML, and AsciiMath notation in HTML pages

  • Supported in most browsers with no plug-ins, extra fonts, or special setup for the reader

  • Easy for authors, flexible for publishers, extensible for developers

  • Supports math accessibility, cut-and-paste interoperability, and other advanced functionality

  • Powerful API for integration with other web applications

See http://www.mathjax.org/ for additional details about MathJax, and https://docs.mathjax.org for the MathJax documentation.

MathJax Components

MathJax version 3 uses files called components that contain the various MathJax modules that you can include in your web pages or access on a server through NodeJS. Some components combine all the pieces you need to run MathJax with one or more input formats and a particular output format, while other components are pieces that can be loaded on demand when needed, or by a configuration that specifies the pieces you want to combine in a custom way. For usage instructions, see the MathJax documentation.

Components provide a convenient packaging of MathJax's modules, but it is possible for you to form your own custom components, or to use MathJax's modules directly in a node application on a server. There are web examples showing how to use MathJax in web pages and how to build your own components, and node examples illustrating how to use components in node applications or call MathJax modules directly.

What's in this Repository

This repository contains only the component files for MathJax, not the source code for MathJax (which are available in a separate MathJax source repository). These component files are the ones served by the CDNs that offer MathJax to the web. In version 2, the files used on the web were also the source files for MathJax, but in version 3, the source files are no longer on the CDN, as they are not what are run in the browser.

The components are stored in the es5 directory, and are in ES5 format for the widest possible compatibility. In the future, we may make an es6 directory containing ES6 versions of the components.

Installation and Use

Using MathJax components from a CDN on the web

If you are loading MathJax from a CDN into a web page, there is no need to install anything. Simply use a script tag that loads MathJax from the CDN. E.g.,

<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>

See the MathJax documentation, the MathJax Web Demos, and the MathJax Component Repository for more information.

Hosting your own copy of the MathJax Components

If you want to host MathJax from your own server, you can do so by installing the mathjax package using npm and moving the es5 directory to an appropriate location on your server:

npm install mathjax@3
mv node_modules/mathjax/es5 <path-to-server-location>/mathjax

Note that we are still making updates to version 2, so include @3 when you install, since the latest chronological version may not be version 3.

Alternatively, you can get the files via GitHub:

git clone https://github.com/mathjax/MathJax.git mj-tmp
mv mj-tmp/es5 <path-to-server-location>/mathjax
rm -rf mj-tmp

Then (in either case) you can use a script tag like the following:

<script id="MathJax-script" async src="<url-to-your-site>/mathjax/tex-chtml.js"></script>

where <url-to-your-site> is replaced by the URL to the location where you moved the MathJax files above.

See the documentation for details.

Using MathJax components in a node application

To use MathJax components in a node application, install the mathjax package:

npm install mathjax@3

(we are still making updates to version 2, so you should include @3 since the latest chronological version may not be version 3).

Then require mathjax within your application:

require('mathjax').init({ ... }).then((MathJax) => { ... });

where the first { ... } is a MathJax configuration, and the second { ... } is the code to run after MathJax has been loaded. E.g.

require('mathjax').init({
  loader: {load: ['input/tex', 'output/svg']}
}).then((MathJax) => {
  const svg = MathJax.tex2svg('\\frac{1}{x^2-1}', {display: true});
  console.log(MathJax.startup.adaptor.outerHTML(svg));
}).catch((err) => console.log(err.message));

Note: this technique is for node-based application only, not for browser applications. This method sets up an alternative DOM implementation, which you don't need in the browser, and tells MathJax to use node's require() command to load external modules. This setup will not work properly in the browser, even if you webpack it or bundle it in other ways.

See the documentation and the MathJax Node Repository for more details.

Reducing the Size of the Components Directory

Since the es5 directory contains all the component files, so if you are only planning one use one configuration, you can reduce the size of the MathJax directory by removing unused components. For example, if you are using the tex-chtml.js component, then you can remove the tex-mml-chtml.js, tex-svg.js, tex-mml-svg.js, tex-chtml-full.js, and tex-svg-full.js configurations, which will save considerable space. Indeed, you should be able to remove everything other than tex-chtml.js, and the input/tex/extensions, output/chtml/fonts/woff-v2, adaptors, a11y, and sre directories. If you are using the results only on the web, you can remove adaptors as well.

If you are not using A11Y support (e.g., speech generation, or semantic enrichment), then you can remove a11y and sre as well (though in this case you may need to disable the assistive tools in the MathJax contextual menu in order to avoid MathJax trying to load them when they aren't there).

If you are using SVG rather than CommonHTML output (e.g., tex-svg.js rather than tex-chtml.js), you can remove the output/chtml/fonts/woff-v2 directory. If you are using MathML input rather than TeX (e.g., mml-chtml.js rather than tex-chtml.js), then you can remove input/tex/extensions as well.

The Component Files and Pull Requests

The es5 directory is generated automatically from the contents of the MathJax source repository. You can rebuild the components using the command

npm run make-es5 --silent

Note that since the contents of this repository are generated automatically, you should not submit pull requests that modify the contents of the es5 directory. If you wish to submit a modification to MathJax, you should make a pull request in the MathJax source repository.

MathJax Community

The main MathJax website is http://www.mathjax.org, and it includes announcements and other important information. A MathJax user forum for asking questions and getting assistance is hosted at Google, and the MathJax bug tracker is hosted at GitHub.

Before reporting a bug, please check that it has not already been reported. Also, please use the bug tracker (rather than the help forum) for reporting bugs, and use the user's forum (rather than the bug tracker) for questions about how to use MathJax.

MathJax Resources

Comments
  • MathJax hangs Chrome

    MathJax hangs Chrome

    Hi,

    It's about the third time this week I've got my browser completely frozen from opening a blog post. I noticed they all hang with the little "Typesetting Math: x%" at the bottom left, and found this library.

    I'm running Chrome 28.0.1500.71 on OSX Mountain Lion. Here is one such post: http://www.leancrew.com/all-this/2013/08/hyperloop/

    Investigate Abandoned 
    opened by ricardobeat 104
  • Expose MathML for accessibility

    Expose MathML for accessibility

    In order for screen readers and other assistive technology (AT) products to provide rich access to math content, they need to be able to access the raw math in a standard way. Providing alternate text is not sufficient, since although this does allow for better spoken math, it does not provide for braille, interactive exploration, etc. It seems MathML has become the dominant standard for exposing math content and MathJax uses MathML internally, so it'd make sense to expose it as MathML.

    You can already use the toMathML extension to access MathML for a MathJax tree. The problem is that this requires JavaScript calls and an AT does not always have the ability to execute arbitrary JavaScript on the page. (For example, in Firefox, this isn't possible without a browser extension or Greasemonkey script.) There needs to be some way to obtain MathML from MathJax that does not require JavaScript calls.

    One solution is to expose the MathML via an attribute; e.g. data-mathml. This is pretty inelegant and non-standard, but it does solve the problem. I've already implemented experimental support for this in NVDA's (not yet released) math support.

    If exposing an attribute like this automatically is considered too expensive, we might be able to come up with a solution using an off-screen button or similar which exposes the attribute when activated. However, this is even less elegant and is more error prone, so I'd hope to avoid something like this if possible.

    /cc @pkra

    Fixed Feature Request v2.6 
    opened by jcsteh 102
  • Web-Font TeX/Main/Italic fails to load in QTWebKit

    Web-Font TeX/Main/Italic fails to load in QTWebKit

    Hi!

    I'm trying to add MathJax support to my text editor (ReText), which uses Qt version of WebKit engine. When the page has \imath symbol, it prints:

    Loading Web-Font TeX/Main/Italic

    (this takes a few seconds) and then prints

    Web-Fonts not available -- using image fonts instead

    and I get an ugly PNG image as a result.

    I can't reproduce this problem with Gtk-based WebKit browsers and Firefox.

    P.S: example of page I try to load:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
    </head>
    <body>
    <p><mathjax>$$
    \imath
    $$</mathjax></p>
    </body>
    </html>
    
    Abandoned 
    opened by mitya57 62
  • mediawiki texvc: Commands printed with backslash

    mediawiki texvc: Commands printed with backslash

    https://github.com/wikimedia/mathoid/blob/master/test/files/mathjax-texvc/test-p.md shows that some commands are printed as the original tex input and no error was thrown. Is there a way to throw an error on an unknown command? PS: Note that those commands were enclosed in a \mbox

    Expected Behavior 
    opened by physikerwelt 50
  • Sniffing for

    Sniffing for "Firefox" in MathJax is very broken, breaks Wikipedia and other sites in upcoming Firefox

    Looking at MathJax.js, it has:

    isFirefox:   (window.netscape != null && document.ATTRIBUTE_NODE != null && !window.opera),
    

    This will test false because window.netscape is not defined. Hopefully this is not used for anything.

    And then later on this file has:

      browser.isMobile = (navigator.appVersion.match(/Android/i) != null ||
                                     navigator.userAgent.match(/ Fennec\//) != null);
    

    which is wrong for various upcoming things like Firefox OS. Again, hopefully this is just not used for anything...

    Accepted Fixed Test Available v2.2 
    opened by bzbarsky 46
  • MathJax requires unsafe

    MathJax requires unsafe "Content Security Policy"

    The current MathJax implementation uses following features that are not considered safe in modern world and cannot be used with default Content-Security-Policy (http://www.w3.org/TR/CSP/) headers:

    • JavaScript evaluation of strings (new Function() with a string or eval()) (1)
    • Inline style attributes inserted via JavaScript (2)

    It's debatable if issue (2) should be fixed but at least (1) should be fixed because Content-Security-Policy does not have enough granularity to allow MathJax to execute as a trusted script and in the same time do not interpret every other JavaScript file as specially trusted. Currently, if one wants to use MathJax, he must allow eval() everywhere. The issue (1) also causes bug #130 (MathJax is incompatible with ECMAScript 5 strict mode).

    Currently the only way to make MathJax to work, even if one uses locally installed MathJax code, is to use following CSP HTTP headers (the deprecated "options" header is included for Firefox 13.0 and lesser):

    X-Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; options eval-script
    X-WebKit-CSP: default-src 'self'; script-src 'self' 'unsafe-eval'; style-src 'self' 'unsafe-inline'
    Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-eval'; style-src 'self' 'unsafe-inline'
    

    These headers will allow some CSP provided protection and still allow MathJax to work, if MathJax is distributed from the same origin as the page content.

    Accepted Fixed Test Not Needed v2.4 
    opened by mikkorantalainen 42
  • Incorrect widths of math elements in Gecko

    Incorrect widths of math elements in Gecko

    Follow-up of Peter's report on the dev list, there are issues with width of math elements in Gecko. MML.math has the following block:

    if (nMML.widthBug && !mtable.nMMLforceWidth && mtable.nMMLlaMatch))) {
           //
           //  Convert size to ex's so that it scales properly if the print media
           //    has a different font size.
           //
          parent.style.width = (math.firstChild.scrollWidth/nMML.ex).toFixed(3) + "ex";
         }
    

    As I read it, this will not be executed if there is not any mtable. I think we disabled the correction when we added the mlabeldtr workaround in https://github.com/mathjax/MathJax/commit/0891402#L5L621 (issue #356). The condition should probably be:

        nMML.widthBug && !(mtable.nMMLhasLabels && (mtable.nMMLforceWidth || !mtable.nMMLlaMatch))
    

    But then this gives too large widths. It seems to be due to the conversion to ex which was introduced in https://github.com/mathjax/MathJax/commit/debc24047f25cf546876cf8baffe914736d5af38#L3L618 (issue #386)

    Accepted Fixed Browser Bug Test Not Needed v2.3 
    opened by fred-wang 40
  • Add options preview=mathml and preview=altimg to the mml2Jax preprocessor

    Add options preview=mathml and preview=altimg to the mml2Jax preprocessor

    By default, the mml2Jax removes the <math> tag and replaces it by the alttext if there is one (preview="altext"). The other known preview is "none". We could add twi other values: preview=mathml (original MathML element) and preview=altimg (altimg tag).

    Accepted Fixed Feature Request v2.3 
    opened by fred-wang 39
  • Major accessibility regression in V3

    Major accessibility regression in V3

    The accessibility features in V2 worked really well. I recently had the need to refresh my memory about some math content and found maybe 80% of the pages or more that I clicked on had accessible math thanks to MathJax. Images and PDFs are rapidly becoming a thing of the past. That great success is greatly endangered by V3. To be blunt, V3 is an accessibility disaster. Let me walk through why:

    1. Out of the box, V3 is not accessible. Requiring people to turn on accessibility is a big no-no. First off, most people won’t know they need to do that, let alone how to do it. And without that knowledge, the page is not accessible.

    2. If they somehow know they need to turn it on by using the context menu for math, doing so is difficult for screen reader users. I’m told that bringing up a context menu is something that only advanced screen reader users know how to do, so for a large number of screen reader users, they will require help from sighted users anytime they encounter a new site (assuming someone told them they need to turn on accessibility). The menu itself is accessible, but getting that menu to come up is the problem.

    3. Once those barriers are crossed, the math still doesn’t read. You get a notification “clickable: <first char of math>”. No indication this is math and no smooth reading. Imagine if you had a page that had images in it and you had to click on the image to see it. That’s the experience screen reader users face in V3.

    4. With NVDA and JAWS, I only occasionally got the math to read. Mostly (>90% of the time), I just heard the characters in the math. I tired both ‘enter’ and ‘space’ in both Chrome and Firefox. Maybe the focus wasn’t really on the math (despite it reading the characters), maybe it was some other mistake I made. If I made the mistake most of the time, I suspect others will make it also (some experts I consulted concurred that they had problems hearing the expression as math). That’s another accessibility barrier.

    5. Even when it does read, it is an inferior experience to what V2 users had with NVDA. There is no prosody and the “a” sound is at the mercy of the speech engine, which will usually use the short “a” sound (e.g, “ah squared”). JAWS has this same (lower quality) reading experience, but for NVDA users, this is yet another regression.

    I want to be clear that I am not criticizing SRE. The problem is the way in which accessibility is exposed by V3 -- it is not on by default, not easy to turn on, somewhat inconvenient to use, and flaky once turned on. Taken together, all the accessibility experts I consulted consider this to be a major regression compared to V2.

    My suggestion is to do two things:

    1. By default, put the hidden MathML back into the document as in V2. This gives out of the box accessibility to NVDA, JAWS, and VoiceOver users. That accessibility is in most ways superior to V3 for the reasons given above.

    2. Add a ‘use Native speech’ option to the accessibility menu. If a screen reader user figures out how to activate the MathJax’s native speech (which should remove the MathML) and didn’t like the MathJax solution, the new menu item would give them a way to revert to V2 behavior.

    I have a third suggestion that is somewhat independent of the above and was (I think) true for V2: make sure all the example configurations on mathjax.org and in the documentation are ones that result in accessible math out of the box unless specifically noting that they are not. Because V3 is not currently accessible, authors making use of V3 won't know that the pages they produce are not accessible.

    Fixed v3.0 
    opened by NSoiffer 36
  • mathJax stop working on Windows Phone 8.1 after newest update

    mathJax stop working on Windows Phone 8.1 after newest update

    Hi, I have an app that was using MathJax on Lumia 820 with Windows Phone 8.1. Everything was working great but after the last one update which I made to Windows Phone 8.1 Update 1, OS Version: 8.10.14234.375 MathJax stop working in my app. I checked that also when I run Internet Explorer on my Lumia 820 and go to https://www.mathjax.org/ page MathJax does not render equations. I checked it on a second phone (Lumia 535) with the same os version and it also does not render. I suppose that MathJax stop working on all wp 8.1. phones with this os version

    Accepted Fixed Test Not Needed v2.6 
    opened by Sebus13 36
  • Using fonts from MathJax's CDN for Native MathML

    Using fonts from MathJax's CDN for Native MathML

    Firefox 15 is going to be release today and could now use MathJax fonts for the MathML operators.

    See https://groups.google.com/forum/?fromgroups=#!topic/mathjax-dev/9EyiDt_0ess

    => assigned to myself.

    Accepted Test Not Needed Abandoned 
    opened by fred-wang 34
  • overlines get positioned wrong when using scaling, especially \huge

    overlines get positioned wrong when using scaling, especially \huge

    Over elements get positioned too high when using scaling

    \normalsize VS \huge

    изображение JS Bin

    Steps to Reproduce:

    1. In MathJax Live Demo using \huge with \vec, for example like this: $$ \huge y = \vec x - \vec x ^2 $$

    Interestingly, if one uses sub- or superscript the position gets fixed, as in the \vec x ^2

    Technical details:

    • Client OS: Windows 11
    • Application: Obsidian, WebDemo in Firefox 108.0.1

    Supporting information:

    • It seems to be working on some other versions
    opened by Mamadsho 0
  • [v4 alpha] xarrow alignment issue

    [v4 alpha] xarrow alignment issue

    [Moving this here.]

    • with stix-two:
      • unchanged in v4: \begin{equation*} X_\chi (1)\buildrel \sim \over \longrightarrow B^\mathrm{red}. \end{equation*}
      • considerably higher in v4: (R^{\mathrm{ord}}{\bar{D}})\mathfrak{p}\xrightarrow {\sim }\mathfrak{H}_\mathfrak{p} screenhot of both preceding expressions with stix-two
    • with mathjax-modern, the second one is misaligned horizontally screenshot of the second expression with default font
    Accepted Investigate v4 
    opened by pkra 2
  • Support for the `tensor` package

    Support for the `tensor` package

    The tensor package in LaTeX is quite handy for writing tensors with mixed covariant and contravariant indices in an ergonomic fashion.

    I think the package is quite small and would be fairly easy to add. I doubt I will get around to doing it myself, but there is a small change that it could happen. Would a PR for this package as a first-party extension be accepted should I ever get around to it?

    Feature Request good first contribution v3 
    opened by JeppeKlitgaard 1
  • [v4 alpha] TeX parsing failure with nested underbraces

    [v4 alpha] TeX parsing failure with nested underbraces

    The following works in v3 (e.g., mathjax.org#demo; also in "real" TeX) but fails in v4-alpha

    \underbrace{\int\underbrace{a}_{}\underbrace{b(c,d)e}_{}}_{}
    

    With an error for a wrong number of children for munder node.

    Accepted SRE v4 
    opened by pkra 21
  • Anomalies in v4 alpha

    Anomalies in v4 alpha

    Issue Summary

    Slight anomalies having to do with display mode line breaking and line numbering

    Steps to Reproduce:

    See https://cdi2.palhoto.pt/test (in particular equations 1, 2, and 3) and compare when needed with the same content typeset by v3 in https://cdi2.palhoto.pt/texto/20

    Technical details:

    • MathJax Version: 4,alpha1
    • Client OS: Linux Mint 21 Vanessa, 5.15.0-56-generic
    • Browser: Firefox 108.0 (64-bit)

    Configuration for v4: https://cdi2.palhoto.pt/scripts/mathjax4-config.js and loading MathJax locally with https://cdi2.palhoto.pt/mathjax4/es5/tex-mml-svg-nofont.js

    Detected anomalies (for 2, 3 access on a smart phone):

    1. Equation number for equation (1) seems to be in a larger font-size.
    2. Line breaking displays equation numbers for equations (2,3) on the first line
    3. Equation numbers for equations (2,3) are to the right of page boundary.
    Accepted v4 
    opened by cebola2 3
  • v4-alpha, TeX: another array @{} issue

    v4-alpha, TeX: another array @{} issue

    E.g., \begin {array}{@{}l@{}} a\\ b\end {array} will eat up memory, e.g., causing hanging tabs and running out of memory on nodejs.

    If I remove the (arguably weird) spaces before {array} or drop the @{}, things are fine.

    Ready for Development Accepted v4 
    opened by pkra 3
Releases(4.0.0-alpha.1)
  • 4.0.0-alpha.1(Oct 2, 2022)

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

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

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

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

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

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

    Source code(tar.gz)
    Source code(zip)
  • 3.2.2(Jun 8, 2022)

  • 3.2.1(May 19, 2022)

  • 3.2.0(Jun 17, 2021)

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

    Source code(tar.gz)
    Source code(zip)
  • 3.1.4(Apr 23, 2021)

  • 3.1.3(Apr 22, 2021)

  • 3.1.2(Sep 12, 2020)

  • 3.1.1(Sep 12, 2020)

  • 3.1.0(Aug 25, 2020)

  • 2.7.9(Aug 25, 2020)

    This release updates the Speech-Rule Engine (SRE) that underlies MathJax's accessibility features to version 3.1 and updates the a11y extensions to version 1.6.0 to take advantage of the new SRE version. The upgrade includes new languages (German and French), and access to the Clearspeak rules via the accessibility menu, as well as bug fixes in SRE, and faster conversion of expressions to speech.

    Source code(tar.gz)
    Source code(zip)
  • 3.0.5(Apr 10, 2020)

    This is a hot fix release to resolve an important issue with horizontal stretchy characters (e.g., \overline and \overrightarrow) in CommonHTML output that was introduced in the recent version 3.0.4 release.

    Source code(tar.gz)
    Source code(zip)
  • 3.0.4(Apr 8, 2020)

    This is a bug-fix release. See the release notes for details.

    Note that version 3.0.2 and 3.0.3 had problems with their npm deployment (some files where missing from the package), so were removed. This is the next actual version after 3.0.1

    Source code(tar.gz)
    Source code(zip)
  • 2.7.8(Apr 8, 2020)

    This is a bug-fix release, resolving a number of long-standing issues, as described below. It also adds a new extension to handle some tex-mode macros inside \text{} and similar macros.

    Output issues

    • Fix displayIndent in CHTML with floating elements. (#2352)

    • Add skew values to STIX font italic and bold-italic characters in Plane 1. (#2050)

    • Fix CHTML mroot positioning to match SVG and HTML-CSS. (#2143)

    • Make line breaks cause full-width bounding box when they are at the top level. (#1804)

    • Fix problem with italic correction not being removed from integrals after a line break. (#2139)

    • Fix scaling of enclosures in zoomed CHTML. (#1815)

    • Use proper spacing for mstyle containing a stretchy operator. (#2052)

    • Add some missing stretchy character data. (#2135)

    • Add CSS to fix RTL issue in Chrome. (#2190)

    • Fix over-wide SVG output when \vphantom is used. (#1637)

    • Scale mglyphs to proper script size. (#2125)

    • Make sure SVG elements are scaled properly in menclose for CHTML (#2089)

    • Properly handle 'fit' columns in percentage-width tables. (#2075)

    • Correct offset into Math Alphabet for bold-italic in STIX font data. (#2035)

    TeX Input

    • Don't add \text to operators whose name already include it. (#2222)

    • Allow \newline to work like \\. (#2141)

    • Use proper spacing for \mathrel in align environment. (#2175)

    • Number a single split environment when autoNumber is 'all'. (#2272, #1811)

    • [mediawiki-texvc.js] drop redefinition of \oint (#2095)

    • Add extension to process some text-mode macros (#2051)

    • Fix handing of unbalanced braces in TeX input. (#2036)

    Miscellaneous

    • Update mhchem, SRE, and AsciiMath to current versions (#2344)

    • Allow tex2jax end delimiters to be close braces. (#2034)

    • Remove references to cdn.mathjax.org. (#2160)

    Source code(tar.gz)
    Source code(zip)
  • 3.0.1(Feb 7, 2020)

  • 2.7.7(Nov 19, 2019)

    This release adds the missing top-level MathJax.js file to the npm package that was accidentally left out when we moved from a black list to a white list for packaging the npm release. There are no functional changes to MathJax itself with this release.

    Source code(tar.gz)
    Source code(zip)
  • 3.0.0(Sep 4, 2019)

    After over two years of development, the MathJax team is pleased to announce the official release of MathJax 3.0.0!

    This version is a complete rewrite of MathJax from the ground up using modern programming techniques, including Typescript, ES6 modules, Promises, and more.

    Please see the What's New in v3.0 section of the documentation for details about the new version 3.0.0.

    Please see the Upgrading from v2 instructions for details about what is and isn't in version 3, and how to upgrade your site from version 2. Note in particular that there is a configuration converter that can help you move from version 2 to version 3.

    See the documentation for details about how to use MathJax.

    See the MathJax Source Repository for the source code for versions 3.

    There are two repositories that contain examples of using MathJax, one for web pages, and one for use with node on a server:

    Please use the MathJax Issue Tracker to report problems in version 3 of MathJax.

    Source code(tar.gz)
    Source code(zip)
  • 2.7.6(Aug 21, 2019)

    This is a bug fix release that fixes an issue with the latest.js 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, latest.js will find that the current CDN version is 3.0 and (correctly) will not switch to that, but instead will (incorrectly) use the version from which latest.js was loaded rather than the highest 2.x.y available. This means that when version 3.0 is released, sites using latest.js will fall back from version 2.7.5 to the version that they specified for latests.js. MathJax will still run on those pages, but it may be an earlier version than you have been getting in the past.

    The new version of latest.js properly handles the situation when the current version is not 2.x, so switching to 2.7.6/latest.js 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.

    We recommend anyone using latest.js switch to this version.

    Source code(tar.gz)
    Source code(zip)
  • 2.7.5(Jul 19, 2018)

    This is a bug-fix release primarily to address issues with WebKit that can cause the page to crash or some text to be missing in recent versions of Safari.

    • Update AsciiMath to current master version
    • Update mhchem to version 3.3.0
    • Update a11y to version 1.5.0 (with SRE 2.2.2)
    • Use Plane1 alphabets for STIX fonts when possible in HTML-CSS and SVG. (#1923)
    • Improve line breaking algorithm for all output modes. (#1970)
    • Fix problems with multline in CHTML (with tags) and SVG (with small containers). (#1974)
    • Add CSS for munder in CHTML. (#1981)
    • Adjust measuring of ex size and container width to avoid line breaks for inline math in WebKit. (#1982)
    • Don't rescale mstyle bbox for scriptstyle changes in CHTML. (#1985)
    • Prevent potential infinite loop in setRenderer(). (#1986)
    • Make sure \big, etc., are at the right size in script styles in CHTML. (#1987)
    • Fix problem with position of under/over applied to tables in SVG and HTML-CSS. (#1993)
    • Properly handle MML spacing for explicit FORM attributes in all output modes. (#1997)
    • Fix potential crash and missing text in recent Safari versions. (#2005)
    • Change WebKit version for accent fix from 603 to 602. (#2017)
    • Adjust max-width in SVG output to account for scaling factor.
    • Fix for useMMLspacing and FORM attributes.
    • Properly count multi-character glyphs when looking for a single character
    Source code(tar.gz)
    Source code(zip)
  • 2.7.4(Apr 2, 2018)

    This is a bug-fix release. Among the issue fixed in this release are the following:

    • Prevent infinite loop if an autoloaded component fails to load. (#1936)
    • Always set movablelimits to false in \overset and \underset. (#1929)
    • CSS reset for box-sizing in HTML-CSS output. (#1942)
    • Add px to max-width for SVG output containing tags. (#1950)
    • Properly handle namespaces starting with math in MathML input. (#1951)
    • Make tex2jax and asciimath2jax rescan after unmatched delimiter. (#1960)
    • Fix minimum height of accents in scripts. (#1956)
    • Make monospaced non-breaking space be of correct width. (#1953)
    • Handle size of centered large operators correctly in mrows. (#1933)
    Source code(tar.gz)
    Source code(zip)
  • 2.7.3(Feb 8, 2018)

    This is mostly a bug-fix release, with a few enhancements as well.

    The primary enhancement is the addition of version 2.3 of the Speech-Rule Engine that underlies the 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.

    Other bug fixes and enhancements include:

    • AsciiMath has been updated to include new features that have been added in the official AsciiMathML.js file since v2.7.2 was released.

    • HTML-CSS: Improve detection of web fonts (#517)

    • Improve line breaking past the container width when no break is found within it (#1883)

    • SVG: Don't lose pre-spacing in elements containing line breaks (#1915)

    • CommonHTML: Fix width of roots containing line breaks (#1882)

    • TeX: Remove balanceBraces option from tex2jax, which was never implemented (#1871)

    • TeX: Make HTML id's used in \tag handling more robust (#1899)

    • TeX: Make \DeclareMathOperator and \Newextarrow localizable by begingroup (#1876)

    • SVG: Measure sizes of annotation-xml elements properly (#1870)

    • TeX: Have \bigg and friends to trim spaces from their arguments (#1819)

    • Handle default border width properly in SVG and HTML-CSS (#1855)

    • Decode hash URI component so it works with special characters (#1843)

    • CommonHTML: Reset character width if a reset occurs while an equation is being processed (#1837)

    • CommonHTML: Properly scale widths in line breaking algorithm (#1881)

    • HTML-CSS: Fix position of rightmost glyph in multi-glyph horizontal stretchy characters (#1896)

    • MathML: Don't add duplicate xmlns attribute when original is empty (#1862)

    • TeX: Don't produce unwanted mrows with \left...\right (#1829)

    Source code(tar.gz)
    Source code(zip)
  • 2.7.2(Aug 26, 2017)

    MathJax v2.7.2 focuses on bug fixes including a workaround for a regression in Safari as well as an important update to the speech-rule engine that underlies the MathJax Accessibility Extensions.

    Bug fixes

    Accessibility

    • Upgrade Accessibility Extensions to v1.2.3

    API

    • Properly handle arrays of elements in Typeset() call without callbacks. #1680 #1794

    Output

    • Remap newlines to spaces. #1694 #1783
    • Fix placement of underlines in script styles. #1686 #1792
    • [CommonHTML] Fix problem with ex-height detection in some instances. #1664 #1671
    • [CommonHTML] Add space between fractions when useMMLspacing is in effect. #1626 #1786
    • [CommonHTML] Don't force width of large collections of text. #1718 #1788
    • [CommonHTML] Fix bounding box issues with some stretchy characters. #1712 #1789
    • [CommonHTML] Fix problem with table row and column lines #1711 #1790
    • [CommonHTML] Improve position of stretchy accents. #1735 #1787
    • [CommonHTML] Fix problem with <=> arrow in mhchem. 1657 #1795
    • [CommonHTML] Fix getNode() method not descending into all the children. #1691 #1791
    • [CommonHTML] Use non-combining vector arrow to work around Safari regression. #1709 #1796
    • [CommonHTML] [SVG] Localize some variables that where accidentally global. #1806 #1809
    • [HTML-CSS] Work around for regression in Safari wrt combining characters. #1737 #1775
    • [HTML-CSS] Handle FontFaceBug interaction with web fonts in Chrome. #1774 #1776
    • [HTML-CSS] Fix typo in STIX font data. #1683 #1785
    • [HTML-CSS] Fix positioning problem with accents at large math sizes. #1798. #1799
    • [HTML-CSS] [SVG] Add minimum height for accents. #1706 #1781

    Input

    • [TeX] Allow negative dimensions in \Rule and add \rule macro. #1666 #1673
    • [TeX] Better error messages for \shoveleft and \shoveright. #1701 #1782
    • [TeX] Better test for \text{} in \cases{}. #1482 #1793
    • [TeX] Fix spacing for aligned/alignedat. #1690 #1784
    • [TeX] Add more unicode-based intergrals for mediawiki-texvc. #1723 #1810
    • [MathML] Fix problem with namespaces on internal element. #1755 #1756

    Interface

    • Fix typo in the localization menu #1746
    • Update menu localization; adds: Arabic, Slovak, Thai, Traditional Chinese #1821

    Misc.

    • Fixed typos in comments #1660
    • Fix trailing comma #1670
    • Fix typo in function name #1797
    • Fix automatic deployment to npm #1820

    For more information see also

    Source code(tar.gz)
    Source code(zip)
  • 2.7.2-rc(Aug 23, 2017)

  • 2.7.2-beta.1(Aug 2, 2017)

    This is the second beta release for 2.7.2. It incorporates SRE 2.0 and fixes a timing problem with the accessibility menu when used in combined configuration files. See the 2.7.2-beta.0 release for further details.

    Source code(tar.gz)
    Source code(zip)
  • 2.7.2-beta.0(Aug 2, 2017)

    This is a bug-fix release that resolves two dozen issues, and also includes an important update to the speech-rule engine that underlies the accessibility tools provided by MathJax via the accessibility menu.

    Among the bugs that are fixed are:

    • The misplacement of vector arrows that first appeared in Safari 10 (#1709 and #1737).
    • An error with certain uses of AMScd in CommonHTML output (#1691)

    See the 2.7.2 milestone for details.

    Source code(tar.gz)
    Source code(zip)
  • 2.7.1(Apr 25, 2017)

    This patch release to fix dependencies on cdn.mathjax.org which is nearing its end-of-life, cf. https://www.mathjax.org/cdn-shutting-down/ for migration help.

    • Fix #1738
    • Add latest.js, a convenience loader to load the latest release from cdnjs, rawgit and jsdelivr.
    Source code(tar.gz)
    Source code(zip)
  • 2.7.0(Oct 14, 2016)

    MathJax v2.7.0 focuses on bug fixes and provides opt-ins into several new features.

    For more information see

    • the release milestone for more information.
    • http://docs.mathjax.org/en/latest/whats-new-2.7.html
    • https://www.mathjax.org/mathjax-v2-7-now-available/
    Source code(tar.gz)
    Source code(zip)
  • 2.7.0-beta.0(Sep 1, 2016)

    This is the first beta release for MathJax v2.7.

    This release focuses on bug fixes and provides opt-ins into several new features.

    For more information see

    Source code(tar.gz)
    Source code(zip)
  • 2.6.1(Feb 8, 2016)

  • 2.6.1-rc.1(Feb 8, 2016)

  • 2.6.0(Dec 30, 2015)

    MathJax v2.6 focuses on completing the CommonHTML output and improving accessibility of MathJax. It also includes more than 30 important bug fixes.

    For more information checkout

    • https://github.com/mathjax/MathJax/issues?q=milestone%3A%22MathJax+v2.6%22
    • https://docs.mathjax.org/en/latest/whats-new-2.6.html
    • https://www.mathjax.org/mathjax-v2-6-beta-now-available/
    Source code(tar.gz)
    Source code(zip)
Creating terminal-based UIs and games in Dart should be accessible and fun!

griddle Griddle simplifies the concept of creating 2D games or UI applications within a 2D-matrix, or grid, which in turn makes it a suitable cross-pl

Matan Lurey 20 Dec 19, 2022
This is Math-Puzzle game made in flutter and available on Playstore & AppStore

Math Matrix : Train Your Brain, Improve Math Skill Train Your Brain · Report Bug · Request Feature Math Matrix is a Math Game that tries improvise you

Jay Savsani 182 Dec 30, 2022
A vector math package for 2D and 3D applications

Introduction A Vector math library for 2D and 3D applications. Features 2D, 3D, and 4D vector and matrix types. Quaternion type for animating rotation

Google 261 Dec 21, 2022
A Mobile application developed with Flutter and Dart to do math operations with binary numbers.

Math operations with Binary Numbers Readme PT About this Project Mobile application developed with Flutter and Dart to do math operations as sum, subt

Manoel Ribeiro 3 Nov 3, 2020
Fast math TeX renderer for Flutter written in Dart.

CaTeX is a Flutter package that outputs TeX equations (like LaTeX, KaTeX, MathJax, etc.) inline using a widget and Flutter only - no plugins, no web v

simpleclub 56 Nov 14, 2022
MathTraining - A mobile application for training mental math skills

Math Training app A mobile application for training mental math skills. The app

null 34 Oct 5, 2022
MathCanvas - Graphical Math Equation Editor made by Flutter

Graphical Math Equation Editor made by Flutter. My goal is to provide a keyboard typing experience like a calculator. Test Web Page: https:

GongBJ 3 Jun 3, 2022
Find The Latest trending and upcoming movies and tv shows with MovieDB app. The app contains all info about movies and tv shows. find similar movies or shows, Browse all genres, video trailers, backdrops, logos, and posters.

MovieDB App Features. Dynamic Theming Search Functionality Onboarding-Screen Select favourite movie Home Screen Tranding movie Movies different catego

Ansh rathod 80 Dec 12, 2022
Tasawq App — Flutter framework and Firebase An application that objectives to display all nearby stores of all kinds and real estate.

Tasawq App — Flutter framework and Firebase An application that objectives to display all nearby stores of all kinds and real estate. Multi-vendor, standard user login to view nearby products and stores for rating, follow-up, messaging and more

null 1 Nov 10, 2022
A new flutter package project which contains lots of beautiful alert dialog that will help you lot to create beautiful awesome alert box very quickly and easily.

A new flutter package project which contains lots of beautiful alert dialog that will help you lot to create beautiful awesome alert box very quickly and easily.

Karan Soni 8 Jan 8, 2022
A beautiful, secure and simple authenticator app that supports multiple protocols and services. Free and open source. Written in Flutter and Dart.

OpenAuth A beautiful, secure and simple authenticator app that supports multiple protocols and services. Free and open source. Written in Flutter and

Isaiah Collins Abetong 31 Oct 5, 2022
SoundVolumeView that displays general information and the current volume level for all active sound components in your system, and allows you to instantly mute and unmute them

SoundVolumeView that displays general information and the current volume level for all active sound components in your system, and allows you to instantly mute and unmute them

Domingo 4 Mar 4, 2022
Navigation the Multiple Screens ( All categories and Favourites Screens ) and add settings to sort the meals based on categories

meals_app Navigation the Multiple Screens ( All categories and Favourites Screens ) and add settings to sort the meals based on categories Getting Sta

Avinash Poshiya 1 Nov 29, 2021
A Very Flexible Widget that can Implement Material Sheets on all Directions, both modal and persistent, and consequently a Material Navigation Drawer

Flutter_MaterialSheetAndNavigationDrawer If this project helped you reduce developement time or you just want to help me continue making useful tools

Bryan Cancel 30 Dec 4, 2021
Flutter makes it easy and fast to build beautiful apps for mobile and beyond

Flutter is Google's SDK for crafting beautiful, fast user experiences for mobile, web, and desktop from a single codebase. Flutter works with existing

Flutter 148.2k Jan 8, 2023
Download files from Firebase Storage with Flutter. List all images, videos, or other files from Firebase and download them.

Flutter Tutorial - Download Files From Firebase Storage Download files from Firebase Storage with Flutter. List all images, videos, or other files fro

Johannes Milke 28 Dec 4, 2022
ThemeX is an easy theme manipulation. Only inform primary color and the ThemeX generate all color combination palette for you

ThemeX is an easy theme manipulation basied on Material Design. Only inform primary color and the ThemeX generate all color combination palette for yo

Michael S. Lopes 2 Jan 31, 2022