Extension:Math

The Math extension provides support for rendering mathematical formulae. An overview of what can currently be done with this extension is available at the English Wikipedia's documentation.

More information about installing and configuring this extension, including for older versions, can be found at .

Viewing math
Even though the Math extension has ability to deliver MathML output, it will always display images in SVG (converting characters to &lt;path>s) or PNG (least preferentially), regardless of the capabilities of the device you are using.

To enable native MathML rendering, specific tuning are needed:
 * First of all, You MUST ext>Special:MyLanguage/Extension:Math/advancedSettings#CSS for the MathML with SVG fallback mode|inserting some CSS rules. Those CSS rules will change the Math extension's default behavior, making MathML elements in pages sent from your mediawiki server to browsers visible, and hiding image elements.


 * For Firefox or other Gecko browsers, everything works fine out of box. What you may need to do is installing [https://developer.mozilla.org/docs/Mozilla/MathML_Project/Fonts math fonts] . Accessibility support is provided by NVDA, VoiceOver or Orca.  Additionally, NVDA requires the MathPlayer plugin to read mathematics.


 * For Safari or other WebKit browsers, everything works fine out of box. What you may need to do is installing math fonts.


 * Chrome itself DOES NOT support MathML rendering till now (2021-03-19), you must get accessibility support via [http://www.chromevox.com/ ChromeVox] or visual rendering via the [https://chrome.google.com/webstore/detail/math-anywhere/gebhifiddmaaeecbaiemfpejghjdjmhc MathJax plugin].


 * In some versions of Internet Explorer, it is possible to use [https://www.dessci.com/en/products/mathplayer/ MathPlayer] as an assistive technology.

Accessibility support is provided by the VoiceOver screen reader but not by Orca yet.

Installation
You should additionally go to the page Special:MathStatus to see whether all of the components of the Math extension now work. For any problems you see, the best option is to create a task on https://phabricator.wikimedia.org

Unfortunately, there is no well tested guide on installing  and </> to work with the Math extension, but there is at least a working draft. <tvar|restbase></> please contribute.

In addition, there is a [<tvar|github>https://github.com/physikerwelt/mathoid-docs/blob/master/Guide%20for%20Installing%20and%20Setting%20up%20Mediawiki%20with%20Restbase%20and%20Mathoid.pdf</> Guide for Installing and Setting up Mediawiki with Restbase and Mathoid in MW1.28].

Math output modes
The setting $wgMathValidModes holds an array with the names of output modes that can be used for rendering. If multiple modes are enabled, logged-in users can set a personal preference in the appearance pane of their user preferences page.

You can also use the $wgDefaultUserOptions setting to set which of these modes should be the default, e.g.:

Mathoid
Mode: 'mathml' (pre-July 2015: MW_MATH_MATHML)

For MW 1.23 and higher, you can use a Mathoid server that uses MathJax to convert texvc input on the server side to MathML+SVG rendering. This is the most recommended option; Mathoid is the rendering mode that will be used on Wikipedia in the future.

Mathoid as a service
To use Mathoid as a service, resulting in performance benefits, the following settings are recommended:

See mathoid>Special:MyLanguage/Mathoid</>|Mathoid for instructions on how to run your own Mathoid server. Note that as of March 2017 this is likely to also require a <tvar|2></> server/installation (see <tvar|1></>).

Mathoid's CLI interface
To use Mathoid's CLI interface, which is possibly easier to set up and resulting in less permanent memory consumption, while degrading performance, the following settings are recommended:

LaTeX
Mode: 'png' (pre-July 2015: MW_MATH_PNG)

Since MediaWiki 1.32, this mode will also require a Mathoid server to work. In older versions, it requires 1>Special:MyLanguage/Extension:Math/advancedSettings#Installing texvc</>|installing texvc and texvccheck, which may require the most setup work.

LaTeXML
Mode: 'latexml' (pre-July 2015: MW_MATH_LATEXML)

Uses the <tvar|LaTeXML>LaTeXML</> utility. The rendering is done via an online service (set with $wgLaTeXMLUrl, which has a default value).

No rendering
Mode: 'source', (pre-July 2015: MW_MATH_SOURCE)

This mode will forward the Latex input without rendering, presenting it in a <tvar|1></> element, surrounded by <tvar|2>$ :formula $</>.

Make sure to set <tvar|1>$wgMathDisableTexFilter</> to <tvar|2>'always'</> (see below) if you only want the raw latex formula, else an error will appear due to the failed check for PNG depictions.

Tracking categories
The extension creates a number of tracking categories to detect errors and deprecated features. The exact name of the categories is determined by pages in the MediaWiki namespace.

Tips and tricks

 * You can use the Firefox [<tvar|mathml-copy>https://addons.mozilla.org/de/firefox/addon/mathml-copy</> MathML copy addon] to copy formulae to other applications such as Microsoft Word ([<tvar|youtube1>https://www.youtube.com/watch?v=FDMfT27zE54</> video]), or Google docs with the [<tvar|gmath>https://chrome.google.com/webstore/detail/gmath/hhaencnpmaacoojogjkobikbmkhikjmm?utm_source=permalink</> g(Math)] plugin ([<tvar|youtube2>https://www.youtube.com/watch?v=KKwF6IKRkHU&hd=1</> video])


 * You can override the user preferred and default rendermode by adding the  attribute to the $$ element. eg.. to force an image being rendered ...$$.


 * All images of rendered formula are stored in a cache and not automatically recreated if the page is viewed or edited. To force the re-rendering of all formulas of a page, 1>Special:MyLanguage/Manual:Purge</>|purge using the <tvar|2> </> action.  For example the URL <tvar|1>https://en.wikipedia.org/w/index.php?title=Integral&action=purge&mathpurge=true</> will force re-rendering of the Integer article.  Afterwards you need to bypass your browser cache so that the new created images of the formulas are actually downloaded.

Error reporting
If something is wrong with the math extension you can report that at [<tvar|phabricator>https://phabricator.wikimedia.org/maniphest/task/create/?projects=MediaWiki-extensions-Math</> Phabricator]. In addition you should check how your problem relates to the automated unit tests that are generated from the page math-test>Special:MyLanguage/Extension:Math/CoverageTest</>|CoverageTest.