Skip to content

Latex Beamer Bibliography Too Long

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.


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

[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 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

[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 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.

[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 = "", 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 = "", 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" } ...

LaTeX enables typesetting of hyperlinks, useful when the resulting format is PDF, and the hyperlinks can be followed. It does so using the package hyperref.


The package hyperref[1] provides LaTeX the ability to create hyperlinks within the document. It works with pdflatex and also with standard "latex" used with dvips and ghostscript or dvipdfm to build a PDF file. If you load it, you will have the possibility to include interactive external links and all your internal references will be turned to hyperlinks. The compiler pdflatex makes it possible to create PDF files directly from the LaTeX source, and PDF supports more features than DVI. In particular PDF supports hyperlinks. Moreover, PDF can contain other information about a document such as the title, the author, etc., which can be edited using this same package.


The basic usage with the standard settings is straightforward. Just load the package in the preamble:

This will automatically turn all your internal references into hyperlinks. It won't affect the way to write your documents: just keep on using the standard - system (discussed in the chapter on Labels and Cross-referencing); with hyperref those "connections" will become links and you will be able to click on them to be redirected to the right page. Moreover the table of contents, list of figures/tables and index will be made of hyperlinks, too. The hyperlinks will not show up if you are working in draft mode.


The package provides some useful commands for inserting links pointing outside the document.



\hyperref[label_name]{''link text''}

This will have the same effect as but will make the text link text a full link, instead. The two can be combined. If the lemma labelled as mainlemma was number 4.1.1 the following example would result in

We use \hyperref[mainlemma]{lemma \ref*{mainlemma}}.

We use lemma 4.1.1.

with the hyperlink as expected. Note the "*" after for avoiding nested hyperlinks.



It will show the URL using a mono-spaced font and, if you click on it, your browser will be opened pointing at it.




It will show the string description using standard document font but, if you click on it, your browser will be opened pointing at my_url. Here is an example:

\url{}\href{}{Wikibooks home}

Both point at the same page, but in the first case the URL will be shown, while in the second case the URL will be hidden. Note that, if you print your document, the link stored using will not be shown anywhere in the document.

Other possibilities[edit]

Apart from linking to websites discussed above, hyperref can be used to provide mailto links, links to local files, and links to anywhere within the PDF output file.

E-mail address[edit]

A possible way to insert email links is by


It just shows your email address (so people can know it even if the document is printed on paper) but, if the reader clicks on it, (s)he can easily send you an email. Or, to incorporate the url package's formatting and line breaking abilities into the displayed text, use[2]


When using this form, note that the command is fragile and if the hyperlink is inside of a moving argument, it must be preceeded by a command.

Local file[edit]

Files can also be linked using the url or the href commands. You simply have to add the string run: at the beginning of the link string:

\url{run:/path/to/my/file.ext}\href{run:/path/to/my/file.ext}{text displayed}

Following the version with does not always work, but does.

It is possible to use relative paths to link documents near the location of your current document; in order to do so, use the standard Unix-like notation ( is the current directory, is the previous directory, etc.)

Hyperlink and Hypertarget[edit]

It is also possible to create an anchor anywhere in the document (with or without caption) and to link to it. To create an anchor, use:

\hypertarget{label}{target caption}

and to link to it, use:

\hyperlink{label}{link caption}

where the target caption and link caption are the text that is displayed at the target location and link location respectively.

Note also that if you put a hypertarget, when clicking a link to that hypertarget, it may actually direct to the line after the hypertarget, which is not desirable. Therefore if this occurs, you can report the bug and refer to here for a solution.

Viewing in a browser[edit]

You can also get an external URL to the hypertarget by appending #label to the URL for the file, or right clicking one of the hyperlinks to the target and copying the URL, or getting the link from the headings in the sidebar of the PDF, or through a process of deduction from viewing (e.g. subsubsection 11.5.1 would have the label subsubsection.11.5.1). This can be useful e.g. for academic and pedagogical purposes. The URL will then direct to the target if you enable a PDF viewer that is compatible with PDF 1.5 in a browser, such as PDF Viewer for Chrome or Chromium browsers, and No PDF Download for Firefox; and on Android the Xodo app works best with links as it renders them with the correct border as with PDF desktop programs, followed by the Foxit PDF app which renders links highlighted in grey (while in other apps links may also work but without any special rendering, such as the Dropbox PDF viewer app; and yet others do not work with links, e.g Drive PDF viewer, PDF reader and Google PDF viewer). You may need to open the URL to the PDF in a new tab, otherwise it may prompt to download it (i.e. if you are clicking on the URL, don't left click, right click and select to open it in a new tab).


The standard settings should be fine for most users, but if you want to change something, that is also possible. There are several variables and two methods to pass those to the package. Options can be passed as an argument of the package when it is loaded (the standard way packages work), or the command can be used as follows:

\hypersetup{<option1> [, ...]}

you can pass as many options as you want; separate them with a comma. Options have to be in the form:

exactly the same format has to be used if you pass those options to the package while loading it, like this:

\usepackage[<option1, option2>]{hyperref}

Here is a list of the possible variables you can change (for the complete list, see the official documentation). The default values are written in an upright font:

Checkout 3.8 Big list at hyperref-manual at

show or hide the bookmarks bar when displaying the document
allows to use characters of non-Latin based languages in Acrobat’s bookmarks
set the style of the border around a link. The first two parameters (RadiusH, RadiusV) have no effect in most pdf viewers. Width defines the thickness of the border. Dash-Pattern is a series of numbers separated by space and enclosed by box-brackets. It is an optional parameter to specify the length of each line & gap in the dash pattern. For example, {0 0 0.5 [3 3]} is supposed to draw a square box (no rounded corners) of width 0.5 and a dash pattern with a dash of length 3 followed by a gap of length 3. There is no uniformity in whether/how different pdf viewers render the dash pattern.
show or hide Acrobat’s toolbar
show or hide Acrobat’s menu
resize document window to fit document size
fit the width of the page to the window
define the title that gets displayed in the "Document Info" window of Acrobat
the name of the PDF’s author, it works like the one above
subject of the document, it works like the one above
creator of the document, it works like the one above
producer of the document, it works like the one above
list of keywords, separated by commas, example below
define if a new PDF window should get opened when a link leads out of the current document. NB: This option is ignored if the link leads to an http/https address.
activate back references inside bibliography. Must be specified as part of the \usepackage{} statement.
surround the links by color frames () or colors the text of the links (). The color of these links can be configured using the following options (default colors are shown):
hide links (removing color and border)
color of internal links (sections, pages, etc.)
defines which part of an entry in the table of contents is made into a link
color of citation links (bibliography)
color of file links
color of URL links (mail, web)
color of frame around internal links (if )
color of frame around citations
color of frame around URL links

Please note, that explicit RGB specification is only allowed for the border colors (like linkbordercolor etc.), while the others may only assigned to named colors (which you can define your own, see Colors). In order to speed up your customization process, here is a list with the variables with their default value. Copy it in your document and make the changes you want. Next to the variables, there is a short explanations of their meaning:

\hypersetup{ bookmarks=true, % show bookmarks bar? unicode=false, % non-Latin characters in Acrobat’s bookmarks pdftoolbar=true, % show Acrobat’s toolbar? pdfmenubar=true, % show Acrobat’s menu? pdffitwindow=false, % window fit to page when opened pdfstartview={FitH}, % fits the width of the page to the window pdftitle={My title}, % title pdfauthor={Author}, % author pdfsubject={Subject}, % subject of the document pdfcreator={Creator}, % creator of the document pdfproducer={Producer}, % producer of the document pdfkeywords={keyword1, key2, key3}, % list of keywords pdfnewwindow=true, % links in new PDF window colorlinks=false, % false: boxed links; true: colored links linkcolor=red, % color of internal links (change box color with linkbordercolor) citecolor=green, % color of links to bibliography filecolor=magenta, % color of file links urlcolor=cyan % color of external links}

If you don't need such a high customization, here are some smaller but useful examples. When creating PDFs destined for printing, colored links are not a good thing as they end up in gray in the final output, making it difficult to read. You can use color frames, which are not printed:


or make links black:


or use \usepackage{hyperref} \hypersetup{hidelinks}

When you just want to provide information for the Document Info section of the PDF file, as well as enabling back references inside bibliography:

\usepackage[pdfauthor={Author's name},% pdftitle={Document Title},% pagebackref=true,% pdftex]{hyperref}

By default, URLs are printed using mono-spaced fonts. If you don't like it and you want them to be printed with the same style of the rest of the text, you can use this:


Problems with Links and Equations 1[edit]

Messages like the following

! pdfTeX warning (ext4): destination with the same identifier (name{ equation.}) has been already used, duplicate ignored

appear, when you have made something like


The error disappears, if you use instead this form:


Beware that the shown line number is often completely different from the erroneous line.

Possible solution: Place the amsmath package before the hyperref package.

Problems with Links and Equations 2[edit]

Messages like the following

! Runaway argument? {\@firstoffive }\fi ), Some text from your document here (\ref {re\ETC. Latex Error: Paragraph ended before \Hy@setref@link was complete.

appear when you use inside an environment.

Possible solution: Add the following to your preamble:


Note: The same error appears if you use a colon "" as part of a label, i.e. . Replacing that will help.

Problems with Links and Pages[edit]

Messages like the following:

! pdfTeX warning (ext4): destination with the same identifier (name{page.1}) has been already used, duplicate ignored

appear when a counter gets reinitialized, for example by using the command provided by the book document class. It resets the page number counter to 1 prior to the first chapter of the book. But as the preface of the book also has a page number 1 all links to "page 1" would not be unique anymore, hence the notice that "duplicate has been ignored." The counter measure consists of putting into the hyperref options. This unfortunately only helps with the page counter. An even more radical solution is to use the option , but this will cause the page links in the index to stop working.

The best solution is to give each page a unique name by using the command:

\pagenumbering{alph}% a, b, c, ... ... titlepage, other front matter ... \pagenumbering{roman}% i, ii, iii, iv, ... ... table of contents, table of figures, ... \pagenumbering{arabic}% 1, 2, 3, 4, ... ... beginning of the main matter (chapter 1) ...

Another solution is to use before the command , which will give the title page the label page.a. Since the page number is suppressed, it won't make a difference to the output.

By changing the page numbering every time before the counter is reset, each page gets a unique name. In this case, the pages would be numbered a, b, c, i, ii, iii, iv, v, 1, 2, 3, 4, 5, ...

If you don't want the page numbers to be visible (for example, during the front matter part), use . The important point is that although the numbers are not visible, each page will have a unique name.

Another more flexible approach is to set the counter to something negative:

\setcounter{page}{-100} ... titlepage, other front matter ... \pagenumbering{roman}% i, ii, iii, iv, ... ... table of contents, table of figures, ... \pagenumbering{arabic}% 1, 2, 3, 4, ... ... beginning of the main matter (chapter 1) ...

which will give the first pages a unique negative number.

The problem can also occur with the package: because each algorithm uses the same line-numbering scheme, the line identifiers for the second and follow-on algorithms will be duplicates of the first.

The problem occurs with equation identifiers if you use on every line of an eqnarray environment. In this case, use the *'ed form instead, e.g. (which is an unnumbered equation array), and remove the now unnecessary commands.

If your url's are too long and running off of the page, try using the package to split the url over multiple lines. This is especially important in a multicolumn environment where the line width is greatly shortened.

Problems with bookmarks[edit]

The text displayed by bookmarks does not always look like you expect it to look. Because bookmarks are "just text", much fewer characters are available for bookmarks than for normal LaTeX text. Hyperref will normally notice such problems and put up a warning:

Package hyperref Warning: Token not allowed in a PDFDocEncoded string:

You can now work around this problem by providing a text string for the bookmarks, which replaces the offending text:

\texorpdfstring{''TEX text''}{''Bookmark Text''}

Math expressions are a prime candidate for this kind of problem:


which turns to in the bookmark area. Color changes also do not travel well into bookmarks:

\section{\textcolor{red}{Red !}}

produces the string "redRed!". The command gets ignored but its argument (red) gets printed. If you use:

\section{\texorpdfstring{\textcolor{red}{Red !}}{Red\ !}}

the result will be much more legible.

If you write your document in unicode and use the unicode option for the hyperref package you can use unicode characters in bookmarks. This will give you a much larger selection of characters to pick from when using .

Problems with tables and figures[edit]

The links created by hyperref point to the label created within the float environment, which, as previously described, must always be set after the caption. Since the caption is usually below a figure or table, the figure or table itself will not be visible upon clicking the link[4]. A workaround exists by using the package hypcap[2] with:

Be sure to call this package after loading hyperref.

If you use the wrapfig package[5] mentioned in the "Wrapping text around figures" section of the "Floats, Figures and Captions" chapter, or other similar packages that define their own environments, you will need to manually include in those environments, e.g.:

\begin{wrapfigure}{R}{0.5\textwidth}\capstart\begin{center}\includegraphics[width=0.48\textwidth]{filename}\end{center}\caption{\label{labelname}a figure}\end{wrapfigure}

Problems with long caption and \listoffigures or long title[edit]

There is an issue when using with hyperref for long captions or long titles. This happens when the captions (or the titles) are longer than the page width (about 7-9 words depending on your settings). To fix this, you need to use the option breaklinks when first declaring:


This will then cause the links in the to word wrap properly.

Problems with already existing .toc, .lof and similar files[edit]

The format of some of the auxilliary files generated by latex changes when you include the hyperref package. One can therefore encounter errors like

! Argument of \Hy@setref@link has an extra }.

when the document is typeset with hyperref for the first time and these files already exist. The solution to the problem is to delete all the files that latex uses to get references right and typeset again.

Problems with footnotes and special characters[edit]

See the relevant section.

Problems with Beamer[edit]

Using the command

\hyperref[some_label]{some text}

is broken when pointed at a label. Instead of sending the user to the desired label, upon clicking the user will be sent to the first frame. A simple work around exists; instead of using


to label your frames, use


and reference it with

\hyperlink{some_label}{some text}

Problems with draft mode[edit]

WARNING! Please note that if you have activated the "draft"-option in your \documentclass declaration the hyperlinks will not show up in the table of contents, or anywhere else for that matter!!!

The hyperlinks can be re-enabled by using the "final=true" option in the following initialization of the hyperref package, just after the package was included:


A good source of further options for the hyperref package can be found here [6].

Notes and References[edit]