如何根据章节插入目录?

如何根据章节插入目录?

已验证,链接的帖子中没有答案。

我想根据章节创建目录。当我\tableofcontents在打开文档并进行一些定义后,在几乎顶部插入命令时,结果得到的是空的目录(不理想)。

当我将它移到新章节之前(作为一个实验)时,我什么也没得到 - 即根本没有目录(空目录至少有一个标题“目录”)。

例如:

\tableofcontents 

\begin{verse}
some quote
\end{verse}

\def\enddoc{} 
\def\input#1{}

\include{intro1}
\include{intro2}

\chapter{Program} 

intro1并且intro2章节都是以单独文件的形式编写的。这样会给我一个空的目录,当我将目录移到“程序”章节之前时,目录不会创建。

我添加了和usepackage。没有任何变化?\usepackage{tocloft,calc}\usepackage{titletoc}

我做错了什么?


更新

我找到了罪魁祸首,但我不知道如何修复它。我的整个文档由几个章节组成(带有参考书目),每个章节都写成单独的文件。序言也保存为单独的文件。

目前重要的是,我可以将每个章节创建为单独的 pdf(单独创建)——因为每个章节都包含序言,而不仅仅是主 .tex 文件。

在主 .tex 文件中我有这样的行:

\def\input#1{}

我不知道它的作用(我的错误,我应该在评论中添加解释),但它允许我构建整个文档。

当我在剥离的样本 .tex 上测试它时,删除它可以正确创建目录,但是当我在主文档(而不仅仅是样本)中对其进行注释时,编译从一开始就失败。第一个单独的章节文件包含序言(因此包含的内容实际上是从 .tex 文件的中间开始的),我收到错误:

Can be used only in preamble. \documentclass

那么,是否仍然可以构建 TOC,或者如果我想创建 TOC,是否应该放弃这种分离?

答案1

警告信息

old toc file detected, not used; run LaTeX again

来自包hyperref

如果在运行 LaTeX 两次后再次收到警告,则\nofiles可能是激活了阻止重写辅助文件的程序。或者 TeX 文件的搜索路径混乱,并且.toc找到了来自不同项目的文件。但是,无论哪种情况,目录的标题都已设置。这两种推测都解释了目录为空的原因。没有目录则是由其他问题引起的。

因此,生成一个完全的 最小工作示例(MWE)!它应该显示相关的包,例如hyperref,文档类和之前/之后的相关代码\tableofcontents;但要保持最少。

相关内容