在 Sharelatex 上使用多核心 CPU 進行增量編譯:下次執行 pdflatex 時找不到快取中的文件

在 Sharelatex 上使用多核心 CPU 進行增量編譯:下次執行 pdflatex 時找不到快取中的文件

我有很多複雜的圖生成tikz。有一個很好的方法可以使用多核心CPU進行增量編譯,參見整合latexmk和TikZ外部模式=list並make

自動化工作流程:

  1. 自動為 makefile 中的每個 tikz 圖片產生單獨的任務 ( \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 程式碼深處可以幫助我嗎?也許必須授予任何進程存取權限?

如果你能幫助我,我會非常高興。此外,該解決方案可以為其他用戶帶來一個很棒的功能,可以在快速多核心伺服器上進行相當快的編譯?

相關內容