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

https://docs.huihoo.com/homepage/shredderyin/tex_frame.html

https://zhuanlan.zhihu.com/p/248669482

四个概念

editor

编辑器,供用户方便的书写$\LaTeX$的界面,sublime,vscode这些都可以。本身不具有处理.tex文件的能力。

engine

引擎,对初识的Tex文档进行编译,一套过程后生成最终文档。引擎的基本功能就是解释TeX语法,把字排成行,把行排成页,涉及到断字、断行、分页等算法。最原始的引擎是TeX。

engine的家族图:

其中比较重要的是 Tex, pdfTex,XeTex,LuaTex

P1

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 文件中的内容,找到正确的 bstbib 文件,并将参考文献信息格式化为 LaTeX 的 thebibliography 环境,作为 bbl 文件输出。
  • 第二次执行 (Xe/PDF)LaTeX 将会读入新生成的 bbl 文件,同时更新 aux 文件。
  • 此时,参考文献列表将会正常展示,但是正文中的引用标记显示为问号。
  • 第三次执行 (Xe/PDF)LaTeX 将会读入 bbl 文件和更新过后的 aux 文件。此时,参考文献相关内容都正常显示。

工作流程

常见的编译工作流程:

在此过程中会生成许多的辅助/中间文件。

p2

P3

写在后面

在使用$\LaTeX$中最核心工作部分实际上是引擎,在实际工作中我们只需要根据个人喜好来选择editor+引擎+命令行就可以开始使用$\LaTeX$,但为了方便管理还可以安装distribution。甚至选择在线overleaf,操作更加简单。

to Do

  • 本地 vscode + latex配置和定制化
  • .cls模版和制作$\LaTeX$模版
  • $\LaTeX$使用Tips
作者

Shuyu Zhang

发布于

2021-06-22

更新于

2022-10-16

许可协议

评论