TexStudio:Biber 声称 biblatex 版本错误

TexStudio:Biber 声称 biblatex 版本错误

我使用 MiKTeX 2.9 和 TexStudio 2.10.8 作为编辑器。我尝试使用 biblatex/Biber

我已经用 MiKTeX 的包管理器安装了 Biber,并且配置TexStudio使用 Biber。

这是我的 LateX 文件中有关 Biber 的重要部分:

\usepackage[style=authoryear, backend=biber]{biblatex}
\addbibresource{referenzen.bib}

因此,在编译 TexStudio 时会显示此错误:

INFO - This is Biber 2.3
INFO - Logfile is '<mylatexfile>.blg'
INFO - Reading '<mylatexfile>.bcf'
WARN - Warning: Found biblatex control file version 2.6, expected version 2.9
INFO - Found 1 citekeys in bib section 0
INFO - Processing section 0
INFO - Looking for bibtex format file 'referenzen.bib' for section 0
INFO - Decoding LaTeX character macros into UTF-8
INFO - Found BibTeX data source 'referenzen.bib'
INFO - Overriding locale '' defaults 'normalization = NFD' with 'normalization = prenormalized'
INFO - Overriding locale '' defaults 'variable = shifted' with 'variable = non-ignorable'
INFO - Sorting list 'nyt' of type 'entry' with scheme 'nyt' and locale ''
INFO - No sort tailoring available for locale ''

\AppData\Local\Temp\par-<num>\cache-19a661c7206c3f371c207b98ac69231301395587\inc\lib/Biber/SortLists.pm line 77.

Use of uninitialized value $pre in regexp compilation at D:\Users\<username>\AppData\Local\Temp\par-<num>\cache-19a661c7206c3f371c207b98ac69231301395587\inc\lib/Biber/Internals.pm line 1000. Use of uninitialized value $thislocale in concatenation (.) or string at D:\Users\<username>\AppData\Local\Temp\par-<num>\cache-19a661c7206c3f371c207b98ac69231301395587\inc\lib/Biber.pm line 2856. Use of uninitialized value $thislocale in concatenation (.) or string at D:\Users\<username>\AppData\Local\Temp\par-<num>\cache-19a661c7206c3f371c207b98ac69231301395587\inc\lib/Biber.pm line 2943. Use of uninitialized value $thislocale in concatenation (.) or string at D:\Users\<username>\AppData\Local\Temp\par-<num>\cache-19a661c7206c3f371c207b98ac69231301395587\inc\lib/Biber.pm line 2948. Use of uninitialized value $lname in concatenation (.) or string at D:\Users\<username>\AppData\Local\Temp\par-<num>\cache-19a661c7206c3f371c207b98ac69231301395587\inc\lib/Biber.pm line 1979. Use of uninitialized value $lssn in concatenation (.) or string at D:\Users\<username>\AppData\Local\Temp\par-<num>\cache-19a661c7206c3f371c207b98ac69231301395587\inc\lib/Biber.pm line 1979. Use of uninitialized value $lssn in concatenation (.) or string at D:\Users\<username>\AppData\Local\Temp\par-<num>\cache-19a661c7206c3f371c207b98ac69231301395587\inc\lib/Biber.pm line 1993. Use of uninitialized value $lssn in concatenation (.) or string at D:\Users\<username>\AppData\Local\Temp\par-<num>\cache-19a661c7206c3f371c207b98ac69231301395587\inc\lib/Biber.pm line 2008. Can't use an undefined value as an ARRAY reference at D:\Users\<username>\AppData\Local\Temp\par-<num>\cache-19a661c7206c3f371c207b98ac69231301395587\inc\lib/Biber/Internals.pm line 990.

我注意到有关 biblatex 控制文件的警告,因此我在包管理器 MiKTeX 中查看了 biblatex 的版本: Biblatex 版本 2.9a

令人惊讶的是,它被称为 v2.9 而不是 2.6。因此,为了验证这个版本错误,我查看了我的.bcf文件,它确实被标记为 v2.6:

<?xml version="1.0" encoding="UTF-8"?>
<bcf:controlfile version="2.6" xmlns:bcf="https://sourceforge.net/projects/biblatex">
  <!-- BIBER OPTIONS -->
[...]

那么为什么会有这个版本差异?我该如何才能让它正确编译?

答案1

好的,问题出在 biblatex 版本过时。根据比伯文档您需要 Biblatex v3.2 才能与 Biber v2.3 配合使用。除非您没有这些版本,否则它将无法工作。

Biblatex v3.2 创建一个.bcf版本号为 2.9 的文件:

<?xml version="1.0" encoding="UTF-8"?>
<bcf:controlfile version="2.9" xmlns:bcf="https://sourceforge.net/projects/biblatex">

基本上,我只需重新安装 MiKTeX 即可解决问题。您也可以使用包管理器安装最新的包,但就我而言,这只会带来更多问题。

答案2

我在 Windows 10 上安装了 MikTeX 2.9。所有软件包都已更新(在管理员模式和用户模式下)。当我尝试使用 Biber 时,我收到一条错误消息:

INFO - This is Biber 2.7
INFO - Logfile is 'main.blg'
INFO - Reading 'main.bcf'
ERROR - Error: Found biblatex control file version 2.9, expected version 3.3.
        This means that your biber (2.7) and biblatex () versions are incompatible.
        See compat matrix in biblatex or biber PDF documentation.
INFO - ERRORS: 1

在包管理器中显示以下版本:

  • 适用于 miktex-biber-bin-x64 的 2.7
  • biblatex 版本为 3.7

重新安装这些软件包并不能解决问题。

我使用以下命令检查了系统中使用了哪个 biblatex 文件(打开 cmd 窗口并输入此命令)

kpsewhich biblatex.sty

输出为:

C:/Users/xxx/AppData/Roaming/MiKTeX/2.9/tex/latex/biblatex/biblatex.sty

文件夹C:/Users/xxx/AppData/Roaming/MiKTeX/2.9/主要用于安装“动态”安装的软件包。

我搜索了系统中是否还有其他文件biblatex.sty,结果发现第二份副本存储在 MikTeX 安装文件夹中:

c:\Program Files\MiKTeX 2.9\tex\latex\biblatex\

我不确定这意味着什么。是不是我的 MikTeX 安装已损坏,或者我安装了两次 biblatex,或者这一切的原因是什么。

我做了一个简单的测试。我将文件夹C:/Users/xxx/AppData/Roaming/MiKTeX/2.9/tex/latex/biblatex/名称更改为C:/Users/xxx/AppData/Roaming/MiKTeX/2.9/tex/latex/biblatex_old/

并将整个文件夹从c:\Program Files\MiKTeX 2.9\tex\latex\biblatex\复制到C:/Users/xxx/AppData/Roaming/MiKTeX/2.9/tex/latex/biblatex/

接下来我清除了我的 tex 项目文件夹中所有生成的文件(这很重要),即删除 *.aux、删除 *.bcf、... 等等,然后使用 pdflatex、接下来是 biber、接下来是 pdflatex 重新编译了该项目

有用!

答案3

  1. 其中 Win10、WinEdt10.2、(MiKTeX 2.9.6500 64 位)、版本 3.14159265-2.6-1.40.18、biber 2.9、biblatex 3.9;
  2. biber 和 biblatex 版本评级:2.9 3.9; 2.8 3.8; 2.7 3.7; см。参考 YouDisck:..\biblatex\3.10\biblatex\doc\biblatex.pdf,第 6 页;
  3. 从 C:\MiKTeX\miktex\bin\x64\biber.exe (v.2.7) 中下载 biber.exe v.2.9 (biber-MSWIN64.zip) 并将其重命名为 biber.exe v.2.7,然后将其重命名为 biber.exe v.2.9。(biber.exe v.2.7 已替换为 =biber.exe v.2.7 的版本)。
  4. 在 MiKTeX 包管理器中,biblatex (name-->filter) 和 3.9 版都可用。我下载并安装位于 C:\localtexmf\tex\latex C:\Users\YouName\AppData\Roaming\MiKTeX\2.9\tex\latex 中的版本。
  5. 由 MiKTeX 选项刷新 FNDB。
  6. 行业新闻一切都好了!

用英语讲:

  1. 我有 Win10、WinEdt10.2、(MiKTeX 2.9.6500 64 位)、版本 3.14159265-2.6-1.40.18、biber 2.9、biblatex 3.9;
  2. biber 和 biblatex 兼容版本:2.9 3.9;2.8 3.8;2.7 3.7;请参阅 YouDisck 中的说明:..\ biblatex\3.10\ biblatex\ doc\ biblatex.pdf,第 6 页;
  3. 下载 biber.exe v.2.9 (biber-MSWIN64.zip) 并用新的 biber.exe v .2.9 替换 C:\MiKTeX\miktex\bin\x64\biber.exe (v.2.7) 中的 biber.exe v.2.7。(biber.exe v.2.7 重命名为 = biber.exe v.2.7 以供存档)。
  4. 在 MiKTeX 包管理器中,我找到了 biblatex(名称 -> 过滤器),并将其更新到 3.9 版本。您可以在 C:\localtexmf\tex\ latex 和 C:\Users\YouName\AppData\Roaming\MiKTeX\2.9\tex\latex 中手动下载并安装。
  5. 更新了 MiKTeX 选项刷新 FNDB。
  6. 测试任何程序。一切正常!

相关内容