LaTeX-基本概念
本文意在通过对$\LaTeX$的基本概念进行串联来方便后续基于模版进行修改,不求面面俱到,只希望能够一个简单的全面理解。概念理解不足之处还请指正,万分感激!
基本原理
ref:
https://github.com/alt/tex-overview/blob/master/tex-overview.pdf
https://ctan.math.illinois.edu/info/context-notes-zh-cn/ctxnotes.pdf
四个概念
editor
编辑器,供用户方便的书写$\LaTeX$的界面,sublime,vscode这些都可以。本身不具有处理.tex文件的能力。
engine
引擎,对初识的Tex文档进行编译,一套过程后生成最终文档。引擎的基本功能就是解释TeX语法,把字排成行,把行排成页,涉及到断字、断行、分页等算法。最原始的引擎是TeX。
engine的家族图:
其中比较重要的是 Tex, pdfTex,XeTex,LuaTex
format
TeX是一门编程语言。TeX语言提供300来条原始排版命令,称为“控制序列”(control sequence), 可以用来控制格式。例如:控制序列\sl
表示斜体(英文slanted),\bf
表示粗体(英文bold)。 程序员觉得直接用这些琐碎的控制序列略麻烦,于是就把多个控制序列组合起来产生了“宏”(macro)。例如,宏\heading
就是\sl
和\bf
的组合,表示粗斜体(顾名思义,\heading
宏适用于标题)。
一般大家嫌直接使用TeX控制序列麻烦,都会选择使用宏。于是就有人编写了一些好用的宏或者适用于特定文体的宏,将它们组合起来发布。 这样集在一起的宏的组合被称为“格式”(Format)。LaTeX就是一种格式。
e.g., plain TeX,LaTeX,ConTeXt,TeXinfo,AMSTeX.
格式,是所有宏(macros)的集合,或者说是写Tex中的快捷指令集合。TeX语言本身只有300个命令,晦涩难懂,只适合非正常的人类。一个简单的符号可能就需要多个命令来实现,可以将这些最基本的命令封装起来做个简写(宏)以实现特殊的目的。一堆简写的合集就构成了格式。
TeX系统大概内建了300条命令,除此之外还支持根据这些命令重新建立新的命令。高德纳教授额外编写了大约600条有用的命令,并将它们放置到叫做Plain TeX的包里以便使通常的排版方便些。
1990年Hans Hagen建立了另一个扩展系统ConTeXt,当你使用\section
或者\emph
命令的时候,你不用去在乎它们会怎样做,这些会留给系统处理。
TeXLive下的xelatex.exe,context.exe和lualalatex.exe程序会读取相应的fmt文件来进行排版,格式通常设计了自己一套字体和版面什么的,读取fmt文件是为了更快地读取。
我们目前大部分使用的都是基于LaTeX格式
distribution
发行版,抛开format,在编写Tex时还需要有很多别的东西,比如$packages$ for $\LaTeX$, $modules$ for $Con\TeX t$。
一个完整的TeX需要最基本的TeX引擎、格式支持、各种辅助宏包、一些转换程序、GUI、编辑器、文档查看器等等。通过选择不同的组合就构成了不同的发行版。
- TeX Live:支持Linux,Windows,Mac OS
- MiKTeX:只支持Windows
- CTeX:CTeX基于MiKTeX,并加入了中文的支持,只支持Windows。同时CTEX是一个网站,ctex是可以很好支持中文的宏包。
Bibtex
由于工作中常需要引用,这里单独来一个part介绍Bib$\TeX$
ref:
https://blog.csdn.net/weixin_36670529/article/details/106749044
https://liam.page/2016/01/23/using-bibtex-to-generate-reference/
在使用LaTeX+bibTeX时一般会编译4次:
xe/pdflatex + bibtex + xe/pdflatex + xe/pdflatex
- 正确使用 BibTeX 处理参考文献,需要先用 (Xe/PDF)LaTeX 编译
tex
文件,生成aux
辅助文件。 - 执行 BibTeX 将读入
aux
文件,搞清楚用户需要哪些文献。 - 紧接着,BibTeX 根据
aux
文件中的内容,找到正确的bst
和bib
文件,并将参考文献信息格式化为 LaTeX 的thebibliography
环境,作为bbl
文件输出。 - 第二次执行 (Xe/PDF)LaTeX 将会读入新生成的
bbl
文件,同时更新aux
文件。 - 此时,参考文献列表将会正常展示,但是正文中的引用标记显示为问号。
- 第三次执行 (Xe/PDF)LaTeX 将会读入
bbl
文件和更新过后的aux
文件。此时,参考文献相关内容都正常显示。
工作流程
常见的编译工作流程:
在此过程中会生成许多的辅助/中间文件。
写在后面
在使用$\LaTeX$中最核心工作部分实际上是引擎,在实际工作中我们只需要根据个人喜好来选择editor+引擎+命令行
就可以开始使用$\LaTeX$,但为了方便管理还可以安装distribution。甚至选择在线overleaf,操作更加简单。
to Do
- 本地
vscode + latex
配置和定制化 - .cls模版和制作$\LaTeX$模版
- $\LaTeX$使用Tips