我有很多复杂的情节tikz
。有一种使用多核 CPU 进行增量编译的好方法,请参阅集成 latexmk 和 TikZ 外部模式=list 和 make
自动化工作流程:
- 在 makefile 中为每个 tikz-picture 自动生成单独的任务 (
\tikzexternalize[mode=list and make]
) - 使用 8 核 CPU 同时编译 tikz 图片 !!! (
make -j8 -f %B.makefile
) - 在第二次运行 pdflatex 时自动将 tikz 图片插入为 pdf 文件 (
\usetikzlibrary{external}
)
这是一个简化的 MWE,应该可以在我们的本地机器上运行。
运行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}
观察分享乳胶
我想在我自己的服务器上运行 Sharelatex 上的示例。为了进行测试,您可以创建一个免费帐户分享乳胶。
- makefile 按
tikz-external
预期生成。 - 这
make
按预期工作。文件生成了 myPlot.pdf并且可以在日志文件旁边的缓存中找到。 - 在第二次运行 pdflatex 时,myPlot.pdf 未插入在主文件中。
问题
在第二次运行 pdflatex 时,它看起来像myPlot.pdf不存在。警告是:
Package `tikz` Warning: Some images are not up-to-date and need to be generated.
实际上:如果我下载 myPlot.pdf 并再次上传,使其成为项目的常规部分,而不仅仅是一个缓存文件,一切正常!
问题
我如何告诉 sharelatex 在第二次运行 pdflatex 时查看缓存的文件?
我运行Sharelatex 社区版在自己的服务器上的 docker 中,这样我就可以访问您可能建议的所有内容。
期待周日——复活节兔子藏起来了吗任何配置文件中的任何选项、标志……深入 sharelatex 代码内部,谁能帮我?也许必须授予所有进程访问权限?
如果你能帮助我,我会非常高兴。此外,该解决方案是否可以为其他用户带来一项很棒的功能,以便在快速的多核服务器上进行相当快速的编译?!