私はlatexmkを使用してEmacsでLaTeXドキュメントをコンパイルしたいと思います。特に、Emacs機能が必要ですnext-error
。これは通常Cx `で呼び出され、ドキュメント内の次のLaTeXエラーにジャンプします。
またはAUCTeXlatexmk
を使用して呼び出したいと思います。C-x compile
C-c C-c
まず、latexmk
使用するように設定しました
$pdflatex = 'pdflatex -interaction=nonstopmode';
オプション1:Cxコンパイル
を押しC-x compile
て入力latexmk -pdf foo
すると、実行されpdflatex
ます。ただしnext-error
、*コンパイル*バッファにエラーが含まれている場合でも、エラーにジャンプすることはありません。
! Paragraph ended before \author was complete.
<to be read again>
\par
l.48
[...]
Compilation exited abnormally with code 12
48行目のこのエラーに自動的にジャンプするにはどうすればよいですか?
latexmk
ラテックス出力を解析するというこの質問は、直接関係がないことに注意してください。私がするだけでも同じ問題が発生しますC-x compile pdflatex -interaction=nonstopmode foo
。
オプション2:AUCTeX
.texファイルlatexmk -pdf
ではなく呼び出すようにAUCTeXを設定するにはどうすればよいですか?pdflatex
もちろん、私next-error
もここで働きたいです。
更新:これがうまくいけば、多くの人にとって素晴らしいツールになるので、私は賞金を始めました。latexmk
Emacsで使用してLaTeXドキュメントを簡単にコンパイルし、を使用してエラーにジャンプできるソリューションが提供された場合に回答された質問を検討しますnext-error
(もちろん、エラーは含まれている.texファイルにある可能性があり、必ずしもマスターファイルや現在のファイルにあるとは限りません)バッファ)。
更新: AUCTeX + Latexmkを機能させてくれたIvan(およびChris)に感謝します。それまでの間、 Rubberを使用してLaTeXをコンパイルすることも優れた選択肢であることがわかりました。エラーメッセージは、他のコンパイラで使用されている形式で表示されるgcc
ため、EmacsC-x compile
などで自然に機能しC-x compile rubber --pdf foo
、エラーメッセージは正しく解析されます。