Commits

Anonymous committed 2ba42ea

*** empty log message ***

  • Participants
  • Parent commits 87812f2

Comments (0)

Files changed (15)

File base/beamer.cls

 \DeclareOptionBeamer{20pt}{\def\beamer@size{{size20.clo}}}
 
 \DeclareOptionBeamer{draft}{\beamer@draftmodetrue}
-\AtBeginDocument{
-  \ifbeamer@draftmode
-  \gdef\beamer@foottemplate{%
-    \color{black!25}%
-    \kern-\Gm@lmargin\vrule width\paperwidth
-    height\footheight\kern-\Gm@rmargin}
-  \gdef\beamer@headtemplate{%
-    \color{black!25}%
-    \kern-\Gm@lmargin\vrule width\paperwidth
-    height\headheight\kern-\Gm@rmargin}
-  \gdef\beamer@leftsidebartemplate{%
-    \color{black!20}%
-    \vrule width \beamer@leftsidebar height\sidebarheight}
-  \gdef\beamer@rightsidebartemplate{%
-    \color{black!20}%
-    \vrule width \beamer@rightsidebar height\sidebarheight}
-  \gdef\beamer@leftsidebarbackground{}
-  \gdef\beamer@rightsidebarbackground{}
-  \fi
-  }
 \def\insertpagenumber{\thepage}
 
 \def\beamer@activecjk{}
   \ClassError{beamer}{``inrow'' no longer supported. Use ``compress'' instead.}{}}
 \DeclareOptionBeamer{compressnotes}{%
   \ClassWarning{beamer}{``compressnotes'' is obsolete. Use
-    \noexpand\beamertemplatenotecompress instead}
+    \noexpand\setbeamertemplate{note page}[compressed] instead}
   \AtBeginDocument{\beamertemplatenotecompress}}
 \DeclareOptionBeamer{notesonly}{
   \ClassWarning{beamer}{``notesonly'' is obsolete. Use notes=only instead}

File base/beamerbaseauxtemplates.sty

 
 \define@key{beamer@backgroundshade}{top}{\def\beamer@bgst{#1}}
 \define@key{beamer@backgroundshade}{bottom}{\def\beamer@bgsb{#1}}
+\define@key{beamer@backgroundshade}{right}{\def\beamer@bgst{#1}}
+\define@key{beamer@backgroundshade}{left}{\def\beamer@bgsb{#1}}
 \define@key{beamer@backgroundshade}{middle}{\def\beamer@bgsm{#1}}
 \define@key{beamer@backgroundshade}{midpoint}{\def\beamer@bgsmp{#1}}
 
+\def\beamer@calcvertshading#1#2#3{%
+  {\usebeamercolor{palette primary}}
+  \usebeamercolor{normal text}
+  \setkeys{beamer@backgroundshade}{top=palette primary.bg!25!bg,bottom=bg,middle={},midpoint=0.5}%
+  \setkeys{beamer@backgroundshade}{#3}
+  \ifx\beamer@bgsm\@empty
+    \pgfdeclareverticalshading{#1}{#2}%
+      {color(0cm)=(\beamer@bgsb); color(\the\paperheight)=(\beamer@bgst)}
+    \colorlet{beamer@backgroundshadestart}{\beamer@bgsb}%
+    \colorlet{beamer@backgroundshadeend}{\beamer@bgst}%
+    \colorlet{beamer@average}{beamer@backgroundshadestart!50!beamer@backgroundshadeend}%
+  \else
+    \pgfdeclareverticalshading{#1}{#2}%
+      {color(0cm)=(\beamer@bgsb); color(\beamer@bgsmp\paperheight)=(\beamer@bgsm); color(\the\paperheight)=(\beamer@bgst)}
+    \colorlet{beamer@average}{\beamer@bgsm}
+  \fi%
+}
+
+\def\beamer@calchorishading#1#2#3{%
+  {\usebeamercolor{palette primary}}
+  \usebeamercolor{normal text}
+  \setkeys{beamer@backgroundshade}{left=palette primary.bg!25!bg,right=bg,middle={},midpoint=0.5}%
+  \setkeys{beamer@backgroundshade}{#3}
+  \ifx\beamer@bgsm\@empty
+    \pgfdeclarehorizontalshading{#1}{\the\paperheight}%
+      {color(0cm)=(\beamer@bgsb); color(#2)=(\beamer@bgst)}
+    \colorlet{beamer@backgroundshadestart}{\beamer@bgsb}%
+    \colorlet{beamer@backgroundshadeend}{\beamer@bgst}%
+    \colorlet{beamer@average}{beamer@backgroundshadestart!50!beamer@backgroundshadeend}%
+  \else
+    \pgfdeclarehorizontalshading{#1}{\the\paperheight}%
+      {color(0cm)=(\beamer@bgsb); color(\beamer@bgsmp#2)=(\beamer@bgsm); color(#2)=(\beamer@bgst)}
+    \colorlet{beamer@average}{\beamer@bgsm} 
+  \fi%
+}
+
+
+
 \defbeamertemplate{background canvas}{vertical shading}[1][]
 {%
   \pgfuseshading{beamer@backgroundshading}%
 }
 [action]
 {
-  {\usebeamercolor{palette primary}}
-  \usebeamercolor{normal text}
-  \setkeys{beamer@backgroundshade}{top=palette primary.bg!25!bg,bottom=bg,middle={},midpoint=0.5}%
-  \setkeys{beamer@backgroundshade}{#1}
-  \ifx\beamer@bgsm\@empty
-    \pgfdeclareverticalshading{beamer@backgroundshading}{\the\paperwidth}%
-      {color(0cm)=(\beamer@bgsb); color(\the\paperheight)=(\beamer@bgst)}
-    \colorlet{beamer@backgroundshadestart}{\beamer@bgsb}%
-    \colorlet{beamer@backgroundshadeend}{\beamer@bgst}%
-    \colorlet{beamer@average}{beamer@backgroundshadestart!50!beamer@backgroundshadeend}%
-  \else
-    \pgfdeclareverticalshading{beamer@backgroundshading}{\the\paperwidth}%
-      {color(0cm)=(\beamer@bgsb); color(\beamer@bgsmp\paperheight)=(\beamer@bgsm); color(\the\paperheight)=(\beamer@bgst)}
-    \colorlet{beamer@average}{\beamer@bgsm}
-  \fi%
-  \setbeamercolor{normal text}{bg=beamer@average}
+  \beamer@calcvertshading{beamer@backgroundshading}{\the\paperwidth}{#1}
+  \colorlet{beamer@@average}{beamer@average}
+  \setbeamercolor{normal text}{bg=beamer@@average}
 }
 
 
 
 
+%
+% Side bars
+%
+
+\defbeamertemplate{sidebar canvas left}{vertical shading}[1][]
+{%
+  \pgfuseshading{beamer@sidebarcanvasleftshading}%
+}
+[action]
+{
+  \beamer@calcvertshading{beamer@sidebarcanvasleftshading}{\the\beamer@leftsidebar}{#1}
+}
+
+\defbeamertemplate{sidebar canvas right}{vertical shading}[1][]
+{%
+  \pgfuseshading{beamer@sidebarcanvasrightshading}%
+}
+[action]
+{
+  \beamer@calcvertshading{beamer@sidebarcanvasrightshading}{\the\beamer@rightsidebar}{#1}
+}
+
+\defbeamertemplate{sidebar canvas left}{horizontal shading}[1][]
+{%
+  \pgfuseshading{beamer@sidebarcanvasleftshading}%
+}
+[action]
+{
+  \beamer@calchorishading{beamer@sidebarcanvasleftshading}{\beamer@leftsidebar}{#1}
+}
+
+\defbeamertemplate{sidebar canvas right}{horizontal shading}[1][]
+{%
+  \pgfuseshading{beamer@sidebarcanvasrightshading}%
+}
+[action]
+{
+  \beamer@calchorishading{beamer@sidebarcanvasrightshading}{\beamer@rightsidebar}{#1}
+}
+
+
+
 
 
 
 
 
 
-%
-% Side bars
-%
-
-\newcommand{\beamertemplaterightsidebarlogonavigation}{
-  \usesidebartemplate[right]{0cm}{%
-    \vfill%
-    \llap{\normalcolor\insertlogo\hskip0.1cm}%
-    \vskip2pt%
-    \llap{\usebeamertemplate***{navigation symbols}\hskip0.1cm}%
-    \vskip2pt}
-}
-
-\newcommand{\beamertemplatesidebarcolor}[2][left]{
-  \usesidebarbackgroundtemplate[#1]{\color{#2}\vrule height\paperheight
-    width\csname beamer@#1sidebar\endcsname}
-}
-
-\newcommand{\beamertemplatesidebarverticalshading}[3][left]{%
-  \pgfdeclareverticalshading{beamer@#1sidebar}{\csname beamer@#1sidebar\endcsname}{color(0cm)=(#2); color(\paperheight)=(#3)}%
-  \usesidebarbackgroundtemplate[#1]{\pgfuseshading{beamer@#1sidebar}}}
-
-\newcommand{\beamertemplatesidebarhorizontalshading}[3][left]{%
-  \pgfdeclarehorizontalshading{beamer@#1sidebar}{\textheight}{color(0cm)=(#2); color(\beamer@leftsidebar)=(#3)}%
-  \usesidebarbackgroundtemplate[#1]{\pgfuseshading{beamer@#1sidebar}}}
-
-
-
 % Mini frames
 
 \defbeamertemplate{mini frame}{box}

File base/beamerbasecompatibility.sty

 \def\userightsidebarverticalshadingtemplate{\beamertemplatesidebarverticalshading[right]}
 \def\useleftsidebarhorizontalshadingtemplate{\beamertemplatesidebarhorizontalshading[left]}
 \def\userightsidebarhorizontalshadingtemplate{\beamertemplatesidebarhorizontalshading[right]}
-\def\usedescriptionitemtemplate#1#2{\setbeamertemplate{description item}{#1}\setbeamermargin{descriptionwidth={#2}}}
-\def\usedescriptionitemofwidthas#1{\setbeamermargin{descriptionwidthof={#1}}}%
+\def\usedescriptionitemtemplate#1#2{\setbeamertemplate{description item}{#1}\setbeamersize{description width={#2}}}
+\def\usedescriptionitemofwidthas#1{\setbeamersize{description width of={#1}}}%
 \def\usetemplatetocsection{\@ifnextchar[\@@usetemplatetocsection\@usetemplatetocsection}
 \long\def\@@usetemplatetocsection[#1]#2{
   \@usetemplatetocsection{#2}{\begin{colormixin}{#1}#2\end{colormixin}\unskip}}
   \setbeamertemplate{mini frame}{#1}%
   \setbeamertemplate{mini frame in current subsection}{#2}%
   \setbeamertemplate{mini frame in other subsection}{#3}%
-  \setbeamermargin{mini frame size={#4},mini frame offset={#5}}}
+  \setbeamersize{mini frame size={#4},mini frame offset={#5}}}
+\newcommand\usesidebarbackgroundtemplate[2][left]{\setbeamertemplate{sidebar canvas #1}{#2}}
 
 
 \def\beamertemplatedefaulttoc{\setbeamertemplate{table of contents}[default]}
 \def\beamertemplatecircleminiframe{\setbeamertemplate{mini frames}[default]}
 \def\beamertemplateticksminiframe{\setbeamertemplate{mini frames}[tick]}
 \def\beamertemplateboxminiframe{\setbeamertemplate{mini frames}[box]}
-
+\newcommand\usesidebartemplate[3][left]{%
+  \setbeamersize{sidebar width #1=#2}
+  \setbeamertemplate{sidebar #1}{#3}
+}
+\newcommand\beamertemplatesidebarcolor[2][left]{\setbeamercolor{sidebar #1}{bg=#2}}
+\def\beamertemplaterightsidebarlogonavigation{\setbeamertemplate{sidebar right}[default]
+  \setbeamersize{sidebar width right=0pt}}
+\newcommand{\beamertemplatesidebarverticalshading}[3][left]{%
+  \setbeamertemplate{sidebar canvas #1}[vertical shading][top=#3,bottom=#2]}
+\newcommand{\beamertemplatesidebarhorizontalshading}[3][left]{%
+  \setbeamertemplate{sidebar canvas #1}[vertical shading][right=#3,left=#2]}
 
 \mode
 <all>
 {
-  \def\beamersetleftmargin#1{\setbeamermargin{left=#1}}
-  \def\beamersetrightmargin#1{\setbeamermargin{right=#1}}
+  \def\beamersetleftmargin#1{\setbeamersize{left text margin=#1}}
+  \def\beamersetrightmargin#1{\setbeamersize{right text margin=#1}}
   \long\def\useframetemplate#1#2{\setbeamertemplate{frame begin}{#1}\setbeamertemplate{frame end}{#2}}
   \def\usebackgroundtemplate{\setbeamertemplate{background canvas}}
   \def\beamertemplatesolidbackgroundcolor#1{\setbeamercolor{normal text}{bg=#1}}

File base/beamerbaseframecomponents.sty

 \beamer@leftmargin=1cm
 \beamer@rightmargin=1cm
 
-\define@key{beamer@margin}{left}{%
-  \beamer@leftmargin=#1\relax%
-  % Reset left margin now
-  \beamer@tempdim=\beamer@leftmargin%
-  \advance\beamer@tempdim by\beamer@leftsidebar%
-  \edef\beamer@changegeometryleft{\noexpand\geometry{left=\the\beamer@tempdim}}%
-}
-\define@key{beamer@margin}{right}{%
-  \beamer@rightmargin=#1\relax%
-  % Reset right margin now
-  \beamer@tempdim=\beamer@rightmargin%
-  \advance\beamer@tempdim by\beamer@rightsidebar%
-  \edef\beamer@changegeometryright{\noexpand\geometry{right=\the\beamer@tempdim}}%
-}
+\newif\ifbeamer@dogeometry
 
+\define@key{beamer@margin}{text margin left}{\beamer@leftmargin=#1\beamer@dogeometrytrue}
+\define@key{beamer@margin}{text margin right}{\beamer@rightmargin=#1\beamer@dogeometrytrue}
+\define@key{beamer@margin}{sidebar width left}{\beamer@leftsidebar=#1\beamer@dogeometrytrue}
+\define@key{beamer@margin}{sidebar width right}{\beamer@rightsidebar=#1\beamer@dogeometrytrue}
 
-\newcommand{\setbeamersize}[1]{
+\newcommand{\setbeamersize}[1]{%
+  \beamer@dogeometryfalse%
   \setkeys{beamer@margin}{#1}%
-  \csname beamer@changegeometryleft\endcsname%
-  \csname beamer@changegeometryright\endcsname%
+  \ifbeamer@dogeometry%
+    % Reset left margin now
+    \beamer@tempdim=\beamer@leftmargin%
+    \advance\beamer@tempdim by\beamer@leftsidebar%
+    \geometry{left=\the\beamer@tempdim}%
+    % Reset right margin now
+    \beamer@tempdim=\beamer@rightmargin%
+    \advance\beamer@tempdim by\beamer@rightsidebar%
+    \geometry{right=\the\beamer@tempdim}%
+  \fi%
 }
 
 \mode
 
 
 
-%
-%
-% Sidebars
-%
-%
 
-\newcommand\usesidebartemplate[3][left]{%
-  \csname beamer@#1sidebar\endcsname=#2\relax%
-  \expandafter\beamer@tempdim\expandafter=\csname beamer@#1margin\endcsname%
-  \advance\beamer@tempdim by#2\relax%
-  \expandafter\geometry\expandafter{#1=\the\beamer@tempdim}%
-  \expandafter\def\csname beamer@#1sidebartemplate\endcsname{%
-    \vbox to \sidebarheight{%
-      \usebeamerfont*{sidebar}%
-      #3\vfil%
-    }%
-  }}
 
-\usesidebartemplate[left]{0cm}{}
-\usesidebartemplate[right]{0cm}{}
-
-
-\newcommand\usesidebarbackgroundtemplate[2][left]{%
-  \expandafter\def\csname beamer@#1sidebarbackground\endcsname{%
-    \vbox to \sidebarheight{%
-      #2\vss%
-    }}}
-\usesidebarbackgroundtemplate[left]{}
-\usesidebarbackgroundtemplate[right]{}
-
-
-
-
-
-%
-%
-% Head lines and foot lines
-%
-%
+% Constructing a frame:
 
 \let\@mkboth\@gobbletwo
 \def\ps@navigation{
       \hbox{%
         {%
           \setbox\beamer@tempbox=\hbox{\hskip-\Gm@lmargin%
-            {\setbox\beamer@tempbox=\hbox{\normalcolor\beamer@leftsidebarbackground}%
+            {\setbox\beamer@tempbox=\hbox{\vbox to \sidebarheight{%
+                  \usebeamercolor*{sidebar left}%
+                  \usebeamertemplate{sidebar canvas left}%
+                  \vss%
+                }}%
               \wd\beamer@tempbox=0pt\ht\beamer@tempbox=0pt\dp\beamer@tempbox=0pt%
               \box\beamer@tempbox}%
-            {\beamer@leftsidebartemplate}}%
+            {%
+              \vbox to \sidebarheight{%
+                \usebeamertemplate***{sidebar left}%
+                \vfil%
+            }}}%
           \beamer@tempdim=\ht\beamer@tempbox%
           \setbox\beamer@tempbox=\hbox{{\lower\beamer@tempdim\hbox{\box\beamer@tempbox}}}%
           \wd\beamer@tempbox=0pt\ht\beamer@tempbox=0pt\dp\beamer@tempbox=0pt%
         }%        
         {% print right sidebar first, since it should be overwritten by headline
           \setbox\beamer@tempbox=\hbox{\hskip\textwidth\hskip\beamer@rightmargin%
-            {\setbox\beamer@tempbox=\hbox{\normalcolor\beamer@rightsidebarbackground}%
+            {\setbox\beamer@tempbox=\hbox{\vbox to \sidebarheight{%
+                  \usebeamercolor*{sidebar right}%
+                  \usebeamertemplate{sidebar canvas right}%
+                  \vss%
+                }}%
               \wd\beamer@tempbox=0pt\ht\beamer@tempbox=0pt\dp\beamer@tempbox=0pt%
               \box\beamer@tempbox}%
-            {\beamer@rightsidebartemplate}}%
+            {%
+              \vbox to \sidebarheight{%
+                \usebeamertemplate***{sidebar right}%
+                \vfil%
+            }}}%
           \beamer@tempdim=\ht\beamer@tempbox%
           \setbox\beamer@tempbox=\hbox{{\lower\beamer@tempdim\hbox{\box\beamer@tempbox}}}%
           \wd\beamer@tempbox=0pt\ht\beamer@tempbox=0pt\dp\beamer@tempbox=0pt%

File base/beamerbasemisc.sty

   \let\sectionentry=\beamer@sectionentryorig
   \let\slideentry=\beamer@slideentryorig
   \beamer@calculateheadfoot
+  \ifbeamer@draftmode
+    \setbeamertemplate{footline}{
+    \color{black!25}%
+    \kern-\Gm@lmargin\vrule width\paperwidth
+    height\footheight\kern-\Gm@rmargin}
+    \setbeamertemplate{headline}{
+    \color{black!25}%
+    \kern-\Gm@lmargin\vrule width\paperwidth
+    height\headheight\kern-\Gm@rmargin}
+    \setbeamertemplate{sidebar left}{%
+    \color{black!20}%
+    \vrule width \beamer@leftsidebar height\sidebarheight}
+    \setbeamertemplate{sidebar right}{%
+    \color{black!20}%
+    \vrule width \beamer@rightsidebar height\sidebarheight}
+    \setbeamertemplate{sidebar canvas left}{}
+    \setbeamertemplate{sidebar canvas right}{}
+  \fi
   \makeatother
 }
 

File doc/beamerug-customization.tex

 
 \label{section-sidebar-templates}
 
-In the following, only the commands for the left sidebars are
-listed. Each of these commands also exists for the right sidebar,
-with ``left'' replaced by ``right'' everywhere.
-
-
-\begin{command}{\useleftsidebartemplate\marg{horizontal size}\marg{template}}
-  When the sidebar is typeset, the \meta{template} is invoked inside a
-  |\vbox| of the height of the sidebar. Thus, the below example
-  will produce a sidebar of half a centimeter width, in which the word
-  ``top'' is printed just below the headline and ``bottom'' is printed
-  just above the footline.
-  \example
-\begin{verbatim}
-\useleftsidebartemplate{1cm}{
-  top
-  \vfill
-  bottom
-}
-\end{verbatim}
-\end{command}
-
-\begin{command}{\useleftsidebarbackgroundtemplate\marg{template}}
-  The template is shown behind whatever is shown in the left side
-  bar. 
-  \example
-\begin{verbatim}
-\useleftsidebarbackgroundtemplate
-  {\color{red}\vrule height\paperheight width\beamer@leftsidebar}
-\end{verbatim}
-\end{command}
-
-
-\begin{command}{\useleftsidebarcolortemplate\marg{color expression}}
-  Uses the given color as background for the sidebar.
-  \example
-\begin{verbatim}
-\useleftsidebarcolortemplate{\color{red}}
-\useleftsidebarcolortemplate{\color[rgb]{1,0,0.5}}
-\end{verbatim}
-\end{command}
-
-\begin{command}{\useleftsidebarverticalshadingtemplate\marg{bottom
-      color expression}\marg{top color expression}}
-  Installs a smooth vertical transition between the given colors as
-  background for the sidebar.
-  \example
-\begin{verbatim}
-\useleftsidebarverticalshadingtemplate{white}{red}
-\end{verbatim}
-\end{command}
-
-
-\begin{command}{\useleftsidebarhorizontalshadingtemplate\marg{left end
-      color expression}\marg{right end color expression}}
-  Installs a smooth horizontal transition between the given colors as
-  background for the sidebar.
-  \example
-\begin{verbatim}
-\useleftsidebarhorizontalshadingtemplate{white}{red}
-\end{verbatim}
-\end{command}
-
 
 \begin{command}{\usesectionsidetemplate\marg{current section
       template}\marg{other section template}}

File doc/beamerug-frames.tex

 reasons.
 
 When you install a sidebar template, you must explicitly specify the
-horizontal size of the sidebar. The vertical size is determined
-automatically. Each sidebar can have its own background, which can be
-setup using special sidebar background templates.
+horizontal size of the sidebar using the command |\setbeamesize| with
+the option |sidebar left width| or |sidebar right width|. The vertical
+size is determined automatically. Each sidebar has its own background
+canvas, which can be setup using the sidebar canvas templates. 
 
 Adding a sidebar of a certain size, say 1cm, will make the main text
 1cm narrower. The distance between the inner side of a side
 bar and the outer side of the text, as specified by
-the command |\beamersetleftmargin| and its counterpart for the
-right margin, is not changed when a sidebar is installed.
+the command |\setbeamersize| with the option |text margin left| and
+its counterpart for the right margin, is not changed when a sidebar is
+installed. 
 
 Internally, the sidebars are typeset by showing them as part of the
 headline. The \beamer\ class keeps track of six dimensions, three 
 next to the left sidebar, you might write
 |\hskip-\beamer@leftmargin| to get there.
 
+\begin{element}{sidebar left}\yes\yes\yes
+  \colorfontparents{sidebar}
+  The template is used to typeset the left sidebar. As mentioned
+  above, the size of the left sidebar is set using the command
+\begin{verbatim}
+\setbeamersize{sidebar widt left=2cm}
+\end{verbatim}
+  \beamer\ will not clip sidebars automatically if they are too
+  large.
+
+  When the sidebar is typeset, it is put inside a |\vbox|. You should
+  currently setup things like the |\hsize| or the |\parskip|
+  yourself. 
+
+  \begin{templateoptions}
+    \itemoption{default}{}
+    installs an empty template.
+    \itemoption{sidebar theme}{}
+    This option is available, if the outer theme |sidebar| is loaded
+    with the |left| option. In this case, this options is selected
+    automatically. It shows a mini table of contents in the sidebar.
+  \end{templateoptions}
+\end{element}
+
+\begin{element}{sidebar right}\yes\yes\yes
+  \colorfontparents{sidebar}
+  This template works the same way as the template for the left.
+  
+  \begin{templateoptions}
+    \itemoption{default}{}
+    The default right sidebar has zero width. Nevertheless, it shows
+    navigational symbols and, if installed, a logo at the bottom of
+    the sidebar, protruding to the left into the text.
+    \itemoption{sidebar theme}{}
+    This option is available, if the outer theme |sidebar| is loaded
+    with the |left| option. In this case, this options is selected
+    automatically. It shows a mini table of contents in the sidebar.
+  \end{templateoptions}
+\end{element}
+
+\begin{element}{sidebar canvas left}\yes\no\no
+  Like the overall background canvas, this canvas is drawn behind the
+  actual text of the sidebar. This template should normally insert a
+  rectangle of the size of the sidebar, though a too large height will
+  not lead to an error or warning. When this template is called, the
+  \beamer-color |sidebar left| will have been installed.
+
+  \begin{templateoptions}
+  \item{default}{}
+    uses a large rectangle colored with |sidebar.bg| as the sidebar
+    canvas. However, if the background of |sidebar| is empty, nothing
+    is drawn and the canvas is ``transparent.''
+    
+    \itemoption{vertical shading}{\oarg{color options}}
+    installs a vertically shaded background. The following
+    \meta{color options} may be given:
+    \begin{itemize}
+    \item \declare{|top=|\meta{color}} specifies the color at the
+      top of the sidebar. By default, 25\% of the foreground of the
+      \beamer-color |palette primary| is used.
+    \item \declare{|bottom=|\meta{color}} specifies the color at the
+      bottom of the sidebar (more precisely, at a distance of the page
+      height below the top of the sidebar). By default, the background of
+      |normal text| at the moment of invocation of this command is
+      used. 
+    \item \declare{|middle=|\meta{color}} specifies the color
+      for the middle of the sidebar. Thus, if this option is given, the
+      shading changes from the bottom color to this color and then
+      to the top color.
+    \item \declare{|midpoint=|\meta{factor}} specifies at which
+      point of the page the middle color is used. A factor of |0| is
+      the bottom of the page, a factor of |1| is the top. The
+      default, which is |0.5|, is in the middle.
+    \end{itemize}
+    Note that you must give ``real'' \LaTeX\ colors here. This often
+    makes it necessary to invoke the command |\usebeamercolor| before
+    this command can be used.
+
+    Also note, that the width of the sidebar should be setup before
+    this option is used.
+
+    \example A stylish, but not very useful shading:
+\begin{verbatim}
+{\usebeamercolor{palette primary}}
+\setbeamertemplate{sidebar canvas}[vertical shading]
+[top=palette primary.bg,middle=white,bottom=palette primary.bg]
+\end{verbatim}
+    
+    \itemoption{horizontal shading}{\oarg{color options}}
+    installs a horizontally shaded background. The following
+    \meta{color options} may be given:
+    \begin{itemize}
+    \item \declare{|left=|\meta{color}} specifies the color at the
+      left of the sidebar.
+    \item \declare{|right=|\meta{color}} specifies the color at the
+      right of the sidebar.
+    \item \declare{|middle=|\meta{color}} specifies the color
+      in the middle of the sidebar.
+    \item \declare{|midpoint=|\meta{factor}} specifies at which
+      point of the sidebar the middle color is used. A factor of |0| is
+      the left of the sidebar, a factor of |1| is the right. The
+      default, which is |0.5|, is in the middle.
+    \end{itemize}
+
+    \example Adds two ``pillars''
+\begin{verbatim}
+\setbeamersize{sidebar width left=0.5cm,sidebar width right=0.5cm}
+
+{\usebeamercolor{sidebar}}
+
+\setbeamertemplate{sidebar canvas left}[horizontal shading]
+[left=white,middle=sidebar.bg,right=white]
+\setbeamertemplate{sidebar canvas right}[horizontal shading]
+[left=white,middle=sidebar.bg,right=white]
+\end{verbatim}
+  \end{templateoptions}  
+\end{element}
+
+\begin{element}{sidebar canvas right}\yes\no\no
+  Works exactly as for the left side.
+\end{element}
+
 
 
 \subsubsection{Navigation Bars}
   The following \meta{options} can be given:
   \begin{itemize}
   \item
-    \declare{|left text margin=|\meta{\TeX\ dimension}} sets a new left
+    \declare{|text margin left=|\meta{\TeX\ dimension}} sets a new left
     margin. This excludes the left sidebar. Thus, it is the distance
     between the right edge of the left sidebar and the left edge of
     the text.
   \item
-    \declare{|right text margin=|\meta{\TeX\ dimension}} sets a new right
+    \declare{|text margin right=|\meta{\TeX\ dimension}} sets a new right
     margin.
   \item
+    \declare{|sidebar width left=|\meta{\TeX\ dimension}} sets the
+    size of the left sidebar. Currently, this command should be given
+    \emph{before} a shading is installed for the sidebar canvas.
+  \item
+    \declare{|sidebar width right=|\meta{\TeX\ dimension}} sets the
+    size of the right sidebar.
+  \item
     \declare{|description width=|\meta{\TeX\ dimension}} sets the
     default width of description labels, see
     Section~\ref{section-descriptions}. 
   This command has no effect in |article| mode.
 \end{command}
 
-%For more information on sidebars, see
-%Section~\ref{section-sidebar-templates}. 
-
 
 
 \subsection{Restricting the Slides of a Frame}

File themes/color/beamercolorthemedefault.sty

 \setbeamercolor{footline}{}
 
 \setbeamercolor{sidebar}{}
-\setbeamercolor{sidebar top}{}
-\setbeamercolor{sidebar bottom}{}
+\setbeamercolor{sidebar left}{parent=sidebar}
+\setbeamercolor{sidebar right}{parent=sidebar}
 
 \setbeamercolor{logo}{parent=palette secondary}
 

File themes/font/beamerfontthemedefault.sty

 
 \setbeamerfont{headline}{parent={tiny structure}}
 \setbeamerfont{footline}{parent={tiny structure}}
+
 \setbeamerfont{sidebar}{size=\Tiny,parent={tiny structure}}
+\setbeamerfont{sidebar left}{parent=sidebar}
+\setbeamerfont{sidebar right}{parent=sidebar}
 
 \setbeamerfont{frametitle}{parent=structure,size=\Large}
 \setbeamerfont{framesubtitle}{parent=frametitle,size=\footnotesize}

File themes/outer/beamerouterthemedefault.sty

 
 
 
-% Sidebars
-
-\beamertemplaterightsidebarlogonavigation
-
 
 
 % Headline and footline
 }
 
 
+% Sidebar
+
+\defbeamertemplate*{sidebar left}{default}
+{}
+
+\defbeamertemplate*{sidebar right}{default}
+{
+  \vfill%
+  \llap{\insertlogo\hskip0.1cm}%
+  \vskip2pt%
+  \llap{\usebeamertemplate***{navigation symbols}\hskip0.1cm}%
+  \vskip2pt%
+}
+
+\defbeamertemplate*{sidebar canvas left}{default}
+{%
+  \ifbeamercolorempty[bg]{sidebar left}{}
+  {\color{bg}\vrule height\sidebarheight width\beamer@leftsidebar}%
+}
+
+\defbeamertemplate*{sidebar canvas right}{default}
+{%
+  \ifbeamercolorempty[bg]{sidebar right}{}
+  {\color{bg}\vrule height\sidebarheight width\beamer@rightsidebar}%
+}
+
+
+
 
 % Notes
 

File themes/outer/beamerouterthemeinfolines.sty

   \vskip0pt%
 }
 
-
-
-\usesidebartemplate[right]{0cm}{%
-  \vskip2pt%
-  \llap{\insertlogo\hskip0.1cm}%
-  \vfill%
-  \vskip2pt%
-  \llap{\usebeamertemplate***{navigation symbols}\hskip0.1cm}%
-  \vskip2pt}
-
-\setbeamersize{left text margin=1em,right text margin=1em}
+\setbeamersize{text margin left=1em,text margin right=1em}
 
 \mode
 <all>

File themes/outer/beamerouterthemesidebar.sty

 \ifdim\beamer@sidebarwidth>0pt
 
                                 % Sidebar
-  \usesidebartemplate[\beamer@sidebarside]{\beamer@sidebarwidth}{%
-    \usebeamercolor{sidebar}%
+  \setbeamersize{sidebar width \beamer@sidebarside=\beamer@sidebarwidth}
+  \defbeamertemplate*{sidebar \beamer@sidebarside}{sidebar theme}
+  {
     \beamer@tempdim=\beamer@sidebarwidth%
     \advance\beamer@tempdim by -6pt%
     {\usebeamerfont{title in sidebar}%
     \fi%
   }%
   
-                                % Side bar background
-  \AtBeginDocument{
-    \ifbeamercolorempty[bg]{sidebar top}{
-      \ifbeamercolorempty[bg]{sidebar}{}%
-      {
-        {
-          \usebeamercolor{sidebar}
-          \globalcolorstrue
-          \colorlet{@sidebar.bg}{sidebar.bg}
-        }
-        \beamertemplatesidebarcolor[\beamer@sidebarside]{@sidebar.bg}
-      }
-      }
-      {
-        {
-          \usebeamercolor{sidebar top}
-          \usebeamercolor{sidebar bottom}
-        }
-        \beamertemplatesidebarverticalshading[\beamer@sidebarside]{sidebar bottom.bg}{sidebar top.bg}
-      }
-  }
-
   \ifx\beamer@sidebarside\beamer@lefttext%
-    \usesidebartemplate[right]{0cm}{%
+    \defbeamertemplate*{sidebar right}{sidebar theme}
+    {%
       \vfill%
       \llap{\usebeamertemplate***{navigation symbols}\hskip0.1cm}%
       \vskip2pt}
   \fi
                                 % Margins
-  \setbeamersize{left text margin=0.5cm,right text margin=0.5cm}
+  \setbeamersize{text margin left=0.5cm,text margin right=0.5cm}
 \fi
 
 \mode

File themes/theme/beamerthemeGoettingen.sty

 
 \useoutertheme[height=0pt]{sidebar}
 
-\setbeamercolor{sidebar top}{use=structure,bg=structure.fg!25}
-\setbeamercolor{sidebar bottom}{use=structure,bg=structure.fg!10}
+{\usebeamercolor{structure}}
+
+\setbeamertemplate{sidebar canvas \beamer@sidebarside}[vertical shading][top=structure.fg!25,bottom=structure.fg!10]
 
 \mode
 <all>

File themes/theme/beamerthemeMarburg.sty

 
 \setbeamercolor*{frametitle}{use=structure,fg=structure.fg}
 
+\useoutertheme[height=0pt]{sidebar}
+
 \setbeamercolor{sidebar}{parent=palette primary}
-\setbeamercolor{sidebar top}{parent=palette fourth}
-\setbeamercolor{sidebar bottom}{parent=palette primary}
 
-\useoutertheme[height=0pt]{sidebar}
+{\usebeamercolor{palette fourth}}
+{\usebeamercolor{palette primary}}
+
+\setbeamertemplate{sidebar canvas \beamer@sidebarside}[vertical shading][top=palette fourth.bg,bottom=palette primary.bg]
 
 \mode
 <all>

File themes/theme/compatibility/beamerthemesidebar.sty

 
 \mode<presentation>
 
-\setbeamercolor{sidebar top}{parent=sidebar}
-\setbeamercolor{sidebar bottom}{bg=white}
+\useoutertheme[right,height=0pt]{sidebar}
 
 \ifbeamer@sidebardark
   \usefonttheme{structurebold}
   \usecolortheme{whale}
 
   \setbeamercolor{sidebar}{parent=palette primary}
-  \setbeamercolor{sidebar top}{parent=palette fourth}
-  \setbeamercolor{sidebar bottom}{parent=palette primary}
+
+  \usebeamercolor{palette fourth}
+  \usebeamercolor{palette primary}
+  \setbeamertemplate{sidebar canvas right}[vertical shading][top=palette fourth.bg,bottom=palette primary.bg]
 \else
   \usecolortheme{seahorse}  
+
+  \usebeamercolor{sidebar}
+  \setbeamertemplate{sidebar canvas right}[vertical shading][top=sidebar.bg,bottom=white]
 \fi
 
 \ifbeamer@sidebartab
   \usecolortheme{sidebartab}
 \fi
 
-\useoutertheme[right,height=0pt]{sidebar}
-
 \mode
 <all>