# 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 的地方使用。

在这里投放广告？

[给我们发邮件](mailto:hi@dennn.is?subject=%E5%9C%A8%20OneClick%20Pro%20%E4%B8%8A%E6%8A%95%E6%94%BE%E5%B9%BF%E5%91%8A)

[广告 适用于 WordPress 的智能体就绪型插件套件。](https://sleekwp.com/?ref=oneclickpro)
