emacsでlatexmkを呼び出して次のエラーにジャンプする方法 質問する

emacsでlatexmkを呼び出して次のエラーにジャンプする方法 質問する

使用したいラテックスnext-errorEmacs で LaTeX 文書をコンパイルします。特に、通常は Cx ` で呼び出され、文書内の次の LaTeX エラーにジャンプするEmacs 機能が必要です。

またはAUCTeX をlatexmk使用してを呼び出したいと思います。C-x compileC-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はなく で呼び出すように設定するにはどうすればよいですか? もちろん、ここでも作業したいです。pdflatexnext-error

アップデート:私は始めました賞金もしこれがうまくいけば、多くの人にとって素晴らしいツールになるだろう。EmacsでLaTeX文書を簡単にコンパイルしlatexmknext-error(もちろん、エラーは含まれる.tex ファイル (必ずしもマスター ファイルまたは現在のバッファー内にあるとは限りません)。

アップデート:AUCTeX+Latexmkを動作させてくれたIvan(とChris)に感謝します。その間、私はゴムLaTeX をコンパイルするのにも優れた選択肢です。 や他のコンパイラで使用される形式でエラー メッセージが表示されるので、たとえばgccEmacs でも自然に動作し、エラー メッセージは正しく解析されます。C-x compileC-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"

おすすめ記事