TLDR:\csname endofdump\endcsname
在主文件中的 \begin{document} 之前无法构建任何内容。
参考:https://bitbucket.org/johannesjh/latex-precompiled-preamble-example/src/master/
克隆和编译时https://bitbucket.org/johannesjh/latex-precompiled-preamble-example/src/master/正如指示的那样,没有任何内容preamble-dynamic
被传递进行编译。
例如如果你添加一个简单的:
\def \test {test}
然后preamble-dynamic.tex
构建:
%&preamble
\include{preamble-dynamic}
\begin{document}
This file uses the pre-compiled preamble
Test this URL \url{http://google.com}.
\test
\end{document}
对于论文,它返回错误
! Undefined control sequence.
l.9 \test
如果从 thesis.tex 文件中删除第一行%&preamble
(以及由于包在静态前导码中加载的 url),则 def 构建没有问题。
如果我们在 endofdump 之后添加 \def,则会出现同样的问题:
% static preamble
\include{preamble-static}
\csname endofdump\endcsname
\def \test {test}
% dynamic preamble
% note: not really needed because the sole purpose of this file is to compile the static preamble.
\include{preamble-dynamic}
\usepackage{verbatim}
在 precompile.tex 文件中;无法拾取它。
答案1
想出了如何解决这个问题,你还需要在 main.tex 文件中添加 \endofdump,因此:
%&preamble
\endofdump
\include{preamble-dynamic}
\begin{document}
This file uses the pre-compiled preamble
Test this URL \url{http://google.com}.
\test
\end{document}
解决问题