前言
准备整理一下我所使用的Latex数学公式(其实我大部分时间都在使用katex )
下面列举一些有用的资源
- katex document https://katex.org/docs/api
- LaTeX公式手册(全网最全) - 樱花赞 - 博客园
- 这个显示有问题,有时间的话,我会 fork 一下修改 https://1024th.github.io/MathJax_Tutorial_CN/#/quickstart
- 在线latex公式编辑器 https://www.latexlive.com/
Latex 公式手册
转载自: https://blog.csdn.net/Yushan_Ji/article/details/134322574
基本符号
小写希腊字母
注:部分希腊字母在数学公式中常以变量形式出现,例如 在数学中一般写法为 , 在数学中通常写作
| 符号 | 语法 | 符号 | 语法 | 符号 | 语法 |
|---|---|---|---|---|---|
\alpha | \beta | \gamma | |||
\theta | \varepsilon | \delta | |||
\mu | \nu | \eta | |||
\zeta | \lambda | \psi | |||
\sigma | \xi | \tau | |||
\phi | \varphi | \rho | |||
\chi | \omega | \pi |
大写希腊字母
大写希腊字母通常是小写希腊字母的 LATEX 语法第一个字母改为大写,见下表
| 符号 | 语法 | 符号 | 语法 | 符号 | 语法 |
|---|---|---|---|---|---|
\Sigma | \Pi | \Delta | |||
\Gamma | \Psi | \Theta | |||
\Lambda | \Omega | \Phi | |||
\Xi |
常用字体
默认的字体为 ,也就是 \mathnormal{ABCdef}(当然,打公式的时候不需要加上这个 \mathnormal,直接打字母就是这个效果)
| 字体 | 语法 | 字体 | 语法 |
|---|---|---|---|
\mathrm{ABCdef} | \mathbf{ABCdef} | ||
\mathit{ABCdef} | \pmb{ABCdef} | ||
\mathscr{ABCdef} | \mathcal{ABCdef} | ||
\mathfrak{ABCdef} | \mathbb{ABCdef} |
常见运算符
| 运算符 | 语法 | 运算符 | 语法 | 运算符 | 语法 |
|---|---|---|---|---|---|
+ | - | \times | |||
\pm | \cdot | \ast | |||
\cup | \cap | \circ | |||
\lor 或 \vee | \land 或 \wedge | \lnot | |||
\oplus | \ominus | \otimes | |||
\odot | \oslash | \bullet | |||
\sqrt{x} | \sqrt[n]{x} |
大尺寸运算符
| 运算符 | 语法 | 运算符 | 语法 | 运算符 | 语法 |
|---|---|---|---|---|---|
\sum | \prod | \int | |||
\bigcup | \bigcap | \oint | |||
\bigvee | \bigwedge | \iint | |||
\coprod | \bigsqcup | \oiint |
常见关系符号
| 符号 | 语法 | 符号 | 语法 | 符号 | 语法 |
|---|---|---|---|---|---|
< | > | = | |||
\leq | \geq | \neq | |||
\ll | \gg | \equiv | |||
\subset | \supset | \approx | |||
\subseteq | \supseteq | \sim | |||
\in | \ni | \propto | |||
\vdash | \dashv | \models | |||
\mid | \parallel | \perp | |||
\notin | \Join | \nsim | |||
\subsetneq | \supsetneq |
数学模式重音符
| 符号 | 语法 | 符号 | 语法 | 符号 | 语法 |
|---|---|---|---|---|---|
\hat{a} | \bar{a} | \tilde{a} | |||
\vec{a} | \dot{a} | \ddot{a} | |||
\widehat{abc} | \widetilde{abc} | \overline{abc} |
箭头
如果需要长箭头,只需要在语法前面加上 \long,例如 \longleftarrow 即为 ,如果加上 \Long 则变为双线长箭头,例如 \Longleftarrow 即为
| 符号 | 语法 | 符号 | 语法 | 符号 | 语法 |
|---|---|---|---|---|---|
\leftarrow | \rightarrow | \leftrightarrow | |||
\Leftarrow | \Rightarrow | \Leftrightarrow | |||
\uparrow | \downarrow | \updownarrow | |||
\Uparrow | \Downarrow | \Updownarrow | |||
\leftharpoonup | \leftharpoondown | \rightharpoonup | |||
\rightharpoondown | \rightleftharpoons | \leftrightharpoons | |||
\iff | \mapsto |
括号
| 括号 | 语法 | 括号 | 语法 | 括号 | 语法 |
|---|---|---|---|---|---|
() | [] | \{\} | |||
\lfloor\rfloor | \lceil\rceil | \langle\rangle |
大尺寸括号
| 括号 | 语法 | 括号 | 语法 |
|---|---|---|---|
\left(\right) | \left[\right] | ||
\overbrace{x_1 x_2 \ldots x_n}^{n} | \underbrace{x_1 x_2 \ldots x_n}_{n} |
注:大尺寸的 () 和 [] 是可以根据公式的高度自动调节的,例如
1\arg\min_{\theta}
2\left[
3 -\sum_{i=1}^{n}
4 \left[
5 \mathbf{y}^{(i)}\ln(h_{\theta}(\mathbf{x}^{(i)})) +
6 (1-\mathbf{y}^{(i)})\ln(1-h_{\theta}(\mathbf{x}^{(i)}))
7 \right]
8\right]
可以看出,括号高度可以框住整个公式。因此在这种大型的公式中,使用大尺寸括号视觉效果更美观。
其他常见符号
| 符号 | 语法 | 符号 | 语法 | 符号 | 语法 |
|---|---|---|---|---|---|
\forall | \exist | \angle | |||
\emptyset | \partial | \infty | |||
\ldots | \cdots | \dots | |||
\vdots | \ddots | \prime | |||
\because | \therefore | \Box | |||
\triangle | \S |
数学公式写法
上下标
^:上标_:下标
例如:
\sum_{i=1}^{n}X_n表示\int_{0}^{\infty}x^2dx表示\prod_{i=1}^{n}X_n表示
分数
使用 \frac{}{} 即可,例如 \frac{a}{b} 表示
插入文字
使用 \text,例如 \text{hello,world!} 表示
常见函数
| 函数 | 语法 | 函数 | 语法 | 函数 | 语法 |
|---|---|---|---|---|---|
\log() | \ln() | \lg() | |||
\max | \min | \lim_{x \to \infty} | |||
\arg\max_{c \in C} | \arg\min_{c \in C} | \exp |
矩阵、行列式
& 表示分隔元素,\\ 表示换行
1A=
2\begin{pmatrix}
3a_{11} & a_{12} \\
4a_{21} & a_{22}
5\end{pmatrix}
1A=
2\begin{bmatrix}
3a_{11} & a_{12} \\
4a_{21} & a_{22}
5\end{bmatrix}
1A=
2\begin{Bmatrix}
3a_{11} & a_{12} \\
4a_{21} & a_{22}
5\end{Bmatrix}
1A=
2\begin{vmatrix}
3a_{11} & a_{12} \\
4a_{21} & a_{22}
5\end{vmatrix}
1A=
2\begin{Vmatrix}
3a_{11} & a_{12} \\
4a_{21} & a_{22}
5\end{Vmatrix}
1A=
2\begin{matrix}
3a_{11} & a_{12} \\
4a_{21} & a_{22}
5\end{matrix}
多行公式对齐
使用 \begin{split} \end{split},在需要对齐的地方添加 & 符号,注意需要用 \\ 来换行。
例如:
1\begin{split}
2L(\theta)
3&= \arg\max_{\theta}\ln(P_{All})\\
4&= \arg\max_{\theta}\ln\prod_{i=1}^{n}
5 \left[
6 (h_{\theta}(\mathbf{x}^{(i)}))^{\mathbf{y}^{(i)}}\cdot
7 (1-h_{\theta}(\mathbf{x}^{(i)}))^{1-\mathbf{y}^{(i)}}
8 \right]\\
9&= \arg\max_{\theta}\sum_{i=1}^{n}
10 \left[
11 \mathbf{y}^{(i)}\ln(h_{\theta}(\mathbf{x}^{(i)})) +
12 (1-\mathbf{y}^{(i)})\ln(1-h_{\theta}(\mathbf{x}^{(i)}))
13 \right]\\
14&= \arg\min_{\theta}
15 \left[
16 -\sum_{i=1}^{n}
17 \left[
18 \mathbf{y}^{(i)}\ln(h_{\theta}(\mathbf{x}^{(i)})) +
19 (1-\mathbf{y}^{(i)})\ln(1-h_{\theta}(\mathbf{x}^{(i)}))
20 \right]
21 \right]\\
22&= \arg\min_{\theta}\mathscr{l}(\theta)
23\end{split}
上例中,在 = 前添加了 &,因此实现等号对齐;
\begin{split} \end{split} 语法默认为右对齐,也就是说如果不在任何地方添加 & 符号,则公式默认右侧对齐,例如:
1\begin{split}
2L(\theta)
3= \arg\max_{\theta}\ln(P_{All})\\
4= \arg\max_{\theta}\ln\prod_{i=1}^{n}
5\left[
6(h_{\theta}(\mathbf{x}^{(i)}))^{\mathbf{y}^{(i)}}\cdot
7(1-h_{\theta}(\mathbf{x}^{(i)}))^{1-\mathbf{y}^{(i)}}
8\right]\\
9= \arg\max_{\theta}\sum_{i=1}^{n}
10\left[
11\mathbf{y}^{(i)}\ln(h_{\theta}(\mathbf{x}^{(i)})) +
12(1-\mathbf{y}^{(i)})\ln(1-h_{\theta}(\mathbf{x}^{(i)}))
13\right]\\
14= \arg\min_{\theta}
15\left[
16-\sum_{i=1}^{n}
17\left[
18\mathbf{y}^{(i)}\ln(h_{\theta}(\mathbf{x}^{(i)})) +
19(1-\mathbf{y}^{(i)})\ln(1-h_{\theta}(\mathbf{x}^{(i)}))
20\right]
21\right]\\
22= \arg\min_{\theta}\mathscr{l}(\theta)
23\end{split}
上述 LATEX 代码没有添加 & 符号,则公式右对齐:
$$ \begin{split} L(\theta) = \arg\max_{\theta}\ln(P_{All})\ = \arg\max_{\theta}\ln\prod_{i=1}^{n} \left[ (h_{\theta}(\mathbf{x}^{(i)}))^{\mathbf{y}^{(i)}}\cdot (1-h_{\theta}(\mathbf{x}^{(i)}))^{1-\mathbf{y}^{(i)}} \right]\ = \arg\max_{\theta}\sum_{i=1}^{n} \left[ \mathbf{y}^{(i)}\ln(h_{\theta}(\mathbf{x}^{(i)})) + (1-\mathbf{y}^{(i)})\ln(1-h_{\theta}(\mathbf{x}^{(i)})) \right]\ = \arg\min_{\theta} \left[ -\sum_{i=1}^{n} \left[ \mathbf{y}^{(i)}\ln(h_{\theta}(\mathbf{x}^{(i)})) + (1-\mathbf{y}^{(i)})\ln(1-h_{\theta}(\mathbf{x}^{(i)})) \right] \right]\ = \arg\min_{\theta}\mathscr{l}(\theta) \end{split}
$$
如果希望左对齐,例如
1\begin{split}
2&\ln h_{\theta}(\mathbf{x}^{(i)})
3= \ln\frac{1}{1+e^{-\theta^T \mathbf{x}^{(i)}}}
4= -\ln(1+e^{\theta^T \mathbf{x}^{(i)}})\\
5&\ln(1-h_{\theta}(\mathbf{x}^{(i)}))
6= \ln(1-\frac{1}{1+e^{-\theta^T \mathbf{x}^{(i)}}})
7= -\theta^T \mathbf{x}^{(i)}-\ln(1+e^{\theta^T \mathbf{x}^{(i)}})
8\end{split}
除了 \begin{split} \end{split},也可以用 \begin{align} \end{align},用法与 split 相同,对齐方式也相同;
只有一点不同:采用 align 环境会默认为每一条公式编号(如下例),split 则不会编号。
1\begin{align}
2&\ln h_{\theta}(\mathbf{x}^{(i)})
3= \ln\frac{1}{1+e^{-\theta^T \mathbf{x}^{(i)}}}
4= -\ln(1+e^{\theta^T \mathbf{x}^{(i)}})\\
5&\ln(1-h_{\theta}(\mathbf{x}^{(i)}))
6= \ln(1-\frac{1}{1+e^{-\theta^T \mathbf{x}^{(i)}}})
7= -\theta^T \mathbf{x}^{(i)}-\ln(1+e^{\theta^T \mathbf{x}^{(i)}})
8\end{align}
但可以在 align 后加一个 * 号,则 align 环境也可以取消公式自动编号,如下:
(也就是说 align* 和 split 的用法完全相同)
1\begin{align*}
2&\ln h_{\theta}(\mathbf{x}^{(i)})
3= \ln\frac{1}{1+e^{-\theta^T \mathbf{x}^{(i)}}}
4 = -\ln(1+e^{\theta^T \mathbf{x}^{(i)}})\\
5&\ln(1-h_{\theta}(\mathbf{x}^{(i)}))
6= \ln(1-\frac{1}{1+e^{-\theta^T \mathbf{x}^{(i)}}})
7 = -\theta^T \mathbf{x}^{(i)}-\ln(1+e^{\theta^T \mathbf{x}^{(i)}})
8\end{align*}
方程组
使用 \begin{cases} \end{cases}
例如:
1\begin{cases}
2\begin{split}
3p &= P(y=1|\mathbf{x})=
4\frac{1}{1+e^{-\theta^T\mathbf{X}}}\\
51-p &= P(y=0|\mathbf{x})=1-P(y=1|\mathbf{x})=
6\frac{1}{1+e^{\theta^T\mathbf{X}}}
7\end{split}
8\end{cases}
注意 LATEX 语法可以嵌套使用,上例即为 \begin{cases} \end{cases} 下嵌套了 \begin{split} \end{split}。
也可以将公式和文字结合起来,例如:
1\text{Decision Boundary}=
2\begin{cases}
3 1\quad \text{if }\ \hat{y}>0.5\\
4 0\quad \text{otherwise}
5\end{cases}
注:\quad 表示空格。
公式添加编号
在 LaTeX 中,可以通过 \tag{} 命令为公式自定义编号。以下是如何在 LaTeX 中为公式添加自定义编号的示例:
示例代码
1% 无编号公式
2
3$$
4
5\dot{V}(x) \leq -k_1 V(x)^{\frac{m}{n}} - k_2 V(x)^{\frac{r}{s}}
6
7$$
1
2% 自定义编号公式
3
4$$
5
6\dot{V}(x) \leq -k_1 V(x)^{\frac{m}{n}} - k_2 V(x)^{\frac{r}{s}} \tag{1.1}
7
8$$
1
2% 多行公式自定义编号
3
4\begin{align}
5
6\dot{V}(x) &\leq -k_1 V(x)^{\frac{m}{n}} - k_2 V(x)^{\frac{r}{s}} \tag{1.2} \\
7
8&\leq -k_1 V(x)^{\frac{m}{n}} \quad \text{(忽略次线性项)} \tag{1.3}
9
10\end{align}
11
12\end{document}
$$ \begin{align}
\dot{V}(x) &\leq -k_1 V(x)^{\frac{m}{n}} - k_2 V(x)^{\frac{r}{s}} \tag{1.2} \
&\leq -k_1 V(x)^{\frac{m}{n}} \quad \text{(忽略次线性项)} \tag{1.3}
\end{align} $$
说明
- 无编号公式:
- 使用
$$ ... $$或[equation*]环境可以创建无编号公式。 - 自定义编号公式:
- 使用
\tag{}命令可以为公式添加自定义编号,例如\tag{1.1}。 - 多行公式自定义编号:
- 在
align环境中,可以为每一行公式单独添加自定义编号。
注意事项
\tag{}命令会覆盖 LaTeX 自动生成的编号。- 如果需要在公式中引用自定义编号,可以使用
\label{}和\[eqref]{}结合的方式。
通过这种方式,可以灵活地为 LaTeX 公式添加自定义编号,满足特定文档的需求。