肖文鵬 (xiaowp@263.net), 碩士研究生, 北京理工大學計算機系 2003 年 10 月 01 日 Linux下的OpenOffice、KWord等字處理軟件雖然在功能上與Microsoft Word類似,但目前在易用性和可用性方面仍然存在許多不足,直接使用它們來生成高質量的文檔顯然還不太現(xiàn)實。本文介紹如何用LaTeX這一專業(yè)級的排版系統(tǒng),在Linux下編寫和生成高質量的科技論文。 計算機技術的不斷進步推動了各行各業(yè)的飛速發(fā)展,使許多行業(yè)出現(xiàn)了革命性的變化,傳統(tǒng)的印刷出版業(yè)也逐漸告別了鉛與火的時代,開始普遍采用計算機排版系統(tǒng)。目前,大大小小的排版系統(tǒng)非常多,并且都有其自身特點和適用范圍,例如PageMaker比較適合于專業(yè)的出版社,而普通用戶在編排要求不高的稿件時使用Word、WPS等也不失為合適的選擇。但如果要用Word這類所見即所得(WYSIWYG)軟件編排學術論文或者科技文獻,那么一旦遇到復雜的數(shù)學公式和特殊字符,即便使出渾身解術,其結果也難以令人十分滿意。在這種場合下使用TeX則是一個不錯的選擇,它是一種使用方便、價格低廉的專業(yè)級排版系統(tǒng),在編排論文、報告和書籍時,其輸出質量并不比價格昂貴的大型計算機專業(yè)排版系統(tǒng)遜色,并且在某些方面(如數(shù)學公式的編排)仍然是目前排版質量最好的系統(tǒng)。 TeX特別適合于科技論文和書籍的排版,利用它可以在計算機上生成與印刷品幾乎完全一樣的作品,目前在國外已經被廣泛地用于編排書籍、檔案、學位論文和私人信件,以及各種復雜的公式、目錄、索引和參考文獻等。由于使用TeX可以很輕松地完成高質量科技文獻的排版工作,并且可以按照作者的要求進行擴充和修改,所以逐漸引起出版界和各國科技工作者的注意,被一致認為是目前國際上排版數(shù)學公式能力最強的系統(tǒng),并且在各種國際會議上被指定為標準的論文編排軟件。 稍有經驗的人都會知道,即使再好的字處理軟件打印出來的效果也都會跟屏幕上看到的有所差異。而TeX系統(tǒng)的輸出是與設備無關的DVI(DeVice Independent)文件,因此無論是在針式打印機、噴墨打印機、激光打印機或是照排機上,其效果都是完全相同的,僅僅只是文字或者圖形的分辯率因設備的不同而稍有差異。從某種意義上說,TeX才是真正的"所見即所得"。
TeX系統(tǒng)的發(fā)明者是美國Stanford大學的Donald E. Knuth教授,他是整個計算機學術界的泰斗級人物,也是享有盛譽的計算機程序設計系列專著《計算機編程的藝術》(The Art of Computer Programming)的作者,TeX的出現(xiàn)與這本舉世聞名的計算機理論書籍有著密不可分的聯(lián)系。1977年,當出版社要求Knuth教授對他六十年代的力作《計算機編程的藝術》出修訂版時,他感到以手工方式對原稿進行修改存在種種不便,于是便放下手頭的工作,開始設計一套高質量的計算機排版系統(tǒng)。原先計劃只花半年時間來改進排版技術然后繼續(xù)寫作的Knuth教授,最后卻整整耗費了十年心血,終于研制成功了聞名于世的TeX系統(tǒng)。 與其它計算機排版系統(tǒng)不同的是,在用TeX編排文檔時,除了需要輸入正文內容之外,同時還需要加入一些排版命令,這些命令通常不是由編輯人員添加的,而是要由作者本人自己完成。TeX系統(tǒng)提供的排版命令十分靈活,作者可以直接使用這些命令,也可以利用已有的功能來定義新的排版命令,使之適應特定場合的需要。 TeX與Linux的Kernel一樣,只是一套核心技術,實際應用時往往需要在TeX的基礎上繼續(xù)開發(fā)。最初的TeX系統(tǒng)提供了300多條基本命令,功能雖然強大,但使用起來卻不那么方便。為此Knuth教授在這些基本命令的基礎上定義了600多條復合命令,構成了名為Plain TeX的宏包,只可惜由于無法與普通PC機兼容,因此流傳得并不十分廣泛。 Plain Tex雖然比原始的TeX更加方便,但其重點還只放在如何排版的層次上,在排版復雜公式時仍然需要大量命令,并且在挖掘它的深層功能時往往需要相當豐富的排版和編程技巧。好在TeX系統(tǒng)提供了非常強大的宏定義功能,因此很多人開始在TeX之上進行二次開發(fā),產生了一些TeX系統(tǒng)的衍生版本,其中最著名的是由美國數(shù)學會(AMS)組織人員開發(fā)的AMS-TeX和美國計算機學家Leslie Lamport在二十世紀八十年代初開發(fā)的LaTeX,其中前者適合于排版復雜的數(shù)學公式,而后者則適合于排版普通文章和書籍。LaTeX提供了一整套生成復雜文檔所需的高級命令,這樣即使作者沒有掌握復雜的排版和程序設計知識,也可以充分利用TeX系統(tǒng)提供的強大功能,輕輕松松地完成標題、章節(jié)、表格、目錄、索引、公式、圖表等的編排。 隨著LaTeX的逐漸普及,它在許多原本沒有想到的領域中得到了擴展,為了建立一個統(tǒng)一的標準,Leslie Lamport、Frank Mittelbach、Chris Rowley和Rainer Sch?pf在1989年開始了名為LaTeX3的項目,旨在建立一個最優(yōu)的命令集合。該項目的第一個里程碑是在1994年發(fā)布的LaTeX2e,它是LaTeX3出現(xiàn)之前的現(xiàn)行標準版本。 為了安裝和使用上的方便,有人將TeX基本系統(tǒng)包裝起來并添加了一些實用工具,做成了各種Tex發(fā)行版本供別人使用,其中常見的有MikTeX、emTeX、PCTeX32、fpTeX、teTeX等,它們大多為自由軟件,可以從網上免費下載獲得。 在使用LaTeX進行排版時,從輸入文本到最后在打印機上得到輸出結果,通常需要經過如圖1所示的幾個步驟。 圖1 LaTeX排版流程 ![]()
Knuth教授無私地貢獻出了TeX系統(tǒng)的源碼,使之成為一個免費的自由軟件,目前TeX系統(tǒng)有許多發(fā)行版本,每個發(fā)行版本都是一整套工具的集合,一般都會包括TeX、LaTeX、dvipdf、dvips、pdfTeX等。TeXLive是TUG(TeX User Group)提供給其會員的一個TeX發(fā)行版,包含可以在大多數(shù)操作系統(tǒng)下運行的TeX系統(tǒng),以及配套的字庫和各種宏包,在網站http://www.tug.org/texlive/上可以找到TexLive的最新消息。 TeXLive是以光盤鏡像(ISO)的形式發(fā)布的,在CTAN的官方網站(http://www.ctan.org)上可以下載到最新的壓縮包texlive7-20020604-cd1.iso.bz2和texlive7-20020604-cd2.iso.bz2,兩者分別適用于不同的操作系統(tǒng)。對于Linux操作系統(tǒng)來講,需要下載文件texlive7-20020604-cd1.iso.bz2,并使用如下命令對其進行解壓縮:
在得到texlive7-20020604-cd1.iso文件之后,可以將其刻錄成CD,也可以用mount命令將其作為文件系統(tǒng)加載后使用:
TeXLive的安裝比較容易,首先是將光盤根目錄下的bin和texmf子目錄整個拷貝到硬盤上:
然后再將TeX系統(tǒng)可執(zhí)行程序所在的目錄添加到當前用戶的環(huán)境變量PATH中去,就可以完成安裝了:
安裝好TexLive之后,在命令行方式下輸入tex命令,如果能夠看到如下的提示信息,則表明TeX系統(tǒng)已經能夠正常工作了:
輸入\relax\bye退出TeX,之后就可以在Linux下使用LaTeX來編排高質量的文檔了。 LaTeX文稿(即用于排版的源文件)包含兩部分內容:一部分是正文,也就是需要排版輸出的內容;另一部分是排版控制命令,用于控制版面樣式、字體字形等格式,它們是用反斜杠"\"所引導的字符串。 LaTeX文稿的基本格式如下所示: \documentclass [選項]{類} 全局命令和定義 \begin{document} 局部命令和正文 \end{document} 每一個LaTeX文稿都包含導言(preamble)和正文(body)兩個部分。導言是一組命令的集合,它指定整個文稿的全局參數(shù),如頁面格式、文本尺寸、頁碼、頁眉和頁腳等。導言部分必須包含\documetclass命令,以指定文檔的版式類型,LaTeX提供了四種最基本的版式類型:book(書籍型)、article(論文型)、report(報告型)和letter(書信型),作者可以根據(jù)自己的需要選擇一種合適的類型。 LaTeX文稿的導言部分必須包含\documentclass命令,它通常是導言中的第一條命令,如果導言中再沒有其他命令,LaTeX就會為行寬、邊距、段落間隔、頁面高度和寬度等選擇標準的設置值。導言是用\begin{document}來結束的,緊接這條命令的所有內容都被解釋為正文,它由文本和混雜在其中的排版命令組成。與導言相比,正文中的命令只能起到局部的作用,即它們只作用于部分文本,如縮進、公式、字體、字號等。LaTeX文稿中的正文是用\end{documnet}命令來結束的,這通常也是整個文稿的結束。 LaTeX文稿是一種自由格式文件,輸入源文件時不必考慮每行的長短,也不必考慮單詞之間空白的多少,LaTeX會自動按照排版命令進行編排。下面是一個簡單的LaTeX文稿:
在將上述文稿保存為hello.tex后,再用latex命令進行處理:
圖2 LaTeX排版效果 ![]() LaTeX是一個在學術界享有盛名的專業(yè)級排版軟件,特別適合于科技論文和書籍的編排,它使得作者能夠專注于寫作的內容,而不是拘泥在每個字應該如何顯示等具體細節(jié),此外在排版復雜的數(shù)學公式時,至今還沒有任何軟件可以與 LaTeX 匹敵。LaTeX和Linux一樣屬于自由軟件,借助于LaTeX這一專業(yè)的排版系統(tǒng),在Linux下完全可以生成比Word等字處理軟件具有更高質量的文檔。
|