Maximum runs of pdflatex reached without getting stable files
flaport opened this issue · 7 comments
When running latexmk
with xelatex
, the pdf file of the svg keeps being regenerated every run. This causes latexmk
to rerun xelatex
about 5 times every time to finally halt with a
Rule 'pdflatex': File changes, etc:
Changed files, or newly in use since previous run(s):
'svg-inkscape/test_svg-tex.pdf'
Latexmk: Maximum runs of pdflatex reached without getting stable files
or a
Latexmk: Failure in processing file 'test':
'xelatex' needed too many passes
error (depending on the recipe used; see below). Although the pdf file is created, this is quite annoying, as compiling the file takes longer this way.
This should give a reproducible example (let's assume this file is called test.tex
):
\documentclass{article}
\usepackage{graphicx}
\usepackage{svg}
\usepackage{svg-extract}
% same problem when explicitly setting convert and extract to true:
%\usepackage[convert=true,extract=true]{svg-extract}
\begin{document}
\includesvg{test.svg}
\section{Introduction}
\end{document}
run either with
latexmk -pdf -pdflatex="xelatex %O %S" -synctex=1 -interaction=nonstopmode -shell-escape test
or
latexmk -pdf -xelatex -synctex=1 -interaction=nonstopmode -shell-escape test
To reproduce the problem. Is this a bug? or are there any settings I don't know about? Note that the problem does not exists when running latexmk
with the normal pdflatex
.
What I did for this is to configure latexmk
to ignore changes for pdf
files by adding this into .latexmkrc
$hash_calc_ignore_pattern{'pdf'}='^';
Thanks, that did the trick!
However, I still think this is an issue worth solving in this package as well. If I understand it correctly, latexmk will look at the hash of each file to see if any of them have been modified and if that is the case it will rerun the build process. This means (i think) that the svg package rebuilds the pdf every run, even if the svg has not changed and the pdf was already generated. In my opinion, this should be prevented.
Yeah, I agree it was kinda hack-y.
The idea of checking the hash is also mentioned in #11 though. My bad, misread the reply.
Yes, I do.
OK this explains it. Too bad there's no built-in workaround... anyway, the workaround above seems to work fine, so I'll stick with that for now.
Yes, I do.
OK this explains it. Too bad there's no built-in workaround... anyway, the workaround above seems to work fine, so I'll stick with that for now.
(I fat-fingered and deleted the reply... Original reply is here for future reference)
Do you happen to use xelatex
?
From the package documentation:
Unfortunately a primitive like \pdffilemoddate is missing for XeTeX, so with this engine, the behaviour will be the same as inkscape=forced
Is this possibly the cause?
XeTeX now provides \filemoddate which will be supported with svg version v2.03