繁体   English   中英

AUCTeX:插入引用/引用而不包含宏

[英]AUCTeX: insert reference / citation without macro

有没有一种添加引用/引用格式的方法,该格式可以将引用/引用标签直接插入到缓冲区中而不将其包含在宏中?

需要明确的是:当我点击Cc ) AUCTeX会提示您输入参考格式,当我点击return它将在缓冲区中插入~\\ref{LABEL} [在下一个缓冲区中选择适当的参考之后]。 我想添加绑定到\\?s (空格)的参考格式,该格式仅插入LABEL部分。

那就是说:我按Cc ) ,然后<space> ,然后选择引用,然后... tadaa缓冲区中有LABEL

[编辑:]我已经尝试过

(eval-after-load "latex"
       '(progn
          (add-to-list
                'reftex-ref-style-alist
                '("Default" t
                  (("" ?\s))))))

但是,这会将标签用大括号括起来,并在点之前加一个~

我通过在reftex-reference添加around-advice创建了一个解决方案,但是,这不是一个很好的解决方案。 我将其作为答案,但我仍然希望有一个更好的解决方案。

(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))))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM