使用 RefTeX 启用括号 bib 条目

使用 RefTeX 启用括号 bib 条目

我使用括号构建了我的.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 [然后时CampbTab,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/

相关内容