我想在 pdf 中包含信息以指示pdflatex
运行了多少次。这似乎很简单,但我似乎无法让它工作——一定是显而易见的。
第一次输出正常(因为.aux
文件不存在)。但是,之后它卡在:
代码:
\documentclass{article}
\usepackage{pgfmath}
\usepackage{xcolor}\pagecolor{white}
\makeatletter
\providecommand{\CurrentRunNumber}{0}%
\IfFileExists{\jobname.aux}{%
% Set via the .aux file
}{%
\def\CurrentRunNumber{1}%
}%
\AtEndDocument{%
\pgfmathtruncatemacro{\@NewRunNumber}{\CurrentRunNumber+1}%
\immediate\write\@auxout{%
\noexpand\def\noexpand\CurrentRunNumber{\@NewRunNumber}%
}%
}%
\makeatother
\begin{document}
Run Count: \CurrentRunNumber
\end{document}
答案1
文件.aux
在组内读取。使用\gdef
。无需pgfmath
。
\documentclass{article}
\providecommand{\CurrentRunNumber}{1}
\makeatletter
\AtEndDocument{%
\immediate\write\@auxout{%
\gdef\noexpand\CurrentRunNumber{\the\numexpr\CurrentRunNumber+1}
}%
}
\makeatother
\begin{document}
Run Count: \CurrentRunNumber
\end{document}
例如,经过两次运行后,.aux
文件将
\relax
\gdef \CurrentRunNumber {2}
\gdef \@abspage@last{1}