我使用括号构建了我的.bib
文件,如下所示:
@ARTICLE(Campbell2006,
author="Campbell, K. and McKay, M.D. and Williams, B.J.",
title="Sensitivity Analysis when Model Outputs are Functions",
journal="{Reliability Engineering \& System Safety}",
volume=91,
number="10-11",
pages="1468--1472",
year=2006,
publisher="{Elsevier}")
当输入C-c [然后时Campb
Tab,RefTeX 正确地提出建议Campbell2006
,但是按下时Ret,我收到消息Sorry, no matches found
。
我发现用大括号代替左括号和右括号就可以了。不过我认为可以配置 Emacs 和 RefTeX 以避免这种重新格式化。是吗?
答案1
修复此问题的正确位置是 RefTeX 用于解析 BibTeX 文件的正则表达式。但是,在我查看的 RefTeX 版本 (4.31) 中,似乎会[{(]
出现您期望的每个位置。
编辑:经过一番研究,似乎问题在于 inreftex.el
(
和)
被定义为标点符号是 reftex-syntax-table 而不是分隔符。这导致(up-list 1)
in reftex-extract-bib-entries
(以使用修改后的语法表的方式调用其主体 in)失败并继续下一个结果。
为了让它工作,你需要改变
(unless reftex-syntax-table
(setq reftex-syntax-table (copy-syntax-table))
(modify-syntax-entry ?\( "." reftex-syntax-table)
(modify-syntax-entry ?\) "." reftex-syntax-table))
到
(unless reftex-syntax-table
(setq reftex-syntax-table (copy-syntax-table))
(modify-syntax-entry ?\( "(" reftex-syntax-table)
(modify-syntax-entry ?\) ")" reftex-syntax-table))
(在reftex.el
我的版本中,它位于第 314 行)。但是,开发人员特意加上了()
标点符号(我不知道),这让我对进行此更改感到有点紧张。
编辑:补丁已提交至 auctex.develhttp://article.gmane.org/gmane.emacs.auctex.devel/2707/