Given the following document: (stored in a.tex)

\section{Hello world}

Running latexmk -recorder a will output:

Run number 2 of rule 'lualatex'
Running 'lualatex  -recorder  "a.tex"'


Latexmk: Getting log file 'a.log'
Latexmk: Examining 'a.fls'
Latexmk: Examining 'a.log'
Latexmk: Log file says output to 'a.pdf'
Latexmk: applying rule 'lualatex'...
Rule 'lualatex':  Reasons for rerun
Changed files or newly in use/created:

Run number 3 of rule 'lualatex'
Running 'lualatex  -recorder  "a.tex"'


  • As far as I can see, the last run of lualatex is unnecessary. Is there any situation where rerunning latex when .run.xml file changed is needed?
  • If not, is there a way to modify the logreq package (or otherwise) to avoid redundant runs?

1 Answer 1


As far as I know, you are correct that the changes in the .run.xml that cause latexmk to do the extra run of *latex don't affect the contents of the output pdf file. In principle, they could, since the .run.xml is read during compilation; that's why the extra run is done. But in reality, the effect of the changes is only in messages put by logreq to the log file (and to the screen), about whether or not the user should recompile the document. But latexmk figures out that information without any help from logreq.

The problem of the extra run is particularly annoying when the biblatex package is used for the bibliography, since biblatex uses the logreq package.

Unfortunately, there is no way of avoiding the extra run in the current version of latexmk, at least nothing easy.

Dealing with this problem is on my list of improvements for a future version of latexmk.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .