每当我插入以 RefTeX 开头的标签的引用时,eq:
它似乎都会决定用 () 将其包围,例如,它将插入(\ref{eq:1))
缓冲区。如果我使用 cleveref,这尤其令人讨厌,因为(\cref{eq:1})
完全不对。
它隐含在另一个地方(我见过的唯一提到它的地方)这种令人惊讶/意外的行为可能是由于我自己的定制(其中根本没有多少)......但如果我启动 emacs 来禁用所有这些,它仍然会发生在两种内置参考格式(和)emacs -Q
中。\ref
\pageref
我在 Ubuntu 上使用 Emacs 24.5 和 RefTex 24.4。
停止/控制这种行为将会非常好。
答案1
经过一些测试,我承认错误(尊重我在你提到的答案中所说的):你描述的确实是默认行为,但当然可以改变。如果你想使用amsmath
referecen 的样式,请在你的 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)))))