使用auctex跳转到下一个缺失的引用

7
我正在使用emacs + auctex处理TeX相关工作,非常满意我的工作流程。但是,有一件事情困扰着我。每当我编译一个由多个文件组成的文档时,并且存在引用缺失时,auctex会打印出这个烦人的消息。
LaTeX Warning: Reference `fig:MyMissingLabel' on page 42 undefined on input line 37.

就是这样。没有快捷方式可以跳到缺失的引用,什么也没有!

我知道我可以启用警告的调试模式,但是如果文档产生其他我不想调试的警告,这种方法并不适用。

我想要一个 defun(译注:Emacs Lisp 的函数定义方式)来循环移动光标到缺失引用的位置。但是我在网上没有找到任何信息,也许你们中的某个人可以帮助我吗?

提前感谢!

elemakil

[1] 例如,一些包在没有使用版本号或其他东西时会报告警告。我不想调试这个。我想纠正我的引用!


请注意,它指出错误位于输入的第37行,因此您可以使用 M-g M-g 37 跳转到该行。 - Andrew Swann
2个回答

1
AUCTeX中的快捷键可以让您跳转到错误。 缺失的引用是警告。 您可以通过将警告视为错误来激活所需的行为,方法是使用绑定到C-c C-t C-wTeX-toggle-debug-warnings

2
如上所述,这会导致循环所有警告,而不仅仅是由于缺少引用而产生的警告。 - elemakil

0

这个问题有点旧了,但是这是我的看法。 首先,定义这个函数

(defun my-ignore-TeX-warnings (type file line text &rest more)
  (setq ref "LaTeX Warning: Reference")
  (not (string-match-p ref text)))

然后 自定义 两个变量 TeX-ignore-warningsTeX-suppress-ignored-warnings - 例如,

(custom-set-variables
 ;; custom-set-variables was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 '(TeX-ignore-warnings 'my-ignore-TeX-warnings)
 '(TeX-suppress-ignored-warnings t))

注意:请注意上面的警告 - 即,您应该只有一个custom-set-variables

将代码放入您的~/.emacs或类似文件中。然后,通过菜单Command->TeXing options->Debug warnings启用TeX-toggle-debug-warnings

使用C-`循环浏览错误时,将包括未定义的引用。可以扩展上面的代码以选择未定义的引用。

祝好,

克里斯蒂安


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接