是否有命令可以在 tex 文档中定义“虚拟文件”

是否有命令可以在 tex 文档中定义“虚拟文件”

我想知道是否存在类似的filecontents环境,但没有将实际数据写入文件系统。

有了这个filecontents环境,我可以编写如下的 texfile:

\documentclass{article}
\begin{filecontents}{myfile.tex}
Hello world!
\end{filecontents}
\begin{document}
\input{myfile.tex}
\end{document}

编译得很好,但会myfile.tex在工作目录中创建文件。我想知道是否有其他方法可以获得相同的编译结果,但不会myfile.tex在文件系统中创建文件?

或者,我可以在命令后面放置一个命令\end{document}myfile.tex删除它吗?

答案1

我认为 luatex 原则上允许您以您描述的方式使用 lua 缓冲区,但我不知道细节。如果您在编写的文件中没有任何逐字材料,您当然可以使用宏

\documentclass{article}
\newcommand\mystuff{
Hello world!
}
\begin{document}
\mystuff
\end{document}

要删除末尾的文件,如果你使用 -enable-shell-escape 执行 latex,则可以使用

\AtEndDocument{\write18{rm myfile.tex}}

del任何命令都会删除您系统上的文件,尽管安排调用 latex 的脚本或编辑器在之后进行简单的清理可能同样容易,而不是依赖于 latex 的 shell 转义。

相关内容