《LaTeX入門(mén)》內(nèi)容取材廣泛,涵蓋了正文組織、自動(dòng)化工具、數(shù)學(xué)公式、圖表制作、幻燈片演示、錯(cuò)誤處理等方面?紤]到LaTeX也是不斷進(jìn)化的,《LaTeX入門(mén)》從數(shù)以千計(jì)的LaTeX工具宏包中進(jìn)行甄選,選擇較新而且實(shí)用的版本來(lái)講解排版技巧。
為了方便讀者的學(xué)習(xí),《LaTeX入門(mén)》給出了大量的實(shí)例和一定量的習(xí)題,并且還提供了案例代碼。書(shū)中的示例大部分來(lái)自作者多年的實(shí)際排版案例,讀者不斷練習(xí),肯定能掌握LaTeX的排版技能。
《LaTeX入門(mén)》適合數(shù)學(xué)、物理、計(jì)算機(jī)、化學(xué)、生物、工程等專業(yè)的學(xué)生、工程師和教師閱讀,也適合中學(xué)數(shù)學(xué)教師。此外,本書(shū)還適合對(duì)LaTeX排版有興趣的人員。
提到LATEX,便不能不說(shuō)起它的基礎(chǔ)TEX。TEX是誕生于20世紀(jì)70年代末到80年代初的一款計(jì)算機(jī)排版軟件,用來(lái)排版高質(zhì)量的書(shū)籍,特別是包含有數(shù)學(xué)公式的書(shū)籍。TEX以追求高質(zhì)量為目標(biāo),很早就實(shí)現(xiàn)了矢量描述的計(jì)算機(jī)字體、細(xì)致的分頁(yè)斷行算法和數(shù)學(xué)排版功能,因其數(shù)學(xué)排版能力得到了學(xué)術(shù)界的廣泛使用,也啟發(fā)了不少后來(lái)復(fù)雜的商業(yè)計(jì)算機(jī)排版軟件。有趣的是,這樣一款排版軟件卻并非在排版業(yè)界產(chǎn)生,而是由計(jì)算機(jī)科學(xué)家高德納教授在修訂其七卷本巨著《計(jì)算機(jī)程序設(shè)計(jì)藝術(shù)》的前三卷時(shí),為了排版這一部書(shū)籍而產(chǎn)生的。這是一部花費(fèi)高德納幾乎畢生精力的巨著,直到今天仍在撰寫(xiě),然而在照相排版技術(shù)剛剛興起的1976年,新的計(jì)算機(jī)系統(tǒng)卻無(wú)法提供與傳統(tǒng)手工排版相媲美的質(zhì)量。面對(duì)這種情況,高德納抱怨道:
我不知道怎么辦。我花了整整15年寫(xiě)這些書(shū),可要是這么難看,我就再也不寫(xiě)了。我怎么能對(duì)這樣的作品引以為豪呢·
從翌年開(kāi)始,高德納就在其學(xué)生、友人的幫助下,開(kāi)發(fā)TEX排版軟件。直到8年后TEX軟件功能完備,他才又回到撰寫(xiě)書(shū)籍的工作中去。這段歷史一直被引為T(mén)EX和高德納的傳奇,有“十年磨一劍”之稱。TEX原本是用于個(gè)人的排版軟件,這也引出了TEX與其他專業(yè)排版軟件的一點(diǎn)重大的區(qū)別,就是TEX主要是由書(shū)籍、文章的作者本人來(lái)使用的,它是面向作者的。因此,TEX有許多方便作者的自定義功能,使用也簡(jiǎn)單方便,很快受到作者們的青睞,排版自己的學(xué)術(shù)書(shū)籍。
LATEX肇始于20世紀(jì)80年代初,也是LeslieLamport博士為了編寫(xiě)他自己的一部書(shū)籍而設(shè)計(jì)的。LATEX實(shí)際上就是用TEX語(yǔ)言編寫(xiě)的一組宏代碼,擁有比原來(lái)的TEX格式(PlainTEX)更為規(guī)范的命令和一整套預(yù)定義的格式,隱藏了不少排版方面的細(xì)節(jié),可以讓完全不懂排版理論的學(xué)者們也可以比較容易地將書(shū)籍和文稿排版出來(lái)。LATEX一出,很快更為風(fēng)靡,在1994年LATEX2“完善之后,現(xiàn)在已經(jīng)成為國(guó)際上數(shù)學(xué)、物理、計(jì)算機(jī)等科技領(lǐng)域?qū)I(yè)排版的事實(shí)標(biāo)準(zhǔn),其他領(lǐng)域(化學(xué)、生物、工程、語(yǔ)言學(xué)等)也有大量用戶。相關(guān)專業(yè)的學(xué)術(shù)期刊也都主要接受LATEX作為投稿格式。
既然TEX/LATEX主要是面向作者本人的排版軟件,本書(shū)的目標(biāo)對(duì)象也就以學(xué)術(shù)文章的作者為主,也就是需要經(jīng)常編寫(xiě)LATEX稿件的高校師生和科研院所的研究人員。本書(shū)的內(nèi)容選擇以滿足學(xué)術(shù)排版需求為準(zhǔn),閱讀本書(shū)后讀者應(yīng)該不僅能應(yīng)對(duì)各種學(xué)術(shù)投稿的簡(jiǎn)單需要,也將有能力排版一般的學(xué)術(shù)書(shū)籍,并使用LATEX完成簡(jiǎn)單的學(xué)術(shù)報(bào)告幻燈片。不過(guò),本書(shū)也力圖廣泛取材,讓排版公司的工人、中學(xué)數(shù)學(xué)教師或是用LATEX作筆記的電腦程序員都能有所得。
本書(shū)雖然名為“入門(mén)”,假定讀者沒(méi)有任何使用TEX的經(jīng)驗(yàn),但為了避免讀者逡巡于門(mén)外而不入,也力圖使內(nèi)容詳實(shí)可靠,為更深入地使用LATEX打好基礎(chǔ)。在編寫(xiě)本書(shū)時(shí),作者追求以下幾個(gè)目標(biāo):
·內(nèi)容廣泛本書(shū)從軟件安裝和最基本的示例講起,然后按正文組織、自動(dòng)化工具、數(shù)學(xué)公式、圖表制做、幻燈片演示、錯(cuò)誤處理等方面詳述LATEX的功能和使用,最后收束于LATEX的擴(kuò)展、相關(guān)工具和資源。LATEX的基本內(nèi)容并不多,功能也很有限,但經(jīng)過(guò)20多年的發(fā)展,現(xiàn)代LATEX文檔的一大特點(diǎn)是大量使用工具宏包來(lái)完成復(fù)雜的工作。本書(shū)也力圖體現(xiàn)這一特點(diǎn),全書(shū)過(guò)半的篇幅都在講解各種重要的LATEX宏包和工具。本書(shū)正文共有566頁(yè),作為一本入門(mén)書(shū)已是嫌多,但仍不可能包羅LATEX的所有方面,未免有遺珠之憾,只能留待讀者自己學(xué)習(xí)了。
·取材從新TEX最初的一個(gè)設(shè)計(jì)目標(biāo)是良好的穩(wěn)定性,希望在多年前編寫(xiě)的文檔在最新的系統(tǒng)中排版仍能得到完全相同的結(jié)果,各種排版命令的語(yǔ)義保持穩(wěn)定,TEX也確實(shí)做到了這一點(diǎn)。然而LATEX是一個(gè)更為開(kāi)放的系統(tǒng),與其他軟件一樣,它是在不斷進(jìn)化的。不僅其內(nèi)核從最初的LATEX2.09到LATEX2“再到正在開(kāi)發(fā)中的LATEX3不斷變化,而且還有數(shù)以千計(jì)的工具宏包在不斷更新,完成各種復(fù)雜的排版功能。實(shí)現(xiàn)TEX語(yǔ)言的TEX引擎,也在不斷增添新的功能。為了反映這種變化,本書(shū)作者也盡量對(duì)內(nèi)容加以甄別,選取較新并且實(shí)用的軟件工具加以介紹。
·切合實(shí)用為了增強(qiáng)實(shí)用性,本書(shū)給出了大量實(shí)例和一定量的習(xí)題。第1章和第6章提供了兩段完整的文檔源代碼,而其他章節(jié)也給出了大量的代碼示例。代碼示例和習(xí)題很多都源自作者歷年來(lái)收集的各類實(shí)際的排版問(wèn)題,相信對(duì)于本書(shū)的讀者也會(huì)有所裨益。
為了照顧不同層次的讀者,本書(shū)按LATEX的不同功能編排章節(jié),章節(jié)之間沒(méi)有嚴(yán)格的順序關(guān)系,閱讀本書(shū)也不必完全依照章節(jié)順序。
·希望快速上手的初學(xué)者應(yīng)首先閱讀第1章,安裝好TEX軟件并在1.2節(jié)學(xué)習(xí)基本的實(shí)例,然后就可以模仿實(shí)例編寫(xiě)自己的LATEX文檔了,等到實(shí)際需要時(shí)再翻到對(duì)應(yīng)的章節(jié)了解具體內(nèi)容。
·希望系統(tǒng)學(xué)習(xí)LATEX的讀者可以從前往后依次閱讀。書(shū)中一些段落前,或整個(gè)一節(jié)之前有一個(gè)危險(xiǎn)標(biāo)記,說(shuō)明這一段或一節(jié)內(nèi)容較難或者依賴后面章節(jié)的內(nèi)容,在初次閱讀時(shí)可以略過(guò),可以在讀完基本內(nèi)容后再來(lái)了解這部分內(nèi)容。還有一些段落前有兩個(gè)危險(xiǎn)標(biāo)記,則表示這些內(nèi)容中部分已經(jīng)超出本書(shū)的范圍,通常需要參見(jiàn)書(shū)中引用的其他文檔才能完全理解。
·具有一定LATEX經(jīng)驗(yàn)的讀者可以根據(jù)自己的需要查找有用的內(nèi)容,書(shū)后的索引將有助于找到特定的概念或命令,而每章末尾的注記與書(shū)后的文獻(xiàn)列表則可以幫助讀者找到本書(shū)中未能詳述的內(nèi)容。
本書(shū)使用不同的字體表示不同的內(nèi)容。在正文中,使用等寬字體表示代碼,如\alpha命令、equation環(huán)境;用無(wú)襯線字體表示宏包名稱,如amsmath宏包、beamer文檔類;用尖括號(hào)內(nèi)的楷體(西文斜體)表示參數(shù),如h長(zhǎng)度i、hkeyi。在表示LATEX命令或環(huán)境的語(yǔ)法形式時(shí),則使用加粗的等寬字體。
還有一些代碼示例沒(méi)有直接的排版結(jié)果,則只給出源代碼。如上所示,示例通常會(huì)有一個(gè)編號(hào)以方便引用。本書(shū)中所有帶編號(hào)的示例和第1章、第6章的兩個(gè)大的例子會(huì)隨書(shū)附帶,也可以在CTEX論壇網(wǎng)站上獲取。
書(shū)中在部分章節(jié)后面安排了一些題外的內(nèi)容,在標(biāo)題前用書(shū)籍符號(hào)標(biāo)示(如右),內(nèi)容用楷體字印刷。這些內(nèi)容游離于本書(shū)的主線之外,主要介紹一些背景知識(shí),讀者可根據(jù)自己的興趣選擇閱讀。練習(xí)
此外,在部分章節(jié)后還設(shè)置了少量的練習(xí)題,用鉛筆符號(hào)標(biāo)示(如右),讀者可據(jù)此檢查自己是否掌握了正文中的內(nèi)容。這些題目并非為了把讀者難住,大部分練習(xí)在書(shū)末都有解答或提示。
在本書(shū)編寫(xiě)過(guò)程中,許多朋友都為作者提供了無(wú)私的幫助。韓建成閱讀了本書(shū)早期的草稿和初稿,在結(jié)構(gòu)和內(nèi)容方面都提出了寶貴的意見(jiàn)和建議;趙勁松和李清閱讀了本書(shū)的初稿,并在內(nèi)容上給出了詳細(xì)的建議與勘誤;江疆和王越在閱讀初稿后,對(duì)本書(shū)的內(nèi)容和格式都提出了寶貴的意見(jiàn)。本書(shū)的編寫(xiě)一直受到在CTEX論壇與水木社區(qū)TEX版上網(wǎng)友們的關(guān)注和支持,論壇中對(duì)LATEX具體問(wèn)題的大量討論時(shí)常能啟發(fā)作者的思路,為成書(shū)提供了重要的素材。在此,作者向所有關(guān)心本書(shū)的人們致以真誠(chéng)的感謝!
作者已盡力使本書(shū)準(zhǔn)確可靠,但受精力和水平所限,書(shū)中的錯(cuò)誤在所難免。歡迎讀者指出書(shū)中的技術(shù)上的、文字上的或是排版上的任何錯(cuò)誤。有關(guān)本書(shū)的各種問(wèn)題,可發(fā)送電子郵件至info@dozan.cn聯(lián)系本書(shū)出版策劃。
劉海洋
劉海洋,畢業(yè)于北京大學(xué),對(duì)Latex有深入研究,擔(dān)任多個(gè)Tex論壇版主。
序
前言
第1章 熟悉LATEX
1.1 讓LATEX 跑起來(lái)
1.1.1 LATEX 的發(fā)行版及其安裝
CTEX 套裝3 TEX Live
1.1.2 編輯器與周邊工具
編輯器舉例——TeXworks 13 PDF 閱讀器命令行工具
1.1.3 “Happy TEXing”與“特可愛(ài)排版”
1.2 從一個(gè)例子說(shuō)起
1.2.1 確定目標(biāo)
1.2.2 從提綱開(kāi)始
1.2.3 填寫(xiě)正文
1.2.4 命令與環(huán)境
1.2.5 遭遇數(shù)學(xué)公式
1.2.6 使用圖表
1.2.7 自動(dòng)化工具
1.2.8 設(shè)計(jì)文章的格式
本章注記
第2章 組織你的文本
2.1 文字與符號(hào)
2.1.1 字斟句酌
從字母表到單詞
正確使用標(biāo)點(diǎn)
看不見(jiàn)的字符——空格與換行
2.1.2 特殊符號(hào)
2.1.3 字體
字體的坐標(biāo)
使用更多字體
強(qiáng)調(diào)文字
2.1.4 字號(hào)與行距
2.1.5 水平間距與盒子
水平間距85 盒子
2.2 段落與文本環(huán)境
2.2.1 正文段落
2.2.2 文本環(huán)境
2.2.3 列表環(huán)境
基本列表環(huán)
計(jì)數(shù)器與編號(hào)
定制列表環(huán)境
2.2.4 定理類環(huán)境
2.2.5 抄錄和代碼環(huán)境
抄錄命令與環(huán)境
程序代碼與listings
2.2.6 tabbing 環(huán)境
2.2.7 腳注與邊注
2.2.8 垂直間距與垂直盒子
2.3 文檔的結(jié)構(gòu)層次
2.3.1 標(biāo)題和標(biāo)題頁(yè)
2.3.2 劃分章節(jié)
2.3.3 多文件編譯
2.3.4 定制章節(jié)格式
2.4 文檔類與整體格式設(shè)計(jì)
2.4.1 基本文檔類和ctex 文檔類
2.4.2 頁(yè)面尺寸與geometry
2.4.3 頁(yè)面格式與fancyhdr
2.4.4 分欄控制與multicol
2.4.5 定義命令與環(huán)境
本章注記
第3章 自動(dòng)化工具
3.1 目錄
3.1.1 目錄和圖表目錄
3.1.2 控制目錄內(nèi)容
3.1.3 定制目錄格式
3.2 交叉引用
3.2.1 標(biāo)簽與引用
3.2.2 更多交叉引用
3.2.3 電子文檔與超鏈
3.3 BIBTEX 與文獻(xiàn)數(shù)據(jù)庫(kù)
3.3.1 BIBTEX 基礎(chǔ)
3.3.2 JabRef 與文獻(xiàn)數(shù)據(jù)庫(kù)管理
3.3.3 用natbib 定制文獻(xiàn)格式
3.3.4 更多的文獻(xiàn)格式
3.3.5 文獻(xiàn)列表的底層命令
3.4 Makeindex 與索引
3.4.1 制作索引
3.4.2 定制索引格式
索引環(huán)境與格式
Makeindex 與格式文件
3.4.3 詞匯表及其他
手工生成詞匯表
使用glossaries 宏包
本章注記
第4章 玩轉(zhuǎn)數(shù)學(xué)公式
4.1 數(shù)學(xué)模式概說(shuō)
4.2 數(shù)學(xué)結(jié)構(gòu)
4.2.1 上標(biāo)與下標(biāo)
4.2.2 上下畫(huà)線與花括號(hào)
4.2.3 分式
4.2.4 根式
4.2.5 矩陣
4.3 符號(hào)與類型
4.3.1 字母表與普通符號(hào)
4.3.2 數(shù)學(xué)算子
4.3.3 二元運(yùn)算符與關(guān)系符
4.3.4 括號(hào)與定界符
4.3.5 標(biāo)點(diǎn)
4.4 多行公式
4.4.1 羅列多個(gè)公式
4.4.2 拆分單個(gè)公式
4.4.3 將公式組合成塊
4.5 精調(diào)與雜項(xiàng)
4.5.1 公式編號(hào)控制
4.5.2 公式的字號(hào)
4.5.3 斷行與數(shù)學(xué)間距
本章注記
第5章 繪制圖表
5.1 LATEX 中的表格
5.1.1 tabular 和array
5.1.2 表格單元的合并與分割
5.1.3 定寬表格與tabularx
5.1.4 長(zhǎng)表格與longtable
5.1.5 三線表與表線控制
5.1.6 array 宏包與列格式控制
5.1.7 定界符與子矩陣
5.2 插圖與變換
5.2.1 graphicx 與插圖
5.2.2 幾何變換
5.2.3 頁(yè)面旋轉(zhuǎn)
5.3 浮動(dòng)體與標(biāo)題控制
5.3.1 浮動(dòng)體
5.3.2 標(biāo)題控制與caption 宏包
5.3.3 并排與子圖表
5.3.4 浮動(dòng)控制與float 宏包
5.3.5 文字繞排
5.4 使用彩色
5.4.1 彩色表格
5.5 繪圖語(yǔ)言
5.5.1 XY-pic 與交換圖表
5.5.2 PSTricks 與TikZ 簡(jiǎn)介
PSTricks380 pgf 與TikZ
5.5.3 METAPOST 與Asymptote 簡(jiǎn)介
METAPOST398 Asymptote
本章注記
第6章 幻燈片演示
6.1 組織幻燈內(nèi)容
6.1.1 幀
6.1.2 標(biāo)題與文檔信息
6.1.3 分節(jié)與目錄
6.1.4 文獻(xiàn)
6.1.5 定理與區(qū)塊
6.1.6 圖表
6.2 風(fēng)格的要素
6.2.1 使用主題
6.2.2 自定義格式
6.3 動(dòng)態(tài)展示
6.3.1 覆蓋淺說(shuō)
6.3.2 活動(dòng)對(duì)象與多媒體
本章注記
第7章 從錯(cuò)誤中救贖
7.1 理解錯(cuò)誤信息
7.1.1 與TEX 交互
7.1.2 常見(jiàn)錯(cuò)誤與警告
TEX 錯(cuò)誤
LATEX 錯(cuò)誤
TEX 警告
LATEX 警告
7.2 調(diào)試與分析
7.2.1 調(diào)試命令
7.2.2 更多調(diào)試工具
7.3 提問(wèn)的智慧
7.3.1 提問(wèn)之前
7.3.2 最小工作示例
7.3.3 壞問(wèn)題?好問(wèn)題
本章注記
第8章 LATEX 無(wú)極限
8.1 宏編輯淺說(shuō)
8.1.1 從LATEX 到TEX
8.1.2 編寫(xiě)自己的宏包和文檔類
8.2 外部工具舉隅
8.2.1 自動(dòng)代碼生成
生成公式代碼
生成圖形代碼
生成表格代碼
生成完整的TEX 文檔
8.2.2 在其他地方使用LATEX
8.3 LATEX 資源尋找
8.3.1 再探TEX 發(fā)行版
8.3.2 互聯(lián)網(wǎng)上的LATEX
CTAN 496 TEX 用戶組織497 在線社區(qū)與獨(dú)立網(wǎng)站
本章注記
部分習(xí)題答案
參考文獻(xiàn)
索引