专业的LaTeX: 在Linux下编写高质量的文档

专业的LaTeX: 在Linux下编写高质量的文档

(2009-10-29 13:59:54)
标签:

linux

排版

latex

dvi

导言

美国

杂谈

 
肖文鹏 ( [email protected]),硕士研究生, 北京理工大学计算机系
2003 年 10 月 01 日
Linux下的OpenOffice、KWord等字处理软件虽然在功能上与MicrosoftWord类似,但目前在易用性和可用性方面仍然存在许多不足,直接使用它们来生成高质量的文档显然还不太现实。本文介绍如何用LaTeX这一专业级的排版系统,在Linux下编写和生成高质量的科技论文。

一、简介

计算机技术的不断进步推动了各行各业的飞速发展,使许多行业出现了革命性的变化,传统的印刷出版业也逐渐告别了铅与火的时代,开始普遍采用计算机排版系统。目前,大大小小的排版系统非常多,并且都有其自身特点和适用范围,例如PageMaker比较适合于专业的出版社,而普通用户在编排要求不高的稿件时使用Word、WPS等也不失为合适的选择。但如果要用Word这类所见即所得(WYSIWYG)软件编排学术论文或者科技文献,那么一旦遇到复杂的数学公式和特殊字符,即便使出浑身解术,其结果也难以令人十分满意。在这种场合下使用TeX则是一个不错的选择,它是一种使用方便、价格低廉的专业级排版系统,在编排论文、报告和书籍时,其输出质量并不比价格昂贵的大型计算机专业排版系统逊色,并且在某些方面(如数学公式的编排)仍然是目前排版质量最好的系统。

TeX特别适合于科技论文和书籍的排版,利用它可以在计算机上生成与印刷品几乎完全一样的作品,目前在国外已经被广泛地用于编排书籍、档案、学位论文和私人信件,以及各种复杂的公式、目录、索引和参考文献等。由于使用TeX可以很轻松地完成高质量科技文献的排版工作,并且可以按照作者的要求进行扩充和修改,所以逐渐引起出版界和各国科技工作者的注意,被一致认为是目前国际上排版数学公式能力最强的系统,并且在各种国际会议上被指定为标准的论文编排软件。

稍有经验的人都会知道,即使再好的字处理软件打印出来的效果也都会跟屏幕上看到的有所差异。而TeX系统的输出是与设备无关的DVI(DeViceIndependent)文件,因此无论是在针式打印机、喷墨打印机、激光打印机或是照排机上,其效果都是完全相同的,仅仅只是文字或者图形的分辩率因设备的不同而稍有差异。从某种意义上说,TeX才是真正的"所见即所得"。

二、TeX系统

TeX系统的发明者是美国Stanford大学的Donald E.Knuth教授,他是整个计算机学术界的泰斗级人物,也是享有盛誉的计算机程序设计系列专著《计算机编程的艺术》(The Art ofComputerProgramming)的作者,TeX的出现与这本举世闻名的计算机理论书籍有着密不可分的联系。1977年,当出版社要求Knuth教授对他六十年代的力作《计算机编程的艺术》出修订版时,他感到以手工方式对原稿进行修改存在种种不便,于是便放下手头的工作,开始设计一套高质量的计算机排版系统。原先计划只花半年时间来改进排版技术然后继续写作的Knuth教授,最后却整整耗费了十年心血,终于研制成功了闻名于世的TeX系统。

与其它计算机排版系统不同的是,在用TeX编排文档时,除了需要输入正文内容之外,同时还需要加入一些排版命令,这些命令通常不是由编辑人员添加的,而是要由作者本人自己完成。TeX系统提供的排版命令十分灵活,作者可以直接使用这些命令,也可以利用已有的功能来定义新的排版命令,使之适应特定场合的需要。

TeX与Linux的Kernel一样,只是一套核心技术,实际应用时往往需要在TeX的基础上继续开发。最初的TeX系统提供了300多条基本命令,功能虽然强大,但使用起来却不那么方便。为此Knuth教授在这些基本命令的基础上定义了600多条复合命令,构成了名为Plain TeX的宏包,只可惜由于无法与普通PC机兼容,因此流传得并不十分广泛。

PlainTex虽然比原始的TeX更加方便,但其重点还只放在如何排版的层次上,在排版复杂公式时仍然需要大量命令,并且在挖掘它的深层功能时往往需要相当丰富的排版和编程技巧。好在TeX系统提供了非常强大的宏定义功能,因此很多人开始在TeX之上进行二次开发,产生了一些TeX系统的衍生版本,其中最著名的是由美国数学会(AMS)组织人员开发的AMS-TeX和美国计算机学家LeslieLamport在二十世纪八十年代初开发的LaTeX,其中前者适合于排版复杂的数学公式,而后者则适合于排版普通文章和书籍。LaTeX提供了一整套生成复杂文档所需的高级命令,这样即使作者没有掌握复杂的排版和程序设计知识,也可以充分利用TeX系统提供的强大功能,轻轻松松地完成标题、章节、表格、目录、索引、公式、图表等的编排。

随着LaTeX的逐渐普及,它在许多原本没有想到的领域中得到了扩展,为了建立一个统一的标准,LeslieLamport、Frank Mittelbach、Chris Rowley和RainerSch?pf在1989年开始了名为LaTeX3的项目,旨在建立一个最优的命令集合。该项目的第一个里程碑是在1994年发布的LaTeX2e,它是LaTeX3出现之前的现行标准版本。

为了安装和使用上的方便,有人将TeX基本系统包装起来并添加了一些实用工具,做成了各种Tex发行版本供别人使用,其中常见的有MikTeX、emTeX、PCTeX32、fpTeX、teTeX等,它们大多为自由软件,可以从网上免费下载获得。

三、LaTeX排版流程

在使用LaTeX进行排版时,从输入文本到最后在打印机上得到输出结果,通常需要经过如图1所示的几个步骤。


图1LaTeX排版流程
专业的LaTeX: 在Linux下编写高质量的文档_第1张图片
  • 编辑

    用编辑器编写文稿(源文件),同时插入排版命令。需要注意的是,源文件必须是纯文本格式的,并且通常以.tex作为其扩展名(如hello.tex)。在Linux下建议使用XEmacs或者VIM编辑器,它们都能够识别LaTeX语法并且可以高亮显示LaTeX命令中的关键字。

  • 编译

    生成的LaTeX源文件中如果没有语法错误,那么就可以使用latex命令进行编译,生成DVI文件:

    [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送到惠普激光打印机上打印:

    [xiaowp@xpcdev latex]$ dvihp hello.dvi
    
  • 输出

    四、LaTeX系统安装

    Knuth教授无私地贡献出了TeX系统的源码,使之成为一个免费的自由软件,目前TeX系统有许多发行版本,每个发行版本都是一整套工具的集合,一般都会包括TeX、LaTeX、dvipdf、dvips、pdfTeX等。TeXLive是TUG(TeX UserGroup)提供给其会员的一个TeX发行版,包含可以在大多数操作系统下运行的TeX系统,以及配套的字库和各种宏包,在网站http://www.tug.org/texlive/上可以找到TexLive的最新消息。

    TeXLive是以光盘镜像(ISO)的形式发布的,在CTAN的官方网站(http://www.ctan.org)上可以下载到最新的压缩包texlive7-20020604-cd1.iso.bz2和texlive7-20020604-cd2.iso.bz2,两者分别适用于不同的操作系统。对于Linux操作系统来讲,需要下载文件texlive7-20020604-cd1.iso.bz2,并使用如下命令对其进行解压缩:

    [root@xpcdev texlive]# bzip2 -d texlive7-20020604-cd1.iso.bz2
    

    在得到texlive7-20020604-cd1.iso文件之后,可以将其刻录成CD,也可以用mount命令将其作为文件系统加载后使用:

    [root@xpcdev texlive]# $mount -t iso9660 -o ro,loop texlive7-20020604-cd1.iso /mnt/texlive
    

    TeXLive的安装比较容易,首先是将光盘根目录下的bin和texmf子目录整个拷贝到硬盘上:

    [root@xpcdev texlive]# mkdir /usr/local/texlive
    
    [root@xpcdev texlive]# cp /mnt/texlive/bin/ /usr/local/texlive/ -R
    
    [root@xpcdev texlive]# cp /mnt/texlive/texmf/ /usr/local/texlive/ -R
    

    然后再将TeX系统可执行程序所在的目录添加到当前用户的环境变量PATH中去,就可以完成安装了:

    [xiaowp@xpcdev latex]$ export PATH=/usr/local/texlive/bin/i386-linux/:$PATH
    

    安装好TexLive之后,在命令行方式下输入tex命令,如果能够看到如下的提示信息,则表明TeX系统已经能够正常工作了:

    [xiaowp@xpcdev latex]$ tex
    
    This is TeX, Version 3.14159 (Web2C 7.3.7x)
    
    **
    

    输入\relax\bye退出TeX,之后就可以在Linux下使用LaTeX来编排高质量的文档了。

  • 五、LaTeX文档处理

    LaTeX文稿(即用于排版的源文件)包含两部分内容:一部分是正文,也就是需要排版输出的内容;另一部分是排版控制命令,用于控制版面样式、字体字形等格式,它们是用反斜杠"\"所引导的字符串。

    LaTeX文稿的基本格式如下所示:

    \documentclass [选项]{类}

    全局命令和定义

    \begin{document}

    局部命令和正文

    \end{document}

    每一个LaTeX文稿都包含导言(preamble)和正文(body)两个部分。导言是一组命令的集合,它指定整个文稿的全局参数,如页面格式、文本尺寸、页码、页眉和页脚等。导言部分必须包含\documetclass命令,以指定文档的版式类型,LaTeX提供了四种最基本的版式类型:book(书籍型)、article(论文型)、report(报告型)和letter(书信型),作者可以根据自己的需要选择一种合适的类型。

    LaTeX文稿的导言部分必须包含\documentclass命令,它通常是导言中的第一条命令,如果导言中再没有其他命令,LaTeX就会为行宽、边距、段落间隔、页面高度和宽度等选择标准的设置值。导言是用\begin{document}来结束的,紧接这条命令的所有内容都被解释为正文,它由文本和混杂在其中的排版命令组成。与导言相比,正文中的命令只能起到局部的作用,即它们只作用于部分文本,如缩进、公式、字体、字号等。LaTeX文稿中的正文是用\end{documnet}命令来结束的,这通常也是整个文稿的结束。

    LaTeX文稿是一种自由格式文件,输入源文件时不必考虑每行的长短,也不必考虑单词之间空白的多少,LaTeX会自动按照排版命令进行编排。下面是一个简单的LaTeX文稿:

    \documentclass[12 pt]{article}
    
    \begin{document}
    
    Hello, world! {\LaTeX} can typeset equations like
    
    \begin{equation}
    
    \int^{2\pi}_0\sin^2\theta d\theta = \frac{1}{2}
    
    \end{equation}
    
    \begin{equation}
    
    \left[
    
    {\bf X} + {\rm a} \ \geq\
    
    \underline{\hat a} \sum_i^N \lim_{x \rightarrow k} \delta C
    
    \right]
    
    \end{equation}
    
    very cool!
    
    \end{document}
    

    在将上述文稿保存为hello.tex后,再用latex命令进行处理:

    [xiaowp@xpcdev latex]$ latex hello.tex
    
    排版后的结果在Linux下可以用xdvi查看,其效果如图2所示:
    
    [xiaowp@xpcdev latex]$ xdvi hello.dvi
    


    图2LaTeX排版效果
    专业的LaTeX: 在Linux下编写高质量的文档_第2张图片
  • 六、小结

    LaTeX是一个在学术界享有盛名的专业级排版软件,特别适合于科技论文和书籍的编排,它使得作者能够专注于写作的内容,而不是拘泥在每个字应该如何显示等具体细节,此外在排版复杂的数学公式时,至今还没有任何软件可以与 LaTeX匹敌。LaTeX和Linux一样属于自由软件,借助于LaTeX这一专业的排版系统,在Linux下完全可以生成比Word等字处理软件具有更高质量的文档。

    http://www.ibm.com/developerworks/cn/linux/l-latex/index.html
QQ群:91940767
BBS: http://bbs.chinatex.org
http://latexstudio.taobao.com
Email [email protected]

你可能感兴趣的:(LaTeX,linux)