写在前面

‌KaTeX‌是一个专为网页设计的‌快速数学公式渲染JavaScript库‌。写markdown的时候,数学渲染可以使用mathjax或者katex,但是越来越多的人倾向于使用katex,故而本人也加入了katex大军。

katex和mathjax语法都类似于latex,熟悉的同学上手会很快

特殊符号

希腊字母

输入 \小写希腊字母英文全称 和 \首字母大写希腊字母英文全称 来分别输入小写和大写希腊字母

对于大写希腊字母与英文字母相同的,直接输入大写字母即可

序号 希腊字母小写 希腊字母大写 英语 小写KaTex代码 大写KaTex代码
1 α\alpha A alpha \alpha,@a A
2 β\beta B beta \beta,@b B
3 γ\gamma Γ\Gamma gamma \gamma,@g \Gamma,@G
4 δ\delta Δ\Delta delta \delta,@d \Delta,@D
5 ϵ\epsilon,ε\varepsilon EE epsilon \epsilon,varepsilon,@e E
6 ζ\zeta Z zeta \zeta,@z Z
7 η\eta H eta \eta H
8 θ\theta,ϑ\vartheta Θ\Theta theta \theta,@t,\vartheta \Theta,@T
9 ι\iota II iota \iota,@i I
10 κ\kappa k kappa \kappa,@k K
11 λ\lambda Λ\Lambda lambda \lambda,@l \Lambda,@L
12 μ\mu MM mu \mu M
13 ν\nu N nu \nu N
14 ξ\xi Ξ\Xi xi \xi \Xi
15 oo OO omicron o O
16 π\pi Π\Pi pi \pi \Pi
17 ρ\rho,ϱ\varrho PP rho \rho,\varrho P
18 σ\sigma Σ\Sigma sigma \sigma,\sigma Sigma,@S
19 τ\tau TT tau \tau T
20 υ\upsilon Υ\Upsilon upsilon \upsilon,@u \Upsilon,@U
21 ϕ\phi,φ\varphi Φ\Phi phi \phi,\varphi \phi
22 χ\chi XX chi \chi X
23 ψ\psi Ψ\Psi psi \psi \Psi
24 ω\omega Ω\Omega omega \omega,@o \Omega,@O

运算符

  1. 关系运算符
输入 显示 输入 显示 输入 显示 输入 显示
\pm ±\pm \times ×\times \div ÷\div \mid ∣\mid
\nmid ∤\nmid \cdot ⋅\cdot \circ ∘\circ \ast ∗\ast
\bigodot ⨀\bigodot \bigotimes ⨂\bigotimes \bigoplus ⨁\bigoplus \leq ≤\leq
\geq ≥\geq \neq ≠\neq \approx ≈\approx \equiv ≡\equiv
\sum ∑\sum \prod ∏\prod \coprod ∐\coprod \backslash \\backslash
  1. 集合运算符
输入 显示 输入 显示 输入 显示
\emptyset ∅\emptyset \in ∈\in \notin ∉\notin
\subset ⊂\subset \supset ⊃\supset \subseteq ⊆\subseteq
\supseteq ⊇\supseteq \cap ∩\cap \cup ∪\cup
\vee ∨\vee \wedge ∧\wedge \uplus ⊎\uplus
\top ⊤\top \bot ⊥\bot \complement ∁\complement
  1. 三角运算符
输入 显示 输入 显示
\backsim ∽\backsim \cong ≅\cong
\angle ∠\angle

排版相关

缩进

在Latex代码中输入空格并不会起到缩进的作用,如果需要缩进,需要使用缩进的指令

  1. \,表示一个较小的空格(thinspace),通常用于在数学公式中插入较小的间距
  2. \:表示一个中等空格(midspace),通常用于在单词之间插入间距,或在数学公式之间插入一个中等大小的间距
  3. \;表示一个较大的空格(thickspace),通常用于数学公式之间插入一个较大的间距
  4. \quad表示一个等宽的空格,其宽度相当于当前字体尺寸下一个字符的宽度
  5. \qquad表示两个等宽空格,宽度是\quad的两倍
\, a ba\, b
\: a ba\: b
\; a  ba\; b
\quad aba\quad b
\qquad aba\qquad b

换行

只有在写入多行公式的时候,才能使用\\进行换行

f(x)={1,x>00,x≤0f(x)=\begin{cases} 1,x>0 \\ 0,x\leq_{0} \end{cases}

更大更小的字符渲染

若需要显示更大或更小的字符,在符号前插入 \large 或 \small 命令

比如$\small{x} + \normalsize{x}+\large{x}$,
显示为$$\small{x} + \normalsize{x}+\large{x}$$
针对任意元素均提供从小至大 \tiny \scriptsize \small \normalsize \large \Large \LARGE \huge \Huge 等渲染尺寸

字体转换

若要对公式的某一部分字符进行字体转换 可以用 {\字体 {需转换的部分字符}} 命令

其中 \字体 部分可以参照下表选择合适的字体。一般情况下,公式默认为斜体字italicitalic

下面的字体会对大小写都起作用

输入 大小写都可用 显示
\rm, \mathrm 罗马体(正体) Sample\mathrm{Sample}
\it 斜体 Sample\it{Sample}
\bf, \mathbf 粗体 Sample\mathbf{Sample}
\sf 等线体 Sample\sf{Sample}
\tt 打字机体 Sample\tt{Sample}
\frak 旧德式字体 Sample\frak{Sample}

下面的字体只对大写起作用,小写会按照italicitalic渲染

输入 只有大写可用 显示 例
\cal, \mathcal 花体(数学符号等) SAMPLE\cal{SAMPLE}
\mathbb 黑板粗体(定义域等) SAMPLE\mathbb{SAMPLE} R2\mathbb{R^2}
\it, \mathit 数学斜体 SAMPLE\it{SAMPLE}
\scr, \mathscr 手写体 \scr{SAMPLE}

注意: \boldsymbol{\vec \alpha} 用来表示向量或者矩阵的加粗斜体

使用\mathbf的向量 使用\boldsymbol的向量
α⃗\mathbf{}{\vec{\alpha}} α⃗\boldsymbol{\vec{\alpha}}

在很多地方,要使用正体字\rm会比较规范

Bad Better 解释
∫01x2dx\int_0^1 x^2 dx ∫01x2 dx\int_0^1 x^2 \,{\rm d}x Better中的d使用了\rm来表示正体

\text也可以表示正体,但是对于传统的LaTex来说,需要\usepackage{amsmath}来进行导入,用于嵌入正体文字,可以包含空格、中文、标点等。

但\rm的范围只是A-Z,a-z,但是仍建议按需使用\rm和\text

适配行高

在一些情况下,条件表达式中某些行的行高为非标准高度,此时使用 \\[2ex] 语句代替该行末尾的 \\ 来让编辑器适配2倍行高

一个 [ex] 指一个 X-Height,即 x 字母高度,可以根据情况指定多个 [ex],如 [3ex]、[4ex] 等

不适配两倍行高[2ex]:

f(n)={n2,if n is even3n+1,if n is oddf(n) = \begin{cases} \frac{n}{2}, & \text{if $n$ is even} \\ 3n+1, & \text{if $n$ is odd} \\ \end{cases}

适配之后:

f(n)={n2,if n is even3n+1,if n is oddf(n) = \begin{cases} \frac{n}{2}, & \text{if $n$ is even} \\[2ex] 3n+1, & \text{if $n$ is odd} \\ \end{cases}

其中行间距变大了,看着会比较舒服


基础语法

快速唤起

在使用Latex Suite插件的情况下,可以键入 mk(mk for math inline)唤起行内公式,键入 dm(dm for math display)唤起独立公式

注释

在代码内使用%进行注释

E=mc2E=mc^2 %这是一个注释

大括号

当需要使用大括号的时候(一般有分数的情况下会使用),需要使用\left(这种语法。并且\left(需要和\right)成对出现,不然会报错

使用大括号 未使用大括号
$$ f(x,y,z) = 3y^2z \left( 3+\frac{7x+5}{1+y^2} \right) $$ $$ f(x,y,z) = 3y^2z ( 3+\frac{7x+5}{1+y^2} ) $$

开根号

使用\sqrt[开的次方]{根号下面的数}进行开方

2or23\sqrt{ 2 } \quad or\quad \sqrt[3]{ 2 }

省略号

数学公式中常见的省略号有两种

  • \ldots 表示与 文本底线 对齐的省略号
  • \cdots 表示与 文本中线 对齐的省略号,同时可以用来点乘
1
$$ f(x_1,x_2  \ldots x_n) = x_1^2 + x_2^2 + \cdots + x_n^2 $$

f(x1,x2…xn)=x12+x22+⋯+xn2f(x_1,x_2 \ldots x_n) = x_1^2 + x_2^2 + \cdots + x_n^2


进阶语法

aligned的使用

在 KaTeX 中,\begin{aligned}...\end{aligned}环境用于实现多行公式的对齐功能

  • 换行符:使用 \\分隔不同行。
  • 对齐符号:在需要对齐的位置(如等号 =)前添加 &符号。

a=b+cd=e+f\begin{aligned} a &= b + c \\ d &= e + f \end{aligned}

  1. 等号对齐:将 &放在等号前,例如:

P(B∣A)=P(AB)P(A)P(B‾∣A)=1−P(B∣A)\begin{aligned} P(B|A) &= \frac{P(AB)}{P(A)} \\ P(\overline{B}|A) &= 1 - P(B|A) \end{aligned}

或者

dAB=(6−2)2+(6−2)2=42+42=42\begin{aligned} d_{AB} &= \sqrt{(6-2)^2 + (6-2)^2} \\ &= \sqrt{4^2 + 4^2} \\ &= 4\sqrt{2} \end{aligned}

  1. 首字符对齐:若需对齐公式的首字符(如变量或运算符),将 &放在首字符前:

max=2x1+3x2;x1+2x2≤8;\begin{aligned} &max = 2x_1 + 3x_2; \\ &x_1 + 2x_2 \leq 8; \end{aligned}

cases的使用

在 KaTeX 中,\begin{cases}...\end{cases}环境用于实现分段函数或条件表达式的分段显示

  • 结构:每行用 &分隔公式和条件,用 \\换行。
  • 大括号:自动在左侧生成大括号 {,无需手动添加 \left\{和 \right.。

f(x)={x2if x≥0,−xif x<0.f(x) = \begin{cases} x^2 & \text{if } x \geq 0, \\ -x & \text{if } x < 0. \end{cases}

对齐方式:公式默认左对齐,条件默认右对齐。若需调整对齐,可通过 &符号控制
间距调整:若需在条件中添加注释或符号,可用 \quad或 \;控制间距

f(x)={x2若 x>0,且 y<10,0否则f(x) = \begin{cases} x^2 & \text{若 } x > 0 ,\quad \text{且 } y < 10, \\[2ex] 0 & \text{否则} \end{cases}

array的使用

在 KaTeX 中,\begin{array}...\end{array}环境用于创建灵活的矩阵或表格,支持自定义列对齐、分隔符和复杂结构

  • 基本语法
1
2
3
4
5
6
$$
\begin{array}{列格式}
元素1 & 元素2 & ... \\
元素3 & 元素4 & ... \\
\end{array}
$$

\begin{array}{列格式} 元素1 & 元素2 & ... \\ 元素3 & 元素4 & ... \\ \end{array}

  • 列格式:通过 l(左对齐)、c(居中)、r(右对齐)定义每列对齐方式,例如 {cc}表示两列居中对齐。
  • 分隔符:用 &分隔同一行元素,用 \\换行。

竖线分隔:在列格式中添加 |表示竖线,例如 {c|c}生成两列中间有竖线:

行1列1行1列2行2列1行2列2\begin{array}{c|c} 行1列1 & 行1列2 \\ 行2列1 & 行2列2 \\ \end{array}

横线分割:在一行中添加\hline表示横线,\hline不需要添加额外的\\

行1列1行1列2行2列1行2列2\begin{array}{c|c} 行1列1 & 行1列2 \\ \hline 行2列1 & 行2列2 \\ \end{array}

aligned、cases、array三者之差异

  • aligned:用于创建多行公式,也可以用来创建方程组,但不会自动添加括号
  • cases:用法于aligned相似,但会自动添加\left{
  • array:可以用来创建多行公式,但更多用于创建表格和矩阵

积分

使用 \int_积分下限^积分上限 {被积表达式} 来输入一个积分

例:

1
$$ \int_0^1 {x^2} \,{\rm d}x $$

显示:

∫01x2 dx\int_0^1 {x^2} \,{\rm d}x

极限

使用 \lim_{变量 \to 表达式} 表达式 来输入一个极限

例:

1
$$ \lim_{n \to \infty} \frac{1}{n(n+1)} \quad \text{and} \quad \lim_{x\leftarrow{示例}} \frac{1}{n(n+1)} $$

显示:

lim⁡n→∞1n(n+1)andlim⁡x←示例1n(n+1)\lim_{n \to \infty} \frac{1}{n(n+1)} \quad \text{and} \quad \lim_{x\leftarrow{示例}} \frac{1}{n(n+1)}

累加、累乘

使用 \sum_{下标表达式}^{上标表达式} {累加表达式} 来输入一个累加

与之类似,使用 \prod \bigcup \bigcap 来分别输入累乘、并集和交集

1
$$ \sum_{i=1}^n \frac{1}{i^2} \quad \text{and} \quad \prod_{i=1}^n \frac{1}{i^2} \quad \text{and} \quad \bigcup_{i=1}^{2} \Bbb{R} $$

∑i=1n1i2and∏i=1n1i2and⋃i=12R\sum_{i=1}^n \frac{1}{i^2} \quad \text{and} \quad \prod_{i=1}^n \frac{1}{i^2} \quad \text{and} \quad \bigcup_{i=1}^{2} \Bbb{R}

矩阵

无框矩阵

在开头使用 \begin{matrix},在结尾使用 \end{matrix},在中间插入矩阵元素,每个元素之间插入 & ,并在每行结尾处使用 \\

1xx21yy21zz2\begin{matrix} 1 & x & x^2 & \\ 1 & y & y^2 \\ 1 & z & z^2 \\ \end{matrix}

边框矩阵

将 matrix 替换为 pmatrix bmatrix Bmatrix vmatrix Vmatrix

matrix pmatrix bmatrix Bmatrix vmatrix Vmatrix
1234\begin{matrix} 1 & 2 \\ 3 & 4 \\ \end{matrix} (1234)\begin{pmatrix} 1 & 2 \\ 3 & 4 \\ \end{pmatrix} [1234]\begin{bmatrix} 1 & 2 \\ 3 & 4 \\ \end{bmatrix} {1234}\begin{Bmatrix} 1 & 2 \\ 3 & 4 \\ \end{Bmatrix} ∣1234∣\begin{vmatrix} 1 & 2 \\ 3 & 4 \\ \end{vmatrix} ∥1234∥\begin{Vmatrix} 1 & 2 \\ 3 & 4 \\ \end{Vmatrix}

带省略号的矩阵

使用\cdots、\ddots、\vdots来输入省略号

\cdots \ddots \vdots
⋯\cdots ⋱\ddots ⋮\vdots

分割开的矩阵

[123456]\left[ \begin{array}{cc|c} 1 & 2 & 3 \\ 4 & 5 & 6 \\ \end{array} \right]

行中矩阵

这是一个(1234)\begin{pmatrix} 1 & 2 \\ 3 & 4 \\ \end{pmatrix}使用pmatrix的行中矩阵,这是一个abcd\begin{smallmatrix} a & b \\\\ c & d \end{smallmatrix}使用smallmatrix的矩阵,需要加上\bigl(和\bigr)来使用(abcd)\bigl(\begin{smallmatrix} a & b \\\\ c & d \end{smallmatrix}\bigr)

方程组

使用 \begin{array}{列格式} … \end{array} 和 \left\{ … \right. 来创建一个方程组

列格式:用c居中,l左对齐,r右对齐定义每一列的对齐方式,例如{cc}表示两列均居中

经过测试不填列格式默认居中

array本来不是用来写方程组的,其用于创建灵活的矩阵或表格,支持自定义列对齐、分割线等功能,因此在前面需要加上花括号

在等号 = 前加符号 & 是为了让等号以后的内容对齐

{a1x+b1y+c1z=d1a2x+b2y+c2z=d2a3x+b3y+c3z=d3\left\{ \begin{array}{lll} a_1x+b_1y+c_1z &=d_1 \\ a_2x+b_2y+c_2z &=d_2 \\ a_3x+b_3y+c_3z &=d_3 \\ \end{array} \right.

或使用条件表达式组 \begin{cases} … \end{cases} 来实现相同效果,此时就不用写花括号了

{a1x+b1y+c1z=d1a2x+b2y+c2z=d2a3x+b3y+c3z=d3\begin{cases} a_1x+b_1y+c_1z &=d_1 \\ a_2x+b_2y+c_2z &=d_2 \\ a_3x+b_3y+c_3z &=d_3 \\ \end{cases}

递等式

使用 \begin{aligned}…\end{aligned} 来创造一列递等式

aligned用于多行公式的对齐排版

在 {aligned} 中后添加 & 符号来自动对齐后面的内容

KaTex似乎不支持align,但是写align会正常渲染成aligned

37=732−1122=732122⋅732−1732=732122732−1732=73121−1732≈7312(1−12⋅732)\begin{aligned} \sqrt{37} & = \sqrt{\frac{73^2-1}{12^2}} \\ & = \sqrt{\frac{73^2}{12^2}\cdot\frac{73^2-1}{73^2}} \\ & = \sqrt{\frac{73^2}{12^2}}\sqrt{\frac{73^2-1}{73^2}} \\ & = \frac{73}{12}\sqrt{1-\frac{1}{73^2}} \\ & \approx \frac{73}{12}\left(1-\frac{1}{2\cdot73^2}\right) \\ \end{aligned}

为每一行添加注释

可灵活组合 \text 和 \tag 语句,但是好像在align中无法使用\tag

这段使用\text配合&实现右对齐

v+w=0Given−w=−w+0additive identity−w+0=−w+(v+w)equations\begin{aligned} v + w & = 0 & \text{Given} \\ -w & = -w + 0 & \text{additive identity} \\ -w + 0 & = -w + (v + w) & \text{equations} \\ \end{aligned}

E=mc2(1)E = mc^2\tag{1}

条件表达式组

使用 \begin{cases}…\end{cases} 来创造一组条件表达式

在每一行条件中插入 & 来指定需要对齐的内容,并在每一行结尾处使用 \\

f(n)={n/2,if n is even3n+1,if n is odd f(n) = \begin{cases} n/2, & \text{if $n$ is even} \\ 3n+1, & \text{if $n$ is odd} \\ \end{cases}

如果想要把花括号移到右边,则不能使用cases,需要改用array或aligned

if n is even:n/2if n is odd:3n+1}=f(n) \left. \begin{array}{l} \text{if $n$ is even:} & n/2 \\ \text{if $n$ is odd:} & 3n+1 \\ \end{array} \right\} =f(n)

数组与表格

通常,一个格式化后的表格比单纯的文字或排版后的文字更具有可读性

  • 数组和表格均以 \begin{array} 开头,并在其后定义列数及每一列的文本对齐属性
  • c l r 分别代表居中、左对齐及右对齐
  • 若需要插入垂直分割线,在定义式中插入 |
  • 若要插入水平分割线,在下一行输入前插入 \hline
  • 与矩阵相似,每行元素间均须要插入 & ,每行元素以 \\ 结尾
  • 最后以 \ end{array} 结束数组

n左对齐居中对齐右对齐10.2411252−1189−83−2020001+10i\begin{array}{c|lcr} n & \text{左对齐} & \text{居中对齐} & \text{右对齐} \\ \hline 1 & 0.24 & 1 & 125 \\ 2 & -1 & 189 & -8 \\ 3 & -20 & 2000 & 1+10i \\ \end{array}

多个array可以相互嵌套形成一组array,但是会比较复杂

min012300000101112012230123max012300123111232222333333Δ012300123110122210133210\begin{array}{c} % 总表格 \begin{array}{cc} % 第一行内分成两列 \begin{array}{c|cccc} % 第一列"最小值"数组 \text{min} & 0 & 1 & 2 & 3 \\ \hline 0 & 0 & 0 & 0 & 0 \\ 1 & 0 & 1 & 1 & 1 \\ 2 & 0 & 1 & 2 & 2 \\ 3 & 0 & 1 & 2 & 3 \\ \end{array} &\quad \begin{array}{c|cccc} % 第二列"最大值"数组 \text{max} & 0 & 1 & 2 & 3 \\ \hline 0 & 0 & 1 & 2 & 3 \\ 1 & 1 & 1 & 2 & 3 \\ 2 & 2 & 2 & 2 & 3 \\ 3 & 3 & 3 & 3 & 3 \\ \end{array} \end{array} % 第一行表格组结束 \\[5ex] \begin{array}{c|cccc} % 第二行 Delta 值数组 \Delta & 0 & 1 & 2 & 3 \\ \hline 0 & 0 & 1 & 2 & 3 \\ 1 & 1 & 0 & 1 & 2 \\ 2 & 2 & 1 & 0 & 1 \\ 3 & 3 & 2 & 1 & 0 \\ \end{array} % 第二行表格结束 \end{array} % 总表格结束


其他注意事项

\mid和|的区别

使用 | 符号作为分隔符时会产生错误的间距,因此在需要分隔时最好使用 \mid 来代替它,\mid的间距会比较大

BadBetter{x∣x2∈Z}{x∣x2∈Z}\begin{array}{cc} \mathrm{Bad} & \mathrm{Better} \\ \hline \\ \{x|x^2\in\Bbb Z\} & \{x\mid x^2\in\Bbb Z\} \\ \end{array}

多重积分应该注意的事情

使用多重积分符号时,不要多次使用 \int 来声明,直接使用 \iint 来表示二重积分,使用 \iiint 来表示三重积分

在表示面积分和体积分时下标建议使用 \boldsymbol{S} 和 \boldsymbol{V} 符号

BadBetter∫∫Sf(x) dy dx∬Sf(x) dy dx∫∫∫Vf(x) dz dy dx∭Vf(x) dz dy dx\begin{array}{cc} \mathrm{Bad} & \mathrm{Better} \\ \hline \\ \int\int_S f(x)\,dy\,dx & \iint_{\boldsymbol{S}} f(x)\,{\rm d}y\,{\rm d}x \\ \int\int\int_V f(x)\,dz\,dy\,dx & \iiint_{\boldsymbol{V}} f(x)\,{\rm d}z\,{\rm d}y\,{\rm d}x \\[3ex] \end{array}

使用多重积分时,在被积变量后加入 \, 或 \space(或在微分符号 $\rm{d}$ 之前)插入一个小的间距否则各种被积变量将会挤成一团

BadBetter∭Vf(x)dzdydx∭Vf(x) dz dy dx\begin{array}{cc} \mathrm{Bad} & \mathrm{Better} \\ \hline \\ \iiint_V f(x){\rm d}z {\rm d}y {\rm d}x & \iiint_{\boldsymbol{V}} f(x)\,{\rm d}z\,{\rm d}y\,{\rm d}x \\ \end{array}