首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在emacs中调用latexmk,并跳转到下一个错误

如何在emacs中调用latexmk,并跳转到下一个错误
EN

Stack Overflow用户
提问于 2010-02-04 12:38:42
回答 2查看 7.5K关注 0票数 26

我想使用拉特克斯克在Emacs中编译我的LaTeX文档。特别是我需要Emacs功能next-error,它通常用C调用,然后跳转到文档中的下一个LaTeX错误。

我想将latexmk称为C-x compile或AUCTeX C-c C-c

首先,我将latexmk设置为

代码语言:javascript
复制
$pdflatex = 'pdflatex -interaction=nonstopmode';

选项1: C编译

我按C-x compile并键入latexmk -pdf foo,它运行pdflatex。但是,即使* next-error *缓冲区包含错误,也不会跳到错误:

代码语言:javascript
复制
! Paragraph ended before \author was complete.
<to be read again> 
                   \par 
l.48 
[...]
Compilation exited abnormally with code 12 

如何自动跳转到第48行中的错误?

请注意,解析latex输出的问题与latexmk没有直接关系。当我只执行C-x compile pdflatex -interaction=nonstopmode foo时,也会出现同样的问题。

选项2: AUCTeX

如何将AUCTeX设置为在latexmk -pdf文件上调用latexmk -pdf而不是pdflatex?当然,我也希望next-error在这里工作。

更新:,我启动了一个奖品,因为如果这能成功的话,对很多人来说它将是一个很好的工具。如果给出了一个解决方案,使我能够在Emacs中轻松地使用LaTeX编译latexmk文档,然后使用next-error跳到错误(当然,错误可能在包含的.tex文件中,而不一定在主文件或当前缓冲区中),我将考虑这个问题。

更新:感谢Ivan (和Chris)让AUCTeX+Latexmk工作。同时,我发现使用橡胶编译LaTeX也是一个很好的选择。它将以gcc和其他编译器使用的格式显示错误消息,因此它自然地与Emacs C-x compile (例如C-x compile rubber --pdf foo )一起工作,并正确地解析错误消息。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-11 22:01:08

对不起,我没有能力发表评论,否则我只会把这个作为评论。Conway的答案有效,只是它应该使用TeX-run-TeX而不是TeX-run-command,以便AucTeX知道如何处理错误消息。

代码语言:javascript
复制
(add-hook 'LaTeX-mode-hook (lambda ()
  (push 
    '("Latexmk" "latexmk -pdf %s" TeX-run-TeX nil t
      :help "Run Latexmk on file")
    TeX-command-list)))

添加以下内容也可能是明智的

代码语言:javascript
复制
'("%(-PDF)"
  (lambda ()
    (if (and (not TeX-Omega-mode)
             (or TeX-PDF-mode TeX-DVI-via-PDFTeX))
        "-pdf" "")))

TeX-expand-list,并使用"latexmk %(-PDF) %s",这样它就可以在pdf和dvi模式下工作。就我个人而言,我发现使用定制更容易,尤其是当您正在试验时。

票数 28
EN

Stack Overflow用户

发布于 2012-07-10 13:38:33

添加%(模式)为latexmk提供了更多的选项,例如,如果在拍卖行中将其设置为非交互式的。

代码语言:javascript
复制
(add-hook 'LaTeX-mode-hook (lambda ()
  (push 
    '("Latexmk" "latexmk -pdf %(mode) %s" TeX-run-TeX nil t
      :help "Run Latexmk on file")
    TeX-command-list)))
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2199678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档