使用したいラテックスnext-error
Emacs で LaTeX 文書をコンパイルします。特に、通常は Cx ` で呼び出され、文書内の次の LaTeX エラーにジャンプするEmacs 機能が必要です。
またはAUCTeX をlatexmk
使用してを呼び出したいと思います。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 行目のこのエラーに自動的にジャンプするにはどうすればよいでしょうか?
この LaTeX 出力の解析に関する質問は、 とは直接関係がないことに注意してくださいlatexmk
。 を実行すると、同じ問題が発生しますC-x compile pdflatex -interaction=nonstopmode foo
。
オプション2: AUCTeX
AUCTeX を.tex ファイルでlatexmk -pdf
はなく で呼び出すように設定するにはどうすればよいですか? もちろん、ここでも作業したいです。pdflatex
next-error
アップデート:私は始めました賞金もしこれがうまくいけば、多くの人にとって素晴らしいツールになるだろう。EmacsでLaTeX文書を簡単にコンパイルしlatexmk
、next-error
(もちろん、エラーは含まれる.tex ファイル (必ずしもマスター ファイルまたは現在のバッファー内にあるとは限りません)。
アップデート:AUCTeX+Latexmkを動作させてくれたIvan(とChris)に感謝します。その間、私はゴムLaTeX をコンパイルするのにも優れた選択肢です。 や他のコンパイラで使用される形式でエラー メッセージが表示されるので、たとえばgcc
Emacs でも自然に動作し、エラー メッセージは正しく解析されます。C-x compile
C-x compile rubber --pdf foo
ベストアンサー1
申し訳ありませんが、コメントする権限がありません。そうでなければ、これをコメントとして追加するだけです。Chris Conway の回答は機能しますが、 AucTeX がエラー メッセージを処理できるようにTeX-run-TeX
、 の代わりにを使用する必要がありますTeX-run-command
。
(add-hook 'LaTeX-mode-hook (lambda ()
(push
'("Latexmk" "latexmk -pdf %s" TeX-run-TeX nil t
:help "Run Latexmk on file")
TeX-command-list)))
次のようなものを追加するのも賢明かもしれません
'("%(-PDF)"
(lambda ()
(if (and (not TeX-Omega-mode)
(or TeX-PDF-mode TeX-DVI-via-PDFTeX))
"-pdf" "")))
pdf モードと dvi モードの両方で機能するように設定して使用TeX-expand-list
します。個人的には、特に実験しているときはカスタマイズを使用する方が簡単だと思います。"latexmk %(-PDF) %s"