名词解释
相信你跟我一样,第一次接触LaTeX就被各种名词 (LaTeX、TeX、pdfTeX、MiKTeX)弄乱了。
TeX首先是一种宏语言,同时其也是一种排版引擎。基本的TeX系统只有300多个元命令 (primitive) ,十分精悍,但是很难读懂。
引擎
引擎是真正干活的程序。引擎的基本功能就是解释TeX语法,把字排成行,把行排成页,涉及到断字、断行、分页等算法。最原始的引擎是TeX。
- TeX:1978年由Donald Erwin Knuth(高德纳)开发。是后来大部分TeX相关的基础。其生成dvi文件,然后经由其他程序转换为pdf文件。
- pdfTeX:Tex语言的又一个实现,将TeX代码直接编译成PDF文件。
- XeTeX:TeX 语言的新的实现,支持 Unicode 编码和直接访问操作系统字体。
- LuaTeX:TeX 语言的一个完整的有扩展的实现。LuaTeX支持Unicode、系统字体和内嵌语言扩展,能直接输出PDF格式文件,也可以仍然输出 DVI 格式。
格式
TeX语言本身只有300个命令,晦涩难懂,只适合非正常的人类。一个简单的符号可能就需要多个命令来实现,可以将这些最基本的命令封装起来做个简写(宏)以实现特殊的目的。一堆简写的合集就构成了格式。格式可以与不同的引擎相结合。
- Plain TeX:由Don Knuth提供的最小的宏集合。
- LaTeX:更易于使用的宏集,最常见的一种格式。
- ConTeXt:另一种常见的格式。
宏包
一些辅助文件,在LaTeX中叫做packages,在ConTeXt中叫做modules。在LaTeX格式中,导言区的usepackage的作用就是引入各种宏包。宏包其实也是一堆基本的TeX命令的集合,只是其不够全,所以称之为宏包而不是格式。
发行版
一个完整的TeX需要最基本的TeX引擎、格式支持、各种辅助宏包、一些转换程序、GUI、编辑器、文档查看器等等。通过选择不同的组合就构成了不同的发行版。
- TeX Live:支持Linux,Windows,Mac OS
- MiKTeX:只支持Windows
- CTeX:CTeX基于MiKTeX,并加入了中文的支持,只支持Windows。同时CTEX是一个网站,ctex是可以很好支持中文的宏包。
其他相关
- METAFONT:TeX中用来生成字体的程序。
- MetaPost:用于生成图像。
- BibTeX:用于生成参考文献。
- dvipdf:dvi转换成pdf。
表格整理
用表格整理一下
引擎
(Knuth)TeX | 真正的(原始的)TeX |
ε-TeX | 相对于原始的TeX它提供了一种扩展模式 |
pdfTeX | 它从tex文件不通过dvi文件直接生成pdf文件(开发者已经转向LuaTeX) |
XeTeX | 相对于原始的TeX,主要增加了Unicode和 OpenType 的支持 |
LuaTeX | 它使用Lua作为扩展语言,对于LaTeX支持尚不完善? |
... |
宏集
plain TeX | 最古老的TeX宏集,提供了一些最基本的命令 |
AMSTeX | 是美国数学会提供的一个TeX宏集,它添加了许多数学符号和数学字体 |
LaTeX | 相对于PlainTeX,它使得科技文档的排版更加直观和方便 |
ConTeXt | 和LaTeX 相比,它更加灵活和自由 |
... |
发行版
TeX Live | 国际TeX用户组织TUG开发,支持不同的操作系统 |
MiKTeX | Windows 下广泛使用的一个TeX发行版 |
ConTeXt Minimals | 它包含了最新版本的 ConTeXt |
teTeX | 一个Unix下的TeX发行版,现在已经停止更新且并入TeXLive |
fpTeX | 一个Windows的TeX发行版,已不再更新 |
... |
他们是如何演进的
TeX 演进图 (缩略版)
TeX 演进图 (详细版)
LaTeX 演进图
TeX Live
图来源:https://github.com/alt/tex-overview
你也可以在线查看 pdf文档