mathml输入处理器选项

下面的选项控制 MathML input processor 它是在包含以下内容时运行的 'input/mml'load 属性的数组 loader 如果您加载了包含MathML input JAX的组合组件,则可以使用MathML input JAX的挡路。它们以其默认值列出。若要设置这些选项中的任何一个,请包括 mml 部分在您的 MathJax 全局对象。


配置块

MathJax = {
  mml: {
    parseAs: 'html',                     // or 'xml'
    forceReparse: false,                 // true to serialize and re-parse all MathML
    parseError: function (node) {        // function to process parsing errors
      this.error(this.adaptor.textContent(node).replace(/\n.*/g, ''));
    },
    verify: {                            // parameters controling verification of MathML
      checkArity: true,                  //   check if number of children is correct
      checkAttributes: false,            //   check if attribute names are valid
      fullErrors: false,                 //   display full error messages or just error node
      fixMmultiscripts: true,            //   fix unbalanced mmultiscripts
      fixMtables: true                   //   fix incorrect nesting in mtables
    }
  }
};

选项说明

parseAs: 'html'

指定应如何解析MathML字符串:XML或HTML格式。当设置为 'xml' ,使用浏览器的xml解析器,这比默认的html解析器对格式(例如,匹配结束标记)更严格。在节点应用程序中(其中 liteDOM 它们都使用同一个解析器,这不是很严格。

forceReparse: false

指定mathjax是否将序列化和重新解析文档中找到的mathml。如果您想从html文档中对mathml进行xml解析,这将非常有用。

parseError: (node) => {...}

指定在mathml中出现解析错误时要调用的函数(通常只在xml解析时发生)。这个 node 是包含错误文本的dom节点。你的函数可以用它认为合适的任何方式处理它。默认情况下,使用错误文本调用mathml输入处理器的错误函数(它将创建 merror 包含错误消息的节点)。请注意,此函数与 this 是mathml输入处理器对象。

verify: {...}

这个对象控制在MathJax正在处理的MathML上要执行的验证/修改。可以包含在 verify 对象如下:

checkArity: true

这将指定是否验证子级的数量。默认值是检查子项的正确数目。如果编号错误,则节点将替换为 <merror> 节点,该节点包含指示错误子节点数的消息或节点本身的名称,具体取决于的设置 fullErrors 下面。

checkAttributes: false

这将指定是否检查所有属性的名称,以查看它们在给定节点上是否有效(即,它们具有默认值,或者是标准属性之一,例如 styleclassidhref ,或者 data- 属性。如果某个属性出错,则该节点要么放置在 <merror> 节点(以便在输出中标记为包含错误),或由 <merror> 包含指示错误属性的完整消息,具体取决于的设置 fullErrors 下面。

当前只检查名称,不检查值。在将来的版本中可能会添加值验证。

fullErrors: false

此选项指定在节点生成错误时是否显示完整的错误消息,还是仅显示节点名称(或在属性错误的情况下显示节点本身)。

fixMmultiscripts: true

此选项指定是否额外 <none/> 条目添加到 <mmultiscripts> 元素来平衡super-ans下标,或者是否生成错误。

fixMtables: true

它指定是否缺少 <mtable><mtr><mtd> 元素是否放置在单元格周围。什么时候? true ,如果树中缺少这些元素,MathJax将尝试更正表结构。例如,一个 <mtr> 不在 <mtable> 会有一个 <mtable> 自动放置在它周围 <mtable> 包含一个 <mi> 作为直接子节点将具有 <mtr><mtd> 在周围插入 <mi> .


开发人员选项

除了上面列出的选项外,面向开发人员的低级选项还包括:

FindMathML: null

这个 FindMathML 将重写默认实例的对象实例。这允许您创建 FindMathML 并将其传递给mathml输入jax。一 null 值表示使用默认值 FindMathML 类并创建新的实例。

MathMLCompile: null

这个 MathMLCompile 将重写默认实例的对象实例。这允许您创建 MathMLCompile 并将其传递给mathml输入jax。一 null 值表示使用默认值 MathMLCompile 类并创建新的实例。