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