LaTex学习笔记
垂直间距
果我们想要人为地增加段落之间的垂直间距,可以在两个段落之间的位置使用 \vspace
命令:
A paragraph.
\vspace{2ex}
Another paragraph.
\vspace 也可用\stretch 设置无限延伸的垂直长度。
在段落内的两行之间增加垂直间距,一般通过给断行命令 \\ 加可选参数,如 \\[6pt] 或
\\*[6pt]。\vspace 也可以在段落内使用,区别在于 \vspace 只引入垂直间距而不断行。
- \stretch{⟨n⟩} 生成一个特殊弹性长度,参数 ⟨n⟩ 为权重。
它的基础长度为 0pt,但可以无限延伸,直到占满可用的空间。如果同一行内出现多
个 \stretch{⟨n⟩},这一行的所有可用空间将按每个 \stretch 命令给定的权重 ⟨n⟩ 进行分配。
对齐环境
center、flushleft 和 flushright 环境分别用于生成居中、左对齐和右对齐的文本环境。
\begin{center} … \end{center}
\begin{flushleft} … \end{flushleft}
\begin{flushright} … \end{flushright}
除此之外,还可以用命令直接改变文字的对齐方式
\centering
\raggedright
\raggedleft
设置字体和字号
latexe设置了两组命令来修改字体和字号,全局生效,如果是想要局部生效,就要
使用{ }分组。也就是写成 {\bfseries ⟨sometext⟩} 这样的形式。值得注意的是,文本中的
字体控制和公式中的字体控制不大一样。
LATEX 还提供了一个基础的命令 \fontsize 用于设定任意大小的字号:
\fontsize{⟨size⟩}{⟨base line-skip⟩}
\fontsize 用到两个参数,⟨size⟩ 为字号,⟨base line-skip⟩ 为基础行距。表 5.3 中的命令也
都各自设定了与字号对应的基础行距,大小为字号的 1.2 倍。如果不是在导言区,\fontsize 的
设定需要 \selectfont 命令才能立即生效,而表 5.2 的字号设定都是立即生效的。
行距
\fontsize 命令可以为字号设定对应的行距,但我们很少那么用。更常用的办法是在导
言区使用 \linespread 命令。
\linespread{⟨factor⟩} #factor表示 1.2*factor
缺省的基础行距是 1.2 倍字号大小(参考 \font-size 命令),因此使用 \linespread{1.5} 意
味着最终行距为 1.8 倍的字号大小。
导言区是全局修改,局部修改的话:需要用 \selectfont 命令使 \linespread 命令的改
动立即生效:
{\linespread{2.0}\selectfont The baseline skip is set to be twice the normal baseline skip. Pay attention to the \verb|\par| command at the end. \par}
水平间距
LATEX 默认为将单词之间的“空格”转化为水平间距。如果需要在文中手动插入额外的水平
间距,可使用 \hspace 命令:
This\hspace{1.5cm}is a space of 1.5 cm.
可以结合 \stretch{⟨n⟩}命令使用。
如果同一行内出现多个 \stretch{⟨n⟩},这一行的所有可用空间将按每个 \stretch 命令给定
的权重 ⟨n⟩ 进行分配。
在正文中用 \hspace 命令生成水平间距时,往往使用 em 作为单位,生成的间距随字号大
小而变。我们在数学公式中见过 \quad 和 \qquad 命令,它们也可以用于文本中,分别相当于
\hspace{1em} 和 \hspace{2em}
参考文献用法
简单的thebibliography环境,每条参考文献由\bibitem开头,其后是参考文献本身的内容:
\begin{thebibliography}{⟨widest label⟩}
\bibitem[⟨item number⟩]{⟨citation⟩} ...
\end{thebibliography}
其中[⟨item number⟩]是可选的编号,不填便是默认的编号(奇怪的是默认编号走不动?){⟨citation⟩}就是引用了,别名。
当然还有其他的参考文献用法,之后补充bib方法
参见:https://www.cnblogs.com/PiaYie/p/13777446.html
数学公式排版
首先说说数学模式:
用户使用 $ 开启行内公式输入,或是使用 \[ 命令、equation 环境时,LATEX 就进入了
数学模式。
数学模式相比于文本模式有以下特点:
- 数学模式中输入的空格被忽略。数学符号的间距默认由符号的性质(关系符号、运算符等)
决定。需要人为引入间距时,使用 \quad 和 \qquad 等命令。
- 不允许有空行(分段)。行间公式中也无法用 \\ 命令手动换行。排版多行公式需要用到各种环境(下面会介绍部分,详见4.4多行公式)
-
所有的字母被当作数学公式中的变量处理,字母间距与文本模式不一致,也无法生成单词
之间的空格。如果想在数学公式中输入正体的文本,简单情况下可用 4.7.1 小节中提供的
\mathrm 命令。或者用 amsmath 提供的 \text 命令,举例:
$x^{2} \geq 0 \qquad \text{for \textbf{all} } x\in\mathbb{R}$
输出:
=======================分割线=========================
AMS宏包 \usepackage{amsmath}
第一,行间公式:
由equatio环境包裹的在一行的公式,例如
The Pythagorean theorem is $a^2 + b^2 = c^2$.
输出:
值得注意的是,行间公式如果使用equation环境(或者是$...$),会自动给公式生成一个编号,
这个编号可以用\ref或者\label生成交叉引用。需要用到它的时候,使用amsmath包的\eqref命令。
amsmath贴心地给交叉引用加上了圆括号()!!!
举例:
The Pythagorean theorem is: \begin{equation} a^2 + b^2 = c^2 \label{pythagorean} \end{equation} Equation \eqref{pythagorean} is called `Gougu theorem' in Chinese.
输出:
注:会有这么几种情况,
1-自动编号不想要,我要手动给他编号:使用\tag命令
2-使用\notag命令取消给公式编号
3-如果需要直接使用不带编号的行间公式,方便地使用\[ 和\]包裹,即等效{displaymath}环境,或者{equation*}环境
\begin{equation*} a^2 + b^2 = c^2 \end{equation*} For short: \[ a^2 + b^2 = c^2 \] Or if you like the long one: \begin{displaymath} a^2 + b^2 = c^2 \end{displaymath}
输出:
第二,数学符号:
-
一般符号
希腊字母符号: 要想写出希腊字母,直接使用公式 \某希腊字母的名字 即可,分为大写字母和小写字母
如 α (\alpha)、β (\beta) 等等。大写的希腊字母为首字母大写的命令,如 Γ (\Gamma)、∆ (\Delta) 等等。
无穷大符号为 ∞ (\infty),更多参考如下:
省略号: latex中的省略号有. . . (\dots) 和 · · · (\cdots) 两种形式,各自用途明确:
$a_1, a_2, \dots, a_n$ \\
$a_1 + a_2 + \cdots + a_n$
输出:
注意\dots 和 \dots是完全一致的既能用在公式中,也用来在文本里作为省略号
甚至有时候,我们会用到斜的省略号或者竖的省略号: 斜排的 ... (\ddots)和竖排的 (→自己想象ha!←) (\vdots) 。
-
指数上下标和导数
latex中的上下标需要用到这个符号^(上标符号)和_(下标符号)后面接一个域用{ }包含。否则上下标只对后面的一个符号起作用。
导数'(’)是特殊的上标,直接在符号后面使用,可以连用多个表示多阶导数。
$f(x) = x^2 \quad f'(x) = 2x \quad f''^{2}(x) = 4$
输出:
P.S. latex中建议只在公式中插入少量文字,用 \text命令, 但是如果要在很多文字中使用公式,就要像正常的行内公式那样使用
-
分式和根式
\frac{分子}{分母} 是分式的书写方式,(注意:分式的大小在行间是正常大小,在某一行中就会被压缩
命令 \dfrac 和 \tfrac 用来在 行内显示正常大小的分式 和 行间显示被压缩的分式
\sqrt{...} 一般根式
\sqrt[n]{...} n次方根的写法
(当然,这些都要在公式中)
P.S. 特殊的分式,如二项式结构,需要用到宏包 \binom
Pascal's rule is \[ \binom{n}{k} =\binom{n-1}{k} + \binom{n-1}{k-1} \]
输出:
-
关系符号
直接输入:= 、>、<
公式输入:\ne 不等号≠、\ge 大于等于号≥、\le小于等于号≤、\approx 约等号≈、\equiv 等价符号≡、 \propto 正比符号 、\sim 相似符号
一种自定义的二元关系符,将一个符号叠加在另一个符号之上:\stackrel
举例:
\[ f_n(x) \stackrel{*}{\approx} 1 \]
输出:
-
其他二元关系符:
-
算符
大多数都是二元运算符,
直接输入:+、-、*、/
命令输入:\times 乘号×、\div 除号÷、\cdot 点乘 · 、\pm 加减号±、\mp 减加号
常用特殊算符:∇ (\nabla) 和 ∂ (\partial)
更多符号参考:
特别的,在latex中将数学函数的名称作为一个算符排版,字体为直立字体
栗子:
\[ \lim_{x \rightarrow 0} \frac{\sin x}{x}=1 \]
输出:
还有,求模表达式,
\bmod 类似于一个二元运算符 $a\bmod b $ 即 a mod b
\pmod 是同余表达式的后缀 $x\equiv a \pmod{b} $ 即 x ≡ a (mod b)
P.S. 如果这些算符还不够,可以尝试自己定义运算符,使用amsmath宏包中的 \DeclareMathOperator{代号}{书写方式}
栗子:(带星号的 \DeclareMathOperator* )是为了定义带上下限的运算符
\DeclareMathOperator{\argh}{argh} \DeclareMathOperator*{\nut}{Nut} \[\argh 3 = \nut_{x=1} 4x\]
输出:
-
巨算符
顾名思义,巨算符就是看起来比较 巨大 的算符,如积分符号(\int) 和 求和符号(\sum)
值得注意的是,巨算符在行内和行间的大小是不一样的
例子:
In text: $\sum_{i=1}^n \quad \int_0^{\frac{\pi}{2}} \quad \oint_0^{\frac{\pi}{2}} \quad \prod_\epsilon $ \\ In display: \[\sum_{i=1}^n \quad \int_0^{\frac{\pi}{2}} \quad \oint_0^{\frac{\pi}{2}} \quad \prod_\epsilon \]
输出:
巨算符一般都有写明上下标,有时候在上下方,有时候在右上下方,怎么控制?当然是使用控制命令:
\limits 上标位于上下方
\nolimits 上标位于右上下方
栗子:
In text: $\sum\limits_{i=1}^n \quad \int\limits_0^{\frac{\pi}{2}} \quad \prod\limits_\epsilon $ \\ In display: \[\sum\nolimits_{i=1}^n \quad \int\limits_0^{\frac{\pi}{2}} \quad \prod\nolimits_\epsilon \]
输出:
有时候我们需要在下限位置书写多行的表达式,这时:amsmath 宏包还提供了 \substack,
subarray 环境更进一步,令多行表达式可选择居中 (c) 或左对齐 (l)。
栗子:
\[ \sum_{\substack{0\le i\le n \\ j\in \mathbb{R}}} P(i,j) = Q(n) \] \[ \sum_{\begin{subarray}{l} 0\le i\le n \\ j\in \mathbb{R} \end{subarray}} P(i,j) = Q(n) \]
输出:
-
数学重音和上下括号
有时候我们要用到求导、向量、和物理算符等,需要在符号之上 加个标志:
比如求导符号 ˙r (\dot{r})、¨r (\ddot{r})、表示向量的箭头 ⃗r (\vec{r}) 、表示单位向量的符号 ˆe (\hat{\mathbf{e}}) 等
更多参考:
特别的,使用的时候要注意重音的作用区域!一般是对某个符号使用重音而不是对“符号加下标”使用重音。
如果要为多个符号加重音,
直线:\overline 和 \underline 命令(可叠加使用)
\hat{}、宽重音符号 \widehat{}
箭头:\overrightarrow
栗子:
$0.\overline{3} = \underline{\underline{1/3}}$ \\[5pt] $\hat{XY} \qquad \widehat{XY}$\\[5pt] $\vec{AB} \qquad \overrightarrow{AB}$
输出:
更多参考:
有时候我们会使用到上下括号:
\overbrace 和 \underbrace 命令用来生成上/下括号,各自可带一个上/下标公式。
栗子:
$\underbrace{\overbrace{(a+b+c)}^6 \cdot \overbrace{(d+e+f)}^7} _\text{meaning of life} = 42$
输出:
-
箭头
常用的箭头:左右箭头 \rightarrow (→,或 \to)、\leftarrow(←,或 \gets)
有时候我们希望在箭头上写下一些表达式,而且看起来饱满,需要使用amsmath 的 \xleftarrow 和 \xrightarrow 命令,
提供了长度可以伸展的箭头,并且可以为箭头增加上下标
栗子:
\[ a\xleftarrow{x+y+z} b \]
\[ c\xrightarrow[x<y]{a*b*c}d \]
输出:
更多箭头使用参见:
-
括号和定界符
latex提供多种括号来表示公式块的边界,如小括号 ()、中括号 []、
大括号 {}(\{ \})、
尖括号 ⟨⟩ (\langle \rangle)等
更多参见:
注意:技巧来了,在使用定界符或者括号的时候,可以在这一对定界符之前,分别加上
\left 和 \right, 效果是什么,自动匹配大小,是不是很牛逼!!!!!
还有,\left 和 \right必须成对使用,如果你非得使用一个定界符,那么另一边的定界符号
用\left. 和 \right. 代替.
栗子:
\[1 + \left(\frac{1}{1-x^{2}} \right)^3 \qquad \left.\frac{\partial f}{\partial t} \right|_{t=0}\]
输出:
人的欲望总是难以满足,这样也好,会赚钱的人就能赚到一辈子都赚不到的钱.
有时候我们不满足于使用\left 和 \right 自动匹配得到的(不美的)定界符, 简单, 我们手动调整就好了,
使用 \big \bigg 命令来生成固定大小的定界符
(显著的优点:使用\left和\right定界符包裹的公式快是不允许换行的,而使用\big \bigg 命令却没有这种限制)
常用的用法是 (即在固定大小命令后增加书写符号,左边关键词l, 右边关键词r), 而且这些不必成对出现
\left ====> \bigl( \Bigl( \biggl( \Biggl(
\right ====>bigr\} \Bigr\} \biggr\} \Biggr\}
栗子:
$\Bigl((x+1)(x-1)\Bigr)^{2}$\\ $\bigl( \Bigl( \biggl( \Biggl( \quad \bigr\} \Bigr\} \biggr\} \Biggr\} \quad \big\| \Big\| \bigg\| \Bigg\| \quad \big\Downarrow \Big\Downarrow \bigg\Downarrow \Bigg\Downarrow$
输出:
第三: 多行公式
-
长公式折行
原则上尽量避免写出需要折行的一行公式, 有时候情非得已就这样,
使用amsmath 宏包的 multline 环境,允许使用 \\ 来折行
multline 环境下将公式编号放在最后一行。多行公式的首行左对齐,末行右对齐,其余行居中。
公式的最后一行不写 \\,如果写了,反倒会产生一个多余的空行。
栗子:
\begin{multline} a + b + c + d + e + f + g + h + i \\ = j + k + l + m + n\\ = o + p + q + r + s\\ = t + u + v + x + z \end{multline}
输出:
p.s. equation*,multline* 环境排版不带编号的折行长公式。
-
多行公式
前面讲了multline环境下的对齐方式,但是更多的时候,我们想要的是:
罗列一连串公式,然后按照等号对齐,
使用align环境+ &分隔符实现
作用:将公式分割为两个部分并对齐,分隔符&常放在等号的左边
栗子:
\begin{align} a & = b + c \\ & = d + e \end{align}
输出:
离谱的是, algin会给每一行公式都编上号码, 不要慌, 我能可以用 \notag命令去掉某行的编号,像这样:
注:这里在等号后面使用{}原因是,希望产生正常的间距,空格不被吞掉 对齐分隔符用在等号右侧, 细品
\begin{align} a ={} & b + c \\ ={} & d + e + f + g + h + i + j + k + l \notag \\ & + m + n + o \\ ={} & p + q + r + s \end{align}
输出:
神奇的是, align 还能够对齐多组公式,除等号前的 & 之外,公式之间也用 & 分隔
栗子:
\begin{align} a &=1 & b &=2 & c &=3 \\ d &=-1 & e &=-2 & f &=-5 \end{align}
输出:
当然, 如果我们只需要简单地罗列公式,而不必考虑对齐, 那么就是
使用gather环境
栗子:
\begin{gather} a = b + c \\ d = e + f + g \\ h + i = j + k \notag \\ l + m = n \end{gather}
输出:
gather环境下, 就是multline环境 的除去对齐效果的删减版
P.S. align 和 gather 有对应的不带编号的版本 align* 和 gather*。
-
公用编号的多行公式
我们有时候需要为多个公式只匹配一个编号, 编号位于公式的居中位置, 怎么办呢?
使用 amsmath 宏包: equation 环境 +(套用) aligned、gathered 等环境 <禁止套娃>
栗子:
\begin{equation} \begin{aligned} a &= b + c \\ d &= e + f + g \\ h + i &= j + k \\ l + m &= n \end{aligned} \end{equation}
输出:
p.s. split 环境和 aligned 环境用法类似,也用于和 equation 环境套用,区别是 split 只能
将每行的一个公式分两栏,aligned 允许每行多个公式多栏。
第四: 数组和矩阵
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· PPT革命!DeepSeek+Kimi=N小时工作5分钟完成?
· What?废柴, 还在本地部署DeepSeek吗?Are you kidding?
· 赶AI大潮:在VSCode中使用DeepSeek及近百种模型的极简方法
· DeepSeek企业级部署实战指南:从服务器选型到Dify私有化落地