RefTeX 无法在本地库树中找到我的 .bib 文件

RefTeX 无法在本地库树中找到我的 .bib 文件

尝试插入引用时,RefTeX 出现以下错误:

  No valid bibliography in this document, and no default available

我在 中保存了一个主.bib文件~/Library/texmf/bibtex/bib/master_bib.bib。当我运行 Biblatex-biber 时,它会识别该文件,因此会生成参考书目。问题是 RefTeX 无法识别该文件并产生上述错误。我还将该.bib文件放在与该文件相同的目录中.tex,结果相同。

这篇文章看起来很有希望https://tex.stackexchange.com/questions/23780/reftex-wont-detect-my-bib-file但那个问题自动解决了。

RefTeX 手册(第 20 页)说

如果您不使用 BibTEX,但文档包含明确的 thebibliography环境,RefTEX 将从那里收集其信息。

然而,我不知道在哪里或如何将其包括进去。

我怎样才能让它工作?

以下是 MWE:

\documentclass{article}

\usepackage[
    backend=biber, 
    style=authoryear, 
    maxcitenames=2, 
    sorting=nyt,
    backref=true
    ]{biblatex}
    \addbibresource{master_bib.bib}

\begin{document}
    Some text. \parencite{Mays:2005, Chow:1998}

\printbibliography
\end{document}

%%% Local Variables: 
%%% mode: latex
%%% TeX-engine: xetex
%%% End:

我正在运行 Emacs 24,带有 AUCTeX 11.86 和 MacTeX 的 TeX Live 2011。

答案1

有两种方法可以让 RefTeX 找到你的参考书目。我建议使用两个都稳健性方法。

  • 要使 RefTeX 识别您的参考书目,您可以将其添加到列表中reftex-default-bibliography。为此,请将以下内容添加到您的 .emacs:

    ;; So that RefTeX finds my bibliography
    (setq reftex-default-bibliography '("path/to/bibfile.bib"))
    

    并将其替换path/to/bibfile.bib为您的 bib 文件的路径。请注意,这是一个列表,因此如果您想将其指向多个参考书目,它可以包含多个路径。此方法非常适合在 Org 模式下通过 RefTeX 访问您的 .bib 文件。

  • 让 RefTeX 识别参考书目的另一种方法是通过在 .emacs 中添加以下内容\addbibresource将其添加到变量中:reftex-bibliography-commands

    ;; So that RefTeX also recognizes \addbibresource. Note that you
    ;; can't use $HOME in path for \addbibresource but that "~"
    ;; works.
    (setq reftex-bibliography-commands '("bibliography" "nobibliography" "addbibresource"))
    

两个变量记录在手册中

答案2

添加

%%% reftex-default-bibliography: ("path/to/bibfile.bib")

在我的文件末尾与与该文件相关的其他命令一起看起来更好。

答案3

我通过插入'(reftex-use-external-file-finders t)我的 emacs init 文件解决了这个问题。

它使 RefTeX 使用适当的命令来reftex-external-file-finders查找文件。在我的例子中,它是kpsewhich -format=.bib %f默认值为查看环境变量中指定的文件夹BIBINPUTTEXINPUT

我更喜欢这个变体,主要是因为我希望 emacs 和 latex 将使用相同的方法来确定要使用哪个 bib 文件。它也感觉更灵活,因为如果您创建另一个中心参考书目,则无需修改它。

答案4

有时问题可能只是文件尚未解析。这种情况发生在我身上几次,尽管打开时应该已经解析了(尤其是当我同时打开多个 latex 项目时)。

在这种情况下(假设您的已经reftex-bibliography-commands包含addbibresource),最快的解决方法就是M-x reftex-parse-all

相关内容