Tengo muchas tramas complejas generadas contikz
. Existe un excelente método para la compilación incremental con CPU de múltiples núcleos que se describe enIntegrando modo externo latexmk y TikZ = listar y crear
Flujo de trabajo automatizado:
- generar automáticamente tareas individuales para cada imagen tikz en un archivo MAKE (
\tikzexternalize[mode=list and make]
) - ¡Compile imágenes tikz simultáneamente usando una CPU de 8 núcleos! (
make -j8 -f %B.makefile
) - inserte automáticamente imágenes tikz como archivos pdf en la segunda ejecución de pdflatex (
\usetikzlibrary{external}
)
Aquí hay un MWE simplificado que debería funcionar en nuestra máquina local.
Corre conlatexmk -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}
Observación encompartirlatex
Quiero que el ejemplo funcione en Sharelatex en mi propio servidor. Para realizar pruebas, puede crear una cuenta gratuita encompartirlatex.
- El archivo MAKE se genera
tikz-external
como se esperaba. - El
make
comando funciona como se esperaba. El archivoSe genera myPlot.pdfy se puede encontrar en el caché junto a los archivos de registro. - En la segunda ejecución de pdflatex, elmyPlot.pdf NO está insertadoen el archivo principal.
Problema
En la segunda ejecución de pdflatex, parecemyPlot.pdf no existe. La advertencia es:
Package `tikz` Warning: Some images are not up-to-date and need to be generated.
Y de hecho: si descargo myPlot.pdf y lo subo nuevamente para que sea una parte normal del proyecto y no solo un archivo en caché,todo funciona bien!
Pregunta
¿Cómo puedo decirle a sharelatex que vea los archivos almacenados en caché en la segunda ejecución de pdflatex?
yo ejecuto eledición comunitaria de Sharelatexen Docker en mi propio servidor, así que tengo acceso a todo lo que puedas sugerir.
Esperando con ansias el domingo: ¿se ha escondido el conejo de Pascua?cualquier opción, bandera, ... en cualquier archivo de configuración¿En lo profundo del código sharelatex que podría ayudarme? ¿Quizás tenga que otorgar privilegios de acceso a algún proceso?
Estaría muy feliz si pudieras ayudarme. Además, ¿la solución podría resultar en una excelente característica para otros usuarios para una compilación bastante rápida en un servidor rápido de múltiples núcleos?