【工具篇-LaTeX】LaTeX语法
【工具篇-LaTeX】LaTeX语法
文章目录
- 【工具篇-LaTeX】LaTeX语法
- 1 快速入门
- 1.1 简介
- 1.2 入门示例
- 1.2.1 导言和正文
- 1.2.2 环境
- 2 基础知识
- 2.1 命令
- 2.2 文档类
- 2.3 宏包
- 2.4 文件组织
- 2.4.1 载入文件
- 2.4.2 插入文件
- 2.5 LaTeX工程中的文件
- 3 文字排版
- 3.1 语言支持
- 3.1.1 编码
- 3.1.2 中文支持
- 3.2 注释
- 3.3 字符
- 3.3.1 空白符
- 3.3.2 英文符号
- 3.3.3 转义字符
- 3.4 文字强调
- 3.5 分页换行
- 4 文档元素
- 4.1 章节目录
- 4.1.1 章节标题
- 4.1.2 目录
- 4.1.3 文档结构划分
- 4.2 标题页
- 4.3 交叉引用
- 4.4 脚注和边注
- 4.5 环境
- 4.5.1 列表
- 4.5.2 对齐
- 4.5.3 引用
- 4.5.4 代码
- 4.5.5 其他
- 4.6 表格
- 4.6.1 列格式
- 4.6.2 列宽
- 4.6.3 横线
- 4.6.4 合并单元格
- 4.6.5 嵌套
- 4.6.6 行距
- 4.7 图片
- 4.8 盒子
- 4.9 浮动体
- 4.9.1 标题
- 5 公式排版
- 5.1 数学符号
- 5.1.1 一般符号
- 5.1.2 上下标和导数
- 5.1.3 分式和根式
- 5.1.4 常规运算符
- 5.1.5 关系运算符
- 5.1.6 巨算符
- 5.1.7 重音和上下括号
- 5.1.8 箭头
- 5.1.9 括号和定界符
- 5.2 多行公式
- 5.2.1 长公式换行
- 5.2.2 多行公式
- 5.3 数组和矩阵
- 5.3.1 二维数组
- 5.3.2 矩阵
- 5.4 公式中的间距
- 5.5 字体
- 5.5.1 字体
- 5.5.2 尺寸
- 5.5.3 加粗
- 5.6 定理
- 6 排版样式
- 6.1 字体
- 6.1.1 字体
- 6.1.2 字号
- 6.2 段落
- 6.2.1 长度单位
- 6.2.2 行距
- 6.2.3 段落格式
- 6.2.4 水平间距
- 6.2.5 垂直间距
- 6.3 页面
- 6.3.1 页面参数
- 6.3.2 内容垂直对齐
- 6.3.3 分栏
- 6.3.4 页眉页脚
- 7 特色工具
- 7.1 参考文献:BIBTEX工具
- 7.1.1 BiBTeX数据库
- 7.1.2 BiBTeX样式
- 7.2 索引:makeindex工具
- 7.3 颜色
- 7.3.1 自定义颜色
- 7.3.2 带颜色文本
- 7.3.3 带颜色盒子
- 7.4 超链接
- 7.5 PDF
- 7.5.1 书签
- 7.5.2 文档属性
- 8 自定义
- 8.1 命令
- 8.1.1 定义新命令
- 8.1.2 重定义命令
- 8.2 环境
- 8.2.1 定义新环境
- 8.2.2 重定义环境
- 8.3 宏包和文档类
- 8.3.1 编写文档类
- 8.3.2 编写宏包
- 8.4 计数器
- 8.4.1 定义计数器
- 8.4.2 修改计数器
- 8.4.3 修改输出格式
- 8.5 可定制命令和参数
- 8.5.1 标题名称/前后缀等
- 8.5.2 长度
- 参考资料
1 快速入门
1.1 简介
TeX的源代码是扩展名为
.tex
的纯文本文件,可以使用任意文本编辑器打开、编辑器
LaTeX排版格式(对应引擎)有:LaTeX(TeX)
、pdfLaTeX(pdfTeX)
、XeLaTeX(XeTeX)
和LuaLaTeX(LuaTeX)
,其中只有XeLaTeX(XeTeX)
支持中文
1.2 入门示例
\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}
用于添加正文中的节
1.2.1 导言和正文
- 导言:从
\documentclass
开始到\begin{document}
之前的命令语句称为导言 - 正文:从
\begin{document}
开始到\end{document}
之间的命令语句称为正文
1.2.2 环境
环境用以令效果在局部生效,或者生成特殊的文档元素
\begin{<env>}
...
\end{<env>}
- 参数
- <env>:环境类型
2 基础知识
2.1 命令
LaTeX中命令以反斜线
\
开头,并忽略其后的所有连续空格
\<command>[<options>]{<params>}
说明
<command>:命令名
<options>:有三种格式:
[opt1][opt2]...
[opt1, opt2, ...]
[opt1=item1, opt2=item2, ...]
其中,第一种格式的选项顺序不可互换,后两种格式的选项顺序可以互换
<params>:顺序不可任意交换
2.2 文档类
\documentclass[<options>]{<className>}
参数
- <options>:文档类的选项,可以全局地规定一些排版参数,如如字号、纸张大小、单双面、单双栏等
- <className>:文档类的名称
常用的文档类(对应的中文文档类)有以下几种:
- article(ctexart):小篇幅的文章
- report(ctexrep):中篇幅的报告
- book(ctexbook):长篇幅的书籍
中文文类也可以通过导入
ctex
(中文字体)宏包、ctexcap
(中文标题)宏包实现(宏包见下文)
2.3 宏包
\usepackage[<options>]{<pkgName>}
- 参数
- <options>:宏包的选项
- <pkgName>:宏包的名称;可以同时调用多个宏包,使用逗号隔开
2.4 文件组织
2.4.1 载入文件
\includeonly{<filename1>, <filename1>, ...}
参数
- <filenameN>:文件名(相对或绝对路径),可以不带扩展名(默认为
.tex
)
- <filenameN>:文件名(相对或绝对路径),可以不带扩展名(默认为
说明:
- 该命令用于在导言区中只载入某些文件,如果文件不在列表内,正文中的插入文件命令不生效
2.4.2 插入文件
\include{<filename>} % 另起一页插入文件内容\input{<filename>} % 当前位置插入文件内容
- 参数
- <filename>:文件名(相对或绝对路径),可以不带扩展名(默认为
.tex
)
- <filename>:文件名(相对或绝对路径),可以不带扩展名(默认为
2.5 LaTeX工程中的文件
基本
.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书签记录文件
3 文字排版
3.1 语言支持
3.1.1 编码
latex和pdflatex下可以使用
inputenc
设置编码为UTF-8
\usepackage[utf8]{inputenc}
3.1.2 中文支持
方式一:使用
xeCJK
宏包,命令为\usepackage{xeCJK}
方式二:使用
ctex
宏包,命令为\usepackage{ctex}
方式三:使用中文文档类,命令为
\documentclass{ctexart}
3.2 注释
命令 | 含义 | 说明 |
---|---|---|
%
|
单行注释 | 该字符到行末所有字符被忽略(回车也不引入空格) |
\iffalse 和\fi
|
多行注释 | 分别标识注释的开始和结束 |
3.3 字符
3.3.1 空白符
命令 | 字符 | 说明 |
---|---|---|
Space 、Tab 或行末Enter
|
空格 |
1. 连续的空格视为一个空格 2. 行开头的空格忽略不计 |
\quad
|
空格 | 1中文字符宽度的空格 |
\qquad
|
空格 | 2中文字符宽度的空格 |
\ +Space
|
空格 | 1 / 3字符宽度的空格 |
连续两个及以上Enter
|
分段 |
1. 即源码中空行 2. 多个空行视为一个空行 |
\par
|
分段 | 写在行末 |
3.3.2 英文符号
命令 | 字符 |
---|---|
`` 和 ’`
|
单引号 |
`` 和 "`
|
双引号 |
...
|
省略号 |
\ldots 或\dots
|
省略号 |
ff 、fi 、fl 、ffi 或ffl
|
连字符 |
3.3.3 转义字符
命令 | 字符 |
---|---|
\ +#
|
# |
\ +$
|
$ |
\ +%
|
% |
\ +{
|
{ |
\ +}
|
} |
\ +^
|
^ |
\ +~
|
~ |
\ +_
|
_ |
\textunderscore
|
_ |
\textbackslash
|
\ |
3.4 文字强调
命令 | 含义 | 说明 |
---|---|---|
\underline{content}
|
下划线 | content为添加下划线的文字内容 |
\uline
|
下划线 |
1. 需要导入宏包ulem 2. 可以为多个单词和换行添加下划线 |
\emph
|
斜体 |
嵌套使用\emph 则取消斜体
|
3.5 分页换行
命令 | 含义 | 说明 |
---|---|---|
\\[<offset>]
|
换行 |
1. 写在行末 2. 可以带参数<offset>,设置与下一行的垂直间距 3. 用于表格、公式等位置 |
\newline
|
换行 |
1. 不可以带参数 2. 用于文本段落中 |
\newpage
|
分页 |
1. 写在页末 2. 在双栏排版中另起一栏 |
\clearpage
|
分页 | 写在页末 |
4 文档元素
4.1 章节目录
4.1.1 章节标题
命令 | 含义 | 说明 |
---|---|---|
\chapter{<title>}
|
章 |
1. 只在book 和report 文档类中有定义2. <title>为章标题 |
\section{<title>}
|
节 | <title>为节标题 |
\subsection{<title>}
|
一级子节 | <title>为一级子节标题 |
\subsubsection{<title>}
|
二级子节 | <title>为二级子节标题 |
\paragraph{<title>}
|
段落 | <title>为段落标题 |
\subparagraph{<title>}
|
子段落 | <title>为子段落标题 |
\part{<title>}
|
部分 |
1. 用来将文档分为大块,但是不影响chapter 和section 的编号2. <title>为子段落标题 |
- 说明
- 默认带编号的层级:
- artical文档类默认为
\section
、\subsection
和subsubsection
三级 - report/book文档类默认为
\chapter
、\section
和subsection
三级
- artical文档类默认为
- 标准文档类没有提供为章节命令定制格式的功能,该功能可由
titlesec
宏包实现
- 默认带编号的层级:
- 扩展
- 带可选参数的变体:
\<command>[<short-title>]{<title>}
(<command>为章节命令)含义为标题中使用<title>参数,目录和页眉页脚中使用<short-title>参数 - 带
*
的变体:\<command>*{<title>}
(<command>为章节命令)含义为标题不带编号,也不生成目录项和页眉页脚
- 带可选参数的变体:
4.1.2 目录
\tableofcontents
说明
- 正确生成目录项一般需要编译两次源代码
- 该命令生成的目录默认不包含带
*
的章节标题,该功能可使用tocbibind
等宏包修改设置
扩展
如果使用了带
*
的章节标题,但是需要生成该章节的目录项,可以在标题命令后使用命令\addcontentsline{toc}{<level>}{<title>}
4.1.3 文档结构划分
命令 | 含义 | 说明 |
---|---|---|
\appendix
|
附录 | 附录部分使用拉丁字母编号 |
\frontmatter
|
前言 |
前言部分使用小写拉丁字母编号,其前的\chapter 不编号
|
\mainmatter
|
正文 | 正文部分使用阿拉伯数字编号 |
\backmatter
|
后记 |
后记部分页码格式不变,继续正常计数,其后的\chapter 不编号
|
4.2 标题页
命令 | 含义 | 说明 |
---|---|---|
\title{<title>}
|
标题(必须) | 没有标题会报错 |
\author{<author>}
|
作者(必须) | 没有作者会警告 |
\date{<date>}
|
时间 |
\date 默认使用当前时间(\today 命令自动生成当前时间)
|
说明
默认成页
- article文档类的标题默认不单独成页
- report和book默认单独成页
可以在
\documentclass
命令调用文档类时指定titlepage
/notitlepage
选项修改是否单独成页
扩展
\title
和\author
命令内可以使用\thanks
命令生成标题也的脚注,多个人名之间使用\and
隔开
4.3 交叉引用
步骤
在能够被交叉引用的地方(章节、公式、图标、定理等位置)使用
\label
命令\label{<label-name>}
在其他地方使用
\ref
或\pageref
命令,分别生成交叉引用的编号和页码\ref{<label-name} % 生成交叉引用的编号 \pageref{<label-name} % 生成交叉引用的页码
说明
- 正确生成交叉引用,一般需要多次编译源代码
- 可以使用的位置有
- 章节标题命令之后
- 行内公式的任意位置
- 多行公式每一行的任意位置
- 有序列表环境一个
\item
之后和下一个\item
之前 - 图表标题命令之后
- 定理环境内部任意位置
- 使用不带编号的命令时不要使用
\label
命令,否则会引用编号不正确
4.4 脚注和边注
命令 | 含义 | 说明 |
---|---|---|
\footnote{<note>}
|
脚注 |
在某些情况(表格环境、盒子内)下,使用\footnote 不能生成脚注,此时需要使用扩展方法(见扩展)
|
\marginpar[<left-note>]{<right-note>}
|
边注 | 如果只给定了<right-note>,则奇偶数页边注都使用<right-note>;如果同时给定了<left-note>,则偶数页边注使用<left-note> |
- 扩展
- 当
\footnote
失效时,可以通过一下两个步骤生成脚注:- 使用
\footnotemark
为脚注计数 - 再合适的位置使用
\footnotetext
生成脚注
- 使用
- 当
4.5 环境
Note:前文提到过通过<env>来确定环境类型
4.5.1 列表
环境关键字 | 含义 | 说明 |
---|---|---|
enumerate
|
有序列表 | 自动对列表项编号 |
itemize
|
无序列表 | 不对列表项编号 |
description
|
自定义列表 |
列表项\item 后的可选参数必填,以粗体显示
|
说明
- 列表可以嵌套使用,最多嵌套四级
- 列表默认的间距较宽,可通过
enumitem
宏包定制列表间距
扩展
列表项
\item[<ch>] ...
- <ch>:自定义符号,可以将有序列表的计数或无序列表的符号替换成自定义的符号
列表符号重定义
- 无序列表:列表符号由
\labelitemi
和\labelitemiv
定义,可通过它们重新定义 - 有序列表:列表符号由
\labelenumi
和\labelenumiv
定义,可通过它们重新定义
- 无序列表:列表符号由
4.5.2 对齐
环境关键字 | 含义 |
---|---|
flushleft
|
左对齐 |
center
|
居中 |
flushright
|
右对齐 |
扩展
对齐命令
命令 含义 \raggedleft
左对齐 \centering
居中对齐 \raggedright
右对齐 对齐环境和命令的区别
- 对齐环境会在上下文产生一个额外间距;对齐命令不会在上下文产生额外间距,只改变对齐方式
4.5.3 引用
环境关键字 | 含义 | 说明 |
---|---|---|
quote
|
短引用 | 首行不缩进 |
quotation
|
长引用 | 首行缩进 |
verse
|
诗歌引用 | 首行悬挂缩进 |
- 说明
- 和一般文字相比,引用环境一般有额外左右缩进
4.5.4 代码
环境关键字 | 含义 | 说明 |
---|---|---|
verbatim
|
代码 | 空格和回车正常显示 |
verbatim*
|
代码 |
空格显示成␣
|
说明
verbatim
宏包提供了\verbatiminput
命令来直接从文件中生成代码环境;fancyvrb
宏包提供了可定制格式的Verbatim
环境;listings
宏包可生成关键字高亮的代码环境
扩展
代码命令
\verb<delim><code><delim>
- <delim>:标明代码的分界位置,前后必须一致,除字母、空格或星号外可以任意选择(不与代码冲突)
区别
\verb
命令一般不能用作其他命令的参数
4.5.5 其他
环境关键字 | 含义 | 说明 |
---|---|---|
abstract
|
摘要 | — |
algorithm
|
算法 |
需要调用algorithm 或algorithmic 宏包
|
4.6 表格
\begin{tabular}{⟨col-spec⟩}
⟨item1⟩ & ⟨item2⟩ & … \\
\hline
⟨item1⟩ & ⟨item2⟩ & … \\
\end{tabular}
- 参数
- <col-spec>:列格式标记,详细介绍见下文
- <itemN>:单元格内容
其中,&
用来分隔单元格;\\
用来换行;\hline
:绘制行与行之间的横线
说明
- 直接使用
tabular
环境会导致表格和周围文字的混排,解决方法为- 使用
table
浮动体环境(可使用\caption
命令添加标题) - 将
tabular
环境放置在table
环境中
- 使用
- 直接使用
4.6.1 列格式
列格式 | 说明 |
---|---|
l / c / r | 单元格内容左对齐/居中/右对齐,不自动换行 |
p{} | 单元格宽度固定为<width>,自动换行 |
| | 绘制单元格竖线 |
@{} | 自定义内容<string> |
- 说明
- 表格中每行的单元格数目不能多于列格式里l / c / r / p的总数(可以少于),否则报错
- @格式可在单元格前后插入任意文本,同时消除单元格前后额外添加的间距。@格式可以适当使用充当竖线。特别的,
@{}
可直接用来消除单元格前后的间距
- 扩展
- 简写格式:
*{<n>}{<col-spec>}
表示<col-spec>指定的内容重复<n>次 array
宏包- 辅助格式
>
和<
用于给列格式前后加上修饰命令 p
格式的m
和b
格式,分别表示垂直方向上顶端对齐、居中和底端对齐
- 辅助格式
- 简写格式:
4.6.2 列宽
tarbularx
宏包提供了X
格式,这种格式会自动计算列宽,并且多个X列格式平均分配列宽
4.6.3 横线
命令 | 含义 |
---|---|
\hline
|
横线 |
\cline{<i>-<j>}
|
跨越单元格<i>-<j>的横线 |
扩展
三线表:
booktabs
宏包提供命令 含义 \toprule
顶部横线 \midrule
中部横线 \bottomrule
底部横线 \cmidrule{<i>-<j>}
跨越单元格<i>-<j>的横线
4.6.4 合并单元格
合并列
\multicolumn{<n>}{<col-spec>}{<content>}
参数
<n>:要合并的列数
<col-spec>:合并后的列格式,只允许出现一个
l / c / r
或p
格式。如果合并前的单元格前后带有表格线|
,合并后的列格式也要带有表格线|
<content>:合并后的内容
合并行
\multirow{<n>}{<width>}{<content>}
参数
<n>:要合并的行数
<width>:合并后的宽度
<content>:合并后的内容
4.6.5 嵌套
- 在单元格中嵌套一个小表格可以拆分单元格
- 注意:需要使用
\multicolumn
命令配合@{}
格式可以把单元格的额外边距去掉,使得嵌套的表格线能和外层的表格线正确相连 - 扩展如果不需要为拆分的单元格画线,并且指在垂直方向上拆分时,可以使用
makecell
宏包提供的\makecell
命令
- 注意:需要使用
4.6.6 行距
- 方式一:修改参数
\arraystretch
- 方式二:给换行命令
\\
添加可选参数- 适用在行间不加横线的表格
- 下一行的第一个单元格中不能使用
[]
(将[]
放在{}
内)
4.7 图片
步骤
设置编译器
LaTeX
+dvipdfmx
:调用宏包时需要指定dvipdfmx
选项6pdfLaTeX/XeLaTeX
:无需设置
调用
graphicx
宏包插入图片
\includegraphics[<options>]{<filename>}
<options>:选项,常用的参数如下
参数 含义 width=<width>
将图片宽度设置为<width> height=<height>
将图片高度设置为<height> scale=<scale>
将图片缩放为<scale>倍 angle=<angle>
将图片逆时针旋转<angle>度 <filename>:图片文件名(路径名)
扩展
\graphicspath
命令用于声明一个或多个图片文件存放的目录,使用这些目录的图片时可以直接写文件名
4.8 盒子
盒子时LaTeX排版的基本元素:每一行是一个盒子,里面的文字从左到右依次排列;每一页也是一个盒子,各行文字从上到下排列
命令 | 含义 | 说明 |
---|---|---|
\mbox{...}
|
水平盒子 | 内容只有一行,不允许分段 |
\makebox[<width>][<align>]{...}
|
水平盒子 |
1. 内容只有一行,不允许分段 2. <width>:盒子的宽度 3. <align>:内容的对齐方式(可选择 l(左对齐) 、c(居中) 、r(右对齐) 和s(分散对齐))
|
\fbox{...}
|
带边框的水平盒子 |
同\mbox
|
\framebox[<width>][<align]{...}
|
带边框的水平盒子 |
同\makebox
|
\parbox[<align>][<height>][<inner-align>]{<width>}{...}
|
垂直盒子 |
1. <align>:盒子和周围文字的对其情况 2. <height>:盒子的高度 3. <inner-align>:内容的对齐方式(可选择t (顶部对齐) 、c(居中) 、b(底部对齐) 和s(分散对齐)) 4. <width>:盒子的宽度 |
\rule[<raise>]{<width>}{<height>}
|
标尺盒子 |
1.<raise>:相对于基线提高的高度(可正可负) 2. <width>:盒子的宽度 3. <height>:盒子的高度 |
4.9 浮动体
浮动体的内容可以脱离上下文,放置在合适的位置
\begin{<env>}[<placement>]
...
\end{<env>}
参数
- <env>:表示浮动体的类型,可以是
figure
或table
- <placement>:使用一些符号来表示浮动体允许排版的位置,默认位置为
[tbp]
参数 含义 h 当前位置 t 顶部 b 底部 p 单独成页 ! 决定位置时忽略限制 - <env>:表示浮动体的类型,可以是
说明
- 排版位置与参数顺序无关,
LaTeX
总是以h-t-b-p
的优先级决定浮动提的位置 - 限制浮动提的个数(每页不超过3个,其中顶部不超过2个,底部不超过1个)和浮动体占页面的比例(默认顶部不超过70%,底部不超过30%)
\clearpage
命令会在另起一页前将所有推迟处理的浮动体排版成页,忽略htbp
等位置参数float
宏包提供的浮动提位置参数H
会取消浮动机制(将浮动体视为一般盒子),不能与htbp!
混用
- 排版位置与参数顺序无关,
扩展
- 双栏排版环境下,
table*
和figure*
环境用来排版跨栏的浮动体,此时<placement>参数只能使用tp
两个参数
- 双栏排版环境下,
4.9.1 标题
命令 | 含义 | 说明 |
---|---|---|
\caption{<title>}
|
带编号标题 | <title>:浮动体标题 |
\caption*{<title>}
|
不带编号标题 | <title>:浮动体标题 |
\caption[<short-title>]{<title>}
|
带短标题的标题 |
1.<title>:浮动体标题 2. <short-title>:目录中浮动体短标题 |
扩展
- 交叉引用:
\caption
后可以跟\label
命令标记交叉引用 - 标题前缀:修改
\figurename
和\tablename
的内容可以修改浮动体的标题前缀 - 生成目录:
\listoftables
和\listoffigures
课可以生成浮动体格子的目录
- 交叉引用:
5 公式排版
命令(环境) | 含义 | 说明 |
---|---|---|
$...$
|
行内公式 | — |
equation 环境
|
带编号的行间公式 |
1. 可以使用\label 和\ref 生成交叉引用2. amsmath 的\eqref 命令为引用自动添加圆括号;\tag 命令手动修改公式编号;\notag 命令取消公式编号(等效于\nonumber )
|
equation* 环境
|
不带编号的行间公式 | — |
displaymath 环境
|
不带编号的行间公式 | — |
\[...\]
|
不带编号的行间公式 | — |
- 说明
- 数学公式排版需要导入
amsmath
(核心)、amsfonts
、amssymb
和amsthm
等宏包 - 行间公式的对齐、编号位置等有文档类选项控制:
fleqn
选项控制公式左对齐,leqno
控制编号放在公式左边 - 数学模式
- 输入的空格被忽略。符号间的间距由符号的性质决定
- 不允许有空行(分段),无法使用
\\
命令手动换行 - 所有字母当作数学公式中的变量处理,字母间距与文本模式不一致,也无法生成单词间的空格。如果需要输入整体文本,可以使用
\mathrm
命令或amsmath
的\text
命令
- 数学公式排版需要导入
5.1 数学符号
5.1.1 一般符号
命令 | 符号 |
---|---|
\alpha
|
α |
\beta
|
β |
\Gamma
|
Γ |
\Delta
|
Δ |
\infty
|
∞ |
\dots 或\ldots
|
… |
\cdots
|
⋯ |
\vdots
|
⋮ |
\ddots
|
⋱ |
5.1.2 上下标和导数
命令 | 符号 |
---|---|
^
|
上标 |
_
|
下标 |
'
|
导数 |
- 说明
- 上下标只作用于其后的一个符号
- 如果需要将多个符号作为上下标,需要将其放在花括号中
5.1.3 分式和根式
命令 | 符号 |
---|---|
\frac{<molecular>}{<denominator>}
|
分式 |
\sqrt{<base>}
|
算术平方根 |
\sqrt[<n>]{<base>}
|
平方根 |
- 参数
- <molecular>:分子
- <denominator>:分母
- <base>:底数
- <n>:次数
- 扩展
\dfrac
命令表示行内正常大小的分式,\tfrac
表示行内非正常大小的分式
5.1.4 常规运算符
命令 | 符号 |
---|---|
+、-、*、=
|
+、-、*、= |
\times
|
× |
\div
|
÷ |
\cdot
|
· |
\pm
|
± |
\mp
|
∓ |
\div
|
÷ |
\nabla
|
∇ |
\partial
|
∂ |
\pmod 或\bmod
|
求模 |
扩展
常用函数
\<func>
- 参数
- <func>:函数名,包括三角函数、双曲三角函数、指数函数、对数函数、最值、上下界、极限、行列式等
- 参数
自定义运算符
\DeclareMathOperator{\argh}{argh} % 带上下限的运算符 \DeclareMathOperator*{\nut}{Nut} % 带上下限的运算符
5.1.5 关系运算符
命令 | 符号 |
---|---|
>、<
|
>、< |
\ge
|
≥ |
\le
|
≤ |
\ne
|
≠ |
\approx
|
≈ |
\equiv
|
≡ |
\propto
|
∝ |
\sim
|
∼ |
5.1.6 巨算符
命令 | 符号 |
---|---|
\sum
|
∑ |
\prod
|
∏ |
\int
|
∫ |
\oint
|
∮ |
- 说明
- 巨算符在行内公式和行间公式中的大小和形状不同
\limits
使得上下标位于上下方,\limits
使得上下标位于右上、右下方
- 扩展
\substack
命令可以在下限位置书写多行表达式,\subarray
可以指定多行表达式的对齐方式
5.1.7 重音和上下括号
命令 | 符号 |
---|---|
\dot
|
单点重音 |
\ddot
|
双点重音 |
\vec 或\overrightarrow
|
向量箭头 |
\hat
|
上尖括号 |
\overline
|
上划线 |
\underline
|
下划线 |
\widehat
|
宽重音 |
\overbrace
|
上括号 |
\underbrace
|
下括号 |
5.1.8 箭头
命令 | 符号 |
---|---|
\leftarrow 或\gets
|
← |
\rightarrow 或\to
|
→ |
\xleftarrow
|
可伸展的左箭头 |
\xrightarrow
|
可伸展的右箭头 |
5.1.9 括号和定界符
命令 | 符号 |
---|---|
()
|
() |
[]
|
[] |
\{\}
|
{} |
\langle\rangle
|
⟨⟩ |
- 扩展
\left
和\right
命令可以改变定界符的大小;两者必须成对使用,包含的公式不可以换行;如果要分开使用,另一个要写成\left.
和\right.
\big
、\Big
、\bigg
、\Bigg
等命令可以生成固定大小的定界符。更常用的形式为\bigl
、\Bigl
、\biggl
、\Biggl
和\bigr
、\Bigr
、\biggr
、\Biggr
等,且不要求成对出现,包含的公式可以换行
5.2 多行公式
5.2.1 长公式换行
\begin{multiline}
... \\
...
\end{multiline}
- 说明
- 公式中使用
\\
命令换行 - 公式的编号放在最后一行
- 公式的首行左对齐、末行右对齐,其余居中
- 公式中使用
- 扩展
multiline*
环境排版不带编号的换行长公式- 换行原则
- 优先在等号之前换行
- 其次在加减号之前换行
- 再次在乘除号之前换行
- 其他位置避免换行
5.2.2 多行公式
\begin{align}
...
\end{align}
- 说明
- 公式使用
&
分隔为两部分并对齐,分隔符通常放在等号左边 - 该环境中每个公式都会编号(可以使用
\notag
取消某行的编号) - 为了让加号对齐,需要把分隔符放在等号右边,此时需要在等号后添加一对括号
{}
以产生正常的间距 - 一行有多组公式时,公式间用
&
分隔
- 公式使用
- 扩展
- 如果公式不需要等号对齐,只需罗列,可以使用
gather
环境
- 如果公式不需要等号对齐,只需罗列,可以使用
5.3 数组和矩阵
5.3.1 二维数组
\begin{array}
...
\end{array}
- 说明
- 类似于
tabular
环境,需要定义列格式 - 使用
\\
命令换行
- 类似于
- 扩展
- 也可以使用
cases
环境实现
- 也可以使用
5.3.2 矩阵
环境关键字 | 含义 |
---|---|
matrix
|
不带定界符的矩阵 |
pmatrix
|
带定界符() 的矩阵
|
bmatrix
|
带定界符[] 的矩阵
|
vmatrix
|
带定界符` |
Bmatrix
|
带定界符{} 的矩阵
|
Vmatrix
|
带定界符‖‖ 的矩阵
|
5.4 公式中的间距
命令 | 含义 |
---|---|
\quad
|
1个中文字符宽度的空格 |
\qquad
|
2个中文字符宽度的空格 |
\<Space>
|
1 / 3个中文字符宽度的空格 |
\,
|
1 / 7个中文字符宽度的空格 |
\:
|
1 / 6个中文字符宽度的空格 |
\;
|
1 / 3个中文字符宽度的空格 |
\!
|
- 1/ 6个中文字符宽度的空格 |
5.5 字体
5.5.1 字体
命令 | 说明 |
---|---|
\mathnormal{<content>}
|
— |
\mathrm{<content>}
|
— |
\mathit{<content>}
|
— |
\mathbf{<content>}
|
— |
\mathsf{<content>}
|
— |
\mathtt{<content>}
|
— |
\mathcal{<content>}
|
需调用eucal 宏包
|
\mathscr{<content>}
|
需调用mathrsfs 宏包
|
\mathfrak{<content>}
|
需调用amssymb 或eufrak 宏包
|
\mathbb{<content>}
|
需调用amssymb 宏包
|
- 参数
- <content>:设置字体的内容
5.5.2 尺寸
命令 | 说明 |
---|---|
\displaystyle
|
行间公式尺寸 |
\textstyle
|
行内公式尺寸 |
\scriptstyle
|
上下标尺寸 |
\scriptscriptstyle
|
次级上下标尺寸 |
5.5.3 加粗
环境关键字 | 说明 |
---|---|
\boldsymbol
|
需调用amsbsy 宏包
|
\bm
|
需调用bm 宏包
|
5.6 定理
\newtheorem{<theorem-env>}{<title>}[<section-level>]
\newtheorem{<theorem-env>}[<counter>]{<title>}
参数
- <theorem-env>:定理环境名称
- <title>:定理环境标题
- <section-level>:章节级别,定理序号为章节的下一级序号
- <counter>:自定义的计数器名称
说明
- 默认的定理环境格式为粗体标签、斜体正文、定理名用小括号包裹
扩展
使用
amsthm
宏包自定义定理格式\theoremstyle{<style>}
参数
<style>:定理格式,预定义的有三种
格式 说明 plain LaTeX原始格式 definition 使用粗体标签、正体内容 remark 使用斜体标签、正体内容
扩展
\newtheoremstyle
命令可以自定义定理格式
使用
amsthm
宏包的proof
环境排版定理的证明过程\begin{proof} ... \end{proof}
- 说明
- 环境末尾会自动添加证毕符号
- 如果行末是一个不带编号的公式,符号会另起一行,可使用
\qedhere
命令将符号放在公式末尾 - 证毕符号使用
\qedsymbol
命令定义,可以使用\renewcommand
命令(见下文)进行修改
- 说明
6 排版样式
6.1 字体
6.1.1 字体
全局命令 | 局部命令 | 字体英文 | 字体中文 |
---|---|---|---|
\rmfamily
|
\textrm{...}
|
roman | 衬线字体(罗马体) |
\sffamily
|
\textsf{...}
|
sans serif | 无衬线字体 |
\ttfamily
|
\texttt{...}
|
typewriter | 等宽字体 |
\mdseries
|
\textmd{...}
|
medium | 正常粗细(中等) |
\bfseries
|
\textbf{...}
|
bold face | 粗体 |
\upshape
|
\textup{...}
|
upright | 直立体 |
\itshape
|
\textit{...}
|
italic | 意大利斜体 |
\slshape
|
\textsl{...}
|
slanted | 倾斜体 |
\scshape
|
\textsc{...}
|
small caps | 小字母大写 |
\em
|
\emph{...}
|
emphasized | 强调,默认斜体 |
\normalfont
|
\textnormal{...}
|
normal font | 默认字体 |
6.1.2 字号
命令 | 10pt选项(默认) | 11pt选项 | 12pt选项 |
---|---|---|---|
\tiny
|
5pt | 6pt | 6pt |
\scriptsize
|
7pt | 8pt | 8pt |
\footnotesize
|
8pt | 9pt | 10pt |
\small
|
9pt | 10pt | 10.95pt |
\normalsize
|
10pt | 10.95pt | 12pt |
\large
|
12pt | 12pt | 14.4pt |
\Large
|
14.4pt | 14.4pt | 17.28pt |
\LARGE
|
17.28pt | 17.28pt | 20.74pt |
\huge
|
20.74pt | 20.74pt | 24.88pt |
\Huge
|
24.88pt | 24.88pt | 24.88pt |
扩展
设置任意大小的字号的命令
\fontsize{<size>}{<base line-skip>}
- 如果需要作用于局部,需要使用花括号分组
更改字体
% 西文字体 \setmainfont[<font-features>]{<font-name>} \setsansfont[<font-features>]{<font-name>} \setmonofont[<font-features>]{<font-name>}% 中文字体(需要导入xeCJK宏包) \setCJKmainfont[<font-features>]{<font-name>} \setCJKsansfont[<font-features>]{<font-name>} \setCJKmonofont[<font-features>]{<font-name>}
- <font-features>:手动配置对应的粗体和斜体的选项
- <font-name>:字体的文件名(带扩展名)或字体的英文名称
6.2 段落
6.2.1 长度单位
单位 | 含义 |
---|---|
pt
|
点阵宽度,1 / 72.27in
|
bp
|
点阵宽度,1 / 72in
|
in
|
英寸 |
cm
|
厘米 |
mm
|
毫米 |
em
|
当前字号下大写字母M的宽度,常用于水平距离的设定 |
ex
|
当前字号下小写字母x的宽度,常用于锤子距离的设定 |
弹性长度:
<base> plus <offset1> minus <offset2>
表示[<base> - <offset2>, <base> + <offset1>],其中<base>、<offset1>和<offset2>都需要带单位长度的数值可以用长度变量本身或其倍数来表达
自定义长度变量
命令 含义 说明 \newlength{<length-name>}
定义长度变量 <length-name>:长度变量名 \setlength{<length-name>}{<length>}
长度变量赋值 1. <length-name>:长度变量名
2. <length>:长度值\addtolength
增加变量长度 1. <length-name>:长度变量名
2. <length>:长度值
6.2.2 行距
\linespread{<factor>}
参数
- <factor>:作用于行距。缺省的基础行距是1.2倍字号大小
说明
- 字号的改变是即时生效的,而行距的改变直到文字分段时才生效
扩展
- 如果要局部的改变某个段落的行距,需要使用命令
\selectfont
使\linespread
命令立即生效
- 如果要局部的改变某个段落的行距,需要使用命令
6.2.3 段落格式
\setlength{<format>}{<length>}
参数:
- <format>:缩进格式,由以下命令定义
命令 含义 \leftskip
左缩进 \rightskip
右缩进 \parindent
首行缩进 - <length>:缩进的距离
说明
- 和行距一样,在分段时生效
- 默认情况下,章节标题命令后的第一段不缩进,但是可以调用
indextfirst
宏包进行修改
扩展
局部不缩进命令
\noindent
局部缩进命令
\indent
- 多个
\indent
命令可以累加缩进量
- 多个
6.2.4 水平间距
\hspace{<length>}
参数
- <length>:间距长度
说明
- 如果该命令位于一行的开头或者结尾,可能会因为换行而不显示
\quad
和\qquad
命令分别相当于\hspace{1em}
和\hspace{2em}
扩展
使用
\hspace*
命令生成的间距不会应为换行而不显示弹性长度命令:基础长度为0pt,可以无限延伸直至占满可用空间(可用于水平长度和垂直长度)
\stretch{<n>}
- <n>:权重参数。如果一行内出现多个
\stretch{<n>}
,则这一行的所有可用空间按照权重进行分配
- <n>:权重参数。如果一行内出现多个
6.2.5 垂直间距
\vspace{<length>}
参数
- <length>:间距长度
说明
- 如果该命令位于一页的顶端或者底端,可能会因为分页而不显示
- 预定义的垂直间距:
\bigskip
、\medskip
和\smallskip
- 该命令之引入垂直间距而不会换行,而
\\
命令在引入垂直间距的同时还会换行
扩展
- 使用
\vspace*
命令生成的间距不会因为分页而不显示
- 使用
6.3 页面
6.3.1 页面参数
% 方式一
\usepackage{geometry}
\geometry{<geometry-settings>}% 方式二
\usepackage[<geometry-settings>]{geometry}
参数
- <geometry-settings>:页面参数,包括上下(垂直)左右(水平)间距等,多以键值对的形式给出
说明
geometry
宏包调用时需要注意:LaTeX
+dvipdfmx
命令下需要指定选项dvipdfm
pdfLaTeX
和XeLaTeX
命令下不需要
6.3.2 内容垂直对齐
\raggedbottom
\flushbottom
6.3.3 分栏
% 一栏
\oneclumn% 两栏
\twocolumn[<one-column top material>]
参数
- <one-column top material>:双栏模式下排版一部分单栏内容
说明
- 切换单/双栏排版时会另起一页
- 双栏模式下
\newpage
命令换栏,\clearpage
命令换页 - 双栏排版下每一栏的宽度为
\columnwidth
,即\textwidth
减去\columnsep
的差除以2 - 两栏之间有一道竖线,宽度为
\columnseprule
(默认为零)
扩展
利用
multicol
宏包的环境multicols
分栏\begin{multicols}{<n>} ... \end{multicols}
- <n>:要分成的栏数
说明
multicol
宏包能够在一页中切换单栏/多栏,也能跨页分栏且栏高分布平衡multicols
环境中浮动体失效,只能使用跨栏的浮动体或者float
宏包提供的H
参数固定浮动体的位置
6.3.4 页眉页脚
% 全局样式
\pagestyle{<page-style>}% 当前页样式
\thispagestyle{<page-style>}
参数
- <page-style>:页面样式,可选的样式如下
样式 说明 empty 页眉页脚为空 plain 页眉为空,页脚为页码。( article
和report
文档类和book
文档类第一章默认样式)headings 页眉为章节标题和页码,页脚为空( book
文档类默认)myheadings 页眉为页码及 \markboth
和\markright
命令手动指定的内容,页脚为空- 说明
article
文档类:twoside 选项偶数页为页码和节标题,奇数页为小节标题和页码;oneside 选项页眉为节标题和页码book/report
文档类:twoside 选项偶数页为页码和章标题,奇数页为节标题和页码;oneside 选项页眉为章标题和页码
说明:
- 默认页眉的内容全部转为大写字母,可以通过以下命令修改
book/report
文档类:\chaptermark
和\sectionmark
article
文档类:\sectionmark
和\subsectionmark
- 默认页眉的内容全部转为大写字母,可以通过以下命令修改
扩展
改变页码样式命令:每次修改后页码充值为1
\pagenumbering{<style>}
- <style>:页码样式,默认为arabic(阿拉伯数字),可修改为roman(小写罗马数字)、Roman(大写罗马数字)等
修改页眉页脚内容命令
\markright{<right-mark>}\markboth{<left-mark>}{<right-mark>}
- <left-mark>:左页(偶数页)的内容
- <right-mark>:右页(奇数页)的内容
fancyhdr
宏包修改页眉页脚步骤
- 使用样式
\pagestyle{fancy}
- 定义页眉页脚
命令 含义 \fancyhf[<position>]{<content>}
定义页眉和页脚 \fancyhead[<position>]{<content>}
定义页眉 \fancyfoot[<position>]{<content>}
定义页脚 - <positon>:可以是
L(左) / C(中) /R(右)
与O(奇数页) / E(偶数页)
的字母组合 - <content>:为显示的内容
扩展
使用
\fancypagestyle
命令自定义页眉页脚样式% 自定义页眉页脚样式mystyle \fancypagestyle{mystyle}{ % \fancyhf{} \fancyhead{...} \fancyfoot{...} } % 使用样式 \pagestyle{mystyle}
7 特色工具
7.1 参考文献:BIBTEX工具
%基本的使用
\cite{<citation>}\begin{thebibliography}{<widest-label>}
\bibitem[<item-no>]{<citation>} ...
\end{thebibliography}
- 参数
- <citation>:引文的参考文献的标签
- <item-no>:自定义参考文献的编号。如果省略,则使用自然排序给定的序号
- <widest-label>:参考文献序号的最大宽度,如99意味着不超过两位数
- 扩展
\cite
命令可带一个可选参数,为引用的编号后加上额外的内容
7.1.1 BiBTeX数据库
BiBTeX数据库以
.bib
作为扩展名,其内容是若干个文献条目
常用的类型条目有
类型 | 含义 | 必需字段 | 可选字段 |
---|---|---|---|
article
|
学术论文 | author, title, journal, year | volume, number, pages, doi等 |
book
|
书籍 | author/editor, title, publisher, year | volume/number, series, address等 |
incollection
|
论文集中的一篇 | author, title, booktitle, publisher, year | editor, volume/number, chapter, pages, address等 |
inbook
|
书中的一章 | author/editor, title, chapter/pages, publisher, year | volume/number, series, address等 |
7.1.2 BiBTeX样式
\bibliographystyle{<bst-name>}
参数
- <bst-name>:
.bst
样式文件名,不带扩展名
- <bst-name>:
扩展
列出未被引用的文献
\nocite{<citation>}\nocite{*} % 列出所有未被引用的文献
- 参数
- <citation>:引文的参考文献的标签
- 参数
列出参考文献
\bibliography{<bib-name>}
- 参数
- <bib-name>:BiBTeX数据库的文件名,不带扩展名
.bst
- <bib-name>:BiBTeX数据库的文件名,不带扩展名
- 参数
natbib
宏包使用人名-年份引用文献
\citep{<citation>} \citet{<citation>}
- 参数
- <citation>:引文的参考文献的标签
- 参数
数字引用(支持序号压缩)
\usepackage[numbers,sort&compress]{natbib}
7.2 索引:makeindex工具
导言区调用
makeidx
宏包,并开启索引的收集\usepackage{makeidx} \makeindex
在需要索引的地方使用
\index
命令;需要输出索引的地方使用\printindex
命令
7.3 颜色
% 方式一
\color{<color-name>}% 方式二
\color[<color-mode>]{<code>}
- 参数
- <color-name>:已定义的颜色名
- <color-mode>:颜色模式,
color
宏包rgb,cmyk和gray等模式,xcolor
还支持hsb等 - <code>:颜色值
- 说明
- 需要导入颜色宏包
color
或xcolor
- 需要导入颜色宏包
7.3.1 自定义颜色
\definecolor{<color-name>}{<color-mode>}{<code>}
参数
<color-name>:颜色名
<color-mode>:颜色模式
<code>:颜色值
7.3.2 带颜色文本
% 方式一
\textcolor{<color-name>}{<content>}% 方式二
\textcolor[<color-mode>]{<code>}{<content>}
参数
<color-name>:颜色名
<content>:文本内容
<color-mode>:颜色模式
<code>:颜色值
7.3.3 带颜色盒子
% 方式一
\colorbox{<color-name>}{<content>}
\fcolorbox{<fcolor-name>}{<color-name>}{<content>}% 方式二
\colorbox[<color-mode>]{<code>}{<content>}
\fcolorbox[<color-mode>]{<fcode>}{<code>}{<content>}
参数
<color-name>:填充颜色名
<fcolor-name>:边框颜色名
<content>:文本内容
<color-mode>:颜色模式
<code>:填充颜色值
<fcode>:边框颜色值
7.4 超链接
配置参数
\hypersetup{<opt1>, <opt2>=<value>, ...} \usepackage[<opt1>, <opt2>=<value>, ...]{hyperref}
<optN>:配置参数,常用参数如下
参数 默认值 含义 colorlinks=<true/false>
false 链接文字是否带颜色 hidelinks
— 取消链接的颜色和边框 pdfborder={<n>, <n>, <n>}
0 0 1 超链接边框设置,设置为0 0 0可取消边框 bookmarks=<true/false>
true 是否生成书签 bookmarksopen=<true/false>
false 是否展开书签 bookmarksnumbered=<true/false>
false 书签是否带章节编号 CJKbookmarks=<true/false>
false 使用 CJK
宏包 / GBK编码排版中文时必须要设定的参数,需要将生成的.out
文件用工具处理编码,或调用xCJK2uni
宏包unicode
— 使用 CJKutf8
宏包 / UTF-8编码排版中文时必须设定的参数pdftitle=<string>
空 标题 pdfauthor=<string>
空 作者 pdfsubject=<string>
空 主题 pdfkeywords=<string>
空 关键词 pdfstartview=<Fit/FitH/FitV>
Fit 设置PDF页面以适合页面(默认)/适合宽度/适合高度等方式显示
添加超链接
\url{<url>} % 带颜色的超链接 \nolinkurl{<url>} % 不带颜色的超链接 \href{<url>}{<text>} % 自定义文字的超链接
参数
- <url>:超链接地址
- <text>:超链接显示的内容
说明
- 默认的超链接文字外有一个带颜色的边框(打印PDF是不打印该边框),可以指定
colorlinks
参数或修改pdfborder
参数去掉边框
- 默认的超链接文字外有一个带颜色的边框(打印PDF是不打印该边框),可以指定
扩展
标签超链接
\hyperref{<label>}{<text>}
- 参数
- <label>:超链接的标签
- <text>:超链接显示的内容
- 参数
7.5 PDF
7.5.1 书签
\pdfbookmark[<level>]{<bookmark>}{<anchor>}
- 参数
- <level>:书签的层级,默认为0
- <bookmark>:书签名称
- <anchor>:书签项使用的锚点
7.5.2 文档属性
见上表
8 自定义
8.1 命令
8.1.1 定义新命令
\newcommand{<name>}[<num>]{<definition>}
- 参数
- <name>:命令名,包括反斜线
- <num>:参数个数(最大为9)。如果缺省,默认为0
- <definition>:命令的定义
- 说明
- 不能定义与现有命令重名的命令
- 扩展
\providecommand
命令:在命令不存在时,定义新命令;否则,仍沿用命令原来的定义
8.1.2 重定义命令
\renewcommand{<name>}[<num>]{<definition>}
- 参数
- <name>:命令名,包括反斜线
- <num>:参数个数(最大为9)。如果缺省,默认为0
- <definition>:命令的定义,定义中使用
#n
指定第n个参数,起到占位的作用
8.2 环境
8.2.1 定义新环境
\newenvironment{<name>}[<num>]{<before>}{<after>}
- 参数
- <name>:环境名
- <num>:参数个数(最大为9)。如果缺省,默认为0
- <before>:内容在环境包含的文本之前处理
- <after>:内容遇到
\end{<name>}
命令时处理
8.2.2 重定义环境
\renewenvironment{<name>}[<num>]{<before>}{<after>}
- 参数
- <name>:环境名
- <num>:参数个数(最大为9)。如果缺省,默认为0
- <before>:内容在环境包含的文本之前处理
- <after>:内容遇到
\end{<name>}
命令时处理
8.3 宏包和文档类
8.3.1 编写文档类
文档类以
.cls
作为扩展名开头使用命令
\ProvidesClass{<class-name>}
- 参数
- <class-name>:文档类名,需要与文件名一致
- 参数
调用文档类
\LoadClass[<options>]{<class-name>}
- 参数
- <options>:文档类选项
- <class-name>:文档类名
- 参数
8.3.2 编写宏包
宏包以
.sty
作为扩展名开头使用命令
\ProvidesPackage{<pkg-name>}
- 参数
- <pkg-name>:宏包名,需要与文件名一致
- 参数
在宏包中调用其他宏包
\RequirePackage[<options>]{<pkg-name>}
- 参数
- <options>:宏包选项
- <pkg-name>:宏包名
- 参数
8.4 计数器
命令 | 计数器 | 说明 |
---|---|---|
\chapter
|
chapter | 有上下级关系 |
\section
|
section | 有上下级关系 |
\part
|
part | 独立 |
\enumerate
|
enumi, enumii, enumiii, enumiv | 有上下级关系 |
\table
|
table |
article 中独立,book/report 中以chapter 为上级计数器
|
\figure
|
figure |
article 中独立,book/report 中以chapter 为上级计数器
|
\equation
|
equation |
article 中独立,book/report 中以chapter 为上级计数器
|
\footnote
|
footnote | — |
页码 | page | — |
- 说明
- 章节编号的深度
secnumdepth
:如果章节的层级大于该值,那么章节的标题、在页眉页脚的标题都不编号;article
文档类中默认为3,book
和report
文档类中默认为2;可以通过\setcounter
命令设置该值 - 目录深度
tocdepth
:如果章节的层级大于该值,那么章节的标题不会写入目录项;article
文档类中默认为3,book
和report
文档类中默认为2;可以通过\setcounter
命令设置该值
- 章节编号的深度
8.4.1 定义计数器
\newcounter{<counter-name>}[<parent-counter-name>]
- 参数
- <counter-name>:计数器名
- <parent-counter-name>:父计数器名
8.4.2 修改计数器
\setcounter{<counter-name>}{<number>} % 将计数器<counter-name>的值设置为<number>
\addtocounter{<counter-name>}{<number>} % 将计数器<counter-name>的值增加<number>
\stepcounter{<counter-name>⟩} % 将计数器<counter-name>的值加1,并将下级计数器置0
- 参数
- <counter-name>:计数器名
- <number>:数值
8.4.3 修改输出格式
\renewcommand\the<counter>{<format>}
参数
\the<counter>:计数器的输出格式定义,如
\thechapter
、\thesection
等<format>:计数器格式。常用的格式如下
命令 样式 范围 \arabic
阿拉伯数字(默认) \alph
小写字母 0-26 \Alph
大写字母 0-26 \roman
小写罗马数字 非负整数 \Roman
大写罗马数字 非负整数 \fnsymbol
一些列符号,用于 \thanks
命令生成的脚注0-9
说明
- 计数器的输出格式还可以利用其他字符,也可以与其他计数器输出格式的组合
8.5 可定制命令和参数
8.5.1 标题名称/前后缀等
命令 | 默认值 | 含义 |
---|---|---|
\partname
|
Part |
\part 命令生成的标题前缀
|
\chaptername
|
Chapter |
\chapter 命令生成的标题前缀
|
\appendixname
|
Appendix |
\appendix 命令生成的附录部分的章标题前缀
|
\abstractname
|
Abstract |
abstract 环境生成的标题名称
|
\contentsname
|
Contents |
\tableofcontents 命令生成的目录标题
|
\listfigurename
|
List of Figures |
\listoffigures 命令生成的插图目录标题
|
\listtablename
|
List of Tables |
\listoftables 命令生成的表格目录标题
|
\figurename
|
Figure |
figure 浮动体中\caption 命令生成的标题前缀
|
\tablename
|
Table |
table 浮动体中\caption 命令生成的标题前缀
|
\refname
|
References |
thebibliography 环境或\bibliography 命令生成的参考文献标题(article 文档类)
|
\bibname
|
Bibliography |
thebibliography 环境或\bibliography 命令生成的参考文献标题(book/report 文档类)
|
\indexname
|
Index |
\printindex 命令生成的索引标题
|
- 说明
- 以上所有命令可以使用
\renewcommand
命令来修改
- 以上所有命令可以使用
8.5.2 长度
命令 | 默认值 | 含义 |
---|---|---|
\fboxrule
|
0.4pt |
\fbox 或\framebox 等带框盒子的线宽
|
\fboxsep
|
3pt |
\fbox 或\framebox 等带框盒子的内边距
|
\arraycolsep
|
5pt |
array 环境的表格项前后的间距
|
\tabcolsep
|
6pt |
tabular 环境的表格项前后的间距
|
\arrayrulewidth
|
0.4pt | 表格线宽 |
\doublerulesep
|
2pt | 连续两根表格线之间的间距 |
\abovecaptionskip
|
10pt |
\caption 命令位于表格下方时,与上方图表的间距
|
\belowcaptionskip
|
0pt |
\caption 命令位于表格上方时,与下方图表的间距
|
\columnsep
|
10pt | 双栏排版下两栏的间距 |
\columnseprule
|
0pt | 双栏排版下两栏之间竖线的宽度 |
- 说明
- 以上所有命令可以使用
\setlength
命令来修改
- 以上所有命令可以使用
参考资料
- LaTeX基础——格式与命令 - FBshark - 博客园 (cnblogs.com)
- 一份其实很短的 LaTeX 入门文档 | 始终 (liam.page)
- 中文版Latex常用语法大全教程_tianzong2019的博客-CSDN博客_latex语法
- LaTeX详细教程+技巧总结_NSJim的博客-CSDN博客_latex使用教程
- LaTeX基础使用手册 | Personal Blog (albertyzp.github.io)
- LaTeX公式手册(全网最全) - 樱花赞 - 博客园 (cnblogs.com)
- LaTeX数学公式-详细教程_NSJim的博客-CSDN博客_latex数学公式
【工具篇-LaTeX】LaTeX语法相关推荐
- matlab tex语法,latex基本语法
LaTex基本语法 1.LaTeX文件的框架如下: \documentclass{article} \begin{document} This is the body of the article \ ...
- LaTeX 入门-语法
LaTeX 入门 - 语法 一.使用 LaTeX 优点 这里首先说明,并不是因为 Word 排版不好才使用 LaTeX.之所以 Word 排版不美观,很大一部分是因为上手太简单,很少有人在使用 Wor ...
- Latex 公式 语法 [维基百科]
Latex 公式 语法 - [维基百科] 维基百科地址 维基百科-离线网页 1.PDF 2.html 一个[Latex在线编辑&公式转图片]网站 一个ubuntu下的Latex公式编辑器 后续 ...
- LaTeX 进阶语法
文章目录 LaTeX进阶语法 一. 样式排版 1. 字体和字号 1.1 字体样式 1.2 字号 1.3 ctex宏包更改中文字体 1.4 文字装饰 2. 段落格式和间距 2.1 长度和长度变量 2.2 ...
- latex c语言字体,LaTex基本语法-和word对应的字体等(转).doc
LaTex基本语法-和word对应的字体等(转) LaTex基本语法-和word对应的字体等(转) LaTex基本语法 1.LaTeX文件的框架如下:\documentclass{article}\b ...
- LaTeX 常用语法格式总结 列表计数、图、公式、表格、参考文献环境
LaTeX 常用语法格式总结 文章目录 LaTeX 常用语法格式总结 列表与计数 列表 **enumerate**与**itemize**默认结构 **enumerate**与**itemize**自 ...
- 全面整理Typora的Latex数学公式语法
全面整理Typora的Latex数学公式语法 1.公式输入 行间公式 "段落"->"公式块" Command+Option+B $$+回车 行内公式 $$ ...
- 在VSCode中使用LaTex,语法检测插件grammarly
整个文章分为以下几个内容,打 * 的是必须要安装的 LaTex 安装* VSCode 安装* 在 VSCode 中配置 LaTex Grammarly语法检测插件 LaTex 安装* latex的下载 ...
- 机器学习从理论到工程的第二步-开发环境与工具篇(下)
好啦~继续昨天的<第二步--开发环境与工具篇(上)>~ 其实有点尴尬啦,本来想一篇讲完的,结果小夕太啰嗦了,还没有开始讲正文,就写了快2000字了...所以说,这一篇是上一篇的正文... ...
最新文章
- 请问有办法加速TTS的反应时间吗
- 简单看看PageHelper的配置
- ocr移动端车牌识别技术特点
- 向xxxhub发了一个数据包,发现了···
- twitter api使用_使用P2创建自己的Twitter风格的组博客
- 阿里研究院入选中国企业智库系统影响力榜
- linux-用户管理
- 基于OPENldap搭建postfix 虚拟用户
- 企业级工作流解决方案(十六)--工作流--工作流实体模型
- matlab第六章课后答案,matlab作业第6章
- Judge whether the user is in some windows group.
- vmware tools 的安装(Read-only file system 的解决)
- 中文语音识别系统搭建流程笔记
- Python3之logging模块
- MongoDB干货系列1-定期巡检之Mtools
- 全网首发:怎样加快android doubango的编译速度?
- Chapter 5 : 索引和算法
- 微信小程序开发(十二)小程序画布组件canvas
- Python关键词百度指数采集,抓包Cookie及json数据处理
- 软件工程网络15个人作业3(201521123010徐璐琳)
热门文章
- 如何利用并发性加速你的python程序(二):I/O 绑定程序加速...
- 视频录制30帧还是60帧清晰?
- 10 款最佳剪贴板管理器
- 集丰照明|无主灯智能照明设计,从构想到实现的“八步走”
- 【观察】紫光云正用“中国速度”,实现公有云“中国奇迹”
- linux系统调用和内存管理以及栈帧
- gitlab邮箱配置 及 163邮箱发件失败
- 专科计算机信息管理专业毕业论文,《计算机信息管理》专业的毕业论文参考题目...
- 华师2017高等工程数学期末试题
- Share a link about Resposive Web Design