我刚刚使用 Latex 撰写了我的硕士论文。
当我执行最后的构建时,我在想计算到目前为止我所完成的构建总数将会非常有趣。
是否有可能以某种方式计算您在单个文档上执行的构建次数?我可以定义某种计数器,每次构建时计数器都会增加 1(也许使用外部文件来存储和读取当前数字)吗?
答案1
该zref
包提供了runs
将运行次数存储到.aux
文件中的模块。
(附注:手册第 9 页的用户模块概述
zref
不完整,runs
但第 16 页提到了该模块)
可以通过 检索数字\zruns
,这是一个可扩展的宏。
请注意,
- 处于活动状态的运行
\nofiles
不被计算在内。 .aux
当文件被删除时,运行次数将会丢失。
\documentclass{book}
\usepackage{blindtext}
\usepackage[runs]{zref}
\begin{document}
\typeout{This document has been built \zruns\ times}
\blindtext[10]
\end{document}
答案2
这是用户自制的方法。不幸的是,我似乎找不到一种方法来测试 TeX 过去是否遇到过错误(例如,是否继续\nonstopmode
),因此这将计算所有运行,除非您以交互方式运行并手动停止编译错误(通过X
)。
这里的想法是使用一个特殊的专用辅助文件,因为.aux
在某些情况下可以合法地删除主文件以从某些情况中恢复。
\newcounter{nbofruns}
\InputIfFileExists{\jobname-nbofruns.txt}{}{}
\stepcounter{nbofruns}
\documentclass{article}
\usepackage{atveryend}
\AtVeryVeryEnd
{%
\newwrite\runs
\immediate\openout\runs=\jobname-nbofruns.txt
\immediate\write\runs
{\string\setcounter{nbofruns}{\the\value{nbofruns}}}%
}
\begin{document}
This document has been built \arabic{nbofruns} times.
\end{document}