在Emacs init文件中添加TeX符号

时间:2013-06-21 21:01:44

标签: emacs emacs23 auctex

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

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

但我无法让它发挥作用。从命令行运行emacs t.text.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 ..它似乎没有在我的机器上正确加载..有关详细信息,请参阅Using \eqref with RefTeX

1 个答案:

答案 0 :(得分:2)

您必须在激活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)))))