我正在尝试让 biblatex 查看我的 .bib 文件位于何处,但是文件路径中有一个空格:
\addbibresource{~/Documents/My Project/TheBib.bib}
如何指定包含空格的完整路径?有没有办法指定相对路径?
M(Not)WE,按照要求:
\documentclass[nobib]{tufte-handout}
\usepackage{hyphenat}
\usepackage[backend=bibtex, natbib=true, citestyle=verbose]{biblatex}
\addbibresource{~/Documents/Projects/NoSpaces/Sources.bib} % Works
%\addbibresource{~/Documents/Projects/Some Spaces/Sources.bib} % Fails
%\addbibresource{"~/Documents/Projects/Some Spaces/Sources.bib"} % Fails
\begin{document}
Test.\cite{CiteKey}
\printbibliography
\end{document}
答案1
(注:我在 Mac 上工作)
您指定的路径有两个问题:
1- 空格:只需将路径括在双引号(“)中
2- ~。TeX 不会将其视为 的替代品/Users/You
。您可能需要考虑使用相对路径:a)./
表示当前工作目录 b) 在../
目录树中向上移动一步。
因此如果你的文件结构如下
My project
main.tex
bib --> TheBib.bib
你只需要使用./bib/TheBib.bib
。但是如果你的文件结构类似于
My project
tex --> main.tex
bib --> TheBib.bib
你用../bib/TheBib.bib
等等
答案2
这可能对 Windows 用户有帮助,
发现这个http://osdir.com/ml/tex.miktex/2005-07/msg00022.html所有的功劳都应该归于他们,
在文件夹的每个父文件夹中使用命令提示符和 MSDOSdir /x
命令,使用“空格”来提取符合 MSDOS 8.3 要求的名称。最终路径如下所示:
正常 Windows 路径,“T:/My Docs/MyBibTeXFiles/Zotero2012.bib”
使用 MSDOS 名称,“T:/MYDOCS~1/MyBibTeXFiles/Zotero2012.bib”
最后以 .tex 格式,
\addbibresource{T:/MYDOCS~1/MyBibTeXFiles/Zotero2012.bib}
在使用这个新文件夹 bibtex .tex 之前,不要忘记删除以前的 .aux 文件。在 Win 7 中的 MikTex 中效果很好。
答案3
我感觉这个特定问题仍未解决。我使用 Windows 10,我需要将所有内容保存在 One Drive 上。我的参考书目路径是:D:\One Drive\bibtex\biblio.bib
。
无论我如何尝试,建议的解决方案对我来说都不起作用。解决方案D:\One~1\bibtex\biblio.bib
不起作用,将路径括在双引号中也不起作用。使用时出现错误,biber
无法找到文件。
我找到了使用通配符的解决方案:D:\One*\bibtex\biblio.bib
然而,这会弄乱 WinEdt 中使用树视图的快速访问 - 无法访问具有路径格式的文件,我认为这并不奇怪。
我感谢您的帮助!
欢呼吧,Piotr