簡介
LaTeX使用TeX作為它的格式化引擎,當前的版本是LaTeX2ε。Leslie Lamport開發的LATEX是當今世界上最流行和使用最為廣泛的TEX宏集。它構築在Plain TEX的基礎之上,並加進了很多的功能以使得使用者可以更為方便的利用TEX的強大功能。使用LATEX基本上不需要使用者自己設計命令和宏等,因為LATEX已經替你做好了。因此,即使使用者並不是很了解TEX,也可以在短短的時間內生成高質量的文檔。對於生成複雜的數學公式,LATEX表現的更為出色。LATEX自從八十年代初問世以來,也在不斷的發展.最初的正式版本為2.09,在經過幾年的發展之後,許多新的功能,機制被引入到LATEX中。在享受這些新功能帶來的便利的同時,它所伴隨的副作用也開始顯現,這就是不兼容性.標準的LATEX 2.09引入了“新字型選擇框架”(NFSS)的LATEX,SLiTEX,AMSLATEX等等,相互之間並不兼容.這給使用者和維護者都帶來很大的麻煩。為結束這種糟糕的狀況,FrankMittelbach等人成立了ATEX3項目小組,目標是建立一個最優的,有效的,統一的,標準的命令集合。即得到LATEX的一個新版本3.這是一個長期目標,向這個目標邁出第一步就是在1994年發布的LATEX2e。LATEX2e採用了NFSS作為標準,加入了很多新的功能,同時還兼容舊LATEX 2.09。LATEX2e每6個月更新一次,修正發現的錯誤並加入前,LATEX2e將是標準的。歷史
TeX 格式
最基本的 TeX程式只是由一些很原始的命令組成,它們可以完成簡單的排版操作和程式設計功能。然而,TeX也允許用這些原始命令定義一些更複雜的高級命令。這樣就可以利用低級的塊結構,形成一個用戶界面相當友好的環境。在處理器運行期間,該程式首先讀取所謂的格式檔案,其中包含各種以原始語言寫成的高級命令,也包含分割單詞的連字號安排模式。接著處理程式就處理源檔案,其中包含要處理的真正文本,以及在格式檔案中已定義了的格式命令。
創建新格式是一件需要由具有豐富知識程式設計師來做的事情。把定義寫到一個源檔案中,這個檔案接著被一個名叫 initex 的特殊版本的 TeX程式處理。它採用一種緊湊的方式存貯這些新格式,這樣就可以被通常 TeX程式很快地讀取。
Plain TeX
Knuth 設計了一個名叫 Plain TeX的基本格式,以與低層次的原始 TeX呼應。這種格式是用 TeX處理文本時相當基本的部分,以致於我們有時都分不清到底哪條指令是真正的處理程式 TeX的原始命令,哪條是 Plain TeX格式的。大多數聲稱只使用 TeX的人,實際上指的是只用 Plain TeX。
Plain TeX也是其它格式的基礎,這進一步加深了很多人認為 TeX和 Plain TeX是同一事物的印象。Plain TeX的重點還只是在於如何排版的層次上,而不是從一位作者的觀點出發。對它的深層功能的進一步發掘,需要相當豐富的編程技巧。因此它的套用就局限於高級排版和程式設計人員。
LaTeX
Leslie Lamport 開發的 LaTeX是當今世界上最流行和使用最為廣泛的 TeX格式。它構築在 Plain TeX的基礎之上,並加進了很多的功能以使得使用者可以更為方便的利用 TeX的強大功能。使用 LaTeX基本上不需要使用者自己設計命令和宏等,因為 LaTeX已經替你做好了。因此,即使使用者並不是很了解 TeX,也可以在短短的時間內生成高質量的文檔。對於生成複雜的數學公式,LaTeX表現的更為出色。LaTeX自從二十世紀八十年代初問世以來,也在不斷的發展。最初的正式版本為 2.09,在經過幾年的發展之後,許多新的功能,機制被引入到 LaTeX中。在享受這些新功能帶來的便利的同時,它所伴隨的副作用也開始顯現,這就是不兼容性。標準的 LaTeX2.09,引入了“新字型選擇框架”(NFSS)的 LaTeX,SLiTeX,AMSLaTeX 等等,相互之間並不兼容。這給使用者和維護者都帶來很大的麻煩。
LaTeX2e
為結束這中糟糕的狀況,Frank Mittelbach 等人成立了 LaTeX3項目小組,目標是建立一個最優的,有效的,統一的,標準的命令集合。即得到 LaTeX的一個新版本 3。這是一個長期目標,向這個目標邁出第一步就是在 1994 年發布的 LaTeX2e。LaTeX2e採用了 NFSS 作為標準,加入了很多新的功能,同時還兼容舊的 LaTeX2.09。LaTeX2e每 6 個月更新一次,修正發現的錯誤並加入一些新的功能。在 LaTeX3最終完成之前,LaTeX2e將是標準的 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 等等,相互之間並不兼容。這給使用者和維護者都帶來很大的麻煩。為結束這中糟糕的狀況,Frank Mittelbach等人成立了LATEX3 項目小組,目標是建立一個最優的,有效的,統一的,標準的命令集合。即得到LATEX 的一個新版本3。這是一個長期目標,向這個目標邁出第一步就是在1994 年發布的LATEX2"。LATEX2" 採用了NFSS 作為標準,加入了很多新的功能,同時還兼容舊的LATEX 2.09。LATEX2" 每6 個月更新一次,修正發現的錯誤並加入一些新的功能。在LATEX3 最終完成之前,LATEX2" 將是標準的LATEX 版本。
什麼是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 兩種字型檔提供下載。
TeX 和LaTeX 是什麼關係
LaTeX 是TEX 中的一種格式(format),是建立在TeX 基礎上的宏語言,也就是說,每一個LaTeX 命令實際上最後都會被轉換解釋成幾個甚至上百個TeX 命令。但是,普通用戶可以無需知道這中間的複雜聯繫。就象編程的時候如果使用一些已經編譯好的函式館和模板可以使我們僅僅用幾個命令就實現很多功能一樣,LaTeX 根據人們排版文章的習慣,定義了許多命令和模板,通過這些命令和模板,我們可以很快的得到漂亮的排版結果。
LaTeX 2.09 和LaTeX2" 有什麼區別
LaTeX 2.09 是LATEX 在LaTeX2" 之前的一個版本(參見問題6 )。LaTeX2" 對LaTeX 2.09 做了很大的改進,增加了很多新功能。從檔案內容上看,兩者最顯著的不同在於LATEX 2.09 使用\documentstyle 命令定義文檔類型以及所包含宏包,如\documentstyle[twoside,epsfig]{article}
而LaTeX2" 使用\documentclass 命令定義文檔類型,用\usepackage 命令包含宏包,如
\documentclass[twoside]{article}
\usepackage{epsfig}
如果你使用的不是幾十年前的老機器,你的系統的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 命令提供支持。
MiKTEX、fpTEX、teTEX、CTEX 又是什麼關係
TEX 在不同的硬體和作業系統上有不同的實現版本。這就像C語言,在不同的作業系統中有不同的編譯系統,例如Linux 下的gcc,Windows 下的Visual C++ 等。有時,一種作業系統里也會有好幾種的TEX 系統。目前常見的Unix/Linux 下的TEX 系統是teTEX,Windows 下則有MiKTEX 和fpTEX。CTEX 指的是CTEX 中文套裝的簡稱,是把MiKTEX 和一些常用的相關工具,如GSview,winedt 等包裝在一起製作的一個簡易安裝程式,並對其中的中文支持部分進行了配置,使得安裝後馬上就可以使用中文。
LaTeX檔案的框架如下:
\documentclass{article}
\begin{document}
\This is the body of the article
\end{document}
第一句:\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連線,自動按格式分列橫排或者居中豎排。接著\maketitle表示本頁為標題頁,以便自動格式化。
接著是文章正文內容各部分了。摘要\begin{abstract}...\end{abstract}。章節為\section{第一層標題}, \subsection{第二層標題}。
再後面是參考文獻部分,用過兩個方法。第一個方法是手工逐條在正文尾部的\begin{thebibliography}{最大條數}...\end{thebibliography}內加入“\bibitem{關鍵字}文獻信息”,文章中引用的地方用\cite{關鍵字},自動按加入的順序編號,形如[1]。第二個方法是使用bibTex。建立一個文獻資料庫檔案:資料庫名.bib,裡面有按欄位填寫的文獻信息,以及相應的“引用關鍵字”。 bibTex會生成.bbl檔案,其中包含引用文獻具體內容,在正文末尾用\bibliography{文獻資料庫名}包含該檔案內容,注意文獻資料庫名不能包含空格。文章中引用格式同前面的方法,文獻資料庫中被引用的文獻按格式出現在文末,未被引用的文獻可以使用\nocite{關鍵字}來使其出現在文末。後一種方法的好處有:一、文獻資料庫可以共享;二、文獻的內容與表現格式分離,內容填寫更清晰,也可以更好的控制格式比如文獻的排列順序。格式控制是在導言區加入\bibliographystyle{格式名},其中格式包含在.bst檔案里,可以是Latex提供的,也可以是期刊單位提供的。
從結構上看,文章算排版結束了。下面就文章正文內容的一些細節留些注意點。
插圖:使用graphics宏包很方便引用.eps格式圖片,個人一般圖片都是Matlab繪製圖片,可以直接輸出eps格式。特別地,PS的eps 不行。圖片一般集中放當前目錄下子目錄中,使用子目錄在導言中用\graphicspath{{子目錄名/}},這個裡面的{}不能少,圖片檔案名稱被引用時即可省略子目錄名,指明.eps時效率高。
表格:表格單元都是由內容撐起的,可以使用 \rule[起始位置]{寬度}{高度}來撐起達到預期格式。rule定義的是一個矩形,起始位置指底線與當前行基準線的距離,負值表示底線在基準線下面。
插圖、表格、公式都可以貼上各自自動編號的標籤\label{關鍵字},引用時\ref{關鍵字}可以自動出現相應編號。
文章排版好了,輸出文檔需要注意幾點。按照導言區格式設定,編譯生成dvi作為中間預覽基本不會有問題,但一般都需要最終pdf輸出。
簡單的規則
(1)空格:LaTeX中空格不起作用。
(2)換行:用控制命令“\\”,或“ \newline”.
(3)分段:用控制命令“\par” 或空出一行。
(4)換頁:用控制命令“\newpage”或“\clearpage”
(5)特殊控制字元:#,$, %, &, - ,{, }, ^, ~
要想輸出這些控制符用下列命令:
\# \$ \% \& \- \{ \} \^{} \~{} $\backslash$表示“ \”.。
西文字元轉換表
rm 羅馬字型 \it 義大利字型\bf 黑體 \sl 傾斜體
\sf 等線體 \sc 小體大寫字母
\tt 打字機字型 \mit 數學斜體字號轉換命令表
點數(pt) 相應中文字號 控制命令
25 一號 \Huge
20 二號 \huge
17 三號 \LARGE
14 四號 \Large
12 小四號 \large
10 五號 \normalsize
9 小五號 \small
8 六號 \footnotesize
7 小六號 \scriptsize
5 七號 \tiny
縱向固定間距控制命令
\smallskip \medskip \bigskip
頁面控制命令:
\textwidth=14.5cm
\textheight=21.5cm
系統默認:字號10pt= 五號字;西文字型為羅馬字型;
textwidth=12.2cm,textheight=18.6cm。相當於美國標準信紙大小。
(1)行中數學公式狀態命令
\begin{math} 數學公式 \end{math}
簡式1: \( 數學公式 \)
簡式2: $ 數學公式 $
(2)獨立數學公式狀態命令
\begin{displaymath} 數學公式 \end{displaymath}
簡式1: \[ 數學公式 \]
簡式2: $$ 數學公式 $$
使用LaTex 編輯表格
\begin{tabular}{|r|l|}\hline
Header & Row \\ \hline \hline
A & Silly \\ \hline
tabular & structure \\ \hline
end{tabular}
其中&號代表分割線,也就是將一行表格分割為一塊一塊\代表換行