有人可以提供一份关于添加带有相对和完整文件路径的 .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})