在`\documentclass[options]{doc-class}`与`\begin{document}`之前的内容就是导言区。这个区域可以留空,也可以进行文档前的配置工作。
提醒一下`%`后的是注释,类似于`python`中的`#`注释符
### 文档类
顾名思义,文档类就是标记文档的类型。文档类的定义必须在文档开头就注明。格式如下:
\documentclass[⟨options⟩]{⟨class-name⟩}
`class-name`为文档类的名称。article, book, report为最基本的三个文档类,因此常常称为这三个为 **标准文档类**
注意派生出的支持中文的文档类常见的有`ctexart` ,`ctexbook` , `ctexrep`
| 名称 | 说明 |
| --- | --- |
| article | 文章格式的文档类,广泛用于科技论文、报告、说明文档等。 |
| report | 长篇报告格式的文档类,具有章节结构,用于综述、长篇论文、简单的书籍等 |
| book | 书籍文档类,包含章节结构和前言、正文、后记等结构 |
| proc | 基于 article 文档类的一个简单的学术文档模板 |
| slides | 幻灯片格式的文档类,使用无衬线字体 |
| minimal | 一个极其精简的文档类,只设定了纸张大小和基本字号,用作代码测试的最小工作示例(Minimal Working Example) |
`options`为文档类可选项,规定一些排版的参数,如字号、纸张大小、单双面等等
对于标准文档类的可选项有
| 名称 | 说明 |
| --- | --- |
| 10pt, 11pt, 12pt | 指定文档的基本字号。默认为 10pt。 |
| a4paper, letterpaper,a5paper,b5paper,executivepaper 和 legalpaper | 指定纸张大小,默认为美式信纸 letterpaper (8.5 × 11 英寸) |
| twoside, oneside | 指定单面/双面排版。双面排版时,奇偶页的页眉页脚、页边距不同。article和 report 默认为 oneside,book 默认为 twoside。 |
| onecolumn, twocolumn | 指定单栏/双栏排版。默认为 onecolumn。 |
| openright, openany | 指定新的一章 \chapter 是在奇数页(右侧)开始,还是直接紧跟着上一页开始。report 默认为 openany,book 默认为 openright。对 article 无效 |
| landscape | 指定横向排版。默认为纵向。 |
| titlepage, notitlepage | 指定标题命令 \maketitle 是否生成单独的标题页。article 默认为notitlepage,report 和 book 默认为 titlepage |
| fleqn | 令行间公式左对齐。默认为居中对齐。 |
| leqno | 将公式编号放在左边。默认为右边。 |
| draft, final | 指定草稿/终稿模式。草稿模式下,断行不良的地方会在行尾添加一个黑色方块。默认为 final。 |
### 宏包
在使用Latex时,就像Python一样,会有许多第三方强大的模块。宏包就是这样的一个东西,用来增强LaTex的功能。
宏包的定义格式如下:
\usepackage[⟨options⟩]{⟨package-name⟩}
`\usepackage` 可以一次性调用多个宏包,在 `⟨package-name⟩`中用逗号隔开。这种用法一般不要指定选项。因为如果使用多个宏包时指定选项,相当于给每个宏包指定同样的选项。如果正好有某个宏包不能识别指定的选项,就会出错了。
% 一次性调用三个排版表格常用的宏包
\usepackage{tabularx, makecell, multirow}
注意,在调用宏包的时候,就像使用python那样,要确认你已经安装了它
当你不熟悉某个宏包的时候,在windows CMD终端输入
texdoc pkg-name
`pkg-name` 用包的名字替代一下
#### 常用宏包
不需要记忆,需要时候查阅即可。
##### 文字、公式和符号
amsmath %AMS 数学公式扩展。
mathtools %数学公式扩展宏包,提供了公式编号定制和更多的符号、矩阵等。
amsfonts %AMS 扩展符号的基础字体支持。
amssymb %在 amsfonts 基础上将 AMS 扩展符号定义成命令。
bm %提供将数学符号加粗的命令 \bm。
siunitx %以国际单位规范排版物理量的单位。
mhchem %排版化学式和方程式。
tipa %排版国际音标。
##### 排版元素
ulem %提供排版可断行下划线的命令 \uline 以及其它装饰文字的命令。
endnote %排版尾注。
marginnote %改善的边注排版功能。
multicol %提供将内容自由分栏的 multicols 环境。
multitoc %生成多栏排版的目录。
minitoc %为章节生成独立的小目录。
glossaries %生成词汇表。
verbatim %对原始的 verbatim 环境的改善。提供了命令 \verbatiminput 调用源文件。
fancyvrb %提供了代码排版环境 Verbatim 以及对版式的自定义。
listings %提供了排版关键字高亮的代码环境 lstlisting 以及对版式的自定义。类似宏包有minted。
algorithmic %一个简单的实现算法排版的宏包。如果要生成浮动体的话,需要搭配 algorithm 宏包使用。
algorithm2e %较为复杂的、可定制的算法排版宏包。类似宏包有 algorithmicx 等。
ntheorem %定制定理环境。类似宏包包括 theorem、thmtools、amsthm 等。
mdframed %排版可自动断页的带边框文字段落,提供边框样式的定制功能。
tcolorbox %以TikZ为基础提供排版样式丰富的彩色盒子的功能。
##### 图表和浮动体
booktabs %排版三线表。
array %对表格列格式的扩展。
tabularx %提供 tabularx 环境排版定宽表格,支持自动计算宽度的 X 列格式。
arydshln %支持排版虚线表格线。
colortbl %支持修改表格的行、列、单元格的颜色。
multirow %支持合并多行单元格。
makecell %支持在单元格里排版多行内容(嵌套一个单列的小表格)。
diagbox %排版斜线表头。
longtable %提供排版跨页长表格的 longtable 环境。
ltxtable %跨页长表格可使用 tabularx 的 X 列格式。
tabu %提供排版复杂格式表格的 tabu 环境。与 longtable 一同调用时,提供排版复杂格式跨页长表格的 longtabu 环境。
graphicx %支持插图。
bmpsize %latex + dvipdfmx 命令下支持 BMP/JPG/PNG 等格式的位图。
epstopdf %pdflatex 命令下支持 EPS 格式的矢量图。
wrapfig %支持简单的文字在图片周围的绕排。
subfig %提供子图表和子标题的排版。类似宏包有 subfigure 和 subcaption 等。
caption %控制浮动体标题的格式。
bicaption %生成双语浮动体标题。
float %为浮动体提供不浮动的 H 模式;提供自定义浮动体结构的功能。
##### 修改版式
geometry %修改页面尺寸、页边距、页眉页脚等参数。
fancyhdr %修改页眉页脚格式,令页眉页脚可以左对齐、居中、右对齐。
titlesec %修改章节标题 \chapter、\section 等的格式。
titletoc %修改目录中各条目的格式。
tocloft %类似 titletoc 的修改目录条目格式的宏包。
tocbibind %支持将目录、参考文献、索引本身写入目录项。
footmisc %修改脚注 \footnote 的格式。
indentfirst %令章节标题后的第一段首行缩进。
enumerate %提供简单的自定义标签格式的 enumerate 环境。
enumitem %修改列表环境 enumerate 和 itemize 等的格式。
lettrine %生成段落首字母大写的效果。
### 参考资料
[Characters and Control Sequences (tcd.ie)](https://bbs.csdn.net/topics/618317507)
[CTAN: Package lshort-zh-cn](https://bbs.csdn.net/topics/618317507)
### 尾言
以上是这一篇LaTex的主要内容。后期的更新,敬请期待!
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210511152217670.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3poaWd1aWd1,size_16,color_FFFFFF,t_70)
**感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的:**
① 2000多本Python电子书(主流和经典的书籍应该都有了)
② Python标准库资料(最全中文版)
③ 项目源码(四五十个有趣且经典的练手项目及源码)
④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化学习资料的朋友,可以戳这里无偿获取](https://bbs.csdn.net/topics/618317507)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**