MathJax 与 HTML
MathJax 是一个 JavaScript 库,用于在浏览器中显示交互式的 LaTeX、AsciiMath 和 MathML 表达式。Asciidoctor HTML 转换器集成了 MathJax,为 AsciiDoc 文档中使用的 AsciiMath 和 TeX 和 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 表达式的示例。
如果您右键单击渲染后的表达式,您会发现它是交互式的。其中一个选项甚至允许您查看原始的 AsciiMath 输入。
自定义分隔符
HTML 转换器放置在表达式周围以告知 MathJax 何种内容需要处理的分隔符,与 MathJax 默认查找的分隔符不同。选择这些自定义分隔符是为了避免与 AsciiDoc 语言中的其他语法发生冲突。
转换器配置 MathJax 以查找其发出的自定义分隔符。如果您查看 HTML 源代码,您会看到一个 text/x-mathjax-config 节,其中定义了这些以及其他一些设置。
替代方案
MathJax 集成目前仅为 HTML 输出设计。在转换为其他后端格式时,需要额外的库。一个不错的替代方案是 Asciidoctor Mathematical。