tex输入处理器选项
下面的选项控制 TeX input processor 当你包括 'input/tex'
, 'input/tex-full'
或 'input/tex-base'
在 load
数组 loader
块,或者加载包含tex输入jax的组合组件。它们与默认值一起列出。要设置这些选项中的任何一个,请包括 tex
在你的章节 MathJax
全局对象。
配置块
MathJax = {
tex: {
packages: ['base'], // extensions to use
inlineMath: [ // start/end delimiter pairs for in-line math
['\\(', '\\)']
],
displayMath: [ // start/end delimiter pairs for display math
['$$', '$$'],
['\\[', '\\]']
],
processEscapes: true, // use \$ to produce a literal dollar sign
processEnvironments: true, // process \begin{xxx}...\end{xxx} outside math mode
processRefs: true, // process \ref{...} outside of math mode
digits: /^(?:[0-9]+(?:\{,\}[0-9]{3})*(?:\.[0-9]*)?|\.[0-9]+)/,
// pattern for recognizing numbers
tags: 'none', // or 'ams' or 'all'
tagSide: 'right', // side for \tag macros
tagIndent: '0.8em', // amount to indent tags
useLabelIds: true, // use label name rather than tag for ids
maxMacros: 1000, // maximum number of macro substitutions per expression
maxBuffer: 5 * 1024, // maximum size for the internal TeX string (5K)
baseURL: // URL for use with links to tags (when there is a <base> tag in effect)
(document.getElementsByTagName('base').length === 0) ?
'' : String(document.location).replace(/#.*$/, '')),
formatError: // function called when TeX syntax errors occur
(jax, err) => jax.formatError(err)
}
};
请注意,有些扩展提供了其他选项。见 tex扩展选项 有关详细信息,请参阅下面的部分。
注解
的默认设置 processEscapes
已从 false
在版本2中, true
在版本3中。
注解
在3.2版之前, multlineWidth
选择权过去是主要的 tex
挡路,但现在它在 ams
中国银行业的子挡路 tex
挡路。版本3.2包含将配置从旧位置移动到新位置的代码,但是在将来的版本中将删除该向后兼容代码。
选项说明
- packages: ['base']
这个数组列出了应该由tex输入处理器初始化的包的名称。这个 input/tex 和 input/tex-full 组件会自动将它们加载的包添加到此列表中。如果显式加载addition tex扩展,则应将它们添加到此列表中。例如:
MathJax = { loader: {load: ['[tex]/enclose']}, tex: { packages: {'[+]': ['enclose']} } };
这将加载 随函附上 扩展,并通过将其包括在包列表中来激活它。
您可以使用以下命令从默认列表中删除软件包
'[-]'
而不是[+]
,如下例所示:MathJax = { tex: { packages: {'[-]': ['noundefined']} } };
这将禁用 名词定义的 扩展名,这样未知宏名称将导致错误消息,而不是以红色显示。
如果您既需要删除一些默认软件包,又需要添加新软件包,则可以通过将这两个包都包括在大括号中来实现:
MathJax = { loader: {load: ['[tex]/enclose']}, tex: { packages: {'[-]': ['noundefined', 'autoload'], '[+]': ['enclose']} } };
- inlineMath: [['\\\(','\\\)']]
这是要用作行内数学分隔符的字符串对数组。每对中的第一个是初始分隔符,第二个是终端分隔符。你想要多少对就有多少对。例如,
inlineMath: [ ['$','$'], ['\\(','\\)'] ]
会让mathjax去寻找
$...$
和\(...\)
作为内联数学的分隔符。(请注意,默认情况下不启用单美元符号,因为它们在普通文本中使用得太频繁,因此如果要将它们用作数学分隔符,必须显式指定它们。)注意,分隔符不能看起来像html标记(即不能包含小于号),因为浏览器在mathjax有机会运行之前会将它们转换为标记。数学分隔符只能包含文本,不能包含标记。
- displayMath: [ ['$$','$$'], ['\\\[','\\\]'] ]
这是一个字符串对数组,将用作显示公式的分隔符。每对中的第一个是初始分隔符,第二个是终端分隔符。你想要多少对就有多少对。
注意,分隔符不能看起来像html标记(即不能包含小于号),因为浏览器在mathjax有机会运行之前会将它们转换为标记。数学分隔符只能包含文本,不能包含标记。
- processEscapes: false
当设置为时
true
,您可以使用\$
表示文字美元符号,而不是将其用作数学分隔符,并且\\
表示文字反斜杠(以便您可以使用\\\$
要获取文字,请执行以下操作\$
或\\$...$
以在行内数学之前获得反斜杠jsut)。什么时候false
,\$
将不会更改,并且其美元符号可被视为数学分隔符的一部分。通常将其设置为true
如果启用$ ... $
行内分隔符,以便您可以键入\$
MathJax会在呈现的文档中将其转换为常规的美元符号。
- processRefs: true
当设置为
true
,mathjax将处理\ref{{...}}
数学模式之外。
- processEnvironments: true
什么时候?
true
, tex2jax 不仅查找内联和显示数学分隔符,还查找 Latex 环境 (\begin{{something}}...\end{{something}}
)并将它们标记为由mathjax处理。什么时候?false
, Latex 环境将不会在数学模式之外进行处理。
- digits: /^(?:[0-9]+(?:\{,\}[0-9]{3})*(?:\.[0-9]*)?|\.[0-9]+)/
这将提供一个正则表达式,用于在分析tex表达式时标识数字。默认情况下,小数点是
.
你可以使用{{,}}
在那之前的每三位数之间。如果你想用{{,}}
作为十进制指示器,使用MathJax = { tex: { digits: /^(?:[0-9]+(?:\{,\}[0-9]*)?|\{,\}[0-9]+)/ } };
- tags: 'none'
这控制方程是否编号以及如何编号。默认设置为
'none'
与未执行自动编号的mathjax早期版本兼容(因此页面不会更改其外观)。你可以把这个改成'ams'
对于编号为 AMSmath 包裹可以,或者'all'
为每个显示的方程式获取方程式编号。
- tagSide: 'right'
它指定了
\tag{{}}
宏将放置标记,并在其上显示自动公式号。设置为'left'
把标签放在左手边。
- tagIndent: "0.8em"
这是由
\tag{{}}
宏或通过自动方程式编号。
- useLabelIds: true
这控制标记的元素id是否使用
\label
名称或方程式编号。什么时候?true
,使用标签,当false
,使用公式号。
- maxMacros: 10000
因为形式的定义
\def\x{{\x}} \x
会导致mathjax无限循环,maxMacros
常量将限制mathjax处理的任何表达式中允许的宏替换数。
- maxBuffer: 5 * 1024
因为形式的定义
\def\x{{\x aaa}} \x
会无限循环,同时在mathjax的方程式缓冲区中堆积大量的amaxBuffer
常量用于限制mathjax正在处理的字符串的大小。它被设置为5KB,这对于任何合理的方程都应该足够了。
- baseURL: (document.getElementsByTagName('base').length === 0) ?
- '' : String(document.location).replace(/#.*$/, ''))
这是创建指向标记公式(通过
\ref{{}}
或\eqref{{}}
)当有一个<base>
文档中会影响这些链接的元素。如果mathjax没有生成正确的链接,可以手动设置该值。
- formatError: (jax, err) => jax.formatError(err)
这是当Tex input Jax报告它正在处理的TeX中的语法或其他错误时调用的函数。默认情况下,生成一个
<merror>
MathML元素,其中包含指示发生的错误的消息。您可以重写该函数来执行其他任务,如记录消息、用替代消息替换消息或抛出错误,以便MathJax在该点停止(您可以使用Promises或try/carch
挡路)。
其余选项在 所有输入处理器通用的选项 部分。
开发人员选项
除了上面列出的选项外,面向开发人员的低级选项还包括:
- FindTeX: null
这个
FindTeX
将重写默认实例的对象实例。这允许您创建FindTeX
并将其传递给tex输入jax。一null
值表示使用默认值FindTeX
类并创建新的实例。
tex扩展选项
有几个tex扩展在 tex
mathjax配置的块。下面将对其进行描述。请注意 input/tex 组件,以及加载tex input jax的组合组件,自动包含许多这些扩展,因此默认情况下,这些选项将可用。
例如, 配置宏 包添加了 macros
阻塞到 tex
允许您预先定义用于纹理表达式的宏的配置块:
MathJax = {
tex: {
macros: {
R: '\\mathbf{R}'
}
}
}
下面的链接中描述了各种TeX软件包(有选项)的选项:
从TeX表达式中设置选项
有时,能够从TeX表达式中更改TeX或TeX扩展选项的值是很方便的。例如,您可能希望更改单个表达式的标记侧。这个 设置选项 Extension使您可以做到这一点。它定义了一个 \setOptions
允许您更改TeX解析器的选项值或给定TeX包的选项值的宏。
由于此功能可能会在允许社区成员输入TeX表示法的页面上产生潜在的不良后果,因此默认情况下不会加载此扩展模块,并且不能由加载此扩展模块 require{{}} 。您必须加载它并将其显式添加到TeX包列表中,才能设置选项。该扩展具有配置参数,允许您控制可以从TeX表达式中修改哪些包和选项,如果您在社区设置中使用此宏,您可能希望调整这些参数。