如何从命令行使用 Biber 和 BibLaTeX

如何从命令行使用 Biber 和 BibLaTeX

在收到建议切换到使用 Biber 后另一个问题,我现在正在尝试。不幸的是,我似乎总是会收到这样的信息

LaTeX Warning: Citation 'History' on page 1 undefined on input line 11.

LaTeX Warning: Empty bibliography on input line 14.

然后再加几行:

LaTeX Warning: There were undefined references.

Package biblatex Warning: Please (re)run Biber on the file:
(biblatex)                test
(biblatex)                and rerun LaTeX afterwards.

(显然,我一开始就遵循了这个建议,但与 BibTeX 不同,通常两次左右的重新运行就足够了,我已经完成了循环的最后两行

pdflatex test.tex
biber test
pdflatex test.tex

六次现在已经连续出现上述消息。

.blg文件仅包含一个警告(我不知道如何影响,因为我正在处理新安装的未修改的MikTeX2.9.5736 x64):

[0] Config.pm:324> INFO - This is Biber 2.1
[1] Config.pm:327> INFO - Logfile is 'test.blg'
[136] biber-MSWIN:273> INFO - === %a %b %e, %Y, %H:%M:%S
[137] Biber.pm:333> INFO - Reading 'test.bcf'
[779] Utils.pm:146> WARN - Warning: Found biblatex control file version 2.6, expected version 2.7
[780] Biber.pm:642> INFO - Using all citekeys in bib section 0
[832] Biber.pm:2977> INFO - Processing section 0
[894] Biber.pm:3115> INFO - Looking for bibtex format file 'test.bib' for section 0
[912] bibtex.pm:1021> INFO - Decoding LaTeX character macros into UTF-8
[921] bibtex.pm:895> INFO - Found BibTeX data source 'test.bib'
[1028] UCollate.pm:66> INFO - Overriding locale '' defaults 'variable = shifted' with 'variable = non-ignorable'
[1028] UCollate.pm:66> INFO - Overriding locale '' defaults 'normalization = NFD' with 'normalization = prenormalized'
[1029] Biber.pm:2854> INFO - Sorting list 'anyt' of type 'entry' with scheme 'anyt' and locale ''
[1030] Biber.pm:2858> INFO - No sort tailoring available for locale ''
[1030] Biber.pm:2858> INFO - No sort tailoring available for locale ''

由于其他消息都只是信息消息,没有警告,也没有错误,所以我推测这里一切顺利。


最小工作示例:

这是文件test.tex

\documentclass{article}

\usepackage[
  backend=biber,
  style=alphabetic
]{biblatex}
\addbibresource{test.bib}

\begin{document}

abc~\cite{History}

\nocite{*}
\printbibliography

\end{document}

这是文件test.bib

@ARTICLE{History,
  author = {Aaron Aman and Betty Beertent},
  title = {A new history of things},
  journal = {Stuff},
  year = {2014},
  volume = {29},
  pages = {3--36},
  timestamp = {2015.09.20}
}

@INPROCEEDINGS{Happy,
  author = {Charles C. Cooper and Dora D. Davis and Evgeny Eroshkin},
  title = {We are a happy team of researchers},
  booktitle = {Declarations of Confidence},
  year = {2009},
  timestamp = {2015.09.20}
}

生成的 PDF 文件仅包含一页,内容如下:

abc [历史]


我发现各种资源都暗示像我以前使用 BibTeX 那样重新运行就足够了,例如:


如何让 Biber 作为 BibLaTeX 的后端工作?

答案1

您的问题在文件中的这一行中被指出.blg

[779] Utils.pm:146> WARN - Warning: Found biblatex control file version 2.6,
      expected version 2.7 you have biblatex, version, but you need version 2.7. 

Biberbiblatex相互依赖。这意味着特殊Biber版本需要特殊版本才能运行。如果只有和biblatex的一部分更新,而不是两者同时更新,则会出现此消息。biberbiblatex

这就是我问你的原因:你只安装了 MikTeX 吗?请运行 MiKTeX 包管理器并安装所有可更新的包。

新安装的 MiKTeX 基于安装程序的数据库。安装程序无法识别 MiKTeX 软件包的后续更改。这就是安装新版 MiKTeX 的最佳方式:

  1. 运行 MiKTeX 安装程序(我个人更喜欢完整的网络安装程序,但这当然是你的选择),
  2. 安装完成后重新启动(Windows:当然可以)
  3. 运行 MikteX 包管理器来检查新包(因为安装程序已构建)并安装它们。之后我会再次重新启动。

答案2

也许您的问题如下(我刚刚在您的文件中遇到了这个问题):

Biber 使用缓存文件,可以在其中找到C:\Users\YourName\AppData\Local\Temp\par-4265726e617264\(数字可能不同),但由于某种原因,该缓存被损坏。

解决方案是删除此目录。Biber 将在下次运行时创建一个全新的缓存。

相关内容