KaTeX 是一个把 LaTeX 数学语法渲染成 HTML 的引擎。和 MathJax 比起来它支持的语法少一些,但渲染更快、更贴近正文行高。
在这个站里怎么用
行内公式用单个美元符号:
欧拉恒等式 $e^{i\pi} + 1 = 0$ 是数学里最漂亮的一行。
效果:欧拉恒等式 是数学里最漂亮的一行。
独占一行的公式用两个美元符号:
$$
\hat{\beta} = \arg\min_{\beta} \lVert y - X\beta \rVert_2^2
$$
为什么要写反斜杠
LaTeX 里 \hat、\min、\lVert 这些都是命令,必须以反斜杠开头。在 Markdown 里写的时候不用担心转义,因为 $...$ 里面的内容会被公式插件单独处理,不走 Markdown 的转义规则。
两个容易踩的坑
- 下划线在公式外会被当成斜体,所以变量名里的下划线要放在
$...$里,或者用\_转义。- 花括号是分组符号,
x^{10}是上标十,x^10只会把上标作用到第一个字符。
构建时渲染 vs 运行时渲染
| 方案 | 什么时候算 | 浏览器要不要跑脚本 | 复制出来的结果 |
|---|---|---|---|
| KaTeX 在构建时 | 构建 | 不要 | 文本 |
| MathJax 在浏览器 | 打开页面时 | 要 | 文本 |
| 公式截图 | 手动 | 不要 | 图片 |
这个站选第一种:公式在构建阶段就变成了带样式的 HTML 加内联字体。好处是页面打开时公式已经在位,不会先看到一段美元符号再突然变成公式。
常见写法速查
| 目的 | 写法 | 效果 |
|---|---|---|
| 上标 | x^2 | |
| 下标 | x_i | |
| 分式 | \frac{a}{b} | |
| 求和 | \sum_{i=1}^n | |
| 积分 | \int_0^1 | |
| 希腊字母 | \alpha \beta \lambda | |
| 向量范数 | \lVert x \rVert | |
| 多行对齐 | \begin{aligned} ... \end{aligned} | 见下 |