我正在尝试将以下代码添加到我的.emacs
init文件中:
(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
..它似乎没有在我的机器上正确加载..有关详细信息,请参阅Using \eqref with RefTeX。
答案 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)))))