跳轉到內容

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. 命令詞彙表

編輯此框編輯目錄

撰寫文字的主要目的是向讀者傳達想法、資訊或知識。如果這些想法結構良好,讀者會更好地理解文字,並且如果排版形式反映了內容的邏輯和語義結構,讀者會更好地看到和感受到這種結構。

僅給出文字的邏輯和語義結構,LaTeX 會根據文件類檔案和各種樣式檔案中的“規則”推匯出文字的排版形式。LaTeX 允許使用者使用各種分層結構來構建他們的文件,包括章節、節、小節和段落。

全域性結構

[edit | edit source]

當 LaTeX 處理輸入檔案時,它期望它遵循一定的結構。因此,每個輸入檔案都必須包含以下命令:

\documentclass{...}

\begin{document}
...
\end{document}

\documentclass{...}\begin{document} 之間的區域稱為前言。它通常包含影響整個文件的命令。

在前言之後,文件的文字包含在兩個命令之間,這兩個命令標識實際文件的開始和結束

\begin{document}
...
\end{document}

您將在點號所在的位置放置您的文字。標記文字開始的原因是 LaTeX 允許您在文字之前插入額外的設定規範(例如,在上面的示例中空白行所在的位置:我們很快就會使用它)。標記文字結束的原因是為 LaTeX 提供一個位置,以便在文件結束時自動執行額外的操作,例如建立索引。

標記文件文字結束的一個有用的副作用是,您可以將註釋或臨時文字儲存在 \end{document} 下面,因為 LaTeX 永遠不會嘗試對它們進行排版

\end{document}
...

前言

[edit | edit source]

文件類

[edit | edit source]

在處理輸入檔案時,LaTeX 需要知道要使用哪個佈局標準。佈局標準包含在“類檔案”中,這些檔案的副檔名為 .cls。

\documentclass[options]{class}

這裡,\documentclass 命令的 class 引數指定要用於文件的 .cls 檔案。建議將此宣告放在開頭。LaTeX 發行版為其他佈局提供了額外的類,包括信件和幻燈片。您也可以建立自己的類,這通常是期刊出版商所做的,他們只是向您提供他們自己的類檔案,該檔案告訴 LaTeX 如何格式化您的內容。但現在我們將很樂意使用標準的 article 類。options 引數自定義文件類的行為。選項必須用逗號隔開。

示例:LaTeX 文件的輸入檔案可以以以下行開頭:

\documentclass[11pt,twoside,a4paper]{article}

這指示 LaTeX 以 11 點字號的 article 格式排版文件,並生成適合在 A4 紙上雙面列印的佈局。

以下是一些可用於 LaTeX 的文件類:

文件類
article 用於科學期刊中的文章、簡報、簡短報告、程式文件、邀請函等。
IEEEtran 用於使用 IEEE Transactions 格式的文章。
proc 基於 article 類的會議論文類。
minimal 它儘可能小。它只設置頁面大小和基本字型。它主要用於除錯目的。
report 用於包含多個章節的較長報告、小冊子、論文等。
book 用於書籍。
slides 用於幻燈片。該類使用大號無襯線字型。
memoir 用於合理地更改文件的輸出。它基於 book 類,但您可以用它建立任何型別的文件 [1]
letter 用於寫信。
beamer 用於編寫簡報(見 LaTeX/簡報)。

這裡有一個 文件類的完整列表

與 LaTeX 附帶的一般文件類提供了一些佈局靈活性,這就是為什麼它們在選項上有很大重疊。非一般類(由大學部門或出版機構提供的類)可能與下面所示的選項不同,或者根本沒有選項。通常,第三方類會附帶自己的文件。以下是通用文件類的最常見選項,列在以下表格中:

文件類選項
10pt、11pt、12pt 設定文件中主體字型的尺寸。如果未指定選項,則假定為 10pt。
a4paper、letterpaper、... 定義紙張大小。預設大小為 letterpaper;但是,許多歐洲版本的 TeX 現在預設為 A4,而不是 Letter,這在所有 pdfLaTeX 版本中也是如此。除此之外,還可以指定 a5paper, b5paper, executivepaperlegalpaper
fleqn 將顯示的公式左對齊而不是居中。
leqno 將公式編號放在左側而不是右側。
titlepage, notitlepage 指定文件標題後是否應該開始新頁面。article 類預設情況下不會開始新頁面,而 report 和 book 會開始新頁面。
twocolumn 指示 LaTeX 將文件設定為兩列而不是一列。
twoside, oneside 指定應該生成雙面或單面輸出。類 articlereport 預設情況下是單面的,而 book 類預設情況下是雙面的。請注意,此選項僅影響文件的樣式。選項 twoside 不會告訴您使用的印表機它應該實際進行雙面列印。
landscape 更改文件佈局以橫向列印。
openright, openany 使章節僅從右側頁面開始,或從下一個可用的頁面開始。這在 article 類中不起作用,因為它不知道章節。 report 類預設情況下從下一個可用的頁面開始章節,而 book 類從右側頁面開始章節。
draft, final final 是預設值。 draft 使 LaTeX 在問題行的右側邊距中用一個小方塊來指示連字元和對齊問題,以便人類可以快速找到它們。它還會禁止包含影像,並且只顯示影像通常出現的位置的框架。

例如,如果您希望一份報告使用 12pt 字號在 A4 紙上列印,但要單面列印並使用草稿模式,您將使用

\documentclass[12pt,a4paper,oneside,draft]{report}

在編寫文件時,您可能會發現基本 LaTeX 無法解決您遇到的某些問題。如果您想將圖形、彩色文字或來自檔案中的原始碼包含到您的文件中,則需要增強 LaTeX 的功能。此類增強稱為包。一些包與 LaTeX 基本發行版一起提供。其他包單獨提供。現代 TeX 發行版預裝了許多包。使用包的命令非常簡單:\usepackage

\usepackage[options]{package}

命令,其中 package 是包的名稱,options 是一個觸發包中特殊功能的關鍵字列表。例如,要使用 color 包(允許您使用顏色排版),您將輸入

\documentclass{report}
\usepackage{color}

\begin{document}
...
\end{document}

您可以將多個選項傳遞給一個包,每個選項之間用逗號隔開。

\usepackage[option1,option2,option3]{''package_name''}

document 環境

[edit | edit source]

頂部內容

[edit | edit source]

大多數文件的開頭都會包含有關文件本身的資訊,例如標題和日期,以及有關作者的資訊,例如姓名、地址、電子郵件等。所有這些型別的 LaTeX 中的資訊統稱為頂部內容。雖然從未明確指定(沒有 \topmatter 命令),但您可能會在 LaTeX 文件中遇到該術語。

一個簡單的例子

\documentclass[11pt,a4paper]{report}

\begin{document}
\title{How to Structure a LaTeX Document}
\author{Andrew Roberts}
\date{December 2004}
\maketitle
\end{document}

\title\author\date 命令是不言自明的。您在相關命令後用花括號將標題、作者姓名和日期括起來。標題和作者通常是必填項(至少如果您希望 LaTeX 自動編寫標題);如果您省略了 \date 命令,LaTeX 預設使用今天的日期。您始終使用 \maketitle 命令完成頂部內容,該命令告訴 LaTeX 它已完成,並且可以根據您提供的資訊和您使用的類(樣式)來排版標題。如果您省略 \maketitle,標題將永遠不會被排版。


使用這種方法,您只能建立佈局固定的標題。如果您想自由建立標題,請參見 標題建立 部分。但是,您應該記住,LaTeX 的目標是將格式留給文件類設計人員,如果您希望將您的作品提交給多個出版商,那麼您應該避免設計自定義標題。

摘要

[edit | edit source]

由於大多數研究論文都有摘要,因此有預定義的命令用於告訴 LaTeX 內容的哪一部分構成摘要。因此,它應該按邏輯順序出現,即在頂部內容之後,但在主體的主要部分之前。此命令適用於 articlereport 文件類,但不適用於 book 文件類。

\documentclass{article}

\begin{document}

\begin{abstract}
Your abstract goes here...
...
\end{abstract}
...
\end{document}

預設情況下,LaTeX 將使用“Abstract”作為摘要的標題。如果您想將其更改為其他內容,例如“Executive Summary”,請在開始摘要環境之前新增以下行

\renewcommand{\abstractname}{Executive Summary}

分節命令

[edit | edit source]

插入節的命令相當直觀。當然,某些命令適用於不同的文件類。例如,一本書有章節,但文章沒有。以下是一些在 simple.tex 中找到的結構命令。

\chapter{Introduction}
This chapter's content...

\section{Structure}
This section's content...

\subsection{Top Matter}
This subsection's content...

\subsubsection{Article Information}
This subsubsection's content...

請注意,您不需要指定節編號;LaTeX 會為您整理好。此外,對於節,您不需要使用 \\end 命令來指示哪些內容屬於給定的塊。

LaTeX 提供了 7 個深度級別來定義節(見下表)。表中每個節都是其上一個節的子節。

命令 級別 註釋
\part{''part''} -1 不在信函中
\chapter{''chapter''} 0 僅書籍和報告
\section{''section''} 1 不在信函中
\subsection{''subsection''} 2 不在信函中
\subsubsection{''subsubsection''} 3 不在信函中
\paragraph{''paragraph''} 4 不在信函中
\subparagraph{''subparagraph''} 5 不在信函中

所有節的標題都會自動新增到目錄中(如果您決定插入目錄)。但是,如果您對標題進行手動樣式更改,例如非常長的標題,或某些特殊的換行符或不尋常的字型玩法,這也會出現在目錄中,而您幾乎肯定不希望這樣做。LaTeX 允許您提供標題文字的可選額外版本,該版本僅用於目錄和任何正在生效的頁首。此可選的替代標題放在標題前的 [方括號] 中

\section[Effect on staff turnover]{An analysis of the
effect of the revised recruitment policies on staff
turnover at divisional headquarters}

節編號

[edit | edit source]

節的編號由 LaTeX 自動執行,因此不要費心顯式新增它們,只需在花括號之間插入您想要的標題即可。部分使用羅馬數字(第一部分、第二部分等);章節和節使用像本文件這樣的十進位制編號,附錄(只是章節的一種特殊情況,具有相同的結構)用字母編號(A、B、C 等)。

您可以更改節編號的深度,以便您可以選擇性地關閉它。預設情況下,它設定為 3。如果您只希望部分、章節和節編號,而不是小節、子小節等,您可以使用 \setcounter 命令更改 secnumdepth 計數器 的值,並提供您想要的深度級別。例如,如果您想將其更改為“1”

\setcounter{secnumdepth}{1}

一個相關的計數器是 tocdepth,它指定目錄的深度。它可以以與 secnumdepth 完全相同的方式重置。例如

\setcounter{tocdepth}{3}

要獲得不帶編號的節標題,該標題不會進入目錄,請在命令名稱後加一個星號,然後再加開花括號

\subsection*{Introduction}

\part*\subparagraph* 的所有劃分命令都有這種“帶星號”的版本,可以在特殊情況下用於不帶編號的標題,此時 secnumdepth 的設定通常意味著它將被編號。

如果您希望不帶編號的節出現在目錄中,請使用包 unnumberedtotoc [1]。它提供以下命令

\addsec{Introduction}

它會處理合適的頁首。\addpart\addchap 也可以使用。KOMA 類預設提供這些命令。

如果您不想使用 unnumberedtotoc 包,您需要使用 \addcontentsline\markright{}(甚至 \markboth{}{})手動完成所有操作。


\section*{Introduction}
\markright{}
\addcontentsline{toc}{section}{Introduction}

請注意,如果您使用 PDF 書籤,您需要新增一個佔位符部分,以便超連結指向文件中的正確位置。\phantomsection 命令在 hyperref 包中定義,通常按以下方式使用

\phantomsection
\addcontentsline{toc}{section}{Introduction}
\section*{Introduction}

對於章節,您還需要清除頁面(這也會更正目錄中的頁碼)。

\clearpage %or \cleardoublepage
\phantomsection
\addcontentsline{toc}{chapter}{List of Figures}
\listoffigures

章節編號樣式

[edit | edit source]

參見 計數器

普通段落

[edit | edit source]

文字段落出現在節標題之後。只需鍵入文字並在段落之間留一個空行即可。空行表示“在此處開始新段落”:它表示您在排版輸出中獲得一個空行。有關段落縮排和段落間距的格式,請參閱 段落格式 部分。

目錄

[edit | edit source]

所有自動編號的標題都會自動進入目錄 (ToC)。您不必列印目錄,但如果您想列印,只需在您想要列印它的位置新增命令 \tableofcontents(通常在摘要或摘要之後)。

每次處理文件時都會記錄目錄的條目,並在下次處理時重新生成,因此您需要額外執行一次 LaTeX 以確保所有目錄頁碼引用都已正確計算。我們已經瞭解瞭如何使用分節命令的可選引數向目錄新增文字,該文字略微不同於列印在文件正文中的文字。也可以向目錄新增額外的行,以強制包含額外的或未編號的節標題。

命令 \listoffigures\listoftables 的工作原理與 \tableofcontents 完全相同,以自動列出您所有的表格和圖形。如果您使用它們,它們通常位於 \tableofcontents 命令之後。 \tableofcontents 命令通常只顯示編號的節標題,並且只顯示到由 tocdepth 計數器定義的級別,但您可以使用 \addcontentsline 命令新增額外的條目。例如,如果您使用未編號的節標題命令來啟動像前言或序言這樣的初步文字,您可以寫

\subsection*{Preface}
\addcontentsline{toc}{subsection}{Preface}

這將使用“小節”樣式格式化“前言”的未編號目錄條目。您可以使用相同的機制透過將 loflot 替換為 toc,將行新增到圖示列表或表列表中。如果使用了 hyperref 包並且連結沒有指向正確的章節,則可以使用 \phantomsection 命令與 \clearpage\cleardoublepage 命令結合使用(另請參見 標籤和交叉引用)。

\cleardoublepage
\phantomsection
\addcontentsline{toc}{chapter}{List of Figures}
\listoffigures

要更改目錄的標題,您需要將此命令 \renewcommand{\contentsname}{<新目錄標題>} 貼上到您的文件序言中。圖示列表 (LoF) 和表列表 (LoT) 的名稱可以透過將 \contentsname 替換為 \listfigurename 用於 LoF 以及 \listtablename 用於 LoT 來更改。

深度

[edit | edit source]

預設目錄將列出級別 3 及以上的標題。要更改目錄自動顯示的深度,可以在序言中使用以下命令

\setcounter{tocdepth}{4}

這將使目錄包含所有內容,直到段落。級別在本頁上面定義。請注意,此解決方案不允許動態更改深度。

您可以更改特定節型別的深度,這對於 PDF 書籤可能很有用(如果您使用的是 hyperref 包)。

\makeatletter
\renewcommand*{\toclevel@chapter}{-1} % Put chapter depth at the same level as \part.
\chapter{Epilogue}
\renewcommand*{\toclevel@chapter}{0} % Put chapter depth back to its default value.
\makeatother

為了進一步調整目錄的顯示或編號,例如如果附錄應該不太詳細,您可以使用 tocvsec2 包 (CTAN, doc)。

書籍結構

[edit | edit source]

標準 LaTeX book 類遵循上面描述的相同佈局,並有一些補充。預設情況下,書籍將是雙面的, 左邊距和右邊距將根據頁碼奇偶性更改。此外,當前章節和節將列印在頁首中。

如果您不使用章節,使用 book 類幾乎沒有用。

此外,該類還提供宏來更改文件某些位置的格式。我們將為您提供一些關於如何正確使用它們的建議。[2]

\begin{document}
\frontmatter

\maketitle

% Introductory chapters
\chapter{Preface}
% ...

\mainmatter
\chapter{First chapter}
% ...

\appendix
\chapter{First Appendix}

\backmatter
\chapter{Last note}
  • 前言章節不會編號。頁碼將以羅馬數字列印。前言不應該有節,因此它們將被編號為 0.n,因為沒有章節編號。檢視 計數器 章節以獲取修復方法。
  • 正文位元組按預期工作。該命令重置頁碼。頁碼將以阿拉伯數字列印。
  • 可以使用 \appendix 宏來指示後面的節或章節將作為附錄編號。附錄也可以用於 article 類。
\appendix
\section{First Appendix}

只使用 \appendix 宏一次,用於所有附錄。

  • 後記的行為與前言類似。它在節編號方面存在相同的問題。

一般來說,您應該避免混合命令順序。儘管如此,所有命令都是可選的,因此您可以考慮只使用幾個。

請注意,目錄等特殊內容被視為未編號的章節。

頁面順序

[edit | edit source]

這是書籍的傳統頁面順序。

前言
  1. 半標題頁
  2. 空白頁
  3. 標題頁
  4. 資訊(版權宣告、ISBN 等)
  5. 如果有獻辭,否則為空白頁
  6. 目錄
  7. 圖示列表(也可以放在後記中)
  8. 前言章節
正文
  1. 主要主題
附錄
  1. 一些從屬章節
後記
  1. 參考文獻
  2. 詞彙表 / 索引


特殊頁面

[edit | edit source]

綜合性論文通常在結尾處包含特殊頁面,例如索引、詞彙表和參考文獻。由於這是一個相當複雜的話題,我們將在專門的《特殊頁面》部分中為您提供詳細資訊。

參考文獻

[edit | edit source]

任何優秀的學術論文都將有一個完整的參考文獻列表。LaTeX 有兩種方法可以將您的參考文獻插入文件中

  • 您可以將它們嵌入文件本身。它更簡單,但如果您正在撰寫關於類似主題的幾篇論文,因此您經常需要引用相同的書籍,這可能會很耗時。
  • 您可以將它們儲存在外部 BibTeX 檔案 中,然後透過命令將它們連結到您的當前文件,並使用 BibTeX 樣式 來定義它們的顯示方式。這樣,您可以建立一個小型參考文獻資料庫,您可能會使用它們,只需連結它們,讓 LaTeX 為您工作。

要了解如何將參考文獻新增到您的文件,請參閱 參考文獻管理 部分。

註釋和參考文獻

[edit | edit source]


上一頁: 基礎知識 索引 下一頁: 文字格式
華夏公益教科書