【问题标题】:Add a TeX symbol in the Emacs init file在 Emacs 初始化文件中添加一个 TeX 符号
【发布时间】:2013-06-19 02:48:28
【问题描述】:

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

(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

【问题讨论】:

  • (eval-after-load "latex" '(TeX-add-symbols '("eqref" TeX-arg-ref)))
  • 谢谢,不过好像不行..
  • 您报告的错误(Symbol's function definition is void: TeX-add-symbols)应该已修复,对吧?要使 eqref 工作,您必须删除 /var/lib 中的文件,正如我在 TeX.SE 上建议的那样。
  • 是的 :) 但是当我输入 C-h v TeX-symbol-list eqref 时没有定义...
  • 试试(add-hook 'LaTeX-mode-hook '(lambda () (TeX-add-symbols '("eqref" TeX-arg-ref))))(add-hook 'LaTeX-mode-hook '(lambda () (TeX-add-symbols '("eqref" TeX-arg-ref (ignore)))))

标签: emacs emacs23 auctex


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-28
    • 1970-01-01
    • 1970-01-01
    • 2015-03-08
    • 2016-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多