LaTeX - (一)简单入门

\(\LaTeX\) 介绍

如何安装 \(LaTeX\)

如何学习 \(\LaTeX\)

快速入门 \(\LaTeX\)

如何使用 \(\LaTeX\)

使用本地编辑器

怎么下载编辑器:OsbertWang/install-latex-guide-zh-cn: 一份简短的关于 LaTeX 安装的介绍 (github.com)

\(\TeX\) Live 指南

使用其他编辑器

选择合适的编辑器
Vim/Neovim
VS Code

使用在线编辑器

\(\LaTeX\) 编辑技巧

模板

宏包

各种宏包的作用

  • beamer: for presentations
  • todonotes: comments and TODO management
  • tikz: make amazing graphics
  • pgfplots: create graphs in $$
  • listings: source code printer for \(\LaTeX\)
  • spreadtab: create spreadsheets in \(\LaTeX\)
  • gchords, guitar: guitar chords and tabulature
  • cwpuzzle: crossword puzzles
  • geometry: 设置页面参数(页边距、页眉、页脚、纸张大小等)
  • multicol: 在一个页面中分多栏
  • fancyhdr: 改善页眉页脚样式的定义方式
  • AMS-LaTeX: 数学公式amsmath包

有关宏包的文档

\(\LaTeX\) 中如何输出中文

使用 CTeX 宏集(首选)

以 UTF-8 编码保存,使用 XeLaTeX 编译

1
2
3
4
\documentclass[UTF8]{ctexart}
\begin{document}
你好,world!
\end{document}

使用 xeCJK 宏包

使用XeLaTeX编译:

1
2
3
4
5
6
\documentclass{article}
\usepackage{xeCJK} %调用 xeCJK 宏包
\setCJKmainfont{SimSun} %设置 CJK 主字体为 SimSun (宋体)
\begin{document}
你好,world!
\end{document}

此种方式适用于有特定文档类型的情况,如 beamer。

文本模式

语法查询手册

数学公式查询手册:

上标,下标

图片

绘图
插入图片

数学模式(区别于文本模式)

以下部分片段选自一份其实很短的 LaTeX 入门文档 | 始终 (liam.page)

行间公式和行内公式

首先在导言区导入amsmath宏包,使用$...$插入行内公式,使用\[...\]插入不带编号行间公式,如果需要对行间公式进行编号,可以使用equation环境:

1
2
3
\begin{equation}
...
\end{equation}

虽然也有其他的方式实现上述的需求,但是相比之下,上面所使用的实现方式在语法上更为简洁,故采用。

行内公式也可以使用 \(...\) 或者 \begin{math} ... \end{math} 来插入,但略显麻烦。 无编号的行间公式也可以使用 \begin{displaymath} ... \end{displaymath} 或者 \begin{equation*} ... \end{equation*} 来插入,但略显麻烦。(equation* 中的 * 表示环境不编号),也有 plainTeX 风格的 $$ ... $$ 来插入不编号的行间公式。但是在 LaTeX 中这样做会改变行文的默认行间距,不推荐。

上下标

1
2
3
4
5
6
7
8
9
10
11
\documentclass{article}
\usepackage{amsmath}
\begin{document}
Einstein 's $E=mc^2$.

\[ E=mc^2. \]

\begin{equation}
E=mc^2.
\end{equation}
\end{document}

行内公式和行间公式对标点的要求是不同的:行内公式的标点,应该放在数学模式的限定符之外,而行间公式则应该放在数学模式限定符之内。

在数学模式中,需要表示上标,可以使用 ^ 来实现(下标则是 _)。它默认只作用于之后的一个字符,如果想对连续的几个字符起作用,请将这些字符用花括号 {} 括起来,例如:

1
\[ z = r\cdot e^{2\pi i}. \]

效果展示: \[ z = r\cdot e^{2\pi i} \]

根式与分式

根式用 \sqrt{·} 来表示,分式用 \frac{·}{·} 来表示(第一个参数为分子,第二个为分母)。

1
2
3
4
5
$\sqrt{x}$, $\frac{1}{2}$.  

\[ \sqrt{x}, \]

\[ \frac{1}{2}. \]

效果展示: \[ \sqrt{x}, \frac{1}{2} \]

可以发现,在行间公式和行内公式中,分式的输出效果是有差异的。如果要强制行内模式的分式显示为行间模式的大小,可以使用 \dfrac, 反之可以使用 \tfrac

在行内写分式,你可能会喜欢 xfrac 宏包提供的 \sfrac 命令的效果。

排版繁分式,你应该使用 \cfrac 命令。

运算符

一些小的运算符,可以在数学模式下直接输入;另一些需要用控制序列生成,如

1
2
\[ \pm\; \times \; \div\; \cdot\; \cap\; \cup\;
\geq\; \leq\; \neq\; \approx \; \equiv \]

效果展示: \[ \pm\; \times \; \div\; \cdot\; \cap\; \cup\; \geq\; \leq\; \neq\; \approx \; \equiv \]

连加、连乘、极限、积分等大型运算符分别用 \sum\prod\lim\int 生成。他们的上下标在行内公式中被压缩,以适应行高。我们可以用 \limits 和 \nolimits 来强制显式地指定是否压缩这些上下标。例如:

1
2
3
4
$ \sum_{i=1}^n i\quad \prod_{i=1}^n $
$ \sum\limits _{i=1}^n i\quad \prod\limits _{i=1}^n $
\[ \lim_{x\to0}x^2 \quad \int_a^b x^2 dx \]
\[ \lim\nolimits _{x\to0}x^2\quad \int\nolimits_a^b x^2 dx \]

效果展示: \[ \sum_{i=1}^n i\quad \prod_{i=1}^n \sum\limits _{i=1}^n i\quad \prod\limits _{i=1}^n \lim_{x\to0}x^2 \quad \int_a^b x^2 dx \lim\nolimits _{x\to0}x^2\quad \int\nolimits_a^b x^2 dx \]

多重积分可以使用 \iint\iiint\iiiint\idotsint 等命令输入。

1
\[ \iint\quad \iiint\quad \iiiint\quad \idotsint \]

效果展示: \[ \iint\quad \iiint\quad \iiiint\quad \idotsint \]

定界符(括号等)

各种括号用 ()[]\{\}\langle\rangle 等命令表示;注意花括号通常用来输入命令和环境的参数,所以在数学公式中它们前面要加 \。因为 LaTeX 中 | 和 \| 的应用过于随意,amsmath 宏包推荐用 \lvert\rvert 和 \lVert\rVert 取而代之。

为了调整这些定界符的大小,amsmath 宏包推荐使用 \big\Big\bigg\Bigg 等一系列命令放在上述括号前面调整大小。

有时你可能会觉得 amsmath 宏包提供的定界符放大命令不太够用。通常这意味着你的公式太过复杂。此时你应当首先考虑将公式中的部分提出去,以字母符号代替以简化公式。如果你真的想要排版如此复杂的公式,可以参考这篇博文

1
2
3
4
5
6
7
8
9
\[ \Biggl(\biggl(\Bigl(\bigl((x)\bigr)\Bigr)\biggr)\Biggr) \]
\[ \Biggl[\biggl[\Bigl[\bigl[[x]\bigr]\Bigr]\biggr]\Biggr] \]
\[ \Biggl \{\biggl \{\Bigl \{\bigl \{\{x\}\bigr \}\Bigr \}\biggr \}\Biggr\} \]
\[ \Biggl\langle\biggl\langle\Bigl\langle\bigl\langle\langle x
\rangle\bigr\rangle\Bigr\rangle\biggr\rangle\Biggr\rangle \]
\[ \Biggl\lvert\biggl\lvert\Bigl\lvert\bigl\lvert\lvert x
\rvert\bigr\rvert\Bigr\rvert\biggr\rvert\Biggr\rvert \]
\[ \Biggl\lVert\biggl\lVert\Bigl\lVert\bigl\lVert\lVert x
\rVert\bigr\rVert\Bigr\rVert\biggr\rVert\Biggr\rVert \]

效果展示: \[ \Biggl(\biggl(\Bigl(\bigl((x)\bigr)\Bigr)\biggr)\Biggr) \\ \Biggl[\biggl[\Bigl[\bigl[[x]\bigr]\Bigr]\biggr]\Biggr] \\ \Biggl \{\biggl \{\Bigl \{\bigl \{\{x\}\bigr \}\Bigr \}\biggr \}\Biggr\} \\ \Biggl\langle\biggl\langle\Bigl\langle\bigl\langle\langle x \rangle\bigr\rangle\Bigr\rangle\biggr\rangle\Biggr\rangle \\ \Biggl\lvert\biggl\lvert\Bigl\lvert\bigl\lvert\lvert x \rvert\bigr\rvert\Bigr\rvert\biggr\rvert\Biggr\rvert \\ \Biggl\lVert\biggl\lVert\Bigl\lVert\bigl\lVert\lVert x \rVert\bigr\rVert\Bigr\rVert\biggr\rVert\Biggr\rVert \]

省略号

略号用 \dots\cdots\vdots\ddots 等命令表示。\dots 和 \cdots 的纵向位置不同,前者一般用于有下标的序列。

1
2
\[ x_1,x_2,\dots ,x_n\quad 1,2,\cdots ,n\quad
\vdots\quad \ddots \]

效果展示: \[ x_1,x_2,\dots ,x_n\quad 1,2,\cdots ,n\quad \vdots\quad \ddots \]

矩阵

amsmath 的 pmatrixbmatrixBmatrixvmatrixVmatrix 等环境可以在矩阵两边加上各种分隔符。

1
2
3
4
5
\[ \begin{pmatrix} a&b\\c&d \end{pmatrix} \quad
\begin{bmatrix} a&b\\c&d \end{bmatrix} \quad
\begin{Bmatrix} a&b\\c&d \end{Bmatrix} \quad
\begin{vmatrix} a&b\\c&d \end{vmatrix} \quad
\begin{Vmatrix} a&b\\c&d \end{Vmatrix} \]

效果展示: \[ \begin{pmatrix} a&b\\c&d \end{pmatrix} \quad \begin{bmatrix} a&b\\c&d \end{bmatrix} \quad \begin{Bmatrix} a&b\\c&d \end{Bmatrix} \quad \begin{vmatrix} a&b\\c&d \end{vmatrix} \quad \begin{Vmatrix} a&b\\c&d \end{Vmatrix} \]

使用 smallmatrix 环境,可以生成行内公式的小矩阵。

1
Marry has a little matrix $ ( \begin{smallmatrix} a&b\\c&d \end{smallmatrix} ) $.

效果展示: \[ \text{Marry has a little matrix } ( \begin{smallmatrix} a&b\\c&d \end{smallmatrix} ) . \]

多行公式

有的公式特别长,我们需要手动为他们换行;有几个公式是一组,我们需要将他们放在一起;还有些类似分段函数,我们需要给它加上一个左边的花括号。

长公式

不对齐

无须对齐的长公式可以使用 multline 环境。

1
2
3
4
\begin{multline}
x = a+b+c+{} \\
d+e+f+g
\end{multline}

效果展示: \[ \begin{multline} x = a+b+c+{} \\ d+e+f+g \end{multline} \]

如果不需要编号,可以使用 multline* 环境代替。

对齐

需要对齐的公式,可以使用 aligned 次环境 来实现,它必须包含在数学环境之内。

1
2
3
4
\[\begin{aligned}
x ={}& a+b+c+{} \\
&d+e+f+g
\end{aligned}\]

效果展示: \[ \begin{aligned} x ={}& a+b+c+{} \\ &d+e+f+g \end{aligned} \]

公式组

无需对齐的公式组可以使用 gather 环境,需要对齐的公式组可以使用 align 环境。他们都带有编号,如果不需要编号可以使用带星花的版本。

1
2
3
4
5
6
7
8
\begin{gather}
a = b+c+d \\
x = y+z
\end{gather}
\begin{align}
a &= b+c+d \\
x &= y+z
\end{align}

效果展示:

请注意,不要使用 eqnarray 环境。原因可以参考:

分段函数

分段函数可以用cases次环境来实现,它必须包含在数学环境之内。

1
2
3
4
\[ y= \begin{cases}
-x,\quad x\leq 0 \\
x,\quad x>0
\end{cases} \]

效果展示: \[ y= \begin{cases} -x,\quad x\leq 0 \\ x,\quad x>0 \end{cases} \]

其他技巧

只查看出错的代码

使用工具宏包syntonly,加载这个宏包之后,在导言区使用\syntonly命令,可以使得LaTeX编译后不生成DVI或者PDF文档,只排查错误,编译速度会快不少:

1
2
\usepackage{syntonly}
\syntonly

如果想生成文档,用%注释掉syntonly命令就可以。

优化代码环境

LaTeX原生支持代码环境verbatim,verbatim宏包优化了verbatim环境的内部命令,并提供了\verbatiminput命令用来直接读入文件生成代码环境。fancyvrb宏包提供了可定制格式的Verbatim环境;listings宏包更进一步,可生成关键字高亮的代码环境,支持各种程序设计语言的语法和关键字。

附录

在哪里可以找到资源

相关的博客

有关的介绍

有关的书籍

一份(不太)简短的 LATEX 2ε 介绍:

社区

有用的工具

相关的课程


LaTeX - (一)简单入门
https://chen-huaneng.github.io/2024/10/16/2024-10-16-2024-10-16-latex/
作者
Abel
发布于
2024年10月16日
更新于
2024年10月28日
许可协议