我有很多複雜的圖生成tikz
。有一個很好的方法可以使用多核心CPU進行增量編譯,參見整合latexmk和TikZ外部模式=list並make
自動化工作流程:
- 自動為 makefile 中的每個 tikz 圖片產生單獨的任務 (
\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 程式碼深處可以幫助我嗎?也許必須授予任何進程存取權限?
如果你能幫助我,我會非常高興。此外,該解決方案可以為其他用戶帶來一個很棒的功能,可以在快速多核心伺服器上進行相當快的編譯?