LaTeX - (一)简单入门
\(\LaTeX\) 介绍
如何安装 \(LaTeX\)
如何学习 \(\LaTeX\)
快速入门 \(\LaTeX\) :
如何使用 \(\LaTeX\)
使用本地编辑器
怎么下载编辑器:OsbertWang/install-latex-guide-zh-cn: 一份简短的关于 LaTeX 安装的介绍 (github.com)
\(\TeX\) Live 指南
使用其他编辑器
选择合适的编辑器
- Comparison of TeX editors - Wikipedia
- 有哪些好的 LaTeX 编辑器? - 知乎 (zhihu.com)
- big list - LaTeX Editors/IDEs - TeX - LaTeX Stack Exchange
Vim/Neovim
- Vim-Latex download | SourceForge.net
- Turbocharged LaTeX using Vim/Neovim, VimTeX, and snippets | ejmastnak
- Neovim - 简单入门 - Abel's Blog (chen-huaneng.github.io)
VS Code
- OsbertWang/latex-editor-sumatrapdf: 记录一下一些 LaTeX 编辑器如何配合 sumatrapdf (github.com)
- EthanDeng/vscode-latex: LaTeX 编译环境配置:Visual Studio Code 配置简介 (github.com)
- Home · James-Yu/LaTeX-Workshop Wiki (github.com)
- 搭建 LaTeX 舒适写作环境(VSCode) - 知乎 (zhihu.com)
- Visual Studio Code (vscode)配置LaTeX - 知乎 (zhihu.com)
- 使用VSCode编写LaTeX - 知乎 (zhihu.com)
使用在线编辑器
- Overleaf, Online LaTeX Editor
- 在线LaTeX公式编辑器-编辑器 (latexlive.com)
- Online LaTeX Equation Editor - create, integrate and download (codecogs.com)
- TeXPage - LaTeX 在线编辑器 | LaTeX 在线编译
- Equation Editor for online mathematics - create, integrate and download (codecogs.com)
- Online Latex Equation Editor - Sciweavers
\(\LaTeX\) 编辑技巧
模板
- 【LaTeX】自用简洁模板(三):课程笔记 - 知乎 (zhihu.com)
- Wandmalfarbe/pandoc-latex-template: A pandoc LaTeX template to convert markdown files to PDF or LaTeX. (github.com)
- latexstudio-org/mcmthesis: LaTeX2e Template designed for MCM/ICM (github.com)
- F5Soft/xmu-template: 厦门大学本科毕业论文 LaTeX 模版和毕业答辩幻灯片 LaTeX 模版 (github.com)
宏包
各种宏包的作用
- 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公式.pdf (reformship.github.io) - 中文版数学公式速查手册
- short-math-guide.pdf (kddilabs.jp) - 英文版数学公式速查手册
有关宏包的文档
- Examples - Equations, Formatting, TikZ, Packages and More - Overleaf, Online LaTeX Editor
- Examples - Equations, Formatting, TikZ, Packages and More - Overleaf, Online LaTeX Editor
- The CTAN archive (sustech.edu.cn) - 基本上所有的宏包都能在这里和其他镜像站点找到
在 \(\LaTeX\) 中如何输出中文
使用 CTeX 宏集(首选)
以 UTF-8 编码保存,使用 XeLaTeX 编译:
1 |
|
使用 xeCJK 宏包
使用XeLaTeX编译:
1 |
|
此种方式适用于有特定文档类型的情况,如 beamer。
文本模式
语法查询手册
数学公式查询手册:
上标,下标
图片
绘图
插入图片
数学模式(区别于文本模式)
以下部分片段选自一份其实很短的 LaTeX 入门文档 | 始终 (liam.page)。
行间公式和行内公式
首先在导言区导入amsmath
宏包,使用$...$
插入行内公式,使用\[...\]
插入不带编号行间公式,如果需要对行间公式进行编号,可以使用equation
环境:
1 |
|
虽然也有其他的方式实现上述的需求,但是相比之下,上面所使用的实现方式在语法上更为简洁,故采用。
行内公式也可以使用 \(...\)
或者 \begin{math} ... \end{math}
来插入,但略显麻烦。
无编号的行间公式也可以使用 \begin{displaymath} ... \end{displaymath}
或者 \begin{equation*} ... \end{equation*}
来插入,但略显麻烦。(equation*
中的 *
表示环境不编号),也有
plainTeX 风格的 $$ ... $$
来插入不编号的行间公式。但是在
LaTeX 中这样做会改变行文的默认行间距,不推荐。
上下标
1 |
|
行内公式和行间公式对标点的要求是不同的:行内公式的标点,应该放在数学模式的限定符之外,而行间公式则应该放在数学模式限定符之内。
在数学模式中,需要表示上标,可以使用 ^
来实现(下标则是 _
)。它默认只作用于之后的一个字符,如果想对连续的几个字符起作用,请将这些字符用花括号 {}
括起来,例如:
1 |
|
效果展示: \[ z = r\cdot e^{2\pi i} \]
根式与分式
根式用 \sqrt{·}
来表示,分式用 \frac{·}{·}
来表示(第一个参数为分子,第二个为分母)。
1 |
|
效果展示: \[ \sqrt{x}, \frac{1}{2} \]
可以发现,在行间公式和行内公式中,分式的输出效果是有差异的。如果要强制行内模式的分式显示为行间模式的大小,可以使用 \dfrac
,
反之可以使用 \tfrac
。
在行内写分式,你可能会喜欢
xfrac
宏包提供的\sfrac
命令的效果。
排版繁分式,你应该使用
\cfrac
命令。
运算符
一些小的运算符,可以在数学模式下直接输入;另一些需要用控制序列生成,如
1 |
|
效果展示: \[ \pm\; \times \; \div\; \cdot\; \cap\; \cup\; \geq\; \leq\; \neq\; \approx \; \equiv \]
连加、连乘、极限、积分等大型运算符分别用 \sum
, \prod
, \lim
, \int
生成。他们的上下标在行内公式中被压缩,以适应行高。我们可以用 \limits
和 \nolimits
来强制显式地指定是否压缩这些上下标。例如:
1 |
|
效果展示: \[ \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 \]
定界符(括号等)
各种括号用 ()
, []
, \{\}
, \langle\rangle
等命令表示;注意花括号通常用来输入命令和环境的参数,所以在数学公式中它们前面要加 \
。因为
LaTeX 中 |
和 \|
的应用过于随意,amsmath
宏包推荐用 \lvert\rvert
和 \lVert\rVert
取而代之。
为了调整这些定界符的大小,amsmath
宏包推荐使用 \big
, \Big
, \bigg
, \Bigg
等一系列命令放在上述括号前面调整大小。
有时你可能会觉得 amsmath 宏包提供的定界符放大命令不太够用。通常这意味着你的公式太过复杂。此时你应当首先考虑将公式中的部分提出去,以字母符号代替以简化公式。如果你真的想要排版如此复杂的公式,可以参考这篇博文。
1 |
|
效果展示: \[ \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 |
|
效果展示: \[ x_1,x_2,\dots ,x_n\quad 1,2,\cdots ,n\quad \vdots\quad \ddots \]
矩阵
amsmath
的 pmatrix
, bmatrix
, Bmatrix
, vmatrix
, Vmatrix
等环境可以在矩阵两边加上各种分隔符。
1 |
|
效果展示: \[ \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 |
|
效果展示: \[ \text{Marry has a little matrix } ( \begin{smallmatrix} a&b\\c&d \end{smallmatrix} ) . \]
多行公式
有的公式特别长,我们需要手动为他们换行;有几个公式是一组,我们需要将他们放在一起;还有些类似分段函数,我们需要给它加上一个左边的花括号。
长公式
不对齐
无须对齐的长公式可以使用 multline
环境。
1 |
|
效果展示: \[ \begin{multline} x = a+b+c+{} \\ d+e+f+g \end{multline} \]
如果不需要编号,可以使用 multline*
环境代替。
对齐
需要对齐的公式,可以使用 aligned
次环境
来实现,它必须包含在数学环境之内。
1 |
|
效果展示: \[ \begin{aligned} x ={}& a+b+c+{} \\ &d+e+f+g \end{aligned} \]
公式组
无需对齐的公式组可以使用 gather
环境,需要对齐的公式组可以使用 align
环境。他们都带有编号,如果不需要编号可以使用带星花的版本。
1 |
|
效果展示:
请注意,不要使用
eqnarray
环境。原因可以参考:
分段函数
分段函数可以用cases
次环境来实现,它必须包含在数学环境之内。
1 |
|
效果展示: \[ y= \begin{cases} -x,\quad x\leq 0 \\ x,\quad x>0 \end{cases} \]
其他技巧
只查看出错的代码
使用工具宏包syntonly,加载这个宏包之后,在导言区使用\syntonly
命令,可以使得LaTeX编译后不生成DVI或者PDF文档,只排查错误,编译速度会快不少:
1 |
|
如果想生成文档,用%
注释掉syntonly
命令就可以。
优化代码环境
LaTeX原生支持代码环境verbatim,verbatim宏包优化了verbatim环境的内部命令,并提供了\verbatiminput
命令用来直接读入文件生成代码环境。fancyvrb宏包提供了可定制格式的Verbatim环境;listings宏包更进一步,可生成关键字高亮的代码环境,支持各种程序设计语言的语法和关键字。
附录
在哪里可以找到资源
相关的博客
有关的介绍
有关的书籍
一份(不太)简短的 LATEX 2ε 介绍:
- CTeX-org/lshort-zh-cn: A Chinese edition of the Not So Short Introduction to LaTeX2ε (github.com)
- The Short Introduction to LaTeX2e (Chinese Simplified) (pku.edu.cn)
- Index of /CTAN/info/lshort/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
- Index of /CTAN/info/lshort/chinese/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
- stone-zeng/latex-talk: Modern LaTeX in a Nutshell (github.com) - 很好的一份 PPT,基本上涵盖了 \(\LaTeX\) 的各个部分的内容
- 一份其实很短的 LaTeX 入门文档 | 始终 (liam.page)
- wklchris/Note-by-LaTeX: 《简单粗暴 LaTeX》出版图书开源仓库 | The opensource repo for my published LaTeX book. (github.com)
- LaTeX-cn (latexstudio.net)
社区
- LaTeX 工作室 (latexstudio.net)
- LaTeX 编辑部 (latexstudio.net)
- TeX书籍 - LaTeX科技排版工作室 (latexstudio.net)
- TeX - LaTeX Stack Exchange
- LaTeX.org - Index page
- CTAN: Comprehensive TeX Archive Network
- Issues · CTeX-org/forum (github.com)
- Chinese TeX Society (github.com)
- LaTeX - A document preparation system (latex-project.org)
有用的工具
- Detexify LaTeX handwritten symbol recognition (kirelabs.org) - 允许用户用鼠标在输入区绘制单个数学符号的样式,系统会根据样式返回对应的 \(\LaTeX\) 代码(和所需的宏包)。这在查询不熟悉的数学符号时特别有用。
- Mathpix: AI-powered document automation - 能够通过热键呼出截屏,而后将截屏中的公式转换成 \(\LaTeX\) 数学公式的代码。
相关的课程
- 西北农林科技大学公开课:LaTeX学习-网易公开课 (163.com)
- 如何优雅的编辑数学公式?LaTeX公式入门_哔哩哔哩_bilibili
- 刘海洋 · LaTeX 不快速的入门 - 跟着大神学习最纯正的 LaTeX 知识_哔哩哔哩_bilibili
- LaTeX_工作室的个人空间_哔哩哔哩_bilibili
- 如何用 LaTeX 排版论文 - 汪彧之_哔哩哔哩_bilibili
- LaTeX科技排版 (ecnu.edu.cn)
- tuna/thulib-latex-talk: 《如何使用 LaTeX 排版论文》讲稿 (github.com)
- stone-zeng/latex-talk: Modern LaTeX in a Nutshell (github.com)