Biber/BibLatex 找不到 .bib 文件(Windows)

Biber/BibLatex 找不到 .bib 文件(Windows)

有人可以提供一份关于添加带有相对和完整文件路径的 .bib 资源的简单指南吗?

在 Windows 8.1 上,我的文件路径中有一个空格,我不知道如何转义它。因此,我按照建议使用相对路径(上一个目录)..\file.bib)。这也不起作用。我只能通过将 bib 文件复制到与 .tex 文件相同的目录中来使用它。

请解释一下:

  • 首先--文件路径的正确语法是什么\addbibresource{}
  • 第二——Windows 需要做出哪些改变?
  • 第三——如何转义空格?(是的,我想使用名称中带有空格的文件结构。)

答案1

关于1

文件路径应以路径分隔符形式给出/,以避免被\解释为启动控制序列。

绝对路径和相对路径都可以照常给出(如果用作/路径分隔符)

\addbibresource{D:/Moritz/Documents/TeX/examples/relpath/testbibfile.bib}
\addbibresource{../testbibfile.bib}

相对路径是相对于 Biber 调用的工作目录来解析的(应该通常是目录,其中.bcf,应该通常.tex与文档/项目的主文件位于同一目录)。

关于2

用作/路径分隔符,而不是标准的 Windows \

这很烦人,因为您不能仅仅复制和粘贴路径,但至少它允许您使用这样的宏......

\newcommand\myfolder{myfolder}
\addbibresource{../\myfolder/testbibfile.bib}

(并不是说我一般会推荐这种东西)。

关于3

Biber 2.14 中有一个错误,本质上意味着 Biber 无法解析带有空格的路径。这将在下一个 Biber 版本中得到解决,但在此之前您需要避免使用空格。(在 Linux 系统上,文件名中的一个空格应该可以正常工作,但在 Windows 上,即使一个空格也会导致问题)。请参阅使用 addbibresource 时路径中的空格导致 biber 错误

只有一个例外:通过 找到的文件kpsewhich 可能位于包含空格的路径中。例如,在我的 (Windows) 系统中,biblatex-examples.bib如果我输入

\addbibresource{biblatex-examples.bib}

即使其实际路径包含两个空格(如 Biber 日志中所示)

INFO - Found BibTeX data source 'C:/Program Files/MiKTeX 2.9/bibtex/bib/biblatex/biblatex-examples.bib'

答案2

由于上面已经解释了您的 3 个问题,我只会告诉您我在这种情况下如何解决问题(很简单):

1)使用Windows共享工具并授予您的bib文件夹正确的权限;

2) 在所有需要用空格传递路径的地方,只需传递“\\localhost\MyBibFolder”。就我的情况 (MiKTeX) 而言,我在 MiKTex 控制台 -> 设置 -> 目录中执行了此操作(输入路径后,不要忘记刷新文件名数据库);

3)使用 \addbibresource 仅传递文件名(例如 \addbibresource{testbibfile.bib})

相关内容