Tex学习笔记

唔,以前零零散散学过一些,但是。。。不用的东西学了总是忘记,而且,tex玩意真的是。。。不暴粗口了,很专业吧。

1,各种Tex的关系(注意区分engine和format)。

1)Knuth同志在N年前,据说是二十年,开发了一种排版用的语言叫Tex,事实上据说只是一些命令。天知道那些命令怎么工作的,只是很明显几乎没人用这300多条指令去制作文档。后来,他又写了一个engine 叫做PlainTex,PlainTex有600多条宏指令,也就是Tex包括语言的原语和engine用的宏命令,有900多条!会死人的阿亲!这个Tex engine的输出为DVI文件,Device Independent 设备独立的意思。事实上,那时候做出个到处可以用的文件可真了不得了。咳,一个人设计总是会有缺陷的。于是,后来又有人又用Tex的原语做了一些格式包,恩,你可以更高一级的用这些包来处理文档,命令更少功能看起来也更加一目了然,也就是Latex这个新格式的诞生。 额,还有个和LaTex并列的怪胎存在叫Context,不过貌似没LaTex那么招人喜欢。

2)编译engine呢,前后有Knuth同志写的Tex,有为了产生PDF文档而设计的pdfTex,为了支持unicode(ascii是定长的字符,但是unicode是不定长度的,如中文)而产生的XeTex,还有后来的加入了script语言的perlTex,LuaTex之类;这些engine都有支持Tex和LaTex,如XeTex对应的也有XeLaTex engine。

3)当然,我们现在用的编译engine多是TexLive之类,上面这些engin都有加到一起。为什么同样是latex,xetex能编译的,pdftex就不能编译了呢? 我猜是编译器编译宏的区别,还有不同engine会提供很多不同的package供使用,当然你也可以猜,重要的是,虽然都叫Tex或者LaTex,各种编译engine中是不能互通的。至少我现在看到的是这样,不对的请指点。

4)据说平常做做技术文档,交报告什么的,luatex就够了,公司也提倡用这个。所以,也就用这个了= =。它使用的engine是XeLaTex。

2, LaTex简介(摘自文档《A guide to LuaLATEX》)

As you probably know, LATEX is the general framework in which documents begin withdocument class, packages are loaded with usepackage, fonts are selected in a clever way(so that you can switch to boldface while preserving italics), pages are build with complicated algorithms including support for headers, footers, footnotes, margin notes, floating material,etc. 

简介如上,事实上到现在为止,除了往模板里填东西,其他的我还什么都不知道。 

3, 

原文地址:https://www.cnblogs.com/pied/p/2428978.html