已验证,链接的帖子中没有答案。
我想根据章节创建目录。当我\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
;但要保持最少。