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"] = "https://my.extra.com/mathjax/extra";
</script>

or equivalently,

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

Configuring this path will allow you to load extensions using the [Extra] prefix. To continue the example, the following configuration would then load http://my.extra.com/mathjax/extra/spiffy.js.

MathJax.Hub.Config({
  extensions: ["[Extra]/spiffy.js"]
});

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

MathJax.Ajax.loadComplete("[Extra]/spiffy.js");

MathJax Third-Party extension repository

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

Note

The mirrored copy on the MathJax CDN at cdn.mathjax.org/mathjax/contrib/ has been retired alongside the MathJax CDN.

Note

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