Printbibliography Sorting

When it comes to bibliography management packages, there are three main options in LaTeX: bibtex, natbib and biblatex. Biblatex is a modern program to process bibliography information, provides an easier and more flexible interface and a better language localization that the other two options. This article explains how to use biblatex to manage and format the bibliography in a LaTeX document.

[edit]Introduction

A minimal working example of the biblatex package is shown below:

\documentclass{article}\usepackage[utf8]{inputenc}\usepackage[english]{babel}   \usepackage{biblatex}\addbibresource{sample.bib}   \begin{document} Let's cite! The Einstein's journal paper \cite{einstein} and the Dirac's book \cite{dirac} are physics related items.   \printbibliography   \end{document}

There are four bibliography-related commands in this example:

Imports the package biblatex.
Imports the bibtex data file sample.bib, this file is the one that includes information about each referenced book, article, etc. See the bibliography file section for more information.
This command inserts a reference within the document, [1] in this case, that corresponds to an element in the bibliography, "einstein" is a keyword corresponding to an entry in sample.bib.
Prints the list of cited references, the default title is "References" for the article document class and "Bibliography" for books and reports.

ShareLaTeX provides several templates with pre-defined styles to manage bibliography. See this link

  Open an example of the biblatex package in ShareLaTeX

[edit]Basic usage

Several parameters can be passed to the package importing statement, let's see

\documentclass{article}\usepackage[utf8]{inputenc}\usepackage[english]{babel}   \usepackage{comment}   \usepackage[ backend=biber, style=alphabetic, sorting=ynt ]{biblatex}\addbibresource{sample.bib}   \title{Bibliography management: \texttt{biblatex} package}\author{Share\LaTeX}\date{}   \begin{document}   \maketitle   Using \texttt{biblatex} you can display bibliography divided into sections, depending of citation type. Let's cite! The Einstein's journal paper \cite{einstein} and the Dirac's book \cite{dirac} are physics related items. Next, \textit{The \LaTeX\ Companion} book \cite{latexcompanion}, the Donald Knuth's website \cite{knuthwebsite}, \textit{The Comprehensive Tex Archive Network} (CTAN) \cite{ctan} are \LaTeX\ related items; but the others Donald Knuth's items \cite{knuth-fa,knuth-acp} are dedicated to programming.   \medskip   \printbibliography

Some extra options, inside brackets and comma-separated, are added when importing biblatex:

Sets the backend to sort the bibliography, is the default one and recommended since it provides full localization for several commands and the styles for biber are easier to modify because they use standard LaTeX macros. The other supported backend is , which is a more traditional program; if set as backend will only used to sort the bibliography, so no bibtex styles can be used here.
Defines the bibliography style and the citation style, in this case . Depending on the style more citation commands might be available. See bibliography styles and citation styles for more information.
Determines the criteria to sort the bibliographic sources. In this case they are sorted by year, name and title. See the reference guide for a list of sorting options.

The rest of the commands were already explained at the introduction.

  Open an example of the biblatex package in ShareLaTeX

[edit]The bibliography file

The bibliography files must have the standard bibtex syntax

This file contains records in a special format, for instance, the first bibliographic reference is defined by:

This is the first line of a record entry, tells BibTeX that the information stored here is about an article. The information about this entry is enclosed within braces. Besides the entry types shown in the example (, , and ) there are a lot more, see the reference guide.
The label is assigned to this entry, is an identifier that can be used to refer this article within the document.
This is the first field in the bibliography entry, indicates that the author of this article is Albert Einstein. Several comma-separated fields can be added using the same syntax , for instance: title, pages, year, URL, etc. See the reference guide for a list of possible fields.

The information in this file can later be printed and referenced within a LaTeX document, as shown in the previous sections, with the command . Not all the information in the .bib file will be displayed, it depends on the bibliography style set in the document.

  Open an example of the biblatex package in ShareLaTeX

[edit]Customizing the bibliography

Biblatex allows high customization of the bibliography section with little effort. It was mentioned that several citation styles and bibliography styles are available, and you can also create new ones. Another customization option is to change the default title of the bibliography section.

\documentclass{article}\usepackage[utf8]{inputenc}\usepackage[english]{babel}   \usepackage{comment}   \usepackage[ backend=biber, style=alphabetic, sorting=ynt ]{biblatex}\addbibresource{sample.bib}   \title{Bibliography management: \texttt{biblatex} package}\author{Share\LaTeX}\date{}   \begin{document}   \maketitle   Using \texttt{biblatex} you can display bibliography divided into sections, depending of citation type. Let's cite! The Einstein's journal paper \cite{einstein} and the Dirac's book \cite{dirac} are physics related items. Next, \textit{The \LaTeX\ Companion} book \cite{latexcompanion}, the Donald Knuth's website \cite{knuthwebsite}, \textit{The Comprehensive Tex Archive Network} (CTAN) \cite{ctan} are \LaTeX\ related items; but the others Donald Knuth's items \cite{knuth-fa,knuth-acp} are dedicated to programming.   \medskip   \printbibliography[title={Whole bibliography}]

The additional parameter passed inside brackets to the command is the one that changes the title.

The bibliography can also be subdivided into sections based on different filters, for instance: print only references from the same author, the same journal or similar title. Below an example.

\printbibliography[type=article,title={Articles only}]\printbibliography[type=book,title={Books only}]   \printbibliography[keyword={physics},title={Physics-related only}]\printbibliography[keyword={latex},title={\LaTeX-related only}]

Here, the bibliography is divided in 4 sections. The syntax of the commands used here is explained below:

Only prints entries whose type is "article", and sets the title "Articles only" for this section. The same syntax works for any other entry type.
Filters bibliography entries that include the word "physics" in any of the fields. Sets the title "Physics-related only" for said section.

  Open an example of the biblatex package in ShareLaTeX

[edit]Adding the bibliography in the table of contents

For the bibliography the be printed in the table of contents an extra option must be passed to

\printbibliography[ heading=bibintoc, title={Whole bibliography} ]   \printbibliography[heading=subbibintoc,type=article,title={Articles only}]

A section and a subsection are added to the table of contents:

  • In the first case, adding adds the title to the table of contents as an unnumbered chapter if possible or as an unnumbered section otherwise.
  • The second case is that adds the title as a second level entry in the table of contents, in this example as a subsection nested in "Whole bibliography".

  Open an example of the biblatex package in ShareLaTeX

[edit]Reference guide

Supported entry types

article book mvbook
inbook bookinbook suppbook
booklet collection mvcollection
incollection suppcollection manual
misc online patent
periodical suppperiodical proceedings
mvproceedings inproceedings reference
mvreference inreference report
set thesis unpublished
custom conference electronic
masterthesis phdthesis techreport

Supported entry fields (The printed information depends on the bibliography style)

abstract afterword annotation annotator
author authortype bookauthor bookpagination
booksubtitle booktitle chapter commentator
date doi edition editor
editortype eid entrysubtype eprint
eprinttype eprintclass eventdate eventtitle
file foreword holder howpublished
indextitle institution introduction isan
isbn ismn isrn issue
issuesubtitle issuetitle iswc journalsubtitle
journaltitle label language library
location mainsubtitle maintitle month
note number organization origdate
origlanguage origlocation origpublisher origtitle
pages pagetotal pagination part
publisher pubstate reprinttitle series
shortauthor shortedition shorthand shorthandintro
shortjournal shortseries shorttitle subtitle
title translator type url
venue version volume year

Bibliography sorting options

option description
sort by name, title, year
sort by name, year, title
sort by name, year, volume, title
sort by alphabetic label, name, year, title
sort by alphabetic label, name, year, volume, title
sort by year (descending), name, title
entries are processed in citation order

[edit]Further reading

For more information see

@article{einstein, author = "Albert Einstein", title = "{Zur Elektrodynamik bewegter K{\"o}rper}. ({German}) [{On} the electrodynamics of moving bodies]", journal = "Annalen der Physik", volume = "322", number = "10", pages = "891--921", year = "1905", DOI = "http://dx.doi.org/10.1002/andp.19053221004", keywords = "physics" }   @book{dirac, title={The Principles of Quantum Mechanics}, author={Paul Adrien Maurice Dirac}, isbn={9780198520115}, series={International series of monographs on physics}, year={1981}, publisher={Clarendon Press}, keywords = {physics} }   @online{knuthwebsite, author = "Donald Knuth", title = "Knuth: Computers and Typesetting", url = "http://www-cs-faculty.stanford.edu/~uno/abcde.html", keywords = "latex,knuth" }   @inbook{knuth-fa, author = "Donald E. Knuth", title = "Fundamental Algorithms", publisher = "Addison-Wesley", year = "1973", chapter = "1.2", keywords = "knuth,programming" } ...

To see our video based on this blog post click here.

For years LaTeX users have been using BibTeX along with multiple additional packages such as natbib to write bibliographies. However now there’s a new option, biblatex. It’s designed to give you many more options to easily configure your bibliographies/citations. Conveniently existing ‘.bib’ files are unlikely to need much altering to work with biblatex.

Unfortunately there isn’t much useful information available online other than the extensive documentation which you can access here. But in case you don’t fancy trawling through all of its 253 pages, here are a few things to get you started.

Basic Commands and Styles

Firstly the commands you use in the tex file to add a bibliography into the document are quite different. In the pre-amble you need to use the following code:

The first command just loads up the biblatex package. The second is used to specify which bib files you want to use. You simply enter the file name in the curly brackets including the ‘.bib’ extension. Then in the body of the document instead of using a command to construct the bibliography, you use the command. When using BibTeX you specify the bibliography style by using the command. In biblatex we no longer use this command, instead we specify style options by passing more arguments into the command. To do this we enter ‘style=’ followed by a style name into square brackets immediately before the curly brackets. For example:

Alternatively if you want to declare one style for the citations and a different style for the bibliography, you use the words ‘citestyle’ and ‘bibstyle’. Here’s an example:

Before moving on I will quickly show you what some of these styles look like for both the citations and the actual bibliography entry. However you can see pages 61-65 of the documentation for a full list of styles.

The numeric style:

The alphabetic style:

The reading style:

The authoryear style:

Another argument you can give the command is the sorting option. For example:

This would use the author-year style and then sort the bibliography entries by year, name, title. Here’s a list of some of the different sorting options available:

nty - Sorts entries by name, title, year.

nyt - Sorts entries by name, year, title.

nyvt - Sorts entries by name, year, volume, title.

anyt - Sorts entries by alphabetic label, name, year, title.

anyvt - Sorts entries by alphabetic label, name, year, volume, title.

ynt - Sorts entries by year, name, title.

ydnt - Sorts entries by year (descending order), name, title.

none - No sorting. Entries appear in the order they appear in the text.

If you don’t specify an order the default is nty.

Citation Commands

The citation commands have also been overhauled in biblatex. These more intelligent commands give you the option of adding a ‘prenote’ and ‘postnote’ in as arguments. A ‘prenote’ is a word or phrase like ‘see’ that is inserted at the start of the citation. A ‘postnote’ is text you want inserted at the end of the citation. To add these notes in you uses two sets of square brackets in the citation command. Here’s an example:

In this example we’ve already loaded the alphabetic style and ‘latexcompanion’ is just the citation key. This is what the citation would look like in the text:

If you only open one set of square brackets it will assume the contents of the brackets is a postnote, so if you only want a prenote make sure you still open the second set of square brackets and then just leave it empty.

There are also a number of different citation commands available for you to use. Here are some of the standard ones:

- the most basic one. Prints without any brackets except when using the alphabetic or numeric style when it uses square brackets.

- prints citations in parentheses except when using the alphabetic or numeric style when it uses square brackets.

- puts the citation in a footnote.

Subdividing Bibliographies

One of the nice things about biblatex is that you can subdivide bibliographies according to source type. Here’s an example of subdividing by source type:

In this example we are subdividing the bibliography into two sections, one for sources that are books and one for sources that aren’t. Here’s an example output:

Another way you can subdivide bibliographies is using a keyword filter. To do this you need to add a ‘keywords’ field into the entries in your bib file. E.g.

Here’s an example of how you’d then subdivide by keyword:

And the corresponding output:

It looks like one day soon BibTeX will be nothing but a piece of LaTeX history! I hope this has been helpful in getting you started with biblatex.

Posted by Josh Cassidy on 31 Jul 2013

0 thoughts on “Printbibliography Sorting”

    -->

Leave a Comment

Your email address will not be published. Required fields are marked *