LaTeX

基於ΤΕΧ的排版系統

LaTeX(LTEX,音譯“拉泰赫”)是一種基於ΤΕΧ的排版系統,由美國計算機學家萊斯利·蘭伯特(Leslie Lamport)在20世紀80年代初期開發,利用這種格式,即使使用者沒有排版和程序設計的知識也可以充分發揮由TeX所提供的強大功能,能在幾天,甚至幾小時內生成很多具有書籍質量的印刷品。對於生成複雜表格和數學公式,這一點表現得尤為突出。因此它非常適用於生成高印刷質量的科技和數學類文檔。這個系統同樣適用於生成從簡單的信件到完整書籍的所有其他種類的文檔。

釋義


【正式名稱】:LTX
【純文本名稱】:LaTeX
【概述】
LaTeX使用TeX作為它的格式化引擎,當前的版本是LaTeX2ε。
LaTeX
LaTeX
LaTeX
LaTeX
LaTeX
LaTeX
LaTeX
LaTeX
Leslie Lamport開發的LaTeX是當今世界上最流行和使用最為廣泛的TeX宏集。它構築在Plain TeX的基礎之上,並加進了很多的功能以使得使用者可以更為方便的利用TeX的強大功能。使用LaTeX基本上不需要使用者自己設計命令和宏等,因為LaTeX已經替你做好了。因此,即使使用者並不是很了解TeX,也可以在短短的時間內生成高質量的文檔。對於生成複雜的數學公式,LaTeX表現的更為出色。LaTeX自從八十年代初問世以來,也在不斷的發展。最初的正式版本為2.09,在經過幾年的發展之後,許多新的功能,機制被引入到LaTeX中。在享受這些新功能帶來的便利的同時,它所伴隨的副作用也開始顯現,這就是不兼容性。標準的LaTeX 2.09引入了“新字體選擇框架”(NFSS)的LaTeX、SLiTEX,AMS-LaTeX等等,相互之間並不兼容。這給使用者和維護者都帶來很大的麻煩。為結束這種糟糕的狀況,FrankMittelbach等人成立了ATeX3項目小組,目標是建立一個最優的,有效的,統一的,標準的命令集合。即得到LaTeX的一個新版本3.這是一個長期目標,向這個目標邁出第一步就是在1994年發布的LaTeX2 。LaTeX2 採用了NFSS作為標準,加入了很多新的功能,同時還兼容舊LaTeX 2.09。LaTeX2 每6個月更新一次,修正發現的錯誤並加入前,LaTeX2 將是標準的。

歷史


TeX 格式

最基本的TeX程序只是由一些很原始的命令組成,它們可以完成簡單的排版操作和程序設計功能。然而,TeX也允許用這些原始命令定義一些更複雜的高級命令。這樣就可以利用低級的塊結構,形成一個用戶界面相當友好的環境。
在處理器運行期間,該程序首先讀取所謂的格式文件,其中包含各種以原始語言寫成的高級命令,也包含分割單詞的連字號安排模式。接著處理程序就處理源文件,其中包含要處理的真正文本,以及在格式文件中已定義了的格式命令。
創建新格式是一件需要由具有豐富知識的程序員來做的事情。把定義寫到一個源文件中,這個文件接著被一個名叫iniTeX的特殊版本的TeX程序處理。它採用一種緊湊的方式存貯這些新格式,這樣就可以被通常TeX程序很快地讀取。

Plain TeX

Knuth設計了一個名叫 PlainTeX的基本格式,以與低層次的原始TeX呼應。這種格式是用TeX處理文本時相當基本的部分,以致於我們有時都分不清到底哪條指令是真正的處理程序TeX的原始命令,哪條是 PlainTeX格式的。大多數聲稱只使用TeX的人,實際上指的是只用 PlainTeX。
PlainTeX也是其它格式的基礎,這進一步加深了很多人認為TeX和 PlainTeX是同一事物的印象。
PlainTeX的重點還只是在於如何排版的層次上,而不是從一位作者的觀點出發。對它的深層功能的進一步發掘,需要相當豐富的編程技巧。因此它的應用就局限於高級排版和程序設計人員。

LaTe

Leslie Lamport 開發的LaTeX是當今世界上最流行和使用最為廣泛的TeX格式。它構築在 PlainTeX的基礎之上,並加進了很多的功能以使得使用者可以更為方便的利用TeX的強大功能。使用LaTeX基本上不需要使用者自己設計命令和宏等,因為LaTeX已經替你做好了。因此,即使使用者並不是很了解TeX,也可以在短短的時間內生成高質量的文檔。對於生成複雜的數學公式,LaTeX表現的更為出色。
LaTeX自從二十世紀八十年代初問世以來,也在不斷的發展。最初的正式版本為 2.09,在經過幾年的發展之後,許多新的功能,機制被引入到LaTeX中。在享受這些新功能帶來的便利的同時,它所伴隨的副作用也開始顯現,這就是不兼容性。標準的LaTeX2.09,引入了“新字體選擇框架”(NFSS)的LaTeX,SLiTeX,AMSLaTeX 等等,相互之間並不兼容。這給使用者和維護者都帶來很大的麻煩。

LaTeX2

LaTeX
LaTeX
LaTeX
LaTeX
LaTeX
LaTeX
為結束這種糟糕的狀況,Frank Mittelbach 等人成立了LaTeX3項目小組,目標是建立一個最優的,有效的,統一的,標準的命令集合。即得到LaTeX的一個新版本 3。這是一個長期目標,向這個目標邁出第一步就是在 1994 年發布的LaTeX2e。LaTeX2 採用了 NFSS 作為標準,加入了很多新的功能,同時還兼容舊的LaTeX2.09。LaTeX2 每 6 個月更新一次,修正發現的錯誤並加入一些新的功能。在LaTeX3最終完成之前,LaTeX2 將是標準的LaTeX版本。

1 LaTeX

Leslie Lamport 開發的LaTeX是當今世界上最流行和使用最為廣泛的TeX宏集。它構築在Plain TeX的基礎之上,並加進了很多的功能以使得使用者可以更為方便的利用TeX的強大功能。使用LaTeX基本上不需要使用者自己設計命令和宏等,因為LaTeX已經替你做好了。因此,即使使用者並不是很了解TeX,也可以在短短的時間內生成高質量的文檔。對於生成複雜的數學公式,LaTeX表現的更為出色。
LaTeX
LaTeX
LaTeX
LaTeX
LaTeX
LaTeX
LaTeX自從八十年代初問世以來,也在不斷的發展。最初的正式版本為2.09,在經過幾年的發展之後,許多新的功能,機制被引入到LaTeX中。在享受這些新功能帶來的便利的同時,它所伴隨的副作用也開始顯現,這就是不兼容性。標準的LaTeX 2.09,引入了“新字體選擇框架”(NFSS) 的LaTeX,SLiTEX,AMS-LaTeX 等等,相互之間並不兼容。這給使用者和維護者都帶來很大的麻煩。為結束這中糟糕的狀況,Frank Mittelbach等人成立了LaTeX3項目小組,目標是建立一個最優的,有效的,統一的,標準的命令集合。即得到LATEX 的一個新版本3。這是一個長期目標,向這個目標邁出第一步就是在1994 年發布的LaTeX2 。LaTeX2 採用了NFSS 作為標準,加入了很多新的功能,同時還兼容舊的LaTeX 2.09。LaTeX2" 每6 個月更新一次,修正發現的錯誤並加入一些新的功能。在LaTeX3最終完成之前,LATEX2 將是標準的LATEX 版本。

2 AMS-TeX/AMS-LaTeX

AMS-TeX是美國數學會提供的,在Plain TeX 基礎上開發的TeX宏集。它主要用於排版含有很多數學符號和公式的科技類文章或書籍。AMS-TeX 給出了許多高級命令,可以讓使用者很方便地排版大型的、複雜的數學公式。AMS-TeX排版數學公式等的功能通過AMS-LaTeX 中的宏包amsmath 在LaTeX中得到實現。AMS-TeX最新版本為2.1。
AMS-LaTeX包括兩部分,一是上面提到的amsmath宏包,主要的目的是用來排版數學符號和公式。另一部分是amscls,提供了美國數學會要求的論文和書籍的格式。AMS-LaTeX目前的版本為2.0。在提供AMS-TeX和AMS-LaTeX 的同時,美國數學會還提供一套數學符號的字型檔,AMSFonts。這套字型檔中增加了很多TeX的標準字型檔Computer Modern 所沒有的一些數學符號,粗體數學符號等。AMSFonts現在的版本為2.2,有Metafont和Type1兩種字型檔提供下載。

3 TeX 和LaTeX 的關係

LaTeX 是TEX 中的一種格式(format) ,是建立在TeX 基礎上的宏語言,也就是說,每一個LaTeX 命令實際上最後都會被轉換解釋成幾個甚至上百個TeX 命令。但是,普通用戶可以無需知道這中間的複雜聯繫。就像編程的時候如果使用一些已經編譯好的函數庫和模板可以使我們僅僅用幾個命令就實現很多功能一樣,LaTeX 根據人們排版文章的習慣,定義了許多命令和模板,通過這些命令和模板,我們可以很快的得到漂亮的排版結果。

4 LaTeX 2.09 和LaTeX2e的區別

LaTeX 2.09 是LaTeX在LaTeX2e之前的一個版本(參見問題6)。LaTeX2e對LaTeX 2.09 做了很大的改進,增加了很多新功能。從文件內容上看,兩者最顯著的不同在於LaTeX 2.09 使用\documentstyle 命令定義文檔類型以及所包含宏包,如\documentstyle[twoside,epsfig]{article}
而LaTeX2使用\documentclass 命令定義文檔類型,用\usepackage 命令包含宏包,如
LaTeX
LaTeX
LaTeX
LaTeX
LaTeX
LaTeX
LaTeX
LaTeX
LaTeX
LaTeX
如果你使用的不是幾十年前的老機器,你的系統的LaTeX都是LaTeX2 版本。LaTeX 2.09 文件一般都可以在LaTeX2 系統中以兼容方式編譯。但是兼容方式編譯速度慢,而且很多LaTeX2 的新功能無法使用。如果你不是需要編譯以前的LaTeX 2.09 文件,你根本無需使用LaTeX 2.09 ,也不用知道LaTeX 2.09 與LaTeX2 的差別。大部分LaTeX 2.09 文件都可以通過用\documentclass 命令和\usepackage 命令代替\documentstyle命令修改為LaTeX2 格式。有時可能需要一些特殊宏包,例如latexsym ,對舊的LaTeX 2.09 命令提供支持。

5 MiKTeX、fpTeX、teTeX、CTeX 的關係

TeX 在不同的硬體和操作系統上有不同的實現版本。這就像C語言,在不同的操作系統中有不同的編譯系統,例如Linux 下的gcc,Windows 下的Visual C++ 等。有時,一種操作系統里也會有好幾種的TeX系統。目前常見的Unix/Linux 下的TeX系統是Texlive,Windows 下則有MiKTeX和fpTeX。CTeX指的是CTeX中文套裝的簡稱,是把MiKTeX和一些常用的相關工具,如GSview,WinEdt 等包裝在一起製作的一個簡易安裝程序,並對其中的中文支持部分進行了配置,使得安裝后馬上就可以使用中文。

6 LaTeX文件的框架

第一句:\documentclass[選項]{類},確定整篇文章的處理格式,期刊或者會議論文一般可選類為article,再附上控制全局格式的選項,比如字體、字型大小、頁面格式、紙張大小等等。也有期刊直接提供類模板,比如 Lecture Notes in Computer Science,只要把相應的類名放到{類}里就OK了,不需要自己去費神。老版本此處使用\documentstyle。
接下來是包含一些使用的宏包來增強功能,\usepackage{宏包},宏包包含在.sty文件中,用過的宏包有:CJK 支持中文環境;times TIMES字體;graphicx 插圖;pyperref引用超鏈接。也有期刊提供宏包來定製格式,比如 IEEE Computer Society Press。感覺就像C語言里的#include一樣為第三方提供介面。有些提供的樣例文件中在documentclass的選項中添加宏包,這是與老版本兼容。
以上為導言區,接著餘下的都是正文部分,包含在\begin{document}和\end{document}內。LaTeX命令的作用對象和範圍和HTML的標籤有點類似,有開始和結束標誌,開始位置內會定義一些表現格式。導言區還可能有\pagestyle{選項},頁面樣式,比如empty選項表示沒有頁眉和頁腳。導言區還有其它全局性的設置等。
正文部分首先是文章標題\title{標題},然後是作者信息\author{作者信息}。其中作者信息多行表示,用\\斷行,自動居中。多個作者用\and連接,自動按格式分列橫排或者居中豎排。接著是日期\date{日期},如果不寫這條命令預設為當前日期。可以使用\maketitle表示本頁為標題頁,以便自動格式化。
接著是文章正文內容各部分了。摘要\begin{abstract}...\end{abstract},或者直接\abstract。章節為\section{第一層標題},\subsection{第二層標題},\subsubsection{第三層標題}(注意:沒有\subsubsubsection{第四層標題}這樣的命令)。
再後面是參考文獻部分,用過兩個方法。第一個方法是手工逐條在正文尾部的\begin{thebibliography}{最大條數}... \end{thebibliography}內加入“\bibitem{關鍵詞}文獻信息”,文章中引用的地方用\cite{關鍵詞},自動按加入的順序編號,形如[1]。第二個方法是使用bibTex。建立一個文獻資料庫文件:資料庫名.bib,裡面有按欄位填寫的文獻信息,以及相應的“引用關鍵詞”。 bibTex會生成.bib文件,其中包含引用文獻具體內容,在正文末尾用\bibliography{文獻資料庫名}包含該文件內容,注意文獻資料庫名不能包含空格。文章中引用格式同前面的方法,文獻資料庫中被引用的文獻按格式出現在文末,未被引用的文獻可以使用\nocite{關鍵詞}來使其出現在文末。后一種方法的好處有:一、文獻資料庫可以共享;二、文獻的內容與表現格式分離,內容填寫更清晰,也可以更好的控制格式比如文獻的排列順序。格式控制是在導言區加入\bibliographystyle{格式名},其中格式包含在.bst文件里,可以是LaTeX提供的,也可以是期刊單位提供的。
從結構上看,文章算排版結束了。下面就文章正文內容的一些細節留些注意點。
插圖:使用graphicx宏包很方便引用.eps格式圖片,個人一般圖片都是Matlab繪製圖片,可以直接輸出eps格式。特別地,PS的eps不行。圖片一般集中放當前目錄下子目錄中,使用子目錄在導言中用\graphicspath{{子目錄名/}},這個裡面的{}不能少,圖片文件名被引用時即可省略子目錄名,指明.eps時效率高。
表格:表格單元都是由內容撐起的,可以使用 \rule[起始位置]{寬度}{高度}來撐起達到預期格式。rule定義的是一個矩形,起始位置指底線與當前行基準線的距離,負值表示底線在基準線下面。
插圖、表格、公式都可以貼上各自自動編號的標籤\label{關鍵詞},引用時\ref{關鍵詞}可以自動出現相應編號。
文章排版好了,輸出文檔需要注意幾點。按照導言區格式設置,編譯生成dvi作為中間預覽基本不會有問題,但一般都需要最終pdf輸出。

7 簡單的規則

(1)空格:LaTeX中空格用來隔開單詞(英語一類字母文字),多個空格等效於一個空格;對中文沒有作用。
(2)換行:用控制命令“\\”,或“ \newline”.
(3)分段:用控制命令“\par”或空出一行。
(4)換頁:用控制命令“\newpage”或“\clearpage”
(5)特殊控制字元:#,$, %, &, - ,{, }, ^, ~
要想輸出這些控制符用下列命令:
\# \$ \% \& \- \{ \} \^{} \~{} $\backslash$表示“ \”.。

8 西文字元轉換表

\rm 羅馬字體 \it 義大利字體
\bf 黑體 \sl 傾斜體
\sf 等線體 \sc 小體大寫字母
\tt 打字機字體 \mit 數學斜體

9 字型大小轉換命令表

點數(pt) 相應中文字型大小 控制命令
25 一號 \Huge
20 二號 \huge
17 三號 \LARGE
14 四號 \Large
12 小四號 \large
10 五號 \normalsize
9 小五號 \small
8 六號 \footnotesize
7 小六號 \scriptsize
5 七號 \tiny

10 縱向固定間距控制命令

\smallskip \medskip \bigskip

11 頁面控制命令

\textwidth=14.5cm
\textheight=21.5cm
系統默認:字型大小10pt= 五號字;西文字體為羅馬字體;
textwidth=12.2cm,textheight=18.6cm。相當於美國標準信紙大小。

12 常見數學公式排版命令

(1)行中數學公式狀態命令
\begin{math} 數學公式 \end{math}
簡式1: \( 數學公式 \)
簡式2: $ 數學公式 $
(2)獨立數學公式(不帶編號)狀態命令
\begin{displaymath} 數學公式 \end{displaymath}
簡式1: \[ 數學公式 \]
簡式2: $$ 數學公式 $$
(3)獨立數學公式(帶編號)狀態命令
\begin{equation}數學公式\end{equation}
\begin{equation*}數學公式\end{equation*}可以取消編號

13 使用LaTeX編輯表格

\begin{tabular}{|r|l|}\hline
Header & Row \\ \hline \hline
A & Silly \\ \hline
tabular & structure \\ \hline
\end{tabular}
其中&號代表分割線,也就是將一行表格分割為一塊一塊
\\代表換行

讀音書寫


由於TeX一詞應該讀作/tɛx/(國際音標中的/x/讀如“喝”音),音譯“泰赫”,所以LaTeX一詞可以音譯為“拉泰赫”。
在英語中,LaTeX實際通常讀作/ˈleɪtɛk/(音譯“累泰克”)或者/ˈlɑtɛk/(音譯“拉泰克”)。
在法語中,實際通常讀作/latɛk/(音譯“拉泰克”)。LaTeX的開發者Lamport表示對LaTeX的讀音沒有偏好。