お勧めのように here であるlatexmk
は、ソースが変更されるたびにドキュメントを継続的にコンパイルするための便利な方法です。しかし、ドキュメントで作業していると、多くの場合エラーが発生し、latex
はパニックに陥り、ユーザーの入力を待ってから続行します。特に最近私がlatex
を etherpad ドキュメントから直接コンパイルするために何かをハッキングしたとき、それは非常に迷惑になるかもしれません。
latex
またはlatexmk
がコンパイルできない場合にエラーメッセージを表示して中止する設定はありますか?または、必要に応じて、LaTeXの苦情を自動的に却下するために、ある種のExpectスクリプトをどのように設定しますか?
(pdflatex
のオプション-halt-on-error
がうまくいくと思っていましたが、どうやらそうではありませんでした。)
おまけの質問:Mac OSXのスキムは、PDFが変更されたときに(プレビューとは異なり)自動更新される素敵なPDFビューアです例外ラテックスエラーが発生するたびに自動更新することを再確認します。 Texniscopeにはこの問題はありませんが、 その他の理由 のためにTexniscopeを破棄する必要がありました。 Skimを常に自動更新する方法はありますか、またはこれを正しく行う別のビューアがありますか?
latexmk
のミニチュートリアル:ここでlatexmk
を取得: http://www.phys.psu.edu/~collins/software/latexmk-jcc/
以下を~/.latexmkrc
ファイルに追加します。
$pdflatex = 'pdflatex -interaction=nonstopmode';
(Skimを備えたOS Xの場合)
$pdf_previewer = "open -a /Applications/Skim.app";
ソースファイルfoo.tex
の編集中に、ターミナルで次のコマンドを実行します。
latexmk -pvc -pdf foo.tex
Skim または別のリアルタイムpdfビューアを使用して、foo.pdfを表示します。 Skimの場合は、Skimの設定の[同期]タブを見て、エディター用に設定します。
出来上がり! foo.tex
で保存を押すと、foo.pdf
が何かに触れずに更新されるようになりました。
MikTeXでは、pdflatex
に次のコマンドラインオプションがあります。
-interaction=MODE Set the interaction mode; MODE must be one
of: batchmode, nonstopmode, scrollmode,
errorstopmode.
@ 9999yearsによって提案された編集:
これらの値は、同じ機能を提供するLaTeX \commands
のセットと同等です。
TeXの使い方のヒント から:
これらのモードにより、TeXは次のように動作します。
errorstopmode
は、ソースコードのエラーか、存在しないファイルのエラーかを問わず、すべてのエラーで停止します。
scrollmode
はソースのエラーで停止しませんが、ファイルの欠落などのより深刻なエラーが発生したときに入力を要求します。
nonstopmode
のように誤解されている場合、TeXは重大なエラーの後で入力を要求しませんが、完全に停止します。
batchmode
は、それ以外のすべての出力を防止します(自動スクリプトでの使用を目的としています)。すべての場合において、すべてのエラーはログファイル(yourtexfile.log)に書き込まれます。
\nonstopmode
または\batchmode
texファイルの最初に;そうすれば、pdflatex
だけでなく、どのTeXバージョンでも動作します。これらおよび関連コマンドの詳細については、非常に優れた David Bausumによる(生の)TeXコマンドのリファレンス を参照してください。特に debugging family からのコマンドはここで興味深いかもしれません。
別の可能なハックは単に使用することです:
yes x | latexmk source.tex
常に「yes x |」のエイリアスを作成できます。このオプションをたくさん使用する場合は、latexmk '。私が他の提案より上に見ることができるこれの主な利点は、latexmkを時々このように動作させたいときに非常に速いということです。
メフメット
\batchmode
コマンドも機能します。