LaTex学习
前言
偶然想起来已经说了很久要学LaTex然而一直没什么动静了,被问到如何在上标里放下标
,本以为是x^R~n~^
结果在markdown里打出来是xR~n~
淦,markdown的上下标似乎不能嵌套。
好的,那么趁机学学LaTex好了。先摆出效果图:
文章目录
理解和运用
以下内容主要参考Markdown中写数学公式[2]和Markdown下LaTeX公式、编号、对齐[3]以及CSDN Markdown 公式指导手册[4]
块级(block)公式/行内(inline)公式
LaTex都会用$包裹起来。比如$$……$$
和$……$
,区别在于$$是块级公式,会独占一行,例如
而$是行内公式,例如不会换行。
PS:这里额外提醒使用typora的小伙伴,你们会发现当你们键入$$E=mc^2$$
的时候并不能打出换行的效果,看起来和行内的没有任何区别,这是typora处理上略微不同的地方(我比较认可),引用一下一位博主讲如何在typora里使用块级公式[1]
- 点击“段落”—>“公式块”
- 快捷键Ctrl+Shift+m
- “$$”+回车
试了便明白,对于typora来说会有这样的公式编辑界面(还会实时提示公式错误)
本质上说,typora只是强制要求$$之间必须以单一换行符隔开,因为$$语义上本身便是换行公式,这样保证了代码的可读性(md本身算代码这没毛病吧?)
后面的内容我都将分别以源公式和效果展示。
随便一个公式
$$y=ax+b$$
公式上下标及移至正上下方
^
符号表示上标,_
表示下标,上下标可以相互嵌套。
上下标仅支持一个内容,用{}
包裹可以将一多个内容作为一个整体
$y=a^x$
$y=x_1+x_2$
$y=a_1^x$
$y=a^{x_1+x_2^2}$
如果需要将上下标移至正上方或者正下方则依然是_{}
和^{}
,不过需要使用/limit_{}
或/limit^{}
,如果同时有上下只需要一个\limits
在前面即可。
下面拿取极限和求和的情况演示:
$\lim\limits_{x\to c}f(x)$
$\sum\limits_{i=1}^{n}a_i+b_i$
以上公式如果使用块级公式,则不需要加\limits
,LaTex会将上下标自动调整到正上方正下方
括号、绝对值和范式、向上向下取整
()
,[]
都是表示自己,但是{}
在LaTex里有特殊作用,用\lbrace
和\rbrace
表示。\langle
对应 ,\rangle
对应。
绝对值的竖线还是|
,不过范式的双竖线是\|
。
$$f(x, y) = 100 * \lbrace[(|x| + y + \|z\|) * 3] - 5\rbrace$$
如果需要让括号变大,不管是()
,[]
,{},
直接在符号前面加\left
,\right
即可。
$$
f(x,y,z) = 3y^2z \left( 3+\frac{7x+5}{1+y^2} \right)
$$
哦还有两个括号,向上和向下取整
$$
\lfloor x\rfloor+\lceil x\rceil
$$
分数
有\frac{分子}{分母}
和\cfrac{分子}{分母}
,二者区别在于后者会把这一行撑开,不会太挤。
$\frac{x^{a_1}+3}{3}$
$\cfrac{x^{a_1}+3}{3}$
不带c 会适应这一行
带c 会把这一行撑开
便捷情况可直接输入\cfrac ab
来快速生成一个
开方
开方使用\sqrt[次数]{被开方数}
这样的语法
$\sqrt[4]{16}$
$\sqrt{x+5}$
矢量
$$
\vec{a}\cdot\vec{b}
$$
积分与极限
积分
使用\mathrm{d}
让微分符号d
“竖起来”。
积分的上下限默认使用上下标。
$$
\int_{-\infty}^{+\infty}{x^2}\mathrm{d}x
$$
而对重积分,二重积分是\iint
,三重积分是\iint
,以此类推,更多重可以使用\idotsint
。
由于重积分的上下限由往往不再是上下限,而是集合形式在积分符号正下方,故需要使用\limits_
,对于上方则是\limits^
$\iint\limits_{(x,y)\in D}{f(x,y)}\mathrm{d}x\mathrm{d}y$
极限
使用\lim
输入取极限符号,其趋近箭头是\to
,整体需要使用\limits_{}
,将下标移至正下方(注:如果是块级公式可以不用\limits_{}
,直接使用下标_
即可)。
$$
\lim\limits_{n\to+\infty} \cfrac{1}{n(n+1)}
$$
求和与求积
使用\sum
,\prod
分别表示求和与求积,上下标同样使用\limits_{}
和\limits^{}
移动至正上方/正下方
$\sum\limits^n_{i=1}i\times (i+1)$
$\prod\limits^n_{i=1}\cfrac{i}{(i+1)}$
特殊符号、函数
符号 | LaTex | |
---|---|---|
所有 | \forall |
|
存在 | \exist |
|
无穷 | \infty |
|
我也不知道叫什么 | \hat{x} |
|
角 | \angle |
|
度 | 30^\circ |
|
正负 | \pm |
|
点乘 | \cdot |
|
大于等于 | \geq |
|
小于等于 | \leq |
|
约等于 | \approx |
|
不等于 | \neq |
|
普朗克常量 | \hbar |
|
积分 | \int |
|
重积分 | \iint |
|
三重积分 | \iiint |
|
多重积分 | KaTeX parse error: Expected 'EOF', got '\idotsint' at position 1: \̲i̲d̲o̲t̲s̲i̲n̲t̲ | \idotsint |
环路积分 | \oint | |
乘 | \times |
|
除 | \div |
|
正弦函数 | \sin |
|
余弦函数 | \cos |
|
自然对数函数 | \ln |
|
对数函数 | \log |
|
以10为底的对数函数 | \lg |
|
属于 | \in |
|
不属于 | \notin |
|
真子集 | \subset |
|
子集 | \subseteq |
|
真子集 | \supset |
|
子集 | \supseteq |
|
以上加非 | \not\subset |
|
\not\subseteq |
||
\not\supset |
||
\not\supseteq |
||
空集 | \emptyset |
|
空集 | \varnothing |
|
并集 | \bigcup |
|
交集 | \bigcap |
|
析取 | \bigvee |
|
合取 | \bigwedge |
|
以上去掉\big 会变小 |
||
逻辑非 | \neg |
|
蕴含 | \rightarrow |
|
双条件 | \leftrightarrow |
|
推出 | \Rightarrow |
|
等价 | \Leftrightarrow |
|
因为 | \because |
|
所以 | \therefore |
希腊字母什么的我就不摘上来了,给参考链接比较方便(用的不多主要是)
MarkDown 中使用 LaTeX 数学式-希腊字母[5]
集合
直接看上面的表吧,集合主要就是这些运算符号啦
矩阵
矩阵排版主要是需要矩阵的环境:使用\begin{环境}
,使用&
对齐,&
表示一列。
一般矩阵环境如下:
- matrix:无
- bmatrix:方括号
- vmatrix:竖线
- pmatrix:圆括号
- Bmatrix:花括号
- Vmatrix:双竖线
举例:
$$
\begin{matrix}
1&2&1\\
-1&0&-5\\
1&1&3
\end{matrix}
$$
其他的如下表格:
环境 | 解释 | 效果 |
---|---|---|
matrix | 无 | |
bmatrix | 方括号 | |
vmatrix | 竖线 | |
pmatrix | 圆括号 | |
Bmatrix | 花括号 | |
Vmatrix | 双竖线 |
公式标签(序号)和引用
公式标签是指公式右边括号里的内容。
手动编号
$$
y=ax+b\tag{a}
$$
自动编号
其实可以看到,从上面第一个块级公式开始,后面就有个小尾巴表示其编号,这是自动编号,仅适用块级公式。一般比起手动编号,自动编号更易于维护。(不然你修改的时候前面插一个公式进来,后面的序号都得手动改)
$$
\begin{equation}
y=ax+b
\end{equation}
$$
KaTeX parse error: No such environment: equation at position 8: \begin{̲e̲q̲u̲a̲t̲i̲o̲n̲}̲ y=ax+b \end{eq…
这里要注意的是,在markdown下扩展的LaTex里,一处有\begin{equation} ...\end{equation}
就相当于处处都有(即块级公式处处都会自动编号)
如果想要取消特定块级公式的编号,用euqation*
$$
\begin{equation*}
y=ax+b
\end{equation*}
$$
KaTeX parse error: No such environment: equation at position 8: \begin{̲e̲q̲u̲a̲t̲i̲o̲n̲}̲ y=ax+b \end{eq…
公式引用
公式引用很方便,但是需要给其一个标签(label)\label{eq:公式名}
$$
y=ax+b\label{eq:linear}
$$
KaTeX parse error: Expected 'EOF', got '\label' at position 8: y=ax+b\̲l̲a̲b̲e̲l̲{eq:linear}
然后可以在行内公式里使用标签即可引用\eqref{eq:公式名}
公式$\eqref{eq:linear}$很重要
公式KaTeX parse error: Expected 'EOF', got '\eqref' at position 1: \̲e̲q̲r̲e̲f̲{eq:linear}很重要
注意,块级公式也可以使用引用,只是一般引用公式的时候在文字使用的较多。
块级公式换行与对齐
如果块级公式想要换行怎么办?
多公式的换行与对齐
Latex中的换行是\\
,而equation
环境默认是单个公式,所以强制换行会导致使用的多行公式只有一个编号,而且这个编号还是在首行,非常丑。比如:
想要把多个公式放在一起,推荐使用align
环境(同样加*可以避免编号),使用\\
换行。
对齐的规则是:把&当作列分隔符(一条竖线),LaTeX将每行&前面的部分对齐(默认每行结尾有一个&),具体可以参考下面的公式和图
$$
\begin{align}
y&=a^x \\
y&=x_1+x_2\\
y&==a^{x_1+x_2^2}\\
a+b=b+a\label{eq:test1}\\
&&a\times b=b\times a\label{eq:test2}\\
&a\times b=b\times a\label{eq:test3}
\end{align}
$$
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ y&=a^x \\ y&=x…
比如最后公式KaTeX parse error: Expected 'EOF', got '\eqref' at position 1: \̲e̲q̲r̲e̲f̲{eq:test1}是默认结尾的&
作为其第一个对齐符号,与其余公式的第一个&
的前部分(y)对齐。
公式KaTeX parse error: Expected 'EOF', got '\eqref' at position 1: \̲e̲q̲r̲e̲f̲{eq:test2}则是有两个&
,对应上面公式的两个&
对齐,公式KaTeX parse error: Expected 'EOF', got '\eqref' at position 1: \̲e̲q̲r̲e̲f̲{eq:test3}只有一个&
在最前面。
单公式的换行与对齐
单公式就很简单了,直接使用在equation的环境下嵌套split
环境+\\
来换行,注意,如果不加equation的环境是没法编号的。
和上面&
对齐同理
$$
\begin{equation}
\begin{split}
\cos2x&=\cos^2x-\sin^2x\\
&=2\cos^2x-1\\
&=1-2sin^2x
\end{split}
\end{equation}
$$
KaTeX parse error: No such environment: equation at position 8: \begin{̲e̲q̲u̲a̲t̲i̲o̲n̲}̲ \begin{split} …
其他操作
据说加上/large
,/small
可以调整大小。
参考资料
[1] 使用Typora添加数学公式
[2] Markdown中写数学公式