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