3

我在 ubuntu 12.04 上使用 auctex 11.86 运行 emacs 23.3.1。每当我去编译一个乳胶文件(使用C-c C-c),如果没有错误,一切都编译得很好。但是,如果有任何错误,它会告诉我用来C-`查看错误,如果我这样做,我会收到此错误消息

使用 Mx make-directory RET RET 创建目录及其父目录

它会在几秒钟后消失。然后它将我带到另一个屏幕,该屏幕解释了乳胶代码中的错误。但是,现在我不能简单地C-x 1回到乳胶代码。我必须C-x C-c重新启动emacs。

这是我的.emacs文件

(setq backup-by-copying t
      backup-directory-alist '(("." . "~/.emacsBkups"))
      delete-old-versions t
      kept-new-versions 5
      kept-old-versions 2
      version-control t)


(setq TeX-auto-save t)
(setq TeX-parse-self t)
(setq TeX-PDF-mode t)

;;(require 'ess-site)
;;(ess-toggle-underscore nil)
(require 'whitespace)
(setq whitespace-style '(lines-tail face))

(add-hook 'c-mode-hook 'whitespace-mode)
(add-hook 'c++-mode-hook 'whitespace-mode)
(add-hook 'python-mode-hook 'whitespace-mode)

(add-to-list 'auto-mode-alist '("\\.h\\'" . c++-mode))
(c-set-offset (quote cpp-macro) 0 nil)



(setq TeX-view-program-list '(("Evince" "evince --page-index=%(outpage) %o")))
(setq TeX-view-program-selection '((output-pdf "Evince")))
4

1 回答 1

5

有时 AUCTeX 在解析 (La)TeX 编译日志时会感到困惑,并且无法猜测引发错误的正确行。在某些情况下,当括号不平衡时,AUCTeX 会发出一条晦涩的消息“最后一个 TeX 文件关闭后发生错误”,在您的情况下,它建议您创建一个新目录。为了帮助 AUCTeX 找到引发错误的正确行,您可以添加-file-line-error选项latexpdflatex自定义变量LaTeX-command-style。为此,将以下代码添加到您的.emacs

(setq LaTeX-command-style '(("" "%(PDF)%(latex) -file-line-error %S%(PDFout)")))

另请参阅AUCTeX 常见问题解答

8.为什么TeX-next-error( C-c `) 会失败?

写入日志文件时,TeX 将与文件相关的信息(包括错误消息)放在一对括号之间。AUCTeX 通过解析日志文件并计算括号来确定发生错误的文件。当存在其他不平衡的括号时,这可能会失败。

作为一种解决方法,您可以为日志文件激活所谓的 file:line:error 消息。(这些更容易解析,但可能缺少一些细节。)您可以在 TeX 系统的配置中执行此操作(请参阅其手册以查看其位置),或者将命令行开关添加到 (la)tex 调用,例如通过自定义LaTeX-command-styleTeX-command-list

于 2013-06-27T15:25:12.987 回答