1、什么是TeX,什么是LaTeX?
(1)TeX是一个排版系统/排版程序,也可以说是一种程序语言。用 TeX,你可以把你的文章做成书那种效果。你可以把它打印出来,或者送到出版社投稿。TeX 非常适合写各种学术论文,书籍,幻灯片。“TeX 不是一个用来制造比较漂亮的书籍的程序,而是用来制造最美的书籍的程序。”
(2)LaTeX 就是用这种语言写成的一个“TeX 宏包”,它扩展了 TeX 的功能,使我们很方便的逻辑的进行创作而不是专心于字体,缩进这些烦人的东西。TeX 还有其它的大型宏包,它们和 LaTeX 一起都被叫做 “format”,
(3)TeX和LaTeX其实是同一个程序,但是有层次上的不同,TeX 是 LaTeX 的基石,LaTeX 建立在 TeX 之上。很多人把 plain TeX 认为是最底层的,其实不是这样。plain 和 LaTeX 一样,都是 TeX 的宏包,也叫 format,它们是平等的关系。
(4)另有说法:TeX首先是一种宏语言,同时其也是一种排版引擎。基本的TeX系统只有300多个元命令 (primitive) ,十分精悍,但是很难读懂。
参考:http://www.ctex.org/documents/shredder/tex_frame.html
2、TeX中一些名词整理
(1)引擎
引擎是真正干活的程序。引擎的基本功能就是解释TeX语法,把字排成行,把行排成页,涉及到断字、断行、分页等算法。
常见的引擎有TeX(最原始)、pdfTeX、XeTeX和LuaTeX等。
(2)格式
TeX语言本身只有300个命令,一个简单的符号可能就需要多个命令来实现,可以将这些最基本的命令封装起来做个简写(宏)以实现特殊的目的。一堆简写的合集就构成了格式。格式可以与不同的引擎相结合。
在某个格式之上写作文档(manuscript)时,你需要先告诉 TeX 引擎你要载入哪个格式。因为格式使用得太频繁了,所以人们倾向于把格式和引擎打包在一起。这样,就不用每次都告诉 TeX 引擎这件事情了。以 LaTeX 为例,将它与上述引擎打包在一起之后,我们有了:
e-TeX -> LaTeX
pdfTeX -> pdfLaTeX
LuaTeX -> LuaLaTeX
XeTeX -> XeLaTeX
pTeX -> pLaTeX
upTeX -> upLaTeX
e-upTeX -> e-upLaTeX
pTeX-ng -> pLaTeX-ng
(3)引擎
一个完整的TeX需要最基本的TeX引擎、格式支持、各种辅助宏包、一些转换程序、GUI、编辑器、文档查看器等等。通过选择不同的组合就构成了不同的发行版。
TeX Live:支持Linux,Windows,Mac OS
MiKTeX:只支持Windows
CTeX:CTeX基于MiKTeX,并加入了中文的支持,只支持Windows。同时CTEX是一个网站,ctex是可以很好支持中文的宏包。
参考资料:http://blog.sciencenet.cn/blog-2148673-865204.html
http://www.latexstudio.net/archives/51537.html
http://www.ctex.org/documents/shredder/tex_frame.html