跳轉到內容

LaTeX/基礎

來自華夏公益教科書

LaTeX

入門
  1. 簡介
  2. 安裝
  3. 安裝額外包
  4. 基礎
  5. 如何獲得幫助

常見元素

  1. 文件結構
  2. 文字格式
  3. 段落格式
  4. 顏色
  5. 字型
  6. 列表結構
  7. 特殊字元
  8. 國際化
  9. 旋轉
  10. 表格
  11. 標題建立
  12. 頁面佈局
  13. 自定義頁首和頁尾‎
  14. 匯入圖形
  15. 浮動、圖形和標題
  16. 腳註和邊注
  17. 超連結
  18. 標籤和交叉引用
  19. 首字母

機制

  1. 錯誤和警告
  2. 長度
  3. 計數器
  4. 盒子
  5. 規則和撐杆

技術文字

  1. 數學
  2. 高階數學
  3. 定理
  4. 化學圖形
  5. 演算法
  6. 原始碼列表
  7. 語言學

特殊頁面

  1. 索引
  2. 詞彙表
  3. 參考文獻管理
  4. 更多參考文獻

特殊文件

  1. 科學報告(學士報告、碩士論文、博士論文)
  2. 信件
  3. 簡報
  4. 教師專區
  5. 簡歷
  6. 學術期刊(MLA、APA 等)

建立圖形

  1. 介紹程式化圖形
  2. MetaPost
  3. Picture
  4. PGF/TikZ
  5. PSTricks
  6. Xy-pic
  7. 建立 3D 圖形

程式設計

  1. Plain TeX
  2. 建立包
  3. 建立包文件
  4. 主題

雜項

  1. 模組化文件
  2. 協作編寫 LaTeX 文件
  3. 匯出到其他格式

幫助和建議

  1. 常見問題解答
  2. 技巧和竅門

附錄

  1. 作者
  2. 連結
  3. 包參考
  4. LaTeX 文件示例
  5. 索引
  6. 命令詞彙表

編輯此框編輯 TOC

本教程旨在讓您熟悉 LaTeX 的基本知識。

在開始之前,請確保您的計算機上已安裝 LaTeX(有關您需要的說明,請參閱 安裝)。

  • 我們首先將瞭解 LaTeX 語法。
  • 我們將建立我們的第一個 LaTeX 文件。
  • 然後,我們將帶您瞭解如何將此檔案透過 LaTeX 系統來生成高質量輸出,例如 PostScript 或 PDF。
  • 最後,我們將瞭解檔名和檔案型別。

LaTeX 語法

[編輯 | 編輯原始碼]

使用 LaTeX 時,您編寫一個 純文字 檔案,該檔案描述文件的結構和呈現方式。LaTeX 將此源文字(與標記相結合)轉換為 排版 文件。為了便於類比,網頁的工作方式類似: HTML 用於描述文件,然後由您的瀏覽器將其呈現為螢幕輸出 - 具有不同的顏色、字型、大小等。

您可以使用任何文字編輯器為 LaTeX 建立輸入檔案。一個最小的示例如下所示(命令將在稍後解釋)

\documentclass{article}

\begin{document}
Hello world!
\end{document}

LaTeX 會在其輸入檔案中規範化空格,因此空白字元(如空格或製表符)將統一視為空格。連續的幾個空格將被視為一個空格,行首的空格通常會被忽略,單個換行符也會產生空格。多個換行符(空行)定義段落的結束。下面展示了應用這些規則的示例:左側顯示使用者輸入(.tex),而右側則顯示渲染後的輸出(.dvi, .pdf, .ps).

It does not matter whether you
enter one or several             spaces
after a word.

An empty line starts a new
paragraph.

您在單詞後輸入一個空格或多個空格,結果是一樣的。

空行開始一個新的段落。

保留字元

[編輯 | 編輯原始碼]

以下符號是保留字元,它們在 LaTeX 中具有特殊含義或在所有字型中不可用。如果在文字中直接輸入它們,通常不會列印,而是讓 LaTeX 執行您未預期的操作。

# $ % ^ & _ { } ~ \

正如您將看到的,這些字元可以在您的文件中使用,方法是在前面新增反斜槓字首

\# \$ \% \^{} \& \_ \{ \} \~{} \textbackslash{}

在某些情況下,方括號字元 [ ] 也可以被認為是保留字元,因為它們用於為某些命令提供可選引數。如果您想在某些命令後直接列印它們,例如在這種情況下: \command [text] 它會失敗,因為 [text] 將被視為提供給 \command 的選項。您可以透過這種方式實現正確的輸出: \command {} [text]

反斜槓字元 \ 不能透過在前面新增另一個反斜槓來輸入,就像這樣 \\; 此序列用於換行。要在數學模式下引入反斜槓,您可以使用 \backslash 代替。

命令 \~\^ 分別產生波浪號和帽子,它們被放在下一個字母的上方。例如 \~n 產生 ñ。這就是為什麼您需要大括號來指定沒有字母作為引數的原因。您也可以使用 \textasciitilde\textasciicircum 來輸入這些字元;或 其他命令

如果您要插入可能包含多個特定符號(如 URI)的文字,可以考慮使用 \verb 命令,該命令將在後面關於 格式化 的部分中討論。有關原始碼,請參閱 原始碼列表

小於號 < 和大於號 > 字元是唯一無法正確列印的可見 ASCII 字元(未保留)。請參閱 特殊字元 瞭解解釋和解決方法。

非 ASCII 字元(例如重音符號、變音符號)在大多數情況下可以直接輸入。但是,您必須相應地配置文件。其他符號和更多符號可以使用特殊命令列印,例如在數學公式中或作為重音符號。我們將在 特殊字元 中解決這個問題。

LaTeX 分組

[編輯 | 編輯原始碼]

有時,某些狀態應該保持區域性,換句話說,其範圍應該有限。這可以透過將要區域性更改的部分括在大括號中來實現。在某些情況下,使用大括號將不可行。LaTeX 提供 \bgroup\egroup 來分別開始和結束一個組。

\documentclass{article}
\begin{document}
normal text {\itshape walzing \bfseries Wombat} more normal text

normal text \bgroup\itshape walzing \bfseries Wombat\egroup{} more normal text
\end{document}

環境形成一個隱式組。

LaTeX 環境

[編輯 | 編輯原始碼]

環境 在 LaTeX 中的作用與命令非常類似,但它們通常對文件的更大部分產生影響。它們的語法是

\begin{environmentname}
text to be influenced
\end{environmentname}

\\end 之間,您可以放置其他命令和巢狀環境。環境的內部機制定義了一個組,這使得它的使用安全(不會影響文件的其他部分)。通常,環境也可以接受引數,但此功能並不常用,因此將在文件的更高階部分進行討論。

LaTeX 中的所有內容都可以用命令和環境來表達。

LaTeX 命令

[編輯 | 編輯原始碼]

LaTeX 命令區分大小寫,並採用以下兩種格式之一

  1. 它們以反斜槓 \ 開頭,然後有一個僅包含字母的名稱。
    • 命令名稱以空格、數字或任何其他非字母字元結束。
  2. 它們由反斜槓 \ 和正好一個非字母字元組成。
    • 命令名稱在該非字母字元之後結束。

一些命令需要一個引數,該引數必須在命令名稱後的花括號 { } 之間給出。一些命令支援可選引數,這些引數在命令名稱後的方括號 [ ] 中新增。一般語法為

\commandname[option1,option2,...]{argument1}{argument2}...

許多 LaTeX 格式化命令成對出現。

  1. 一個 引數形式命令,其中一個引數是要格式化的文字。
  2. 一個 範圍形式命令,其中格式化將應用於命令後的所有文字,直到當前範圍的結束。也就是說,直到當前組或環境的結束。此形式也可能稱為開關命令。範圍形式命令可能仍然具有引數,但要格式化的文字不是引數。此形式幾乎永遠不應該在任何範圍之外呼叫,否則它將應用於文件的其餘部分。

引數形式命令將比其相應的範圍形式命令多一個引數,額外的引數是命令影響的文字。

示例

強調文字: \emph 是一個引數形式命令,帶有一個引數,即要強調的文字。 \em 是相應的範圍形式命令,沒有引數。

\emph{emphasized text}, this part is normal % Correct.
{\em emphasized text}, this part is normal  % Correct.

\emph emphasized text, this part is normal  % Incorrect: command without argument.
\em{emphasized text}, this part is normal   % Incorrect: switch with argument.
\em emphasized text, this part is normal    % Dangerous: switch outside of any environment.

為文字著色:此示例需要您 \usepackage{xcolor}\textcolor 是一個引數形式命令,帶有兩個引數,顏色和要著色的文字。 \color 是相應的範圍形式命令,只有一個引數,顏色。

By default, this text is black. \textcolor{red}{This is red text.} Back to black.

By default, this text is black. {\color{red}This is red text.} Back to black.

當 LaTeX 在處理輸入檔案時遇到 % 字元時,它會忽略當前行的其餘部分、換行符以及下一行開頭的所有空格。

這可用於在輸入檔案中寫下注釋,這些註釋不會出現在印刷版本中。

This is an % stupid
% Better: instructive <----
example: Supercal%
            ifragilist%
icexpialidocious

這是一個例子:Supercalifragilisticexpialidocious

請注意,% 字元可用於拆分不允許空格或換行的長輸入行,如上面的 Supercalifragilisticexpialidocious。

核心 LaTeX 語言沒有為註釋跨越多行的區域預定義語法。有關簡單解決方法,請參閱 多行註釋

我們的第一個文件

[編輯 | 編輯原始碼]

現在我們可以建立我們的第一個文件。我們將生成獲得一些輸出所需的絕對最小值;著名的Hello World! 方法在這裡將適用。

  • 開啟您最喜歡的文字編輯器。 vimemacs、Notepad++ 和其他文字編輯器將具有語法高亮顯示,這將有助於編寫檔案。
  • 在您的編輯器中複製以下文字。這是 LaTeX 原始碼。
% hello.tex - Our first LaTeX example!
\documentclass{article}
\begin{document}
Hello World!
\end{document}
  • 將您的檔案儲存為hello.tex.

在為檔案選擇名稱時,請確保它帶有.tex副檔名。

這一切意味著什麼?

[編輯 | 編輯原始碼]
% hello.tex - 我們的第一個 LaTeX 示例! 第一行是註釋。這是因為它以百分號 (%) 開頭;當 LaTeX 看到這一點時,它只是忽略了該行的其餘部分。註釋對於人們對原始檔的部分進行註釋很有用。例如,您可以放置有關作者和日期的資訊,或任何您想要的資訊。
\documentclass{article} 此行是一個命令,它告訴 LaTeX 使用 article 文件類。文件類檔案定義要遵循的格式標準,在本例中是通用的文章格式。期刊、大學部門等可以提供這些檔案,以確保出版標準得到滿足。在許多情況下,相同的內容可以簡單地透過替換所需的文件類檔案來重新格式化為不同的出版商。如果未提供,可以選擇許多通用的文件類。
\{document} 此行是名為 document 的環境的開始;它提醒 LaTeX 文件內容即將開始。此命令之前的任何內容通常都屬於前言
Hello World! 這是唯一包含實際內容的實際行 - 我們希望在頁面上顯示的文字。
\end{document} 這裡結束了 document 環境。它告訴 LaTeX 文件源已完成,此行之後的任何內容都將被忽略。

正如我們之前所說,每個 LaTeX 命令都以反斜槓 (\) 開頭。這是 LaTeX 的方式,讓它知道每當它看到反斜槓時,都應該期望一些命令。註釋不屬於命令,因為它們只告訴 LaTeX 忽略該行。只要百分號之前沒有空格,註釋就不會影響文件的輸出。

構建文件

[編輯 | 編輯原始碼]

然後我們將輸入檔案輸入 LaTeX 引擎,一個生成最終文件的程式。

現代使用中有多個 LaTeX 引擎lualatex, xelatexpdflatex。三者之間存在重要的區別,但我們將在其他地方討論這些區別 - 任何一個都可以用於構建我們的第一個文件。

生成文件

[編輯 | 編輯原始碼]

LaTeX 本身沒有 GUI,儘管一些 LaTeX 安裝具有圖形前端,您可以在其中單擊 LaTeX 來編譯您的輸入檔案。假設您沒有使用其中之一

  1. 開啟 終端 並導航到包含您.tex檔案的目錄。
  2. 鍵入命令:xelatex hello.tex (The.tex副檔名不是必需的,雖然您也可以在需要時包含它。)
  3. 關於 LaTeX 及其進度的各種資訊將顯示。如果一切順利,控制檯中顯示的最後兩行將是
Output written on hello.pdf (1 page).
Transcript written on hello.log.

這意味著您的原始檔已處理,生成的文件稱為hello.pdf。您可以使用系統上安裝的任何 PDF 檢視器檢視它。

在這種情況下,由於檔案很簡單,您只需要執行 LaTeX 命令一次。但是,如果您開始建立複雜的文件,包括參考書目和交叉引用等,則需要多次執行 LaTeX 來解析這些引用。當它出現時,我們將在未來討論這一點。

自動構建系統

[編輯 | 編輯原始碼]

一旦您開始處理更復雜的文件,編譯就會變得非常棘手。存在許多程式可以自動讀取 LaTeX 文件並執行適當數量的適當編譯器。例如,latexmk可以簡單地從大多數 LaTeX 檔案生成 PDF

$ latexmk -pdf file.tex

請注意,大多數 編輯器 會為您處理。

LaTeX 的歷史版本

[編輯 | 編輯原始碼]

LaTeX 和 TeX 都是在可移植文件格式 (PDF) 出現之前的很多年前建立的,因此普通的 LaTeX 引擎,latex,輸出 DVI 格式,該格式由 Donald Knuth 設計,用於裝置無關的 TeX 輸出。此格式已不再普遍使用,但可以使用 LaTeX 發行版中的程式將其轉換為更常見的輸出格式。

  • dvips.dvi檔案轉換為.ps(PostScript)。
  • dvipdf.dvi檔案轉換為.pdf (dvipdfm是改進版。

您還可以找到 Ghostscript,一個用於處理 PostScript 的免費開源工具集。它ps2pdf.ps檔案轉換為.pdfpdf2ps執行相反的操作。

下圖顯示了 LaTeX 原始碼與其可建立的格式之間的關係。

紅色框中的文字表示檔案格式,箭頭上的藍色文字表示必須使用的命令,框下的小綠色文字表示支援的影像格式。每次透過箭頭時都會丟失一些資訊,這可能會降低文件的功能。因此,您應該選擇最短的路徑來達到目標格式。這可能是獲得所需格式輸出的最便捷方式。從 LaTeX 原始碼開始,最便捷的方式是隻使用latex用於 DVI 輸出,或只使用pdflatex用於 PDF 輸出,僅在需要列印文件時才轉換為 PostScript。

請注意,使用latex生成 DVI 輸出會阻止您使用僅 PDF 功能,例如超連結和嵌入字型。

匯出到其他格式 章討論了有關將 LaTeX 原始碼匯出到其他檔案格式的更多內容。

選擇合適的檔名

[編輯 | 編輯原始碼]

切勿使用包含空格的目錄(資料夾)或檔名。雖然您的作業系統可能支援它們,但有些作業系統不支援,它們只會給 TeX 帶來痛苦和眼淚。檔名可以隨意短或長,但要嚴格避免空格。堅持使用無重音的小寫字母a-z,數字0-9,連字元(-),以及只有一個句點或句號(.)來分隔副檔名(有點類似於良好 Web URL 的約定):這將使您更容易在 Web 上引用 TeX 檔案,並使您的檔案更具可移植性。一些作業系統不區分大小寫字母,而其他作業系統則區分。因此,最好不要混用大小寫字母。

輔助檔案

[編輯 | 編輯原始碼]

TeX 編譯器是單遍過程。這意味著編譯器無法跳轉到文件周圍,這對於目錄和參考文獻很有用。實際上,編譯器無法猜測特定部分將列印在哪個頁面,因此,當目錄在即將到來的部分之前列印時,它無法設定頁碼。

為了解決此問題,許多需要跳轉的 LaTeX 命令使用輔助檔案,這些檔案通常與當前文件具有相同的檔名,但副檔名不同。它將臨時資料儲存到這些檔案中,並在下次編譯時使用它們。因此,為了獲得最新的目錄,您需要編譯文件兩次。如果沒有部分移動,則無需重新編譯。

例如,目錄資料臨時檔案是filename.toc.

這些檔案中都不包含不可恢復的資訊。這意味著您可以安全地刪除它們,編譯會自動重新生成它們。

當您使用 LaTeX 的各種功能(索引、術語表、參考文獻等)時,您會很快發現自己身處一個包含各種副檔名的檔案迷宮中,而且可能毫無頭緒。以下列表解釋了使用 TeX 時可能遇到的最常見的檔案型別。

LaTeX 中常見的副檔名
.aux 一個將資訊從一次編譯執行傳遞到下次編譯執行的檔案。除其他事項外,.aux檔案用於儲存與交叉引用相關的的資訊。
.bbl BiBTeX 輸出的參考文獻檔案,由 LaTeX 使用
.bib 參考文獻資料庫檔案。(您可以在其中儲存完整的參考文獻列表)
.blg BiBTeX 日誌檔案。(錯誤記錄在此處)
.bst BiBTeX 樣式檔案。
.cls 類檔案定義文件的外觀。它們使用 \documentclass 命令進行選擇。
.dtx 文件 TeX。這是 LaTeX 樣式檔案的主要分發格式。如果您處理一個.dtx檔案,您將獲得包含在.dtx檔案的目錄。
.ins 中 LaTeX 包的文件化宏程式碼.dtx檔案中包含的檔案的安裝程式。如果您從網路下載 LaTeX 包,通常會得到一個.dtx和一個.ins檔案。在.ins檔案上執行 LaTeX 以解壓縮.dtx檔案的目錄。
.fd 字型描述檔案,告訴 LaTeX 新字型。
.dvi 裝置獨立檔案。這是使用latex進行的 LaTeX 編譯執行的主要結果。您可以使用 DVI 預覽程式檢視其內容,也可以使用 dvips 或類似應用程式將其傳送到印表機。
.pdf 行動式文件格式。這是使用pdflatex進行的 LaTeX 編譯執行的主要結果。您可以使用任何 PDF 檢視器檢視其內容或列印它。
.log 詳細記錄上次編譯執行期間發生的情況。
.toc 儲存所有部分標題。它將在下次編譯執行時讀取,並用於生成目錄。
.lof 類似於.toc,但用於插圖列表。
.lot 同樣,用於表格列表。
.idx 如果您的文件包含索引。LaTeX 將所有進入索引的單詞儲存在此檔案中。使用 makeindex 處理此檔案。
.ind 已處理的 .idx 檔案,準備在下一次編譯週期中包含到您的文件中。
.ilg 日誌檔案,說明 makeindex 進行了哪些操作。
.sty LaTeX 宏包。這是一個您可以使用 \usepackage 命令載入到 LaTeX 文件中的檔案。
.tex LaTeX 或 TeX 輸入檔案。可以使用latex.
.out hyperref 包檔案,主檔案只有一個。

現在怎麼辦?

[編輯 | 編輯原始碼]

常見元素

[編輯 | 編輯原始碼]

請參閱 文件結構常見元素部分,瞭解屬於每種文件型別的所有常見功能。

非英語文件和特殊字元

[編輯 | 編輯原始碼]

LaTeX 擁有一些適用於世界上大多數語言的出色功能。您可以告訴 LaTeX 遵循目標語言的排版規則,簡化特殊字元輸入等等。請參閱 特殊字元國際化

模組化文件

[編輯 | 編輯原始碼]

請參閱 模組化文件,瞭解有關將大型專案組織成多個檔案的良好建議。

問題和疑難解答

[編輯 | 編輯原始碼]

如果您遇到有關基本功能的問題,或者想閱讀重要建議,我們強烈建議您閱讀 常見問題解答。對於更具體的問題和疑難解答,請參閱 技巧和竅門 頁面。

實現最高效率的宏

[編輯 | 編輯原始碼]

LaTeX 的全部功能在於宏。它們使您的文件變得非常動態和靈活。請參閱 專用部分

團隊協作

[編輯 | 編輯原始碼]

參見第協同編寫 LaTeX 文件章。


前一頁:安裝額外包 索引 下一頁:文件結構
華夏公益教科書