latexmk
是一种方便的方式,可以在源代码更改时持续编译文档。但是,当您在编写文档时,可能会出现错误,并且latex
将在继续前等待用户输入。这可能会非常恼人,特别是当我编写了一些东西直接从etherpad文档中编译latex
时,它会在您输入时自动保存。
是否有关于latex
或latexmk
的设置,使其在无法编译时仅中止并显示错误消息?或者,如果必要,如何设置某种期望脚本来自动忽略LaTeX的投诉?
(我曾认为pdflatex
的选项-halt-on-error
会奏效,但显然不行。)
奖励问题:Skim在Mac OSX上是一个很好的pdf查看器,每当pdf更改时都会自动刷新(不像Preview),但是每当出现latex错误时,它都会让您重新确认是否想要自动刷新。Texniscope没有这个问题,但我因其他原因放弃了Texniscope。有办法使Skim始终自动刷新,或者还有其他可以正确实现此功能的查看器吗?
添加:基于此问题的答案的latexmk
小教程:
在此处获取
latexmk
:http://www.phys.psu.edu/~collins/software/latexmk-jcc/将以下内容添加到您的
〜/ .latexmkrc
文件中:$pdflatex = 'pdflatex -interaction=nonstopmode';
(适用于 macOS 与 Skim)
$pdf_previewer = "open -a /Applications/Skim.app";
在编辑源文件
foo.tex
时,在终端运行以下命令:使用Skim或另一个实时pdf查看器查看foo.pdf。 对于Skim,只需查看Skim首选项中的“同步”选项卡,并为您的编辑器设置它。
latexmk -pvc -pdf foo.tex
完成!在foo.tex
上点击保存现在将会刷新foo.pdf
而无需做任何操作。