Как вызвать latexmk в emacs и перейти к следующей ошибке
Я хотел бы использоватьlatexmk скомпилировать мои документы LaTeX в Emacs. Особенно мне нужна функциональность Emacsnext-error
, который обычно вызывается с C-x `и переходит к следующей ошибке LaTeX в документе.
Я хотел бы позвонитьlatexmk
либо используяC-x compile
или AUCTeXC-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
работать здесь тоже.
ОБНОВИТЬ: Я началщедрость потому что, если бы это сработало, это было бы отличным инструментом для многих людей. Я считаю, что на вопрос дан ответ, если предоставлено решение, позволяющее мне легко скомпилировать документ LaTeX, используяlatexmk
в Emacs и перейти к ошибкам, используяnext-error
(конечно, ошибки могут быть ввключены файлы .tex, необязательно в основном файле или текущем буфере).
ОБНОВИТЬ: Спасибо Ивану (и Крису) за работу AUCTeX + Latexmk. Тем временем я обнаружил, что используяРезинка для компиляции LaTeX также отличный выбор. Он будет отображать сообщения об ошибках в формате, используемомgcc
и другие компиляторы, так что это естественно работает с EmacsC-x compile
например,C-x compile rubber --pdf foo
и сообщения об ошибках анализируются правильно.