Emacs 的 RefTeX reftex-reference 无条件地用括号包围 `eq:...` 引用

Emacs 的 RefTeX reftex-reference 无条件地用括号包围 `eq:...` 引用

每当我插入以 RefTeX 开头的标签的引用时,eq:它似乎都会决定用 () 将其包围,例如,它将插入(\ref{eq:1))缓冲区。如果我使用 cleveref,这尤其令人讨厌,因为(\cref{eq:1})完全不对。

它隐含在另一个地方(我见过的唯一提到它的地方)这种令人惊讶/意外的行为可能是由于我自己的定制(其中根本没有多少)......但如果我启动 emacs 来禁用所有这些,它仍然会发生在两种内置参考格式(和)emacs -Q中。\ref\pageref

我在 Ubuntu 上使用 Emacs 24.5 和 RefTex 24.4。

停止/控制这种行为将会非常好。

答案1

经过一些测试,我承认错误(尊重我在你提到的答案中所说的):你描述的确实是默认行为,但当然可以改变。如果你想使用amsmathreferecen 的样式,请在你的 init 文件中添加以下代码:

(setq reftex-label-alist '(AMSTeX))

正如RefTeX 手册

如果你特别想在未加载\eqref{}时使用,并且不要在文档加载时cleveref使用括号\ref{}cleveref请将以下代码添加到你的初始化文件中(它基于这个答案,问题中已经提到)

(setq reftex-label-alist '(AMSTeX)) ;; as before, but will be changed in cleveref document, see below

(eval-after-load
    "latex"
  '(TeX-add-style-hook
    "cleveref"
    (lambda ()
      (if (boundp 'reftex-ref-style-alist)
          (add-to-list
           'reftex-ref-style-alist
           '("Cleveref" "cleveref"
             (("\\cref" ?c) ("\\Cref" ?C) ("\\cpageref" ?d) ("\\Cpageref" ?D)))))
      (reftex-ref-style-activate "Cleveref")
      (set (make-variable-buffer-local 'reftex-label-alist)
       '(("equation"  ?e "eq:" "~\\ref{%s}" t
          (regexp "equations?" "eqs?\\." "eqn\\." "Gleichung\\(en\\)?"  "Gl\\."))))
      (TeX-add-symbols
       '("cref" TeX-arg-ref)
       '("Cref" TeX-arg-ref)
       '("cpageref" TeX-arg-ref)
       '("Cpageref" TeX-arg-ref)))))

相关内容