Third-party Extensions

MathJax can load extensions (and configurations) from arbitrary locations. This allows authors and developers to easily integrate custom code.

Custom extension path configuration

Usually, third-party extensions have to be specified with their full paths (and matching loadComplete calls); this limits portability. To simplify this process, the MathJax configuration can include (possibly multiple) third-party locations for easier reference.

To specify the URL, set MathJax.Ajax.config.path["Extra"] in your configuration file, for example,

<script type="text/x-mathjax-config">
  MathJax.Ajax.config.path["Extra"] = "";

or equivalently,

<script type="text/javascript">
  window.MathJax = {
    AuthorInit: function () {
          MathJax.Ajax.config.path["Extra"] = "";

Configuring this path will allow you to load extensions using the [Extra] prefix. To continue the example, the following configuration would then load

  extensions: ["[Extra]/spiffy.js"]

Note that the extension’s loadComplete call needs to match this path, i.e., spiffy.js should end with


MathJax Third-Party extension repository

We collect a list of third-party extensions on Github at This repository allows developers to publicize their custom extensions easily.


The mirrored copy on the MathJax CDN at has been retired alongside the MathJax CDN.


You can disable the [Contrib] path by loading MathJax with noContrib in the query string, e.g., MathJax.js?config=...&noContrib