今天我发现 biblatex、biber 或负责引用和参考书目的其他程序无法在我的 tex 文件上正常工作。我认为有两个原因:
也许我的引擎文件(我之所以称之为引擎文件,是因为它位于我的 TexShop 文件夹的引擎文件夹中)写得不好,或者无法与最新更新配合使用(如果有这样的更新……)。这是我的引擎文件:
#!/bin/tcsh
set path= ($path /usr/texbin /usr/local/bin /opt/local/bin/)
lualatex -file-line-error -synctex=1 "$1"
biber "${1:r}"
lualatex -file-line-error -synctex=1 "$1"
或者由以下错误导致:
ERROR - Error loading data source package 'Biber::Input::file::bibtex': data source /var/folders/zE/zEWMdMuCGnyHENetv8k-CU+++TI/-Tmp-/par-User/cache-5a7f3069e2a4d51fd3557003fc55ec74c554c947//inc/lib/Biber/Input/file/bibtex.dcf not found in .
Compilation failed in require at (eval 71) line 2.
看起来这个错误可能会导致问题。但是,我不知道是什么导致了错误...我没有删除任何文件(例如,bibtex.dcf,错误消息声称未找到该文件)。
我还有另外两个问题:不同的编辑器在引擎文件的外观方面是否存在差异?我使用的引擎文件可以吗?(我看不懂该文件中的任何一个字)
答案1
评论太长了,答案也差不多:
- 你确定这是你正在使用的实际引擎吗?它应该以 开头,而
#!
不仅仅是!
。另外,请确保你的发行版是最新的。你收到的错误看起来更像是一个biber
问题。请参阅 egreg 的答案以了解解决方案。 - 除非您安装了 MacPorts,否则您不需要它
/opt/local/bin
在您的路径中。(即使这样,您可能也不需要它)。 - 这个引擎实际上不会做你想让它做的事情(即正确解析引用)。你需要另外
lualatex
一行来做到这一点。
我建议使用lualatexmk
TeXShop 自带的引擎作为替代方案。如果它未激活,请转到~/Libary/TeXShop/Engines
并将其从Inactive
文件夹移动到Engines
文件夹。您需要退出 TeXShop 才能使更改生效。
然后在您的文档中您只需添加:
% !TEX TS-program = lualatexmk
并且会自动选择此引擎。您可以使用宏菜单中的程序项插入此行。
答案2
不幸的是,Biber 出现了混乱,这个消息意味着它生成的二进制文件状况不佳。
我知道解决该问题的唯一方法是打开终端并发出
rm -fr /var/folders/zE/zEWMdMuCGnyHENetv8k-CU+++TI/-Tmp-/par-User/cache-5a7f3069e2a4d51fd3557003fc55ec74c554c947
其中字符串是错误消息中/var/folder/
从上到下的内容。//
这将强制 Biber 重建二进制文件。Biber 文档第 30 页提到了这一点。在不同于 Mac OS X 的系统上,字符串可能会有所不同。
注意:这件事刚才发生,当时正在测试回答。:-O