我写了下面的 TeX 程序。这是直接从第 8 页(图 1.2)复制而来的。lshort.pdf。
\documentclass[a4paper,11pt]{article}
% define the title
\author{H.~Partl}
\title{Minimalism}
\begin{document}
% generates the title
\maketitle
% insert the table of contents
\tableofcontents
\section{Some Interesting Words}
Well, and here begins my lovely article.
\section{Good Bye World}
\ldots{} and here it ends.
\end{document}
但是当我使用命令将其转换为 pdf 时pdflatex foo.tex
,我在 PDF 中看到以下输出。
为什么该命令没有\tableofcontents
在“内容”标题下生成任何内容?
答案1
由于 LaTeX 无法猜测随后文档中会出现哪些章节、部分、图表或表格,因此\tableofcontents
如果在文档的某处使用它,则要显示的内容为空,即需要运行两次 LaTeX(至少),所以\tableofcontents
如果只运行一次 LaTeX,即使将其放在文档末尾也不会起作用!
由等生成的信息用(或)\chapter
写入.aux
文件,并在第 2 次运行 LaTeX 时再次读取该文件,从而生成真正的或或等文件(除非声明了 `\nofiles)。\addcontentsline
\addtocontents
.aux
.toc
.lof
.lot
因此:至少编译两次以获取 ToC 的信息和排版。
关于 ToC 生成等的详细信息可以在这里找到: 模仿 LaTeX 的“目录”功能
答案2
要获取内容,您需要在编译后保留*.aux和*.toc。您可以检查您的设置是否自动清除它们。
答案3
简短回答一下:
当您第一次在 .tex 源上运行 pdflatex 时,生成的 pdf 不包含目录。
当您第二次运行它时,pdflatex 将根据它第一次生成的工作文件生成内容表。
解决方法:再运行一次。