LaTeX教程(011)- LaTeX \LaTeX LATEX文档结构(11)
2.3 目录的结构
首先简单介绍一下与目录相关的信息。目录(TOC: table of contents)是一个特殊的列表,它列出章节单位的标题以及它们所在的页码。这些标题可能会嵌套多层。而有关文档中浮动体的列表,也就是表格清单(list of tables)和图形清单(the list of figures),并不会如此复杂,因为它们都在同一个级别上。标准的 LaTeX \LaTeX LATEX可以自动创建这三种列表。
我们在003篇讲到了,目录的信息会保存在.toc
文件中。该文件会保存所有的目录信息,但是在文档中,并不是所有的级别的目录都会被生成。我们在004篇提到,控制所生成的目录的结构深度的计数器是tocdepth
。该计数器默认是3,也就是说,在不设置的情况下,文档中的目录会显示到\subsubsection
。使用\setcounter
命令可以设置它的值。我们做个演示:
\documentclass{article}
\usepackage[a5paper,margin=1in]{geometry}
\begin{document}
\setcounter{tocdepth}{2}
\tableofcontents
\section{A section}
some text ...
\subsection{A subsection}
some text ...
\subsubsection{A subsubsection}
some text ...
\paragraph{A paragraph} some text ...
\end{document}
编译:
目录只生成到第2级标题(\subsection
)。注意,只有将\setcounter{tocdepth}{2}
命令放置在\tableofcontents
的前面,它才会生效。
我们打开.toc
文件,可以发现尽管文档中的目录仅生成了一部分,但.toc
文件中依旧保存了所有的目录信息:
\contentsline {section}{\numberline {1}A section}{1}{}%
\contentsline {subsection}{\numberline {1.1}A subsection}{1}{}%
\contentsline {subsubsection}{\numberline {1.1.1}A subsubsection}{1}{}%
\contentsline {paragraph}{A paragraph}{1}{}%
这个计数器的影响是全局的。如果想要更细致的控制,比如,你如果想要使附录部分比前面的章节在目录中显示的标题级别更多或更少,可以使用tocvsec2
(作者Peter Wilson)宏包。
类似的,图形清单(the list of figures)的信息保存在.lof
文件中,表格清单(list of tables)的信息保存在.lot
文件中。这些文件保存了图形和表格的\caption
命令的参数中指定的文本。
在生成这些交叉引用时,至少需要运行两次。第一次收集相关信息,第二次将这些信息排版在文档中。而第二次排版的内容可能导致交叉引用信息发生变化,从而可能需要第三次编译。这也是传统的文档在前言和正文使用不同的页码系统的原因。否则,每多生成一页目录,后面的页码就会全部发生变化。
常规情况下,目录文件都是 LaTeX \LaTeX L