sjkblog

Moving from BibTeX to BibLaTeX

Posted on 22 Nov 2012.

I have been using BibTeX along with the apacite package to generate APA style references for quite some time, and it has worked well. Creating and modifying BibTeX styles has proved to be rather tedious, however. Therefore, I finally made the plunge; I am now using BibLaTeX.

According to its documentation, BibLaTeX is a 'complete reimplementation of the bibliographic facilities provided by LaTeX'. It also states that the user isn't required to know the quirky BibTeX postfix stack language; good working knowledge in LaTeX is enough.

Making the change was actually quite easy. To use BibLaTeX with Swedish APA style references, I removed all BibTeX references from my preamble and added the following:

% The csquotes package provides 'advaced facilities for inline and display
% quotations' and is required by biblatex-apa. See
% http://www.ctan.org/pkg/csquotes for more information.
\usepackage{csquotes}
\usepackage[sorting=nyt,style=apa,backend=biber]{biblatex}

% For Swedish localisation.
\DeclareLanguageMapping{swedish}{swedish-apa}

\addbibresource{biblio.bib}

Then I added the following where I want the reference list to be:

\printbibliography

Note The biblatex-apa package comes with localisation files for a range of languages, however Swedish is not one of them. I have created my own, and I will submit it to the package maintaner as soon as it's gone through enough testing.

I had to change some of my bibliography entries in order to get things working with BibLaTeX. For example, BibLaTeX expects 'journaltitle' where the BibTeX user would use 'journal'. With BibTeX, I used the 'howpublished' field to denote what database I had retrieved an article from, but in BibLaTeX one would use the 'note' field.

It was easy to fix my bibliography. Using search and replace in vim, I replaced all 'journal' entries with 'journaltitle' entries...

:%s/journal=/journaltitle=/g

... and all 'howpublished' entries with 'note' entries. I wanted vim to ask for confirmation first, though:

:%s/howpublished=/note=/gc

BibLaTeX uses biber for managing the actual bibliography, so I had to update my LaTeX projects' Makefiles:

:%s/bibtex/biber/g

So far so good! I like BibLaTeX, I like its backend, biber, and I very much like the fact that the biblatex-apa package has got an active maintainer. Url entries in my bibliography are handled much better now. The only downside I can think of right now is that when clicking the 'cite' buttons that are available on various online journals, one will typically be offered automatically generated BibTeX entries, and not BibLaTeX entries; at least not yet. But it's not a big problem, since it usually works fine as long as you replace 'journal' with 'journaltitle.'

blog comments powered by Disqus