gpt4 book ai didi

emacs - 在 emacs 中设置 RefTeX Tab 补全

转载 作者:行者123 更新时间:2023-12-04 08:28:07 27 4
gpt4 key购买 nike

我正在尝试使用 RefTeX 使 Tab 完成工作。当输入 C-c [ 并选择引用类型时,我会在迷你缓冲区中出现提示。当我知道要输入的围兜 key 的开头时,例如 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")))

我想我通过添加 %%% 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: 具有相同的缺陷。到文件末尾并且没有提供 Tab 补全。

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

使 RefTeX 与引用书目顺利工作的分步方法是什么,包括 Tab 补全?

编辑:
根据有关命令 reftex-citation 的 Reftex 手册条目可以完成。 :

The regular expression uses an expanded syntax: &&' is interpreted as and. Thus,aaaa&&bbb' matches entries which contain both aaaa' andbbb'. While entering the regexp, completion on knows [sic] citation keys is possible. `=' is a good regular expression to match all entries in all files.



但是,它没有提供有关如何使其工作的精确指导。

Kindahero 建议设置围兜条目列表并使用 completing-read命令。这听起来很合理,但是我想自动生成这个列表,这似乎是可行的,因为它适用于我的一些文档。

最佳答案

reftex-citation 的文档有点困惑。它 promise 在已知的引用键上完成,但我相信“已知”是指本次 session 中先前使用过的键,而不是适当引用书目中的所有键。您可以使用 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)))))

欢迎提供有关自动执行此操作的适当 Hook 的建议。

关于emacs - 在 emacs 中设置 RefTeX Tab 补全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9682592/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com