152. LaTeX
基础
认识 Latex
命令与环境
构成
反斜杠加上命令名称,再加上花括号内的参数
1 | \documentclass{ctexart} |
保留字符
符号 | 说明 |
---|---|
# |
自定义命令时,用于标明参数序号。 |
$ |
数学环境命令符。 |
% |
注释符,其后的该行命令都会视为注释。如果在行末添加这个命令,可以防止 LaTeX 在行末插入一些奇怪的空白符。 |
^ |
数学环境中的上标命令符。 |
& |
表格环境中的跳列符。 |
_ |
数学环境中的下标命令符。 |
{与} | 用于标记命令的必选参数,或者标记某一部分命令使其成为一个整体。 |
\ |
用于开始 LaTeX 命令。 |
导言区
1 | \documentclass[option]{doc-class} |
在语句 \begin{document}
之前的内容称为 == 导言区 ==,导言区即模板定义
doc-class
doc-class (文档类) | 类别 |
---|---|
article | 科学期刊、演示文稿、短报告、邀请函 |
proc | 基于 article 的会议论文集 |
report | 多章节的长报告、博士论文、短篇书 |
book | 书籍 |
slides | 幻灯片,使用了大号 Scans Serif 字体 |
此外还有 beamer 宏包定义的 beamer 文档类,其常用于创建幻灯片。
options (可选项)
options | 取值 |
---|---|
字体 | 默认 10 pt, 可选 11 pt 和 12 pt |
页面方向 | 默认 portrait (竖向), 可选 landscape (横向) |
纸张尺寸 | 默认 letterpaper , 可选 a4paper 、b5paper 等 |
分栏 | 默认 onecolumn , 可选 twocolumn |
双面打印 | 有 oneside/twoside 两个选项,用于排版奇偶页,article/report 默认单面 |
章节分页 | 有 openright/openany 两个选项,决定在奇数页或任意页开启新页。注意,article 是没有 chapter (章) 命令的,默认任意页 |
公式对齐 | 默认居中;可改为左对齐 fleqn ; 默认编号居右,可改为左对齐 leqno |
草稿选项 | 默认 final , 可改为 draft , 使行溢出的部分显示为黑块 |
宏包
导言区最常见的是宏包的加载工作,命令形如:
1 | \usepackage{package} |
宏包是指一系列已经制作好的功能 “模块”,在你需要使用一些非原生 LaTeX 功能时,只需调用这些宏包就可以了
学习宏包
按 Win+R 组合键调出运行对话框,输入 texdoc
加上宏包名称即可打开宏包 pdf 帮助文档,例如:texdoc xeCJK
。
文件输出
后缀 | 说明 |
---|---|
.sty |
宏包文件。 |
.cls |
文档类文件。 |
.aux |
用于存储交叉引用信息的文件,因此,在更新交叉引用 (公式编号、大纲级别) 后,需要编译两次才能正常显示。 |
.log |
日志,记录上次编译的信息。 |
.toc |
目录文件。 |
.lof |
图形目录。 |
.lot |
表格目录。 |
.idx |
如果文档中包含索引,该文件用于存储索引信息。 |
.ind |
索引记录文件。 |
.ilg |
索引日志文件。 |
.bib |
参考文献数据文件。 |
.bbl |
生成的参考文献记录。 |
.bst |
模板。 |
.blg |
日志。 |
.out |
hyperref 宏包生成的 pdf 书签记录。 |
异常处理
删除文件夹下除了 tex 以外的文件再编译
注意
在某些独占程序打开了以上的文件时 (比如用 Acrobat 打开了 pdf 文件), 编译也可能出现错误。请在编译时确保关闭这些独占程序。
标点与强调
英文符号 |、<、>、+、=
一般用于数学环境
- 在文本中使用,请在它们两侧加上
$
- 大于小于号:你应该使用
\textgreater
、\textless
命令
引号
- 左单引号是重音符 `
- 右单引号是常用的引号符
- 左双引号就是连续两个重音符
- 英文下的引号嵌套需要借助
\thinspace
命令分隔
省略号
英文的省略号使用 \ldots
这个命令
强调:粗与斜
\emph{text}
- 中文:强调文本
- 细纹:斜体
下划线与删除线
- LaTeX 原生提供的
\underline命令简直烂得可以 - == 建议 == 你使用 ulem 宏包下的 uline 命令,它还支持换行文本
命令 | 说明 |
---|---|
\uline{} |
下划线 |
\uuline{} |
双下划线 |
\dashuline{} |
虚下划线 |
\dotuline{} |
点下划线 |
\uwave{} |
波浪线 |
\sout{} |
删除线 |
\xout{} |
斜删除线 |
注意
ulem 宏包重定义了 \emph
命令:
强调命令会对内容加下划线
嵌套使用两次强调命令则会对内容加双下划线
通过宏包的 normalem 选项可以取消这个更改:\usepackage[normalem]{ulem}
其他
- 角度符号或者温度符号
- 欧元符号可能需要用到 textcomp 宏包支持的 \texteuro 命令
- 千位分隔位
- 不想它在中间断行,就在外侧再加上一个 \mbox 命令
- 注音符号
- 音标:
- tipa 宏包
- numprint 宏包
- siunitx 宏包
- hologo 宏包可以输出许多 TEX 家族标志
格式控制
符号说明
符号 | 说明 |
---|---|
pt | point, 磅。 |
pc | pica,1 pc = 12 pt, 四号字。 |
in | inch, 英寸,1 in = 72.27 pt。 |
bp | bigpoint, 大点,1 bp = in。 |
cm | centimeter, 厘米,1 cm = in。 |
mm | millimeter, 毫米,1 mm = cm。 |
sp | scaled point,TEX 的基本长度单位,1 sp = pt。 |
em | 当前字号下,大写字母 M 的宽度。 |
ex | 当前字号下,小写字母 x 的高度。 |
长度宏
宏 | 说明 |
---|---|
\textwidth |
页面上文字的总宽度,即叶宽减去两侧边距 |
\linewidth |
当前行允许的行宽 |
可变长度
5 pt plus 3 pt minus 2 pt
:表示一个能收缩到 3 pt 也能伸长到 8 pt 的长度- 直接使用倍数:
1.5\parindent
特殊空格
\hspace
和 \vspace
空格与换行
- 多个空格、换行会被视为一个
- 禁止 LaTeX 在某个空格处的换行,将空格用
˜
命令替代即可,比如:Fig.˜ 8
换行
- 会自动换行
- 分段:两个回车 (用于正文换行)
- 空白段落(空白行)
- 两个回车 +
\mbox{}
+ 两个回车 \par
: 生成一个带缩进的新段
- 两个回车 +
- 强制换行:
\\
- 缺点:下一行段首缩进会消失
段落间距离
- 默认:
0pt plus 1pt
- 控制命令
\parskip
:\setlength{\parskip}{0pt plus 1pt}
- 首字下沉:lettrine 宏包
分页
\newpage
命令开始新的一页- 用
\clearpage
命令清空浮动体队列,并开始新的一页 - 用
\cleardoublepage
命令清空浮动体队列,并在偶数页开始新的一页 - 连续新开两页:在
\newpage
中间加上一个空的箱子 (\mbox{}
),\newpage\mbox{}\newpage
缩进、对齐与行距
缩进
- 宏包:借助 indentfirst 宏包
- 设置距离:使用
\setlength\parindent{2em}
这样的命令来设置缩进距离 - 段首强制取消缩进:在段首使用
\noindent
命令
注
英文的每节第一段的段首 == 允许没有缩进 ==
对齐
默认使用两端对齐的排版方式
设置
可以使用 flushleft 、flushright 、center 这三种环境来构造居左、居中、居右三种效果。
特殊的 \centering 命令常常用在环境内部 (或者一对花括号内部), 以实现居中的效果。
尽量用 center 环境代替这个老旧的命令。类似地还有 \raggedleft 实现居右,\raggedright 实现居左
字体与颜色
中西文 “斜体”
中文
汉字没有加斜体
汉字字体里面也不一定有加粗体的设计
英文
- 加斜是指某种字族的 Italy 字系
- 斜体,是指 Slant 字族
使用
- 行文中表强调时使用的是前者;
- 在 MS Word 等软件中看到的倾斜字母 I , 也代表前者。
原生字体命令
字族
命令 | 描述 |
---|---|
\rmfamily |
把字体设置为 Roman 罗马字族 |
\sffamily |
把字体设置为 Sans Serif 无衬线字族 |
\ttfamily |
把字体设置为 Typewritter 等宽字族 |
字系
命令 | 描述 |
---|---|
\bfseries |
粗体 BoldSeries 字系属性 |
\mdseries |
中粗体 MiddleSerie 字系属性 |
字形
命令 | 描述 |
---|---|
\upshape |
竖直字形 |
\slshape |
斜体字形 |
\itshape |
强调体字形 |
\scshape |
小号大写字形 |
临时改变字体
临时改变字体,使用 \textrm
、\textbf
这类命令
注意
字族、字系、字形三种命令是互相独立的,可以任意组合使用
这种复合字体的效果有时候无法达到 (因为没有对应的设计)
LaTeX 会针对这种情况给出警告,但仍可以编译,只是效果达不到预期。
自定义命令
在文中多次使用某种字体变换,可以将其自定义成一个命令
字号
默认的 “标准” 字号
- 在 documentclass 的选项中设置的 12 pt (如果你设置了的话)
相对字号命令

ctex 宏包
ctex 宏包的 \zihao
命令的参数 08 以及 -0-8 表示初号到八号、小初号到小八号
日常使用的小四号为 12 pt, 五号为 10.5 pt
设置特殊的字号
1 | \fontsize{font-size}{line-height}{\selectfont <text>} |
- font-size: 填数字,单位 pt
- line-height: 填
\baselineskip
,表示行与行之间的基线间距 (即行距), 默认是 1.2 倍文字高。
默认字体
全文的默认字体使用 \rmfamily
族的字体
通过重定义的方式更改它,使 \rmfamily
、\textrm
命令都指向新的字体,甚至把默认字体改为 sf/tt
字族
1 | \renewcommand{\rmdefault}{font-name} |
西文字体
预包含西文字体

使用
引言区定义
1 | \newcommand{\myfont}[2]{{\fontfamily{#1}\selectfont #2}} |
正文中
1 | Let's change font to \myfont{ppl}{Palatino}! |
本地安装字体
使用 fontspec 宏包
一般使用 fontspec 宏包来选择本地安装 的字体。注意,该宏包可能会明显增加编译时间
1 | \usepackage{fontspec} |
该宏包的 \setmathrm/sf/tt
与 \setboldmathrm
命令可以更改数学环境中调用的字体。
简单加载 txtfont 宏包
将西文字体设置为 Roman 体,同时设置好数学字体。
简单字体宏包还有 cmbright , 以及提供 Palatino 字体的 pxfonts , 前者提供的 CM Bright 与 TeX 默认字体 Computer Modern 协调得不错
中文支持与 CJK 字体
ctex 宏包
直接定义了新的中文文档类 ctexart 、ctexrep 与 ctexbook , 以及 ctexbeamer 幻灯文档类。
xeCJK 宏包
在使用 时,如果你使用 ctex 文档类,它会在底层调用 xeCJK 宏包,所以你无须再显式地加载它。当然你也可以使用原生文档类,然后逐一汉化参数内容。
示例
在引言区
1 | \usepackege[slantfont,boldfont]{xeCJK} |
颜色
使用 xcolor 宏包
1 | \usepackage{xcolor} |
指定颜色的 text
1 | {\color{color-name}{text}} |
调色
1 | % 70%红色 |
引用与注释
标签与引用
没看懂
脚注、边注和尾注
没看懂
摘要
没看懂
参考文献
natbib 宏包
正式排版:封面、大纲与目录
封面
封面的内容在导言区进行定义,== 一般写在所有宏包、自定义命令之后 ==
命令如下:
1 | \title{Learning Latex} |
使用封面
document 环境内的第一行写上 \maketitle , 这样就能产生一个简易的封面。
1 | \begin{document} |
标题页的脚注用 \thanks
命令完成。
注意
- \title 和 \author == 是必须定义的 ==
- date
- \date 如果省略:会自动以编译当天的日期为准,格式形如: January 1, 1970。
- 不想显示日期,可以写 \date {}
大纲与章节
命令 | 大纲级别 |
---|---|
\part |
部分,这个大纲不会打断 chapter 的编号。 |
\chapter |
章,article 的文档类不包含本大纲级别。 |
\section |
节。 |
\subsection |
次节,默认 report/book 文档类中本级别及以下的大纲不进行编号,也不纳入目录。 |
\subsubsection |
小节,默认 article 文档类中本级别及以下的大纲不进行编号,也不纳入目录。 |
\paragraph |
段,极少使用。 |
\subparagraph |
次段,极少使用。 |
计数器与列表
计数器
LaTeX 中的自动编号都借助内部的计数器来完成,计数器包括下面几种:
- 章节 :part、chapter、section、subsection、subsubsection、paragraph 与 subparagraph。
- 编号列表 :enumi、enumii、enumiii 与 enumiv。
- 公式和图表 :equation、figure 与 table。
- 其他 :page、footnote 与 mpfootnote
注
- mpfootnote 命令用于实现 minipage 环境的脚注
使用
通过 \the 接上计数器名称来调用计数器,比如 \thechapter
如果只是输出计数器的数值,可以指定数值的形式,如阿拉伯数字、大小写英文字母,或大小写罗马数字。
常用的命令:
- \arabic{counter-name}
- \Alph
- \alph
- \Roman
- \roman
- % ctex 文档类还支持 \chinese
图、表格
没看懂
页面设置
借助 geometry 宏包
