我正在使用 Windows 10(带有 WinEdt 9.1)+ MikTex 2.9 + BibLaTeX 3.7。我的路径(D:\Usuários\Varios\LocalTexFiles
)包含特殊字符,导致出现以下错误。
系统无法找到我的files.bib
和编译指出:
LaTeX 警告:第 # 页上的引用“AA:##a”在输入行 ## 上未定义。
解决方法是使用另一个不带特殊字符的文件:(D:\Users\Varios\LocalTexFiles
在这两种情况下,bib
文件只包含常规字符,例如controle.bib
)。
我是否必须继续这项工作,或者还有其他方法可以解决这个问题?
答案1
让我分享一下我的调查结果。
一般而言,最好避免在 TeX 及其辅助程序处理的文件名中使用非 ASCII 字符(和空格)。Biber 有几个地方可能会出错biblatex
。
在我的测试中,文件路径(不包括文件的基本名称).tex
包含非 ASCII 字符是完全没问题的
D:\Usuários\äölkßó\Documents\main.tex
如果 TeX 和 Biber 是从目录内调用的D:\Usuários\äölkßó\Documents\
,即
pdflatex main
biber main
pdflatex main
pdflatex main
已执行。在这种情况下,TeX 和朋友不必担心路径的其余部分包含恶意字符,并且可以正常工作。
如果主.tex
文件的基本名称包含非 ASCII 字符,则在我的 Windows 机器(Windows 10,MikteX 2.9)上编译会失败,但在 Linux 虚拟机(Ubuntu 17.04,TeX live 2018)上,示例可以正常运行。这与路径的其余部分是否包含非 ASCII 字符无关。当然,如果工作目录与文件位置不同,并且必须使用非 ASCII 字符调用文件,则这也适用,如下所示
biber ..\äölkßó\Documents\main
这也会失败。
此外,这可能不是您最初的问题的一部分,除非使用 XeLateX 或 LuaLaTeX,否则biblatex
无法处理非 ASCII 字符。\addbibresource
如果在某种情况下事情对你不起作用,D:\Usuários\äölkßó\Documents\main.tex
我只能假设你的编辑器没有将工作目录设置为文件位置并且只执行biber main
,但它biber
使用整个路径调用。一种解决方法是尝试让你的编辑器在启动之前更改其调用的工作目录。(TeXworks 在我的计算机上就是这样做的)
Biber 开发人员意识到 Windows 中存在非 ASCII 文件名问题,但显然解决方案相当棘手,而且有一个简单的解决方法(不要使用非 ASCII 字符),因此该问题不是高优先级。请参阅https://github.com/plk/biber/issues/203