tmp 파일을 컴파일한 다음 pdf/synctex 파일을 대체하도록 latexmk를 구성하는 방법은 무엇입니까?

tmp 파일을 컴파일한 다음 pdf/synctex 파일을 대체하도록 latexmk를 구성하는 방법은 무엇입니까?

역사

이 질문에 설명된 이유 때문에LaTeX가 PDF를 다시 작성하는 동시에 synctex를 사용하여 PDF를 계속 탐색하려면 어떻게 해야 합니까?설정을 수정하고 싶습니다 latexmk.

이전 구성

지금까지 파일에는 다음과 같은 작업 구성이 있었습니다 .latexmkrc.

$pdf_mode = 1;
$pdflatex = 'pdflatex -synctex=1 -interaction=nonstopmode %O %S';
$pdf_previewer = 'open %S';
$pdf_update_method = 0;
$clean_ext = "synctex.gz";

@default_files = ('Diss.tex');

여기에 제안된 변경 사항을 적용하고 싶습니다.https://tex.stackexchange.com/a/141582/4009하지만 기존 설정과 혼합하는 방법을 잘 모르겠습니다.

새로운 구성

나는 노력했다

$preview_prefix="__preview__";
$preview_file = "$preview_prefix%R__.pdf";
$sync_file = "$preview_prefix%R__.synctex.gz";



$pdf_mode = 1;
$pdflatex = "pdflatex -synctex=1 -interaction=nonstopmode %O %S'; cp %R.pdf $preview_file; cp %R.synctex.gz $sync_file";
$pdf_previewer = 'open $preview_file';
$pdf_update_method = 0;
$clean_ext = "synctex.gz";

@default_files = ('Diss.tex');

하지만 오류가 발생하고 파일이 생성되지 않습니다.

Latexmk: This is Latexmk, John Collins, 10 Nov 2013, version: 4.39.
**** Report bugs etc to John Collins <collins at phys.psu.edu>. ****
Latexmk: applying rule 'pdflatex'...
Rule 'pdflatex': File changes, etc:
   Non-existent destination files:
      'Diss.pdf'
------------
Run number 1 of rule 'pdflatex'
------------
------------
Running 'pdflatex -synctex=1 -interaction=nonstopmode  -recorder  "Diss.tex"'; cp "Diss".pdf __preview__"Diss"__.pdf; cp "Diss".synctex.gz __preview__"Diss"__.synctex.gz'
------------
sh: -c: line 0: unexpected EOF while looking for matching `''
sh: -c: line 1: syntax error: unexpected end of file
Latexmk: Errors, so I did not complete making targets
Collected error summary (may duplicate other messages):
  pdflatex: (Pdf)LaTeX failed to generate the expected log file 'Diss.log'
Latexmk: Did not finish processing file 'Diss.tex':
   (Pdf)LaTeX failed to generate the expected log file 'Diss.log'
Latexmk: Use the -f option to force complete processing,
 unless error was exceeding maximum runs of latex/pdflatex.
It took 0 seconds (0 minutes)
grep: Diss.log: No such file or directory

중고 시스템

TeXLive 2014을( 를) 사용하고 있습니다 MacOS X 10.6. 내 PDF 뷰어는Skim.app

답변1

%S의 정의 뒤에 있는 작은따옴표를 제거하십시오 $pdflatex.

에서:

$pdflatex = "pdflatex -synctex=1 -interaction=nonstopmode %O %S'; cp %R.pdf $preview_file; cp %R.synctex.gz $sync_file";

에게:

$pdflatex = "pdflatex -synctex=1 -interaction=nonstopmode %O %S; cp %R.pdf $preview_file; cp %R.synctex.gz $sync_file";

관련 정보