TeX的源代码是扩展名为
.tex
的纯文本文件,可以使用任意文本编辑器打开、编辑器
LaTeX排版格式(对应引擎)有:LaTeX(TeX)
、pdfLaTeX(pdfTeX)
、XeLaTeX(XeTeX)
和LuaLaTeX(LuaTeX)
,其中只有XeLaTeX(XeTeX)
支持中文
\documentclass{article}
\usepackage[utf8]{ctex}
\title{入门示例}
\author{timemiser}
\date{May 2022}
\begin{document}
\maketitle
\section{Introduction}
\end{document}
下面对该示例进行说明:
文档类型
\documentclass{article}
设置文档类型为article
导入宏包
\usepackage[utf8]{ctex}
导入中文字体宏包ctex
其他
\title{入门示例}
、\author{timemiser}
、\date{May 2022}
分别添加文章标题、作者和时间,需要添加后面的\maketitle
才能显示\section{Introduction}
用于添加正文中的节\documentclass
开始到\begin{document}
之前的命令语句称为导言\begin{document}
开始到\end{document}
之间的命令语句称为正文环境用以令效果在局部生效,或者生成特殊的文档元素
\begin{}
...
\end{}
LaTeX中命令以反斜线
\
开头,并忽略其后的所有连续空格
\[]{}
说明
[opt1][opt2]...
[opt1, opt2, ...]
[opt1=item1, opt2=item2, ...]
其中,第一种格式的选项顺序不可互换,后两种格式的选项顺序可以互换
\documentclass[]{}
参数
常用的文档类(对应的中文文档类)有以下几种:
中文文类也可以通过导入ctex
(中文字体)宏包、ctexcap
(中文标题)宏包实现(宏包见下文)
\usepackage[]{}
\includeonly{, , ...}
参数
.tex
)说明:
\include{} % 另起一页插入文件内容
\input{} % 当前位置插入文件内容
.tex
)基本
.sty
:宏包文件。宏包的名称与文件名一致.cls
:文档类文件。文档类的名称与文件名一致.bib
:BIBTEX参考文献数据库文件.bst
:BIBTEX用到的参考文献格式模板辅助
.log
:排版引擎生成的日志文件,供排查错误使用.aux
:LATEX生成的主辅助文件,记录交叉引用、目录、参考文献的引用等.toc
:LATEX生成的目录记录文件.lof
:LATEX生成的图片目录记录文件.lot
:LATEX生成的表格目录记录文件.bbl
:BIBTEX生成的参考文献记录文件.blg
:BIBTEX生成的日志文件.idx
:LATEX生成的供makeindex处理的索引记录文件.ind
:makeindex处理.idx
生成的用于排版的格式化索引文件.ilg
:makeindex生成的日志文件.out
:hyperref宏包生成的PDF书签记录文件latex和pdflatex下可以使用
inputenc
设置编码为UTF-8
\usepackage[utf8]{inputenc}
方式一:使用xeCJK
宏包,命令为
\usepackage{xeCJK}
方式二:使用ctex
宏包,命令为
\usepackage{ctex}
方式三:使用中文文档类,命令为
\documentclass{ctexart}
命令 | 含义 | 说明 |
---|---|---|
% |
单行注释 | 该字符到行末所有字符被忽略(回车也不引入空格) |
\iffalse 和\fi |
多行注释 | 分别标识注释的开始和结束 |
命令 | 字符 | 说明 |
---|---|---|
Space 、Tab 或行末Enter |
空格 | 1. 连续的空格视为一个空格 2. 行开头的空格忽略不计 |
\quad |
空格 | 1中文字符宽度的空格 |
\qquad |
空格 | 2中文字符宽度的空格 |
\ +Space |
空格 | 1 / 3字符宽度的空格 |
连续两个及以上Enter |
分段 | 1. 即源码中空行 2. 多个空行视为一个空行 |
\par |
分段 | 写在行末 |
命令 | 字符 |
---|---|
`` 和 ’` |
单引号 |
`` 和 "` |
双引号 |
... |
省略号 |
\ldots 或\dots |
省略号 |
ff 、fi 、fl 、ffi 或ffl |
连字符 |
命令 | 字符 |
---|---|
\ +# |
# |
\ +$ |
$ |
\ +% |
% |
\ +{ |
{ |
\ +} |
} |
\ +^ |
^ |
\ +~ |
~ |
\ +_ |
_ |
\textunderscore |
_ |
\textbackslash |
\ |
命令 | 含义 | 说明 |
---|---|---|
\underline{content} |
下划线 | content为添加下划线的文字内容 |
\uline |
下划线 | 1. 需要导入宏包ulem 2. 可以为多个单词和换行添加下划线 |
\emph |
斜体 | 嵌套使用\emph 则取消斜体 |
命令 | 含义 | 说明 |
---|---|---|
\\[ |
换行 | 1. 写在行末 2. 可以带参数 3. 用于表格、公式等位置 |
\newline |
换行 | 1. 不可以带参数 2. 用于文本段落中 |
\newpage |
分页 | 1. 写在页末 2. 在双栏排版中另起一栏 |
\clearpage |
分页 | 写在页末 |
命令 | 含义 | 说明 |
---|---|---|
\chapter{ |
章 | 1. 只在book 和report 文档类中有定义2. |
\section{ |
节 | |
\subsection{ |
一级子节 | |
\subsubsection{ |
二级子节 | |
\paragraph{ |
段落 | |
\subparagraph{ |
子段落 | |
\part{ |
部分 | 1. 用来将文档分为大块,但是不影响chapter 和section 的编号2. |
\section
、\subsection
和subsubsection
三级\chapter
、\section
和subsection
三级titlesec
宏包实现\[]{}
(*
的变体:\*{}
(\tableofcontents
说明
*
的章节标题,该功能可使用tocbibind
等宏包修改设置扩展
如果使用了带*
的章节标题,但是需要生成该章节的目录项,可以在标题命令后使用命令
\addcontentsline{toc}{}{}
命令 | 含义 | 说明 |
---|---|---|
\appendix |
附录 | 附录部分使用拉丁字母编号 |
\frontmatter |
前言 | 前言部分使用小写拉丁字母编号,其前的\chapter 不编号 |
\mainmatter |
正文 | 正文部分使用阿拉伯数字编号 |
\backmatter |
后记 | 后记部分页码格式不变,继续正常计数,其后的\chapter 不编号 |
命令 | 含义 | 说明 |
---|---|---|
\title{ |
标题(必须) | 没有标题会报错 |
\author{ |
作者(必须) | 没有作者会警告 |
\date{ |
时间 | \date 默认使用当前时间(\today 命令自动生成当前时间) |
说明
默认成页
可以在\documentclass
命令调用文档类时指定 titlepage
/notitlepage
选项修改是否单独成页
扩展
\title
和\author
命令内可以使用\thanks
命令生成标题也的脚注,多个人名之间使用\and
隔开步骤
在能够被交叉引用的地方(章节、公式、图标、定理等位置)使用\label
命令
\label{}
在其他地方使用\ref
或\pageref
命令,分别生成交叉引用的编号和页码
\ref{
说明
\item
之后和下一个\item
之前\label
命令,否则会引用编号不正确命令 | 含义 | 说明 |
---|---|---|
\footnote{ |
脚注 | 在某些情况(表格环境、盒子内)下,使用\footnote 不能生成脚注,此时需要使用扩展方法(见扩展) |
\marginpar[ |
边注 | 如果只给定了 |
\footnote
失效时,可以通过一下两个步骤生成脚注:
\footnotemark
为脚注计数\footnotetext
生成脚注Note:前文提到过通过
来确定环境类型
环境关键字 | 含义 | 说明 |
---|---|---|
enumerate |
有序列表 | 自动对列表项编号 |
itemize |
无序列表 | 不对列表项编号 |
description |
自定义列表 | 列表项\item 后的可选参数必填,以粗体显示 |
说明
enumitem
宏包定制列表间距扩展
列表项
\item[] ...
列表符号重定义
\labelitemi
和\labelitemiv
定义,可通过它们重新定义\labelenumi
和\labelenumiv
定义,可通过它们重新定义环境关键字 | 含义 |
---|---|
flushleft |
左对齐 |
center |
居中 |
flushright |
右对齐 |
扩展
对齐命令
命令 | 含义 |
---|---|
\raggedleft |
左对齐 |
\centering |
居中对齐 |
\raggedright |
右对齐 |
对齐环境和命令的区别
环境关键字 | 含义 | 说明 |
---|---|---|
quote |
短引用 | 首行不缩进 |
quotation |
长引用 | 首行缩进 |
verse |
诗歌引用 | 首行悬挂缩进 |
环境关键字 | 含义 | 说明 |
---|---|---|
verbatim |
代码 | 空格和回车正常显示 |
verbatim* |
代码 | 空格显示成␣ |
说明
verbatim
宏包提供了\verbatiminput
命令来直接从文件中生成代码环境;fancyvrb
宏包提供了可定制格式的Verbatim
环境;listings
宏包可生成关键字高亮的代码环境扩展
代码命令
\verb
区别
\verb
命令一般不能用作其他命令的参数环境关键字 | 含义 | 说明 |
---|---|---|
abstract |
摘要 | — |
algorithm |
算法 | 需要调用algorithm 或algorithmic 宏包 |
\begin{tabular}{⟨col-spec⟩}
⟨item1⟩ & ⟨item2⟩ & … \\
\hline
⟨item1⟩ & ⟨item2⟩ & … \\
\end{tabular}
其中,&
用来分隔单元格;\\
用来换行;\hline
:绘制行与行之间的横线
说明
tabular
环境会导致表格和周围文字的混排,解决方法为
table
浮动体环境(可使用\caption
命令添加标题)tabular
环境放置在table
环境中列格式 | 说明 |
---|---|
l / c / r | 单元格内容左对齐/居中/右对齐,不自动换行 |
p{} | 单元格宽度固定为 |
| | 绘制单元格竖线 |
@{} | 自定义内容 |
@{}
可直接用来消除单元格前后的间距*{}{}
表示array
宏包
>
和<
用于给列格式前后加上修饰命令p
格式的m
和b
格式,分别表示垂直方向上顶端对齐、居中和底端对齐tarbularx
宏包提供了X
格式,这种格式会自动计算列宽,并且多个X列格式平均分配列宽命令 | 含义 |
---|---|
\hline |
横线 |
\cline{- |
跨越单元格- |
扩展
三线表:booktabs
宏包提供
命令 | 含义 |
---|---|
\toprule |
顶部横线 |
\midrule |
中部横线 |
\bottomrule |
底部横线 |
\cmidrule{- |
跨越单元格- |
合并列
\multicolumn{}{}{}
参数
l / c / r
或 p
格式。如果合并前的单元格前后带有表格线|
,合并后的列格式也要带有表格线|
合并行
\multirow{}{}{}
参数
\multicolumn
命令配合@{}
格式可以把单元格的额外边距去掉,使得嵌套的表格线能和外层的表格线正确相连makecell
宏包提供的\makecell
命令\arraystretch
\\
添加可选参数
[]
(将[]
放在{}
内)步骤
设置编译器
LaTeX
+ dvipdfmx
:调用宏包时需要指定dvipdfmx
选项6pdfLaTeX/XeLaTeX
:无需设置调用graphicx
宏包
插入图片
\includegraphics[]{}
参数 | 含义 |
---|---|
width= |
将图片宽度设置为 |
height= |
将图片高度设置为 |
scale= |
将图片缩放为 |
angle= |
将图片逆时针旋转 |
扩展
\graphicspath
命令用于声明一个或多个图片文件存放的目录,使用这些目录的图片时可以直接写文件名盒子时LaTeX排版的基本元素:每一行是一个盒子,里面的文字从左到右依次排列;每一页也是一个盒子,各行文字从上到下排列
命令 | 含义 | 说明 |
---|---|---|
\mbox{...} |
水平盒子 | 内容只有一行,不允许分段 |
\makebox[ |
水平盒子 | 1. 内容只有一行,不允许分段 2. 3. l(左对齐) 、c(居中) 、r(右对齐) 和s(分散对齐)) |
\fbox{...} |
带边框的水平盒子 | 同\mbox |
\framebox[ |
带边框的水平盒子 | 同\makebox |
\parbox[ |
垂直盒子 | 1. 2. 3. (顶部对齐) 、c(居中) 、b(底部对齐) 和s(分散对齐)) 4. |
\rule[ |
标尺盒子 | 1. 2. 3. |
浮动体的内容可以脱离上下文,放置在合适的位置
\begin{}[]
...
\end{}
参数
figure
或table
[tbp]
参数 | 含义 |
---|---|
h | 当前位置 |
t | 顶部 |
b | 底部 |
p | 单独成页 |
! | 决定位置时忽略限制 |
说明
LaTeX
总是以h-t-b-p
的优先级决定浮动提的位置\clearpage
命令会在另起一页前将所有推迟处理的浮动体排版成页,忽略htbp
等位置参数float
宏包提供的浮动提位置参数H
会取消浮动机制(将浮动体视为一般盒子),不能与htbp!
混用扩展
table*
和figure*
环境用来排版跨栏的浮动体,此时tp
两个参数命令 | 含义 | 说明 |
---|---|---|
\caption{ |
带编号标题 | |
\caption*{ |
不带编号标题 | |
\caption[ |
带短标题的标题 | 1. 2. |
扩展
\caption
后可以跟\label
命令标记交叉引用\figurename
和\tablename
的内容可以修改浮动体的标题前缀\listoftables
和\listoffigures
课可以生成浮动体格子的目录命令(环境) | 含义 | 说明 |
---|---|---|
$...$ |
行内公式 | — |
equation 环境 |
带编号的行间公式 | 1. 可以使用\label 和\ref 生成交叉引用2. amsmath 的\eqref 命令为引用自动添加圆括号;\tag 命令手动修改公式编号;\notag 命令取消公式编号(等效于\nonumber ) |
equation* 环境 |
不带编号的行间公式 | — |
displaymath 环境 |
不带编号的行间公式 | — |
\[...\] |
不带编号的行间公式 | — |
amsmath
(核心)、amsfonts
、amssymb
和amsthm
等宏包fleqn
选项控制公式左对齐,leqno
控制编号放在公式左边\\
命令手动换行\mathrm
命令或amsmath
的\text
命令命令 | 符号 |
---|---|
\alpha |
α |
\beta |
β |
\Gamma |
Γ |
\Delta |
Δ |
\infty |
∞ |
\dots 或\ldots |
… |
\cdots |
⋯ |
\vdots |
⋮ |
\ddots |
⋱ |
命令 | 符号 |
---|---|
^ |
上标 |
_ |
下标 |
' |
导数 |
命令 | 符号 |
---|---|
\frac{ |
分式 |
\sqrt{ |
算术平方根 |
\sqrt[ |
平方根 |
\dfrac
命令表示行内正常大小的分式,\tfrac
表示行内非正常大小的分式命令 | 符号 |
---|---|
+、-、*、= |
+、-、*、= |
\times |
× |
\div |
÷ |
\cdot |
· |
\pm |
± |
\mp |
∓ |
\div |
÷ |
\nabla |
∇ |
\partial |
∂ |
\pmod 或\bmod |
求模 |
扩展
常用函数
\
自定义运算符
\DeclareMathOperator{\argh}{argh} % 带上下限的运算符
\DeclareMathOperator*{\nut}{Nut} % 带上下限的运算符
命令 | 符号 |
---|---|
>、< |
>、< |
\ge |
≥ |
\le |
≤ |
\ne |
≠ |
\approx |
≈ |
\equiv |
≡ |
\propto |
∝ |
\sim |
∼ |
命令 | 符号 |
---|---|
\sum |
∑ |
\prod |
∏ |
\int |
∫ |
\oint |
∮ |
\limits
使得上下标位于上下方,\limits
使得上下标位于右上、右下方\substack
命令可以在下限位置书写多行表达式,\subarray
可以指定多行表达式的对齐方式命令 | 符号 |
---|---|
\dot |
单点重音 |
\ddot |
双点重音 |
\vec 或\overrightarrow |
向量箭头 |
\hat |
上尖括号 |
\overline |
上划线 |
\underline |
下划线 |
\widehat |
宽重音 |
\overbrace |
上括号 |
\underbrace |
下括号 |
命令 | 符号 |
---|---|
\leftarrow 或\gets |
← |
\rightarrow 或\to |
→ |
\xleftarrow |
可伸展的左箭头 |
\xrightarrow |
可伸展的右箭头 |
命令 | 符号 |
---|---|
() |
() |
[] |
[] |
\{\} |
{} |
\langle\rangle |
⟨⟩ |
\left
和\right
命令可以改变定界符的大小;两者必须成对使用,包含的公式不可以换行;如果要分开使用,另一个要写成\left.
和\right.
\big
、\Big
、\bigg
、\Bigg
等命令可以生成固定大小的定界符。更常用的形式为\bigl
、\Bigl
、\biggl
、\Biggl
和\bigr
、\Bigr
、\biggr
、\Biggr
等,且不要求成对出现,包含的公式可以换行\begin{multiline}
... \\
...
\end{multiline}
\\
命令换行multiline*
环境排版不带编号的换行长公式\begin{align}
...
\end{align}
&
分隔为两部分并对齐,分隔符通常放在等号左边\notag
取消某行的编号){}
以产生正常的间距&
分隔gather
环境\begin{array}
...
\end{array}
tabular
环境,需要定义列格式\\
命令换行cases
环境实现环境关键字 | 含义 |
---|---|
matrix |
不带定界符的矩阵 |
pmatrix |
带定界符() 的矩阵 |
bmatrix |
带定界符[] 的矩阵 |
vmatrix |
带定界符` |
Bmatrix |
带定界符{} 的矩阵 |
Vmatrix |
带定界符‖‖ 的矩阵 |
命令 | 含义 |
---|---|
\quad |
1个中文字符宽度的空格 |
\qquad |
2个中文字符宽度的空格 |
\ |
1 / 3个中文字符宽度的空格 |
\, |
1 / 7个中文字符宽度的空格 |
\: |
1 / 6个中文字符宽度的空格 |
\; |
1 / 3个中文字符宽度的空格 |
\! |
- 1/ 6个中文字符宽度的空格 |
命令 | 说明 |
---|---|
\mathnormal{ |
— |
\mathrm{ |
— |
\mathit{ |
— |
\mathbf{ |
— |
\mathsf{ |
— |
\mathtt{ |
— |
\mathcal{ |
需调用eucal 宏包 |
\mathscr{ |
需调用mathrsfs 宏包 |
\mathfrak{ |
需调用amssymb 或eufrak 宏包 |
\mathbb{ |
需调用amssymb 宏包 |
命令 | 说明 |
---|---|
\displaystyle |
行间公式尺寸 |
\textstyle |
行内公式尺寸 |
\scriptstyle |
上下标尺寸 |
\scriptscriptstyle |
次级上下标尺寸 |
环境关键字 | 说明 |
---|---|
\boldsymbol |
需调用amsbsy 宏包 |
\bm |
需调用bm 宏包 |
\newtheorem{}{}[]
\newtheorem{}[]{}
参数
说明
扩展
使用amsthm
宏包自定义定理格式
\theoremstyle{