includeonly 命令不会修改目录

includeonly 命令不会修改目录

我已经写了 2 章和 1 个附录,我想有这本书的两个版本。所以我使用 来\includeonly仅包含第 1 章和第 2 章,但TOC同时显示附录名称。

可能,这是 的自然行为\includeonly,但我该怎么做呢?我的意思是,在短版本中我只想打印第 1 章和第 2 章(包括TOC),而在长版本中则打印所有内容。

答案1

的目的\include是构建文档,以便您可以只编译其中的一部分(使用\includeonly),同时整个文档的交叉引用信息仍然可用。目录也是“交叉引用”信息,因此如果您编译包含目录的文档,它将显示来自的目录条目全部章节。

您尝试做的是生成文档的两个不同版本,一个完整版本和一个仅包含子集的版本,该子集包括目录,并且目录也仅包含编译后的子集。这不是\includeonly设计的用例。

实现此目的的最简单方法是将文档的各个部分放在单独的文件中,然后构建两个主文档(使用不同的名称),仅加载您感兴趣的部分,例如,

\documentclass{article}

\input{mypreamble}  % load your packages etc in here

\begin{document}
\maketitle
\tableofcontents

\input{chap1}
\input{chap2}
\input{app1}
\end{document}

如果以上内容是您的完整主文档,则将其复制到第二个文件并删除加载附录的行(以及较小文档中您不需要的任何内容)。编译两者,您就完成了。

相关内容