The TeX input processor

The options below control the operation of the TeX input processor that is run when you include "input/TeX" in the jax array of your configuration or load a combined configuration file that includes the TeX input jax. They are listed with their default values. To set any of these options, include a TeX section in your MathJax.Hub.Config() call. For example

  TeX: {
    Macros: {
      RR: '{\\bf R}',
      bold: ['{\\bf #1}', 1]

would set the Macros configuration option to cause two new macros to be defined within the TeX input processor.

TagSide: "right"

This specifies the side on which \tag{} macros will place the tags. Set it to "left" to place the tags on the left-hand side.

TagIndent: ".8em"

This is the amount of indentation (from the right or left) for the tags produced by the \tag{} macro.

MultLineWidth: "85%"

The width to use for the multline environment that is part of the AMSmath extension. This width gives room for tags at either side of the equation, but if you are displaying mathematics in a small area or a thin column of text, you might need to change the value to leave sufficient margin for tags.

equationNumbers: {}

This object controls the automatic equation numbering and the equation referencing. It contains the following values:

autoNumber: "none"

This controls whether equations are numbered and how. By default it is set to "none" to be compatible with earlier versions of MathJax where auto-numbering was not performed (so pages will not change their appearance). You can change this to "AMS" for equations numbered as the AMSmath package would do, or "all" to get an equation number for every displayed equation.

formatNumber: function (n) {return n}

A function that tells MathJax what tag to use for equation number n. This could be used to have the equations labeled by a sequence of symbols rather than numbers, or to use section and subsection numbers instead.

formatTag: function (n) {return '('+n+')'}

A function that tells MathJax how to format an equation number for displaying as a tag for an equation. This is what appears in the margin of a tagged or numbered equation.

formatID: function {return 'mjx-eqn-'+String(n).replace(/s/g,"_")}

A function that rells MathJax what ID to use as an anchor for the equation (so that it can be used in URL references).

formatURL: function (id,base) {return base+'#'+encodeURIComponent(id)}

A function that takes an equation ID and base URL and returns the URL to link to it.

useLabelIds: true

This controls whether element ID’s use the \label name or the equation number. When true, use the label, when false, use the equation number.

See the MathJax examples page for some examples of equation numbering.

Macros: {}

This lists macros to define before the TeX input processor begins. These are name:value pairs where the name gives the name of the TeX macro to be defined, and value gives the replacement text for the macro. The value can be an array of the form [value,n], where value is the replacement text and n is the number of parameters for the macro. Note that since the value is a javascript string, backslashes in the replacement text must be doubled to prevent them from acting as javascript escape characters.

For example,

Macros: {
  RR: '{\\bf R}',
  bold: ['{\\bf #1}', 1]

would ask the TeX processor to define two new macros: \RR, which produces a bold-face “R”, and \bold{...}, which takes one parameter and sets it in the bold-face font.


Because a definition of the form \def\x{\x} \x would cause MathJax to loop infinitely, the MAXMACROS constant will limit the number of macro substitutions allowed in any expression processed by MathJax.


Because a definition of the form \def\x{\x aaa} \x would loop infinitely, and at the same time stack up lots of a’s in MathJax’s equation buffer, the MAXBUFFER constant is used to limit the size of the string being processed by MathJax. It is set to 5KB, which should be sufficient for any reasonable equation.