有没有办法添加引用/引用格式,将引用/引用标签直接插入缓冲区而不将其封装到宏中?
要明确:当我点击C-c )
AUCTeX
提示输入参考格式时,当我点击return
时,它会将~\ref{LABEL}
插入缓冲区[选择之后]适当参考下一个缓冲区]。我想添加一个绑定到\?s
(空格)的引用格式,只插入LABEL
部分。
也就是说:我点击了C-c )
,然后点击了<space>
,然后在缓冲区中选择了引用和... tadaa LABEL
。
[编辑:] 我试过
(eval-after-load "latex"
'(progn
(add-to-list
'reftex-ref-style-alist
'("Default" t
(("" ?\s))))))
然而,如果在点之前有一个单词,则用大括号括起标签并在前缀~
。
答案 0 :(得分:1)
我通过向around-advice
添加reftex-reference
来创建解决方案,但是,它不是一个漂亮的解决方案。我会把它作为答案,但我仍然希望有更好的解决方案。
(eval-after-load "latex"
'(progn
(add-to-list
'reftex-ref-style-alist
'("Default" t
(("LABEL ONLY" ?\s))))
(defadvice reftex-format-special (around reftex-format-special-labely-only activate)
"Advice `reftex-format-special' such that if
REFSTYLE is \"LABEL ONLY\" it will insert
only the reference's label."
(if (string= (ad-get-arg 2) "LABEL ONLY")
(setq ad-return-value (format "%s" (ad-get-arg 0)))
ad-do-it))))