# LaTeX 转 SVG

使用 KaTeX 0.19.1（广泛应用于网络的数学排版引擎），将 LaTeX 公式渲染为独立的 SVG 文件。可选择显示模式或行内模式，并设置以像素为单位的字号。文件尺寸根据 KaTeX 的字体度量确定，并嵌入 KaTeX 样式表以及公式所用的字体，因此在任何网页浏览器中显示的效果都一致。适用于在浏览器中构建的网页、文档、博客和幻灯片。

## 常见问题

### 不使用浏览器如何生成 SVG？

KaTeX 在服务器上将公式排版为 HTML，然后工具将该 HTML 与 KaTeX 样式表及公式所需的 woff2 字体文件一起封装进 SVG 的 foreignObject 中，并以数据 URL 的形式嵌入。宽度和高度根据 KaTeX 的字体度量以及这些字体中实际字形的宽度计算，因此画布能够贴合公式并留出少许边距。

### SVG 可以在哪里正确显示？

无论是将它用作 img 元素、CSS 背景、内联 SVG 标记，还是直接打开文件，它都能在 Chrome、Edge、Firefox 和 Safari 中显示；基于浏览器引擎构建的应用也可以显示。Inkscape、Illustrator、Figma 的 SVG 导入器、librsvg 和 resvg 等矢量编辑器和转换器无法渲染 foreignObject 中的 HTML，因此公式在那里会显示为空白。

### 为什么不将公式转换为矢量路径？

此工具所用的技术栈中，没有采用宽松许可的库能将 KaTeX 的数学排版转换为字形轮廓，单独使用其他排版引擎也无法匹配 KaTeX 的输出。嵌入 KaTeX 自带的 HTML，可以保持精确的间距和字体。如果矢量编辑器需要轮廓，请在浏览器中打开 SVG 并打印为 PDF，这样公式会保留为编辑器可导入的矢量图形。

### 显示模式和行内模式有什么区别？

显示模式会将公式排版为独立方程：大型运算符的上下方会显示其上下限，分数保持完整大小，并允许使用 \tag 编号。行内模式采用适合句中公式的紧凑文本样式，分数较小，求和符号和积分符号的上下限会显示在旁边。

### 字号控制什么？

它设置数学字体的字号，单位为像素，取值范围为 8 到 200，须为整数，默认值为 24。SVG 的宽度和高度会随字号缩放，因此以 48 像素渲染的公式是以 24 像素渲染的两倍大。由于结果是矢量图，你仍可使用 CSS 对其缩放。

### 支持哪些 LaTeX 命令？

支持 KaTeX 0.19.1 支持的所有内容：分数、根式、求和与积分、矩阵，以及 aligned、cases、pmatrix 和 array 等环境，还有重音符号、箭头、\mathbb、\mathcal、\mathfrak、\text、\color 和 \tag。你可以在公式中使用 \def 或 \newcommand 定义自己的宏。不支持完整文档、\usepackage、TikZ 和 mhchem 的 \ce 命令。

### 公式出错时会怎样？

不会生成文件，工具会告知错误原因及出错字符的位置（从 1 开始计数）。工具会指出未知命令、不匹配的花括号、重复的上标，以及缺少参数的命令，方便你直接跳到相应位置并修复。

### 有哪些限制？

公式最多可包含 10,000 个字符，宏最多可展开 1,000 次，\rule、\kern 和 \hspace 等命令的尺寸上限为 100em。\href、\url 和 \includegraphics 等会加载或链接外部内容的命令已禁用，并会显示为红色的不支持文本。

### SVG 使用什么颜色和背景？

背景是透明的。将 SVG 标记粘贴到 HTML 页面时，公式会采用周围元素的文本颜色；作为图像文件时，公式则以黑色绘制。可在公式中使用 \color 或 \textcolor 设置在任何地方都保持不变的颜色。

### 文件有多大？是否方便访问？

每个文件都包含约 24 KB 的 KaTeX 样式表，以及公式所用的所有字体字形文件（以 base64 woff2 格式嵌入），因此典型公式的文件大小为 75 到 150 KB。KaTeX 字体中缺少的字符（例如 \text 中的中文或日文）会使用查看器自身的字体。SVG 设有 img 角色，并将 LaTeX 源码用作标题和屏幕阅读器的 aria-label。

在这里投放广告？

[给我们发邮件](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)
