文档选项

下面的选项控制 MathDocument mathjax创建的对象,用于处理网页中的数学。它们与默认值一起列出。要设置这些选项中的任何一个,请包括 options 在你的章节 MathJax 全局对象。


配置块

MathJax = {
  options: {
    skipHtmlTags: [            //  HTML tags that won't be searched for math
        'script', 'noscript', 'style', 'textarea', 'pre',
        'code', 'annotation', 'annotation-xml'
    ],
    includeHtmlTags: {         //  HTML tags that can appear within math
        br: '\n', wbr: '', '#comment': ''
    },
    ignoreHtmlClass: 'tex2jax_ignore',    //  class that marks tags not to search
    processHtmlClass: 'tex2jax_process',  //  class that marks tags that should be searched
    compileError: function (doc, math, err) {doc.compileError(math, err)},
    typesetError: function (doc, math, err) {doc.typesetError(math, err)},
    renderActions: {...}
  }
};

选项说明

skipHtmlTags: ['script', 'noscript', 'style', 'textarea',
'pre', 'code', 'annotation', 'annotation-xml']

这个数组列出了mathjax不应该处理其内容的标记的名称(除了查找下面列出的ignore/process类之外)。您可以添加(或从中删除)此列表,以防止mathjax在特定上下文中处理数学。例如。,

skipHtmlTags: {'[-]': ['code', 'pre'], '[+]': ['li']}

将移除 'code''pre' 添加时从列表中标记 'li' 标记到列表。

includeHtmlTags: {br: '\n', wbr: '', '#comment': ''}

此对象指定数学表达式中可以显示哪些标记,以及在数学表达式中用哪些文本替换它们。默认设置是允许 <br> ,这就成了一条新线, <wbr> 以及HTML注释,这些注释将被完全删除。

ignoreHtmlClass: 'mathjax_ignore'

这是用于标记其内容不应由mathjax处理的元素的类名(除了查找 processHtmlClass 模式如下)。注意,这是一个正则表达式,因此您需要确保引用任何 regexp 特殊字符。这个模式被插入到一个需要你的模式匹配一个完整单词的模式中,所以设置 ignoreHtmlClass: 'class2' 会导致它与元素匹配 class='class1 class2 class3' 但不是 class='myclass2' . 注意,可以通过用垂直线字符分隔来分配多个类 (| )例如,使用 ignoreHtmlClass: 'class1|class2' 任何元素指定一个类 class1class2 将被跳过。这也可以由 ignoreHtmlClass: 'class[12]' ,哪个匹配 class 后面跟着一个 1 或A 2 .

processHtmlClass: 'mathjax_process'

这是用于标记其内容的元素的类名 应该 由mathjax处理。这用于在通过 ignoreHtmlClass 或导致出现在 skipHtmlTags 要处理而不是跳过的列表。注意,这是一个正则表达式,因此您需要确保引用任何 regexp 特殊字符。这个模式被插入到一个需要你的模式匹配一个完整单词的模式中,所以设置 processHtmlClass: 'class2' 会导致它与元素匹配 class='class1 class2 class3' 但不是 class='myclass2' . 注意,可以通过用垂直线字符分隔来分配多个类 (| )例如,使用 processHtmlClass: 'class1|class2' 任何元素指定一个类 class1class2 将处理其内容。这也可以由 processHtmlClass: 'class[12]' ,哪个匹配 class 后面跟着一个 1 或A 2 .

compileError: function (doc, math, err) {doc.compileError(math, err)}

当输入jax运行时(即在文档的 compile() 打电话)论点是 MathDocument 在发生错误时, MathItem 对于它发生的表达式,以及 Error 对象的未捕获错误。默认操作是调用文档的默认值 compileError() 函数,它设置 math.root 到包含错误消息的数学元素(即, <math><merror><mtext>Math input error<mtext></merror></math> )您可以用自己的函数替换它,以捕获输入处理器中的运行时错误。

typesetError: function (doc, math, err) {doc.typesetError(math, err)}

当输出jax运行时(即在文档的 typeset() 打电话)论点是 MathDocument 在发生错误时, MathItem 对于它发生的表达式,以及 Error 对象的未捕获错误。默认操作是调用文档的默认值 typesetError() 函数,它设置 math.typesetRoot 到A <span> 包含文本的元素 Math output error . 您可以用自己的函数替换它,以捕获输出处理器中的运行时错误。

renderActions: {...}

这是一个对象,指定在 MathJax.typeset() (及其潜在的 MathJax.startup.document.render() 调用),以及各种转换函数,例如 MathJax.tex2svg() (及其潜在的 MathJax.startup.document.convert() 打电话)物体的结构是 name: value 以逗号分隔的对,其中 name 为每个操作提供一个标识符,并且 value 是一个数组,由一个数字和零、一个或两个函数组成,后跟一个布尔值(可选)。

数字赋予操作的优先级(执行操作时,先执行较低的数字)。第一个函数提供在文档整体呈现时要执行的操作,第二个函数提供在单个表达式转换或重新呈现时要执行的操作。这些函数既可以作为显式函数给出,也可以作为字符串给出要调用的方法的名称(第一个应该是 MathDocument ,第二个 MathItem )如果其中一个是空字符串,则不执行该操作。如果缺少该函数,则方法名取自 name 关于这次行动。布尔值指示是否应在 convert() 调用(如果为true)或仅在 rerender() 调用(如果为false)。

例如,

MathJax = {
  options: {
    renderActions: {
      compile: [MathItem.STATE.COMPILED],
      metrics: [MathItem.STATE.METRICS, 'getMetrics', '', false]
    }
  }
};

指定两个操作,第一个调用 compile 使用 compile() 方法 MathDocumentMathItem ,第二个调用 metrics 使用 getMetric() 呼吁 MathDocument 当呈现文档时,但在 rerender()convert() 电话或个人 MathItem .

如果第一个函数是显式给定的,那么它应该接受一个参数 MathDocument 它在上面运行。如果第二个函数是显式给定的,那么它应该有两个参数 MathItem 正在处理,并且 MathDocument 它存在的地方。

默认值包括执行数学呈现所需的主调用的操作: findcompilemetricstypesetupdatereset . 这些函数在文档中找到数学,在找到的数学上调用输入jax,获取数学位置的度量信息,调用输出jax将内部格式转换为输出格式,将输出插入到文档中,最后重置内部标志,以便随后的排版操作将正常进行。

您可以通过向 renderActions 对象,或通过重新使用上面的现有名称来重写现有名称。见 mathml支持 一个这样做的例子。优先级号告诉您将在列表中执行操作的位置。

加载扩展可能会导致在列表中插入其他操作。例如, 用户界面/菜单 组件插入一个操作,以便在将菜单事件处理程序插入页面后将其添加到数学中。


开发人员选项

OutputJax: null

这个 OutputJax 用于此的对象实例 MathDocument . 如果您使用的是mathjax组件,则 启动 组件将自动创建此项。如果正在编写直接访问mathjax代码的节点应用程序,则需要自己创建输出jax并通过此选项将其传递给文档。

InputJax: null

这个 InputJax 用于此的对象实例 MathDocument . 如果您使用的是mathjax组件,则 启动 组件将自动创建此项。如果正在编写直接访问mathjax代码的节点应用程序,则需要自己创建输入jax并通过此选项将其传递给文档。

MmlFactory: null

这个 MmlFactory 用于创建内部mathml对象的对象实例。这允许您创建 MmlFactory 把它交给文件。一 null 值表示使用默认值 MmlFactory 类并创建新的实例。

MathList: DefaultMathList

这个 MathList 用于管理列表的对象类 MathItemMathDocument . 这允许您创建 MathList 把它交给文件。

MathItem: DefaultMathItem

这个 MathItem 对象类,用于维护 MathDocument . 这允许您创建 MathItem 把它交给文件。文件 Handler 对象可以定义它自己的子类 MathItem 并将其用作默认值。例如,html处理程序使用 HTMLMathItem 此选项的对象。