配置宏

这个 configmacros 扩展提供了 macrosenvironments 的配置选项 tex 您的MathJax配置的挡路。这允许您使用javascript预定义页面的自定义宏结束环境。例如,

window.MathJax = {
  tex: {
    macros: {
      RR: "{\\bf R}",
      bold: ["{\\bf #1}", 1]
    },
    environments: {
      braced: ["\\left\\{", "\\right\\}"]
    }
  }
};

定义宏 \RR 这会产生一个粗体的“R”,而 \bold{{math}} 排版 math 使用粗体(请参见 定义tex宏 了解更多信息)。它还创建了 braced 把环境放在 \left\{{\right\}} 围绕着里面的东西。

除了 input/tex-base . 装入 configmacros 显式扩展(当使用 input/tex-base 例如),添加 '[tex]/configmacros'load 数组 loader 块的mathjax配置,并添加 'configmacros'packages 数组 tex 块。

window.MathJax = {
  loader: {load: ['[tex]/configmacros']},
  tex: {packages: {'[+]': ['configmacros']}}
};

由于 configmacros 扩展包含在包含TeX输入JAX的组合组件中,它可能已经在包列表中。在这种情况下,如果您要禁用它,可以将其删除:

window.MathJax = {
  tex: {packages: {'[-]': ['configmacros']}}
};

配置宏选项

这个 configmacros 扩展添加了一个 macros 选项添加到 tex 允许您预定义宏的挡路,以及 environments 允许您预定义自己的环境的选项。

macros: {}

这将列出在tex输入处理器开始之前要定义的宏。这些是 name: value 对,其中 name 给出要定义的tex宏的名称,以及 value 给出宏的替换文本。这个 value 可以是简单的替换字符串,也可以是表单的数组 [value, n] 在哪里 value 是替换文本和 n 是宏的参数数。数组可以有第三个条目:或者是一个字符串,该字符串是在使用宏时为可选(带括号)参数提供的默认值,或者是一个由用于分隔各个参数的模板字符串组成的数组。第一个模板必须在第一个参数之前,第二个模板必须在第二个参数之前,依此类推,直到最后一个模板必须在宏的最后一个参数之后。请参阅下面的示例。

注意,自从 value 是javascript字符串,替换文本中的反斜杠必须加倍,以防止它们充当javascript转义字符。

例如,

macros: {
  RR: '{\\bf R}',                    // a simple string replacement
  bold: ['\\boldsymbol{#1}',1] ,     // this macro has one parameter
  ddx: ['\\frac{d#2}{d#1}', 2, 'x'], // this macro has an optional parameter that defaults to 'x'
  abc: ['(#1)', 1, [null, '\\cba']]  // equivalent to \def\abc#1\cba{(#1)}
}

会要求tex处理器定义四个新宏: \RR ,这会产生一个粗体字“r”,并且 \bold{{...}} ,它接受一个参数并以粗体字体设置, \ddx ,它有一个可选(括号中的)参数,默认为 x ,这样 \ddx{{y}} 生产 \frac{{dy}}{{dx}} 虽然 \ddx[t]{{y}} 生产 \frac{{dy}}{{dt}}\abc 相当于 \def\abc#1\cba{{(#1)}} .

environments: {}

它列出了在TeX输入处理器开始之前要定义的环境。这些是 name: value 对,其中 name 给出要定义的环境的名称,并 value 提供一个数组,该数组定义要在环境内容之前和之后进行的材质。该数组的形式为 [before, after, n, opt] 哪里 before 是取代 \begin{{name}}after 是一种材料,它取代了 \end{{name}}n 参数后面的参数个数。 \begin{{name}} ,以及 opt 是后面的可选参数使用的默认值 \begin{{name}} 放在括号里。参数可以插入到 before 字符串使用 #1#2 等,其中 #1 可选参数(如果有)。

请注意,由于 beforeafter 值是javascript字符串,则替换文本中的反斜杠必须加倍,以防止它们充当javascript转义字符。

例如,

environments: {
  braced: ['\\left\\{', '\\right\\}'],
  ABC: ['(#1)(#2)(', ')', 2, 'X']
}

会定义两种环境, bracedABC ,在哪里

\begin{braced} \frac{x}{y} \end{braced}

会产生这个分数 x /`y‘在延伸到分数高度的大括号中,而

\begin{ABC}{Z} xyz \end{ABC}

会产生 (X)(Z)(xyz) ,以及

\begin{ABC}[Y]{Z} xyz \end{ABC}

会产生 (Y)(Z)(xyz)