我喜欢用latexmk在命令行中这样:
latexmk -pvc -pdf -xelatex foo.tex
如果翻译出现错误,我必须手动终止命令行中的编译(字母 x)让我很烦恼。有没有办法修改命令,以便在保存文件时自动翻译(不考虑以前的错误)?
答案1
你可以使用这个:
latexmk -pvc -pdf -e "$pdflatex='xelatex %O -interaction=nonstopmode %S'" foo.tex
这是针对 Windows 的,对于 Linux,下面的方法可能有效,但我不使用 Linux,所以我不知道它是否真的有效:
latexmk -pvc -pdf -e '$pdflatex=q/xelatex %O -interaction=nonstopmode %S/' foo.tex
您-e
可以指定要运行的内容为“ pdflatex
”,并且您需要的参数是-interaction=nonstopmode
,即无论如何都一路编译。
看看latexmk 文档,我以为 latexmk 选项-f
会做到这一点,但至少在我的系统上,它不会。
-f
更新:正如他在评论中所承诺的,John Collins在文档中澄清了用法:
注:“进一步处理”是指运行其他程序或重新运行乳胶(等等),如果没有发生错误,则会执行此操作。相反,或者另外,如果您希望乳胶(等)程序在发生错误后不会暂停以等待用户输入,你应该通过传递给程序的选项来安排这一点,例如,通过latexmk的选择
-interaction=nonstopmode
。
答案2
一个更简单的解决方案是
latexmk -pvc -pdf -xelatex -interaction=nonstopmode foo.tex
答案3
另一个更简单的解决方案是:
latexmk -pvc -pdf foo.tex < /dev/null