私は多くの複雑なプロットを生成しましたtikz
。マルチコアCPUで増分コンパイルする優れた方法が説明されています。latexmk と TikZ の外部 mode=list と make を統合する
自動化されたワークフロー:
- メイクファイル内の各tikz画像に対して個別のタスクを自動的に生成する(
\tikzexternalize[mode=list and make]
) - 8 コア CPU を使用して tikz 画像を同時にコンパイルします !!! (
make -j8 -f %B.makefile
) - pdflatex の 2 回目の実行時に 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の2回目の実行では、myPlot.pdf は挿入されませんメインファイル内。
問題
pdflatexの2回目の実行では、次のようになりますmyPlot.pdf が存在しません警告は次のとおりです:
Package `tikz` Warning: Some images are not up-to-date and need to be generated.
そして実際、myPlot.pdfをダウンロードして再度アップロードすると、キャッシュされたファイルだけでなくプロジェクトの通常の一部になります。すべて正常に動作します!
質問
pdflatex の 2 回目の実行時に、sharelatex にキャッシュされたファイルを表示するように指示するにはどうすればよいですか?
私はSharelatex のコミュニティ版自分のサーバー上の docker で実行しているので、提案されたすべてのものにアクセスできます。
日曜日が楽しみだ――イースターバニーは隠れているのか任意の設定ファイル内の任意のオプション、フラグなどsharelatex コードの奥深くに、役に立つものはありますか? プロセスにアクセス権限を与える必要があるかもしれませんか?
ご協力いただければ本当に嬉しいです。さらに、このソリューションは、高速マルチコア サーバーで非常に高速にコンパイルできるという、他のユーザーにとって素晴らしい機能となる可能性があります。