Bibliography In Latex In A Single File

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.

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

Basic usage

Several parameters can be passed to the package import command, as in the following example:

\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! 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   \end{document}

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 the backend, bibtex will only be 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 biblatex 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 explained in the introduction.

Open an example of the biblatex package in ShareLaTeX

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 a unique 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

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

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

• 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

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 addendum afterword annotate 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

For detailed information on these entries and options, see the package documentation.

@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", addendum = "(accessed: 01.09.2016)", keywords = "latex,knuth" }   @inbook{knuth-fa, author = "Donald E. Knuth", title = "Fundamental Algorithms", publisher = "Addison-Wesley", year = "1973", chapter = "1.2", keywords = "knuth,programming" } ...

Learn how to create a bibliography with Bibtex and Biblatex in a few simple steps. Create references / citations and autogenerate footnotes.

Tweet

[View example on Overleaf]

1. Creating a .bib file
2. Using BibTeX
3. Autogenerate footnotes with BibLaTeX
4. BibTeX Format
5. BibTeX Styles

We have looked at many features of LaTeX so far and learned that many things are automated by LaTeX. There are functions to add a table of contents, lists of tables and figures and also several packages that allow us to generate a bibliography. I will describe how to use bibtex and biblatex (both external programs) to create the bibliography. At first we have to create a .bib file, which contains our bibliographic information.

Creating a .bib file

A .bib file will contain the bibliographic information of our document. I will only give a simple example, since there are many tools to generate the entries automatically. I will not explain the structure of the file itself at this point, since i suggest using a bibtex generator (choose one from google). Our example will contain a single book and look like this:

@BOOK{DUMMY:1, AUTHOR="John Doe", TITLE="The Book without Title", PUBLISHER="Dummy Publisher", YEAR="2100", }

If you don't want to use a BibTeX generator or a reference management tool like Citavi (which generates BibTeX files automatically for you), you can find more examples of BibTeX formats here.

Using BibTeX

After creating the bibtex file, we have to tell LaTeX where to find our bibliographic database. For BibTeX this is not much different from printing the table of contents. We just need the commands \bibliography which tells LaTeX the location of our .bib file and \bibliographystyle which selects one of various bibliographic styles.

\documentclass{article} \begin{document} Random citation \cite{DUMMY:1} embeddeed in text. \newpage \bibliography{lesson7a1} \bibliographystyle{ieeetr} \end{document}

By using this code, we will obtain something like this:

I named my .bib file lesson7a1.bib, note that I did not enter the .bib extension. For the style, I've choosen the ieeetr style, which is very common for my subject, but there are many more styles available. Which will change the way our references look like. The ieeetr style will mark citations with successive numbers such as [1] in this example. If I choose the style to apalike instead, i will get the following result:

Most editors will let you select, to run bibtex automatically on compilation. In TeXworks (MiKTeX) for example, this should be selected by default.

If you use a different editor, it can be necessary to execute the bibtex command manually. In a command prompt/shell simply run:

pdflatex lesson7a1.tex bibtex lesson7a1 pdflatex lesson7a1.tex pdflatex lesson7a1.tex

It is necessary to execute the pdflatex command, before the bibtex command, to tell bibtex what literature we cited in our paper. Afterwards the .bib file will be translated into the proper output for out references section. The next two steps merge the reference section with our LaTeX document and then assign successive numbers in the last step.

Autogenerate footnotes in $\LaTeX$ using BibLaTeX

The abilities of BibTeX are limited to basic styles as depicted in the examples shown above. Sometimes it is necessary to cite all literature in footnotes and maintaining all of them by hand can be a frustrating task. At this point BibLaTeX kicks in and does the work for us. The syntax varies a bit from the first document. We now have to include the biblatex package and use the \autocite and \printbibliography command. It is crucial to move the \bibliography{lesson7a1} statement to the preamble of our document:

\documentclass{article} \usepackage[backend=bibtex,style=verbose-trad2]{biblatex} \bibliography{lesson7a1} \begin{document} Random citation \autocite[1]{DUMMY:1} embeddeed in text. \newpage \printbibliography \end{document}

The \autocite command generates the footnotes and we can enter a page number in the brackets \autocite[1]{DUMMY:1} will generate a footnote like this:

For BibLaTeX we have to choose the citation style on package inclusion with:

The backend=bibtex part makes sure to use BibTeX instead of Biber as our backend, since Biber fails to work in some editors like TeXworks. It took me a while to figure out how to generate footnotes automatically, because the sources I found on the internet, didn't mention this at all.

BibTeX Formats

This is not meant to be a comprehensive list of BibTeX formats, but rather give you an idea of how to cite various sources properly. If you're interested in an extensive overview of all BibTeX formats, I suggest you to check out the resources on Wikibooks.

Article

@ARTICLE{ARTICLE:1, AUTHOR="John Doe", TITLE="Title", JOURNAL="Journal", YEAR="2017", }

Book

@BOOK{BOOK:1, AUTHOR="John Doe", TITLE="The Book without Title", PUBLISHER="Dummy Publisher", YEAR="2100", }

Inbook (specific pages)

@INBOOK{BOOK:2, AUTHOR="John Doe", TITLE="The Book without Title", PUBLISHER="Dummy Publisher", YEAR="2100", PAGES="100-200", }

Website

@MISC{WEBSITE:1, HOWPUBLISHED = "\url{http://example.com}", AUTHOR = "Intel", TITLE = "Example Website", MONTH = "Dec", YEAR = "1988", NOTE = "Accessed on 2012-11-11" }

This is a list of the formats that I have most commonly used. If you think some important format is missing here, please let me know.

BibTeX Styles

Here's a quick overview of some popular styles to use with BibTeX.

Plain

I'm trying to keep this list updated with other commonly used styles. If you're missing something here, please let me know.

Summary

• Generate a bibliography with BibTeX and BibLaTeX
• First define a .bib file using: \bibliography{BIB_FILE_NAME} (do not add .bib)
• For BibTeX put the \bibliography statement in your document, for BibLaTeX in the preamble
• BibTeX uses the \bibliographystyle command to set the citation style
• BibLaTeX chooses the style as an option like: \usepackage[backend=bibtex, style=verbose-trad2]{biblatex}
• BibTeX uses the \cite command, while BibLaTeX uses the \autocite command
• The \autocite command takes the page number as an option: \autocite[NUM]{}

Next Lesson: Lesson 8