MathJax
Developer(s) | Design Science |
---|---|
Stable release | 1.1a
/ June 10, 2011 |
Repository | |
Written in | JavaScript |
Operating system | Cross-platform |
Type | Mathematical Software |
License | Apache License |
Website | http://www.mathjax.org/ |
MathJax is a cross-browser JavaScript library that displays mathematical equations in web browsers, using LaTeX math and MathML markup.[1] MathJax is released as open-source software under the Apache license.
The MathJax project started in 2009 as the successor to an earlier JavaScript mathematics formatting library, jsMath,[2] and is managed by Design Science. The project is sponsored by the American Mathematical Society, Design Science, and the Society for Industrial and Applied Mathematics and is supported by the American Physical Society, Elsevier, and Project Euclid.
MathJax is used by web sites including MathSciNet,[3] GitHub, n-category cafe, MathOverflow, Project Euclid journals,[4], Scholarpedia and the All-Russian Mathematical Portal.[5]
Features
MathJax downloads with web page content, scans the page content for equation markup, and typesets the math. Thus, MathJax requires no installation of software or fonts on the reader's system. This allows MathJax to run in any browser with JavaScript support, including mobile devices.[6]
MathJax can display math by using a combination of HTML and CSS or by using the browser's native MathML support, when available. The exact method MathJax uses to typeset math is determined by the capabilities of the user's browser, fonts available on the user's system, and configuration settings. MathJax v2.0-beta introduced SVG rendering.[7]
In the case of HTML and CSS typesetting, MathJax maximizes math display quality by using math fonts if available and by resorting to images for older browsers. For newer browsers that support web fonts, MathJax provides a comprehensive set of web fonts, which MathJax downloads as needed. If the browser does not support web fonts, MathJax checks if valid fonts are available on the user's system. If this does not work, MathJax provides images of any symbols needed. MathJax can be configured to enable or disable web fonts, local fonts, and image fonts.
MathJax can display mathematical notation written in LaTeX or MathML markup. Because MathJax is meant only for math display and LaTeX is a document layout language, MathJax only supports the subset of LaTeX used to describe mathematical notation.[6]
MathJax also supports math accessibility by exposing MathML through its API to assistive technology software, as well as the basic WAI-ARIA 'role' and older 'altext' attributes.[8]
The MathJax architecture is designed to support the addition of input languages and display methods in the future via dynamically loaded modules. MathJax also includes a JavaScript API for enumerating and interacting with math instances in a page.
Browser compatibility
MathJax renders math in most popular browsers, including Internet Explorer 6, Firefox 3, Google Chrome 0.3, Safari 2.0, Opera 9.5, iPhone/iPad Safari, and the Android browser. Some older versions of browsers do not support web fonts (with the @font-face CSS construct), so they have to use MathJax image font mode. The browser compatibility list is available at the official site.[9]
Server compatibility
MathJax can be installed on various web server platforms, including MediaWiki, Drupal, WordPress, and Joomla.[10]
TeX support
MathJax replicates the math environment commands of LaTeX. AMS-LaTeX math commands are supported via extensions. MathJax also supports TeX macros and miscellaneous formatting like \color and \underline.[11]
MathML support
MathJax added partial support for MathML 2.0 and some MathML 3.0 constructs in its beta 2 release. MathJax only supports presentation MathML.
See also
References
- ^ "MathJax: Rich Math display from LaTeX and MathML".
- ^ Hayes, Brian (2009), "Writing Math on the Web: The Web would make a dandy blackboard if only we could scribble an equation", American Scientist, 92 (2): 98, doi:10.1511/2009.77.98.
- ^ "MathSciNet What's New".
- ^ "What is MathJax?".
- ^ "All-Russian Mathematical Portal".
- ^ a b Cervone, Davide (2012), "Math Jax: A Platform for Mathematics on the Web" (PDF), Notices of the American Mathematical Society, 59 (2): 312–316
- ^ "MathJax v2.0-beta now available on CDN".
- ^ "MathJax: Accessibility".
- ^ "MathJax: Browser Compatibility".
- ^ "Using MathJax in popular web platforms".
- ^ "MathJax: Supported LaTeX Commands".