Output Processor Options
There are a number of configuration options that are common to all the output processors. These are described following the links below, which give the options that are specific to the particular output jax.
Options Common to All Output Processors
The following options are common to all the output processors listed
above. They are given here with their default values, using the
chtml
block as an example.
MathJax = {
chtml: {
scale: 1, // global scaling factor for all expressions
minScale: .5, // smallest scaling factor to use
matchFontHeight: true, // true to match ex-height of surrounding font
mtextInheritFont: false, // true to make mtext elements use surrounding font
merrorInheritFont: false, // true to make merror text use surrounding font
mtextFont: '', // font to use for mtext, if not inheriting (empty means use MathJax fonts)
merrorFont: 'serif', // font to use for merror, if not inheriting (empty means use MathJax fonts)
unknownFamily: 'serif', // font to use for character that aren't in MathJax's fonts
mathmlSpacing: false, // true for MathML spacing rules, false for TeX rules
skipAttributes: {}, // RFDa and other attributes NOT to copy to the output
exFactor: .5, // default size of ex in em units
displayAlign: 'center', // default for indentalign when set to 'auto'
displayIndent: '0' // default for indentshift when set to 'auto'
}
};
Option Descriptions
- scale: 1
The scaling factor for math compaired to the surrounding text. The CommonHTML output processor tries to match the ex-size of the mathematics with that of the text where it is placed, but you may want to adjust the results using this scaling factor. The user can also adjust this value using the contextual menu item associated with the typeset mathematics.
- minScale: .5
This gives a minimum scale factor for the scaling used by MathJax to match the equation to the surrounding text. This will prevent MathJax from making the mathematics too small.
- matchFontHeight: true
This setting controls whether MathJax will scale the mathematics so that the ex-height of the math fonts matches the ex-height of the surrounding fonts. This makes the math match the surroundings better, but if the surrounding font doesn’t have its ex-height set properly (and not all fonts do), it can cause the math to not match the surrounding text. While this will make the lower-case letters match the surrounding fonts, the upper case letters may not match (that would require the font height and ex-height to have the same ratio in the surrounding text as in the math fonts, which is unlikely).
Note that, although this option is available on all the output renderers, it has no effect on SVG output, since that is scaled to match the surrounding height automatically.
- mtextInheritFont: false
This setting controls whether
<mtext>
elements will be typeset using the math fonts or the font of the surrounding text. Whenfalse
, the mtextFont will be used, unless it is blank, in which case math fonts will be used, as they are for other token elements; whentrue
, the font will be inherited from the surrounding text, when possible, depending on themathvariant
for the element (some math variants, such asfraktur
can’t be inherited from the surroundings).
- merrorInheritFont: false
This setting controls whether the text for
<merror>
elements will be typeset using the math fonts or the font of the surrounding text. Whenfalse
, the merrorFont will be used; whentrue
, the font will be inherited from the surrounding text, when possible, depending on themathvariant
for the element (some math variants, such asfraktur
can’t be inherited from the surroundings).
- mtextFont: ''
This specifies the font family to use for
<mtext>
elements when mtextInheritFont isfalse
(and is ignored if it istrue
). It can be a comma-separated list of font-family names. If it is empty, then the math fonts are used, as they are with other token elements.
- merrorFont: 'serif'
This specifies the font family to use for
<merror>
elements when merrorInheritFont isfalse
(and is ignored if it istrue
). It can be a comma-separated list of font-family names. If it is empty, then the math fonts are used, as they are with other token elements.
- unknownFamily: 'serif'
This specifies the font family to use for characters that are not found in the MathJax math fonts. For exmaple, if you enter unicode characters directly, these may not be in MathJax’s font, and so they will be taken from the font specified here.
- mathmlSpacing: false
This specifies whether to use TeX spacing or MathML spacing when typesetting the math. When
true
, MathML spacing rules are used; whenfalse
, the TeX rules are used.
- skipAttributes: {}
This object gives a list of non-standard attributes (e.g., RFDa attributes) that will not be transferred from MathML element to their corresponding DOM elements in the typeset output. For example, with
skipAttributes: { data-my-attr: true }
a MathML element like
<mi data-my-attr="some data">x</mi>
will not have thedata-my-attr
attribute on the<mjx-mi>
element created by the CommonHTML output processor to represent the<mi>
element (normally, any non-standard attributes are retained in the output).
- exFactor: .5
This is the size of an ex in comparison to 1 em that is to be used when the ex-size can’t be determined (e.g., when running in a Node application, where the size of DOM elements can’t be determined).
- displayAlign: 'center'
This determines how displayed equations will be aligned (left, center, or right). The default is
'center'
.
- displayIndent: 0
This gives the amount of indentation that should be used for displayed equations. The default is
0
. A value of'1em'
, for example, would introduce an extra 1 em of space from whichever margin the equation is aligned to, or an offset from the center position if the expression is centered. Note that negative values are allowed.
Developer Options
In addition to the options listed above, low-level options intended for developers include the following:
- wrapperFactory: null
The
WrapperFactory
object instance to use for creating wrappers for the internal MathML objects. This allows you to create a subclass ofWrapperFactory
and pass that to the output jax. Anull
value means use the defaultWrapperFactory
class and make a new instance of that.
- font: null
The
FontData
object instance to use for creating wrappers for the internal MathML objects. This allows you to create a subclass ofFontData
and pass that to the output jax. Anull
value means use the defaultFontData
class and make a new instance of that.
- cssStyles: null
The
CssStyles
object instance to use for creating wrappers for the internal MathML objects. This allows you to create a subclass ofCssStyles
and pass that to the output jax. Anull
value means use the defaultCssStyles
class and make a new instance of that.