Я хотел бы использовать latexmk для компиляции моих документов LaTeX в Emacs. Особенно мне нужна функциональность Emacs next-error
, которая обычно вызывается с помощью C-x `и переходит к следующей ошибке LaTeX в документе.Как вызвать latexmk в emacs и перейти к следующей ошибке
Я бы хотел позвонить по телефону latexmk
с использованием C-x compile
или AUCTeX C-c C-c
.
Во-первых, я установил latexmk
использовать
$pdflatex = 'pdflatex -interaction=nonstopmode';
Вариант 1: C-х компилировать
нажатии 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?
Обратите внимание, что этот вопрос разбора выхода латекса не имеет никакого отношения к latexmk
. Та же проблема возникает, когда я просто делаю C-x compile pdflatex -interaction=nonstopmode foo
.
Вариант 2: AucTeX
Как я могу установить AucTeX позвонить latexmk -pdf
вместо pdflatex
на мой файл .tex? Конечно, я хочу next-error
работать здесь тоже.
UPDATE: Я начал щедрот, потому что если это работало, было бы отличным инструментом для многих людей. Я считаю, что вопрос ответил, если дано решение, которое позволяет мне легко скомпилировать мой документ LaTeX с помощью latexmk
в Emacs и перейти к ошибкам с помощью next-error
(конечно, ошибки могут быть в включены .tex файлы, не обязательно в master файл или текущий буфер).
ОБНОВЛЕНИЕ: Благодаря Ивану (и Крису) для создания AUCTeX + Latexmk. Тем временем я обнаружил, что использование Rubber для компиляции LaTeX также является отличным выбором. Он отображает сообщения об ошибках в формате, используемом gcc
и другими компиляторами, поэтому он, естественно, работает с Emacs C-x compile
, например. C-x compile rubber --pdf foo
, и сообщения об ошибках обрабатываются правильно.
См. Также этот удаленный вопрос http://stackoverflow.com/questions/738755/dont-make-me. – Frank
Существует также 'TeX-run-compile', так что вы можете использовать интерфейс AucTeX для запуска процесса компиляции. Попробуйте 'C-h v TeX-command-list RET', чтобы просмотреть полный список доступных методов. –
См. Также https://github.com/tom-tan/auctex-latexmk, доступный через менеджеров пакетов Emacs (не уверен, на каком репо). – Blaisorblade