I'm trying out biblatex
for the document I'm compiling, using the biber
backend on my miktex
distribution. Everything, including biber, should be up to date, assuming the MiKTeX repository currently holds the latest versions of everything.
This is what the biblatex documentation (p. 101) says about how often I have to run biber to update my .bbl file:
Whenever a reference to a work which has not been cited before is
added, this procedure must be repeated. This is also the case if the
last reference to a work which has been cited before is removed
because some citation labels may change in this case.
So if I make changes to my document (which is a very common activity in the process of writing a document), but leave the citations unchanged, I should not have to re-run biber before compiling the changes. However, every time I compile my document, regardless of the compiler
or documentclass
, the .bbl
file is emptied. Consequently, the next time I compile the document without running biber, the bibliography is removed (seeing as the .bbl file contains nothing), and all my citations are broken. For this reason, I have to run biber before every time I compile the document, which largely counters the benefit of externalizing the bibliography in the first place.
How can I make the compilers stop overwriting my .bbl file and make everything behave as described in the biblatex manual?
Upon investigating the contents of the auxiliary files, I found that the .bbl file (after running biber, before compiling) begins with the following lines:
% $ biblatex auxiliary file $
% $ biblatex bbl format version 2.3 $
Does the biblatex version 2.8 still mark the .bbl files as version 2.3? If not, could this be the problem? And if so, why does my 2.8 version of biblatex (partly) behave as version 2.3?
Any help solving this problem would be much appreciated.
Best Answer
As pointed out by Bernard in the comments, the problem might be caused by the editor. This was indeed the case.
I'm using TeXnicCenter 2, which has a list of output profiles for different compilers and post-processors. By default, all of these output profiles invoke
bibtex
, and without any content being written tobibtex
(seeing as I'm usingbiblatex
instead),bibtex
writes an empty file to the.bbl
file every time the document is compiled, thus overwriting whateverbiber
has written before.Disabling BibTeX from the output profiles solves this entire problem. To find the window where output profiles can be changed, either press
Alt+F7
or click the menuBuild -> Define Output Profiles...
.TeXnicCenter 1 is likely to have the same issue.