我想知道是否存在类似的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 转义。