Beamer Guide
Beamer Guide
Beamer Guide
10
http://latex-beamer.sourceforge.net
Till Tantau
tantau@users.sourceforge.net
March 10, 2004
Contents
1 Introduction 3
1.1 Getting Started with the Beamer Class and LATEX/pdfLATEX . . . . . . . . . . . . . . . . . . . 4
1.2 Getting Started with the Beamer Class and LYX . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 How to Read this User’s Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3 Workflow 17
3.1 Step Zero: Know the Time Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2 Step One: Setup the Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.3 Step Two: Structure You Presentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.4 Step Three: Creating a PDF or PostScript File . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.4.1 Creating PDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.4.2 Creating PostScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.5 Step Four: Create Frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.5.1 Guidelines on What to Put on a Frame . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.5.2 Guidelines on Titles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.5.3 Guidelines on the Body Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.5.4 Guidelines on Graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.5.5 Guidelines on Colors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.5.6 Guidelines on Animations and Special Effects . . . . . . . . . . . . . . . . . . . . . . . 22
3.5.7 Ways of Improving Compilation Speed . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.6 Step Five: Test Your Presentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.7 Step Six: Optionally Create a Handout or an Article Version . . . . . . . . . . . . . . . . . . 23
1
4.2.2 Components of a Frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.2.3 Restricting the Slides of a Frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.2.4 Verbatim Commands and Listings inside Frames . . . . . . . . . . . . . . . . . . . . . 31
4.3 Creating Overlays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.3.1 The Pause Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.3.2 Commands with Overlay Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.3.3 Environments with Overlay Specifications . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.3.4 Dynamically Changing Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.4 Making Commands and Environments Overlay-Specification-Aware . . . . . . . . . . . . . . . 38
5 Structuring a Presentation 40
5.1 Global Structure of Presentations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.2 Commands for Creating the Global Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.2.1 Adding a Title Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.2.2 Adding Sections and Subsections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.2.3 Adding Parts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.2.4 Splitting a Course Into Lectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.2.5 Adding a Table of Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.2.6 Adding a Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.2.7 Adding an Appendix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.2.8 Adding Hyperlinks and Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.3 Navigation Bars and Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.3.1 Using the Navigation Bars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.3.2 Using the Navigation Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.4 Command for Creating the Local Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.4.1 Itemizations, Enumerations, and Descriptions . . . . . . . . . . . . . . . . . . . . . . . 52
5.4.2 Hilighting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.4.3 Block Environments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.4.4 Theorem Environments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.4.5 Framed Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.4.6 Figures and Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.4.7 Splitting a Frame into Multiple Columns . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.4.8 Positioning Text and Graphics Absolutely . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.4.9 Verse, Quotations, Quotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.4.10 Footnotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2
7.4.3 Including Slides from the Presentation Version in the Article Version . . . . . . . . . . 74
7.5 Details on Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
8 Customization 77
8.1 Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
8.1.1 Serif Fonts and Sans-Serif Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
8.1.2 Fonts in Mathematical Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
8.1.3 Font Families . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
8.1.4 Font Sizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
8.1.5 Font Encodings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
8.2 Margin Sizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
8.3 Themes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
8.4 Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
8.4.1 Introduction to Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
8.4.2 Title Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
8.4.3 Part Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
8.4.4 Frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
8.4.5 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
8.4.6 Table of Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
8.4.7 Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
8.4.8 Frame Titles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
8.4.9 Head Lines and Foot Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
8.4.10 Side Bars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
8.4.11 Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
8.4.12 Navigation Bars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
8.4.13 Navigation Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
8.4.14 Footnotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
8.4.15 Captions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
8.4.16 Lists (Itemizations, Enumerations, Descriptions) . . . . . . . . . . . . . . . . . . . . . 98
8.4.17 Hilighting Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
8.4.18 Block Environments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
8.4.19 Theorem Environments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
8.4.20 Verse, Quotation and Quote Environments . . . . . . . . . . . . . . . . . . . . . . . . 103
8.4.21 Typesetting Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
1 Introduction
This user’s guide explains the functionality of the beamer class. It is a LATEX class that allows you to create
a presentation with a projector. It can also be used to create slides. It behaves similarly to other packages
like prosper, but has the advantage that it works together directly with pdflatex, but also with dvips.
3
1.1 Getting Started with the Beamer Class and LATEX/pdfLATEX
To use the beamer class together with latex or pdflatex, proceed as follows:
1. Specify beamer as document class instead of article.
2. Structure your LATEX text using section and subsection commands.
3. Place the text of the individual slides inside frame commands.
4. Run pdflatex on the text (or latex, dvips, and ps2pdf).
The beamer class has several useful features: You don’t need any external programs to use it other
than pdflatex, but it works also with dvips. You can easily and intuitively create sophisticated overlays.
Finally, you can easily change the whole slide theme or only parts of it. The following code shows a typical
usage of the class.
\documentclass{beamer}
\usepackage{beamerthemesplit}
\begin{document}
\frame{\titlepage}
\section*{Outline}
\frame{\tableofcontents}
\section{Introduction}
\subsection{Overview of the Beamer Class}
\frame
{
\frametitle{Features of the Beamer Class}
\begin{itemize}
\item<1-> Normal LaTeX class.
\item<2-> Easy overlays.
\item<3-> No external programs needed.
\end{itemize}
}
\end{document}
Run pdflatex on this code (twice) and then use, for example, the Acrobat Reader to present the resulting
.pdf file in a presentation. You can also, alternatively, use dvips; see Section 3.4.2 for details.
As can be seen, the text looks almost like a normal LATEX text. The main difference is the usage of the
\frame command. This command takes one parameter, which is the text that should be shown on the frame.
Typically, the contents of a frame is shown on a single slide. However, in case you use overlay commands
inside a frame, a single frame command may produce several slides. An example is the last frame in the
above example. There, the \item commands are followed by overlay specifications like <1->, which means
“from slide 1 on.” Such a specification causes the item to be shown only on the specified slides of the frame
(see Section 4 for details). In the above example, a total of five slides are produced: a title page slide, an
outline slide, a slide showing only the first of the three items, a slide showing the first two of them, and a
slide showing all three items.
To structure your text, you can use the commands \section and \subsection. These commands will
not only create entries in the table of contents, but will also in the navigation bars.
4
To reproduce the example from the previous subsection in LYX, proceed as follows:
• The command \usepackage{beamerthemesplit} must be added to the preamble. You can edit the
preamble using Layout i Document i Preamble.
• Typeset the author and date the usual way, using the styles Author and Date. The title page will then
be created automatically.
• To insert the sections and subsections, use the usual Section and Subsection styles.
• To insert the frame containing the table of contents, insert a line of style BeginFrame. Since this frame
has no title, do not write anything on the line with style BeginFrame. Next, insert a line of style
Standard and use Insert i Insert TOC to insert the table of contents. Optionally, end the frame using
a line of style EndFrame (the following Section style automatically closes the frame).
• To create the last frame, start a new frame using the style BeginFrame. Write the frame title on the
line having this style.
• Use the Itemize style to create the itemized text.
• Add the overlay specifications (the texts like <1->) to the items by entering TEX-mode (press on the
little TEX icon) and writing <1->. This TEX text should be placed right at the beginning of the item.
• You must end this frame using the style EndFrame (sadly, the end of the document and also the
beginning of the appendix do not automatically end the last frame – whereas the start of a frame,
section, part, or subsection does).
Now use View i PDF to view the resulting presentation. On a slow machine, this may take a while. See
Section 3.5.7 for ways of speeding up the compilation.
5
2.1.2 Temporary Installation
If you only wish to install the beamer class for a quick appraisal, do the following: Obtain the latest source ver-
sion (ending .tar.gz) of the beamer package from http://sourceforge.net/projects/latex-beamer/
(most likely, you have already done this). Next, you also need at least version 0.60 of the pgf package, which
can be found at the same place. Finally, you need at least version 1.06 of the xcolor package, which can
also be found at that place (although the version on CTAN might be newer).
lyx For usage with LYX, version 1.3.3 of LYX and higher are known to work. II have not tried earlier versions;
they might also work.
In all cases, the packages contain a bunch of files (for the beamer class, beamer.cls is one of these
files and happens to be the most important one, for the pgf package pgf.sty is the most important file).
Place all files in three directories. For example, ~/beamer/, ~/pgf/, and ~/xcolor/ would work fine for me.
Then setup the environment variable called TEXINPUTS to be the following string (how exactly this is done
depends on your operating system and shell):
.:~/beamer/base:~/beamer/art:~/beamer/themes:~/pgf:~/xcolor:
Naturally, if the TEXINPUTS variable is already defined differently, you should add the five directories to
the list. Do not forget to place a colon at the end (corresponding to an empty path), which will include all
standard directories.
• Your personal texmf tree, which is usually located in your home directory at ~/texmf/ or
~/Library/texmf/.
You should install the packages either in the local tree or in your personal tree, depending on whether
you have write access to the local tree. Installation in the root tree can cause problems, since an update of
the whole TEX installation will replace this whole tree.
Inside whatever texmf directory you have chosen, create the sub-sub-sub-directories
• texmf/tex/latex/beamer,
• texmf/tex/latex/pgf, and
• texmf/tex/latex/xcolor
For a more detailed explanation of the standard installation process of packages, you might wish to
consult http://www.ctan.org/installationadvice/. However, note that the beamer package does not
come with a .ins file (simply skip that part).
6
2.1.4 Updating the Installation
To update your installation from a previous version, simply replace everything in the directories like
texmf/tex/latex/beamer with the files of the new version. The easiest way to do this is to first delete
the old version and then proceed as described above. Sometimes, there are changes in the syntax of certain
command from version to version. If things no longer work that used to work, you wish to have a look at
the release notes and at the change log.
\usepackage{amsthm}
This package is automatically loaded since beamer uses it for typesetting theorems. If you do not wish
it to be loaded, which can be necessary especially in article mode if the package is incompatible with
the document class, you can use the class option noamsthm to suppress its loading. See Section 5.4.4 for
more details.
\usepackage[french]{babel}
When using the French style, certain features that clash with the functionality of the beamer class will
be turned off. For example, enumerations are still produced the way the theme dictates, not the way
the French style does. Also, the characters : and ! will not be a active characters. This means, that
the little space that is inserted before them in the french style is not inserted. You have to do this “by
hand.”
article To make the characters : and ! active in article mode, pass the option activeospeccharacters to
the package beamerbasearticle. However, this may lead to problems with overlay specifications.
\usepackage[spanish]{babel}
beamer When using the Spanish style, certain features that clash with the functionality of the beamer class will
be turned off. In particular, the special behaviour of the pointed brackets < and > is deactivated.
article To make the characters < and > active in article mode, pass the option activeospeccharacters to
the package beamerbasearticle. As for the french package, this may lead to problems with overlay
specifications.
\usepackage{color}
beamer The color package is automatically loaded by beamer.cls. This makes it impossible to pass options
to color in the preamble of your document. To pass a hlist of optionsi to color, you must use the
following class option:
\documentclass[color=hlist of optionsi]{beamer}
Causes the hlist of optionsi to be passed on to the color package. If the hlist of optionsi contains
more than one option you must enclose it in curly brackets.
article The color package is not loaded automatically if beamerbasearticle is loaded with the noxcolor
option.
\usepackage{CJK}
beamer When using the CJK package for using Asian fonts, you must use the class option CJK. See
beamerexample4.tex for an example.
7
\usepackage{deluxetable}
beamer The caption generation facilities of deluxetable are deactivated. Instead, the caption template is used.
\usepackage{enumerate}
article This package is loaded automatically in the presentation modes, but not in the article mode. If you
use its features, you have to load the package “by hand” in the article mode.
\usepackage[T1]{fontenc}
Use this option only with fonts that have outline fonts available in the T1 encoding like Times or the
lmodern fonts. In a standard installation the standard Computer Modern fonts (the fonts Donald Knuth
originally designed and which are used by default) are not available in the T1 encoding. Using this
option with them will result in very poor rendering of your presentation when viewed with pdf viewer
applications like Acrobat or xpdf. To use the Computer Modern fonts with the T1 encoding, use the
package lmodern. See also Section 8.1.5.
\usepackage{fourier}
The package switches to a T1 encoding, but it does not redefine all fonts such that outline fonts (non-
bitmapped fonts) are used by default. For example, the sans-serif text and the typewriter text are not
replaced. To use outline fonts for these, write \usepackage{lmodern} before including the fourier
package.
\usepackage{hyperref}
beamer The hyperref package is automatically loaded by beamer.cls and certain options are setup. In order
pass additional options to hyperref or to override options, you can use the following class option:
\documentclass[hyperref=hlist of optionsi]{beamer}
Causes the hlist of optionsi to be passed on to the hyperref package.
Example: \documentclass[hyperref={bookmarks=false}]{beamer}
\documentclass[utf8]{beamer}
Same as the option ucs, but also sets the input encoding to utf8. You could also use the option
ucs and say \usepackage[utf8]{inputenc} in the preamble.
If you use a Unicode character outside the first two code pages (which includes the Latin alphabet
and the extended Latin alphabet) in a section or subsection heading, you have to use the command
\PreloadUnicodePage{hcode pagei} to give ucs a chance to preload these code pages. You will know
that a character has not been preloaded, if you get a message like “Please insert into preamble.” The
code page of a character is given by the unicode number of the character divided by 256.
\usepackage{listings}
beamer Note that you must treat lstlisting environments exactly the same way as you would treat verbatim
environments. When using \defverbatim that contains a colored lstlisting, use the colored option
of \defverbatim.
\usepackage{hprofessional font packagei}
beamer If you use a professional font package, beamer’s internal redefinition of how variables are typeset may
interfere with the font package’s superior way of typesetting them. In this case, you should use the class
option professionalfont to suppress any font substitution. See Section 8.1.3 for details.
8
\usepackage{pstricks}
You should add the option xcolor=pst to make xcolor aware of the fact that you are using pstricks.
\usepackage{textpos}
beamer beamer automatically installs a white background behind everything, unless you install a different
background template. Because of this, you must use the overlay option when using textpos, so that
it will place boxes before everything. Alternatively, you can install an empty background template, but
this may result in an incorrect display in certain situtations with older versions of the Acrobat Reader.
\usepackage{ucs}
See \usepackage[utf8]{inputenc}.
\usepackage{xcolor}
beamer The xcolor package is automatically loaded by beamer.cls. The same applies as to color.
\documentclass[xcolor=hlist of optionsi]{beamer}
Causes the hlist of optionsi to be passed on to the xcolor package.
When using beamer together with the pstricks package, be sure to pass the xcolor=pst option to
beamer (and hence to xcolor).
article The color package is not loaded automatically if beamerbasearticle is loaded with the noxcolor
option.
2.3 Emulation
beamer is a powerful class. In some ways it is more powerful than other classes around, in others it is less
powerful or harder to use. If beamer implements all or most of the features some other class also offers,
albeit under a different name, it is possible to emulate that class using beamer. Such an emulation is not
a perfect substitute for the original (emulations seldomly are), but it can help speed up porting since parts
of old presentations can simply be copied verbatim, without having to worry about the subtle differences in
syntax.
An useful effect of using an emulation layer is that you get access to all the features of beamer while
using the syntax of another class. In particular, you can still use the article mode to create a nice article
version from a prosper talk.
9
6. In the main text, you will almost surely have to adjust usages of \includegraphics. If you use
pdfLATEX to typeset the presentation, than you cannot include PostScript file. You should convert
them to .pdf or to .png and adjust any usage of \includegraphics accordingly.
7. When starting to change things, you can use all of beamer’s commands and even mix them with
prosper commands.
An example can be found in the file beamerexample-haprosper.tex. Note that this file, except for the
changes at the beginning, is due to Hendri Adriaens.
There are, unfortunately, quite a few places where you may run into problems:
• In beamer, the command \PDForPS will do exactly what the name suggests: insert the first argument
when run by pdflatex, insert the second argument when run by latex. However, in prosper, the
code inserted for the pdf case is acutally PostScript code, which is only later converted to pdf by
some external program. You will need to adjust this PostScript code such that it works with pdflatex
(which is not always possible).
• If you used fine-grained spacing commands, like adding a little horizontal skip here and a big negative
vertical skip there, the typesetting of the text may be poor. It may be a good idea to just remove
these spacing commands.
• If you use pstricks commands, you will either have to stick to using latex and dvips or will have to
work around them using, for example, pgf. Porting lot’s of pstricks code is bound to be difficult, if
you wish to switch over to pdflatex, so be warned.
• If the file cannot be compiled because some prosper command is not implemented, you will have to
delete this command and try to mimick its behaviour using some beamer command.
\usepackage{beamerprosper}
Include this package in a beamer presentation to get access to prosper commands. Use beamer as the
document class, not prosper. Most of the options passed to the class prosper make no sense in beamer,
so just delete them.
This package takes the following options:
• framesassubsections causes each frame to create its own subsection with the frame title as
subsection name. This behaviour mimicks ha-prosper’s behaviour. In a long talk this will create
way too many subsections.
\author{Hendri Adriaens}
\DefaultTransition{Wipe}
\TitleSlideNav{FullScreen}
\NormalSlideNav{ShowBookmarks}
\LeftFoot{\href{http://center.uvt.nl/phd_stud/adriaens}{Hendri Adriaens}, \today}
\RightFoot{Example for the HA-prosper package}
\begin{document}
\maketitle
\begin{slide}{Introduction}
\begin{itemize}
\item Welcome to the example for the HA-prosper package.
\item This example demonstrates some of the possibilities of HA-prosper.
\item See the style-specific examples for a demonstration of
10
features implemented by a style.
\end{itemize}
\end{slide}
\overlays{2}{
\begin{slide}{Numbering and overlays}
\begin{itemstep}
\item This overlay contains an equation:
\begin{equation}
\label{eq:1}
(a+b)^n=\sum_{k=0}^n\left(\begin{array}{l}n\\k\end{array}\right)a^{n-k}b^k
\end{equation}
\item It is equation number~\ref{eq:1}.
\end{itemstep}
\end{slide}
}
\subtitle{htitlei}
Adds a subtitle by adding a new line to an existing title with the given htitlei typeset in a smaller font.
\email{htexti}
Simply typesets its argument in typewriter text. Should hence be given inside the \author command.
\institution{htexti}
This command is mapped to beamer’s \institute command if given outside the \author command,
otherwise it typesets its argument in a smaller font.
\begin{slides}[hoptionsi]{hframe titlei}
henvironment contentsi
\end{slides}
Inserts a frame with the containsverbatim option set. The hframe titlei will be enclosed in a
\frametitle command.
The following hoptionsi may be given:
• trans=hprosper transitioni installs the specified hprosper transitioni as the transition effect when
showing the slide.
• hprosper transitioni has the same effect as trans=hprosper transitioni.
• toc=hentryi overrides the subsection table of contents entry created by this slide by hentryi. Note
that a subsection entry is create for a slide only if the framesassubsections options is specified.
11
• template=htexti is ignored.
and
\subsection{short} % omitted, if framesassubsections is not specified
\frame[containsverbatim]
{
\transglitter
\frametitle{A Title}
Hi!
}
and
\subsection{A Title} % omitted, if framesassubsections is not specified
\frame
{
\frametitle{A Title}
\begin{itemstep}
\item Hi!
\item Ho!
\end{itemstep}
}
12
\FromSlide{hslide number i}
This is mapped to \onslide<hslide number i->.
\OnlySlide{hslide number i}
This is mapped to \onslide<hslide number i>.
\UntilSlide{hslide number i}
This is mapped to \onslide<-hslide number i>.
\slideCaption{htexti}
This is mapped to \date{htexti}.
\fontTitle{htexti}
Simply inserts htexti.
\fontText{htexti}
Simply inserts htexti.
\PDFtransition{hprosper transitioni}
Maps the hprosper transitioni to an appropriate \transxxxx command.
\begin{Itemize}
henvironment contentsi
\end{Itemize}
This is mapped to itemize.
\begin{itemstep}
henvironment contentsi
\end{itemstep}
This is mapped to itemize with the option [<+->].
\begin{enumstep}
henvironment contentsi
\end{enumstep}
This is mapped to enumerate with the option [<+->].
\hiddenitem
This is mapped to \addtocounter{beamerpauses}{1}.
\prosperpart[hoptionsi]{htexti}
This command has the same effect as prosper’s \part command. beamer’s normal \part command
retains its normal sematics. Thus, you might wish to replace all occurences of \part by \prosperpart.
\tsection*{hsection namei}
Creates a section names hsection namei. The star, if present, is ignored.
\tsectionandpart*{hpart texti}
Mapped to a \section command followed by a \prosperpart command.
article In article mode, no part page is added.
13
\PDForPS{hPostScript texti}{hPDF texti}
Inserts eight the hPostScript texti or the hPDF texti, depending on whether latex or pdflatex is used.
When porting, the hPDF texti will most likely be incorrect, since in prosper the hPDF texti is actually
PostScript text that is later transformed to pdf by some external program.
If the hPDF texti contains an \includegraphics command (which is its usual use), you should change
the name of the graphic file that is included to a name ending .pdf, .png, or .jpg. Typically, you will
have to convert you graphic to this format.
\onlyInPDFhPDF texti
The hPDF texti is only included if pdflatex is used. The same as for the command \PDForPS applies
here.
\onlyInPShPS texti
The hPS texti is only included if latex is used.
\begin{notes}{htitlei}
henvironment contentsi
\end{notes}
Mapped to \note{\textbf{htitlei}henvironment contentsi} (more or less).
2.3.2 Seminar
The package beamerseminar maps a subset of the commands of the seminar package to beamer. As for
prosper, the emulation cannot be perfect. For example, no portrait slides are supported, no automatic
page braking, the framing of slides is not emulated. Unfortunately, for all frames (slide environments) that
contain overlays, you have to put the environment into a \frame “by hand” and must remove all occurences
of \newslide inside the environment by closing the slide and opening a new one (and them putting these
into \frame commands).
The workflow for the migration is the following:
1. Replace the document class seminar by beamer. Most options passed to prosper do not ap-
ply to beamer and should be omitted. If the presentation is mixed with normal text, add the
ignorenonframetext option and place every slide environment inside a \frame since beamer will
not recognize the \begin{slide} as the beginning of a frame.
2. Add a \usepackage{beamerseminar} to start the emulation. Add the option accumulate if you wish
to create a presentation to be held with a video projector.
3. Possibly add commands to install themes and templates.
4. Remove most commands in the preamble having to do with page and slide styles. They do not apply
to beamer.
5. If a \newslide command is used in a slide (or similarly slide*) environment that contains an overlay,
you must replace it by a closing \end{slide} and an opening \begin{slide}.
14
6. Next, for each slide or slide* environment that contains an overlay, you must place a \frame
command around it. You can remove the environment, unless you use the accumulate option.
7. If you use pdfLATEX to typeset the presentation, than you cannot include PostScript file. You should
convert them to .pdf or to .png and adjust any usage of \includegraphics accordingly.
8. When starting to change things, you can use all of beamer’s commands and even mix them with
prosper commands.
An example can be found in the file beamerexample-seminar.tex.
There are, unfortunately, numerous places where you may run into problems:
• The whole note management of seminar is so different from beamer’s, that you will have to edit notes
“by hand.” In particular, commands like \ifslidesonly and \ifslide may not do exactly what you
expect.
• If you use pstricks commands, you will either have to stick to using latex and dvips or will have to
work around them using, for example, pgf. Porting lot’s of pstricks code is bound to be difficult, if
you wish to switch over to pdflatex, so be warned.
• If the file cannot be compiled because some seminar command is not implemented, you will have to
delete this command and try to mimick its behaviour using some beamer command.
\usepackage{beamerseminar}
Include this package in a beamer presentation to get access to seminar commands. Use beamer as the
document class, not seminar. Most of the options passed to the class seminar make no sense in beamer,
so just delete them.
This package takes the following options:
• accumulate causes overlays to be accumulated. The original behaviour of the seminar package is
that in each overlay only the really “new” part of the overlay is shown. This makes sense, if you
really print out the overlays on transparencies and then really stack overlays on top of each other.
For a presentation with a video projector, you rather want to present an “accumulated” version of
the overlays. This is what this option does: When the new material of the ith overlay is shown,
the material of all previous overlays is also shown.
\newcommand{\sref}[1]{SLIDE \ref{#1}}
CHANGED: Commented:
\newpagestyle{MH}%
{University of Guaduas, March 13, 1998\hfil\thepage}{}
\pagestyle{MH}
\begin{document}
15
This is a lot of gobbledy-gook intended only to illustrate some of the
features of seminar.sty.
\begin{verse} \bf\tt
You have 134 unread messages:\\
Do you want to read them now?
\end{verse}
\begin{enumerate}
{\overlay2
\item People {\overlay1 cannot process all} the information they receive.}
\item People {\em should} receive less information.
\end{enumerate}
\end{slide}
}
\end{document}
You can use all normal beamer commands and concepts, like overlay-specifications, in the file. You can
also create an article version by adding the class option class=article and including the package
beamerbasearticle.
\overlay{hnumber i}
Shows the material till the end of the current TEX group only on overlay numbered hnumber i + 1 or, if
the accumulate option is given, from that overlay on. Usages of this command may be nested (as in
seminar). If an \overlay command is given inside another, it temporarily “overrules” the outer one
as demonstrated in the following example, where it is assumed, that the accumulate option is given.
Example:
\frame{
\begin{slide}
This is shown from the first slide on.
{\overlay{2}
This is shown from the third slide on.
{\overlay{1}
This is shown from the second slide on.
}
This is shown once more from the third slide on.
}
\end{slide}
}
\begin{slide*}
henvironment contentsi
\end{slide*}
Mainly installs an \overlay{0} around the henvironment contentsi. If the accumulate option is given,
this has no effect, but otherwise it will cause the main text of the slide to be shown only on the first
slide. This is useful if you really wish to physically place slides on top of each other.
The starred version does the same as the nonstarred one.
If this command is not issued inside a \frame, it sets up a frame with the containsverbatim option
set. Thus, this frame will contain only a single slide.
16
Example:
\begin{slide}
Some text.
\end{slide}
\frame{
\begin{slide}
Some text. And an {\overlay{1} overlay}.
\end{slide}
}
\red
Mapped to \color{red}.
\blue
Mapped to \color{blue}.
\green
Mapped to \color{green}.
\ifslide
True in the presentation modes, false in the article mode.
\ifslidesonly
Same as \ifslide.
\ifarticle
False in the presentation modes, true in the article mode.
\ifportrait
Always false.
3 Workflow
This section presents a possible workflow for creating a beamer presentation and possibly a handout to go
along with it. Technical questions are addressed, like which programs to call with which parameters, and
hints are given on how to create a presentation. If you have already created numerous presentations, you
may wish to skip the first of the following steps and only have a look at how to convert the .tex file into a
.pdf or .ps file.
17
3.2 Step One: Setup the Files
beamer It is advisable that you create a folder for each presentation. Even though your presentation will usually
reside in a single file, TEX produces so many extra files that things can easily get very confusing otherwise.
The folder’s name should ideally start with the date of your talk in ISO format (like 2003-12-25 for a
Christmas talk), followed by some reminder text of what the talk is all about. Putting the date at the front
in this format causes your presentation folders to be listed nicely when you have several of them residing in
one directory. If you use an extra directory for each presentation, you can call your main file main.tex.
To create an initial main.tex file for your talk, copy an existing file (like the file beamerexample1.tex
that comes along with the contribution) and delete everything that is not going to be part of your talk.
Adjust the \author and other fields as appropriate.
If you wish your talk to reside in the same file as some different, non-presentation article version of your
text, it is advisable to setup a more elaborate file scheme. See Section 7.4.2 for details.
lyx You can either open a new file and then select beamer as the document class or you say “New from template”
and then use a template from the directory beamer/lyx/templates.
\documentclass{beamer}
% This is the file main.tex
\usepackage{beamerthemesplit}
\begin{document}
\frame{\titlepage}
18
\section*{Outline}
\frame{\tableofcontents}
\section{Introduction}
\subsection{Overview of the Beamer Class}
\subsection{Overview of Similar Classes}
\section{Usage}
\subsection{...}
\subsection{...}
\section{Examples}
\subsection{...}
\subsection{...}
\end{document}
lyx Use “View” to check whether the presentation compiles fine. Note that you must put the table of contents
inside a frame, but that the title page is created automatically.
You can next use a program like the Acrobat Reader or xpdf to view the resulting presentation.
When printing a presentation using Acrobat, make sure that the option “expand small pages to paper
size” in the printer dialog is enabled. This is necessary, because slides are only 128mm times 96mm.
To put several slides onto one page (useful for the handout version) or to enlarge the slides, you can use
the program pdfnup. Also, many commercial programs can perform this task. If you put several slides on
one page and if these slides normally have a white background, it may be useful to write the following in
your preamble:
\mode<handout>{\beamertemplatesolidbackgroundcolor{black!5}}
This will cause the slides of the the handout version to have a very light gray background. This makes
it easy to discern the slides’ border if several slides are put on one page.
lyx Choose “View pdf” to view your presentation.
19
The option (-P pdf) tells dvips to use Type 1 outline fonts instead of the usual Type 3 bitmap fonts.
You may wish to omit this option if there is a problem with it.
If you wish each slide to completely fill a letter-sized page, use the following commands instead:
In order to create a white margin around the whole page (which is sometimes useful for printing), add
the option -m 1cm to the options of psnup.
To put two or four slides on one page, use -2, respectively -4 instead of -1 as the first parameter for
psnup. In this case, you may wish to add the option -b 1cm to add a bit of space around the individual
slides. The same trick as for the pdf-version can be used to make the borders of slides more pronounced in
the handout version.
You can convert a PostScript file to a pdf file using
20
• Ideally, titles on consecutive frames should “tell a story” all by themselves.
• In English, you should either always capitalize all words in a frame title except for words like “a” or
“the” (as in a title), or you always use the normal lowercase letters. Do not mix this; stick to one
rule. The same is true for block titles. For example, do not use titles like “A short Review of Turing
machines.” Either use “A Short Review of Turing Machines.” or “A short review of Turing machines.”
(Turing is still spelled with a capital letter since it is a name).
• In English, the title of the whole document should be capitalized, regardless of whether you capitalize
anything else.
• In German and other languages that have lots of capitalized words, always use the correct upper-
/lowercase letters. Never capitalize anything in addition to what is usually capitalized.
• Maximize contrast. Normal text should be black on white or at least something very dark on something
very bright. Never do things like “light green text on not-so-light green background.”
21
• Background shadings decrease the legibility without increasing the information content. Do not add a
background shading just because it “somehow looks nicer.” In the examples that come along with the
beamer class, the backgrounds are intended as demonstrations, not as recommendations.
• Inverse video (bright text on dark background) can be a problem during presentations in bright en-
vironments since only a small percentage of the presentation area is light up by the beamer. Inverse
video is harder to reproduce on printouts and on transparencies.
\documentclass[draft]{beamer}
Causes the head lines, foot lines, and sidebars to be replaced by gray rectangles (their sizes are still
computed, though). Many other packages, including pgf and hyperref, also “speedup” when this
option is given.
\frame[label=example1]
{This frame will be included. }
\frame[label=example2]
{This frame will not be included. }
22
3.7 Step Six: Optionally Create a Handout or an Article Version
Once your talk is fixed, you can create a handout, if this seems appropriate. For this, use the class option
handout as explained in Section 7.1. Typically, you might wish to put several handout slides on one page.
See Section 3.4.2 on how to do this.
You may also wish to create an article version of your talk. An “article version” of your presentation is
a normal TEX text typeset using, for example, the document class article or perhaps llncs or a similar
document class. The beamer class offers facilities to have this version coexist with your presentation version
in one file and to share code. Also, you can include slides of your presentation as figures in your article version.
Details on how to setup the article version can be found in Section 7.4.
lyx Creating an article version is not really possible in LYX. You can try, but I would not advise it.
\frame
{
\textbf{This line is bold on all three slides.}
\textbf<2>{This line is bold only on the second slide.}
\textbf<3>{This line is bold only on the third slide.}
}
For the command \textbf, the overlay specification causes the text to be set in boldface only on the
specified slides. On all other slides, the text is set in a normal font.
For a second example, consider the following frame:
\frame
{
\only<1>{This line is inserted only on slide 1.}
\only<2>{This line is inserted only on slide 2.}
}
The command \only, which is introduced by beamer, normally simply inserts its parameter into the
current frame. However, if an overlay-specification is present, it “throws away” its parameter on slides that
are not mentioned.
Overlay specifications can only be written behind certain commands, not every command. Which com-
mands you can use and which effects this will have is explained in Section 4.3.2. However, it is quite easy to
redefine an existing command such that it becomes “overlay specification aware,” see also Section 4.3.2.
23
The syntax of (basic) overlay specifications is the following: They are comma-separated lists of slides and
ranges. Ranges are specified like this: 2-5, which means slide two through to five. The start or the end of
a range can be omitted. For example, 3- means “slides three, four, five, and so on” and -5 means the same
as 1-5. A complicated example is -3,6-8,10,12-15, which selects the slides 1, 2, 3, 6, 7, 8, 10, 12, 13, 14,
and 15.
lyx Overlay specifications can also be given in LYX. You must give them in TEX-mode (otherwise the pointed
brackets may be “escaped” by LYX, though this will not happen in all versions). For example, to add an
overlay specification to an item, simply insert a TEX-mode text like <3> as the first thing in that item.
Likewise, you can add an overlay specification to environments like theorem by giving them in TEX-mode
right at the start of the environment.
24
• alert alters the item or block.
• uncover uncovers the item or block (this is the default, if no action is specified).
• only causes the whole item or block to be inserted only on the specified slides.
• visible causes the text to become visible only on the specified slides (the difference between uncover
and visible is the same as between \uncover and \visible).
• invisible causes the text to become invisble on the specified slides.
The rest of this section explains how you can add your own actions and make commands action-
specification-aware. You may wish to skip it upon first reading.
You can easily add your own actions: An action specification like hactioni@hslide numbersi simply inserts
an environment called hactionienv around the \item or parameter of \action with <hslide numbersi> as
overlay specification. Thus, by defining a new overlay-specification-aware environment named hmy action
nameienv, you can add your own action:
\newenvironment{checkenv}{\only{\useitemizeitemtemplate{X}}}{}
This will change the itemization symbol before Text. to X on slide 2 in beamer mode. The definition of
checkenv used the fact that \only also accepts an overlay-specification given after its argument.
The whole action mechanism is base on the following environment:
\begin{actionenv}<haction specificationi>
henvironment contentsi
\end{actionenv}
This environment extracts all actions from the haction specificationi for the current mode. For each
action of the form hactioni@hslide numbersi, it inserts the following text: \begin{hactionienv}<hslide
number i> and the beginning of the environment and the text \end{hactionienv} at the end. If there
several action specifications, several environments are opened (and closed in the appropriate order). An
hoverlay specificationi without an action is promoted to uncover@hoverlay specificationi.
If the so called default overlay specification is not empty, it will be used in case no haction specificationi
is given. The default overlay specification is usually just empty, but it may be set either by providing an
additional optional argument to the command \frame or to the environments itemize, enumerate, or
description (see these for details). Also, the default action specification can be set using the command
\beamerdefaultoverlayspecification, see below.
Example:
\frame
{
\begin{actionenv}<2-| alert@3-4,6>
This text is shown the same way as the text below.
\end{actionenv}
\begin{uncoverenv}<2->
\begin{alertenv}<3-4,6>
This text is shown the same way as the text above.
\end{alertenv}
\end{uncoverenv}
}
\action<haction specificationi>{htexti}
This has the same effect as putting htexti in an actionenv.
Example: \action<alert@2>{Could also have used \alert<2>{}.}
25
\beamerdefaultoverlayspecification{hdefault overlay specificationi}
Locally sets the default overlay specification to the given value. This overlay specification will be used
in every actionenv environment and every \item that does not have its own overlay specification. The
main use of this command is to install an incremental overlay specification like <+-> or <+-| alert@+>,
see Section 4.1.4.
Usually, the default overlay specification is installed automatically by the optional arguments to \frame,
itemize, enumerate, and description. You will only have to use this command if you wish to do funny
things.
Example: \beamerdefaultoverlayspecification{<+->}
Example: \beamerdefaultoverlayspecification{} clears the default overlay specification. (Actually,
it installs the default overlay specification <*>, which just means “always,” but the “portable” way of
clearing the default overlay specification is this call.)
The problem starts if you decide to insert a new fruit, say, at the beginning. In this case, you would have to
adjust all of the overlay specifications. Also, if you add a \pause command before the itemize, you would
also have to update the overlay specifications.
beamer offers a special syntax to make creating lists as the one above more “robust.” You can replace
it by the following list of incremental overlay specifications:
\begin{itemize}
\item<+-> Apple
\item<+-> Peach
\item<+-> Plum
\item<+-> Orange
\end{itemize}
The effect of the +-sign is the following: You can use it in any overlay specification at any point where you
would usually use a number. If a +-sign is encountered, it is replaced by the current value of the LATEX
counter beamerpauses, which is 1 at the beginning of the frame. Then the counter is increased by 1, though
it is only increased once for every overlay specification, even if the specification contains multiple +-signs
(they are replaced by the same number).
In the above example, the first specification is replaced by <1->. Then the second is replaced by <2->
and so forth. We can now easily insert new entries, without having to change anything. We might also write
the following:
\begin{itemize}
\item<+-| alert@+> Apple
\item<+-| alert@+> Peach
\item<+-| alert@+> Plum
\item<+-| alert@+> Orange
\end{itemize}
This will alert the current item when it is uncovered. For example, the first specification <+-| alert@+> is
replaced by <1-| alert@1>, the second is replaced by <2-| alert@2>, and so on. Since the itemize envi-
ronment also allows you to specify a default overlay specification, see the documentation of that environment,
the above example can be written even more economically as follows:
26
\begin{itemize}[<+-| alert@+>]
\item Apple
\item Peach
\item Plum
\item Orange
\end{itemize}
The \pause command also updates the counter beamerpauses. You can change this counter yourself
using the normal LATEX commands \setcounter or \addtocounter.
Any occurence of a +-sign may be followed by an offset in round brackets. This offset will be added
to the value of beamerpauses. Thus, if beamerpauses is 2, then <+(1)-> expands to <3-> and <+(-1)-+>
expands to <1-2>.
4.2 Frames
4.2.1 Frame Creation
A presentation consists of a series of frames. Each frame consists of a series of slides. You create a frame
using the command \frame. This command takes one parameter, namely the contents of the frame. All of
this text that is not tagged by overlay specifications is shown on all slides of the frame. If a frame contains
commands that have an overlay specification, the frame will contain multiple slides; otherwise it contains
only one slide.
Example:
\frame<beamer> % frame is only shown in beamer mode
{
\frametitle{Outline}
\tabelofcontent[current]
}
The hdefault overlay specificationi is an optional argument that is “detected” according to the following
rule: If the first optional argument in square brackets starts with a <, then this argument is a hdefault
overlay specificationi, otherwise it is a normal hoptionsi argument. Thus \frame[<+->][plain] would
be legal, but also \frame[plain].
The effect of the hdefault overlay specificationi is the following: Every command or environment inside
the frame that accepts an action specification, see Section 4.1.3, (this includes the \item command, the
actionenv environment, \action, and all block environments) and that is not followed by an overlay
specification gets the hdefault overlay specificationi as its specification. By providing an incremental
specification like <+->, see Section 4.1.4, this will essentially cause all blocks and all enumerations to be
uncovered piece-wise (blocks internally employ action specifications).
Example: In this frame, the theorem is shown from the first slide on, the proof from the second slide
on, with the first two itemize points shown one after the other; the last itemize point is shown together
with the first one. In total, this frame will contain four slides.
\frame[<+->]
{
\begin{theorem}
$A = B$.
\end{theorem}
\begin{proof}
27
\begin{itemize}
\item Clearly, $A = C$.
\item As shown earlier, $C = B$.
\item<3-> Thus $A = B$.
\end{itemize}
\end{proof}
}
The following hoptionsi may be given:
• plain causes the head lines, foot lines, and side bars to be suppressed. This is useful for creating
single frames with different head and foot lines or for creating frames showing big pictures that
completely fill the frame.
Example: A frame with a picture completely filling the frame:
\frame[plain]{\hfill\pgfimage[height=9.6cm]{bigimagefilename}\hfill}
Example: A title page, in which the head and foot lines are replaced by two graphics.
\usetitlepagetemplate{
\beamerline{\pgfuseimage{toptitle}}
\vskip0pt plus 1filll
\begin{centering}
\Large{\textbf{\inserttitle}}
\insertdate
\end{centering}
lyx Use the style “BeginFrame” to start a frame and the style “EndFrame” to end it. A frame is automati-
cally ended by the start of a new frame and by the start of a new section or subsection (but not by the
end of the document!).
lyx You can pass options and an overlay specification to a frame by giving these in TEX-mode as the first
thing in the frame title. (Some magic is performed to extract them in LYX mode from there.)
lyx The style “BeginPlainFrame” is included as a convenience. It passes the plain option to the frame. To
pass further options to a plain frame, you should use the normal “BeginFrame” style and specify all
options (include plain).
lyx In LYX, you can insert verbatim text directly even in overlayed frames. The reason is that LYX uses a
different internal mechanism for typesetting verbatim text, that is easier to handle for beamer.
article In article mode, the \frame command does not create any visual reference to the original frame (no
frame is drawn). Rather, the frame text is inserted into the normal text. To change this, you can modify
the frame template, see Section 8.4.4. To suppress a frame in article mode, you can, for example,
specify <presentation> as overlay specification.
28
For compatibility with earlier versions, you can also give an overlay specification in square brackets. If
the sole argument to the \frame command is an argument in square brackets, the beamer class will try
to check whether this argument “looks like” an overlay specification. If so, it is assumed to be an overlay
specification.
Note that there is no environment for creating frames. The reason is that I simply have not been able
to come up with an idea of how to implement it in the presence of multiple overlays.
\frame
{
Some stuff explaining more on the second matter.
}
\againframe<3>{myframe}
The effect of the above code is to create four slides. In the first two, the items 1 and 2 are hilighted.
The third slide contains the text “Some stuff explaining more on the second matter.” The fourth slide
is identical to the first two slides, except that the third point is now hilighted.
Example:
\frame<1>[label=Cantor]
{
\frametitle{Main Theorem}
\begin{Theorem}
$\alpha < 2^\alpha$ for all ordinals~$\alpha$.
\end{Theorem}
\begin{overprint}
\onslide<1>
\hyperlink{Cantor<2>}{\beamergotobutton{Proof details}}
\onslide<2->
% this is only shown in the appendix, where this frame is resumed.
\begin{proof}
As shown by Cantor, ...
\end{proof}
\hfill\hyperlink{Cantor<1>}{\beamerreturnbutton{Return}}
\end{overprint}
}
...
\appendix
\againframe<2>{Cantor}
29
In this example, the proof details are deferred to a slide in the appendix. Hyperlinks are setup, so that
one can jump to the proof and go back.
article This command is ignored.
lyx Use the style “AgainFrame” to insert an \againframe command. The hlabel namei is the text on
following the style name and is not put in TEX-mode. However, an overlay specification must be given
in TEX-mode and it must preceed the label name.
Frame contents.
}
article By default, this command creates a new paragraph in article mode, entitled hframe title texti. Using
the hoverlay specificationi makes it easy to suppress the a frame title once in a while. If you generally
wish to suppress all frame titles in article mode, say \useframetitletemplate{}.
lyx The frame title is the text that follows on the line of the “BeginFrame” style.
Be default, all material for a slide is vertically centered. You can change this using the following class
options:
\documentclass[slidestop]{beamer}
Place text of slides at the (vertical) top of the slides. This corresponds to a vertical “flush.”
\documentclass[slidescentered]{beamer}
Place text of slides at the (vertical) center of the slides. This is the default.
30
4.2.3 Restricting the Slides of a Frame
The number of slides in a frame is automatically calculated. If the largest number mentioned in any overlay
specification inside the frame is 4, four slides are introduced (despite the fact that a specification like <4->
might suggest that more than four slides would be possible).
You can also specify the number of slides in the frame “by hand.” To do so, you pass an overlay
specification the \frame command. The frame will contain only the slides specified in this argument.
Consider the following example.
\frame<1-2,4->
{
This is slide number \only<1>{1}\only<2>{2}\only<3>{3}%
\only<4>{4}\only<5>{5}.
}
This command will create a frame containing four slides. The first will contain the text “This is slide
number 1,” the second “This is slide number 2,” the third “This is slide number 4,” and the fourth “This is
slide number 5.”
A useful specification is just <0>, which causes the frame to have to no slides at all. For example,
\frame<handout:0> causes the frame to be suppressed in the handout version, but to be shown normally in
all other versions. Another useful specification is <beamer>, which causes the frame to be shown normally
in beamer mode, but to be suppressed in all other versions.
\begin{verbatim}
int find(int* a, int n, int x)
{
for (int i = 0; i<n; i++)
if (a[i] == x)
return i;
}
\end{verbatim}
You may not use the label=hlabel namei option if you have a verbatim text on a slide.
If you need to use verbatim commands in frames that contain several slides or on a frame that uses the
label option, you must declare your verbatim texts before the frame starts. This is done using two special
commands:
\frame
{
\begin{itemize}
\item<1-> In C you need a main function.
31
\item<2-> It is declare like this: \mytext
\item<3-> Spaces are not important: \mytextspaces
\end{itemize}
}
\defverbatim[hoptionsi]{hcommand namei}{htexti}
The htexti may contain a verbatim, verbatim*, lstlisting, or a related environment. The command
{hcommand namei} can be used later inside frames. The declaration should be done outside the frame.
Once declared, the text can be used in overlays like normal text.
The following hoptionsi may be given:
• colored declares that the verbatim text will have its “own” colors. Normally, the verbatim text is
typeset using the current color, which allows you to use commands like \alert to make verbatim
text red on certain slides. However, if the verbatim text has, say, a special background color or
different parts of it a colored differently (the lstlisting environment does this), then you do not
want the verbatim text to inherit its color from the “outside.” In this case, you should give the
colored option.
Example:
\defverbatim\algorithmA{
\begin{verbatim}
int main (void)
{
cout << "Hello world." << endl;
return 0;
}
\end{verbatim}
}
\defverbatim[colored]\algorithmB{
\begin{lstlisting}[language={C++},backgroundcolor=\color{yellow}]
int main (void)
{
cout << "Hello world." << endl;
return 0;
}
\end{lstlisting}
}
\frame
{
Our algorithm:
\alert<1>{\algorithmA}
\uncover<2>{Note the return value.}
}
\frame
{
Same algorithm typeset using the lstlisting environment:
\algorithmB
}
32
A much more fine-grained control over what is shown on each slide can be attained using overlay speci-
fications, see the next subsections. However, for many simple cases the \pause command is sufficient.
The effect of \pause lasts till the next \pause, \onslide, or the end of the frame.
\frame{
\begin{itemize}
\item
Shown from first slide on.
\pause
\item
Shown from second slide on.
\begin{itemize}
\item
Shown from second slide on.
\pause
\item
Shown from third slide on.
\end{itemize}
\item
Shown from third slide on.
\pause
\item
Shown from fourth slide on.
\end{itemize}
\begin{itemize}
\unpause
\item
Shown from first slide on.
\pause
\item
Shown from fifth slide on.
\end{itemize}
}
\pause[hnumber i]
This command causes the text following it to be shown only from the next slide on, or, if the optional
hnumber i is given, from the slide with the number hnumber i. If the optional hnumber i is given, the
counter beamerpauses is set to this number. This command uses the \onslide command, internally.
This command does not work inside amsmath environments like align, since these do really wicked
things.
Example:
\frame
{
\begin{itemize}
\item
A
\pause
\item
B
\pause
\item
C
\end{itemize}
}
To “unpause” some text, that is, to temporarily suspend pausing, use the command \onslide, see below.
33
4.3.2 Commands with Overlay Specifications
A much more powerful and flexible way of specifying overlays uses overlay specifications, see Section 4.1 for
an introduction to this concept. In this subsection, the basic commands that take overlay specifications are
described.
For the following commands, adding an overlay specification causes the command to be simply ignored
on slides that are not included in the specification: \textbf, \textit, \textsl, \textrm, \textsf, \color,
\alert, \structure. If a command takes several arguments, like \color, the specification should directly
follow the command as in the following example (but there are exceptions to this rule):
\frame
{
\color<2-3>[rgb]{1,0,0} This text is red on slides 2 and 3, otherwise black.
}
\onslide<hoverlay specificationi>
All text following this command will only be shown (uncovered) on the specified slides. On non-specified
slides, the text still occupies space. If no slides are specified, the following text is always shown. You
need not call this command in the same TEX group, its effect transcedes block groups. However, this
command has a different effect inside an overprint environment, see the description of overprint.
Example:
\frame
{
Shown on first slide.
\onslide<2-3>
Shown on second and third slide.
\begin{itemize}
\item
Still shown on the second and third slide.
\onslide<4->
\item
Shown from slide 4 on.
\end{itemize}
Shown from slide 4 on.
\onslide
Shown on all slides.
}
\uncover<hoverlay specificationi>{htexti}
If the hoverlay specificationi is present, the htexti is shown (“uncovered”) only on the specified slides.
On other slides, the text still occupies space and it is still typeset, but it is not shown or only shown
as if transparent. For details on how to specify whether the text is invisible or just transparent, see
Section 6.2.3.
34
Example: \uncover<3->{Text shown from slide 3 on.}
article This command has the same effect as \only.
\visible<hoverlay specificationi>{htexti}
This command does almost the same as \uncover. The only difference is that if the text is not shown,
it is never shown in a transparent way, but rather it is not shown at all. Thus for this command the
transparency settings have no effect.
Example: \visible<2->{Text shown from slide 2 on.}
article This command has the same effect as \only.
\invisible<hoverlay specificationi>{htexti}
This command is the opposite of \visible.
Example: \invisible<-2>{Text shown from slide 3 on.}
\frame{
\begin{itemize}
\colorize<1> \item First item.
\colorize<2> \item Second item.
\colorize<3> \item Third item.
\colorize<4> \item Fourth item.
\end{itemize}
}
35
\item<2-> Third point, also shown on slide 2 and later.
\item<3-> Fourth point, shown on slide 3.
\end{itemize}
}
\frame
{
\begin{enumerate}
\item<3-| alert@3>[0.] A zeroth point, shown at the very end.
\item<1-| alert@1> The first an main point.
\item<2-| alert@2> The second point.
\end{enumerate}
}
The related command \bibitem is also overlay-specification-aware in the same way as \item.
\frame
{
\frametitle{A Theorem on Infinite Sets}
\begin{theorem}<1->
There exists an infinite set.
\end{theorem}
\begin{proof}<3->
This follows from the axiom of infinity.
\end{proof}
36
\begin{example}<2->
The set of natural numbers is infinite.
\end{example}
}
In the example, the first slide only contains the theorem, on the second slide an example is added, and on
the third slide the proof is also shown.
For each of the basic commands \only, \alt, \visible, \uncover, and \invisible there exists “envi-
ronment versions” onlyenv, altenv, visibleenv, uncoverenv, and invisibleenv. Except for altenv and
onlyenv, these environments do the same as the commands.
\begin{onlyenv}<hoverlay specificationi>
henvironment contentsi
\end{onlyenv}
If the hoverlay specificationi is given, the contents of the environment is inserted into the text only on
the specified slides. The difference to \only is, that the text is actually typeset inside a box that is then
thrown away, whereas \only immediately throws away its contents. If the text is not “typesettable,”
the onlyenv may produce an error where \only would not.
Example:
\frame
{
This line is always shown.
\begin{onlyenv}<2>
This line is inserted on slide 2.
\end{onlyenv}
}
The trouble with this approach is that it may lead to slight, but annoying differences in the heights of the
lines, which may cause the whole frame to “whobble” from slide to slide. This problem becomes much more
severe if the replacement text is several lines long.
To solve this problem, you can use two environments: overlayarea and overprint. The first is more
flexible, but less user-friendly.
37
\begin{overlayarea}{harea widthi}{harea heighti}
henvironment contentsi
\end{overlayarea}
Everything within the environment will be placed in a rectangular area of the specified size. The area
will have the same size on all slides of a frame, regardless of its actual contents.
Example:
\begin{overlayarea}{\textwidth}{3cm}
\only<1>{Some text for the first slide.\\Possibly several lines long.}
\only<2>{Replacement on the second slide.}
\end{overlayarea}
\begin{overprint}[harea widthi]
henvironment contentsi
\end{overprint}
The harea widthi defaults to the text width. Inside the environment, use \onslide commands to specify
different things that should be shown for this environment on different slides. The \onslide commands
are used like \item commands. Everything within the environment will be placed in a rectangular area
of the specified width. The height and depth of the area are chosen large enough to accommodate the
largest contents of the area. The overlay specifications of the \onslide commands must be disjoint.
This may be a problem for handouts, since, there, all overlay specifications defaul to 1. If you use the
option handout, you can disable all but one \onslide by setting the others to 0.
Example:
\begin{overprint}
\onslide<1| handout:1>
Some text for the first slide.\\
Possibly several lines long.
\onslide<2| handout:0>
Replacement on the second slide. Supressed for handout.
\end{overprint}
lyx Use the style “Overprint” to insert an overprint environment. You have to use TEX-mode to insert
the \onslide commands.
38
Example: Here is beamer’s definition of \emph:
\newcommand<>{\emph}[1]{{\only#2{\itshape}#1}}
\frame
{
\begin{myboldblock}<2>
This theorem is shown only on the second slide.
\end{myboldblock}
}
Example: Text in the following environment is normally bold and italic on non-specified slides:
\newenvironment<>{boldornormal}
{\begin{altenv}#1
{\begin{bfseries}}{\end{bfseries}}
{}{}}
{\end{altenv}}
Incidentally, since altenv also accepts its argument at the end, the same effect could have been achieved
using just
\newenvironment{boldornormal}
{\begin{altenv}
{\begin{bfseries}}{\end{bfseries}}
{}{}}
{\end{altenv}}
39
The following two commands can be used to ensure that a certain counter is automatically reset on
subsequent slides of a frame. This is necessary for example for the equation count. You might want this
count to be increased from frame to frame, but certainly not from overlay slide to overlay slide. For equation
counters and footnote counters (you should not use footnotes), these commands have already been invoked.
\resetcounteronoverlays{hcounter namei}
After you have invoked this command, the value of the specified counter will be the same on all slides
of every frame.
Example: \resetcounteronoverlays{equation}
5 Structuring a Presentation
5.1 Global Structure of Presentations
Ideally, during most presentations you would like to present your slides in a perfectly linear fashion, presum-
ably by pressing the page-down-key once for each slide. However, there are different reasons why you might
have to deviate from this linear order:
• Your presentation may contain “different levels of detail” that may or may not be skipped or expanded,
depending on the audience’s reaction.
• You can add “goto buttons” and “return buttons” to create detours. Pressing a goto button will jump
to a certain part of the presentation where extra details can be shown. In this part, there is a return
button present on each slide that will jump back to the place where the goto button was pressed.
• You can use the \againframe command to “continue” frames that you previously started somewhere,
but where certain details have been suppressed. You can use the \againframe command at a much
later point, for example only in the appendix to show to additional slides there.
40
5.2 Commands for Creating the Global Structure
5.2.1 Adding a Title Page
You can use the \titlepage command to insert a title page into a frame.
The \titlepage command will arrange the following elements on the title page: the document title, the
author(s)’s names, their affiliation, a title graphic, and a date.
\titlepage
Inserts the text of a title page into the current frame.
Example: \frame{\titlepage}
lyx If you use the “Title” style in your presentation, a title page is automatically inserted.
For compatibility with other classes in article mode, the following command is also provided:
\maketitle
beamer Same as \titlepage.
Before you invoke the title page command, you must specify all elements you wish to be shown. This is
done using the following commands:
\title[hshort titlei]{htitlei}
The hshort tilei is used in head lines and foot lines. Inside the htitlei line breaks can be inserted using
the double-backslash command.
Example:
\title{The Beamer Class}
\title[Short Version]{A Very Long Title\\Over Several Lines}
article The short form is ignored in article mode.
\author[hshort author namesi]{hauthor namesi}
The names should be separated using the command \and. In case authors have different affiliations,
they should be suffixed by the command \inst with different parameters.
Example: \author[Hemaspaandra et al.]{L. Hemaspaandra\inst{1} \and T. Tantau\inst{2}}
article The short form is ignored in article mode.
\institute[hshort institutei]{hinstitutei}
If more than one institute is given, they should be separated using the command \and and they should
be prefixed by the command \inst with different parameters.
Example:
\institute[Universities of Rochester and Berlin]{
\inst{1}Department of Computer Science\\
University of Rochester
\and
\inst{2}Fakult\"at f\"ur Elektrotechnik und Informatik\\
Technical University of Berlin}
article The short form is ignored in article mode. The long form is also ignored, except if the document class
(like llncs) defines it.
\date[hshort datei]{hdatei}
Example: \date{\today} or \date[STACS 2003]{STACS Conference, 2003}.
article The short form is ignored in article mode.
\titlegraphic{htexti}
The htexti is shown as title graphic. Typically, a picture environment is used as htexti.
Example: \titlegraphic{\pgfuseimage{titlegraphic}}
article The command is ignored in article mode.
41
5.2.2 Adding Sections and Subsections
You can structure your text using the commands \section and \subsection. Unlike standard LATEX, these
commands will not create a heading at the position where you use them. Rather, they will add an entry to
the table of contents and also to the navigation bars.
In order to create a line break in the table of contents (usually not a good idea), you can use the
command \breakhere. Note that the standard command \\ does not work (actually, I do not really know
why; comments would be appreciated).
\subsection*{}
\subsection*{A subsection}
Often, you may want a certain type of frame to be shown directly after a section or subsection starts.
For example, you may wish every subsection to start with a frame showing the table of contents with the
current subsection hilighted. To facilitate this, you can use the following two commands.
42
\AtBeginSection[hspecial star texti]{htexti}
The given text will be inserted at the beginning of every section. If the hspecial star texti parameter
is specified, this text will be used for starred sections instead. Different calls of this command will not
“add up” the given texts (like the \AtBeginDocument command does), but will overwrite any previous
text.
Example:
\AtBeginSection[] % Do nothing for \section*
{
\frame<beamer>
{
\frametitle{Outline}
\tableofcontents[current]
}
}
\section*{Outlines}
\subsection{Part I: Review of Previous Lecture}
\frame{
\frametitle{Outline of Part I}
\tableofcontents[part=1]}
\subsection{Part II: Today’s Lecture}
\frame{
\frametitle{Outline of Part II}
43
\tableofcontents[part=2]}
\part{Today’s Lecture}
\frame{\partpage}
\section{Topic A}
\frame{\tableofcontents[current]}
\subsection{Foo}
\frame{...}
\section{Topic B}
\frame{\tableofcontents[current]}
\subsection{bar}
\frame{...}
\end{document}
\partpage
Works like \titlepage, only that the current part, not the current presentation is “advertised.” The
appearance can be changed by adjusting the part page template, see Section 8.4.3.
Example: \frame{\partpage}
\AtBeginPart{htexti}
The given text will be inserted at the beginning of every part.
Example:
\AtBeginPart{\frame{\partpage}}
\section{Introduction}
...
\section{Summary}
\lecture{Scalar Products}{week 2}
\section{Introduction}
...
44
\section{Summary}
\end{document}
\includeonlylecturehlecture label i
Causes all \frame, \section, \subsection, and \part commands following a \lecture command to
be suppressed, except if the lecture’s label matches the hlecture label i. Frames before any \lecture
commands are always included. This command should be given in the preamble.
Example: \includeonlylecture{week 1}
article This command has no effect in article mode.
\AtBeginLecture{htexti}
The given text will be inserted at the beginning of every lecture.
Example:
\AtBeginLecture{\frame{\Large Today’s Lecture: \insertlecture}}
\section{Introduction}
\frame{\tableofcontents[current]}
\subsection{Why?}
\frame{...}
\frame{...}
\subsection{Where?}
\frame{...}
\section{Results}
\frame{\tableofcontents[current]}
\subsection{Because}
\frame{...}
\subsection{Here}
\frame{...}
The following options can be given:
• part=hpart number i causes the table of contents of part hpart number i to be shown, instead of the
table of contents of the current part (which is the default). This option can be combined with the
other options, although combining it with the current option obviously makes no sense.
• sections={hoverlay specificationi} causes only the sections mentioned in the hoverlay specificationi
to be shown. For example, sections={<2-4| handout:0>} causes only the second, third, and
fourth section to be shown in the normal version, nothing to be shown in the handout version, and
everything to be shown in all other versions. For convenience, if you omit the pointed brackets,
the specification is assumed to apply to all versions. Thus sections={2-4} causes sections two,
three, and four to be shown in all versions.
45
• firstsection=hsection number i specifies which section should be numbered as section “1.” This
is useful if you have a first section (like an overview section) that should not receive a number.
Section numbers are not shown by default. To show them, you must install a different table of
contents templates.
• current causes all sections but the current to be shown in a semi-transparent way. Also, all
subsections but those in the current section are shown in the semi-transparent way.
• currentsubsection causes all subsections but the current subsection in the current section to be
shown in a semi-transparent way.
• pausesections causes a \pause command to be issued before each section. This is useful if you
wish to show the table of contents in an incremental way.
• pausesubsections causes a \pause command to be issued before each subsection.
• hidesubsections causes the subsections to be omitted. However, if used together with the current
option, the subsections of the current section are not omitted.
• shadesubsections causes the subsections to be shown in a semi-transparent way.
The last two commands are useful if you do not wish to show too many details when presenting the talk
outline.
article The options are ignored in article mode.
lyx You can give options to the \tableofcontents command by inserting a TEX-mode text with the options
in square brackets directly after the table of contents.
• It is a bad idea to present a long bibliography in a presentation. Present only very few references.
• Present references only if they are intended as “further reading,” for example at the end of a lecture.
• Using the \cite commands can be confusing since the audience has little chance of remembering the
citations. If you cite the references, always cite them with full author name and year like “[Tantau,
2003]” instead of something like “[2,4]” or “[Tan01,NT02]”.
• If you want to be modest, you can abbreviate your name when citing yourself as in “[Nickelsen and T.,
2003]” or “[Nickelsen and T, 2003]”. However, this can be confusing for the audience since it is often
not immediately clear who exactly “T.” might be. I recommend using the full name.
Keeping the above warnings in mind, proceed as follows to create the bibliography:
For a beamer presentation, you will typically have to typeset your bibliography items partly “by hand.”
Nevertheless, you can use bibtex to create a “first approximation” of the bibliography. Copy the content
of the file main.bbl into your presentation. If you are not familiar with bibtex, you may wish to consult
its documentation. It is a powerful tool for creating high-quality citations.
Using bibtex or your editor, place your bibliographic references in the environment thebibliography.
This (standard LATEX) environment takes one parameter, which should be the longest \bibitem label in the
following list of bibliographic entries.
46
The environment must be placed inside a frame. If the bibliography does not fit on one frame, you
should split it (create a new frame and a second thebibliography environment). Even better, you
should reconsider whether it is a good idea to present so many references.
Example:
\frame{
\frametitle{For Further Reading}
\begin{thebibliography}{Dijkstra, 1982}
\bibitem[Solomaa, 1973]{Solomaa1973}
A.~Salomaa.
\newblock {\em Formal Languages}.
\newblock Academic Press, 1973.
\bibitem[Dijkstra, 1982]{Dijkstra1982}
E.~Dijkstra.
\newblock Smoothsort, an alternative for sorting in situ.
\newblock {\em Science of Computer Programming}, 1(3):223--233, 1982.
\end{thebibliography}
}
Unlike normal LATEX, the default template for the bibliography does not repeat the citation text (like
“[Dijkstra, 1982]”) before each item in the bibliography. Instead, a cute, small article symbol is drawn. The
rationale is that the audience will not be able to remember any abbreviated citation texts till the end of the
talk. If you really insist on using abbreviations, you can use the command \beamertemplatetextbibitems
to restore the default behavior, see also Section 8.4.7.
\appendix<hmode specificationi>
Starts the appendix in the specified modes. All frames, all \subsection commands, and all \section
commands used after this command will not be shown as part of the normal navigation bars.
Example:
\begin{document}
\frame{\titlepage}
\section*{Outline}
\frame{\tableofcontents}
\section{Main Text}
\frame{Some text}
\section*{Summary}
\frame{Summary text}
47
\appendix
\section{\appendixname}
\frame{\tableofcontents}
\subsection{Additional material}
\frame{Details}
\frame{Text omitted in main talk.}
\subsection{Even more additional material}
\frame{More details}
\end{document}
article You must say \usepackage{hyperref} in your preamble to use this command in article mode.
The \label command creates a hypertarget as a side-effect and the label=hnamei option of the \frame
command creates a label named hnamei<hslide number i> for each slide of the frame as a side-effect. Thus
the above example could be written more easily as:
\frame[label=threeitems]{
\begin{itemize}
\item<1-> First item.
\item<2-> Second item.
\item<3-> Third item.
\end{itemize}
The following commands can be used to specify in an abstract way what a button will be used for. How
exactly these buttons are rendered is governed by a template, see Section 8.4.11.
\beamerbutton{hbutton texti}
Draws a button with the given hbutton texti.
48
Example: \hyperlink{somewhere}{\beamerbutton{Go somewhere}}
article This command (and the following) just insert their argument in article mode.
\beamergotobutton{hbutton texti}
Draws a button with the given hbutton texti. Before the text, a small symbol (usually a right-pointing
arrow) is inserted that indicates that pressing this button will jump to another “area” of the presentation.
Example: \hyperlink{detour}{\beamergotobutton{Go to detour}}
\beamerskipbutton{hbutton texti}
The symbol drawn for this button is usually a double right arrow. Use this button if pressing it will
skip over a well-defined part of your talk.
Example:
\frame{
\begin{theorem}
...
\end{theorem}
\begin{overprint}
\onslide<1>
\hfill\hyperlinkframestartnext{\beamerskipbutton{Skip proof}}
\onslide<2>
\begin{proof}
...
\end{proof}
\end{overprint}
}
\beamerreturnbutton{hbutton texti}
The symbol drawn for this button is usually a left pointing arrow. Use this button if pressing it will
return from a detour.
Example:
\frame<1>[label=mytheorem]
{
\begin{theorem}
...
\end{theorem}
\begin{overprint}
\onslide<1>
\hfill\hyperlink{mytheorem<2>}{\beamergotobutton{Go to proof details}}
\onslide<2>
\begin{proof}
...
\end{proof}
\hfill\hyperlink{mytheorem<1>}{\beamerreturnbutton{Return}}
\end{overprint}
}
\appendix
\againframe<2>{mytheorem}
To make a button “clickable” you must place it in a command like \hyperlink. The command
\hyperlink is a standard command of the hyperref package. The beamer class defines a whole bunch of
other hyperlink commands that you can also use.
49
The following commands have a predefined target; otherwise they behave exactly like \hyperlink. In
particular, they all also accept an overlay specification and they also accept it at the end, rather than at the
beginning.
The previous four command exist also with “frame” replaced by “subsection” everywhere, and also
again with “frame” replaced by “section”.
50
5.3.1 Using the Navigation Bars
Most themes that come along with the beamer class show some kind of navigation bar during your talk.
Although these navigation bars take up quite a bit of space, they are often useful for two reasons:
• They provide the audience with a visual feedback of how much of your talk you have covered and
what is yet to come. Without such feedback, an audience will often puzzle whether something you are
currently introducing will be explained in more detail later on or not.
• You can click on all parts of the navigation bar. This will directly “jump” you to the part you have
clicked on. This is particularly useful to skip certain parts of your talk and during a “question session,”
when you wish to jump back to a particular frame someone has asked about.
\documentclass[compress]{beamer}
Tries to make all navigation bars as small as possible. For example, all small frame representations in
the navigation bars for a single section are shown alongside each other. Normally, the representations
for different subsections are shown in different lines. Furthermore, section and subsection navigations
are compressed into one line.
When you click on one of the icons representing a frame in a navigation bar (by default this is icon is a
small circle), the following happens:
• If you click on (the icon of) any frame other than the current frame, the presentation will jump to the
first slide of the frame you clicked on.
• If you click on the current frame and you are not on the last slide of this frame, you will jump to the
last slide of the frame.
• If you click on the current frame and you are on the last slide, you will jump to the first slide of the
frame.
By the above rules you can:
• Jump to the beginning of a frame from somewhere else by clicking on it once.
• Jump to the end of a frame from somewhere else by clicking on it twice.
• Skip the rest of the current frame by clicking on it once.
I also tried making a jump to an already-visited frame jump automatically to the last slide of this frame.
However, this turned out to be more confusing than helpful. With the current implementation a double-click
always brings you to the end of a slide, regardless from where you “come.”
By clicking on a section or subsection in the navigation bar, you will jump to that section. Clicking on
a section is particularly useful if the section starts with a \tableofcontents[current], since you can use
it to jump to the different subsections.
By clicking on the document title in a navigation bar (not all themes show it), you will jump to the first
slide of your presentation (usually the title page) except if you are already at the first slide. On the first
slide, clicking on the document title will jump to the end of the presentation, if there is one. Thus by double
clicking the document title in a navigation bar, you can jump to the end.
51
4. A section icon, which is depicted as a highlighted section entry (together with all subsections) in a
table of contents. This symbols is framed by arrows.
5. A presentation icon, which is depicted as a completely highlighted table of contents.
6. An appendix icon, which is depicted as a completely highlighted table of contents consisting of only
one section. (This icon is only shown if there is an appendix.
7. Back and forward icons, depicted as circular arrows.
8. A “search” or “find” icon, depicted as a detective’s magnifying glass.
Clicking on the left arrow next to an icon always jumps to (the last slide of) the previous slide, frame,
subsection, or section. Clicking on the right arrow next to an icon always jump to (the first slide of) the
next slide, frame, subsection, or section.
Clicking on any of these icons has different effects:
1. If supported by the viewer application, clicking on a slide icon pops up a window that allows you to
enter a slide number to which you wish to jump.
2. Clicking on the left side of a frame icon will jump to the first slide of the frame, clicking on the right
side will jump to the last slide of the frame (this can be useful for skipping overlays).
3. Clicking on the left side of a subsection icon will jump to the first slide of the subsection, clicking on
the right side will jump to the last slide of the subsection.
4. Clicking on the left side of a section icon will jump to the first slide of the section, clicking on the right
side will jump to the last slide of the section.
5. Clicking on the left side of the presentation icon will jump to the first slide, clicking on the right side
will jump to the last slide of the presentation. However, this does not include the appendix.
6. Clicking on the left side of the appendix icon will jump to the first slide of the appendix, clicking on
the right side will jump to the last slide of the appendix.
7. If supported by the viewer application, clicking on the back and forward symbols jumps to the previ-
ously visited slides.
8. If supported by the viewer application, clicking on the search icon pops up a window that allows you
to enter a search string. If found, the viewer application will jump to this string.
You can reduce the number of icons that are shown or their layout by adjusting the navigation symbols
template, see Section 8.4.13.
52
\frame
{
There are three important points:
\begin{enumerate}
\item<1-> A first one,
\item<2-> a second one with a bunch of subpoints,
\begin{itemize}
\item first subpoint. (Only shown from second slide on!).
\item<3-> second subpoint added on third slide.
\item<4-> third subpoint added on fourth slide.
\end{itemize}
\item<5-> and a third one.
\end{enumerate}
}
Example:
\begin{itemize}[<+->]
\item This is shown from the first slide on.
\item This is shown from the second slide on.
\item This is shown from the third slide on.
\item<1-> This is shown from the first slide on.
\item This is shown from the fourth slide on.
\end{itemize}
Example:
\begin{itemize}[<+-| alert@+>]
\item This is shown from the first slide on and alerted on the first slide.
\item This is shown from the second slide on and alerted on the second slide.
\item This is shown from the third slide on and alerted on the third slide.
\end{itemize}
Example:
\newenvironment{mystepwiseitemize}{\begin{itemize}[<+-| alert@+>]}{\end{itemize}}
lyx Unfortunately, currently you cannot specify optional arguments with the itemize environment. You
can, however, use the command \beamerdefaultoverlayspecification before the environment to get
the desired effect.
53
The first optional argument hdefault overlay specificationi has exactly the same effect as for the itemize
environment. It is “detected” by the opening <-sign in the hdefault overlay specificationi. Thus, if there
is only one optional argument and if this argument does not start with <, then it is considered to be a
hmini templatei.
The syntex of the hmini templatei is the same as the syntax of mini templates in the enumerate
package (you do not need to include the enumerate package, this is done automatically). Roughly
spoken, the text of the hmini templatei is printed before each item, but any occurrence of a 1 in the
mini template is replaced by the current item number, an occurrence of the letter A is replaced by the
ith letter of the alphabet (in uppercase) for the ith item, and the letters a, i, and I are replaced by the
corresponding lowercase letters, lowercase Roman letters, and uppercase Roman letters, respectively.
So the mini template (i) would yield the items (i), (ii), (iii), (iv), and so on. The mini template A.)
would yield the items A.), B.), C.), D.) and so on. For more details on the possible mini templates,
see the documentation of the enumerate package. Note that there is also a template that governs the
appearance of the mini template (for example, to change its color), see Section 8.4.16.
Example:
\begin{enumerate}
\item This is important.
\item This is also important.
\end{enumerate}
\begin{enumerate}[(i)]
\item First Roman point.
\item Second Roman point.
\end{enumerate}
\begin{enumerate}[<+->][(i)]
\item First Roman point.
\item Second Roman point, uncovered on second slide.
\end{enumerate}
article To use the hmini templatei, you have to include the package enumerate.
lyx The same constraints as for itemize apply.
\begin{description}[longest label]
\item<1->[short] Some text.
\item<2->[longest label] Some text.
\item<3->[long label] Some text.
\end{description}
Example: The following has the same effect as the previous example:
\begin{description}[<+->][longest label]
\item[short] Some text.
\item[longest label] Some text.
\item[long label] Some text.
\end{description}
54
lyx Since you cannot specify the optional argument in LYX, if you wish to specify the width, you must use
the command \usedescriptionitemofwidthas, which you must insert in TEX-mode shortly before the
environment.
\usedescriptionitemofwidthas{hlong texti}
This command overrides the default width of the description label by the width of hlong texti for the
current TEX group. You should only use this command if, for some reason or another, you cannot give
the hlong texti as an argument to the description environment. This happens, for example, if you
create a description environment in LYX.
Example:
\usedescriptionitemofwidthas{longest label}
\begin{description}
\item<1->[short] Some text.
\item<2->[longest label] Some text.
\item<3->[long label] Some text.
\end{description}
5.4.2 Hilighting
The beamer class predefines a commands and environments for hlighting text. Using these commands
makes is easy to change the appearance of a document by changing the theme.
\begin{alertenv}<hoverlay specificationi>
henvironment contentsi
\end{alertenv}
Environment version of the \alert command.
\structure<hoverlay specificationi>{htexti}
The given text is marked as part of the structure, typically by coloring it in the structure color. If the
hoverlay specificationi is present, the command only has an effect on the specified slides.
Example: \structure{Paragraph Heading.}
article Structure text is typeset as bold text. This can be changed by specifying another template.
lyx You need to use TEX-mode to insert this command.
\begin{structureenv}<hoverlay specificationi>
henvironment contentsi
\end{structureenv}
Environment version of the \structure command.
55
\end{block}
Only one haction specificationi may be given. Inserts a block, like a definition or a theorem, with the
title hblock titlei. If the haction specificationi is present, the given actions are taken on the specified
slides, see Section 4.1.3. In the example, the definition is shown only from slide 3 onward.
Example:
\begin{block}<3->{Definition}
A \alert{set} consists of elements.
\end{block}
lyx Overlay specifications must be given right at the beginning of the environments and in TEX-mode.
\frame
{
\frametitle{A Theorem on Infinite Sets}
\begin{theorem}<1->
There exists an infinite set.
\end{theorem}
56
\begin{proof}<2->
This follows from the axiom of infinity.
\end{proof}
\begin{example}<3->[Natural Numbers]
The set of natural numbers is infinite.
\end{example}
}
In the following, only the English versions are discussed. The German ones behave analogously.
\begin{theorem}<haction specificationi>[hadditional texti]<haction specificationi>
henvironment contentsi
\end{theorem}
Inserts a theorem. Only one haction specificationi may be given. If present, the hadditional texti is
shown behind the word “Theorem” is rounded brackets (although this can be changed by the template).
The appearance of the theorem is governed by templates, see Section 8.4.19 for details on how to change
these. Every theorem is put into a block environment, thus the templates for blocks also apply.
The theorem style (a concept from amsthm) used for this environment is plain. In this style, the body
of a theorem should be typeset in italics. The head of the theorem should be typeset in a bold font, but
this is usually overruled by the templates.
If the option envcountsect is given either as class option in one of the presentation modes or as an
option to the package beamerbasearticle in article mode, then the numbering of the theorems is local
to each section with the section number prefixing the theorem number; otherwise they are numbered
consecutively throughout the presentation or article. I recommend using this option in article mode.
By default, no theorem numbers are shown in the presentation modes.
Example:
\begin{theorem}[Kummer, 1992]
If $\#^_A^n$ is $n$-enumerable, then $A$ is recursive.
\end{theorem}
\begin{theorem}<2->[Tantau, 2002]
If $\#_A^2$ is $2$-fa-enumerable, then $A$ is regular.
\end{theorem}
lyx Is present, the optional argument and the action specification must be given in TEX mode at the
beginning of the environment.
The environments corollary, fact, and lemma behave exactly the same way.
\documentclass[envcountsect]{beamer}
Causes theorems, definitions, and so on to be numbered locally to each section. Thus, the first theorem of
the second section would be Theorem 2.1 (assuming that there are no definitions, lemmas, or corollaries
earlier in the section).
\begin{defintion}<haction specificationi>[hadditional texti]<haction specificationi>
henvironment contentsi
\end{defintion}
Behaves like the theorem environment, except that the theorem style definition is used. In this style,
the body of a theorem is typeset in an upright font.
The environment definitions behaves exactly the same way.
\begin{example}<haction specificationi>[hadditional texti]<haction specificationi>
henvironment contentsi
\end{example}
Behaves like the theorem environment, except that the theorem style example is used. A side-effect
of using this theorem style is that the henvironment contentsi is put in an exampleblock instead of a
block.
57
The environment examples behaves exactly the same way.
Some remarks on numbered theorems:
beamer The default template for typesetting theorems suppresses the theorem number, even if this number is “avail-
able” for typesetting (which it is by default in all predefined environments; but if you define your own
environment using \newtheorem* no number will be available). I would like to discourage using numbered
theorems in a presentation. The audience has no chance of remembering these numbers. Never say things
like “now, by Theorem 2.5 that I showed you earlier, we have . . . ” It would be much better to refer to, say,
Kummer’s Theorem instead of Theroem 2.5. If Theorem 2.5 is some obscure theorem that does not have its
own name (like Kummer’s Theorem or Main Theorem or Second Main Theorem or Key Lemma), then the
audience will have forgotten about it anyway by the time you refer to it again.
In my opinion, the only situtation in which numbered theorems make sense in a presentation is in a
lecture, in which the students can read lecture notes in parallel to the lecture where the theorems are
numbered in exactly the same way.
article In article mode, theorems are automatically numbered. By specifying the option envcountsect, theorems
will be numbered locally to each section, which is usually a good idea, except for very short articles.
The predefined environments number everything consecutively. Thus if there are one theorem, one lemma,
and one definition, you would have Theorem 1, Lemma 2, and Definition 3. Some people prefer all three
to be numbered 1. I would strongly like to discourage this. The problem is that this makes it virtually
impossible to find anything since Theorem 2 might come after Definition 10 or the other way round. Papers
and, worse, books that have a Theorem 1 and a Definition 1 are a pain. Do not inflict pain on other people.
You can also use amsthm’s command \newtheoremstyle to define new theorem styles. Note that the
default template for theorems will ignore any head font setting, but will honor the body font setting.
If you wish to define the environments like theorem differently (for example, have it numbered within each
subsection), you can use the following class option to disable the definition of the predefined environments:
\documentclass[notheorems]{beamer}
Switches off the definition of default blocks like theorem, but still loads amsthm and makes theorems
overlay-specificiation-aware.
58
The option is also available as a package option for beamerbasearticle and has the same effect.
article In the article version, the package amsthm sometimes clashes with the document class. In this case you
can use the following option, which is once more available as a class option for beamer and as a package
option for beamerbasearticle, to switch off the loading of amsthm altogether.
\documentclass[noamsthm]{beamer}
Does not load amsthm and also not amsmath. Environments like theorem or proof will not be available.
\begin{beamerboxesrounded}[hoptionsi]{hhead i}
henvironment contentsi
\end{beamerboxesrounded}
The text inside the environment is framed by a rectangular area with rounded corners. The background
of the rectangular area is filled with a certain color, which depends on the current color scheme (see
below). If the hhead i is not empty, hhead i is drawn in the upper part of the box in a different color,
which also depends on the scheme. The following options can be given:
• scheme=hnamei causes the color scheme hnamei to be used. A color scheme must previously be
defined using the command \beamerboxesdeclarecolorscheme.
• width=hdimensioni causes the width of the text inside the box to be the specified hdimensioni. By
default, the \textwidth is used. Note that the box will protrude 4pt to the left and right.
• shadow=htrue or falsei. If set to true, a shadow will be drawn.
A color scheme dictates the background colors used in the head part and in the body of the box. If no
hhead i is given, the head part is completely suppressed.
Example:
\begin{beamerboxesrounded}[scheme=alert,shadow=true]{Theorem}
$A = B$.
\end{beamerboxesrounded}
59
\begin{figure}
\caption{This caption is placed above the figure.}
\pgfuseimage{myotherfigure}
\end{figure}
}
You can adjust how the figure and table captions are typeset by changing the corresponding template,
see Section 8.4.15.
\begin{columns}[hoptionsi]
henvironment contentsi
\end{columns}
A multi-column area. Inside the environment you should place only column environments or \column
commands (see below). The following hoptionsi may be given:
• b will cause the bottom lines of the columns to be vertically aligned.
• c will cause the columns to be centered vertically relative to each other. Default, unless the global
option slidestop is used.
• onlytextwidth is the same as totalwidth=\textwidth.
• t will cause the first lines of the columns to be aligned. Default if global option slidestop is used.
• totalwidth=hwidthi will cause the columns to occupy not the whole page width, but only hwidthi,
all told.
Example:
\begin{columns}[t]
\begin{column}{5cm}
Two\\lines.
\end{column}
\begin{column}{5cm}
One line (but aligned).
\end{column}
\end{columns}
Example:
\begin{columns}[t]
\column{5cm}
Two\\lines.
\column{5cm}
One line (but aligned).
\end{columns}
To create a column, you can either use the column environment or the \column command.
\begin{column}[hplacementi]{hcolumn widthi}
henvironment contentsi
60
\end{column}
Creates a single column of width hcolumn widthi. The vertical placement of the enclosing columns
environment can be overruled by specifying a specific hplacementi (t for top, c for centered, and b for
bottom).
Example: The following code has the same effect as the above examples:
\begin{columns}
\begin{column}[t]{5cm}
Two\\lines.
\end{column}
\begin{column}[t]{5cm}
One line (but aligned).
\end{column}
\end{columns}
\column[hplacementi]{hcolumn widthi}
Starts a single column. The parameters and options are the same as for the column environment. The
column automatically ends with the next occurrence of \column or of a column environment or of the
end of the current columns environment.
Example:
\begin{columns}
\column[t]{5cm}
Two\\lines.
\column[t]{5cm}
One line (but aligned).
\end{columns}
5.4.10 Footnotes
First a word of warning: Using footnote is usually not a good idea. They disrupt the flow of reading.
You can use the usual \footnote command. It has been augmented to take by an additional option, for
placing footnotes at the frame bottom instead of at the bottom of the current minipage.
61
\footnote[hoptionsi]{htexti}
Inserts a footnote into the current frame. Footnotes will always be shown at the bottom of the current
frame; they will never be “moved” to other frames. As usual, one can give a number as hoptionsi, which
will cause the footnote to use that number. The beamer class adds one additional option:
• frame causes the footnote to be shown at the bottom of the frame. This is normally the default
behavior anyway, but in minipages and certain blocks it makes a difference. In a minipage, the
footnote is usually shown as part of the minipage rather than as part of the frame.
You can change the way footnotes are typeset by changing the footnote templates, see Section 8.4.14
62
Note that, most frustratingly, there is no graphic format that can be read by both pdflatex and dvips.
lyx You can use the usual “Insert Graphic” command to insert a graphic.
The commands \includegraphics, \pgfuseimage, and \pgfimage are overlay-specification-aware in
beamer. If the overlay specification does not apply, the command has no effect. This is useful for creating
a simple animation where each picture of the animation resides in a different file:
\frame{
\includegraphics<1>[height=2cm]{step1.pdf}
\includegraphics<2>[height=2cm]{step2.pdf}
\includegraphics<3>[height=2cm]{step3.pdf}
}
\documentclass[brown]{beamer}
Changes the main color of the navigation and title bars to a brownish color.
63
\documentclass[red]{beamer}
Changes the main color of the navigation and title bars to a reddish color.
\documentclass[blackandwhite]{beamer}
Changes the main color of the navigation and title bars to monochrome.
\beamersetaveragebackground{hcolor expressioni}
Installs the given color as the average background color. See the xcolor package for the syntax of color
expressions.
Example: \beamersetaveragebackground{red!10}
If you use the commands from Section 8.4.5 for installing a background coloring, the average background
color is computed automatically for you. When you directly use the command \usebackgroundtemplate,
you should must set the average background color afterward.
This commands allows you to specify in a quite general way how a covered item should be rendered. You can
even specify different ways of rendering the item depending on how long it will take before this item is shown
or for how long it has already been covered once more. The transparency effect will automatically apply to
all colors, except for the colors in images and shadings. For images and shadings there is a workaround, see
the documentation of the pgf package.
As a convenience, several commands install a predefined uncovering behavior.
\beamertemplatetransparentcovered
Makes all covered text quite transparent.
\beamertemplatetransparentcoveredmedium
Makes all covered text even more transparent.
\beamertemplatetransparentcoveredhigh
Makes all covered text highly transparent.
64
\beamertemplatetransparentcoveredhigh
Makes all covered text extremely transparent, but not totally.
\beamertemplatetransparentcovereddynamic
Makes all covered text quite transparent, but is a dynamic way. The longer it will take till the text is
uncovered, the stronger the transparency.
\beamertemplatetransparentcovereddynamicmedium
Like the previous command, only it the “range” of dynamics is smaller.
6.3 Animations
A word of warning first: Animations can be very distracting. No matter how cute a rotating, flying theorem
seems to look and no matter how badly you feel your audience needs some action to keep it happy, most
people in the audience will typically feel you are making fun of them.
65
6.3.2 Animations Created by Showing Slides in Rapid Succession
You can create an animation in a portable way by using the overlay commands of the beamer package
to create a series of slides that, when shown in rapid succession, present an animation. This is a flexible
approach, but such animations will typically be rather static since it will take some time to advance from one
slide to the next. This approach is mostly useful for animations where you want to explain each “picture”
of the animation. When you advance slides “by hand,” that is, by pressing a forward button, it typically
takes at least a second for the next slide to show.
More “lively” animations can be created by relying on a capability of the viewer program. Some programs
support showing slides only for a certain number of seconds during a presentation (for the Acrobat Reader
this works only in full-screen mode). By setting the number of seconds to zero, you can create a rapid
succession of slides.
To facilitate the creation of animations using this feature, the following commands can be used: \animate
and \animatevalue.
\animate<hoverlay specificationi>
The slides specified by hoverlay specificationi will be shown only as shortly as possible.
Example:
\frame{
\frametitle{A Five Slide Animation}
\animate<2-4>
The first slide is shown normally. When the second slide is shown
(presumably after pressing a forward key), the second, third, and
fourth slides ‘‘flash by.’’ At the end, the content of the fifth
slide is shown.
This text (and all other frame content) will fade out when the
second slide is shown. This even works with
{\color{green!90!black}colored} \alert{text}.
\end{colormixin}
}
\newcount\opaqueness
\newdimen\offset
\frame{
\frametitle{Flying Theorems (You Really Shouldn’t!)}
\animate<2-14>
\animatevalue<1-15>{\opaqueness}{100}{0}
\animatevalue<1-15>{\offset}{0cm}{-5cm}
66
\begin{colormixin}{\the\opaqueness!averagebackgroundcolor}
\hskip\offset
\begin{minipage}{\textwidth}
\begin{theorem}
This theorem flies out.
\end{theorem}
\end{minipage}
\end{colormixin}
\animatevalue<1-15>{\opaqueness}{0}{100}
\animatevalue<1-15>{\offset}{-5cm}{0cm}
\begin{colormixin}{\the\opaqueness!averagebackgroundcolor}
\hskip\offset
\begin{minipage}{\textwidth}
\begin{theorem}
This theorem flies in.
\end{theorem}
\end{minipage}
\end{colormixin}
}
\frame{
\pgfuseimage{youngboy}
}
\frame{
\transdissolve
\pgfuseimage{man}
}
The command \transdissolve causes the slide of the second frame to be shown in a “dissolved way.” Note
that the dissolving is a property of the second frame, not of the first one. We could have placed the command
anywhere on the frame.
The transition commands are overlay-specification-aware. We could collapse the two frames into one
frame like this:
\frame{
\only<1>{\pgfuseimage{youngboy}}
\only<2>{\pgfuseimage{man}}
\transdissolve<2>
}
This states that on the first slide the young boy should be shown, on the second slide the old man should
be shown, and when the second slide is shown, it should be shown in a “dissolved way.”
In the following, the different commands for creating transitional effects are listed. All of them take an
optional argument that may contain a list of hkeyi=hvaluei pairs. The following options are possible:
• duration=hsecondsi. Specifies the number of hsecondsi the transition effect needs. Default is one
second, but often a shorter one (like 0.2 seconds) is more appropriate. Viewer applications, especially
Acrobat, may interpret this option in slightly strange ways.
67
• direction=hdegreei. For “directed” effects, this option specifies the effect’s direction. Allowed values
are 0, 90, 180, 270, and for the glitter effect also 315.
article All of these commands are ignored in article mode.
lyx You must insert these commands using TEX-mode.
\transblindshorizontal<hoverlay specificationi>[hoptionsi]
Show the slide as if horizontal blinds where pulled away.
Example: \transblindshorizontal
\transblindsvertical<hoverlay specificationi>[hoptionsi]
Show the slide as if vertical blinds where pulled away.
Example: \transblindsvertical<2,3>
\transboxin<hoverlay specificationi>[hoptionsi]
Show the slide by moving to the center from all four sides.
Example: \transboxin<1>
\transboxout<hoverlay specificationi>[hoptionsi]
Show the slide by showing more and more of a rectangular area that is centered on the slide center.
Example: \transboxout
\transdissolve<hoverlay specificationi>[hoptionsi]
Show the slide by slowly dissolving what was shown before.
Example: \transdissolve[duration=0.2]
\transglitter<hoverlay specificationi>[hoptionsi]
Show the slide with a glitter effect that sweeps in the specified direction.
Example: \transglitter<2-3>[direction=90]
\transsplitverticalin<hoverlay specificationi>[hoptionsi]
Show the slide by sweeping two vertical lines from the sides inward.
Example: \transsplitverticalin
\transsplitverticalout<hoverlay specificationi>[hoptionsi]
Show the slide by sweeping two vertical lines from the center outward.
Example: \transsplitverticalout
\transsplithorizontalin<hoverlay specificationi>[hoptionsi]
Show the slide by sweeping two horizontal lines from the sides inward.
Example: \transsplithorizontalin
\transsplithorizontalout<hoverlay specificationi>[hoptionsi]
Show the slide by sweeping two horizontal lines from the center outward.
Example: \transsplithorizontalout
\transwipe<hoverlay specificationi>[hoptionsi]
Show the slide by sweeping a single line in the specified direction, thereby “wiping out” the previous
contents.
Example: \transwipe[direction=90]
You can also specify how long a given slide should be shown, using the following overlay-specification-
aware command:
\transduration<hoverlay specificationi>{hnumber of secondsi}
In full screen mode, show the slide for hnumber of secondsi. In zero is specified, the slide is shown as
short as possible. This can be used to create interesting pseudo-animations.
Example: \transduration<2>{1}
68
7 Managing Non-Presentation Versions and Material
The beamer package offers different ways of creating special versions of your talk and adding material that
are not shown during the presentation. You can create a handout version of the presentation that can be
distributed to the audience. You can also create a version that is more suitable for a presentation using an
overhead projector. You can add notes for yourself that help you remember what to say for specific slides.
Finally, you can have a completely independent “article” version of your presentation coexist in your main
file. All special versions are created by specifying different class options and rerunning TEX on the main file.
\documentclass[handout]{beamer}
Create a version that uses the handout overlay specifications.
In some cases, you may want a more complex behaviour. For example, if you use many \only commands
to draw an animation. In this case, suppressing all overlay specifications is not such a good idea, since this
will cause all steps of the animation to be shown at the same time. In some cases this is not desirable. Also,
it might be desirable to suppress some \alert commands that apply only to specific slides in the handout.
For a fine-grained control of what is shown on a handout, you can use mode specifications. They specify
which slides of a frame should be shown for a special version, for example for the handout version. As
explained in Section 4.1, a mode specification is written alongside the normal overlay specification inside the
pointed brackets. It is separated from the normal specification by a vertical bar and a space. Here is an
example:
\only<1-3,5-9| handout:2-3,5>{Text}
This specification says: “Normally (in beamer mode), insert the text on slides 1–3 and 5–9. For the handout
version, insert the text only on slides 2, 3, and 5.” If no special mode specification is given for handouts,
the default is “always.” This causes the desirable effect that if you do not specify anything, the overlay
specification is effectively suppressed for the handout.
An especially useful specification is the following:
\only<3| handout:0>{Not shown on handout.}
Since there is no zeroth slide, the text is not shown. Likewise, \alert<3| handout:0>{Text} will not alert
the text on a handout.
You can also use a mode specification for the overlay specification of the \frame command as in the
following example.
\frame<1-| handout:0>{Text...}
This causes the frame to be suppressed in the handout version. Also, you can restrict the presentation such
that only specific slides of the frame are shown on the handout:
\frame<1-| handout:4-5>{Text...}
It is also possible to give only an alternate overlay specification. For example, \alert<handout:0>{...}
causes the text to be always hilighted during the presentation, but never on the handout version. Likewise,
\frame<handout:0>{...} causes the frame to be suppressed for the handout.
Finally, note that it is possible to give more than one alternate overlay specification and in any order.
For example, the following specification states that the text should be inserted on the first three slides in
the presentation, in the first two slides of the transparency version, and not at all in the handout.
\only<trans:1-2| 1-3| handout:0>{Text}
69
If you wish to give the same specification in all versions, you can do so by specifying all: as the version.
For example,
\frame<all:1-2>
{
blah...
}
\documentclass[trans]{beamer}
Create a version that uses the trans overlay specifications.
When printing a presentation using Acrobat, make sure that the option “expand small pages to paper
size” in the printer dialog is enabled. This is necessary, because slides are only 128mm times 96mm.
\frame{
\begin{itemize}
\item<1-> Eggs
\item<2-> Plants
\note[item]<2>{Tell joke about plants.}
\note[item]<2>{Make it short.}
\item<3-> Animals
\end{itemize}
}
70
Outside frames, the command \note. It create a single note page. It is “independent” of any usage of
the \note commands inside the previous frame. If you say \note inside a frame and \note right after it,
two note pages are created.
In the following, the syntax and effects of the \note command inside frames is described:
Next, the syntax and effects of the \note command outside frames is described:
\note[hoptionsi]{hnote texti}
Outside frames, this command creates a note page. This command is not affected by the option
notes=onlyframeswithnotes, see below.
The following hoptionsi may be given:
• itemize will enclose the whole note page in an itemize environment. This is just a convenience.
• enumerate will enclose the whole note page in an enumerate environment.
Example:
\frame{some text}
\note{Talk no more than 1 minute.}
\note[enumerate]
{
\item Stress this first.
\item Then this.
}
\documentclass[notes=hide]{beamer}
Notes are not shown. This is the default in a presentation.
\documentclass[notes=show]{beamer}
Include notes in the output file. Normal slides are also included.
\documentclass[notes=only]{beamer}
Include only the notes in the output file and suppresses all frames. Useful for printing them. If you
specify this command, the .aux and .toc files are not updated. So, if you add a section and reTEX
your presentation, this will not be reflected in the navigation bars (which you do not see anyway since
only notes are output).
71
\documentclass[notes=onlyslideswithnotes]{beamer}
This includes all notes and those slides that contain a \note. Frames that are just “followed” by a
\note command will not be included.
If you use only \note commands, this option will cause the frames and the notes that apply to them to
be nicely paired. This is useful for printing.
Since beamer gives over control to another class almost immediately, none of the usual commands like
\frame and so on are defined in article mode initially. The only command that is guaranteed to be defined
is \mode; which can be used to “comment out” all of beamer’s commands. For example, in your preamble
you might write things like
\mode<presentation>{\usepackage{beamerthemeshadow}}
\mode<article>{\usepackage{fullpage}}
\mode<all>{
\usepackage{times}
\newcommand{\myfavoritecommand}{...}
}
However, for the main text this is very bothersome and there is a much better way: You can include the
package beamerbasearticle. This package will define virtually all of beamer’s commands in a way that is
sensible for the article mode. Also, overlay specifications can be given to commands like \textbf or \item
once beamerbasearticle has been loaded. Note that, except for \item these overlay specifications also
work: by writing \section<presentation>{Name} you will suppress this section command in the article
version. For the exact effects overlay specifications have in article mode, please see the descriptions of the
commands to which you wish to apply them.
72
\usepackage[hoptionsi]{beamerbasearticle}
Makes most beamer commands available for an article.
The following hoptionsi may be given:
• activeospeccharacters will leave the character code of the characters used in overlay specifi-
cations as specified by other packages. Normally, beamer will turn off the special behaviour of
characters like : or ! in styles like french since they clash with the implementation of overlay
specifications. Using this option, you can reinstall the original behaviour at the price of possible
problems when using overlay specifications in the article mode.
• noamsthm will suppress the loading of the amsthm package. No theorems will be defined.
• notheorem will suppress the definition of standard environments like theorem, but amsthm is still
loaded and the \newtheorem command still makes the defined environments overlay-specification-
aware. Using this option allows you to define the standard environments in whatever way you like
while retaining the power of the extensions to amsthm.
• envcountsect causes theorem, definitions and the like to be numbered with each section. Thus
instead of Theorem 1 you get Theorem 1.1. I recommend using this option.
• noxcolor will suppress the loading of the xcolor package. No colors will be defined.
There is one remaining problem: While the article version can easily TEX the whole file, even in the
presence of commands like \frame<2>, we do not want the special article text to be inserted into out original
beamer presentations. That means, we would like all text between frames to be suppressed. More precisely,
we want all text except for commands like \section and so on to be suppressed. This behaviour can be
enforced by specifying the option ignorenonframetext in the presentation version. The option will insert
a \mode* at the beginning of your presentation.
The following example shows a simple usage of the article mode:
\documentclass[class=article,a4paper]{beamer}
\documentclass[ignorenonframetext,red]{beamer}
\mode<article>{\usepackage{fullpage}}
\mode<presentation>{\usepackage{beamerthemesplit}}
everyone:
\usepackage[english]{babel}
\usepackage{pgf}
\pgfdeclareimage[height=1cm]{myimage}{filename}
\begin{document}
\section{Introduction}
\frame{
\begin{figure}
% In the article, this is a floating figure,
% In the presentation, this figure is shown in the first frame
\pgfuseimage{myimage}
\end{figure}
}
\section{Main Part}
While this text is not shown in the presentation, the section command
also applies to the presentation.
73
We can add a subsection that is only part of the article like this:
\subsection<article>{Article-Only Section}
\frame{
This text is part both of the article and of the presentation.
\begin{itemize}
\item This stuff is also shown in both version.
\item This too.
\only<article>{\item This particular item is only part
of the article version.}
\item<presentation:only@0> This text is also only part of the article.
\end{itemize}
}
\end{document}
There is one command, whose behaviour is a bit special in the article mode: The line break command
\\. Inside frames, this command has no effect in article mode, except if an overlay specification is present.
Then it has the normal effect dictated by the specification. The reason for this behaviour is that you will
typically inserts lots of \\ commands in a presentation in order to get control over all line breaks. These line
breaks are mostly superfluous in the article mode. If you really want a line break to apply in all versions,
say \\<all>. Note that the command \\ is often redefined by certain environments, so it may not always
be overlay-specification-aware. In such a case you have to write something like \only<presentation>{\\}.
7.4.2 Workflow
The following workflow steps are optional, but they can simplify the creation of the article version.
• In the main file main.tex, delete the first line, which sets the document class.
• Create a file named, say, main.beamer.tex with the following content:
\documentclass[ignorenonframetext]{beamer}
\input{main.tex}
• Create an extra file named, say, main.article.tex with the following content:
\documentclass[class=article]{beamer}
\usepackage{beamerbasearticle}
\setjobnamebeamerversion{main.beamer}
\input{main.tex}
• You can now run pdflatex or latex on the two files main.beamer.tex and main.article.tex.
The command \setjobnamebeamerversion tells the article version where to find the presentation version.
This is necessary if you wish to include slides from the presentation version in an article as figures.
An example of this workflow approach can be found in the examples subdirectory for files starting with
beamerexample2.
7.4.3 Including Slides from the Presentation Version in the Article Version
If you use the package beamerbasearticle, the \frame command becomes available in article mode.
By adjusting the frame template, you can “mimic” the appearance of frames typeset by beamer in your
articles. However, sometimes you may wish to insert “the real thing” into the article version, that is, a
precise “screenshot” of a slide from the presentation. The commands introduced in the following help you
do exactly this.
74
In order to include a slide from your presentation in your article version, you must do two things: First,
you must place a normal LATEX label on the slide using the \label command. Since this command is overlay-
specification-aware, you can also select specific slides of a frame. Also, by adding the option label=hnamei
to a frame, a label hnamei<hslide number i> is automatically added to each slide of the frame.
Once you have labeled a slide, you can use the following command in your article version to insert the
slide into it:
\includeslide[hoptionsi]{hlabel namei}
This command calls \pgfimage with the given hoptionsi for the file specified by
\setjobnamebeamerversionhfilenamei
Furthermore, the option page=hpage of label namei is passed to \pgfimage, where the hpage of label
namei is read internally from the file hfilenamei.snm.
Example:
\article
\begin{figure}
\begin{center}
\includeslide[height=5cm]{slide1}
\end{center}
\caption{The first slide (height 5cm). Note the partly covered second item.}
\end{figure}
\begin{figure}
\begin{center}
\includeslide{slide2}
\end{center}
\caption{The second slide (original size). Now the second item is also shown.}
\end{figure}
The exact effect of passing the option page=hpage of label namei to the command \pgfimage is explained
in the documentation of pgf. In essence, the following happens:
• For old version of pdflatex and for any version of latex together with dvips, the pgf package will
look for a file named
hfilenamei.pagehpage of label namei.hextensioni
For each page of your .pdf or .ps file that is to be included in this way, you must create such a file
by hand. For example, if the PostScript file of your presentation version is named main.beamer.ps
and you wish to include the slides with page numbers 2 and 3, you must create (single page) files
main.beamer.page2.ps and main.beamer.page3.ps “by hand” (or using some script). If these files
cannot be found, pgf will complain.
• For new versions of pdflatex, pdflatex also looks for the files according to the above naming scheme.
However, if it fails to find them (because you have not produced them), it uses a special mechanism
to directly extract the desired page from the presentation file main.beamer.pdf.
75
• all refers to all modes.
• presentation refers to the first three modes, that is, to all modes except for the article mode.
Depending on the current mode, you may wish to have certain text inserted only in that mode. For
example, you might wish a certain frame or a certain table to be left out of your article version. In some
situations, you can use the \only command for this purpose. However, the command \mode, which is
described in the following, is much more powerful than \only.
The command actually comes in three “flavors,” which only slightly differ in syntax. The first, and
simplest, is the version that takes one argument. It behaves essentially the same way as \only.
\mode<hmode specificationi>{htexti}
Causes the htexti to be inserted only for the specified modes. Recall that a hmode specificationi is just
an overlay specification in which no slides are mentioned.
Example:
\mode<article>{Extra detail mentioned only in the article version.}
\mode
<beamer| trans>
{\frame{\tableofcontents[current]}}
The second flavor of the \mode command takes no argument. “No argument” means that it is not followed
by an opening brace, but any other symbol.
\mode<hmode specificationi>
In the specified mode, this command actually has no effect. The interesting part is the effect in the
non-specified modes: In these modes, the command causes TEX to enter a kind of “gobbling” state. It
will now ignore all following lines until the next line that has a sole occurrence of one of the following
commands: \mode, \mode*, \begin{document}, \end{document}. Even a comment on this line will
make TEX skip it.
When TEX encounters a single \mode command, it will execute this command. If the command is \mode
command of the first flavor, TEX will resume its “gobbling” state after having inserted (or not inserted)
the argument of the \mode command. If the \mode command is of the second flavor, it takes over.
Using this second flavor of \mode is less convenient than the first, but there are two reasons why you
might need to use it:
• The line-wise gobbling is much faster than the gobble of the third flavor, explained below.
• The first flavor reads its argument completely. This means, it cannot contain any verbatim text.
• If the text mainly belongs to one mode with only small amounts of text from another mode inserted,
this second flavor is nice to use.
Note: When searching line-wise for a \mode command to shake it out of its gobbling state, TEX will not
recognize a \mode command if a mode specification follows on the same line. Thus, such a specification
must be given on the next line.
Note: When a TEX file ends, TEX must not be in the gobbling state. Switch this state off using \mode
on one line and <all> on the next.
Example:
\mode<article>
\mode
<presentation>
{ % this text is inserted only in presentation mode
\frame{\tableofcontents[current]}}
76
is not inserted in presentation mode
\mode
<presentation>
\mode*
The effect of this mode is to ignore all text outside frames in the presentation modes. In article mode
it has no effect.
This mode should only be entered outside of frames. Once entered, if the current mode is a presentation
mode, TEX will enter a gobbling state similar to the gobbling state of the second “flavor” of the \mode
command. The difference is that the text is now read token-wise, not line-wise. The text is gobbled token
by token until one of the following tokens is found: \mode, \frame, \againframe, \part, \section,
\subsection, \appendix, \note, and \end{document} (this is not really a token, but it is recognized
anyway).
Once one of these commands is encountered, the gobbling stops and the command is executed. However,
all of these commands restore the mode that was in effect when they started. Thus, once the command
is finished, TEX returns to its gobbling.
Normally, \mode* is exactly what you want TEX to do outside of frames: ignore everything except for
the above-mentioned commands outside frames in presentation mode. However, there are cases in
which you have to use the second flavor of the \mode command instead: If you have verbatim text
that contains one of the commands, if you have very long text outside frames, or if you wish some text
outside a frame (like a definition) to be executed also in presentation mode.
The class option ignorenonframetext will switch on \mode* at the beginning of the document.
Example:
\begin{document}
\mode*
\frame
{
This text is shown both in article and presentation mode.
}
\frame<presentation>
{ this frame is shown only in the presentation. }
\end{document}
8 Customization
8.1 Fonts
8.1.1 Serif Fonts and Sans-Serif Fonts
By default, the beamer class uses the Computer Modern sans-serif fonts for typesetting a presentation. The
Computer Modern font family is the original font family designed by Donald Knuth himself for the TEX
program. A sans-serif font is a font in which the letters do not have serifs (from French sans, which means
“without”). Serifs are the little hooks at the ending of the strokes that make up a letter. The font you are
currently reading is a serif font. By comparison, this text is in a sans-serif font.
77
The choice Computer Modern sans-serif had the following reasons:
• The Computer Modern family has a very large number of symbols available that go well together.
• Sans-serif fonts are (generally considered to be) easier to read when used in a presentation. In low
resolution rendering, serifs decrease the legibility of a font.
While these reasons are pretty good, you still might wish to change the font:
• The Computer Modern fonts are a bit boring if you have seen them too often. Using another font (but
not Times!) can give a fresh look.
• Other fonts, especially Times, are sometime rendered better since they seem to have better internal
hinting.
• A presentation typeset in a serif font creates a conservative impression, which might be exactly what
you wish to create.
• On projections with a very high resolutions serif text is just as readable as sans serif text.
You must decide whether the text should be typeset in sans-serif or in serif. To choose this, use either
the class option sans or serif. By default, sans is selected, so you do not need to specify this.
\documentclass[sans]{beamer}
Use a sans-serif font during the presentation. (Default.)
\documentclass[serif]{beamer}
Use a serif font during the presentation.
\documentclass[mathsans]{beamer}
Override the math font to be a sans-serif font.
\documentclass[mathserif]{beamer}
Override the math font to be a serif font.
The command \mathrm will always produce upright (not slanted), serif text and the command \mathsf
will always produce upright, sans-serif text. The command \mathbf will produce upright, bold-face, sans-
serif or serif text, depending on whether mathsans or mathserif is used.
To produce an upright, sans-serif or serif text, depending on whether mathsans or mathserif is used,
you can use for instance the command \operatorname from the amsmath package. Using this command
instead of \mathrm or \mathsf directly will automatically adjust upright mathematical text if you switch
from sans-serif to serif or back.
78
8.1.3 Font Families
Independently of the serif/sans-serif choice, you can switch the document font. To do so, you should use one
of the prepared packages of LATEX’s font mechanism. For example, to change to Times/Helvetica, simply
add
\usepackage{times}
in your preamble. Note that if you do not specify serif as a class option, Helvetica (not Times) will be
selected as the text font.
There may be many other fonts available on your installation. Typically, at least some of the following
packages should be available: avant, bookman, chancery, charter, euler, helvet, mathtime, mathptm,
newcent, palatino, pifont, times, utopia.
If you use times together with the serif option, you may wish to include also the package mathptm.
If you use the mathtime package (you have to buy some of the fonts), you also need to specify the serif
option.
If you use professional fonts (fonts that you buy and that come with a complete set of every symbol
in all modes), you may need to specify the class option professionalfont. This will tell beamer that it
should not meddle with the fonts you use. The reason is that beamer normally replaces certain character
glyphs in mathematical text by more appropriate versions. For example, beamer will normally replace
glyphs such that the italic characters from the main font are used for variables in mathematical text. If
your professional font package takes care of this already, beamer’s meddling should be switched off. Note
that beamer’s substitution is automatically turned off if one of the following packages is loaded: mathtime,
mathpmnt, lucidabr, mtpro, and hvmath. If your favorite professional font package is not among these, use
the professionalfont option (and write me an email, so that the package can be added).
\documentclass[professionalfont]{beamer}
Deactivates beamer’s internal font replacements for mathematical text. This option should be used if
you use a professional font package that sets up all mathematical fonts correctly.
\documentclass[8pt]{beamer}
This is way too small. Requires that the package extsize is installed.
\documentclass[9pt]{beamer}
This is also too small. Requires that the package extsize is installed.
\documentclass[10pt]{beamer}
If you really need to fit much onto each frame, use this option. Works without extsize.
\documentclass[smaller]{beamer}
Same as the 10pt option.
\documentclass[11pt]{beamer}
The default font size. You need not specify this option.
\documentclass[12pt]{beamer}
Makes all fonts a little bigger, which makes the text more readable. The downside is that less fits onto
each frame.
79
\documentclass[bigger]{beamer}
Same as the 12pt option.
\documentclass[14pt]{beamer}
Makes all fonts somewhat bigger. Requires extsize to be installed.
\documentclass[17pt]{beamer}
This is about the default size of PowerPoint. Requires extsize to be installed.
\documentclass[20pt]{beamer}
This is really huge. Requires extsize to be installed.
80
8.3 Themes
Just like LATEX in general, the beamer class tries to separate the contents of a text from the way it is typeset
(displayed). There are two ways in which you can change how a presentation is typeset: you can specify a
different theme and you can specify different templates. A theme is a predefined collection of templates.
There exist a number of different predefined themes that can be used together with the beamer class.
Feel free to add further themes. Themes are used by including an appropriate LATEX style file, using the
standard \usepackage command.
\usepackage{beamerthemebars}
Example:
Outline Models Power of the Model Limitations of the Model Summary Outline Models Power of the Model Limitations of the Model Summary
Further Reading
Lane Hemaspaandra, Proshanto Mukherji, Till Tantau Universities of Rochester and Berlin Lane Hemaspaandra, Proshanto Mukherji, Till Tantau Universities of Rochester and Berlin
Computation with Absolutely No Space Overhead Computation with Absolutely No Space Overhead
Example:
\usepackage[headheight=12pt,footheight=12pt]{beamerthemeboxes}
For this theme, you can specify an arbitrary number of templates for the boxes in the head line and in
the foot line. You can add a template for another box by using the following commands.
81
\usepackage{beamerthemeclassic}
Example:
Outline Models Power of the Model Limitations of the Model Summary Outline Models Power of the Model Limitations of the Model Summary
\usepackage{beamerthemelined}
Example:
Outline Models Power of the Model Limitations of the Model Summary Outline Models Power of the Model Limitations of the Model Summary
Further Reading
Lane Hemaspaandra, Proshanto Mukherji, Till Tantau: Universities of Rochester and Berlin Lane Hemaspaandra, Proshanto Mukherji, Till Tantau: Universities of Rochester and Berlin
Computation with Absolutely No Space Overhead Computation with Absolutely No Space Overhead
\usepackage{beamerthemeplain}
Example:
\usepackage[width=hsidebar widthi,dark,tab]{beamerthemesidebar}
The option width sets the width of the sidebar to hsidebar widthi. The option dark makes the side bar
and the whole theme darked. The option tab causes the current section or subsection to be hilighted
by changing the background behind the entry, rather than hilighting the entry itself.
Example: \usepackage{beamersidebar}
82
Computation with Computation with
Absolutely
No Space Overhead
For Further Reading Absolutely
No Space Overhead
Lane Hemaspaandra, Lane Hemaspaandra,
Proshanto Mukherji, Proshanto Mukherji,
Till Tantau Till Tantau
Computation with
Outline Outline
Absolutely No Space Overhead Models
Standard Model
A. Salomaa. Models
Standard Model
Our Model Formal Languages. Our Model
Example: \usepackage[tab]{beamersidebar}
Computation with Computation with
Absolutely
No Space Overhead
For Further Reading Absolutely
No Space Overhead
Lane Hemaspaandra, Lane Hemaspaandra,
Proshanto Mukherji, Proshanto Mukherji,
Till Tantau Till Tantau
Computation with
Outline Outline
Absolutely No Space Overhead Models
Standard Model
A. Salomaa. Models
Standard Model
Our Model Formal Languages. Our Model
Example: \usepackage[dark]{beamersidebar}
Computation with Computation with
Absolutely
No Space Overhead
For Further Reading Absolutely
No Space Overhead
Lane Hemaspaandra, Lane Hemaspaandra,
Proshanto Mukherji, Proshanto Mukherji,
Till Tantau Till Tantau
Computation with
Outline Outline
Absolutely No Space Overhead Models
Standard Model
A. Salomaa. Models
Standard Model
Our Model Formal Languages. Our Model
Example: \usepackage[dark,tab]{beamersidebar}
Computation with Computation with
Absolutely
No Space Overhead
For Further Reading Absolutely
No Space Overhead
Lane Hemaspaandra, Lane Hemaspaandra,
Proshanto Mukherji, Proshanto Mukherji,
Till Tantau Till Tantau
Computation with
Outline Outline
Absolutely No Space Overhead Models
Standard Model
A. Salomaa. Models
Standard Model
Our Model Formal Languages. Our Model
83
\usepackage{beamerthemeshadow}
Example:
Outline Outline
Models Models
Summary
Power of the Model Power of the Model
Further Reading
Limitations of the Model Limitations of the Model
Summary Summary
Hemaspaandra et al. Computation with Absolutely No Space Overhead Hemaspaandra et al. Computation with Absolutely No Space Overhead
\usepackage{beamerthemesplit}
Example:
Outline Outline
Models Models
Summary
Power of the Model Power of the Model
Further Reading
Limitations of the Model Limitations of the Model
Summary Summary
Lane Hemaspaandra, Proshanto Mukherji, Till Tantau Computation with Absolutely No Space Overhead Lane Hemaspaandra, Proshanto Mukherji, Till Tantau Computation with Absolutely No Space Overhead
\usepackage{beamerthemetree}
Example:
Computation with Absolutely No Space Overhead Computation with Absolutely No Space Overhead
Summary
Further Reading
84
\usepackage[bar]{beamerthemetree}
Example:
Computation with Absolutely No Space Overhead Computation with Absolutely No Space Overhead
Summary
Further Reading
8.4 Templates
8.4.1 Introduction to Templates
If you only wish to modify a small part of how your presentation is rendered, you do not need to create a
whole new theme. Instead, you can modify an appropriate template.
A template specifies how a part of a presentation is typeset. For example, the frame title template
dictates where the frame title is put, which font is used, and so on.
As the name suggests, you specify a template by writing the exact LATEX code you would also use
when typesetting a single frame title by hand. Only, instead of the actual title, you use the command
\insertframetitle.
For example, suppose we would like to have the frame title typeset in red, centered, and boldface. If we
were to typeset a single frame title by hand, it might be done like this:
\frame
{
\begin{centering}
\color{red}
\textbf{The Title of This Frame.}
\par
\end{centering}
Blah, blah.
}
In order to typeset the frame title in this way on all slides, we can change the frame title template as
follows:
\useframetitletemplate{
\begin{centering}
\color{red}
\textbf{\insertframetitle}
\par
\end{centering}
}
We can then use the following code to get the desired effect:
\frame
{
\frametitle{The Title of This Frame.}
Blah, blah.
}
When rendering the frame, the beamer class will use the code of the frame title template to typeset the
frame title and it will replace every occurrence of \insertframetitle by the current frame title.
85
In the following subsections all commands for changing templates are listed, like the above-mentioned
command \useframetitletemplate. Inside these commands, you should use the \insertxxxx commands,
which are listed following the template changing commands. Although the \insertxxxx commands are
listed alongside the templates for which they make the most sense, you can (usually) also use them in all
other templates.
article In article mode, most of the template mechanism is switched off and has no effect. However, a few
templates are also available. If this is the case, it is specially indicated.
Some of the below subsections start with commands for using predefined templates. Calling one of them
will change a template in a predefined way, making it unnecessary to worry about how exactly one creates,
say, these cute little balls in different sizes. Using them, you can use, for example, your favorite theme
together with a shading background and a numbered table of contents.
Here are a few hints that might be helpful when you wish to redefine a template:
• Usually, you might wish to copy code from an existing template. The code often takes care of some
things that you may not yet have thought about. The file beamerbasetemplates might be useful
starting point.
• When copying code from another template and when inserting this code in the preamble of your
document (not in another style file), you may have to “switch on” the at-character (@). To do so, add
the command \makeatletter before the \usexxxtemplate command and the command \makeatother
afterward.
• Most templates having to do with the frame components (head lines, side bars, etc.) can only be
changed in the preamble. Other templates can be changed during the document.
• The height of the head line and foot line templates is calculated automatically. This is done by
typesetting the templates and then “having a look” at their heights. This recalculation is done right at
the beginning of the document, after all packages have been loaded and even after these have executed
their \AtBeginDocument initialization.
• The left and right margins of the head and foot line templates are the same as of the normal text. In
order to start the head line and foot line at the page margin, you must insert a negative horizontal
skip using \hskip-\Gm@lmargin. You may wish to add a \hskip-\Gm@rmargin at the end to avoid
having TEX complain about overfull boxes.
• Getting the boxes right inside any template is often a bit of a hassle. You may wish to consult the
TEX book for the glorious details on “Making Boxes.” If your headline is simple, you might also try
putting everything into a pgfpicture environment, which makes the placement easier.
\beamertemplatelargetitlepage
Causes the title page to be typeset with a large font for the title.
\beamertemplateboldtitlepage
Causes the title page to be typeset with a bold font for the title.
86
{\scriptsize\insertinstitute\par}\par\vskip1em
\insertdate\par\vskip1.5em
\inserttitlegraphic
\end{centering}
\vfill
}
If you wish to suppress the head and foot line in the title page, use \frame[plain]{\titlepage}.
\insertauthor
Inserts the author names into a template.
\insertdate
Inserts the date into a template.
\insertinstitute
Inserts the institute into a template.
\inserttitle
Inserts a version of the document title into a template that is useful for the title page.
\inserttitlegraphic
Inserts the title graphic into a template.
\beamertemplatelargepartpage
Causes the part pages to be typeset with a large font for the part name.
\beamertemplateboldpartpage
Causes the part pages to be typeset with a bold font for the part name.
\insertpart
Inserts the current part name.
\insertpartnumber
Inserts the current part number as an Arabic number into a template.
\insertpartromannumber
Inserts the current part number as a Roman number into a template.
87
8.4.4 Frames
Template Installation Commands
8.4.5 Background
Predefined Templates
\beamertemplatesolidbackgroundcolor{hcolor i}
Installs the given color as the background color for every frame.
Example: \beamertemplatesolidbackgroundcolor{white!90!red}
\beamertemplategridbackground[hspacingi]
Installs a light grid as background with lines spaced apart by hspacingi. Default is half a centimeter.
Example: \beamertemplategridbackground[0.2cm]
\usebackgroundtemplate{hbackground templatei}
Installs a new background template. Call \beamersetaveragebackground after you have called this
macro, see Section 6.2.2 for details.
Example:
\usebackgroundtemplate{%
\color{red}%
\vrule height\paperheight width\paperwidth%
}
\beamertemplateplaintoc
Installs a simple table of contents template with indented subsections.
Example: \beamertemplateplaintoc
\beamertemplateballtoc
Installs a table of contents template in which small balls are shown before each section and subsection.
Example: \beamertemplateballtoc
88
\beamertemplatenumberedsectiontoc
Installs a table of contents template in which the sections are numbered.
Example: \beamertemplatenumberedsectiontoc
\beamertemplatenumberedcirclesectiontoc
Installs a table of contents template in which the sections are numbered and the numbers are drawn on
a small circle.
Example: \beamertemplatenumberedcirclesectiontoc
\beamertemplatenumberedballsectiontoc
Installs a table of contents template in which the sections are numbered and the numbers are drawn on
a small ball.
Example: \beamertemplatenumberedballsectiontoc
\beamertemplatenumberedsubsectiontoc
Installs a table of contents template in which the subsections are numbered.
Example: \beamertemplatenumberedsubsectiontoc
\usetemplatetocsection[50!averagebackgroundcolor]
{\color{structure}\inserttocsection}
\usetemplatetocsection[50!averagebackgroundcolor]
{\leavevmode\leftskip=1.5em\color{black}\inserttocsubsection\par}
89
8.4.7 Bibliography
Predefined Templates
\beamertemplatetextbibitems
Shows the citation text in front of references in a bibliography instead of a small symbol.
\beamertemplatearrowbibitems
Changes the symbol before references in a bibliography to a small arrow.
\beamertemplatebookbibitems
Changes the symbol before references in a bibliography to a small book icon.
\beamertemplatearticlebibitems
Changes the symbol before references in a bibliography to a small article icon. (Default)
\usebibitemtemplate{hcitation templatei}
Installs a template for the citation text before the entry. (The “label” of the item.)
Example: \usebibitemtemplate{\color{structure}\insertbiblabel}
\insertbiblabel
Inserts the current citation label into a template.
\beamertemplateboldcenterframetitle
Typesets the frame title using a bold face and centers it.
\beamertemplatelargeframetitle
Typesets the frame title using a large face and flushes it left.
90
Template Installation Commands
article This command is also available in article mode. By default, a new paragraph is created. You may
wish to install a template that will simply suppress the frame title.
\insertframetitle
Inserts the current frame title into a template.
\beamertemplateheadempty
Makes the head line empty.
\beamertemplatefootempty
Makes the foot line empty.
\beamertemplatefootpagenumber
Shows only the page number in the foot line.
91
Inserts for these Templates
\insertframenumber
Inserts the number of the current frame (not slide) into a template.
\inserttotalframenumber
Inserts the total number of the frames (not slides) into a template. The number is only correct on the
second run of TEX on your document.
\insertlogo
Inserts the logo(s) into a template.
\insertnavigation{hwidthi}
Inserts a horizontal navigation bar of the given hwidthi into a template. The bar lists the sections and
below them mini frames for each frame in that section.
\insertpagenumber
Inserts the current page number into a template.
\insertsection
Inserts the current section into a template.
\insertsectionnavigation{hwidthi}
Inserts a vertical navigation bar containing all sections, with the current section hilighted.
\insertshortauthor[hoptionsi]
Inserts the short version of the author into a template. The text will be printed in one long line, line
breaks introduced using the \\ command are suppressed. The following hoptionsi may be given:
• width=hwidthi causes the text to be put into a multi-line minipage of the given size. Line breaks
are still suppressed by default.
• center centers the text inside the minipage created using the width option, rather than having it
left aligned.
• respectlinebreaks causes line breaks introduced by the \\ command to be honored.
Example: \insertauthor[width={3cm},center,respectlinebreaks]
\insertshortdate[hoptionsi]
Inserts the short version of the date into a template. The same options as for \insertshortauthor
may be given.
\insertshortinstitute[hoptionsi]
Inserts the short version of the institute into a template. The same options as for \insertshortauthor
may be given.
\insertshortpart[hoptionsi]
Inserts the short version of the part name into a template. The same options as for \insertshortauthor
may be given.
92
\insertshorttitle[hoptionsi]
Inserts the short version of the document title into a template. Same options as for \insertshortauthor
may be given.
\insertsubsection
Inserts the current subsection into a template.
\insertsubsectionnavigation{hwidthi}
Inserts a vertical navigation bar containing all subsections of the current section, with the current
subsection hilighted.
\insertsubsectionnavigationhorizontal{hwidthi}{hleft inserti}{hright inserti}
See \insertsectionnavigationhorizontal.
\insertverticalnavigation{hwidthi}
Inserts a vertical navigation bar of the given hwidthi into a template. The bar shows a little ta-
ble of contents. The individual lines are typeset using the templates \usesectionsidetemplate and
\usesubsectionsidetemplate.
\insertvrule{hcolor expressioni}{hthicknessi}
Inserts a rule of the given color and hthicknessi into a template.
\useleftsidebarbackgroundtemplate{htemplatei}
The template is shown behind whatever is shown in the left side bar.
Example:
\useleftsidebarbackgroundtemplate
{\color{red}\vrule height\paperheight width\beamer@leftsidebar}
93
\useleftsidebarcolortemplate{hcolor expressioni}
Uses the given color as background for the side bar.
Example:
\useleftsidebarcolortemplate{\color{red}}
\useleftsidebarcolortemplate{\color[rgb]{1,0,0.5}}
8.4.11 Buttons
Predefined Templates
\beamertemplateoutlinebuttons
Renders buttons as rectangles with rounded left and right border. Only the border (outline) is painted.
\beamertemplatesolidbuttons
Renders buttons as filled rectangles with rounded left and right border.
94
Template Installation Commands
\usebuttontemplate{hbutton templatei}
Installs a new button template. This template is invoked whenever a button should be rendered.
Example:
\usebuttontemplate{\color{structure}\insertbuttontext}
Inserts
Inside the button template, the button text can be accessed via the following command:
\insertbuttontext
Inserts the text of the current button into a template. When called by button creation commands, like
\beamerskipbutton, the symbol will be part of this text.
The button creation commands automatically add the following three inserts to the text to be rendered
by \insertbuttontext:
\insertgotosymbol
Inserts a small right-pointing arrow.
\insertskipsymbol
Inserts a double right-pointing arrow.
\insertreturnsymbol
Inserts a small left-pointing arrow.
\beamertemplatecircleminiframe
Changes the symbols in a navigation bar used to represent a frame to a small circle.
\beamertemplatecircleminiframeinverted
Changes the symbols in a navigation bar used to represent a frame to a small circle, but with the colors
inverted. Use this if the navigation bar is shown on a dark background.
\beamertemplatesphereminiframe
Changes the symbols in a navigation bar used to represent a frame to a small spheres.
\beamertemplatesphereminiframeinverted
Changes the symbols in a navigation bar used to represent a frame to a small spheres, but with the
colors inverted. Use this if the navigation bar is shown on a structure background.
\beamertemplateboxminiframe
Changes the symbols in a navigation bar used to represent a frame to a small box.
\beamertemplateticksminiframe
Changes the symbols in a navigation bar used to represent a frame to a small vertical bar of varying
length.
95
Template Installation Commands
\beamertemplatenavigationsymbolsempty
Suppresses all navigation symbols.
\beamertemplatenavigationsymbolsframe
Shows only the frame symbol as navigation symbol.
\beamertemplatenavigationsymbolsvertical
Organizes the navigation symbols vertically.
\beamertemplatenavigationsymbolshorizontal
Organizes the navigation symbols horizontally.
96
Template Installation Commands
\usenavigationsymbolstemplate{hsymbols templatei}
Installs a new symbols template. This template is invoked by themes at the place where the navigation
symbols should be shown.
Example:
\usenavigationsymbolstemplate{\vbox{%
\hbox{\insertslidenavigationsymbols}
\hbox{\insertframenavigationsymbols}
\hbox{\insertsubsectionnavigationsymbols}
\hbox{\insertsectionnavigationsymbols}
\hbox{\insertdocnavigationsymbols}
\hbox{\insertbackfindforwardnavigationsymbols}}}
\insertslidenavigationsymbols
Inserts the slide navigation symbol, see Section 5.3.2.
\insertframenavigationsymbols
Inserts the frame navigation symbol, see Section 5.3.2.
\insertsubsectionnavigationsymbols
Inserts the subsection navigation symbol, see Section 5.3.2.
\insertsectionnavigationsymbols
Inserts the section navigation symbol, see Section 5.3.2.
\insertdocnavigationsymbols
Inserts the presentation navigation symbol and (if necessary) the appendix navigation symbol, see
Section 5.3.2.
\insertbackfindforwardnavigationsymbols
Inserts a back, a find, and a forward navigation symbol, see Section 5.3.2.
8.4.14 Footnotes
Template Installation Commands
\usefootnotetemplate{hfootnote templatei}
Example:
\usefootnotetemplate{
\parindent 1em
\noindent
\hbox to 1.8em{\hfil\insertfootnotemark}\insertfootnotetext}
\insertfootnotemark
Inserts the current footnote mark (like a raised number) into a template.
\insertfootnotetext
Inserts the current footnote text into a template.
97
8.4.15 Captions
Predefined Templates
\beamertemplatecaptionwithnumber
Changes the caption template such that the number of the table or figure is also shown.
\beamertemplatecaptionownline
Changes the caption template such that the word “Table” or “Figure” has its own line.
\usecaptiontemplate{hcaption templatei}
Example:
\usecaptiontemplate{
\small
\structure{\insertcaptionname~\insertcaptionnumber:}
\insertcaption
}
\insertcaption
Inserts the text of the current caption into a template.
\insertcaptionname
Inserts the name of the current caption into a template. This word is either “Table” or “Figure” or, if
the babel package is used, some translation thereof.
\insertcaptionnumber
Inserts the number of the current figure or table into a template.
\beamertemplateballitem
Changes the symbols shown in an itemize and an enumerate environment to small plastic balls.
\beamertemplatedotitem
Changes the symbols shown in an itemize environment to dots.
\beamertemplatetriangleitem
Changes the symbols shown in an itemize environment to triangles.
\beamertemplateenumeratealpha
Changes the labels of first-level enumerations to “1.”, “2.”, “3.”, and so on, and to “1.1”, “1.2”, “1.3”,
and so on for the second level.
\useenumerateitemtemplate{htemplatei}
The htemplatei is used to render the default item in the top level of an enumeration.
Example: \useenumerateitemtemplate{\insertenumlabel}
98
\useitemizeitemtemplate{htemplatei}
The htemplatei is used to render the default item in the top level of an itemize list.
Example: \useitemizeitemtemplate{\pgfuseimage{mybullet}}
\usesubitemizeitemtemplate{htemplatei}
The htemplatei is used to render the default item in the second level of an itemize list.
Example: \usesubitemizeitemtemplate{\pgfuseimage{mysubbullet}}
\usesubsubitemizeitemtemplate{htemplatei}
The htemplatei is used to render the default item in the third level of an itemize list.
Example: \usesubsubitemizeitemtemplate{\pgfuseimage{mysubsubbullet}}
\useenumerateitemtemplate{htemplatei}
The htemplatei is used to render the default item in the top-level of an enumeration.
Example: \useenumerateitemtemplate{\insertenumlabel}
\useenumerateitemminitemplate{htemplatei}
The htemplatei is used to render the items in an enumeration where the optional argument hmini
templatei is used (see Section 5.4.1).
Example: \useenumerateitemminitemplate{\color{structure}\insertenumlabel}
\usesubenumerateitemtemplate{htemplatei}
The htemplatei is used to render the default item in the second level of an enumeration.
Example: \usesubenumerateitemtemplate{\insertenumlabel-\insertsubenumlabel}
\usesubsubenumerateitemtemplate{htemplatei}
The htemplatei is used to render the default item in the third level of an enumeration.
Example:
\usesubsubenumerateitemtemplate
{\insertenumlabel-\insertsubenumlabel-\insertsubsubenumlabel}
99
\usesubsubenumeratetemplate{hbegin texti}{hend texti}
The hbegin texti is inserted at the beginning of a third-level enumeration, the hend texti at its end.
Example: \usesubsubenumeratetemplate{\begin{footnotesize}}{\end{footnotesize}}
\usedescriptiontemplate{hdescription templatei}{hdefault widthi}
The hdefault widthi is used as width of the default item, if no other width is specified; the width
\labelsep is automatically added to this parameter.
Example: \usedescriptionitemtemplate{\color{structure}\insertdescriptionitem}{2cm}
100
Template Installation Commands
\useblocktemplate{hblock beginning templatei}{hblock end templatei}
Example:
\useblocktemplate
{%
\medskip%
{\color{blockstructure}\textbf{\insertblockname}}%
\par%
}
{\medskip}
article This command is also available in article mode.
\usealertblocktemplate{hblock beginning templatei}{hblock end templatei}
Example:
\usealertblocktemplate
{%
\medskip
{\alert{\textbf{\insertblockname}}}%
\par}
{\medskip}
article This command is also available in article mode.
\useexampleblocktemplate{hblock beginning templatei}{hblock end templatei}
Example:
\useexampleblocktemplate
{%
\medskip
\begingroup\color{darkgreen}{\textbf{\insertblockname}}
\par}
{%
\endgroup
\medskip
}
article This command is also available in article mode.
101
Template Installation Commands
Example: In the following example, all font “suggestions” for the environment are suppressed or ignored;
and the theorem number is suppressed.
\usetheoremtemplate{%
\normalfont% ignore body font
\begin{\inserttheoremblockenv}
{%
\inserttheoremname
\ifx\inserttheoremaddition\@empty\else\ (\inserttheoremaddition)\fi%
}%
}{\end{\inserttheoremblockenv}}
\inserttheoremblockenv
This will normally expand to block, but if a theorem that has theorem style example is typeset, it will
expand to exampleblock. Thus you can use this insert to decide which environment should be used
when typesetting the theorem.
\inserttheoremheadfont
This will expand to a font chainging command that switches to the font to be used in the head of the
theorem. By not inserting it, you can ignore the head font.
\inserttheoremname
This will expand to the name of the environment to be typeset (like “Theorem” or “Corollary”).
\inserttheoremnumber
This will expand to the number of the current theorem preceeded by a space or to nothing, if the current
theorem does not have a number.
\inserttheoremaddition
This will expand to the optional argument given to the environment or will be empty, if there was no
optional argument.
\inserttheorempunctuation
This will expand to the punctuation character for the current environment. This is usually a period.
102
8.4.20 Verse, Quotation and Quote Environments
Template Installation Commands
\beamertemplatenoteplain
Causes all note pages to contain only the note text.
\beamertemplatenotecompress
Causes the “routing information” at the top of a note to be smaller.
\usetemplatenote{hnote templatei}
Each note is typeset by inserting the hnote templatei. The template should contain a mentioning of the
insert \insertnote, which will contain the note text.
Example: \usetemplatenote{\tiny\insertnote}
\insertnote
Inserts the text of the current note into the template.
\insertslideintonotes{hmagnificationi}
Inserts a “mini picture” of the last slide into the current note. The slide will be scaled by the given
magnification.
Example: \insertslideintonotes{0.25}
This will give a mini slide whose width and height are one fourth of the usual size.
103
9.1 Piecewise Uncovering
9.1.1 Uncovering an Enumeration Piecewise
A common usage of overlays is to show a list of points in an enumeration in a piecewise fashion. The easiest
and most flexible way to do this is the following:
\begin{itemize}
\item<1-> First point.
\item<2-> Second point.
\item<3-> Third point.
\end{itemize}
The advantage of this approach is that you retain total control over the order in which items are shown.
By chaning, for example, the last specification to <2->, you can have the last two points uncovered at the
same time.
A disadvantage of the approach is that you will have to renumber everything if you add a new item. This
is usually not such a big problem, but it can be a nuiseance.
To automize the uncovering, you can use the following code:
\begin{itemize}[<+->]
\item First point.
\item Second point.
\item Third point.
\end{itemize}
The effect of the [<+->] is to install a default overlay specification, see the definition of itemize for
details.
Now, suppose you wish the second and third point to be shown at the same time. You could achieve
this by adding the specificaiton <2-> to either the second or third \item command. However, then you still
have to do some renumbering if you add a new item at the beginning. A better, though more cumbersome,
approach is to decrease the counter beamerpause before the last item:
\begin{itemize}[<+->]
\item First point.
\item Second point.
\addtocounter{beamerpause}{-1}
\item Third point.
\end{itemize}
This does not look so nice, but it works. Also, you might wish to build your own macros based on these
ideas (like an itemstep environment or a \itemlikeprevious command).
\begin{itemize}
\item<1-| alert@1> First point.
\item<2-| alert@2> Second point.
\item<3-| alert@3> Third point.
\end{itemize}
or
\begin{itemize}[<+-| alert@+>]
\item First point.
\item Second point.
\item Third point.
\end{itemize}
Note that this will draw the little item symbol also in red.
104
9.1.3 Changing Symbol Before an Enumeration
When uncovering a list of tasks or problems, you may desire that the symbol in front of the last uncovered
symbol is, say, an ballot X, while for the previous items it is a check mark (you’ll find these characters in
some Dingbats fonts).
The best way to achieve this is to implement a new action environment. If this action is activated, it
temporarily changes the item symbol template to the other symbol:
\newenvironment{ballotenv}
{\only{%
\useitemizeitemtemplate{code for showing a ballot}%
\usesubitemizeitemtemplate{code for showing a smaller ballot}%
\usesubsubitemizeitemtemplate{code for showing a smaller ballot}}}
{}
The effect of the code is to install a check mark as the default template. If the action ballot is now
requested for some item, this template will temporarily be replaced by the ballot templates.
Note that the ballotenv is invoked with the overlay specification given for the action directly following
it. This causes the \only to be invoked exactly for the specified overlays.
Here are example usages:
\begin{itemize}
\item<1-| ballot@1> First point.
\item<2-| ballot@2> Second point.
\item<3-| ballot@3> Third point.
\end{itemize}
and
\begin{itemize}[<+-| ballot@+>]
\item First point.
\item Second point.
\item Third point.
\end{itemize}
In the following example, more and more items become “checked” from slide to slide:
\begin{itemize}[<ballot@+-| visible@1-,+(1)>]
\item First point.
\item Second point.
\item Third point.
\end{itemize}
The important point is ballot@+. The funny visible@1-,+(1) has the following effect: Although it has
no effect with respect to what is shown (after all, it applies to all slides), it ensures that in the enumeration
the slide number 4 is mentioned. Thus there will also be a slide in which all three points are checked.
Uncovering this formula line-by-line is a little tricky. A first idea is to use the \pause or \onslide
commands. Unfortunately, these do not work since align internally reprocesses its input several times,
105
which messes up the delicate internals of the commands. The next idea is the following, which works a little
better:
\begin{align}
A &= B \\
\uncover<2->{&= C \\}
\uncover<3->{&= D}
\end{align}
Unfortunately, this does not work in the presence of tags (so it works for the align* environment). What
happens is that the tag of the last line is shown on all slides. The problem here is that the tag is created
when \\ is encountered or when \end{align} is encountered. In the last line these are already “behind”
the \uncover.
To solve this problem, you can add an empty line without a tag and then insert a negative vertical skip
to undo the last line:
\begin{align}
A &= B \\
\uncover<2->{&= C \\}
\uncover<3->{&= D \\}
\notag
\end{align}
\vskip-1.5em
\rowcolors[]{1}{blue!20}{blue!10}
\begin{tabular}{l!{\vrule}cccc}
Class & A & B & C & D \\\hline
X & 1 & 2 & 3 & 4 \pause\\
Y & 3 & 4 & 5 & 6 \pause\\
Z & 5 & 6 & 7 & 8
\end{tabular}
By using \onslide instead of \pause, you can get more fine-grained control over which line is shown on
which slide.
\rowcolors[]{1}{blue!20}{blue!10}
\begin{tabular}{l!{\vrule}c<{\onslide<2->}c<{\onslide<3->}c<{\onslide<4->}c<{\onslide}c}
Class & A & B & C & D \\
X & 1 & 2 & 3 & 4 \\
Y & 3 & 4 & 5 & 6 \\
Z & 5 & 6 & 7 & 8
\end{tabular}
106
10 License: The GNU Public License, Version 2
The beamer class is distributed under the gnu public license, version 2. In detail, this means the following
(the following text is copyrighted by the Free Software Foundation):
10.1 Preamble
The licenses for most software are designed to take away your freedom to share and change it. By contrast,
the gnu General Public License is intended to guarantee your freedom to share and change free software—to
make sure the software is free for all its users. This General Public License applies to most of the Free
Software Foundation’s software and to any other program whose authors commit to using it. (Some other
Free Software Foundation software is covered by the gnu Library General Public License instead.) You can
apply it to your programs, too.
When we speak of free software, we are referring to freedom, not price. Our General Public Licenses
are designed to make sure that you have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it if you want it, that you can change the
software or use pieces of it in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask
you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute
copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the
recipients all the rights that you have. You must make sure that they, too, receive or can get the source
code. And you must show them these terms so they know their rights.
We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which
gives you legal permission to copy, distribute and/or modify the software.
Also, for each author’s protection and ours, we want to make certain that everyone understands that
there is no warranty for this free software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so that any problems introduced by
others will not reflect on the original authors’ reputations.
Finally, any free program is threatened constantly by software patents. We wish to avoid the danger
that redistributors of a free program will individually obtain patent licenses, in effect making the program
proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone’s free use
or not licensed at all.
The precise terms and conditions for copying, distribution and modification follow.
107
2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on
the Program, and copy and distribute such modifications or work under the terms of Section 1 above,
provided that you also meet all of these conditions:
(a) You must cause the modified files to carry prominent notices stating that you changed the files
and the date of any change.
(b) You must cause any work that you distribute or publish, that in whole or in part contains or is
derived from the Program or any part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
(c) If the modified program normally reads commands interactively when run, you must cause it,
when started running for such interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a notice that there is no warranty
(or else, saying that you provide a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this License. (Exception: if the
Program itself is interactive but does not normally print such an announcement, your work based
on the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If identifiable sections of that work are
not derived from the Program, and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those sections when you distribute them
as separate works. But when you distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of this License, whose permissions
for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely
by you; rather, the intent is to exercise the right to control the distribution of derivative or collective
works based on the Program.
In addition, mere aggregation of another work not based on the Program with the Program (or with a
work based on the Program) on a volume of a storage or distribution medium does not bring the other
work under the scope of this License.
3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code
or executable form under the terms of Sections 1 and 2 above provided that you also do one of the
following:
(a) Accompany it with the complete corresponding machine-readable source code, which must be
distributed under the terms of Sections 1 and 2 above on a medium customarily used for software
interchange; or,
(b) Accompany it with a written offer, valid for at least three years, to give any third party, for a
charge no more than your cost of physically performing source distribution, a complete machine-
readable copy of the corresponding source code, to be distributed under the terms of Sections 1
and 2 above on a medium customarily used for software interchange; or,
(c) Accompany it with the information you received as to the offer to distribute corresponding source
code. (This alternative is allowed only for noncommercial distribution and only if you received
the program in object code or executable form with such an offer, in accord with Subsection b
above.)
The source code for a work means the preferred form of the work for making modifications to it. For
an executable work, complete source code means all the source code for all modules it contains, plus
any associated interface definition files, plus the scripts used to control compilation and installation of
the executable. However, as a special exception, the source code distributed need not include anything
that is normally distributed (in either source or binary form) with the major components (compiler,
kernel, and so on) of the operating system on which the executable runs, unless that component itself
accompanies the executable.
If distribution of executable or object code is made by offering access to copy from a designated place,
then offering equivalent access to copy the source code from the same place counts as distribution of
the source code, even though third parties are not compelled to copy the source along with the object
code.
108
4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under
this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void,
and will automatically terminate your rights under this License. However, parties who have received
copies, or rights, from you under this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not signed it. However, nothing else
grants you permission to modify or distribute the Program or its derivative works. These actions
are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the
Program (or any work based on the Program), you indicate your acceptance of this License to do so,
and all its terms and conditions for copying, distributing or modifying the Program or works based on
it.
6. Each time you redistribute the Program (or any work based on the Program), the recipient automati-
cally receives a license from the original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further restrictions on the recipients’ exercise
of the rights granted herein. You are not responsible for enforcing compliance by third parties to this
License.
7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason
(not limited to patent issues), conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not excuse you from the conditions
of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may not distribute the Program
at all. For example, if a patent license would not permit royalty-free redistribution of the Program
by all those who receive copies directly or indirectly through you, then the only way you could satisfy
both it and this License would be to refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under any particular circumstance, the
balance of the section is intended to apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any patents or other property right claims
or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of
the free software distribution system, which is implemented by public license practices. Many people
have made generous contributions to the wide range of software distributed through that system in
reliance on consistent application of that system; it is up to the author/donor to decide if he or she is
willing to distribute software through any other system and a licensee cannot impose that choice.
This section is intended to make thoroughly clear what is believed to be a consequence of the rest of
this License.
8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by
copyrighted interfaces, the original copyright holder who places the Program under this License may
add an explicit geographical distribution limitation excluding those countries, so that distribution is
permitted only in or among countries not thus excluded. In such case, this License incorporates the
limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions of the General Public License
from time to time. Such new versions will be similar in spirit to the present version, but may differ in
detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Program specifies a version number of
this License which applies to it and “any later version”, you have the option of following the terms and
conditions either of that version or of any later version published by the Free Software Foundation.
If the Program does not specify a version number of this License, you may choose any version ever
published by the Free Software Foundation.
10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions
are different, write to the author to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this.
Our decision will be guided by the two goals of preserving the free status of all derivatives of our free
software and of promoting the sharing and reuse of software generally.
109
10.3 No Warranty
10. Because the program is licensed free of charge, there is no warranty for the program, to the extent
permitted by applicable law. Except when otherwise stated in writing the copyright holders and/or
other parties provide the program “as is” without warranty of any kind, either expressed or implied,
including, but not limited to, the implied warranties of merchantability and fitness for a particular
purpose. The entire risk as to the quality and performance of the program is with you. Should the
program prove defective, you assume the cost of all necessary servicing, repair or correction.
11. In no event unless required by applicable law or agreed to in writing will any copyright holder, or
any other party who may modify and/or redistribute the program as permitted above, be liable to
you for damages, including any general, special, incidental or consequential damages arising out of the
use or inability to use the program (including but not limited to loss of data or data being rendered
inaccurate or losses sustained by you or third parties or a failure of the program to operate with any
other programs), even if such holder or other party has been advised of the possibility of such damages.
110