这篇文章演示如何在博客里写数学公式。无论是写算法时间复杂度、概率分布、机器学习的损失函数,还是单纯解释一个工程里碰到的数学问题,有了 KaTeX 都能用真正的数学排版表达,而不是拼字符。
1. 写法基础
两种语法,选其一即可:
- 行内公式:用一对
$包起来,例如$O(n \log n)$渲染成 ,和正文同行。 - 块级公式:用一对
$$包起来,独占一行居中显示。
例如把"二次方程求根公式"写成块级:
渲染结果就是上面这种"分数有横线、根号能包住整个表达式、上下标对齐"的标准排版。
2. 算法时间复杂度
这是博客里最常用的场景。把所有用粗体或括号凑合的复杂度,直接换成真公式:
- 二分查找:
- 归并排序:,空间
- Dijkstra(优先队列):
- Floyd-Warshall:
- 动态规划求 LCS:时间 ,空间可优化到
- KMP 模式匹配:预处理 ,匹配 ,总体
主定理(Master Theorem)的递推式分析:
其中 是子问题数, 是规模缩减比, 是合并代价。
3. 概率与统计
布隆过滤器的误报率公式,以 个元素、 位的位数组、 个哈希函数:
给定 和 ,最优的 为:
贝叶斯定理(垃圾邮件分类、风控的基石):
正态分布概率密度函数:
4. 线性代数 / 矩阵
矩阵乘法、特征值分解、PCA 都离不开矩阵记法。
方程组用 cases:
多步推导用 aligned 环境对齐等号:
5. 机器学习与信息论
逻辑回归的 sigmoid 函数:
交叉熵损失(分类任务):
信息熵(香农熵):
KL 散度衡量两个分布的差异:
6. 求和、积分、极限
等差数列求和:
等比数列求和:
欧拉公式:
正态分布积分(高斯积分):
导数定义:
7. 希腊字母与常用符号速查
希腊字母:
大写:
集合与逻辑:
比较与关系:
箭头:
8. 速查表
| 需求 | LaTeX 语法 | 渲染效果 |
|---|---|---|
| 分数 | \frac{a}{b} |
|
| 平方根 | \sqrt{x} |
|
| n 次根 | \sqrt[3]{x} |
|
| 上标 | x^2 或 x^{n+1} |
|
| 下标 | a_i 或 a_{i,j} |
|
| 求和 | \sum_{i=1}^{n} |
|
| 积分 | \int_a^b f(x) dx |
|
| 极限 | \lim_{x \to 0} |
|
| 无穷 | \infty |
|
| 点乘 | a \cdot b |
|
| 叉乘 | a \times b |
|
| 约等于 | \approx |
|
| 不等号 | \ne, \le, \ge |
|
| 属于 | x \in S |
|
| 组合数 | \binom{n}{k} |
|
| 大括号方程组 | \begin{cases} ... \end{cases} |
用块级 |
| 矩阵 | \begin{bmatrix} ... \end{bmatrix} |
用块级 |
9. 注意事项
- 转义美元符号:正文里要写真的美元价格、shell 变量,在
$前加反斜杠即可。比如写\$5.99显示为 $5.99(不会被当作公式),写\$PATH显示为 $PATH。 - 代码块里的
$不受影响:<pre>和<code>标签内的所有$都被插件跳过,所以 shell 脚本、价格表都不会被误渲染。 - 行内公式开闭
$紧贴内容:写$x + 1$不要写$ x + 1 $(前后带空格会被认为是普通文本)。 - 反斜杠命令:KaTeX 支持 数百个 LaTeX 命令,但不是 100% 全集。冷门命令记得对照文档。
- 性能:仅在含
$的文章页加载 KaTeX 库(~280KB,jsdelivr CDN),首页/列表页不受影响。
10. 总结
从今天起,博客里所有的数学表达式都用真正的排版,而不是 ASCII 凑合。算法复杂度、概率公式、矩阵、积分,统统直接写 LaTeX。如果之前的旧文章里有公式想升级,把对应字符替换成 $...$ 包起来即可,无需迁移任何插件配置。
—— 别看了 · 2026