MathJax 与 HTML

MathJax 是一个 JavaScript 库,用于在浏览器中显示交互式的 LaTeX、AsciiMath 和 MathML 表达式。Asciidoctor HTML 转换器集成了 MathJax,为 AsciiDoc 文档中使用的 AsciiMathTeX 和 LaTeX 符号提供 STEM 处理。此集成在转换为 HTML 时,为 STEM 内容提供了简单、开箱即用的支持。

工作原理

如果您使用 HTML 转换器将文档转换为 HTML,并且在文档上设置了 stem 文档属性,HTML 将会自动配置为从 CDN 加载 MathJax 到页面。您无需安装任何东西。具体来说,它会加载包含 TeX 和 AsciiMath 支持的 MathJax 捆绑包,如下所示:

<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.9/MathJax.js?config=TeX-MML-AM_HTMLorMML"></script>

页面加载后,MathJax 会扫描特殊分隔符内的表达式,并将它们转换为可显示格式。在此过程中,您可能会注意到表达式以源代码形式短暂闪烁。

这是一个用 AsciiMath 编写并由 MathJax 渲染的 STEM 表达式的示例。

\$e = sum_(n=0)^oo 1 / n!\$

如果您右键单击渲染后的表达式,您会发现它是交互式的。其中一个选项甚至允许您查看原始的 AsciiMath 输入。

自定义分隔符

HTML 转换器放置在表达式周围以告知 MathJax 何种内容需要处理的分隔符,与 MathJax 默认查找的分隔符不同。选择这些自定义分隔符是为了避免与 AsciiDoc 语言中的其他语法发生冲突。

转换器配置 MathJax 以查找其发出的自定义分隔符。如果您查看 HTML 源代码,您会看到一个 text/x-mathjax-config 节,其中定义了这些以及其他一些设置。

替代方案

MathJax 集成目前仅为 HTML 输出设计。在转换为其他后端格式时,需要额外的库。一个不错的替代方案是 Asciidoctor Mathematical