我正在尝试使用该extract
包来保存文档的某些部分,稍后我想在最后重复这些部分作为摘要。
我遇到了一个递归问题:如果我将提取的输出包含在同一个文档中,那么回显的内容将再次被提取,从而导致无限递归。如果我先复制上一个提取文件并仅包含副本,那么每次运行 latex 时,我得到的提取文件仍然会越来越大。
所以我真正需要的是extract
一种在文档主体结束后告知禁用的方法。extractskip
环境似乎没有帮助,因为它在每次运行时仍会被解析:
\documentclass{article}
\usepackage{verbatimcopy}
%% "touch foo.ext" before first use
\VerbatimCopy{foo.ext}{foo-final.ext}
\usepackage[active,generate=foo.ext,header=false,handles=false,copydocumentclass=false,extract-env=foo]{extract}
\newenvironment{foo}{}{}
\begin{document}
\begin{foo}abc\end{foo}
\begin{foo}def\end{foo}
\begin{foo}xyz\end{foo}
\section*{Summary of Foo}
\input{foo-final.ext} %% boom
\end{document}
我目前\IfFileExists
只在第一次运行期间启用提取,但这种方法不太好用,因为如果提取的内容发生任何变化,您都需要手动删除提取文件。有没有办法在一次运行内自动停止提取?
答案1
下面有点破坏性的做法:在你的总结之前,用extract
一个空命令替换用来写入文件的命令。
梅威瑟:
\documentclass{article}
\usepackage{verbatimcopy}
\VerbatimCopy{foo.aux}{foo-final.aux}
\usepackage[active,generate=foo.aux,extract-env=equation,header=false,handles=false,copydocumentclass=false]{extract}
\begin{document}
The following text should be extracted:
\begin{equation}
x+3=y
\end{equation}
\begin{equation}
x+4=z
\end{equation}
\newcommand{\exignore}[1]{}
\makeatletter
\def\XTR@writeout{\exignore} % cf. extract.sty v1.8 line 82
\makeatother
\section{Summary of Foo}
\input{foo-final.aux}
\end{document}