texlatexmk 和 mVersion 问题

texlatexmk 和 mVersion 问题

我刚刚遇到了一个问题,mVersion扩展名为latexmk。正如 的用户所知,它会在每次运行 时mVersion更新一个文件version.datpdf/xe/lua/随便什么引擎。在我添加索引和参考书目之前,一切都很好。但是现在我看到 version.dat 在一次运行中被更改了三次(至少 3 次)。不幸的是,这陷入了latexmk一个循环,并出现错误:

Latexmk: applying rule 'pdflatex'...
Rule 'pdflatex': File changes, etc:
   Changed files, or newly in use since previous run(s):
      'version.dat'
Latexmk: Maximum runs of pdflatex reached without getting stable files
Latexmk: All targets (Jourdan.pdf) are up-to-date
Latexmk: Did not finish processing file 'Jourdan':
   'pdflatex' needed too many passes
Latexmk: Use the -f option to force complete processing,
 unless error was exceeding maximum runs of latex/pdflatex.

由于我怀疑我不是第一个遇到这个问题的人,所以我正在论坛上寻求建议。我现在正在研究 34 页的手册,以便找到如何添加我自己的后处理(第一次运行后)Perl 脚本。我猜创建文件latexmkrc是解决这里几个问题的一部分,但目前我对解决方案有点茫然。

当然,我可以求助于批处理文件(我在 Windows 7 下运行),如果有必要我会这么做,但我希望我可以通过硬连线解决方案获得优势latexmk

tl;dr --- 我如何才能避免自找麻烦mVersion。中途运行 Perl 脚本的附带问题我会自己处理。

答案1

此 MWE

\documentclass{article}
\usepackage{mVersion}
\setVersion{1}
\increaseBuild
\begin{document}
\version
\end{document}

加上这个 latexmkrc

$hash_calc_ignore_pattern{'dat'} = '^[0-9]';

对我来说是有效的。不确定它为什么要运行pdflatex两次,但至少它没有陷入无限循环。

相关内容