![在 emacs 中对 csquotes 引文进行良好的引用搜索(例如 reftex 的 Cc [)](https://linux22.com/image/233958/%E5%9C%A8%20emacs%20%E4%B8%AD%E5%AF%B9%20csquotes%20%E5%BC%95%E6%96%87%E8%BF%9B%E8%A1%8C%E8%89%AF%E5%A5%BD%E7%9A%84%E5%BC%95%E7%94%A8%E6%90%9C%E7%B4%A2%EF%BC%88%E4%BE%8B%E5%A6%82%20reftex%20%E7%9A%84%20Cc%20%5B%EF%BC%89.png)
当使用 emacs+reftex-mode 时,我可以点击“ C-c [
”并获得一个不错的命令引用搜索菜单\cite
。有没有办法为csquotes
' 集成引文(例如\displaycquote
)获取相同的菜单?
答案1
最简单的方法可能是将以下内容添加到您的 .emacs 配置中(对于宏\textquote
):
(TeX-add-symbols
'("textquote" [ TeX-arg-cite ] [ "Punctuation" ] t)
)
(看AUCTeX 添加宏參見 (文件)
TeX-arg-cite
应该调用 RefTeX 引用搜索。它的行为似乎很奇怪,因为即使它被定义为可选参数,它也会强制您选择引用。
也是添加环境的方法, 所以
(LaTeX-add-environments
`("displayquote" LaTeX-env-args
[TeX-arg-cite [ "Punctuation" ] t]))
应该displayquote
根据文档定义环境,但由于某些原因,这对我来说不起作用。
正如文档,在样式钩子中执行此操作会更清晰,以便仅为实际使用引用包裹:
(TeX-add-style-hook
"csquotes"
(lambda ()
(TeX-add-symbols
'("textquote" [ TeX-arg-cite ] [ "Punctuation" ] t)
)
(LaTeX-add-environments
`("displayquote" LaTeX-env-args
[TeX-arg-cite [ "Punctuation" ] t])
)
)
)
但是,执行此操作时应检查是否没有覆盖某些 AUCTeX 默认值。
不太干净的做法是通过指定一个新的reftex-cite 格式,但我觉得这太丑了。