Extension:SimpleMathJax

Category:Extensions without an imageCategory:Extensions without a compatibility policyCategory:MIT licensed extensions
MediaWiki extensions manual
SimpleMathJax
Release status: stableCategory:Stable extensions
Implementation Tag Category:Tag extensions
Description Allows to render mathematical formulas using MathJax with MediaWiki math style
Author(s) jmnote, vedmaka, jamesmontalvo3, badshah400
Latest version 0.8.4 (2023-11-04)
MediaWiki 1.29+[1]Category:Extensions with manual MediaWiki version
Database changes No
License MIT License
Download Category:Extensions in GitHub version control
README
Example zetawiki.com
  • $wgSmjUseCdn
  • $wgSmjUseChem
  • $wgSmjDisplayMath
  • $wgSmjExtraInlineMath
  • $wgSmjScale
  • $wgSmjEnableMenu
  • $wgSmjDisplayAlign
  • $wgSmjWrapDisplaystyle
Public wikis using 909 (Ranked 270th)
Category:All extensions

The SimpleMathJax extension enables MathJax, a JavaScript library, for typesetting TeX formula in MediaWiki inside math environments. This extension will load resources from cdn.jsdelivr.net on all wiki pages that have math or chem tags.

<math>E=mc^2</math>
Advantages
  • Simple
  • Lightweight
  • UTF-8 Support
  • Mobile View OK
  • Setting Font Size
  • chem tag support for chemistry
  • additional inlineMath symbols pairs support
  • MediaWiki Style! Look at the samples.

Installation

Or you can git clone.

$ git clone --depth 1 https://github.com/jmnote/SimpleMathJax.git

If you want to use local MathJax scripts (and not a CDN), then you can use git clone recursive. In most cases, CDN is much faster than your server. However, a CDN may not be available if you have a hardened PHP installation due to disabled_functions restrictions.

$ git clone --depth 1 --recursive --shallow-submodules https://github.com/jmnote/SimpleMathJax.git

SimpleMathJax is meant to be used as an alternative to the Math extension. If the Math extension is installed it may take precedence and cause SimpleMathJax to not work. The SimpleMathJax extension is the only thing you need to start rendering equations.

Configuration settings

The following variables can be defined in LocalSettings.php after calling wfLoadExtension( 'SimpleMathJax' );. Note that for a simple site adding $wgSmjScale = 1.1; might be all you need to make it Just Work™.

Version Setting name Default value Description
0.7.0+ $wgSmjUseCdn true Using CDN or Local resource
0.7.0+ $wgSmjUseChem true enable <chem> tags
( defaults to use chem tags )
0.8.0+ $wgSmjEnableMenu true Make MathJax context menu available
This setting is missed since 0.8.0; it would be a mistake
0.8.0+ $wgSmjExtraInlineMath [] can add some additional inlineMath symbols pairs
0.8.1+ $wgSmjScale 1 The default font size for SimpleMathJax
0.7.4 $wgSmjShowMathMenu false (removed)
(replaced by $wgSmjEnableMenu)
0.6.1 $wgSmjSize 110 (removed)
(replaced by $wgSmjScale)
0.6.1 $wgSmjInlineMath [] (removed)
(replaced by $wgSmjExtraInlineMath)
0.6.1 $wgSmjDisableChem false (removed)
(replaced by $wgSmjUseChem)
0.6.1 $wgSmjScripts ['//cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-AMS-MML_HTMLorMML',
'//cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/extensions/TeX/mhchem.js']
(removed)
(replaced by $wgSmjUseCDN)
can use local or another remote scripts
( defaults to use cloudflare CDN )
0.6 $wgSimpleMathJaxSize 125 (removed)
(replaced by $wgSmjSize)
0.6 $wgSimpleMathJaxUseCDN true (removed)
(replaced by $wgSmjScripts)
0.6 $wgSimpleMathInlineMath [] (removed)
(replaced by $wgSmjInlineMath)

If you want to change font size, set $wgSmjScale like below.

wfLoadExtension( 'SimpleMathJax' );
$wgSmjScale = 1.5;

If you want to enable some additional inlineMath symbol pairs, set $wgSmjExtraInlineMath like below.

wfLoadExtension( 'SimpleMathJax' );
$wgSmjExtraInlineMath = [ [ "$", "$" ], [ "\\(", "\\)" ] ];

If you want to use local module, set $wgSmjUseCdn like below.

wfLoadExtension( 'SimpleMathJax' );
$wgSmjUseCdn = false;

SimpleMathJax and Live Preview (versions < 0.8.0)

Prior to version 0.8.0, the following had to be added to MediaWiki:Common.js in order to have the Live Preview in the editor show rendered math output instead of raw LaTeX source code:

function waitForMathJax($content) {
  if (typeof MathJax === 'undefined') {
    setTimeout(function () { waitForMathJax($content); }, 1000);
  } else {
    MathJax.Hub.Queue(["Typeset", MathJax.Hub, $content[0]]).execute();
  }
}

mw.hook('wikipage.content').add(waitForMathJax);

Samples

Comparison
More examples

See also

Category:TeX Category:Math display extensions
  1. SimpleMathJax 0.8.0+ uses manifest_version 2. Manual:Extension.json/Schema
Category:All extensions Category:Extensions in GitHub version control Category:Extensions included in Canasta Category:Extensions included in MyWikis Category:Extensions with manual MediaWiki version Category:Extensions without a compatibility policy Category:Extensions without an image Category:MIT licensed extensions Category:Math display extensions Category:ParserFirstCallInit extensions Category:Stable extensions Category:Tag extensions Category:TeX