跳转至

LaTeX 入門

介紹

什麼是 LaTeX

LaTeX(讀作/ˈlɑːtɛx/或/ˈleɪtɛx/)是一個讓你的文檔看起來更專業的排版系統,而不是文字處理器。它尤其適合處理篇幅較長、結構嚴謹的文檔,並且十分擅長處理公式表達。它是免費的軟件,對大多數操作系統都適用。

LaTeX 基於 TeX(Donald Knuth 在 1978 年為數字化排版設計的排版系統)。TeX 是一種電腦能夠處理的低級語言,但大多數人發現它很難使用。LaTeX 正是為了讓它變得更加易用而設計的。目前 LaTeX 的版本是 LaTeX 2e。

如果你習慣於使用微軟的 Office Word 處理文檔,那麼你會覺得 LaTeX 的工作方式讓你很不習慣。Word 是典型的「所見即所得」的編輯器,你可以在編排文檔的時侯查看到最終的排版效果。但使用 LaTeX 時你並不能方便地查看最終效果,這使得你專注於內容而不是外觀的調整。

一個 LaTeX 文檔是一個以 .tex 結尾的文本文件,可以使用任意的文本編輯器編輯,比如 Notepad,但對於大多數人而言,使用一個合適的 LaTeX 編輯器會使得編輯的過程容易很多。在編輯的過程中你可以標記文檔的結構。完成後你可以進行編譯——這意味着將它轉化為另一種格式的文檔。它支持多種格式,但最常用的是 PDF 文檔格式。

在開始之前

下面列出在本文中使用到的記號:

  • 希望你實施的操作會被打上一個箭頭 \(\rightarrow\)
  • 你輸入的字符會被裝進代碼塊中;
  • 菜單命令與按鈕的名稱會被標記為 粗體

一些概念

如果需要編寫 LaTeX 文檔,你需要安裝一個「發行版」,常用的發行版有 TeX LiveMikTeX 和適用於 macOS 用户的 MacTeX(實際上是 TeX Live 的 macOS 版本),至於 CTeX 則現在不推薦使用。TeX Live 和 MacTeX 帶有幾乎所有的 LaTeX 宏包;而 MikTeX 只帶有少量必須的宏包,其他宏包將在需要時安裝。

TeX Live 和 MikTeX 都帶有 TeXworks 編輯器,你也可以安裝功能更多的 TeXstudio 編輯器,或者自行配置 Visual Studio Code 或 Notepad++ 等編輯器。下文所使用的編輯器是運行在 Windows 7 上的 TeXworks。

大部分發行版都帶有多個引擎,如 pdfTeX 和 XeTeX。對於中文用户,推薦使用 XeTeX 以獲得 Unicode 支持。

TeX 有多種格式,如 Plain TeX 和 LaTeX。現在一般使用 LaTeX 格式。所以,你需要使用與你所使用的格式打包在一起的引擎。如對於 pdfTeX,你需要使用 pdfLaTeX,對於 XeTeX 則是 XeLaTeX。

擴展閲讀:TeX 引擎、格式、發行版之介紹

環境配置

對於 Windows 用户,你需要下載 TeX Live 或 MikTeX。國內用户可以使用 清華大學 TUNA 鏡像站,請點擊頁面右側的「獲取下載鏈接」按鈕,並選擇「應用軟件」標籤下的「TeX 排版系統」即可下載 TeX Live 或 MikTeX 的安裝包,其中 TeX Live 的安裝包是一個 ISO 文件,需要掛載後以管理員權限執行 install-tl-advanced.bat

對於 macOS 用户,清華大學 TUNA 鏡像站同樣提供 MacTeX 和 macOS 版 MikTeX 的下載。

對於 Linux 用户,如果使用 TeX Live,則同樣下載 ISO 文件,執行 install-tl 腳本;如果使用 MikTeX,則按照 官方文檔 進行安裝。

文檔結構

基本要素

\(\rightarrow\) 打開 TeXworks。

一個新的文檔會被自動打開。

\(\rightarrow\) 進入 Format 菜單,選擇 Line Numbers

行號並不是要素,但它可以幫助你比較代碼與屏幕信息,找到錯誤。

\(\rightarrow\) 進入 Format 菜單,選擇 Syntax Coloring,然後選擇 LaTeX

語法色彩會高亮代碼,使得代碼更加易讀。

\(\rightarrow\) 輸入以下文字:

1
2
3
4
5
6
7
\documentclass[a4paper,12pt]{article}

\begin{document}

A sentence of text.

\end{document}

\documentclass 命令必須出現在每個 LaTeX 文檔的開頭。花括號內的文本指定了文檔的類型。article 文檔類型適合較短的文章,比如期刊文章和短篇報告。其他文檔類型包括 report(適用於更長的多章節的文檔,比如博士生論文),proc(會議論文集),bookbeamer。方括號內的文本指定了一些選項——示例中它設置紙張大小為 A4,主要文字大小為 12pt。

\begin{document}\end{document} 命令將你的文本內容包裹起來。任何在 \begin{documnet} 之前的文本都被視為前導命令,會影響整個文檔。任何在 \end{document} 之後的文本都會被忽視。

空行不是必要的,但它可以讓長的文檔更易讀。

\(\rightarrow\) 按下 Save 按扭;\(\rightarrow\)Libraries>Documents 中新建一個名為 LaTeX course 文件夾;\(\rightarrow\) 將你的文檔命名為 Doc1 並將其保存為 TeX document 放在這個文件夾中。

將不同的 LaTeX 文檔放在不同的目錄下,在編譯的時候組合多個文件是一個很好的想法。

\(\rightarrow\) 確保 typeset 菜單設置為了 xeLaTeX\(\rightarrow\) 點擊 Typeset 按扭。

這時你的源文件會被轉換為 PDF 文檔,這需要花費一定的時間。在編譯結束後,TeXworks 的 PDF 查看器會打開並預覽生成的文件。PDF 文件會被自動地保存在與 TeX 文檔相同的目錄下。

處理問題

如果在你的文檔中存在錯誤,TeXworks 無法創建 PDF 文檔時,Typeset 按扭會變成一個紅叉,並且底部的終端輸出會保持展開。這時:

\(\rightarrow\) 點擊 Abort typesetting 按扭。\(\rightarrow\) 閲讀終端輸出的內容,最後一行可能會給出行號表示出現錯誤的位置。\(\rightarrow\) 找到文檔中對應的行並修復錯誤。\(\rightarrow\) 再次點擊 Typeset 按扭嘗試編譯源文件。

添加文檔標題

\maketitle 命令可以給文檔創建標題。你需要指定文檔的標題。如果沒有指定日期,就會使用現在的時間,作者是可選的。

\(\rightarrow\)\begin{document} 和 命令後緊跟着輸入以下文本:

1
2
3
4
\title{My First Document}
\author{My Name}
\date{\today}
\maketitle

你的文檔現在長成了這樣:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
\documentclass[a4paper,12pt]{article}

\begin{document}

\title{My First Document}
\author{My Name}
\date{\today}
\maketitle

A sentence of text.

\end{document}

\(\rightarrow\) 點擊 Typeset 按扭,核對生成的 PDF 文檔。

要點筆記:

  • \today 是插入當前時間的命令。你也可以輸入一個不同的時間,比如 \date{November 2013}
  • article 文檔的正文會緊跟着標題之後在同一頁上排版。report 會將標題置為單獨的一頁。

章節

如果需要的話,你可能想將你的文檔分為章(Chatpers)、節(Sections)和小節(Subsections)。下列分節命令適用於 article 類型的文檔:

  • \section{...}
  • \subsection{...}
  • \subsubsection{...}
  • \paragraph{...}
  • \subparagraph{...}

花括號內的文本表示章節的標題。對於 reportbook 類型的文檔我們還支持 \chapter{...} 的命令。

\(\rightarrow\) 將 "A sentence of text." 替換為以下文本:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
\section{Introduction}
This is the introduction.

\section{Methods}

\subsection{Stage 1}
The first part of the methods.

\subsection{Stage 2}
The second part of the methods.

\section{Results}
Here are my results.

你的文檔會變成

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
\documentclass[a4paper,12pt]{article}

\begin{document}

\title{My First Document}
\author{My Name}
\date{\today}
\maketitle

\section{Introduction}
This is the introduction.

\section{Methods}

\subsection{Stage 1}
The first part of the methods.

\subsection{Stage 2}
The second part of the methods.

\section{Results}
Here are my results.

\end{document}

\(\rightarrow\) 點擊 Typeset 按扭,核對 PDF 文檔。應該是長這樣的:

p1

創建標籤

你可以對任意章節命令創建標籤,這樣他們可以在文檔的其他部分被引用。使用 \label{labelname} 對章節創建標籤。然後輸入 \ref{labelname} 或者 \pageref{labelname} 來引用對應的章節。

\(\rightarrow\)\subsection{Stage 1} 下面另起一行,輸入 \label{sec1}\(\rightarrow\)Results 章節輸入 Referring to section \ref{sec1} on page \pageref{sec1}

你的文檔會變成這樣:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
\documentclass[a4paper,12pt]{article}

\begin{document}

\title{My First Document}
\author{My Name}
\date{\today}
\maketitle

\section{Introduction}
This is the introduction.

\section{Methods}

\subsection{Stage 1}
\label{sec1}
The first part of the methods.

\subsection{Stage 2}
The second part of the methods.

\section{Results}
Here are my results. Referring to section \ref{sec1} on page \pageref{sec1}

\end{document}

\(\rightarrow\) 編譯並檢查 PDF 文檔(你可能需要連續編譯兩次):

p2

生成目錄(TOC)

如果你使用分節命令,那麼可以容易地生成一個目錄。使用 \tableofcontents 在文檔中創建目錄。通常我們會在標題的後面建立目錄。

你可能也想也想更改頁碼為羅馬數字(i,ii,iii)。這會確保文檔的正文從第 1 頁開始。頁碼可以使用 \pagenumbering{...} 在阿拉伯數字和羅馬數字見切換。

\(\rightarrow\)\maketitle 之後輸入以下內容:

1
2
3
4
\pagenumbering{roman}
\tableofcontents
\newpage
\pagenumbering{arabic}

\newpage 命令會另起一個頁面,這樣我們就可以看到 \pagenumbering 命令帶來的影響了。你的文檔的前 14 行長這樣:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
\documentclass[a4paper,12pt]{article}

\begin{document}

\title{My First Document}
\author{My Name}
\date{\today}
\maketitle

\pagenumbering{roman}
\tableofcontents
\newpage
\pagenumbering{arabic}

\(\rightarrow\) 編譯並核對文檔(可能需要多次編譯,下文不贅述)。

文檔的第一頁長這樣:

p3

第二頁:

p4

文字處理

中文字體支持

閲讀本文學習 LaTeX 的人,首要學會的自然是 LaTeX 的中文字體支持。事實上,讓 LaTeX 支持中文字體有許多方法。在此我們僅給出最 簡潔 的解決方案:使用 CTeX 宏包。只需要在文檔的前導命令部分添加:

1
\usepackage[UTF8]{ctex}

就可以了。在編譯文檔的時侯使用 xelatex 命令,因為它是支持中文字體的。

字體效果

LaTeX 有多種不同的字體效果,在此列舉一部分:

1
2
3
4
5
6
7
8
\textit{words in italics}
\textsl{words slanted}
\textsc{words in smallcaps}
\textbf{words in bold}
\texttt{words in teletype}
\textsf{sans serif words}
\textrm{roman words}
\underline{underlined words}

效果如下:

p5

\(\rightarrow\) 在你的文檔中添加更多的文本並嘗試各種字體效果。

彩色字體

為了讓你的文檔支持彩色字體,你需要使用包(package)。你可以引用很多包來增強 LaTeX 的排版效果。包引用的命令放置在文檔的前導命令的位置(即放在 \begin{document} 命令之前)。使用 \usepackage[options]{package} 來引用包。其中 package 是包的名稱,而 options 是指定包的特徵的一些參數。

使用 \usepackage{color} 後,我們可以調用常見的顏色:

p6

使用彩色字體的代碼為

1
{\color{colorname}text}

其中 colorname 是你想要的顏色的名字,text 是你的彩色文本內容。注意到示例效果中的黃色與白色是有文字背景色的,這個我們同樣可以使用 Color 包中的 \colorbox 命令來達到。用法如下:

1
\colorbox{colorname}{text}

\(\rightarrow\)\begin{document} 前輸入 \usepackage{color}\(\rightarrow\) 在文檔內容中輸入 {\color{red}fire}\(\rightarrow\) 編譯並核對 PDF 文檔內容。

單詞 fire 應該是紅色的。

你也可以添加一些參數來調用更多的顏色,甚至自定義你需要的顏色。但這部分超出了本書的內容。如果想要獲取更多關於彩色文本的內容請閲讀 LaTeX Wikibook 的 Colors 章節

字體大小

接下來我們列舉一些 LaTeX 的字體大小設定命令:

1
2
3
4
5
6
7
8
9
normal size words
{\tiny tiny words}
{\scriptsize scriptsize words}
{\footnotesize footnotesize words}
{\small small words}
{\large large words}
{\Large Large words}
{\LARGE LARGE words}
{\huge huge words}

效果如下:

p7

\(\rightarrow\) 嘗試為你的文本調整字體大小。

段落縮進

LaTeX 默認每個章節第一段首行頂格,之後的段落首行縮進。如果想要段落頂格,在要頂格的段落前加 \noindent 命令即可。如果希望全局所有段落都頂格,在文檔的某一位置使用 \setlength{\parindent}{0pt} 命令,之後的所有段落都會頂格。

列表

LaTeX 支持兩種類型的列表:有序列表(enumerate)和無序列表(itemize)。列表中的元素定義為 \item。列表可以有子列表。

\(\rightarrow\) 輸入下面的內容來生成一個有序列表套無序列表:

1
2
3
4
5
6
7
8
9
\begin{enumerate}
\item First thing
\item Second thing
\begin{itemize}
\item A sub-thing
\item Another sub-thing
\end{itemize}
\item Third thing
\end{enumerate}

\(\rightarrow\) 編譯並核對 PDF 文檔。

列表長這樣:

p8

可以使用方括號參數來修改無序列表頭的標誌。例如,\item[-] 會使用一個槓作為標誌,你甚至可以使用一個單詞,比如 \item[One]

下面的代碼:

1
2
3
4
5
6
7
8
9
\begin{itemize}
\item[-] First thing
\item[+] Second thing
\begin{itemize}
\item[Fish] A sub-thing
\item[Plants] Another sub-thing
\end{itemize}
\item[Q] Third thing
\end{itemize}

生成的效果為

p9

註釋和空格

我們使用 % 創建一個單行註釋,在這個字符之後的該行上的內容都會被忽略,直到下一行開始。

下面的代碼:

1
2
3
4
It is a truth universally acknowledged% Note comic irony
in the very first sentence
, that a single man in possession of a good fortune, must
be in want of a wife.

生成的結果為

p10

多個連續空格在 LaTeX 中被視為一個空格。多個連續空行被視為一個空行。空行的主要功能是開始一個新的段落。通常來説,LaTeX 忽略空行和其他空白字符,兩個反斜槓(\\)可以被用來換行。

\(\rightarrow\) 嘗試在你的文檔中添加註釋和空行。

如果你想要在你的文檔中添加空格,你可以使用 \vaspace{...} 的命令。這樣可以添加豎着的空格,高度可以指定。如 \vspace{12pt} 會產生一個空格,高度等於 12pt 的文字的高度。

特殊字符

下列字符在 LaTeX 中屬於特殊字符:

1
# $ % ^ & _ { } ~ \

為了使用這些字符,我們需要在他們前面添加反斜槓進行轉義:

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

注意在使用 ^~ 字符的時侯需要在後面緊跟一對閉合的花括號,否則他們就會被解釋為字母的上標,就像 \^ e 會變成 \(\mathrm {\hat{e}}\)。上面的代碼生成的效果如下:

p11

注意,反斜槓不能通過反斜槓轉義(不然就變成了換行了),使用 \textbackslash 命令代替。

\(\rightarrow\) 輸入代碼來在你的文檔中生成下面內容:

p12

詢問專家或者查看本頁面的 源代碼 獲取幫助。

表格

表格(tabular)命令用於排版表格。LaTeX 默認表格是沒有橫向和豎向的分割線的——如果你需要,你得手動設定。LaTeX 會根據內容自動設置表格的寬度。下面的代碼可以創一個表格:

1
\begin{tabular}{...}

省略號會由定義表格的列的代碼替換:

  • l 表示一個左對齊的列;
  • r 表示一個右對齊的列;
  • c 表示一個向中對齊的列;
  • | 表示一個列的豎線;

例如,{lll} 會生成一個三列的表格,並且保存向左對齊,沒有顯式的豎線;{|l|l|r|} 會生成一個三列表格,前兩列左對齊,最後一列右對齊,並且相鄰兩列之間有顯式的豎線。

表格的數據在 \begin{tabular} 後輸入:

  • & 用於分割列;
  • \\ 用於換行;
  • \hline 表示插入一個貫穿所有列的橫着的分割線;
  • \cline{1-2} 會在第一列和第二列插入一個橫着的分割線。

最後使用 \end{tabular} 結束表格。舉一些例子:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
\begin{tabular}{|l|l|}
Apples & Green \\
Strawberries & Red \\
Orange & Orange\\
\end{tabular}

\begin{tabular}{rc}
Apples & Green\\
\hline 
Strawberries & Red \\
\cline{1-1}
Oranges & Orange \\
\end{tabular}

\begin{tabular}{|r|l|}
\hline
8 & here's \\
\cline{2-2}
86 & stuff\\
\hline \hline 
2008 & now \\
\hline 
\end{tabular}

效果如下:

p13

實踐

嘗試畫出下列表格:

p14

圖表

本章介紹如何在 LaTeX 文檔中插入圖表。這裏我們需要引入 graphicx 包。圖片應當是 PDF,PNG,JPEG 或者 GIF 文件。下面的代碼會插入一個名為 myimage 的圖片:

1
2
3
4
5
6
\begin{figure}[h]
\centering
\includegraphics[width=1\textwidth]{myimage}
\caption{Here is my image}
\label{image-myimage}
\end{figure}

[h] 是位置參數,h 表示把圖表近似地放置在這裏(如果能放得下)。有其他的選項:t 表示放在在頁面頂端;b 表示放在在頁面的底端;p 表示另起一頁放置圖表。你也可以添加一個 ! 參數來強制放在參數指定的位置(儘管這樣排版的效果可能不太好)。

\centering 將圖片放置在頁面的中央。如果沒有該命令會默認左對齊。使用它的效果是很好的,因為圖表的標題也是居中對齊的。

\includegraphics{...} 命令可以自動將圖放置到你的文檔中,圖片文件應當與 TeX 文件放在同一目錄下。

[width=1\textwidth] 是一個可選的參數,它指定圖片的寬度——與文本的寬度相同。寬度也可以以釐米為單位。你也可以使用 [scale=0.5] 將圖片按比例縮小(示例相當於縮小一半)。

\caption{...} 定義了圖表的標題。如果使用了它,LaTeX 會給你的圖表添加「Figure」開頭的序號。你可以使用 \listoffigures 來生成一個圖表的目錄。

\label{...} 創建了一個可以供你引用的標籤。

實踐

\(\rightarrow\) 在你文檔的前導命令中添加 \usepackage{graphicx}\(\rightarrow\) 找到一張圖片,放置在你的 LaTeX course 文件夾下。\(\rightarrow\) 在你想要添加圖片的地方輸入以下內容:

1
2
3
4
5
\begin{figure}[h!]
\centering
\includegraphics[width=1\textwidth]{ImageFilename}
\caption{My test image}
\end{figure}

ImageFilename 替換為你的文件的名字(不包括後綴)。如果你的文件名有空格,就使用雙引號包裹,比如 "screen 20"

\(\rightarrow\) 編譯並核對文件。

公式

使用 LaTeX 的主要原因之一是它可以方便地排版公式。我們使用數學模式來排版公式。

插入公式

你可以使用一對 $ 來啓用數學模式,這可以用於撰寫行內數學公式。例如 $1+2=3$ 的生成效果是 \(1+2=3\)

如果你想要行間的公式,可以使用 $$...$$(現在我們推薦使用 \[...\],因為前者可能產生不良間距)。例如,$$1+2=3$$ 的生產效果為

\[ 1+2=3 \]

如果是生成帶標號的公式,可以使用 \begin{equation}...\end{equation}。例如:

1
2
3
\begin{equation}
  1+2=3
\end{equation}

生成的效果為:

equation

數字 6 代表的是章節的編號,僅當你的文檔有設置章節時才會出現,比如 report 類型的文檔。

使用 \begin{eqnarray}...\end{eqnarray} 來撰寫一組帶標號的公式。例如:

1
2
3
4
\begin{eqnarray}
  a & = & b + c \\
    & = & y - z
\end{eqnarray}

生成的效果為

eqnarray

要撰寫不標號的公式就在環境標誌的後面添加 * 字符,如 {equation*}{eqnarray*}

Warning

可以發現,使用 eqnarray 時,會出現等號周圍的空隙過大之類的問題。

可以使用 amsmath 宏包中的 align 環境:

1
2
3
4
5
6
\usepackage{amsmath}
...
\begin{align}
  a & = b + c \\
    & = y - z
\end{align}

或在行間公式中使用 aligned 環境。它們的名字後面加上星號後,公式就不帶標號了。

詳見 更多閲讀 中第一篇資料的「4.4 多行公式」。

數學符號

儘管一些基礎的符號可以直接鍵入,但大多數特殊符號需要使用命令來顯示。

本書只是數學符號使用的入門教程,LaTeX Wikibook 的數學符號章節是另一個更好更完整的教程。如果想要了解更多關於數學符號的內容請移步。如果你想找到一個特定的符號,可以使用 Detexfiy,它可以識別手寫字符。

上標和下標

上標(Powers)使用 ^ 來表示,比如 $n^2$ 生成的效果為 \(n^2\)

下標(Indices)使用 _ 表示,比如 $2_a$ 生成的效果為 \(2_a\)

如果上標或下標的內容包含多個字符,請使用花括號包裹起來。比如 $b_{a-2}$ 的效果為 \(b_{a-2}\)

分數

分數使用 \frac{numerator}{denominator} 命令插入。比如 $$\frac{a}{3}$$ 的生成效果為

\[ \frac{a}{3} \]

分數可以嵌套。比如 $$\frac{y}{\frac{3}{x}+b}$$ 的生成效果為

\[ \frac{y}{\frac{3}{x}+b} \]

根號

我們使用 \sqrt{...} 命令插入根號。省略號的內容由被開根的內容替代。如果需要添加開根的次數,使用方括號括起來即可。

例如 $$\sqrt{y^2}$$ 的生成效果為

\[ \sqrt{y^2} \]

$$\sqrt[x]{y^2}$$ 的生成效果為

\[ \sqrt[x]{y^2} \]

求和與積分

使用 \sum\int 來插入求和式與積分式。對於兩種符號,上限使用 ^ 來表示,而下限使用 _ 表示。

$$\sum_{x=1}^5 y^z$$ 的生成效果為

\[ \sum_{x=1}^5y^z \]

$$\int_a^b f(x)$$ 的生成效果為

\[ \int_a^b f(x) \]

希臘字母

我們可以使用反斜槓加希臘字母的名稱來表示一個希臘字母。名稱的首字母的大小寫決定希臘字母的形態。例如

  • $\alpha$=\(\alpha\)
  • $\beta$=\(\beta\)
  • $\delta, \Delta$=\(\delta, \Delta\)
  • $\pi, \Pi$=\(\pi, \Pi\)
  • $\sigma, \Sigma$=\(\sigma, \Sigma\)
  • $\phi, \Phi, \varphi$=\(\phi, \Phi, \varphi\)
  • $\psi, \Psi$=\(\psi, \Psi\)
  • $\omega, \Omega$=\(\omega, \Omega\)

實踐

\(\rightarrow\) 撰寫代碼來生成下列公式:

p15

如果需要幫助,可以查看本頁面的 源代碼

參考文獻

介紹

LaTeX 可以輕鬆插入參考文獻以及目錄。本文會介紹如何使用另一個 BibTeX 文件來存儲參考文獻。

BibTeX 文件類型

BibTeX 文件包含了所有你想要在你文檔中引用的文獻。它的文件後綴名為 .bib。它的名字應設置為你的 TeX 文檔的名字。.bib 文件是文本文件。你需要將你的參考文獻按照下列格式輸入:

1
2
3
4
5
6
7
8
9
@article{
    Birdetal2001,
    Author = {Bird, R. B. and Smith, E. A. and Bird, D. W.},
    Title = {The hunting handicap: costly signaling in human foraging strategies},
    Journal = {Behavioral Ecology and Sociobiology},
    Volume = {50},
    Pages = {9-19},
    Year = {2001} 
}

每一個參考文獻先聲名它的文獻類型(reference type)。示例中使用的是 @article,其他的類型包括 @book,@incollection 用於引用一本書的中的章節,@inproceedings 用於引用會議論文。可以 在此 查看更多支持的類型。

接下來的花括號內首先要列出一個引用鍵值(citation key)。必須保證你引用的文獻的引用鍵值是不同的。你可以自定義鍵值串,不過使用第一作者名字加上年分會是一個表義清晰的選擇。

接下來的若干行包括文獻的若干信息,格式如下:

1
Field name = {field contents},

你可以使用 LaTeX 命令來生成特殊的文字效果。比如意大利斜體可以使用 \emph{Rattus norvegicus}

對於需要大寫的字母,請用花括號包裹起來。BibTeX 會自動把標題中除第一個字母外所有大寫字母替換為小寫。比如 Dispersal in the contemporary United States 的生成效果為 \(\text{Dispersal in the contemporary united states}\),而 Dispersal in the contemporary {U}nited {S}tates 的生成效果為 \(\text{Dispersal in the contemporary United States}\)

你可以手寫 BibTeX 文件,也可以使用軟件來生成。

插入文獻列表

使用下列命令在文檔當前位置插入文獻列表:

1
2
\bibliographystyle{plain}
\bibliography{references}

參考文獻寫在 references.bib 裏。

參考文獻標註

使用 \cite{citationkey} 來在你想要引用文獻的地方插入一個標註。如果你不希望在正文中插入一個引用標註,但仍想要在文獻列表中顯示這次引用,使用 \nocite{citationkey} 命令。

想要在引用中插入頁碼信息,使用方括號:\cite[p. 215]{citationkay}

要引用多個文獻,使用逗號分隔:\cite{citation01,citation02,citation03}

引用格式

數字標號引用

LaTeX 包含了多種行內數字標號引用的格式:

Plain 方括號包裹數字的形式,如 \([1]\)。文獻列表按照第一作者的字母表順序排列。每一個作者的名字是全稱。

Abbrvplain 是相同的,但作者的名字是縮寫。

Unsrtplain 是相同的,但文獻列表的排序按照在文中引用的先後順序排列。

Alphaplain 一樣,但引用的標註是作者的名字與年份組合在一起,不是數字,如 \([Kop10]\)

作者日期引用

如果你想使用作者日期的引用,使用 natbib 包。它使用 \citep{...} 命令來生成一個方括號標註,如 \([Koppe,2010]\),使用 \citet{...} 來生成一個標註,只把年份放到方括號裏,如 \(Koppe [2010]\)在此 查看它的更多用法。

Natbib 包也有三種格式:plainnatabbrvnatunsrtnat,他們與 plainabbrvunsrt 的效果是一樣的。

其他引用格式

如果你需要使用不同的格式,你需要在同一個文件夾下創建一個格式文件(.bst 文件),引用這個格式的時侯使用它的文件名調用 \bibliographystyle{...} 命令實現。

實踐

\(\rightarrow\) 在同一文件夾下新建一個同名的 BibTeX 文件,用正確的格式輸入參考文獻的信息。\(\rightarrow\) 切換到 TeX 文檔,並使用 \cite\bibliographystyle\bibliograph 命令來引用文獻。\(\rightarrow\) 編譯 TeX 文件。\(\rightarrow\) 切換到 BibTeX 文件,並編譯(點擊 Typeset 按扭)\(\rightarrow\) 切換到 TeX 文件並編譯它 兩次,然後核對 PDF 文檔。

更多閲讀

本文譯自 http://www.docs.is.ed.ac.uk/skills/documents/3722/3722-2014.pdf, 依據其他文獻略有修改。