summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/beamer/beamerug-elements.tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-09 00:44:40 +0000
committerKarl Berry <karl@freefriends.org>2006-01-09 00:44:40 +0000
commitb4fc5f639874db951177ec539299d20908adb654 (patch)
tree52f08823ca58fffe3db6a9b075635038c567626c /Master/texmf-dist/doc/latex/beamer/beamerug-elements.tex
parentdec3d98ebe442d7ea93efbaa8dd2e2be8149a467 (diff)
doc 4
git-svn-id: svn://tug.org/texlive/trunk@80 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/beamer/beamerug-elements.tex')
-rw-r--r--Master/texmf-dist/doc/latex/beamer/beamerug-elements.tex830
1 files changed, 830 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/beamer/beamerug-elements.tex b/Master/texmf-dist/doc/latex/beamer/beamerug-elements.tex
new file mode 100644
index 00000000000..7a7ca41cc9c
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/beamer/beamerug-elements.tex
@@ -0,0 +1,830 @@
+% $Header: /cvsroot/latex-beamer/latex-beamer/doc/beamerug-elements.tex,v 1.12 2004/12/09 22:31:18 tantau Exp $
+
+% Copyright 2003, 2004 by Till Tantau <tantau@users.sourceforge.net>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the GNU Public License, version 2.
+
+
+\section{Inner Themes, Outer Themes, and Templates}
+
+\label{section-elements}
+
+This section discusses the inner and outer themes that are
+available in \beamer. These themes install certain \emph{templates}
+for the different elements of a presentation. The template mechanism is
+explained at the end of the section.
+
+Before we plunge into the details, let us agree on some terminology
+for this section. In \beamer, an \emph{element} is part of a
+presentation that is potentially typeset in some special way. Examples
+of elements are frame titles, the author's name, or the footnote
+sign. The appearance of every element is governed by a \emph{template}
+for this element. Appropriate templates are installed by inner and
+outer themes, where the \emph{inner} themes only install templates for
+elements that are typically ``inside the main text,'' while \emph{outer}
+themes install templates for elements ``around the main text.'' Thus,
+from the templates's point of view, there is no real difference
+between inner and outer themes.
+
+
+
+\subsection{Inner Themes}
+
+An inner theme installs templates that dictate how the following
+elements are typeset:
+\begin{itemize}
+\item Title and part pages.
+\item Itemize environments.
+\item Enumerate environments.
+\item Description environments.
+\item Block environments.
+\item Theorem and proof environments.
+\item Figures and tables.
+\item Footnotes.
+\item Bibliography entries.
+\end{itemize}
+
+
+In the following examples, the color themes |seahorse| and |rose| are
+used to show where and how background colors are
+honoured. Furthermore, background colors have been specified for all
+elements that honour them in the default theme. In the default color
+theme, all of the large rectangular areas are transparent.
+
+\begin{innerthemeexample}{default}
+ The default element theme is quite sober. The only extravagance is
+ the fact that a little triangle is used in |itemize| environments
+ instead of the usual dot.
+
+ In some cases the theme will honour background color specifications
+ for elements. For example, if you set the background color for block
+ titles to green, block titles will have a green background. The
+ background specifications are currently honoured for the following
+ elements:
+ \begin{itemize}
+ \item Title, author, institute, and date fields in the title
+ page.
+ \item Block environments, both for the title and for the body.
+ \end{itemize}
+ This list may increase in the future.
+\end{innerthemeexample}
+
+\begin{innerthemeexample}{circles}
+ In this theme, |itemize| and |enumerate| items start with a small
+ circle. Likewise, entries in the table of contents start with
+ circles.
+\end{innerthemeexample}
+
+\begin{innerthemeexample}{rectangles}
+ In this theme, |itemize| and |enumerate| items and table of contents
+ entries start with small rectangles.
+\end{innerthemeexample}
+
+\begin{innerthemeexample}[\oarg{options}]{rounded}
+ In this theme, |itemize| and |enumerate| items and table of contents
+ entries start with small balls. If a background is specified for
+ blocks, then the corners of the background rectangles will be
+ rounded off. The following \meta{options} may be given:
+
+ \begin{itemize}
+ \item \declare{|shadow|} adds a shadow to all blocks.
+ \end{itemize}
+\end{innerthemeexample}
+
+\begin{innerthemeexample}{inmargin}
+ The idea behind this theme is to have ``structuring'' information on
+ the left and ``normal'' information on the right. To this end,
+ blocks are redefined such that the block title is shown on the left
+ and the block body is shown on the right.
+
+ The code used to place text in the margin is a bit fragile. You may
+ often need to adjust the spacing ``by hand,'' so use at your own risk.
+
+ Itemize items are redefined such that they appear on the
+ left. However, only the position is changed by changing some spacing
+ parameters; the code used to draw the items is not changed
+ otherwise. Because of this, you can load another inner theme first
+ and then load this theme afterwards.
+
+ This theme is a ``dirty'' an inner theme since it messes with things
+ that an inner theme should not mess with. In particular, it changes
+ the width of the left sidebar to a large value. However, you can
+ still use it together with most outer themes.
+
+ Using columns inside this theme is problematic. Most of the time,
+ the result will not be what you expect.
+\end{innerthemeexample}
+
+
+
+
+\subsection{Outer Themes}
+
+An outer theme dictates (roughly) the overall layout of frames. It
+specifies where any navigational elements should go (like a mini table
+of contents or navigational mini frames) and what they should look
+like. Typically, an outer theme specifies how the following elements
+are rendered:
+\begin{itemize}
+\item The head- and footline.
+\item The sidebars.
+\item The logo.
+\item The frame title.
+\end{itemize}
+
+An outer theme will not specify how things like |itemize| environments
+should be rendered---that is the job of an inner theme.
+
+In the following examples the color theme |seahorse| is
+used. Since the default color theme leaves most backgrounds empty,
+most of the outer themes look too unstructured with the default
+color theme.
+
+
+\begin{outerthemeexample}{default}
+ The default layout theme is the most sober and minimalistic theme
+ around. It will flush left the frame title and it will not install
+ any head- or footlines. However, even this theme honours the
+ background color specified for the frame title. If a color is
+ specified, a bar occupying the whole page width is put behind the
+ frame title. A background color of the frame subtitle is ignored.
+\end{outerthemeexample}
+
+\begin{outerthemeexample}{infolines}
+ This theme installs a headline showing the current section and the
+ current subsection. It installs a footline showing the author's
+ name, the institution, the presentation's title, the current date,
+ and a frame count. This theme uses only little space.
+
+ The colors used in the headline and footline are drawn from
+ |palette primary|, |palette secondary|, and |primary tertiary| (see
+ Section~\ref{section-colors} for details on how to change these).
+\end{outerthemeexample}
+
+\begin{outerthemeexample}[\oarg{options}]{miniframes}
+ This theme installs a headline in which a horizontal navigational
+ bar is shown. This bar contains one entry for each section of the
+ presentation. Below each section entry, small circles are shown that
+ represent the different frames in the section. The frames are
+ arranged subsection-wise, that is, there is a line of frames for
+ each subsection. If the class option |compress| is given, the
+ frames will instead be arranged in a single row for each
+ section. The navigation bars draws its color from
+ |section in head/foot|.
+
+ Below the navigation bar, a line is put showing the title of the
+ current subsection. The color is drawn from |subsection in head/foot|.
+
+ At the bottom, two lines are put that contain information such as
+ the author's name, the institution, or the paper's title. What is
+ shown exactly is influenced by the \meta{options} given. The colors
+ are drawn from the appropriate \beamer-colors like
+ |author in head/foot|.
+
+ At the top and bottom of both the head- and footline and between the
+ navigation bar and the subsection name, separation lines are drawn
+ \emph{if} the background color of |separation line| is set. This
+ separation line will have a height of 3pt. You can get even more
+ fine-grained control over the colors of the separation lines by
+ setting appropriate colors like |lower separation line head|.
+
+ The following \meta{options} can be given:
+ \begin{itemize}
+ \item \declare{|footline=empty|} suppressed the footline (default).
+ \item \declare{|footline=authorinstitute|} shows the author's name
+ and the institute in the footline.
+ \item \declare{|footline=authortitle|} shows the author's name
+ and the title in the footline.
+ \item \declare{|footline=institutetitle|} shows the institute
+ and the title in the footline.
+ \item \declare{|footline=authorinstitutetitle|} shows the author's
+ name, the institute, and the title in the footline.
+ \item \declare{|subsection=|\meta{true or false}} shows or suppresses
+ line showing the subsection in the headline. It is shown by
+ default.
+ \end{itemize}
+\end{outerthemeexample}
+
+\begin{outerthemeexample}[\oarg{options}]{smoothbars}
+ This theme behaves very much like the |miniframes| theme, at least
+ with respect to the headline. There, the only difference is the
+ smooth transitions are installed between the background colors of
+ the navigation bar, the (optional) bar for the subsection name, and
+ the background of the frame title. No footline is created. You can
+ get the footlines of the |miniframes| theme by first loading the
+ theme and then loading the |smoothbars| theme.
+
+ The following \meta{options} can be given:
+ \begin{itemize}
+ \item \declare{|subsection=|\meta{true or false}} shows or suppresses
+ line showing the subsection in the headline. It is shown by
+ default.
+ \end{itemize}
+\end{outerthemeexample}
+
+\begin{outerthemeexample}[\oarg{options}]{sidebar}
+ In this layout, a sidebar is shown that contains a small table of
+ contents with the current section, subsection, or subsection hilighted. The
+ frame title is vertically centered in a rectangular area at the top
+ that always occupies the same amount of space in all
+ frames. Finally, the logo is shown in the ``corner'' resulting from
+ the sidebar and the frame title rectangle.
+
+ There are several ways of modifying the layout using the
+ \meta{options}. If you set the width of the sidebar to 0pt, it is
+ not shown, giving you a layout in which the frame title does not
+ ``wobble'' since it always occupies the same amount of space on all
+ slides. Conversely, if you set the height of the frame title
+ rectangle to 0pt, the rectangular area is not used and the frame
+ title is inserted normally (occupying as much space as needed on
+ each slide).
+
+ The background color of the sidebar is taken from |sidebar|, the
+ background color of the frame title from |frametitle|, and the
+ background color of the logo corner from |logo|.
+
+ The colors of the entries in the table of contents are drawn from
+ the \beamer-color |section in sidebar| and |section in sidebar current| as well as the
+ corresponding \beamer-colors for subsections. If an entry does not
+ fit on a single line it is automatically ``linebroken.''
+
+ The following \meta{options} may be given:
+ \begin{itemize}
+ \item
+ \declare{|height=|\meta{dimension}} specifies the height of the
+ frame title rectangle. If it is set to 0pt, no frame title
+ rectangle is created. Instead, the frame title is inserted
+ normally into the frame. The default is 2.5 base line heights of
+ the frame title font. Thus, there is about enough space for a
+ two-line frame title plus a one-line subtitle.
+ \item
+ \declare{|hideothersubsections|} causes all subsections except
+ those of the current section to be suppressed in the table of
+ contents. This is useful if you have lots of subsections.
+ \item
+ \declare{|hideallsubsections|} causes all subsections to be
+ suppressed in the table of contents.
+ \item
+ \declare{|left|} puts the sidebar on the left side. Note that in a
+ left-to-right reading culture this is the side people look first. Note
+ also that this table of contents is usually \emph{not} the most
+ important part of the frame, so you do not necessarily want people
+ to look at it first. Nevertheless, it is the default.
+ \item
+ \declare{|right|} puts the sidebar of the right side.
+ \item
+ \declare{|width=|\meta{dimension}} specifies the width of the
+ sidebar. If it is set to 0pt, it is completely suppressed. The
+ default is 2.5 base line heights of the frame title font.
+ \end{itemize}
+\end{outerthemeexample}
+
+\begin{outerthemeexample}{split}
+ This theme installs a headline in which, on the left, the sections
+ of the talk are shown and, on the right, the subsections of the
+ current section. If the class option |compress| has been given,
+ the sections and subsections will be put in one line; normally there
+ is one line per section or subsection.
+
+ The footline shows the author on the left and the talk's title on
+ the right.
+
+ The colors are taken from |palette primary| and |palette fourth|.
+\end{outerthemeexample}
+
+\begin{outerthemeexample}{shadow}
+ This layout theme extends the |split| theme by putting a horizontal
+ shading behind the frame title and adding a little ``shadow'' at the
+ bottom of the headline.
+\end{outerthemeexample}
+
+\begin{outerthemeexample}[\oarg{options}]{tree}
+ In this layout, the headline contains three lines that show the
+ title of the current talk, the current section in this talk, and the
+ current subsection in the section. The colors are drawn from
+ |title in head/foot|, |section in head/foot|, and
+ |subsection in head/foot|.
+
+ In addition, separation lines of height 3pt are shown above and
+ below the three lines \emph{if} the background of |separation line|
+ is set. More fine-grained control of the colors of these lines can
+ be gained by setting |upper separation line head| and
+ |lower separation line head|.
+
+ The following \meta{options} may be given:
+ \begin{itemize}
+ \item
+ \declare{|hooks|} causes little ``hooks'' to be drawn in front of
+ the section and subsection entries. These are supposed to increase
+ the tree-like appearance.
+ \end{itemize}
+\end{outerthemeexample}
+
+\begin{outerthemeexample}{smoothtree}
+ This layout is similar to the |tree| layout. The main difference is
+ that the background colors change smoothly.
+\end{outerthemeexample}
+
+
+
+
+
+\subsection{Changing the Templates Used for Different Elements of a Presentation}
+
+\label{section-templates}
+
+This section explains how \beamer's template management works.
+
+
+
+\subsubsection{Overview of Beamer's Template Management}
+
+If you only wish to modify the appearance of a single or few elements,
+you do not need to create a whole new inner or outer theme. Instead,
+you can modify the appropriate template.
+
+A template specifies how an element of a presentation is typeset. For
+example, the |frametitle| 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|.
+
+\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:
+\begin{verbatim}
+\begin{frame}
+ \begin{centering}
+ \color{red}
+ \textbf{The Title of This Frame.}
+ \par
+ \end{centering}
+
+ Blah, blah.
+\end{frame}
+\end{verbatim}
+
+In order to typeset the frame title in this way on all slides, in the
+simplest case we can change the frame title template as follows:
+\begin{verbatim}
+\setbeamertemplate{frametitle}
+{
+ \begin{centering}
+ \color{red}
+ \textbf{\insertframetitle}
+ \par
+ \end{centering}
+}
+\end{verbatim}
+
+We can then use the following code to get the desired effect:
+\begin{verbatim}
+\begin{frame}
+ \frametitle{The Title of This Frame.}
+
+ Blah, blah.
+\end{frame}
+\end{verbatim}
+When rendering the frame, \beamer\ 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.
+
+We can take this example a step further. It would be nicer if we did
+not have to ``hardwire'' the color of the frametitle, but if this
+color could be specified independently of the code for the
+template. This way, a color theme could change this color. Since this
+a problem that is common to most templates, \beamer\ will
+automatically setup the \beamer-color |frametitle| when the template
+|frametitle| is used. Thus, we can remove the |\color{red}| command if
+we set the \beamer-color |frametitle| to red at some point.
+\begin{verbatim}
+\setbeamercolor{frametitle}{fg=red}
+\setbeamertemplate{frametitle}
+{
+ \begin{centering}
+ \textbf{\insertframetitle}
+ \par
+ \end{centering}
+}
+\end{verbatim}
+Next, we can also make the font ``themable.'' Just like the color, the
+\beamer-font |frametitle| is installed before the |frametitle|
+template is typeset. Thus, we should rewrite the code as follows:
+\begin{verbatim}
+\setbeamercolor{frametitle}{fg=red}
+\setbeamerfont{frametitle}{series=\bfseries}
+\setbeamertemplate{frametitle}
+{
+ \begin{centering}
+ \insertframetitle\par
+ \end{centering}
+}
+\end{verbatim}
+Users, themes, or whoever can now easily change the color or font of
+the frametitle without having to mess with the code used to typeset
+it.
+
+\articlenote
+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.
+\smallskip
+
+Here are a few hints that might be helpful when you wish to set a
+template:
+\begin{itemize}
+\item
+ 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 default inner and outer themes might be useful
+ starting points. Also, the file |beamerbaseauxtemplates.sty|
+ contains interesting ``auxilliary'' templates.
+\item
+ 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 |\setbeamertemplate| command and the
+ command |\makeatother| afterward.
+\item
+ Most templates having to do with the frame components (headlines,
+ sidebars, etc.)\ can only be changed in the preamble. Other
+ templates can be changed during the document.
+\item
+ The height of the headline and footline 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, \emph{after} all packages have
+ been loaded and even \emph{after} these have executed their
+ |\AtBeginDocument| initialization.
+\item
+ 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.
+\end{itemize}
+
+
+
+
+\subsubsection{Using Beamer's Templates}
+
+As a user of the \beamer\ class you typically do not ``use'' or
+``invoke'' templates yourself, directly. For example, the frame title
+template is automatically invoked by \beamer\ somewhere deep inside
+the frame typesetting process. The same is true of most other
+templates. However, if, for whatever reason, you wish to invoke a
+template yourself, you can use the following command.
+
+\begin{command}{\usebeamertemplate\opt{|***|}\marg{element name}}
+ If none of the stars is given, the text of the \meta{element name}
+ is directly inserted at the current position. This text should
+ previously have been specified using the |\setbeamertemplate|
+ command. No text is inserted if this command has not been called
+ before.
+ \example
+\begin{verbatim}
+\setbeamertemplate{my template}{correct}
+...
+Your answer is \usebeamertemplate{my template}.
+\end{verbatim}
+
+ If you add one star, three things happen. First, the template is put
+ inside a \TeX-group, thereby limiting most side effects of commands
+ used inside the template. Second, inside this group the
+ \beamer-color named \meta{element name} is used and the foreground
+ color is selected. Third, the \beamer-font \meta{element name} is
+ also used. This one-starred version is usually the best version to
+ use.
+
+ If you add a second star, nearly the same happens as with only one
+ star. However, in addition, the color is used with the command
+ |\setbeamercolor*|. This causes the colors to be reset to the normal
+ text color if no special foreground or background is specified by
+ the \beamer-color \meta{element name}. Thus, in this twice-starred
+ version, the color used for the template is guaranteed to be
+ independent of the color that was currently in use when the template
+ is used.
+
+ Finally, adding a third star will also cause a star to be added to
+ the |\setbeamerfont*| command. This causes the font used for the
+ template also to be reset to normal text, unless the \beamer-font
+ \meta{element name} specifies things differently. This three-star
+ version is the ``most protected'' version available.
+\end{command}
+
+\begin{command}{\ifbeamertemplateempty\marg{beamer template
+ name}\marg{executed if empty}\marg{executed otherwise}}
+ This command checks whether a template is defined and set to a
+ non-empty text. If the text is empty or the template is not
+ defined at all, \meta{executed if empty} is executed. Otherwise,
+ \meta{executed otherwise} is executed.
+\end{command}
+
+\begin{command}{\expandbeamertemplate\marg{beamer template name}}
+ This command does the same as |\usebeamertemplate|\marg{beamer
+ template name}. The difference is that this command performs a
+ direct expansion and does not scan for a star. This is important
+ inside, for example, an |\edef|. If you don't know the difference
+ between |\def| and |\edef|, you won't need this command.
+\end{command}
+
+\subsubsection{Setting Beamer's Templates}
+
+To set a \beamer-template, you can use the following command:
+
+\begin{command}{\setbeamertemplate\marg{element name}\oarg{predefined option}\meta{args}}
+ In the simplest case, if no \meta{predefined option} is given, the
+ \meta{args} must be a single argument and the text of the template
+ \meta{element name} is setup to be this text. Upon later invocation
+ of the template by the command |\usebeamertemplate| this text is
+ used.
+
+ \example
+\begin{verbatim}
+\setbeamertemplate{answer}{correct}
+...
+Your answer is \usebeamertemplate*{answer}.
+\end{verbatim}
+
+ If you specify a \meta{predefined option}, this command behaves
+ slightly differently. In this case, someone has used the command
+ |\defbeamertemplate| to predefined a template for you. By giving the
+ name of this predefined template as the optional parameter
+ \meta{predefined option}, you cause the template \meta{element name}
+ to be set to this template.
+
+ \example |\setbeamertemplate{bibliography item}[book]| causes the
+ bibliography items to become little book icons. This command cause a
+ subsequent call of |\usebeamertemplate{bibliography item}| to insert
+ the predefined code for inserting a book.
+
+ Some predefined template options take parameters themselves. In such
+ a case, the parameters are given as \meta{args}.
+
+ \example
+ The \meta{predefined option} |grid| for the template |background|
+ takes an optional argument:
+\begin{verbatim}
+\setbeamertemplate{background}[grid][step=1cm]
+\end{verbatim}
+ In the example, the second argument in square brackets is the
+ optional argument.
+
+ In the descriptions of elements, if there are possible
+ \meta{predefined option}, the description shows how the
+ \meta{predefined option} can be used together with its arguments,
+ but the |\setbeamertemplate{xxxx}| is omitted. Thus, the above
+ example would be documented in the description of the |background|
+ element like this:
+ \begin{itemize}
+ \itemoption{grid}{\oarg{step options}} causes a light grid to be
+ \dots
+ \end{itemize}
+\end{command}
+
+\begin{command}{\addtobeamertemplate\marg{element
+ name}\marg{pre-text}\marg{post-text}}
+ This command adds the \meta{pre-text} before the text that is
+ currently installed as the template \meta{element name} and the
+ \meta{post-text} after it. This allows you a limited form of
+ modification of existing templates.
+
+ \example The following commands have the same effect:
+\begin{verbatim}
+\setbeamertemplate{my template}{Hello world!}
+
+\setbeamertemplate{my template}{world}
+\addtobeamertemplate{my template}{Hello }{!}
+\end{verbatim}
+
+ If a new template is installed, any additions will be deleted. On
+ the other hand, you can repeatedly use this command to add multiple
+ things.
+\end{command}
+
+\begin{command}{\defbeamertemplate\sarg{mode specification}\opt{|*|}%
+ \marg{element name}\marg{predefined option}\\
+ \oarg{argument number}\oarg{default optional argument}\marg{predefined
+ text}\\
+ \opt{|[action]|\marg{action command}}}
+ This command installs a \emph{predefined option} for the template
+ \meta{element name}. Once this command has been used, users can
+ access the predefined template using the |\setbeamertemplate|
+ command.
+
+ \example
+ |\defbeamertemplate{itemize item}{double arrow}{$\Rightarrow$}|
+
+ After the above command has been invoked, the following two commands
+ will have the same effect:
+\begin{verbatim}
+\setbeamertemplate{itemize item}{$\Rightarrow$}
+\setbeamertemplate{itemize item}[double arrow]
+\end{verbatim}
+
+ Sometimes, a predefined template needs to get an argument when it is
+ installed. Suppose, for example, we want to define a predefined
+ template that draws a square as the itemize item and we want to make
+ this size of this square configurable. In this case, we can specify
+ the \meta{argument number} of the predefined option the same way one
+ does for the |\newcommand| command:
+
+\begin{verbatim}
+\defbeamertemplate{itemize item}{square}[1]{\hrule width #1 height #1}
+
+%% The following have the same effect:
+\setbeamertemplate{itemize item}[square]{3pt}
+\setbeamertemplate{itemize item}{\hrule width 3pt height 3pt}
+\end{verbatim}
+
+ As for the |\newcommand| command, you can also specify a
+ \meta{default optional argument}:
+
+\begin{verbatim}
+\defbeamertemplate{itemize item}{square}[1][1ex]{\hrule width #1 height #1}
+
+%% The following have the same effect:
+\setbeamertemplate{itemize item}[square][3pt]
+\setbeamertemplate{itemize item}{\hrule width 3pt height 3pt}
+
+%% So do the following:
+\setbeamertemplate{itemize item}[square]
+\setbeamertemplate{itemize item}{\hrule width 1ex height 1ex}
+\end{verbatim}
+
+ The starred version of the command installs the predefined template
+ option, but then immediately calls |\setbeamertemplate| for this
+ option. This is useful for the default templates. If there are any
+ arguments necessary, these are set to |\relax|.
+
+ In certain cases, if a predefined template option is chosen, you do
+ not only wish the template text to be installed, but certain extra
+ ``actions'' must also be taken once. For example, a shading must be
+ defined that should not be redefined every time the shading is used
+ later on. To implement such ``actions,'' you can use the optional
+ argument \meta{action} following the keyword |[action]|. Thus, after
+ the normal use of the |\defbeamertemplate| you add the text
+ |[action]| and then any commands that should be executed once when
+ the \meta{predefined option} is selected by the |\setbeamertemplate|
+ command.
+
+ \example
+\begin{verbatim}
+\defbeamertemplate{background canvas}{my shading}[2]
+{
+ \pgfuseshading{myshading}% simple enough
+}
+[action]
+{
+ \pgfdeclareverticalshading{myshading}{\the\paperwidth}
+ {color(0cm)=(#1); color(\the\paperheight)=(#2)}
+}
+...
+
+\setbeamertemplate{background canvas}{myshading}{red!10}{blue!10}
+%% Defines the shading myshading right here. Subsequent calls to
+%% \usebeamertemplate{background canvas} will yield
+%% ``\pgfuseshading{myshading}''.
+\end{verbatim}
+
+ \articlenote
+ Normally, this command has no effect in |article| mode. However, if
+ a \meta{mode specification} is given, this command is applied for
+ the specified modes. Thus, this command behaves like the |\\|
+ command, which also gets the implicit mode specification
+ |<presentation>| if no other specification is given.
+
+ \example |\defbeamertemplate{my template}{default}{something}| has no effect
+ in |article| mode.
+
+ \example |\defbeamertemplate<article>{my template}{default}{something}| has
+ no effect in |presentation| modes, but has an effect in |article|
+ mode.
+
+ \example |\defbeamertemplate<all>{my template}{default}{something}| applies
+ to all modes.
+\end{command}
+
+It is often useful to have access to the same template option via
+different names. For this, you can use the following command to create
+aliases:
+\begin{command}{\defbeamertemplatealias\marg{element name}\marg{new
+ predefined option name}\marg{existing predefined option name}}
+ Causes the two predefined options to have the same effect.
+\end{command}
+
+There is no inheritance relation among templates as there is for
+colors and fonts. This is due to the fact the templates for one
+element seldom make sense for another. However, sometimes certain
+elements ``behave similarly'' and one would like a
+|\setbeamertemplate| to apply to a whole set of templates via
+inheritance. For example, one might want that
+|\setbeamertemplate{items}[circle]| causes all items to use the
+|circle| option, though the effects for the |itemize item| as opposed
+to the |itemize subsubitem| as opposed to |enumerate item| must be
+slightly different.
+
+The \beamer-template mechanism implements a simple form of inheritance
+via \emph{parent templates}. In element descriptions, parent templates
+are indicated via a check mark in parentheses.
+
+\begin{command}{\defbeamertemplateparent\marg{parent template
+name}\oarg{predefined option name}\marg{child template
+list}\\
+\oarg{argument number}\oarg{default optional
+argument}\marg{arguments for children}}
+ The effect of this command is that whenever someone calls
+ |\setbeamertemplate{|\meta{parent template name}|}{|\meta{args}|}|,
+ the command |\setbeamertemplate{|\meta{child template
+ name}|}{|\meta{args}|}| is called for each \meta{child
+ template name} in the \meta{child template list}.
+
+ The \meta{arguments for children} come into play if the
+ |\setbeamertemplate| command is called with a predefined option name
+ (not necessarily the same as the \meta{predefined option name},
+ we'll come to that). If |\setbeamertemplate| is called with some
+ predefined option name, the children are called with the
+ \meta{arguments for children} instead. Let's look at two examples:
+
+ \example The following is the typical, simple usage:
+\begin{verbatim}
+\defbeamertemplateparent{itemize items}{itemize item,itemize subitem,itemize subsubitem}
+{}
+
+%% The following command has the same effect as the three commands below:
+\setbeamertemplate{itemize items}[circle]
+
+\setbeamertemplate{itemite item}[circle] % actually, the ``empty'' argument is added
+\setbeamertemplate{itemize subitem}[circle]
+\setbeamertemplate{itemize subsubitem}[circle]
+\end{verbatim}
+
+ \example In the following case, an argument is passed to the
+ children:
+\begin{verbatim}
+\defbeamertemplateparent{sections/subsections in toc shaded}
+{section in toc shaded,subsection in toc shaded}[1][20]
+{[#1]}
+
+%% The following command has the same effect as the two commands below:
+\setbeamertemplate{sections/subsection in toc shaded}[default][35]
+
+\setbeamertemplate{section in toc shaded}[default][35]
+\setbeamertemplate{subsection in toc shaded}[default][35]
+
+
+%% Again:
+\setbeamertemplate{sections/subsection in toc shaded}[default]
+
+\setbeamertemplate{section in toc shaded}[default][20]
+\setbeamertemplate{subsection in toc shaded}[default][20]
+\end{verbatim}
+
+ In detail, the following happens: When |\setbeamertemplate| is
+ encountered for a parent template, \beamer\ first checks whether a
+ predefined option follows. If not, a single argument is read and
+ |\setbeamertemplate| is called for all children for this
+ template. If there is a predefined template option set, \beamer\
+ evaluates the \meta{argument for children}. It may contain
+ parameters like |#1| or |#2|. These parameters are filled with the
+ arguments that follow the call of |\setbeamertemplate| for the
+ parent template. The number of arguments must be the number given
+ as \meta{argument number}. An optional argument can also be
+ specified in the usual way. Once the \meta{arguments for the
+ children} have been computed, |\setbeamertemplate| is called for all
+ children for the predefined template and with the computed
+ arguments.
+
+ You may wonder what happens when certain predefined options take a
+ certain number of arguments, but another predefined option takes a
+ different number of arguments. In this case, the above-described
+ mechanism cannot differentiate between the predefined options and it
+ is unclear which or even how many arguments should be contained in
+ \meta{arguments for children}. For this reason, you can give the
+ optional argument \meta{predefined option name} when calling
+ |\defbeamertemplateparent|. If this optional argument is specified,
+ the parenthood of the template applies only to this particular
+ \meta{predefined option name}. Thus, if someone calls
+ |\setbeamertemplate| for this \meta{predefined option name}, the
+ given \meta{argument for children} is used. For other predefined
+ option names a possibly different definition is used. You can
+ imaging that leaving out the optional \meta{predefined option name}
+ means ``this \meta{argument for children} applies to all predefined
+ option names that have not been specially defined differently.''
+\end{command}
+
+
+
+
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: "beameruserguide"
+%%% End: