LaTeX 转 MathML
使用 KaTeX 0.19.1 将 LaTeX 公式转换为 MathML 标记。结果是一个包含呈现型 MathML 的 math 元素,并将原始 LaTeX 保留为注释;可选择显示模式或行内模式,可直接粘贴到 HTML、EPUB 或 XML 文档中。当前的 Chrome、Edge、Firefox 和 Safari 均可原生渲染 MathML,屏幕阅读器也能朗读公式,因此无需任何 JavaScript,公式仍可供无障碍访问。
常见问题
输出是什么样的?
你会得到一个位于 MathML 命名空间、带有 semantics 包装元素的 math 元素。其内部是由 mi、mn、mo、mfrac、msup 和 mtable 等元素构成的呈现型 MathML,后面接着一个 encoding 为 application/x-tex 的 annotation,其中保存原始 LaTeX。显示模式会在 math 元素上添加 display="block"。
可以在哪里使用 MathML?
可直接将其粘贴到 HTML5 页面、EPUB 3 电子书、XHTML 或 JATS、DocBook 等 XML 格式中。许多公式编辑器和办公套件也能导入 MathML,因此它是无法读取 LaTeX 的工具之间实用的交换格式。
浏览器会显示 MathML 吗?
是的。从 109 版本起,Chrome 和 Edge、Firefox 和 Safari 都可原生渲染 MathML,无需脚本或样式表。浏览器使用自己的数学字体绘制,因此外观与 KaTeX 的 HTML 渲染略有不同,但结构和间距规则相同。
显示模式和行内模式有什么区别?
显示模式会为公式添加 display="block",将其设为独立公式,并以完整尺寸显示分数,以及大型运算符上下方的上下限。行内模式会省略该属性,并采用适合正文的紧凑样式显示公式。
会保留原始 LaTeX 吗?
会。KaTeX 会将源代码存储在 semantics 包装元素内的 annotation 元素中。浏览器不会显示它,但复制工具和其他转换器可以用它还原准确的 LaTeX。如果不想在文档中保留源代码,请移除 annotation 元素。
支持哪些 LaTeX 命令?
KaTeX 0.19.1 支持的所有内容都可以使用,包括分数、根式、矩阵、aligned、cases 和 array 等环境、重音符号、箭头、\mathbb 和 \mathcal 等字体命令、\text 和 \tag。公式中使用 \def 或 \newcommand 定义的宏也可以使用。不支持完整文档、\usepackage 和 mhchem 的 \ce 命令。
公式出错时会怎样?
不会返回 MathML。工具会报告问题及其发生位置的字符序号(从 1 开始),例如未知命令、括号不匹配、重复上标或命令缺少参数。
有哪些限制?
公式最长可达 10,000 个字符,宏最多可展开 1,000 次,\rule 和 \kern 等命令的尺寸上限为 100em。\href、\url 和 \includegraphics 等用于链接或加载外部内容的命令已禁用,会作为不支持的文本输出。
MathML 对无障碍访问有帮助吗?
有帮助。VoiceOver、NVDA 和 JAWS 等屏幕阅读器可以朗读 MathML,并让读者逐步浏览公式,这是图片无法做到的。将数学内容保留为 MathML 而不是图片,是让技术内容更易于访问的最简单方法之一。
这与 KaTeX 的常规输出有什么不同?
在网页上,KaTeX 通常会输出经过样式处理的 HTML 供显示,并附带供屏幕阅读器使用的隐藏 MathML。此工具只返回 MathML 部分,内容与 KaTeX 生成的完全一致,不包含外层 span、样式表或字体,因此可在任何支持 MathML 的地方使用。