As suggested here, latexmk
is a handy way to continually compile your document whenever the source changes. But often when you're working on a document you'll end up with errors and then latex
will panic and wait for user input before continuing. That can get very annoying, especially recently when I hacked up something to compile latex
directly from an etherpad document, which saves continuously as you type.
Is there a setting for latex
or latexmk
to make it just abort with an error message if it can't compile? Or, if necessary, how would I set up some kind of Expect script to auto-dismiss LaTeX's complaints?
(I had thought pdflatex
's option -halt-on-error
would do the trick but apparently not.)
Bonus question: Skim on Mac OSX is a nice pdf viewer that autorefreshes when the pdf changes (unlike Preview), except that whenever there's a latex error it makes you reconfirm that you want autorefreshing. Texniscope doesn't have this problem, but I had to ditch Texniscope for other reasons. Is there a way to make Skim always autorefresh, or is there another viewer that gets this right?
ADDED: Mini-tutorial on latexmk
based on the answer to this question:
Get
latexmk
here: http://www.phys.psu.edu/~collins/software/latexmk-jcc/Add the following to your
~/.latexmkrc
file:$pdflatex = 'pdflatex -interaction=nonstopmode';
(For OS X with Skim)
$pdf_previewer = "open -a /Applications/Skim.app";
While editing your source file,
foo.tex
, run the following in a terminal:latexmk -pvc -pdf foo.tex
Use Skim or another realtime pdf viewer to view foo.pdf. For Skim, just look at the “Sync” tab in Skim’s preferences and set it up for your editor.
Voila! Hitting save on foo.tex
will now cause foo.pdf
to refresh without touching a thing.