Tôi muốn sử dụng latexmk để biên dịch tài liệu LaTeX của mình trong Emacs. Đặc biệt tôi cần chức năng Emacs next-error
, thường được gọi với C-x `và nhảy tới lỗi LaTeX tiếp theo trong tài liệu.Cách gọi latexmk trong các emacs và chuyển sang lỗi tiếp theo
Tôi muốn gọi latexmk
hoặc sử dụng C-x compile
hoặc AUCTeX C-c C-c
.
Đầu tiên, tôi đặt latexmk
sử dụng
$pdflatex = 'pdflatex -interaction=nonstopmode';
Lựa chọn 1: C-x biên dịch
Tôi nhấn C-x compile
và gõ latexmk -pdf foo
, chạy pdflatex
. Nhưng next-error
sẽ không nhảy đến các lỗi, ngay cả khi * biên soạn * buffer chứa lỗi:
! Paragraph ended before \author was complete.
<to be read again>
\par
l.48
[...]
Compilation exited abnormally with code 12
Làm thế nào tôi có thể tự động chuyển đến lỗi này trong dòng 48?
Lưu ý rằng câu hỏi phân tích cú pháp đầu ra latex này không liên quan trực tiếp với latexmk
. Cùng một vấn đề xảy ra khi tôi chỉ làm C-x compile pdflatex -interaction=nonstopmode foo
.
Phương án 2: AUCTeX
Làm thế nào tôi có thể thiết lập AUCTeX gọi latexmk -pdf
thay vì pdflatex
trong hồ sơ .tex của tôi? Tất nhiên, tôi muốn next-error
cũng hoạt động ở đây.
CẬP NHẬT: Tôi đã bắt đầu tiền thưởng bởi vì nếu điều này làm việc nó sẽ là một công cụ tuyệt vời cho nhiều người. Tôi xem xét câu hỏi được trả lời nếu giải pháp cho phép tôi dễ dàng biên dịch tài liệu LaTeX của mình bằng cách sử dụng latexmk
trong Emacs và chuyển đến lỗi bằng cách sử dụng next-error
(tất nhiên, các lỗi có thể là bao gồm .tex tệp, không nhất thiết phải là chủ tệp hoặc bộ đệm hiện tại).
CẬP NHẬT: Nhờ Ivan (và Chris) để thực hiện công việc AUCTeX + Latexmk. Trong khi chờ đợi, tôi thấy rằng việc sử dụng Rubber để biên dịch LaTeX cũng là một lựa chọn tuyệt vời. Nó sẽ hiển thị thông báo lỗi theo định dạng được sử dụng bởi gcc
và các trình biên dịch khác, vì vậy nó tự động hoạt động với Emacs C-x compile
, ví dụ: C-x compile rubber --pdf foo
và các thông báo lỗi được phân tích cú pháp chính xác.
Xem thêm câu hỏi liên quan từ xa này http://stackoverflow.com/questions/738755/dont-make-me. – Frank
Ngoài ra còn có 'TeX-run-compile' để bạn có thể sử dụng giao diện AucTeX để khởi động quá trình biên dịch. Hãy thử 'C-h v TeX-command-list RET' để xem danh sách đầy đủ các phương thức khác nhau có sẵn. –
Xem thêm https://github.com/tom-tan/auctex-latexmk, có sẵn thông qua người quản lý gói Emacs (không chắc chắn về repo nào). – Blaisorblade