我使用 upLaTeX,它不能直接生成 PDF,用于日文文档和latexmk
排版顺序的自动化。我.latexmkrc
对 upLaTeX 的典型操作如下(提取相关部分):
#!/usr/bin/env perl
$pdf_mode = 3;
$latex = 'uplatex -file-line-error -halt-on-error -interaction=nonstopmode %O %S';
$dvipdf = 'dvipdfmx %O -o %D %S';
现在,我想latexmk
自动删除 DVI,因为我不需要它。我尝试了一种新的配置$dvipdf
。
$dvipdf = 'dvipdfmx %O -o %D %S && rm %B.dvi';
这几乎可以正常工作,但是出现了一个问题。尽管我有意删除了 DVI,但latexmk
它却提示无法创建 DVI 文件。
$ latexmk test.tex
# other logs here
Running 'dvipdfmx -o "test.pdf" "test.dvi" && rm "test".dvi'
------------
test.dvi -> test.pdf
[1]
6802 bytes written
Failure to make 'test.dvi'
Latexmk: Errors, so I did not complete making targets
Latexmk: Use the -f option to force complete processing,
unless error was exceeding maximum runs of latex/pdflatex.
latexmk
当第一个 不产生错误时.latexmkrc
,它会说Latexmk: All targets (test.pdf test.dvi) are up-to-date
。所以我猜 的存在对于成功完成test.dvi
是必要的。latexmk
我怎样才能从目标列表中排除 DVI,以便latexmk
能够在这种情况下成功?
一种替代方法是使用$pdf_update_method
and $pdf_update_command
:
$pdf_update_method = 4;
$pdf_update_command = 'rm %R.dvi';
然而,这需要-pvc
选择,这对我来说是不受欢迎的。