动态前导内容似乎在 mylatexformat 预编译中不起作用

动态前导内容似乎在 mylatexformat 预编译中不起作用

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}

解决问题

相关内容