'filecontents' 如何保持 LaTeX 解析,同时暂时停止写入输出

'filecontents' 如何保持 LaTeX 解析,同时暂时停止写入输出

我们都知道filecontents.sty可以做

\documentclass{article}

\usepackage{filecontents}

\begin{document}

Hello World

\begin{filecontents}{dummy.txt}
No one will read this if I don't use it elsewhere
\end{filecontents}

\end{document}

但由于filecontents.sty的代码是相当先进的化学,我不明白它如何阻止包括No one will read this if I don't use it elsewhere

答案1

环境的基本工作方式filecontents与以下相同verbatim:每个字符都可打印,并且行尾字符处于活动状态,以便 LaTeX 可以定义它来界定将是整行输入的参数。

首先,环境检查指定的文件是否已经存在,在这种情况下,除了丢弃之前的所有内容外,不做任何其他事情\end{filecontents}。否则,它会打开一个输出流并写入一些信息行(这被抑制了)\begin{filecontents*}

然后,它按照上面粗略解释的那样一次读取一行;如果这一行结果是\end{filecontents}(或\end{filecontents*}对于变体环境),则写入流关闭,否则该行将写入输出文件。

软件包文档中概述了一种可能更有效的策略,其中显示了verbatim可能的环境的定义。我在我的软件包中使用了相同的策略。verbatimwriteabc

相关内容