3

我正在尝试将以下代码添加到我的.emacs初始化文件中:

(TeX-add-symbols '("eqref" TeX-arg-ref))

但我无法让它工作。从命令行运行emacs t.tex(这里是示例文本文件)时出现以下错误:t.tex

Warning (initialization): An error occurred while loading `.emacs':
Symbol's function definition is void: TeX-add-symbols

我在 Ubuntu 12.04 上使用 GNU Emacs 版本 23.3.1。我的.emacs初始化文件看起来像

(setq TeX-auto-parse t)
(setq TeX-electric-escape t)
(setq reftex-label-alist '((nil ?e nil "~\\eqref{%s}" nil nil)))
(add-hook 'LaTeX-mode-hook 'turn-on-reftex)
(setq reftex-plug-into-AUCTeX t)
(TeX-add-symbols '("eqref" TeX-arg-ref))

如果我输入ESC-:(即运行命令eval-expression)并 (TeX-add-symbols '("eqref" TeX-arg-ref))在提示符下输入,它工作正常。(即在运行此之后,我可以进入\eqref缓冲区并按预期工作。但这不是一个好的解决方案,每次编辑文件时都必须手动输入此代码。这就是我尝试的原因在文件中设置它.emacs..)

此问题的背景信息:

我在使用 AucTeX 样式时遇到问题amsmath.el。它似乎没有在我的机器上正确加载。有关更多信息,请参阅将 \eqref 与 RefTeX 一起使用

4

1 回答 1

3

您必须在LaTeX-mode激活后评估代码,否则会出现错误Symbol's function definition is void: TeX-add-symbols。您可以将该函数添加到LaTeX-mode. 为了覆盖可能的其他eqref宏定义,您应该在宏的定义中添加一个虚拟(ignore)对象。这段代码,在你的.emacs,可以解决问题:

(add-hook 'LaTeX-mode-hook
      '(lambda ()
         (TeX-add-symbols '("eqref" TeX-arg-ref (ignore)))))
于 2013-06-22T09:54:19.593 回答