在 Sharelatex 上使用多核 CPU 进行增量编译:在下次运行 pdflatex 时找不到缓存中的文件

在 Sharelatex 上使用多核 CPU 进行增量编译:在下次运行 pdflatex 时找不到缓存中的文件

我有很多复杂的情节tikz。有一种使用多核 CPU 进行增量编译的好方法,请参阅集成 latexmk 和 TikZ 外部模式=list 和 make

自动化工作流程:

  1. 在 makefile 中为每个 tikz-picture 自动生成单独的任务 ( \tikzexternalize[mode=list and make])
  2. 使用 8 核 CPU 同时编译 tikz 图片 !!! ( make -j8 -f %B.makefile)
  3. 在第二次运行 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 上的示例。为了进行测试,您可以创建一个免费帐户分享乳胶

  1. makefile 按tikz-external预期生成。
  2. make按预期工作。文件生成了 myPlot.pdf并且可以在日志文件旁边的缓存中找到。
  3. 在第二次运行 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 代码内部,谁能帮我?也许必须授予所有进程访问权限?

如果你能帮助我,我会非常高兴。此外,该解决方案是否可以为其他用户带来一项很棒的功能,以便在快速的多核服务器上进行相当快速的编译?!

相关内容