Linux折腾记(十五):再来说说LaTeX排版引擎
在我的上一篇随笔中,我提到了Markdown、LaTeX和MathJax。这几个东西对目前的网络技术文章的写作、展示都有深远的影响。在上一篇中,我还给出了一份LaTeX语法的学习资料。在这一篇里,我想再来谈谈LaTeX。
在很多人心中,LaTeX是一个很专业的排版系统,同时也是一个很复杂的系统。说到专业,确实很多科技论文都是用LaTeX写作,而且很多知名的杂志社只接受LaTeX格式的投稿,而且使用LaTeX排版得到的效果那是超级赞,特别是对科技论文中充斥的数学公式而言。说到复杂,不仅是因为LaTeX排版语言命令繁多,更因为它数之不尽的宏包,学习成本真的是相当相当相当的高。
对于一套LaTeX排版系统,它究竟包含哪些东西呢?我认为它主要可以分成这样几个部分:
1.一个排版引擎,TeX或pdfTeX或XeTeX;
2.一系列的字体;
3.一系列的宏包;
一些工具,比如用来查看各种排版引擎输出的排版结果,或者在dvi、ps、pdf等格式之间的转换。
而对于LaTeX排版系统的复杂性,我认为主要是由于历史原因引起的,理由如下:
1.最早的由Knuth教授写的TeX引擎不支持UTF-8编码的输入文件,所以要让它支持中文实在是太难了;
2.最早的TeX系统自带一套字体,要扩展它就得扩展相应领域的字体,比如LaTeX自带丰富的数学字体,要把字体安装到TeX系统中是一件非常复杂的事情;
3.大量的第三方宏包,安装和学习都非常困难;
4.都什么年代了,谁还用dvi格式和ps格式啊,用pdf多方便啊。
对于这些历史原因引起的复杂性,现在早就解决了,只是很多书籍没有写清楚而已。我认为现在用LaTeX其实很方便的,理由如下:
1.Knuth教授的Tex引擎用来瞻仰即可,实际工作中使用XeTeX引擎,完美支持Unicode字符集和UTF-8编码,中文再也不是问题;
2.字体神马的,Knuth教授的METAFONT早过时了,现在谁还不用TrueType啊?好的字体当然少不了像Microsoft、Adobe、Apple这些既有钱又有品味的公司出品了;
3.XeTeX引擎可以直接使用操作系统中安装的字体,再也不用考虑把字体安装到TeX系统中了;
4.XeTeX引擎直接输出pdf格式的文件;
5.排版也可以有IDE工具,比如TeXWorks;
6.至于宏包太多这个问题,我们可以用现成的发行版嘛,比如texlive套装。
下面开始实战。我是在Ubuntu系统下使用texlive,为了省事,我直接安装了texlive-full,使用如下命令: