# How to use Biber with BibLaTeX from the command line

After receiving the suggestion to switch to using Biber in another question, 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}

\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:

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.
• 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?

• The Hanover sever is up to date according to the MikTeX page. Try the graphical interface for updating. Please see How should one maintain and update a MiKTeX installation? and Which one to choose? Update (Admin) or Update, Settings (Admin) or Settings?. Sep 20, 2015 at 6:24
• @O.R.Mapper After a new install the packages included in the installation will be the up-to-date versions at the time of packing the installer. That is why the MikTeX download page says "When you have installed MiKTeX, it is recommended that you run the update wizard in order to get the latest updates." Sep 21, 2015 at 6:32
• @moewe: I see. I misinterpreted "basic TeX/LaTeX system (...) has the ability to install needed packages automatically (on-the-fly)" from the MikTeX downloads page as meaning "no packages are included, as whichever package is needed will be installed on-the-fly". Sep 21, 2015 at 7:38
• @O.R.Mapper Some are included, I don't know which and I don't know about a list of some sort that holds those packages automatically installed. You should also make sure not to install any packages (or auxiliary programmes such as Biber) manually (as opposed to via the on-the-fly system of the Package Manager) unless you absolutely have to. Sep 21, 2015 at 10:00
• ... In short, rest assured that I will also upvote your answer as soon as it helps me solve this particular problem again, just as I do whenever something already posted to an SE site helps me. Sep 18, 2016 at 6:21

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.

Biber uses a cache file, to be found in C:\Users\YourName\AppData\Local\Temp\par-4265726e617264\ (the numbers may be different), and for some reason, this cache gets corrupted.