AUCTeX: вставить ссылку / цитирование без макроса
Есть ли способ добавить формат ссылки / цитирования, который вставляет метку ссылки / цитирования непосредственно в буфер, не заключая его в макрос?
Чтобы было ясно: когда я ударил C-c )
AUCTeX
запрашивает справочный формат, когда я нажимаю return
это вставит ~\ref{LABEL}
в буфер [после выбора соответствующей ссылки в следующем буфере]. Я хотел бы добавить справочный формат, который связан с \?s
(пробел), который вставляет только LABEL
часть.
То есть я ударил C-c )
, затем <space>
, затем выберите ссылку и... тадаа есть LABEL
в буфере.
[Изменить:] Я пытался
(eval-after-load "latex"
'(progn
(add-to-list
'reftex-ref-style-alist
'("Default" t
(("" ?\s))))))
однако это заключает в себе ярлык в фигурных скобках и prepends ~
если есть слово перед точкой.
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))))