1 文檔結構
文檔類、序言、正文
LATEX源文件的結構分三大部分,依次為:
文檔類聲明
、序言(可 選)
、正文
。
文檔類聲明用來指定文檔的類型;序言(preamble)用來完成一些特 殊任務,比如引入宏包,定義命令,設置環境等;文檔的實際內容則放在 正文部分。這里的正文指得是\begin{document}和\end {document}之間 的部分,和通常人們心目中的“正文”概念有所出入。
這三部分的基本語法如下:
\documentclass[options]{class} %文檔類聲明 \usepackage[options]{package} %引入宏包 ...
\begin{document} %正文
...
\end{document}
常用的文檔類(documentclass)有三種:article、report、book, 它們的常用選項見表
文檔類常用選項

LATEX 的核心只提供基本的功能,系統以宏包(package)的形式提供 附加功能或增強原有功能。其它一些編程語言也有類似的模塊化機制,比 如 C/C++ 的 #include,Java 的 import。
標題、摘要、章節
一份文檔正文部分的開頭通常有標題、作者、摘要等信息,之后是章 節等層次結構,內容則散布於層次結構之間。
標題、作者、日期等命令如下,注意\maketitle 命令要放在最后。
\title{標題}
\author{作者}
\today
\maketitle
摘要環境用法如下:
\begin{abstract}
...
\end{abstract}
常用的層次結構命令如下
\chapter{...}
\section{...}
\subsection{...}
\subsubsection{...}
每個高級層次可以包含若干低級層次。article 中沒有 chapter,而 report 和 book 則支持上面所有層次。
目錄
我們可以用 \tableofcontents 命令來生成整個文檔的目錄,LATEX 會 自動設定目錄包含的章節層次,也可以用 \setcounter 命令來指定目錄層 次深度。
\tableofcontents
\setcounter{tocdepth}{2}
如果不想讓某個章節標題出現在目錄中,可以使用以下帶 * 的命令來 聲明章節。
\chapter*{...}
\section*{...}
\subsection*{...}
類似地,我們也可以用以下命令生成插圖和表格的目錄,插圖和表格
功能將在后面章節中介紹。
\listoffigures
\listoftables
當章節或圖表等結構發生變化時,我們需要執行兩遍編譯命令以獲得 正確結果。LATEX 之所以設計成這樣可能是因為當時的電腦內存容量有限。
2 文字排版
字符輸入
文檔中可以輸入的內容大致可以分為:普通字符、控制符、特殊符 號、注音符號、預定義字符串等。而這些內容有兩種輸入模式:文本模式 (缺省)和數學模式,普通的行間(inline)數學模式用
\$...\$
來表示。
LATEX中有些字符(例如# $ % ^ & _ { } ~ \
等)被用作特殊的 控制符,所以不能直接輸入,多數需要在前面加個 \。而 \ 本身則要用 \textbackslash
命令來輸入,因為 \ 被用作了換行指令。很奇怪為什么 不用 C 語言的 \n,也許是因為 TEX 的編程語言是 Pascal。
表 2.2 提供了一些符號的輸入方法示例,完整的符號列表見 Scott Pakin的《The Comprehensive LATEX Symbol List》[1]。

換行、換頁、斷字
通常 LATEX 會自動換行、換頁。用戶也可以用 \ 或 \newline 來強制 換行;用 \newpage 來強制換頁。
一般情況下 LATEX 會盡量均勻地斷字(Hyphenate),使得每一行的 字間距分布整齊。但有時我們也需要顯式指明斷字位置,比如下例就指明 BASIC 這個詞不能斷開,而 blar-blar-blar 可以在-處斷開。
\hyphenation{BASIC blar-blar-blar}
字樣、字號
LATEX會自動調整正文、標題、章節、上下標、腳注等的字樣3、字 號。我們也可以用表 2.3中的命令來設置字樣;用表 2.4中的命令來設置 相對字號,比如正文字號是 10pt、11pt、12pt 時,tiny的字號就分別是 5pt、6pt、6pt。
LATEX 有一個特別的字樣強調命令:\emph
,它在不同字樣和裝飾環境 下有不同效果。比如周圍文字是正體,它就是斜體;反之它就是正體。


3 常用命令環境
列表
LATEX 中有三種列表環境:itemize、enumerate、description,它 們的一般用法如下:



對齊
LATEX中的段落缺省兩端對齊(fully justified),我們也可以讓段落居左、居右或居中對齊。

摘錄
LATEX 中有三種摘錄環境:quote、quotation、verse。
quote
兩端都縮進quotation
在 quote 的基礎上增加了首行縮進verse
比 quote 多了第二行起的縮進。

原文照排
一般文檔中,命令和源代碼通常使用等寬字樣來表示,也就是原文照 排。對此 LATEX 提供了 \verb
命令(一般用於在正文中插入較短的命令) 和 verbatim 環境。后者有帶 * 的版本用來標明空格。

交叉引用
我們常常需要引用文檔中 section、subsection、figure、table 等 對象的編號,這種功能叫作交叉引用(cross referencing)。
LATEX 中可以用 \label{marker} 命令來定義一個標記,標記名可以是 任意字符串,但是在全文中須保持唯一。之后可以用 \ref{marker}
命令來 引用標記處章節或圖表的編號,用 \pageref{marker}
來引用標記處的頁 碼。
文檔中新增交叉引用后,第一次執行 latex 或 pdflatex 編譯命令時 會得到類似下面的警告信息。因為第一次編譯只會掃描出有交叉引用的地 方,第二次編譯才能得到正確結果。

腳注
腳注(footnote)的一般用法如下:

4 長度單位
LATEX 中的常用長度單位如表 2.5 所示。point 是個傳統印刷業采用的 單位,而big point是Adobe推出PS時新定義的單位。em是個相對單位, 比如當前字體是 11pt 時,1em 就是 11pt。

5 盒子
LATEX在排版時把每個對象(小到一個字母, 大到一個段落)都視為一個矩形盒子(box),我們在 HTML 和 CSS 中也可以見到類似的模型。
mbox 和 fbox
LATEX 中最簡單的盒子是 \mbox 和 \fbox。前者把一組對象組合起來, 后者在此基礎上加了個邊框。

makebox 和 framebox
稍復雜的 \makebox 和 \framebox 提供了寬度和對齊方式控制選項。這
里用 l、r、s 分別代表居左、居右和分散對齊。

parbox 和 minipage
大一些的對象比如整個段落可以用 \parbox
命令和 \minipage
環境, 兩者語法類似,也提供了對齊方式和寬度的選項。但是這里的對齊方式是 指與周圍內容的縱向關系,用 t、c、b 分別代表居頂、居中和居底對齊。

細心的讀者會發現 \parbox 和 \minipage 的選項排列順序和 \makebox 和 \framebox|的不一致,可能出自不同的作者。