I have many complex plots generated with tikz.
There is a great method to incremental compile with multi-core-cpu described in Integrating latexmk and TikZ external mode=list and make
Automated work flow:
- automatically generate individual tasks for each tikz-picture in a makefile (
\tikzexternalize[mode=list and make]) - compile tikz-pictures simultaneously using 8-core cpu !!! (
make -j8 -f %B.makefile) - automatically insert tikz-pictures as pdf-files in second run of pdflatex (
\usetikzlibrary{external})
Here is a simplified MWE that should work on our local machine.
Run with latexmk -pdf main.tex
%%% file named main.tex %%%
\documentclass{article}
\usepackage{tikz,pgfplots}
%\pgfplotsset{compat=1.14}
\usetikzlibrary{external}
\tikzexternalize[mode=list and make]
%%% please create file latexmkrc manually %%%
% \begin{filecontents}{latexmkrc}
% $pdflatex='pdflatex --shell-escape -synctex=1 -interaction=batchmode %O %S; make -f %B.makefile; pdflatex --shell-escape -synctex=1 -interaction=batchmode %O %S';
% \end{filecontents}
\begin{document}
\tikzsetnextfilename{myPlot}
\begin{tikzpicture}
\begin{axis}
\addplot coordinates {(1,1) (2,2) (3,3)};
\end{axis}
\end{tikzpicture}
\end{document}
Observation in Sharelatex
I want to get the example working on Sharelatex on my own server. For testing, you can create a free account at Sharelatex.
- The makefile is generated by
tikz-externalas expected. - The
make-command works as expected. The file myPlot.pdf is generated and can be found in cache beside the log-files. - In the second run of pdflatex, the myPlot.pdf is NOT inserted in the main-file.
Problem
In the second run of pdflatex, it looks like myPlot.pdf does not exist. The warning is:
Package `tikz` Warning: Some images are not up-to-date and need to be generated.
And actually: if I download myPlot.pdf and upload it again so that it is a regular part of the project and not only a cached file, everything works fine!
Question
How can I tell sharelatex to see the cached files in the second run of pdflatex?
I run the community edition of Sharelatex in docker on my own server, so I have access to everything you might suggest.
Looking forward to Sunday -- has the easter bunny hid any options, flags, ... in any config-file deep inside the sharelatex-code that could help me? Maybe have to give access privileges to any processes?
I would be really happy if you could help me. Furthermore, the solution could result in a great feature to other users for quite fast compiling on a fast multi-core server?!
.pdf, which is probably not the most interesting file here. Which method is externalisation using to decide whether files require updating? – cfr Apr 15 '17 at 00:46