diff options
author | Karl Berry <karl@freefriends.org> | 2006-11-01 23:50:14 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-11-01 23:50:14 +0000 |
commit | bcec5cf9be8a366b39aab4c13fa9e455b6e724ca (patch) | |
tree | 10af70bab7eedf89d55be20d1a3b9c334ad80ea3 /Master/texmf-dist/doc/latex/beamer/beamerug-elements.tex | |
parent | 8cdb9ebeb89ec677972e7a568938c6a0dd313145 (diff) |
beamer update to get solutions/ et al. (reported by gerben)
git-svn-id: svn://tug.org/texlive/trunk@2379 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.tex | 830 |
1 files changed, 0 insertions, 830 deletions
diff --git a/Master/texmf-dist/doc/latex/beamer/beamerug-elements.tex b/Master/texmf-dist/doc/latex/beamer/beamerug-elements.tex deleted file mode 100644 index 7a7ca41cc9c..00000000000 --- a/Master/texmf-dist/doc/latex/beamer/beamerug-elements.tex +++ /dev/null @@ -1,830 +0,0 @@ -% $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: |