Я хотел бы использовать latexmk для компиляции моих документов LaTeX в Emacs. Особенно мне нужна функциональность Emacs next-error, которую обычно вызывают с помощью C-x `, и переходит к следующей ошибке LaTeX в документе.
Я хотел бы назвать latexmk либо с помощью C-x compile, либо AUCTeX C-c C-c.
Сначала я установил latexmk для использования
$pdflatex = 'pdflatex -interaction=nonstopmode';
Вариант 1: компиляция C-x
Я нажимаю C-x compile и набираю latexmk -pdf foo, который запускается pdflatex. Но next-error не будет переходить на ошибки, даже если в буфере * compilation * содержатся ошибки:
! 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
Как настроить AUCTeX на вызов latexmk -pdf вместо pdflatex в моем .tex файле? Конечно, я хочу next-error работать здесь тоже.
ОБНОВЛЕНИЕ: Я начал bounty, потому что если бы это сработало, это было бы отличным инструментом для многих людей. Я рассматриваю вопрос, отвечающий, если дано решение, позволяющее легко скомпилировать мой документ LaTeX с помощью latexmk в Emacs и перейти к ошибкам с помощью next-error (конечно, ошибки могут быть включены в .tex файлы, не обязательно в главный файл или текущий буфер).
ОБНОВЛЕНИЕ: Благодаря Ивану (и Крису) за работу AUCTeX + Latexmk. Тем временем я обнаружил, что использование Rubber для компиляции LaTeX также является отличным выбором. Он отображает сообщения об ошибках в формате, используемом gcc и другими компиляторами, поэтому он, естественно, работает с Emacs C-x compile, например. C-x compile rubber --pdf foo, и сообщения об ошибках обрабатываются правильно.