LaTeX/文档结构
撰写文本的主要目的是向读者传达想法、信息或知识。如果这些想法结构良好,读者会更好地理解文本,并且如果排版形式反映了内容的逻辑和语义结构,读者会更好地看到和感受到这种结构。
仅给出文本的逻辑和语义结构,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, executivepaper 和 legalpaper。 |
fleqn | 将显示的公式左对齐而不是居中。 |
leqno | 将公式编号放在左侧而不是右侧。 |
titlepage, notitlepage | 指定文档标题后是否应该开始新页面。article 类默认情况下不会开始新页面,而 report 和 book 会开始新页面。 |
twocolumn | 指示 LaTeX 将文档设置为两列而不是一列。 |
twoside, oneside | 指定应该生成双面或单面输出。类 article 和 report 默认情况下是单面的,而 book 类默认情况下是双面的。请注意,此选项仅影响文档的样式。选项 twoside 不会告诉您使用的打印机它应该实际进行双面打印。 |
landscape | 更改文档布局以横向打印。 |
openright, openany | 使章节仅从右侧页面开始,或从下一个可用的页面开始。这在 article 类中不起作用,因为它不知道章节。 report 类默认情况下从下一个可用的页面开始章节,而 book 类从右侧页面开始章节。 |
draft, final | final 是默认值。 draft 使 LaTeX 在问题行的右侧边距中用一个小方块来指示连字符和对齐问题,以便人类可以快速找到它们。它还会禁止包含图像,并且只显示图像通常出现的位置的框架。 |
例如,如果您希望一份报告使用 12pt 字号在 A4 纸上打印,但要单面打印并使用草稿模式,您将使用
\documentclass[12pt,a4paper,oneside,draft]{report}
|
包
[edit | edit source]在编写文档时,您可能会发现基本 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 内容的哪一部分构成摘要。因此,它应该按逻辑顺序出现,即在顶部内容之后,但在主体的主要部分之前。此命令适用于 article 和 report 文档类,但不适用于 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}
|
这将使用“小节”样式格式化“前言”的未编号目录条目。您可以使用相同的机制通过将 lof 或 lot 替换为 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]这是书籍的传统页面顺序。
- 前言
- 半标题页
- 空白页
- 标题页
- 信息(版权声明、ISBN 等)
- 如果有献辞,否则为空白页
- 目录
- 图示列表(也可以放在后记中)
- 前言章节
- 正文
- 主要主题
- 附录
- 一些从属章节
- 后记
- 参考文献
- 词汇表 / 索引
特殊页面
[edit | edit source]综合性论文通常在结尾处包含特殊页面,例如索引、词汇表和参考文献。由于这是一个相当复杂的话题,我们将在专门的《特殊页面》部分中为您提供详细信息。
参考文献
[edit | edit source]任何优秀的学术论文都将有一个完整的参考文献列表。LaTeX 有两种方法可以将您的参考文献插入文档中
- 您可以将它们嵌入文档本身。它更简单,但如果您正在撰写关于类似主题的几篇论文,因此您经常需要引用相同的书籍,这可能会很耗时。
- 您可以将它们存储在外部 BibTeX 文件 中,然后通过命令将它们链接到您的当前文档,并使用 BibTeX 样式 来定义它们的显示方式。这样,您可以创建一个小型参考文献数据库,您可能会使用它们,只需链接它们,让 LaTeX 为您工作。
要了解如何将参考文献添加到您的文档,请参阅 参考文献管理 部分。
注释和参考文献
[edit | edit source]