搜索博客与维基

技术/写作/公式

KaTeX

把 LaTeX 数学公式渲染成 HTML 的引擎,构建时完成,不依赖客户端脚本。

2 分钟阅读别名:katex、数学公式、LaTeX

KaTeX 是一个把 LaTeX 数学语法渲染成 HTML 的引擎。和 MathJax 比起来它支持的语法少一些,但渲染更快、更贴近正文行高。

在这个站里怎么用

行内公式用单个美元符号:

欧拉恒等式 $e^{i\pi} + 1 = 0$ 是数学里最漂亮的一行。

效果:欧拉恒等式 eiπ+1=0e^{i\pi} + 1 = 0 是数学里最漂亮的一行。

独占一行的公式用两个美元符号:

$$
\hat{\beta} = \arg\min_{\beta} \lVert y - X\beta \rVert_2^2
$$
β^=arg⁡min⁡β∥y−Xβ∥22\hat{\beta} = \arg\min_{\beta} \lVert y - X\beta \rVert_2^2

为什么要写反斜杠

LaTeX 里 \hat、\min、\lVert 这些都是命令,必须以反斜杠开头。在 Markdown 里写的时候不用担心转义,因为 $...$ 里面的内容会被公式插件单独处理,不走 Markdown 的转义规则。

两个容易踩的坑

  1. 下划线在公式外会被当成斜体,所以变量名里的下划线要放在 $...$ 里,或者用 \_ 转义。
  2. 花括号是分组符号,x^{10} 是上标十,x^10 只会把上标作用到第一个字符。

构建时渲染 vs 运行时渲染

方案什么时候算浏览器要不要跑脚本复制出来的结果
KaTeX 在构建时构建不要文本
MathJax 在浏览器打开页面时要文本
公式截图手动不要图片

这个站选第一种:公式在构建阶段就变成了带样式的 HTML 加内联字体。好处是页面打开时公式已经在位,不会先看到一段美元符号再突然变成公式。

常见写法速查

目的写法效果
上标x^2x2x^2
下标x_ixix_i
分式\frac{a}{b}ab\frac{a}{b}
求和\sum_{i=1}^n∑i=1n\sum_{i=1}^n
积分\int_0^1∫01\int_0^1
希腊字母\alpha \beta \lambdaαβλ\alpha \beta \lambda
向量范数\lVert x \rVert∥x∥\lVert x \rVert
多行对齐\begin{aligned} ... \end{aligned}见下
Sharpe=E[rp−rf]σpMaxDD=max⁡t(peakt−valuetpeakt)\begin{aligned} \mathrm{Sharpe} &= \frac{\mathbb{E}[r_p - r_f]}{\sigma_p} \\ \mathrm{MaxDD} &= \max_{t} \left( \frac{\mathrm{peak}_t - \mathrm{value}_t}{\mathrm{peak}_t} \right) \end{aligned}