1. LaTeX 命令的基本架构
LaTex 排版系统对于格式控制、公式编辑比 Word 更加灵活、准确。
Tex 环境中,字符、图片等各种文档内容都装在不同的盒子(box)容器内。这些盒子根据 Tex/Latex 的默认规则和控制命令组合为更大的盒子。字符组合为单词,单词组合为语句。语句在装载到页面盒子时,根据版面格式分解成行列。
LaTex 提供不同层次的命令设置文档版面,从最底层向上依次是:Tex 基础命令、LaTeX 宏命令、.cls 类文件和 .sty 扩展包。
-
TeX 有300多个基础命令(primitive),是最底层的控制命令。例如:
\hbox
。这些基础命令难记难懂,我们通常不直接使用。 -
LaTex 的核心是一组建立在 TeX 基础命令上的宏命令,是对 TeX 基础命令的封装。例如:
\documentclass
、\usepackage
、\begin
。 -
类文件以 .cls 为扩展名,使用
\documentclass
命令来加载类文件。例如:foo.cls
。 -
扩展包以 .sty 为扩展名,使用
\usepackage
命令来加载扩展包。例如:pic.sty
。
2. LaTeX 控制命令
控制命令的形式
LaTeX 命令以反斜线 \
开头,由反斜线与后面的命令字符组成:
\command {a}[b]
命令字符 command
是单个非字母符号(\$
)或字符串(\LaTeX
)。
命令字符对大小写敏感,\LaTeX
与 \Latex
或 \latex
都是不同的,错误的大小写可能会报错。
字母形式的 LaTeX 命令忽略其后的所有连续空格。如果必须引入空格,需要在命令后面加一对花括号,将空格放在花括号内。例如:\TeX{ }
控制命令的参数
控制命令可以带有参数,LATEX 的参数分为可选参数和必选参数。
- 必选参数:以花括号
{
和}
包裹。例如:{a} - 可选参数:以方括号
[
和]
包裹。例如:[b] - 有的命令可以带一个星号
*
,可以视为一种特殊的可选参数。例如:\section*{Notice}
当传入多个参数的时候,需要多个括号进行包裹,而不能将多个参数写在同一个括号内。例如:\command{para1}{para2}
控制命令的环境
环境就是我们为正文特定部分所设定的格式,方便编辑文档时使用。
我们用一些命令设置好预定空间/区域的格式,即编译好之后最终的展示格式。例如摘要格式、引文格式、公式格式。
环境设置使用一对命令\begin
和\end
包裹。
\begin{<environment name>}[<optional arguments>]{<mandatory arguments>}
...
\end{<environment name>}
其中,⟨environment name⟩ 为环境名,\begin 和 \end 中的环境名应当相同。
控制命令的作用域
控制命令的作用域,是指该控制命令仅在指定的局部区域生效。
例如:命令\textsl
使用不同的参数,可以表示设置不同的作用域,分别在全文或局部区域生效。
\textsl message % 后续全部区域有效
\textsl{message} % 仅在括号内区域有效
{\textsl message} % 括号内命令后续区域有效
3. LaTeX 宏包
LaTex 的核心是一组建立在 TeX 基础命令上的宏命令,是对 TeX 基础命令的封装。例如:\documentclass
、\usepackage
、\begin
。
宏包就是 Latex 发行版(TexLive、MikTex等)的插件功能,通过安装不同的宏包可以实现一些复杂的排版功能,如复杂列表、插入公式、插入代码等。。
宏包往往包含一个或多个文件(.cls,.sty),利用 Tex 基础命令定义了新的命令,用来改变 Latex 默认的功能。
宏包的安装
编译文档时,如果引用了某个缺失的宏包,编译程序会报package missing的错误。
Latex 发行版经常自带一些常用的 CTAN 宏包,默认安装在路径 texmf/tex/latex/下,便用户快速编译 。
手动安装宏包,最好能直接下载 .sty 格式的文件, 可以直接复制到安装目录下的 \texmf-local\tex\latex\local 路径中,然后更新 Latex 索引文件即可完成。
具体操作在不同编辑器中略有不同。例如,在 Texlive 中的详细操作,参见本系列中的【LaTex实战笔记 4-插入 Python 程序代码块】:2.2 下载和安装 minted 宏包。
宏包的调用
使用 \usepackage
命令调用宏包:
\usepackage[options]{package-name}
使用 \usepackage
命令可以一次性调用多个宏包,在package-name中用逗号隔开。
常用宏包索引
胡伟《LaTeX2e完全学习手册(第二版)》 给出了常用宏包索引,列举如下。
宏包名 | 功能简介 | 胡伟《LaTeX》页码 |
---|---|---|
accents | 编排特殊的上变音符号 | 261 |
adjmulticol | 调整多栏环境内外边空宽度 | 167 |
afterpage | 控制浮动体 | 90 |
algorithm2e | 编排算法 | 310 |
alltt | 抄录环境 | 78 |
amsfonts | AMS字体宏包 | 260 |
amsgen | AMS其它宏包的内部命令 | 259 |
amsmath | 多种公式环境和数学命令 | 27 |
amsopn | 自定义新算符 | 259 |
amssymb | 数学符号 | 27 |
amstext | 在公式环境使用\text | 259 |
amsthm | 提供定理样式和证明环境 | 259 |
amsxtra | 定义可排版超宽变音符号 | 259 |
animate | 影像放映 | 340 |
anttor | 数学字体宏包 | 291 |
apalike | 文献格式 | 387 |
appendix | 附录宏包 | 400 |
arabtex | 阿拉伯文宏包 | 136 |
arev | 数学字体宏包 | 291 |
array | 数组和表格制作 | 27 |
arydshln | 虚线表格宏包 | 234 |
attachfile2 | 添加附件 | 400 |
aurical | 手写体宏包 | 113 |
avant | 字体宏包 | 109 |
babel | 多语言文字宏包 | 135 |
bbding | 图形符号 | 33 |
bbm | 数学字体宏包 | 291 |
biblatex | 文献宏包 | 390 |
bibnat | 文献格式宏包 | 387 |
bigstrut | 控制单元格大小 | 216 |
blkarray | 矩阵编排环境 | 285 |
bm | 提供粗体命令 | 293 |
bookman | 字体宏包 | 109 |
booktabs | 绘制水平表格线 | 226 |
boxedminipage | 边框环境 | 60 |
braket | 可变尺寸的定界符号 | 264 |
breqn | 长公式自动分段功能 | 272 |
calc | 四则运算 | 27 |
calctab | 表格环境和命令 | 237 |
calligra | 手写体宏包 | 113 |
cancel | 数学式中的消项操作 | 264 |
caption | 插图和表格标题格式设置 | 27 |
caption2 | 旧版图表标题宏包 | 199 |
cases | 特殊功能的公式环境 | 270 |
ccaption | 标题格式的修改 | 203 |
cCT | 中文处理方式 | 9 |
chancery | 手写体宏包 | 113 |
changepage | 局部版心宽度调整 | 145 |
chappg | 带章序号的页码 | 171 |
chapterbib | 章文献宏包 | 389 |
charter | 字体宏包 | 109 |
chemfig | 绘制化学分子式 | 37 |
chemstr | 化学宏包 | 36 |
chemsym | 化学元素定义 | 37 |
circ | 电子元件宏包 | 38 |
cite | 文献引用 | 378 |
cJK | 中文处理支持 | 9 |
cJKfntef | 下划线宏包 | 114 |
cJKnumb | 中文数字宏包 | 135 |
cJKpunct | 中文标点宏包 | 114 |
cJKulem | 下划线宏包的扩展 | 160 |
cmbright | 数学字体宏包 | 291 |
color | 早期的颜色宏包 | 93 |
colortab | 彩色表格宏包 | 233 |
colortbl | 彩色表格宏包 | 94 |
comment | 注释宏包 | 93 |
contour | 轮廓线或阴影效果 | 162 |
cooltooltips | 生成鼠标悬停注释窗 | 93 |
courier | 字体宏包 | 109 |
coverPage | 封面宏包 | 181 |
cprotect | 使用抄录命令 | 75 |
ctable | 表格宏包 | 357 |
ctex | 中文字体 | 6 |
ctexcap | 中文字体和标题 | 26 |
dashbox | 虚线盒子宏包 | 56 |
datetime | 日期格式宏包 | 179 |
dblfloatfix | 跨栏浮动环境 | 197 |
dcolumn | 小数点对齐宏包 | 229 |
delarray | 处理array环境 | 305 |
diagbox | 对角线宏包 | 230 |
dingbat | 符号宏包 | 34 |
dotlessi | 提供没有头的字母 i 和 j | 263 |
dpfloat | 控制双页的浮动内容排版 | 90 |
draftcopy | 草稿水印宏包 | 329 |
dsfont | 数学字体宏包 | 290 |
easy | 控制矩阵块行高平衡的宏包 | 285 |
easybmat | 分块矩阵宏包 | 284 |
eco | 字体宏包 | 109 |
emerald | 手写体宏包 | 113 |
endnotes | 尾注宏包 | 359 |
enumerate | 自定义列表环境 | 242 |
enumitem | 列表环境的自定义设置 | 256 |
epic | 化学宏包 | 36 |
epstopdf | 将eps图形改为pdf格式 | 403 |
eqnarray | 公式组环境 | 274 |
esint | 符号宏包,提供可变尺寸的运算符号 | 261 |
esopic | wallpaper的辅助宏包 | 327 |
esvect | 箭头符号宏包 | 265 |
etex | biblatex宏包自动加载 | 390 |
eucal | 将数学式的字体改为欧拉书写体 | 260 |
eufrak | 哥特字体 | 260 |
euler | 数学字体宏包 | 291 |
eulervm | 数学字体宏包 | 292 |
eurosym | 欧元符号宏包 | 32 |
everb | 抄录宏包 | 269 |
exscale | 大型数学符号在标题环境中大小自适应 | 309 |
extarrows | 箭头符号宏包 | 265 |
extpfeil | 箭头符号宏包 | 265 |
faktor | 斜分数宏包 | 303 |
fancybox | 扩展功能的盒子宏包 | 55 |
fancyhdr | 页眉页脚设置 | 27 |
fancyvrb | 抄录格式设置 | 28 |
fge | 箭头宏包 | 265 |
fixcm | 字体尺寸宏包,ctex会自动调用 | 119 |
fixltx2e | 提供下标命令 | 32 |
flafter | 阻止浮动体被置于当前页顶部 | 434 |
float | 浮动体宏包 | 333 |
floatflt | 绕排宏包 | 326 |
floatrow | 对float的扩展 | 204 |
fontenc | 使用其他编码字符 | 43 |
fontsmpl | 查看字体字样 | 108 |
fontspec | 字体选择 | 28 |
footmisc | 脚注宏包 | 184 |
footnpag | 脚注序号宏包 | 353 |
fourier | 数学字体宏包 | 292 |
fouriernc | 数学字体宏包 | 292 |
framed | 边框宏包 | 268 |
ftnright | 双栏脚注 | 354 |
geometry | 版面尺寸设置 | 28 |
glossaries | 改进版术语表宏包 | 375 |
glossary | 旧版术语表宏包 | 372 |
graphics | 旧版的插图宏包 | 119 |
graphicx | 插图处理 | 314 |
graphpap | 坐标纸宏包 | 82 |
harpoon | 箭头宏包 | 265 |
harvard | 文献格式宏包 | 386 |
halvet | 字体宏包 | 445 |
hhtensor | 箭头宏包 | 265 |
hyperref | 创建超文本链接和PDF书签 | 26 |
hyphenat | 断词宏包 | 147 |
ifpdf | 判断当前是否为pdflatex | 88,437 |
ifsym | 杂项符号命令 | 34 |
ifthen | 条件判断 | 27 |
ifxetex | 判断当前是否为xelatex | 88 |
indentfirst | 所有段落首行缩进宏包 | 157 |
inputenc | 输入编码宏包 | 137 |
iwona | 数学字体宏包 | 292 |
keycommand | 定义带有多个可选子参数的命令 | 20 |
keyval | graphicx的成员宏包 | 318 |
kmath | 数学字体宏包 | 292 |
lastpage | 页码格式宏包 | 175 |
layout | 版面图示宏包( | 141 |
layouts | 双栏的版面图示宏包 | 141 |
lettrine | 首字下沉与上浮 | 161 |
lineno | 行号宏包 | 62 |
listings | 代码抄录宏包 | 78 |
lmodern | 一种编码字体 | 162 |
longtable | 制作跨页表格 | 27 |
lpic | 可在插图上添加任何LaTeX对象 | 332 |
ltablex | 扩展tabularx环境功能实现跨页 | 226 |
makecell | 旋转表格中的某一列标题 | 216 |
makeidx | 索引宏包 | 362 |
makerobust | 使脆弱命令转为坚强 | 424 |
marvosym | 货币符号宏包 | 33 |
mathabx | 符号宏包 | 35 |
mathbbol | 空心字宏包 | 294 |
mathbbold | 数学字体宏包 | 291 |
mathdesign | 符号宏包 | 261 |
mathdots | 数学省略号宏包 | 266 |
mathenv | 特殊功能的公式环境 | 270 |
mathpazo | 数学字体宏包 | 262 |
mathptm | 数学字体宏包 | 292 |
mathptmx | 使用TimesNewRoman字体 | 107 |
mathrsfs | 数学字体宏包 | 291 |
mathspec | 数学字体宏包 | 295 |
mathtools | 数学工具宏包 | 260 |
mattens | 符号宏包,用于编排张量或向量式 | 261 |
mcaption | 将插图或表格的标题置于边空中 | 436 |
mdwlist | 列表排版样式环境 | 238 |
media9 | 影像放映命令 | 340 |
metalogo | \XeTex、\LuaTeX等命令所需要的宏包 | 44 |
metre | 符号宏包 | 264 |
mflogo | 生成METAFONT的logo | 20 |
mhchem | 化学分子式方程式 | |
microtype | 在pdflatex下自动调整字词间距 | 81 |
minitoc | 小型目录宏包 | 349 |
mnSymbol | 符号宏包 | 35 |
morefloats | 修改搁置浮动体的上限 | 436 |
multicap | 多栏标题宏包 | 168 |
multicol | 多栏排版 | 27 |
multido | 条件循环宏包 | 87 |
multimedia | 多媒体文件播放宏包 | 340 |
multind | 分类索引宏包 | 370 |
multirow | 跨行表格宏包 | 216 |
multitoc | 多栏目录宏包 | 348 |
musixdoc | 乐谱宏包 | 263 |
nameref | 标题引用宏包 | 186 |
natbib | 文献格式宏包 | 388 |
nath | 提供多种可变尺寸的定界符 | 264 |
nccmath | 调节文本与公式的间距 | 278 |
newcent | 一种字体宏包 | 109 |
newlfont | 简化字体命令 | 101 |
nicefrac | 斜分数宏包 | 303 |
ntheorem | 定理设置 | 27 |
oesch | 一种手写体宏包 | 113 |
overpic | 图形处理宏包 | 330 |
palatino | 字体宏包 | 109 |
paraliet | 列表宏包 | 248 |
paralist | 多种列表环境 | 27 |
parallel | 两列文本并列 | 162 |
parcolumns | 多列文本并列 | 163 |
parskip | 无缩进宏包 | 158 |
pbdiagram | 绘制交换图 | 290 |
pbsi | 一种手写体的依赖宏包 | 113 |
pdflscape | 横向版面宏包 | 145 |
pdfpages | 插入整页的pdf图片文件 | 318 |
pdfscreen | 一种制作幻灯片的宏包 | 437 |
pdfslide | 一种制作幻灯片的宏包 | 437 |
pgf | 绘图宏包 | 312 |
pgfplots | 绘图宏包 | 332 |
phonetic | 音标和变音符号 | 35 |
picinpar | 绕排宏包 | 326 |
pifont | 图形符号宏包 | 33 |
pinlabel | 可在PDF或EPS格式插图上添加文本或数学式 | 332 |
placeins | 处理浮动体的宏包 | 436 |
pmat | 排版分块矩阵 | 285 |
polyglossia | xelatex下的多语言宏包 | 136 |
prettyref | 修改引用格式 | 68 |
psfrag | 在EPS格式插图上添加文本、公式或图形等 | 332 |
pslatex | 一种字体宏包 | 109 |
pstcirc | 元件宏包 | 39 |
pstnode | 元件宏包 | 40 |
pstoptic | 光学符号 | 37 |
pstricks | 绘图宏包 | 40 |
pxfonts | 符号宏包 | 261 |
ragged2e | 对齐宏包 | 72 |
rccol | 数字对齐宏包 | 230 |
refcheck | 显示书签 | 429 |
relsize | 缩放宏包 | 308 |
remreset | 修改章节脚注序号 | 353 |
rotating | 只旋转表格中某个单元格的标题 | 216 |
rotfloat | floatrow扩展 | 333 |
setspace | 行距宏包 | 155 |
shadow | 阴影盒子宏包 | 56 |
shapepar | 调整异形段落尺寸 | 157 |
shorttoc | 简明目录宏包 | 349 |
shortvrb | 创建简短的抄录环境符号 | 文本 |
showidx | 显示索引宏包 | 430 |
showkeys | 书签名显示宏包 | 429 |
showlabels | 书签名显示宏包 | 429 |
sIunits | 解决\square名称冲突 | 33 |
siunitx | 单位符号宏包 | 34 |
slashbox | 对角线宏包 | 230 |
soul | 加宽文本字母间距 | 148 |
spreadtab | 制作电子表格 | 237 |
stmaryrd | 符号宏包 | 261 |
subdepth | 下标深度宏包 | 308 |
subeqnarray | 公式子序号宏包 | 274 |
subfig | 子浮动体 | 203 |
suetterl | 一种手写体宏包 | 113 |
supertabular | 多页表格宏包 | 222 |
syntonly | 取消编译过程,只对全文进行语法检查 | 426 |
t4phonet | 音标和变音符号 | 35 |
tabularx | 自动设置表格的列宽 | 27 |
tabulary | 总宽可设,列宽自动的表格环境 | 226 |
tdclock | 数字时钟宏包 | 469 |
tensor | 张量符号宏包 | 309 |
texnames | 提供标签命令 | 44 |
textcase | 取消章节标题转页眉时字母变大写 | 170 |
textcomp | 符号宏包 | 33 |
textpos | 提供文本块环境 | 330 |
tgchorus | 手写体宏包 | 113 |
theorem | 定理宏包 | 287 |
threeparttable | 设置表格脚注环境 | 357 |
tikz | 绘图宏包 | 312 |
times | 字体宏包 | 109 |
tipa | 音标符号宏包 | 35 |
tipx | 音标符号宏包 | 35 |
titleref | 标题引用宏包 | 186 |
titlesec | 章节标题格式设置 | 27 |
titletoc | 目录格式设置 | 28 |
tocbibind | 添加文献、索引、插图及其页码到目录 | 347 |
tocloft | 自定义构造目录 | 344 |
tracefnt | 字体追踪宏包 | 426 |
trfsigns | 符号宏包 | 264 |
turnstile | 符号宏包 | 264 |
txfonts | 字体宏包 | 109 |
typelcm | 字体尺寸宏包 | 119 |
typearea | 一些版面设置功能 | 144 |
ulem | 下划线宏包 | 159 |
undertilde | 编排特殊的下变音符号 | 261 |
unicodemath | 数学字体符号宏包 | 270 |
upgreek | 希腊字母宏包 | 262 |
upref | 控制引用命令的字体 | 259 |
url | beamer宏包会自动加载 | 437 |
utopia | 字体宏包 | 109 |
varioref | 引用宏包 | 243 |
vector | 编排向量式 | 261 |
verbatim | 抄录宏包 | 75 |
vmargin | 版面设置功能 | 144 |
wallpaper | 墙纸宏包 | 326 |
wasysym | 符号宏包 | 34 |
wrapfig | 可在小页中对图标绕排 | 326 |
xcolor | 颜色处理 | 28 |
xeCJK | 中日朝文字处理和字体选择 | 4 |
xfrac | 斜分数宏包 | 303 |
xkeyval | keycommand依赖宏包 | 84 |
xspace | 智能控制空格 | 19 |
xunicode | fontspec自动加载的相关宏包 | 122 |
xcolor | 颜色处理 | 437 |
xy | 绘制交换图 | 290 |
xymtex | 化学宏包,会自动加载epic、chemstr | 36 |
yfonts | 哥特字体依赖宏包 | 293 |
yhmath | 提供多种可变尺寸的定界符 | 264 |
(本文完)
版权声明:
youcans@xupt 原创作品,转载必须标注原文链接:(https://blog.csdn.net/youcans/article/details/125232875)
Copyright 2022 youcans, XUPT
Crated:2022-6-11