在emacs中设置RefTeX选项卡完成

在emacs中设置RefTeX选项卡完成,emacs,latex,auctex,Emacs,Latex,Auctex,我正试图使标签完成工作与RefTeX。键入C-C[并选择参考类型时,我会在微型缓冲区中出现一个提示。当我知道我要输入的bib键的开头时,例如Campbell2006,我想键入Camp选项卡并获得Campbell2006[唯一完成] 我已经设法为一些文档设置了它,但我不明白为什么它对它们有效,而对其他文档无效。我注意到,对于具有适当Tab>完成的文档,以下行添加到在自动子文件夹中创建的文件name\u of_tex\u file.el: (TeX添加样式挂钩“TeX文件的名称” (lambda()

我正试图使标签完成工作与RefTeX。键入C-C[并选择参考类型时,我会在微型缓冲区中出现一个提示。当我知道我要输入的bib键的开头时,例如
Campbell2006
,我想键入
Camp
选项卡并获得Campbell2006[唯一完成]

我已经设法为一些文档设置了它,但我不明白为什么它对它们有效,而对其他文档无效。我注意到,对于具有适当Tab>完成的文档,以下行添加到在
自动
子文件夹中创建的文件
name\u of_tex\u file.el

(TeX添加样式挂钩“TeX文件的名称”
(lambda()
(b)添加参考书目
“绝对路径(到bib”))
我想我是通过在我的文件末尾添加
%%%reftex默认参考书目:绝对路径到bib
得到这个结果的,但这有点麻烦,尤其是在多台计算机上编辑同一个文件时

请注意,RefTeX正在工作,因为当我键入C-C[
Camp
Ret时,我会得到一个带有Campbell2006条目的列表(有时有点奇怪)

我尝试设置%bibinput%环境变量,但没有成功。 添加
(setq reftex bibpath环境变量(“c:/path\u to\u bib\u file/”)
似乎是c-c[
Camp
Ret方法工作所必需的。 它的缺陷与在文件末尾添加
%%%reftex默认书目:
相同,并且没有提供选项卡完成

在指定文件时,我尝试了各种组合的
/
/
\
\
作为文件分隔符,但我不知道应该使用哪种(我在windows环境中使用emacs).问题可能就这么简单,但由于有很多参数需要尝试,我无法确定问题出在哪里

什么是一步一步的方法使RefTeX顺利地与书目一起工作,包括制表符的完成

编辑: 根据Reftex手动输入的有关命令的信息,可以完成:

正则表达式使用扩展语法:
&&'被解释为and。因此,
aaaa&&bbb'匹配同时包含
aaaa'和
bbb'的条目。在输入regexp时,可以在已知[sic]引用键上完成“=”是匹配所有文件中所有条目的良好正则表达式

不过,它并没有就如何使其发挥作用提供精确的指导


Kindahero建议设置bib条目的列表,并使用
完成读取
命令。这听起来很合理,但我想自动生成此列表,而且它似乎可行,因为它适用于我的一些文档。

引用的
引用文件有点混乱。它承诺完成关于已知引用键,但我认为“已知”指的是本课程之前使用过的键,而不是相应参考书目中的所有键。您可以使用下面定义的
LaTeX从bibtex添加所有bibitems
命令加载参考书目中的所有键:

(defun get-bibtex-keys (file)
  (with-current-buffer (find-file-noselect file)
    (mapcar 'car (bibtex-parse-keys))))

(defun LaTeX-add-all-bibitems-from-bibtex ()
  (interactive)
  (mapc 'LaTeX-add-bibitems
        (apply 'append
               (mapcar 'get-bibtex-keys (reftex-get-bibfile-list)))))

欢迎提供适当挂钩的建议,以自动完成此操作。

只是一个提示。为了能够完成
选项卡
,您需要列出所有bib条目,以利用
完成读取
,默认情况下,它确实绑定到
选项卡
,作为替代解决方案,您可以键入
=
,th在选择缓冲区中搜索所需内容。