LuaTeX:我能确定这是否是第一次运行吗?

LuaTeX:我能确定这是否是第一次运行吗?

是否可以检测当前运行是否是第一次运行(最好从 Lua 端)?

我尝试读取日志文件,但是当 Lua 引擎启动时它显然已被删除。

当然,我可以创建一个文件,然后在每次完成编译后手动删除该文件(或者创建一个在第一次运行时删除的文件),但我更喜欢“自动”工作的解决方案。

答案1

您可以测试 pdf 输出是否存在:

\newread\f
\openin\f=\jobname.pdf
\ifeof\f\message{First run}\else\message{Next run}\fi
\closein\f

Text

\bye

请注意,此处的另一个答案(以及讨论)基于 LaTeX。但 OP 的问题中没有提到 LaTeX。我的解决方案与 LaTeX 无关。

答案2

我相信不需要 Lua 的解决方案可以基于此处提供的答案:读取和写入 auxfile 命令

要点:当您的文档运行时,将自定义变量(或计数器)写入 *aux 文件,然后在下次编译时读取它。每次都重新写入。注意 *aux 何时先被读取,以便您的写入命令稍后执行。

并且一定要测试变量是否已定义。如果没有,那么它必须是第一次运行。

相关内容