\includeonly{} 不适用于预编译序言

\includeonly{} 不适用于预编译序言

问题摘要

我关注了指导领英答案,对我来说效果很好。但是,我发现如果我使用预编译的序言,然后指定\includeonly{},则仍会编译完整文档。

我是否遗漏了一些明显的东西?

平均能量损失

文件:main.tex

%&前言
\includeonly{第 1 部分}
\begin{文档}
\include{第 1 部分}
\include{第 2 部分}
\end{文档}

文件:preamble.tex

\documentclass{文章}
\usepackage{amsmath}
\csname endofdump\endcsname

文件:part1.tex

第1部分。

文件:part2.tex

第2部分。

预编译

我使用以下方法预编译了序言pdftex -ini -jobname="preamble" "&pdflatex" mylatexformat.ltx "preamble.tex"

如果您将其更改为%&preamble,它将按预期工作。main.tex\input{preamble}

系统信息

在 Windows 10 上的 Visual Studio Code 的 LaTeX Workshop 扩展下使用 latexmk 进行编译。

答案1

一旦开始处理使用预编译格式的文档,TeX 就会跳过前言部分,直到\endofdump\begin{document}。这样,即使您在此处使用了单独的文件,也可以将文档用于预编译格式和实际文档。

因此,您需要\csname endofdump\endcsname在想要开始处理的位置将其添加到主文档中,否则\includeonly将不会执行序言中的任何命令。

相关内容