学公式
LaTeX 数学公式基础
在 Markdown 中,数学公式通过 LaTeX 语法来表示。LaTeX 是一个强大的排版系统,特别适用于包含复杂数学公式的文档。
注意
在vitepress中,默认不支持 LaTeX 数学公式渲染,需要额外配置 查看如何配置
基本语法结构
- 命令:以反斜杠
\开头,如\alpha、\sum - 参数:用花括号
{}包围,如\frac{a}{b} - 下标:使用
_,如x_1 - 上标:使用
^,如x^2 - 分组:用花括号将多个字符组合,如
x_{i+1}
常用 LaTeX 命令
\alpha, \beta, \gamma % 希腊字母
\sum, \prod, \int % 求和、乘积、积分
\frac{分子}{分母} % 分数
\sqrt{表达式} % 平方根
\sqrt[n]{表达式} % n次根行内公式与块级公式
行内公式
行内公式使用单个美元符号 $ 包围,公式会嵌入到文本中,如:文本中的变量 和函数 。
文本中的变量 $x = 5$ 和函数 $f(x) = x^2 + 2x + 1$。显示结果
文本中的变量 和 函数 。
块级公式
块级公式使用双美元符号 $$ 包围,公式会独立成行并居中显示:
E = mc^2
\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}
$$E = mc^2$$
$$\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}$$显示结果
多行公式
使用 align 环境创建多行对齐公式:
\begin
f(x) &= ax^2 + bx + c \
f'(x) &= 2ax + b \
f''(x) &= 2a
\end
$$
\begin{aligned}
f(x) &= ax^2 + bx + c \\
f'(x) &= 2ax + b \\
f''(x) &= 2a
\end{aligned}
$$显示结果
常用数学符号
基本运算符号
- 加减乘除:+, -, \times, \div
- 分数:\frac{a}{b} →
- 根号:\sqrt{x}, \sqrt[n]{x} → ,
- 指数:x^2, e^{i\pi} → ,
比较符号
- 等于:=, \neq, \equiv → , ,
- 大小:<, >, \leq, \geq → , , ,
- 约等于:\approx, \sim → ,
集合符号
- 属于:\in, \notin → ,
- 包含:\subset, \supset → ,
- 交并:\cap, \cup → ,
- 空集:\emptyset →
希腊字母
常用希腊字母及其 LaTeX 表示:
| 小写 | 大写 | LaTeX | 小写 | 大写 | LaTeX |
|---|---|---|---|---|---|
| α | Α | \alpha | ν | Ν | \nu |
| β | Β | \beta | ο | Ο | o |
| γ | Γ | \gamma | π | Π | \pi |
| δ | Δ | \delta | ρ | Ρ | \rho |
| ε | Ε | \epsilon | σ | Σ | \sigma |
| θ | Θ | \theta | τ | Τ | \tau |
| λ | Λ | \lambda | φ | Φ | \phi |
| μ | Μ | \mu | ω | Ω | \omega |
特殊函数和符号
- 三角函数:\sin, \cos, \tan
- 对数:\log, \ln
- 极限:\lim_{x \to 0}
- 求和:\sum_{i=1}^
- 积分:\int_{a}^
- 无穷:\infty
矩阵表示
使用 matrix 环境:
\begin
a & b \
c & d
\end
$$
\begin{pmatrix}
a & b \\
c & d
\end{pmatrix}
$$显示结果
不同括号类型的矩阵:
- pmatrix:圆括号
- bmatrix:方括号
- vmatrix:行列式
VitePress 中 LaTeX 数学公式渲染问题解决方案
✅ 方法一:使用 KaTeX(推荐 ✅ 轻量快速)
- 步骤 1:📦 安装依赖
npm install katex markdown-it-katex- 步骤 2:添加样式(全局样式) 在
.vitepress/theme/index.js中添加:
import DefaultTheme from 'vitepress/theme'
import 'katex/dist/katex.min.css'
export default {
...DefaultTheme
}- 步骤 3:配置 markdown-it-katex 在
.vitepress/config.js:中添加:
import { defineConfig } from 'vitepress'
import katex from 'markdown-it-katex'
export default defineConfig({
markdown: {
config: (md) => {
md.use(katex)
}
}
})- 步骤 3:✍ 使用方式
这是内联公式:$E=mc^2$
这是块级公式:
$$
\sum_{i=1}^n i = \frac{n(n+1)}{2}
$$✅ KaTeX 优缺点总结
| 项目 | 内容 |
|---|---|
| 优点 | 快速、轻量、兼容 SSR、适合静态站点、样式美观 |
| 缺点 | 支持的语法有限,不支持某些复杂公式或宏 |
| 推荐场景 | 博客、技术文档、教程、小中型数学内容 |
✅ 方法二:使用 MathJax(强大但偏重)
MathJax 是另一种广泛使用的数学排版引擎,特点是:
支持最完整的 LaTeX 语法
更复杂的渲染能力(如自动换行、宏定义)
渲染速度比 KaTeX 慢一些(因基于 DOM)
步骤 1:📦 安装方式 无需安装 npm 包,直接引入 CDN 即可:
.vitepress/theme/index.js:
import DefaultTheme from 'vitepress/theme'
export default {
...DefaultTheme,
enhanceApp({ router }) {
if (typeof window !== 'undefined') {
const script = document.createElement('script')
script.type = 'text/javascript'
script.src = 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js'
script.async = true
document.head.appendChild(script)
}
}
}- 步骤 2:✍ 使用方式 Markdown 中仍然用
$...$或$$...$$:
内联公式:$E = mc^2$
块级公式:
$$
\int_0^\infty e^{-x} dx = 1
$$但注意:MathJax 渲染是 客户端运行时渲染,不支持 SSR。
- ✅ MathJax 优缺点总结
项目 内容 优点 LaTeX 支持最全、支持宏定义和复杂嵌套、兼容性强 缺点 加载慢、文件体积大(~500kb+)、不支持 SSR 推荐场景 教育、科研网站、需要复杂排版的文档
🧠 对比总结
| 特性 | KaTeX | MathJax |
|---|---|---|
| 体积 | 小(~100kb) | 大(~500kb+) |
| 渲染方式 | 编译时/服务端渲染 | 客户端动态渲染 |
| SSR 支持 | ✅ 支持 | ❌ 不支持 |
| 渲染速度 | 快 | 稍慢 |
| LaTeX 支持度 | 常见数学公式 | 支持最完整的语法 |
| 安装方式 | npm + markdown-it 插件 | 直接引入 CDN |
| 是否推荐 | ✅ 推荐大多数场景使用 | 仅在复杂数学或教学平台推荐使用 |
注意
再写公示的时候要区别公式的语法 例如 $$ \begin{align} f(x) &= ax^2 + bx + c \\ f'(x) &= 2ax + b \\ f''(x) &= 2a \end{align} $$ 这一段 这是 MathJax 支持 的格式,但 ❌ KaTeX 默认并不支持 align 环境需要借助额外宏包或转换写法
可以这样写:
$$ \begin{aligned} f(x) &= ax^2 + bx + c \\ f'(x) &= 2ax + b \\ f''(x) &= 2a \end{aligned} $$
特别注意这块:begin{aligned} end{aligned}