Alf*_* M. 8 emacs latex auctex
我正在尝试Tab使用RefTeX完成工作.当键入C-c [并选择引用类型时,我在迷你缓冲区中有一个提示.当我知道我要输入的围兜钥匙的开头时,比方说Campbell2006,我想输入Camp Tab并获得Campbell2006 [唯一完成].
我已经成功设置了一些文件,但我不明白为什么它适用于他们而不适用于其他人.我注意到,对于已正确Tab>完成的文档,以下行将添加到name_of_tex_file.el在auto子文件夹中创建的文件中:
(TeX-add-style-hook "name_of_tex_file"
(lambda ()
(LaTeX-add-bibliographies
"absolute_path_to_bib")))
Run Code Online (Sandbox Code Playgroud)
我想我通过%%% reftex-default-bibliography: absolute_path_to_bib在文件末尾添加来获得这个结果,但这有点令人讨厌,特别是在几台计算机上编辑同一个文件时.
请注意,RefTeX正在工作,因为当我输入时C-c [ Camp Ret,我得到一个Campbell2006条目的列表(有时候有点奇怪).
我试图设置%BIBINPUTS%环境变量没有成功.添加(setq reftex-bibpath-environment-variables '("c:/path_to_bib_file/"))对于该C-c [ Camp Ret方法来说似乎是必要的.它具有%%% reftex-default-bibliography:与在文件末尾添加a 并且未提供Tab完成相同的缺陷.
我曾尝试各种组合/,//,\\和\指定文件时作为文件分隔符,但我不知道确切的,我应该使用(我使用emacs在Windows环境中).问题可能就是这么简单,但由于有很多参数需要尝试我失败,请确定问题出在哪里.
什么是使RefTeX顺利Tab完成参考书目的逐步方法,包括完成?
编辑:根据有关命令的Reftex手册条目,可以完成reftex-citation:
正则表达式使用扩展语法:
&&' is interpreted as and. Thus,aaaa && bbb'匹配包含两个aaaa' andbbb'的条目.在进入正则表达式时,可以完成对[sic]引用键的完成.`='是一个很好的正则表达式,可以匹配所有文件中的所有条目.
它没有提供关于如何使其工作的精确指导.
Kindahero建议设置一个bib条目列表并使用该completing-read命令.这听起来很合理,但是我想自动生成这个列表,这似乎是可行的,因为它适用于我的一些文档.
的文档reftex-citation有点混乱。它保证完成对已知引文键的操作,但我相信“已知”是指此会话之前使用的键,而不是相应参考书目中的所有键。您可以使用LaTeX-add-all-bibitems-from-bibtex下面定义的命令来加载书目中的所有键:
(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)))))
Run Code Online (Sandbox Code Playgroud)
欢迎使用适当的钩子来自动执行此操作。