Developer(s) | American Mathematical Society |
---|---|
Stable release | 3.2.2 [1] / June 8, 2022 |
Preview release | 4.0.0-beta.6 [2] / April 30, 2024 |
Repository | |
Written in | JavaScript |
Operating system | Cross-platform |
Type | Mathematical software |
License | Apache License 2.0 |
Website | www |
MathJax is a cross-browser JavaScript library that displays mathematical notation in web browsers, using MathML, LaTeX, and ASCIIMathML markup. [3] [4] [5] 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, [6] and is managed by the American Mathematical Society. [7] The project was founded by the American Mathematical Society, Design Science, and the Society for Industrial and Applied Mathematics and is supported by numerous sponsors such as the American Institute of Physics and Stack Exchange. [8]
MathJax is used by web sites including arXiv, [9] Elsevier's ScienceDirect, [10] MathSciNet, [11] n-category cafe, MathOverflow, Wikipedia (on the backend), [12] [13] Scholarpedia, Project Euclid journals, [14] IEEEXplore, [15] Publons, Coursera, and the All-Russian Mathematical Portal. [16]
MathJax is downloaded as part of a web page, scans the page for mathematical markup, and typesets the mathematical information accordingly. Thus, MathJax requires no installation of software or extra fonts on the reader's system. This allows MathJax to run in any browser with JavaScript support, including mobile devices. [17]
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. [18]
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 whether valid fonts are available on the user's system. If this does not work, MathJax provides images of any symbols needed.[ clarification needed ] MathJax can be configured to enable or disable web fonts, local fonts, and image fonts.
MathJax uses the STIX fonts for including mathematics in web pages. Installing the fonts on the local computer improves MathJax’s typesetting speed. [19]
MathJax can display mathematical notation written in LaTeX or MathML markup. Because MathJax is meant only for math display, whereas LaTeX is a document layout language, MathJax only supports the subset of LaTeX used to describe mathematical notation. [17]
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 alt attributes. [20]
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.
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. [21]
MathJax can be easily added to many popular web platforms. [22]
MathJax can be used in Node.js since version 3; [23] for version 2, the MathJax-node library [24] provides Node.js compatibility.
Any MathJax equation displayed in a supported browser can be copied out in MathML or LaTeX format via "Show Math as" sub-menu if right-button clicked or control-clicked on it. Then it can be pasted in any equation editor that supports MathML or LaTeX, such as Mathematica, MathType, MathMagic, or Firemath, for re-use. [25]
Equations generated in MathML or LaTeX format by any 3rd party equation editor can be used in MathJax enabled web pages.
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
. [26]
MathJax added partial support for MathML 2.0 and some MathML 3.0 constructs in its beta 2 release. MathJax supports presentation MathML and, as of version 2.2, provides experimental support for content MathML. [27]
The MathJax site has been providing a content delivery network (CDN) where the JavaScript needed for MathJax to work can be loaded by the browser at run time from the CDN. This simplifies the installation and ensures the latest version of the library is always used. Over time usage of the server has grown from 1.3TB per month traffic in 2011 to 70TB per month in 2017. Due to increasing cost of hosting the server, the main CDN server shut down at the end of April 2017. Alternative third party CDN servers are available. [28]
Hypertext Markup Language (HTML) is the standard markup language for documents designed to be displayed in a web browser. It defines the content and structure of web content. It is often assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaScript.
LaTeX is a software system for typesetting documents. LaTeX markup describes the content and layout of the document, as opposed to the formatted text found in WYSIWYG word processors like Google Docs, LibreOffice Writer and Microsoft Word. The writer uses markup tagging conventions to define the general structure of a document, to stylise text throughout a document, and to add citations and cross-references. A TeX distribution such as TeX Live or MiKTeX is used to produce an output file suitable for printing or digital distribution.
Mathematical Markup Language (MathML) is a mathematical markup language, an application of XML for describing mathematical notations and capturing both its structure and content, and is one of a number of mathematical markup languages. Its aim is to natively integrate mathematical formulae into World Wide Web pages and other documents. It is part of HTML5 and standardised by ISO/IEC since 2015.
An HTML element is a type of HTML document component, one of several types of HTML nodes. The first used version of HTML was written by Tim Berners-Lee in 1993 and there have since been many versions of HTML. The current de facto standard is governed by the industry group WHATWG and is known as the HTML Living Standard.
The following tables compare general and technical information for a number of document markup languages. Please see the individual markup languages' articles for further information.
TiddlyWiki is a personal wiki and a non-linear notebook for organising and sharing complex information. It is an open-source single page application wiki in the form of a single HTML file that includes CSS, JavaScript, embedded files such as images, and the text content. It is designed to be easy to customize and re-shape depending on application. It facilitates re-use of content by dividing it into small pieces called Tiddlers.
MathType is a software application created by Design Science that allows the creation of mathematical notation for inclusion in desktop and web applications.
The STIX Fonts project or Scientific and Technical Information Exchange (STIX), is a project sponsored by several leading scientific and technical publishers to provide, under royalty-free license, a comprehensive font set of mathematical symbols and alphabets, intended to serve the scientific and engineering community for electronic and print publication. The STIX fonts are available as fully hinted OpenType/CFF fonts. There is currently no TrueType version of the STIX fonts available, but the STIX Mission Statement includes the intention to create one in the future. However, there exists an unofficial conversion of STIX Fonts to TrueType, suitable for use with software without OpenType support.
AMS-LaTeX is a collection of LaTeX document classes and packages developed for the American Mathematical Society (AMS). Its additions to LaTeX include the typesetting of multi-line and other mathematical statements, document classes, and fonts containing numerous mathematical symbols.
jQuery is a JavaScript library designed to simplify HTML DOM tree traversal and manipulation, as well as event handling, CSS animations, and Ajax. It is free, open-source software using the permissive MIT License. As of August 2022, jQuery is used by 77% of the 10 million most popular websites. Web analysis indicates that it is the most widely deployed JavaScript library by a large margin, having at least three to four times more usage than any other JavaScript library.
A mathematical markup language is a computer notation for representing mathematical formulae, based on mathematical notation. Specialized markup languages are necessary because computers normally deal with linear text and more limited character sets. A formally standardized syntax also allows a computer to interpret otherwise ambiguous content, for rendering or even evaluating. For computer-interpretable syntaxes, the most popular are TeX/LaTeX, MathML, OpenMath and OMDoc.
AsciiMath is a client-side mathematical markup language for displaying mathematical expressions in web browsers.
EPUB is an e-book file format that uses the ".epub" file extension. The term is short for electronic publication and is sometimes stylized as ePUB. EPUB is supported by many e-readers, and compatible software is available for most smartphones, tablets, and computers. EPUB is a technical standard published by the International Digital Publishing Forum (IDPF). It became an official standard of the IDPF in September 2007, superseding the older Open eBook (OEB) standard.
Cascading Style Sheets (CSS) is a style sheet language used for specifying the presentation and styling of a document written in a markup language such as HTML or XML. CSS is a cornerstone technology of the World Wide Web, alongside HTML and JavaScript.
TeX4ht is a configurable converter capable of translating TeX and LaTeX documents to HTML and certain XML formats. Most notably, TeX4ht serves for converting (La)TeX documents to formats used by word processors. It was developed by Eitan M. Gurari.
jsMath was a JavaScript library for displaying mathematics in browsers in a cross-platform way. It was free software released under the Apache License.
The Web platform is a collection of technologies developed as open standards by the World Wide Web Consortium and other standardization bodies such as the Web Hypertext Application Technology Working Group, the Unicode Consortium, the Internet Engineering Task Force, and Ecma International. It is the umbrella term introduced by the World Wide Web Consortium, and in 2011 it was defined as "a platform for innovation, consolidation and cost efficiencies" by W3C CEO Jeff Jaffe. Being built on The evergreen Web has allowed for the addition of new capabilities while addressing security and privacy risks. Additionally, developers are enabled to build interoperable content on a cohesive platform.
Firemath is a WYSIWYG equation editor which generates MathML. It is open source software published under the GNU General Public License (GPL) version 3. Firemath is an add-on for the web browser Firefox. It uses the rendering facilities of the browser.
KaTeX is a cross-browser JavaScript library that displays mathematical notation in web browsers. It puts special emphasis on being fast and easy to use.
This is a list of articles related to the JavaScript programming language.
{{cite journal}}
: CS1 maint: DOI inactive as of November 2024 (link)