[Tex/LaTex] How to use Biber with BibLaTeX from the command line

biberbiblatex

After receiving the suggestion to switch to using Biber in another quesiton, I am now giving it a try. Unfortunately, I seem to invariably end up with the messages

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

LaTeX Warning: Empty bibliography on input line 14.

and then, a few lines further:

LaTeX Warning: There were undefined references.

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

(Obviously, I have followed that advice at first, but unlike with BibTeX, where two or so reruns would usually suffice, I have gone through the last two lines of the cycle

pdflatex test.tex
biber test
pdflatex test.tex

six times in a row now, and the above message still keeps appearing.

The .blg file contains only one warning (that I do not know how to influence, as I am working on a freshly installed unmodified MikTeX 2.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 ''

As the other messages are all just information messages, no warnings, and no errors, I presume that everything has gone well here.


Minimal working example:

This is the file test.tex:

\documentclass{article}

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

\begin{document}

abc~\cite{History}

\nocite{*}
\printbibliography

\end{document}

This is the file 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}
}

The resulting PDF file contains only one page with the following content:

abc [History ]


I have found various resources that all imply doing the reruns as I used to with BibTeX should be all that is needed, for instance:

  • This forum thread suggests "After running biber, you have to do one ore two pdflatex runs again."
  • This LaTeX SE answer says a simple sequence of LaTeX – Biber – LaTeX should do.
  • So does this answer.
  • This answer even specifically mentions pdflatex in "To compile you should now call pdflatex, biber, pdflatex."

How can I get Biber to work as a backend for BibLaTeX?

Best Answer

Your problem is named in this line in your .blg file:

[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. 

Biber and biblatex depends on each other. That means a special Biber version needs a special biblatex version to run. This message comes up if only one part of biber and biblatex is updated, not both.

That's the reason I asked you: Have you only installed MikTeX? Please run the MiKTeX package manager and install all updateable packages.

A new installed MiKTeX is based of the database for the installer program. Later changes of MiKTeX packages are not known by the installer program. That's the reason the best way to install a new MiKTeX version is:

  1. run the MiKTeX installer (I personaly prefer the complete net installer, but that is your choice, of course),
  2. reboot after finishing installing (Windows: sure is sure)
  3. run MikteX package manager to check for new packages (since the installer was build) and install them. I would reboot again afterwards.
Related Question