专业的LaTeX 在Linux下编写高质量的文档(1)
- UID
- 1066743
|
专业的LaTeX 在Linux下编写高质量的文档(1)
一、简介计算机技术的不断进步推动了各行各业的飞速发展,使许多行业出现了革命性的变化,传统的印刷出版业也逐渐告别了铅与火的时代,开始普遍采用计算机排版系统。目前,大大小小的排版系统非常多,并且都有其自身特点和适用范围,例如PageMaker比较适合于专业的出版社,而普通用户在编排要求不高的稿件时使用Word、WPS等也不失为合适的选择。但如果要用Word这类所见即所得(WYSIWYG)软件编排学术论文或者科技文献,那么一旦遇到复杂的数学公式和特殊字符,即便使出浑身解术,其结果也难以令人十分满意。在这种场合下使用TeX则是一个不错的选择,它是一种使用方便、价格低廉的专业级排版系统,在编排论文、报告和书籍时,其输出质量并不比价格昂贵的大型计算机专业排版系统逊色,并且在某些方面(如数学公式的编排)仍然是目前排版质量最好的系统。
TeX特别适合于科技论文和书籍的排版,利用它可以在计算机上生成与印刷品几乎完全一样的作品,目前在国外已经被广泛地用于编排书籍、档案、学位论文和私人信件,以及各种复杂的公式、目录、索引和参考文献等。由于使用TeX可以很轻松地完成高质量科技文献的排版工作,并且可以按照作者的要求进行扩充和修改,所以逐渐引起出版界和各国科技工作者的注意,被一致认为是目前国际上排版数学公式能力最强的系统,并且在各种国际会议上被指定为标准的论文编排软件。
稍有经验的人都会知道,即使再好的字处理软件打印出来的效果也都会跟屏幕上看到的有所差异。而TeX系统的输出是与设备无关的DVI(DeVice Independent)文件,因此无论是在针式打印机、喷墨打印机、激光打印机或是照排机上,其效果都是完全相同的,仅仅只是文字或者图形的分辩率因设备的不同而稍有差异。从某种意义上说,TeX才是真正的"所见即所得"。
二、TeX系统TeX系统的发明者是美国Stanford大学的Donald E. Knuth教授,他是整个计算机学术界的泰斗级人物,也是享有盛誉的计算机程序设计系列专著《计算机编程的艺术》(The Art of Computer Programming)的作者,TeX的出现与这本举世闻名的计算机理论书籍有着密不可分的联系。1977年,当出版社要求Knuth教授对他六十年代的力作《计算机编程的艺术》出修订版时,他感到以手工方式对原稿进行修改存在种种不便,于是便放下手头的工作,开始设计一套高质量的计算机排版系统。原先计划只花半年时间来改进排版技术然后继续写作的Knuth教授,最后却整整耗费了十年心血,终于研制成功了闻名于世的TeX系统。
与其它计算机排版系统不同的是,在用TeX编排文档时,除了需要输入正文内容之外,同时还需要加入一些排版命令,这些命令通常不是由编辑人员添加的,而是要由作者本人自己完成。TeX系统提供的排版命令十分灵活,作者可以直接使用这些命令,也可以利用已有的功能来定义新的排版命令,使之适应特定场合的需要。
TeX与Linux的Kernel一样,只是一套核心技术,实际应用时往往需要在TeX的基础上继续开发。最初的TeX系统提供了300多条基本命令,功能虽然强大,但使用起来却不那么方便。为此Knuth教授在这些基本命令的基础上定义了600多条复合命令,构成了名为Plain TeX的宏包,只可惜由于无法与普通PC机兼容,因此流传得并不十分广泛。
Plain Tex虽然比原始的TeX更加方便,但其重点还只放在如何排版的层次上,在排版复杂公式时仍然需要大量命令,并且在挖掘它的深层功能时往往需要相当丰富的排版和编程技巧。好在TeX系统提供了非常强大的宏定义功能,因此很多人开始在TeX之上进行二次开发,产生了一些TeX系统的衍生版本,其中最著名的是由美国数学会(AMS)组织人员开发的AMS-TeX和美国计算机学家Leslie Lamport在二十世纪八十年代初开发的LaTeX,其中前者适合于排版复杂的数学公式,而后者则适合于排版普通文章和书籍。LaTeX提供了一整套生成复杂文档所需的高级命令,这样即使作者没有掌握复杂的排版和程序设计知识,也可以充分利用TeX系统提供的强大功能,轻轻松松地完成标题、章节、表格、目录、索引、公式、图表等的编排。
随着LaTeX的逐渐普及,它在许多原本没有想到的领域中得到了扩展,为了建立一个统一的标准,Leslie Lamport、Frank Mittelbach、Chris Rowley和Rainer Sch?pf在1989年开始了名为LaTeX3的项目,旨在建立一个最优的命令集合。该项目的第一个里程碑是在1994年发布的LaTeX2e,它是LaTeX3出现之前的现行标准版本。
为了安装和使用上的方便,有人将TeX基本系统包装起来并添加了一些实用工具,做成了各种Tex发行版本供别人使用,其中常见的有MikTeX、emTeX、PCTeX32、fpTeX、teTeX等,它们大多为自由软件,可以从网上免费下载获得。
三、LaTeX排版流程在使用LaTeX进行排版时,从输入文本到最后在打印机上得到输出结果,通常需要经过如图1所示的几个步骤。
图1 LaTeX排版流程- 编辑
用编辑器编写文稿(源文件),同时插入排版命令。需要注意的是,源文件必须是纯文本格式的,并且通常以.tex作为其扩展名(如hello.tex)。在Linux下建议使用XEmacs或者VIM编辑器,它们都能够识别LaTeX语法并且可以高亮显示LaTeX命令中的关键字。
- 编译
生成的LaTeX源文件中如果没有语法错误,那么就可以使用latex命令进行编译,生成DVI文件:
1
| [xiaowp@xpcdev latex]$ latex hello.tex
|
在处理过程中LaTeX会显示页号以及可能会有的错误和警告信息,如果在该过程中出现错误,则表明源文件中的某些排版命令有误,此时应该重新对源文件进行修改。当LaTeX成功结束这一处理过程后,将生成一个名为hello.dvi的文件,该文件是与设备无关的,它由格式化后的文本以及所需要的字体信息组成,但是与要使用的打印机的特征无关,该文件通常也称为元文件(metafile)。
- 查看
在正式打印输出或者照排制版之前,可以先在计算机屏幕上显示DVI文件,察看文件内容或者排版结果是否合乎要求,如果有不满意之外,则应重新对LaTeX源文件进行修改。在Linux下有许多软件可以用来查看DVI文件,其中最常用的是X-Window环境下的xdvi,下面的命令可以用来查看hello.dvi:[xiaowp@xpcdev latex]$ xdvi hello.dvi由于DVI文件是与设备无关的,因而用xdvi在屏幕上看到的结果是不会受到输出设备、操作系统、硬件环境等因素影响的。 - 打印
DVI元文件中的信息最终要被转化成可以在特定打印机上输出的形式,该过程是由一个称为打印驱动程序来完成的,它是与具体打印机相关的。例如,在Linux下可以用下面的命令将hello.dvi送到惠普激光打印机上打印:
1
| [xiaowp@xpcdev latex]$ dvihp hello.dvi
|
- 输出
在很多场合下,使用latex得到的DVI文件并不总是需要打印出来,而是要转化成更加便于阅读的格式,如PDF(Portable Document Format)或者PS(PostScript),LaTeX系统提供了相应的工具在这些格式之间进行转换。要将hello.dvi转化成hello.pdf和hello.ps,可以分别使用如下的命令:
1
2
| [xiaowp@xpcdev latex]$ dvipdf hello.dvi
[xiaowp@xpcdev latex]$ dvips hello.dvi -o
|
|
|
|
|
|
|