[Tex/LaTex] How to emulate the traditional BibTeX styles (plain, abbrv, unsrt, alpha) as closely as possible with biblatex

biblatexbibtex

This question led to a new package:
biblatex-trad

I'd like to use biblatex while at the same time maintaining the bibliography format of the traditional BibTeX styles (plain, abbrv, unsrt, alpha). Looking at Guidelines for customizing biblatex styles, some of the necessary tweaks to the styles shipped with biblatex seem rather straightforward, but others (e.g., shifting the location of the pages field for @article entries) are more tricky. What customizations of biblatex are needed to emulate the traditional BibTeX styles as closely as possible?

Here's a compilable example for the plain style displaying the entry types @article, @book, and @incollection. (The [sometimes idiosyncratic] formatting of the BibTeX database is modelled after xampl.bib which is part of most TeX distributions.)

\documentclass{article}

\newif\ifbiblatex

% \biblatextrue

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@article{A+01,
  author = {Author, Aa and Buthor, Bb and Cuthor, Cc and Duthor, Dd},
  title = {Title},
  journal = {Journal title},
  year = {2001},
  volume = {1},
  number = {2},
  pages = {101--109},
  month = jan,
  note = {This is an article entry},
}
@book{A+02,
  author = {Author, Aa and Buthor, Bb and Cuthor, Cc and Duthor, Dd},
  title = {Title},
  volume ={1},
  series = {Series},
  publisher = {Publisher},
  address = {Location},
  edition = {First},
  month = "1~" # jan,
  year = {2002},
  note = {This is a book entry}
}
@incollection{A+03,
  author = {Author, Aa and Buthor, Bb and Cuthor, Cc and Duthor, Dd},
  title = {Title},
  editor = {Zuthor, Zz and Yuthor, Yy and Xuthor, Xx and Wuthor, Ww},
  booktitle = {Book title},
  number = {1},
  series = {Series},
  chapter = {2},
  type = {Part},
  pages = {101--109},
  publisher = {Publisher},
  address = {Location},
  edition ={First},
  month = jan,
  year = {2003},
  note = {This is an incollection entry},
}
\end{filecontents}

\ifbiblatex
  \usepackage[style=numeric]{biblatex}
  \addbibresource{\jobname.bib}
\fi

\begin{document}

\nocite{*}

\ifbiblatex
  \printbibliography
\else
  \bibliographystyle{plain}
  \bibliography{\jobname}
\fi

\end{document}

enter image description here

Output if one uncomments \biblatextrue:

enter image description here

Best Answer


I don't deprecate any testing ;-) -- all standard styles are available as biblatex styles here: trad-biblatex GitHub


The following remarks requires biblatex 2.0 or newer!

The aim is to setup standard bibliography styles which allow all modifications provided by BibLaTeX. In the first step the implementation of the entry types @BOOK, @ARTICLE and @INCOLLECTION are on focus. The implemented styles are marked by a green check mark ;-)

Preface

The traditional BibTeX styles are providing the following fields and entry types.

Entry types:

article  book  booklet  inbook  incollection 
inproceedings conference manual mastersthesis 
misc phdthesis proceedings techreport unpublished

fields:

address   author    booktitle    chapter    edition
editor    howpublished    institution    journal
key    month    note    number    organization
pages    publisher    school    series    title
type    volume    year

All traditional fields and entry types are provided by BibLaTeX too. However BibLaTeX offers more entry types and fields. So I recommend by using BibLaTeX to change the bib entries related to BibLaTeX.

Modifications

The basic order and settings for all standard styles are equal. So I am providing a file trad-standard.bbx which yields the standard settings. The extra settings are done in the required bbx files.

First I collect some details of the style:

  • the sorting is chronological by AUTHOR then title then YEAR
  • Names are printed as: Firstname (no initials) Surname
  • all names are printed; et~al. is set as a replacement of and others in the field
  • the field title is printed with emphasis for the entry types:

    book  inbook  manual  phdthesis  proceedings
    
  • the field title is printed as normal for the entry types:

    article  booklet  conference incollection  inproceedings
    mastersthesis  misc  techreport  unpublished
    
  • all other fields are printed as \normalfont

  • the journal title isn't introduced by a string in, excluding @incollection
  • ordering of entries can be seen in the examples

Style plain Check Mark Green

  • all entries are numbered

Style unsrt Check Mark Green

  • equal to the style plain
  • sorting scheme is none.

Style alpha Check Mark Green

NOTE: requires biber

  • standard with a label

Style abbrv Check Mark Green

  • equal to plain
  • usage of abbreviation

Usage

This current development branch can be found at github: biblatex-trad GitHub

All traditional bibliography styles can be loaded via options by the package biblatex:

\usepackage[style=trad-plain]{biblatex}

This method allows the using of all options provided by biblatex. Available styles will be (not yet):

  • trad-plain which emulated plain
  • trad-unsrt which emulated unsrt
  • trad-alpha which emulated alpha
  • trad-abbrv which emulated abbrv

I hope I didn't forget any traditional style

Some technical hints will be collected in the documentation.

Documentation Check Mark Gray

A small documentation is available at biblatex-trad GitHub

Results:

trd-plain

enter image description here

References

  1. BiBTeXing -- btxdoc.pdf
  2. biblatex-manual
  3. Testfiles ;-)

Based on the example given by lockstep here the required result:

enter image description here

enter image description here

Related Question