Я хотел бы использовать latexmk для компиляции моих ЛАТЕКСНЫХ документов в Emacs. Особенно мне нужна функциональность Emacs next-error
, который обычно называют с C-x' и переходит к следующей ЛАТЕКСНОЙ ошибке в документе.
Я хотел бы звонить 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
не перейдет к ошибкам, даже если *компиляция* буфер будет содержать ошибки:
! Paragraph ended before \author was complete.
\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
работать здесь также.
ОБНОВЛЕНИЕ: Я запустил щедрость, потому что, если это работало, это будет большой инструмент для многих людей. Я считаю вопрос отвеченным, если решение состоит в том, учитывая, что позволяет мне легко скомпилировать свое ЛАТЕКСНОЕ использование документа latexmk
в Emacs и переходе к ошибкам с помощью next-error
(конечно, ошибки могли бы быть во включенных .tex файлах, не обязательно в основном файле или текущем буфере).
ОБНОВЛЕНИЕ: Благодаря Ivan (и Chris) для того, чтобы заставить AUCTeX+Latexmk работать. Тем временем я нашел, что использование Резины для компиляции ЛАТЕКСА является также отличным выбором. Это отобразит сообщения об ошибках в формате, используемом gcc
и другие компиляторы, таким образом, это естественно работает с Emacs C-x compile
, например. C-x compile rubber --pdf foo
, и сообщения об ошибках анализируются правильно.