在使用-no-pdf参数运行xelatex之后使用latexmk运行命令,因此pdf不会损坏

问题描述 投票:0回答:1

我有一个看起来像这样的latexmkrc文件:

$xelatex = 'xelatex -interaction=nonstopmode  -synctex=1 %O %S; (sleep 10) && (test -f "%Z%R.synctex.gz") && (cp "%Z%R.synctex.gz" "%R.synctex.gz"); (test -f "%D") && (cp "%D" "%R.pdf")';
$pdflatex = 'pdflatex -interaction=nonstopmode -synctex=1 %O %S; (test -f "%Z%R.synctex.gz") && (cp "%Z%R.synctex.gz" "%R.synctex.gz"); (test -f "%D") && (cp "%D" "%R.pdf")';
$out_dir = '/tmp';

Latexmk由于指定了-no-pdf,因此会自动添加%O。如果是这种情况,则似乎在xelatex命令之后的命令在使用xdvipdfmx将扩展的dvi转换为pdf之前运行。我的.pdf文件总是在本地文件夹中损坏,但是如果我在/ tmp文件夹中打开它,那很好。使用xdvipdfmx时,是否可以在-no-pdf的命令后运行这些复制命令。

这里是最后发生的情况的图像。在上面的复制命令已经运行之后运行。复制的pdf文件始终损坏。

command line output showing the problem

latex pdflatex xelatex latex-environment latexmk
1个回答
0
投票

使用latexmk在临时目录中运行文档,然后说服其将结果复制回您的工作文件夹似乎不必要地复杂。我建议改用ltx2any。这是一个类似于latexmk的自动化工具,其优点是默认情况下将使用一个临时文件夹并自动处理将pdf和synctex文件复制回去的问题。

用法:

ltx2any -synctex -e xelatex filename
© www.soinside.com 2019 - 2024. All rights reserved.