Phabricator project: #Math

Extension:Math

From MediaWiki.org
Jump to navigation Jump to search

Other languages:
Deutsch • ‎English • ‎Tiếng Việt • ‎català • ‎dansk • ‎español • ‎français • ‎italiano • ‎polski • ‎português • ‎português do Brasil • ‎sicilianu • ‎suomi • ‎yue • ‎中文 • ‎日本語 • ‎한국어
MediaWiki extensions manual
Crystal Clear action run.svg
Math
Release status: stable
ExtensionMath (cropped).png
Implementation Tag
Description Allows to render mathematical formulas
Author(s)
  • Moritz Schubotz,
  • Tomasz Wegrzanowski,
  • Brion Vibber
  • and others
Latest version continuous updates
MediaWiki 1.25+
Database changes Yes
Tables math
mathoid
mathlatexml
License GNU General Public License 2.0 or later
Download
Parameters

  • $wgUseTeX
  • $wgTexvc
  • $wgTexvcBackgroundColor
  • $wgMathCheckFiles
  • $wgMathPath
  • $wgMathDirectory
  • $wgMathFileBackend
Tags
<math>
Hooks used
ParserFirstCallInit
GetPreferences
LoadExtensionSchemaUpdates
ParserTestTables
PageRenderingHash
EditPageBeforeEditToolbar
WikibaseClientDataTypes
WikibaseRepoDataTypes
ParserAfterTidy
Translate the Math extension if it is available at translatewiki.net
Check usage and version matrix.
Issues Open tasks · Report a bug

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

More information about installing and configuring this extension, including for older versions, can be found at Extension:Math/advancedSettings .

Viewing math[edit]

The Math extension tries to deliver MathML output, with fallback to SVG or PNG images respectively. Depending on the capabilities of the device you are using, the sort of output is chosen. Basic math support works for all browsers. However, for optimal rendering specific tuning may be needed:

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

Installation[edit]

See this thread for information on how to install this extension for MediaWiki 1.31 and later.
  • If using Vagrant , install with vagrant roles enable math --provision
Manual installation
  • Download and place the file(s) in a directory called Math in your extensions/ folder.
  • Add the following code at the bottom of your LocalSettings.php:
    wfLoadExtension( 'Math' );
    // See below for installation requirements and configuration settings:
    
  • Run the update script which will automatically create the necessary database tables that this extension needs.
  • To see math beyond a plain text output, follow instructions below for enabling various math output modes.
  • Yes Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.

To users running MediaWiki 1.24 or earlier:

The instructions above describe the new way of installing this extension using wfLoadExtension() If you need to install this extension on these earlier versions (MediaWiki 1.24 and earlier), instead of wfLoadExtension( 'Math' );, you need to use:

require_once "$IP/extensions/Math/Math.php";

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 Mathoid and Restbase to work with the Math extension, but there is at least a working draft. Extension:Math/Restbase please contribute.

In addition, there is a Guide for Installing and Setting up Mediawiki with Restbase and Mathoid in MW1.28.

Math output modes[edit]

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.:

$wgDefaultUserOptions['math'] = 'mathml';

Mathoid[edit]

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[edit]

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

// Set MathML as default rendering option
$wgDefaultUserOptions['math'] = 'mathml';
$wgMathFullRestbaseURL = 'https://en.wikipedia.org/api/rest_';

See Mathoid for instructions on how to run your own Mathoid server. Note that as of March 2017 this is likely to also require a RESTbase server/installation (see task T154394).

Mathoid's CLI interface[edit]

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:

// Set MathML as default rendering option
$wgDefaultUserOptions['math'] = 'mathml';
// Please create a config.yaml in advance. Templates are in the Mathoid repository.
$wgMathoidCli = ['/path/to/mathoid/cli.js', '-c', '/path/to/mathoid/config.yaml'];
// Raise MediaWiki's memory limit to 1.2G for mathoid.
$wgMaxShellMemory = 1228800;

If you run MediaWiki under system containing SELinux and you get Mathoid cli '/path/to/mathoid/cli.js' is not executable message from the error log, you can run

setsebool -P httpd_execmem 1
setsebool -P httpd_setrlimit 1
to make sure the Apache server allow to change system limits.

LaTeX[edit]

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

This is the mode that requires the most setup work, since at least the texvc utility has to be installed for it to work, and ideally texvccheck as well. See Installing texvc for how to install both of these.

LaTeXML[edit]

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

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

No rendering[edit]

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

This mode will forward the Latex input without rendering, presenting it in a <span> element, surrounded by $ :formula $.

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

MathJax[edit]

Mode: MW_MATH_MATHJAX

This mode uses the MathJax application for client-side rendering. It is now deprecated, and requires MediaWiki 1.25 or lower in order to run. See Client-side rendering with MathJax for how to use it.

List of significant configuration settings[edit]

Setting name Default value Description
$wgMathValidModes array( 'png', 'source', 'mathml' ) Defines the mode allowed on the server.
$wgMathDisableTexFilter 'never' Option to disable the tex filter. If set to true any LaTeX expression is parsed this can be a potential security risk. If set to false only a subset of the TeX commands is allowed. See the wikipedia page Help:Math for details. Use "always" to disable this feature.
$wgMathFullRestbaseURL false The math extension gets the default config from the Visual Editor, if available. Details.

Tips and tricks[edit]

  • You can use the Firefox MathML copy addon to copy formulae to other applications such as Microsoft Word (video), or Google docs with the g(Math) plugin (video)
  • You can override the user preferred and default rendermode by adding the forcemathmode attirbute to the <math> element. eg.. to force an image being rendered <math forcemathmode="png">...</math>.

Error reporting[edit]

If something is wrong with the math extension you can report that at Phabricator. In addition you should check how your problem relates to the automated unit tests that are generated from the page CoverageTest.

Further reading[edit]

See Extension:Math/advancedSettings for old versions and further information.

Subpages[edit]

See also[edit]