写在前面

‌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的两倍
\, aba\, b
\: aba\: b
\; a  ba\; b
\quad aba\quad b
\qquad aba\qquad b

换行

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

f(x)={1,x>00,x0f(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 01x2dx\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,x2xn)=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(BA)=P(AB)P(A)P(BA)=1P(BA)\begin{aligned} P(B|A) &= \frac{P(AB)}{P(A)} \\ P(\overline{B}|A) &= 1 - P(B|A) \end{aligned}

或者

dAB=(62)2+(62)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+2x28;\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 x0,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}生成两列中间有竖线:

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

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

11122122\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 $$

显示:

01x2dx\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)} $$

显示:

limn1n(n+1)andlimx示例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=1n1i2andi=1n1i2andi=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=7321122=7321227321732=7321227321732=7312117327312(112732)\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=0Givenw=w+0additive identityw+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.24112521189832020001+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{xx2Z}{xx2Z}\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} 符号

BadBetterSf(x)dydxSf(x)dydxVf(x)dzdydxVf(x)dzdydx\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}$ 之前)插入一个小的间距否则各种被积变量将会挤成一团

BadBetterVf(x)dzdydxVf(x)dzdydx\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}