Skip to content

学公式

LaTeX 数学公式基础

在 Markdown 中,数学公式通过 LaTeX 语法来表示。LaTeX 是一个强大的排版系统,特别适用于包含复杂数学公式的文档。

注意

在vitepress中,默认不支持 LaTeX 数学公式渲染,需要额外配置 查看如何配置

基本语法结构

  • 命令:以反斜杠 \ 开头,如 \alpha、\sum
  • 参数:用花括号 {} 包围,如 \frac{a}{b}
  • 下标:使用_,如 x_1
  • 上标:使用 ^,如 x^2
  • 分组:用花括号将多个字符组合,如 x_{i+1}

常用 LaTeX 命令

markdown
\alpha, \beta, \gamma  % 希腊字母
\sum, \prod, \int      % 求和、乘积、积分
\frac{分子}{分母}      % 分数
\sqrt{表达式}          % 平方根
\sqrt[n]{表达式}       % n次根

行内公式与块级公式

行内公式

行内公式使用单个美元符号 $ 包围,公式会嵌入到文本中,如:文本中的变量 x=5x = 5 和函数 f(x)=x2+2x+1f(x) = x^2 + 2x + 1

markdown
文本中的变量 $x = 5$ 和函数 $f(x) = x^2 + 2x + 1$。

显示结果

文本中的变量 x=5x = 5 和 函数 f(x)=x2+2x+1f(x) = x^2 + 2x + 1

块级公式

块级公式使用双美元符号 $$ 包围,公式会独立成行并居中显示:

E = mc^2

\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}

markdown
$$E = mc^2$$

$$\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}$$

显示结果

E=mc2E = mc^2

ex2dx=π\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

markdown
$$
    \begin{aligned}
    f(x) &= ax^2 + bx + c \\
    f'(x) &= 2ax + b \\
    f''(x) &= 2a
    \end{aligned}
$$

显示结果

f(x)=ax2+bx+cf(x)=2ax+bf(x)=2a\begin{aligned} f(x) &= ax^2 + bx + c \\ f'(x) &= 2ax + b \\ f''(x) &= 2a \end{aligned}

常用数学符号

基本运算符号

  • 加减乘除:+, -, \times, \div
  • 分数:\frac{a}{b} → ab\frac{a}{b}
  • 根号:\sqrt{x}, \sqrt[n]{x} → x\sqrt{x}, xn\sqrt[n]{x}
  • 指数:x^2, e^{i\pi} → x2x^2, eiπe^{i\pi}

比较符号

  • 等于:=, \neq, \equiv → ==, \neq, \equiv
  • 大小:<, >, \leq, \geq → <<, >>, \leq, \geq
  • 约等于:\approx, \sim → \approx, \sim

集合符号

  • 属于:\in, \notin → \in, \notin
  • 包含:\subset, \supset → \subset, \supset
  • 交并:\cap, \cup → \cap, \cup
  • 空集:\emptyset → \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

markdown
$$
    \begin{pmatrix}
    a & b \\
    c & d
    \end{pmatrix}
    $$

显示结果

(abcd)\begin{pmatrix} a & b \\ c & d \end{pmatrix}

不同括号类型的矩阵:

  • pmatrix:圆括号 (ab cd)\begin{pmatrix} a & b \ c & d \end{pmatrix}
  • bmatrix:方括号 [ab cd]\begin{bmatrix} a & b \ c & d \end{bmatrix}
  • vmatrix:行列式 ab cd\begin{vmatrix} a & b \ c & d \end{vmatrix}

VitePress 中 LaTeX 数学公式渲染问题解决方案

✅ 方法一:使用 KaTeX(推荐 ✅ 轻量快速)

  • 步骤 1:📦 安装依赖
bash
npm install katex markdown-it-katex
  • 步骤 2:添加样式(全局样式) 在 .vitepress/theme/index.js 中添加:
js
import DefaultTheme from 'vitepress/theme'
import 'katex/dist/katex.min.css'

export default {
  ...DefaultTheme
}
  • 步骤 3:配置 markdown-it-katex 在 .vitepress/config.js: 中添加:
js
import { defineConfig } from 'vitepress'
import katex from 'markdown-it-katex'

export default defineConfig({
  markdown: {
    config: (md) => {
      md.use(katex)
    }
  }
})
  • 步骤 3:✍ 使用方式
markdown
这是内联公式:$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:

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 中仍然用 $...$$$...$$
markdown
内联公式:$E = mc^2$

块级公式:

$$
\int_0^\infty e^{-x} dx = 1
$$

但注意:MathJax 渲染是 客户端运行时渲染,不支持 SSR。

  • ✅ MathJax 优缺点总结
    项目内容
    优点LaTeX 支持最全、支持宏定义和复杂嵌套、兼容性强
    缺点加载慢、文件体积大(~500kb+)、不支持 SSR
    推荐场景教育、科研网站、需要复杂排版的文档

🧠 对比总结

特性KaTeXMathJax
体积小(~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}