Sharelatex에서 멀티 코어 CPU를 사용한 증분 컴파일: 다음 pdflatex 실행에서 캐시에 있는 파일을 찾을 수 없습니다.

Sharelatex에서 멀티 코어 CPU를 사용한 증분 컴파일: 다음 pdflatex 실행에서 캐시에 있는 파일을 찾을 수 없습니다.

으로 생성된 복잡한 플롯이 많이 있습니다 tikz. 멀티 코어 CPU를 사용하여 증분 컴파일하는 좋은 방법이 설명되어 있습니다.latexmk와 TikZ 외부 모드 통합=목록 및 만들기

자동화된 작업 흐름:

  1. makefile의 각 tikz-picture에 대한 개별 작업을 자동으로 생성합니다( \tikzexternalize[mode=list and make]).
  2. 8코어 CPU를 사용하여 tikz-pictures를 동시에 컴파일하세요!!! ( 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를 다운로드하고 다시 업로드하여 캐시된 파일뿐만 아니라 프로젝트의 일반적인 부분이 되도록 하면,모든 것이 잘 작동합니다!

질문

pdflatex의 두 번째 실행에서 캐시된 파일을 보도록 sharelatex에게 어떻게 알릴 수 있습니까?

나는Sharelatex 커뮤니티 에디션내 서버의 Docker에 있으므로 귀하가 제안할 수 있는 모든 것에 액세스할 수 있습니다.

일요일을 기대하며 - 부활절 토끼는 숨었나요?모든 구성 파일의 모든 옵션, 플래그 등나에게 도움이 될 수 있는 sharelatex 코드가 깊숙이 들어있나요? 어쩌면 모든 프로세스에 액세스 권한을 부여해야 할까요?

당신이 저를 도와주신다면 정말 기쁘겠습니다. 게다가 이 솔루션은 빠른 멀티 코어 서버에서 매우 빠른 컴파일을 위해 다른 사용자에게 훌륭한 기능을 제공할 수 있습니다.

관련 정보