第三章 文档元素 - TcSong24

时间:2024-03-06 09:02:53

第三章 文档元素

 本章了解一个结构化的文档所依赖的各种元素——章节、目录、列表、图表、交叉引用、脚注等等。

3.1 章节和目录

3.1.1 章节标题

  一篇结构化的、条理清晰文档一定是层次分明的,通过不同的命令分割为章、节、小节。LATEX的三个标准文档类article、report和book提供了一系列命令,用以划分章节、生成章节并自动编号:

\section{<title>}        \sunsection{<title>}  \subsubsection{<titile>}
\paragraph{<title>}    \subparagraph{<title>}

\part命令用以将整个文档分割为大的分块,但不影响\section等编号:

\part{<title>}

book和report提供了章一级的结构:

\chapter{<title>}  

上述命令除了生成带编号的标题之外,还向目录中添加条目,并影响页眉页脚的内容。

3.1.2 目录

  在LATEX中生成目录非常容易,只需在合适的地方使用命令:

\tableofcontents

正确生成目录项,一般需要多次编译源代码。

有时候使用了\chapter*或\section*这样不生成目录项的命令,而又想手动生成该章节的目录,可以在标题命令后面使用:

\addcontentsline{toc}{<level>}{<title>}  

其中<level>为章节层次chapter或section等,<title>为需要生成目录项的章节标题。

3.1.3 文档结构的划分

  所有文档类都提供了一个\appendix命令将正文和附录分开。   

 

3.2 标题页

3.3 交叉引用

  交叉引用是LATEX强大的自动排版功能的体现之一。在能够被交叉引用的地方,如章节、公式、图标、定理等位置使用\label命令:

\label{<label-name>}  

之后可以在别处使用\ref或\pageref命令,分别生成交叉引用的编号和页码:

\ref{<label-name>}     \pageref{<label-name>}

为了生成正确的交叉引用,一般也需要多次编译源代码  

3.4 脚注

3.5 特殊环境

3.5.1 列表

  LATEX提供了基本的有序和无序列表环境enumerate和itemize,两者的用法很类似,都用\item表明每个列表项。enumerate环境会自动对列表项标号。

\begin {enumerate}
\item..
\end {enumerate]  

其中\item可带一个可选参数,将有序列表的技术或者无序列表的符号替换成自定义的符号。列表可以嵌套,最多嵌套四层。

3.5.2 对齐环境

center、flushleft和flushright环境分别用于生成居中、左对齐和右对齐的文本环境。

\begin{center} ...\end{center}

  

3.5.3 引用环境

  LATEX提供了两种引用的环境:quote用于引用较短的文字、首行不缩进;quotation用于引用若干段文字,首行缩进。引用环境较一般文字有额外的左右缩进。

3.5.4 摘要环境

  摘要环境abstract只在article和report文档类可用,一般用于紧跟\maketitle命令之后介绍文档的摘要。如果文档给定了titlepage选项,则单独成页;反之相当于一个小标题加一个qutation环境。

3.5.5 代码环境

 

3.6 表格

  LATEX里排版表格不如Word等所见即所得的工具简便和*,不过对于不太复杂的表格来讲,完全能够胜任。

  排版表格最基本的tabular环境用法为:

\begin{tabular}{<column-spec>}
<item1>&<item2>&...\\
\hline
<item1>&<item2>&...\\
\end{tabular}  

其中<column-spec>是列格式标记;&用来分割单元格;\\用来换行;\hline用来在行与行之间绘制横线。

  直接使用tabular环境的话,会和周围的文字混排。tabular环境可带一个可选参数控制垂直对齐(默认是垂直居中)。

3.6.1 列格式

  LATEX表格中基本的列格式如下表:

 

3.6.2 列宽

  tabularx宏包提供了方便的解决方案。它引入了一个X格式,类似于p格式,不过会根据表格宽度自动计算列宽,多个X格式平局分配列宽。X格式也可以用array里的辅助格式修饰对其方式:

3.6.3 横线

  在科技论文排版中广泛应用的表格形式是三线表,形式干净简明。三线表由booktabs宏包支持,它提供了\toprule、\midrule和\bottomrule命令用以排版三线表的三条线,除此之外,最好不好用其它横线以及竖线:

3.6.4 合并单元格

3.6.5 行距控制

  LATEX生成的表格看起来通常比较紧凑。修改参数\arraystretch可以得到行距更加宽松的表格。

另一种增加间距的办法是诶换行命令\\添加可选参数,在这一行下面加额外的间距,适合用于在行间不加横线的表格:

 

3.7 图片

  LATEX本身不支持插图功能,需要由graphicx红包辅助支持。

在调用了graphicx宏包以后,就可以使用\includegraphics命令加载图片了:

\includegraphics[<options>]{<filename>}  

其中<filename>为图片文件名,与使用\include命令类似,文件名有时需要使用相对路径或绝对路径。图片文件的扩展名可写可不写。

 

3.8 盒子

  盒子是LATEX排版的基础单元,虽然解释上去有些抽象:每一行是一个盒子,里面的文字从左到右一次排列;每一页也是一个盒子,各行文字从上到下一次排布。

3.8.1 水平盒子

  生成水平盒子的命令如下:

\mbox{...}
\makebox{[<width>][<align>]}{...}

 

3.9 浮动体

  内容丰富的文章或者书籍往往包含丰富的图片和表格等内容。这些内容的尺寸往往太大、导致分页困难。LATEX为此引入了浮动体的机制,令大块的内容可以脱离上下文,放置在合适的位置。 

  LATEX预定义了两类浮动体环境figure和table。习惯上figure里放图片,table里放表格,但并没有严格限制,可以在任何一个浮动体里放置表格,文字、列表等等任意内容。以table环境的用法为例,figure同理:

\begin {table}[<placement>]
....
\end {table}

<placement>参数提供了一些符号用来浮动体用来表示排版的位置。