Commits

Anonymous committed 3c00f07

*** empty log message ***

  • Participants
  • Parent commits b934697

Comments (0)

Files changed (11)

File base/beamerbasearticle.sty

   \RequirePackage[override]{xcolor}
   % For color support
 \fi
+
+\RequirePackage{beamerbasecompatibility}
+% Fixes other packages
   
 \RequirePackage{beamerbasemisc}
 % Miscellaneous commands

File base/beamerbasecompatibility.sty

 % This program can be redistributed and/or modified under the terms
 % of the GNU Public License, version 2.
 
+\mode<presentation>
+
 %
 %
 % Hyperlink fix for problem with empty test in pdfmark.def
   \fi%
 }
 
+
+\mode
+<all>
+{
+  % Things to be done at the beginning of the document
+  \def\beamer@lastminutepatches{}
+}
+
 %
 % Fixes right before the start of the document.
 %
     %
     \@ifundefined{deactivatequoting}{}{\deactivatequoting}}
   \begingroup\beamer@origdocument%
+  \beamer@lastminutepatches%
   \ifbeamer@ignorenonframe%
     \expandafter\mode\expandafter*%
   \fi}
 
+\mode
+<article>
+{
+  \let\beamer@origdocument\document
+  \def\document{%
+    \beamer@origdocument%
+    \beamer@lastminutepatches}
+}
+
+
 \AtBeginDocument{\def\es@itemize#1#2#3#4{}}% fix spanish.ldf's with \itemize 
 
 
 \newenvironment{columnsonlytextwidth}{\begin{columns}[onlytextwidth]}{\end{columns}}
 \def\untitledsubsection{\subsection*{}}
 
+
+
+\mode
+<all>
+
 %%% Local Variables: 
 %%% mode: latex
 %%% TeX-master: ../examples/beamerexample1.tex

File base/beamerbasedecode.sty

 % As a side effect, \@another is called whenever the there is a number
 % in the list that is larger than the current serialnumber
 
+\def\beamer@allsign{*}
+
 \def\beamer@decode{%
   \global\beamer@minimum=10000\relax%
   \gdef\beamer@decaction{}%
   \gdef\beamer@decactionrev{}%
-  \gdef\beamer@decodefound{+}%
+  \global\let\beamer@decodefound=\beamer@allsign%
   \beamer@@decodefind}
 \def\beamer@@decodefind#1| {%
   \beamer@@@decodefind#1:|}
 \def\beamer@checkcat#1:{%
   \ifcat\next a%
     \gdef\beamer@ovmode{#1}%
-    \gdef\beamer@decodefound{0}%
-    \gdef\beamer@spec{+}%
+    \ifx\beamer@decodefound\beamer@allsign
+      \gdef\beamer@decodefound{0}%
+    \fi%
+    \gdef\beamer@spec{1-}%
   \fi%
   }
 
   \@ifnextchar!%
   {\beamer@decodeend}%
   {%
-    \@ifnextchar+%
+    \@ifnextchar*%
     {\beamer@decodeall}{%
       \@ifnextchar-%
       {\beamer@decodeuntil}%
       {\beamer@decodenumber}}}}
 \def\beamer@decodeend!{}
-\def\beamer@decodeall+,{%
+\def\beamer@decodeall*,{%
   \ifnum1<\beamer@minimum\global\beamer@minimum=1\fi%
   \ifnum1>\beamer@slideinframe%
   \global\beamer@anotherslidetrue%

File base/beamerbaseframe.sty

 
 \newbox\beamer@framebox
 
+\mode
+<all>
+{
+  \newif\ifbeamer@inframe
+  \beamer@inframefalse
+}
+
 
 %
 % Slide Definitions
   % Start slide:
   \beamer@framenotesbegin%
     \setbox\beamer@framebox=\vbox to\textheight\bgroup\vbox{}\par%
+    \beamer@inframetrue%
     \beamer@entrycode\begin{beamer@framepauses}%\vspace*{-\baselineskip}%
     \vfill}%
   {\beamer@exitcode\vskip0pt plus 1.5fill\end{beamer@framepauses}%
 % Check for old version:
 
 \def\frame{\@ifnextchar<\beamer@frame\beamer@checkoldframe}
-\def\beamer@checkoldframe{\@ifnextchar[\beamer@@checkoldframe{\beamer@frame<+>}}
+\def\beamer@checkoldframe{\@ifnextchar[\beamer@@checkoldframe{\beamer@frame<*>}}
 \def\beamer@@checkoldframe[#1#2]{%
   \let\beamer@next=\beamer@newframesyntax%
   \ifcat#11% a number-like first letter in argument
   \beamer@next{#1#2}}
 \def\beamer@checkforcolon#1:#2.{%
   \beamer@ifempty{#2}{}{\let\beamer@next=\beamer@oldframesyntax}}
-\def\beamer@newframesyntax#1{\beamer@@@frame<+>[#1]}
+\def\beamer@newframesyntax#1{\beamer@@@frame<*>[#1]}
 \def\beamer@oldframesyntax#1{\beamer@@@frame<#1>[]}
 
 \def\beamer@frame{\begingroup\catcode`:=12\catcode`|=12\beamer@@frame}% Hackery for french style
 \long\def\beamer@donoframe{%
   \beamer@slideinframe=1\relax%
   \setbox\beamer@tempbox\vbox\bgroup%
+    \beamer@inframetrue%
     \leavevmode%
     \def\pause{}%
     \afterassignment\beamer@checknoslide\let\beamer@next}
 \mode
 <article>
 {
-  \def\frame{\@ifnextchar<\beamer@frame{\beamer@frame<+>}}
+  \def\frame{\@ifnextchar<\beamer@frame{\beamer@frame<*>}}
   \def\beamer@frame<#1>{\@ifnextchar[{\beamer@@frame<#1>}{\beamer@@frame<#1>[]}}
   \long\def\beamer@@frame<#1>[#2]{%
     \beamer@slideinframe=1\relax%
 
   \long\def\beamer@donoframe{%
     \setbox\beamer@tempbox\vbox\bgroup%
+    \beamer@inframetrue%
     \beamer@templateframestart%
     \bgroup%
     \aftergroup\beamer@endframe%
     \let\beamer@next}
   \def\beamer@dosingleframe{%
     \bgroup%
+    \beamer@inframetrue%
     \beamer@templateframestart%
     \bgroup\aftergroup\beamer@endframe%
     \let\beamer@next}
 
 
 %
+% Linebreak command
+%
+\renewcommand<>{\\}{\only#1{\beameroriginal\\}}
+
+\mode
+<article>
+{
+  \let\beamer@origbreak=\\
+  \def\\{\beamer@ifnextcharospec{\beamer@breaker}{\beamer@@breaker}}
+  \def\beamer@breaker<#1>{\only<#1>{\beamer@origbreak}}
+  \def\beamer@@breaker{\ifbeamer@inframe\else\expandafter\beamer@origbreak\fi}
+}
+
+
+
+%
 % Plain frames
 %
 
 % Again frame
 %
 
-\def\againframe{\@ifnextchar<{\begingroup\catcode`:=12\catcode`|=12\beamer@againframe}{\beginroup\beamer@againframe<+>}}
+\def\againframe{\@ifnextchar<{\begingroup\catcode`:=12\catcode`|=12\beamer@againframe}{\beginroup\beamer@againframe<*>}}
 \def\beamer@againframe<#1>{\endgroup\@ifnextchar[{\beamer@@againframe<#1>}{\beamer@@againframe<#1>[]}}
 \def\beamer@@againframe<#1>[#2]#3{%
   \@ifundefined{beamer@again@#3}%

File base/beamerbaselocalstructure.sty

 % The \frametitle command
 %
 %
-\newcommand\frametitle{\@dblarg\beamer@frametitle}
+\newcommand<>\frametitle{\alt#1{\@dblarg\beamer@frametitle}{\beamer@gobbleoptional}}
 \long\def\beamer@frametitle[#1]#2{%
   \beamer@ifempty{#2}{}{%
   \vskip0pt plus -1fill%
 \mode
 <article>
 {
-  \newcommand\frametitle[2][]{\gdef\insertframetitle{#2}\beamer@headrenderer}
+  \newcommand<>\frametitle[2][]{\only#3{\gdef\insertframetitle{#2}\beamer@headrenderer}}
   \long\def\useframetitletemplate#1{\def\beamer@headrenderer{#1}}
-  \useframetitletemplate{\paragraph{\insertframetitle}\ \par}
+  \useframetitletemplate{\paragraph*{\insertframetitle}\ \par}
 }
 
 
   \useexampleblocktemplate{\par\medskip{\noindent\emph{\insertblockname}}\par\noindent\ignorespaces}{\medskip}
 }
 
+\newenvironment{Problem}{\begin{block}{Problem}}{\end{block}}
+\newenvironment{Loesung}{\begin{block}{L\"osung}}{\end{block}}
+\newenvironment{Definition}{\begin{block}{Definition}}{\end{block}}
+\newenvironment{Satz}{\begin{block}{Satz}}{\end{block}}
+\newenvironment{Beweis}{\begin{block}{Beweis.}}{\end{block}}
+\newenvironment{Folgerung}{\begin{block}{Folgerung}}{\end{block}}
+\newenvironment{Lemma}{\begin{block}{Lemma}}{\end{block}}
+\newenvironment{Fakt}{\begin{block}{Fakt}}{\end{block}}
+\newenvironment{Beispiel}{\begin{exampleblock}{Beispiel}}{\end{exampleblock}}
+\newenvironment{Beispiele}{\begin{exampleblock}{Beispiele}}{\end{exampleblock}}
+
+\newenvironment{Theorem}{\begin{block}{Theorem}}{\end{block}}
+\newenvironment{Proof}{\begin{block}{Proof.}}{\end{block}}
+\newenvironment{Corollary}{\begin{block}{Corollary}}{\end{block}}
+\newenvironment{Fact}{\begin{block}{Fact}}{\end{block}}
+\newenvironment{Example}{\begin{exampleblock}{Example}}{\end{exampleblock}}
+\newenvironment{Examples}{\begin{exampleblock}{Examples}}{\end{exampleblock}}
+
+\newenvironment{definition}{\begin{block}{Definition}}{\end{block}}
+\newenvironment{definitions}{\begin{block}{Definitions}}{\end{block}}
+\newenvironment{theorem}{\begin{block}{Theorem}}{\end{block}}
+\newenvironment{proof}{\begin{block}{Proof.}}{\end{block}}
+\newenvironment{corollary}{\begin{block}{Corollary}}{\end{block}}
+\newenvironment{fact}{\begin{block}{Fact}}{\end{block}}
+\newenvironment{lemma}{\begin{block}{Lemma}}{\end{block}}
+\newenvironment{problem}{\begin{block}{Problem}}{\end{block}}
+\newenvironment{example}{\begin{exampleblock}{Example}}{\end{exampleblock}}
+\newenvironment{examples}{\begin{exampleblock}{Examples}}{\end{exampleblock}}
+
+\newcommand{\BeispielInline}[1]{{\color{black!50!green}Beispiel: \ignorespaces#1}}
+\newcommand{\ExampleInline}[1]{{\color{black!50!green}Example: \ignorespaces#1}}
+
+
 \mode
-<all>
+<article>
 {
+  \ifbeamer@blocks
+    \RequirePackage{amsthm}
+    \newtheorem{theorem}{Theorem}
+    \newtheorem{corollary}[theorem]{Corollary}
+    \newtheorem{fact}[theorem]{Fact}
+    \newtheorem{lemma}[theorem]{Lemma}
+    \newtheorem{problem}[theorem]{Problem}
+    \newtheorem{Loesung}[theorem]{L\"osung}
+    \newtheorem{Satz}[theorem]{Satz}
+    \newtheorem{Folgerung}[theorem]{Folgerung}
+    \newtheorem{Fakt}[theorem]{Fakt}
+    \theoremstyle{definition}
+    \newtheorem{definition}[theorem]{Definition}
+    \newtheorem{definitions}[theorem]{Definitions}
+    \theoremstyle{remark}
+    \newtheorem{Beispiel}[theorem]{Beispiel}
+    \newtheorem{Beispiele}[theorem]{Beispiele}
+    \newtheorem{example}[theorem]{Example}
+    \newtheorem{examples}[theorem]{Examples}
 
-  \ifbeamer@blocks
-    \newenvironment{Problem}{\begin{block}{Problem}}{\end{block}}
-    \newenvironment{Loesung}{\begin{block}{L\"osung}}{\end{block}}
-    \newenvironment{Definition}{\begin{block}{Definition}}{\end{block}}
-    \newenvironment{Satz}{\begin{block}{Satz}}{\end{block}}
-    \newenvironment{Beweis}{\begin{block}{Beweis.}}{\end{block}}
-    \newenvironment{Folgerung}{\begin{block}{Folgerung}}{\end{block}}
-    \newenvironment{Lemma}{\begin{block}{Lemma}}{\end{block}}
-    \newenvironment{Fakt}{\begin{block}{Fakt}}{\end{block}}
-    \newenvironment{Beispiel}{\begin{exampleblock}{Beispiel}}{\end{exampleblock}}
-    \newenvironment{Beispiele}{\begin{exampleblock}{Beispiele}}{\end{exampleblock}}
+    \newenvironment{Beweis}{\begin{proof}[Beweis.]}{\end{proof}}
+    \newenvironment{Lemma}{\begin{leamm}}{\end{lemma}}
+    \newenvironment{Proof}{\begin{proof}}{\end{proof}}
+    \newenvironment{Theorem}{\begin{theorem}}{\end{theorem}}
+    \newenvironment{Problem}{\begin{problem}}{\end{problem}}
+    \newenvironment{Corollary}{\begin{corollary}}{\end{corollary}}
+    \newenvironment{Example}{\begin{example}}{\end{example}}
+    \newenvironment{Examples}{\begin{examples}}{\end{examples}}
+    \newenvironment{Definition}{\begin{definition}}{\end{definition}}
 
-    \newenvironment{Theorem}{\begin{block}{Theorem}}{\end{block}}
-    \newenvironment{Proof}{\begin{block}{Proof.}}{\end{block}}
-    \newenvironment{Corollary}{\begin{block}{Corollary}}{\end{block}}
-    \newenvironment{Fact}{\begin{block}{Fact}}{\end{block}}
-    \newenvironment{Example}{\begin{exampleblock}{Example}}{\end{exampleblock}}
-    \newenvironment{Examples}{\begin{exampleblock}{Examples}}{\end{exampleblock}}
-
-    \newenvironment{definition}{\begin{block}{Definition}}{\end{block}}
-    \newenvironment{definitions}{\begin{block}{Definitions}}{\end{block}}
-    \newenvironment{theorem}{\begin{block}{Theorem}}{\end{block}}
-    \newenvironment{proof}{\begin{block}{Proof.}}{\end{block}}
-    \newenvironment{corollary}{\begin{block}{Corollary}}{\end{block}}
-    \newenvironment{fact}{\begin{block}{Fact}}{\end{block}}
-    \newenvironment{example}{\begin{exampleblock}{Example}}{\end{exampleblock}}
-    \newenvironment{examples}{\begin{exampleblock}{Examples}}{\end{exampleblock}}
+    \renewenvironment<>{theorem}%
+    {\begin{actionenv}#1\begin{originaltheorem}}{\end{originaltheorem}\end{actionenv}}
+    \renewenvironment<>{corollary}%
+    {\begin{actionenv}#1\begin{originalcorollary}}{\end{originalcorollary}\end{actionenv}}
+    \renewenvironment<>{fact}%
+    {\begin{actionenv}#1\begin{originalfact}}{\end{originalfact}\end{actionenv}}
+    \renewenvironment<>{lemma}%
+    {\begin{actionenv}#1\begin{originallemma}}{\end{originallemma}\end{actionenv}}
+    \renewenvironment<>{problem}%
+    {\begin{actionenv}#1\begin{originalproblem}}{\end{originalproblem}\end{actionenv}}
+    \renewenvironment<>{Loesung}%
+    {\begin{actionenv}#1\begin{originalLoesung}}{\end{originalLoesung}\end{actionenv}}
+    \renewenvironment<>{Satz}%
+    {\begin{actionenv}#1\begin{originalSatz}}{\end{originalSatz}\end{actionenv}}
+    \renewenvironment<>{Folgerung}%
+    {\begin{actionenv}#1\begin{originalFolgerung}}{\end{originalFolgerung}\end{actionenv}}
+    \renewenvironment<>{Fakt}%
+    {\begin{actionenv}#1\begin{originalFakt}}{\end{originalFakt}\end{actionenv}}
+    \renewenvironment<>{definition}%
+    {\begin{actionenv}#1\begin{originaldefinition}}{\end{originaldefinition}\end{actionenv}}
+    \renewenvironment<>{definitions}%
+    {\begin{actionenv}#1\begin{originaldefinitions}}{\end{originaldefinitions}\end{actionenv}}
+    \renewenvironment<>{Beispiel}%
+    {\begin{actionenv}#1\begin{originalBeispiel}}{\end{originalBeispiel}\end{actionenv}}
+    \renewenvironment<>{Beispiele}%
+    {\begin{actionenv}#1\begin{originalBeispiele}}{\end{originalBeispiele}\end{actionenv}}
+    \renewenvironment<>{example}%
+    {\begin{actionenv}#1\begin{originalexample}}{\end{originalexample}\end{actionenv}}
+    \renewenvironment<>{examples}%
+    {\begin{actionenv}#1\begin{originalexamples}}{\end{originalexamples}\end{actionenv}}
   \fi
 
-  \newcommand{\BeispielInline}[1]{{\color{black!50!green}Beispiel: \ignorespaces#1}}
-  \newcommand{\ExampleInline}[1]{{\color{black!50!green}Example: \ignorespaces#1}}
+  \newcommand{\BeispielInline}[1]{Beispiel: \ignorespaces#1}
+  \newcommand{\ExampleInline}[1]{Example: \ignorespaces#1}
 }
 
 

File base/beamerbasemodes.sty

   \fi%
   \next}
 
-\def\article{\beamer@closer\@ifnextchar\bgroup\beamer@articleinline\beamer@article}
-\long\def\beamer@articleinline#1{%
-  \gdef\beamer@closer{}%
-  \ifbeamer@inpresentation\let\beamer@next=\@gobble\else\let\beamer@next=\beamer@relax\fi%
-  \beamer@next{#1}%
-  \beamer@mode\par}
-\def\beamer@article{%
-  \gdef\beamer@mode{\article}%
-  \ifbeamer@inpresentation%
-    \let\next=\beamer@startcomment%
-    \gdef\beamer@closer{\endgroup}%
-  \else%
-    \let\next=\relax%
-    \gdef\beamer@closer{}%
-  \fi%
-  \next}
-\long\def\beamer@relax#1{#1}
 
-
-\def\presentation{\beamer@closer\@ifnextchar\bgroup\beamer@presentationinline\beamer@presentation}
-\long\def\beamer@presentationinline#1{%
-  \gdef\beamer@closer{}%
-  \ifbeamer@inpresentation\let\beamer@next=\beamer@relax\else\let\beamer@next=\@gobble\fi%
-  \beamer@next{#1}%
-  \beamer@mode\par}
-\def\beamer@presentation{%
-  \gdef\beamer@mode{\presentation}%
-  \ifbeamer@inpresentation%
-    \let\next=\relax%
-    \gdef\beamer@closer{}%
-  \else%
-    \let\next=\beamer@startcomment%
-    \gdef\beamer@closer{\endgroup}%
-  \fi%
-  \next}
-
-\def\common{\beamer@closer\gdef\beamer@closer{}%
-  \@ifnextchar\bgroup\beamer@commoninline\beamer@common}
-\long\def\beamer@commoninline#1{%
-  #1%
-  \beamer@mode\par}
-\def\beamer@common{\gdef\beamer@mode{\common}}
+%obsolete, do note use:
+\def\presentation{\mode<presentation>}
+\def\article{\mode<article>}
+\def\common{\mode<all>}
 
 %
 % Mode command

File base/beamerbasenavigation.sty

 \def\hyperlinkdocumentstart{\hyperlink{Navigation1}}
 \def\hyperlinkdocumentend{\hyperlink{Navigation\beamer@endpageofdocument}}
 
+\mode
+<article>
+{
+  \newcommand<>\hyperlinkslideprev[1]{}
+  \newcommand<>\hyperlinkslidenext[1]{}
+  
+  \newcommand<>\hyperlinkframestart[1]{}
+  \newcommand<>\hyperlinkframeend[1]{}
+  \newcommand<>\hyperlinkframestartnext[1]{}
+  \newcommand<>\hyperlinkframeendprev[1]{}
+  
+  \newcommand<>\hyperlinksubsectionstart[1]{}
+  \newcommand<>\hyperlinksubsectionend[1]{}
+  \newcommand<>\hyperlinksubsectionstartnext[1]{}
+  \newcommand<>\hyperlinksubsectionendprev[1]{}
+  
+  \newcommand<>\hyperlinksectionstart[1]{}
+  \newcommand<>\hyperlinksectionend[1]{}
+  \newcommand<>\hyperlinksectionstartnext[1]{}
+  \newcommand<>\hyperlinksectionendprev[1]{}
+  
+  \newcommand<>\hyperlinkpartstart[1]{}
+  \newcommand<>\hyperlinkpartend[1]{}
+  \newcommand<>\hyperlinkpartstartnext[1]{}
+  \newcommand<>\hyperlinkpartendprev[1]{}
+  
+  \newcommand<>\hyperlinkpresentationstart[1]{}
+  \newcommand<>\hyperlinkpresentationend[1]{}
+  \newcommand<>\hyperlinkappendixstart[1]{}
+  \newcommand<>\hyperlinkappendixend[1]{}
+  
+  \newcommand<>\hyperlinkdocumentstart[1]{}
+  \newcommand<>\hyperlinkdocumentend[1]{}
+}
 
 
 %
   \def\insertbuttontext{\insertreturnsymbol#1}%
   \beamer@buttontemplate}%
 
+\mode
+<article>
+{
+  \let\beamerbutton=\@firstofone
+  \let\beamergotobutton=\beamerbutton
+  \let\beamerskipbutton=\beamerbutton
+  \let\beamerreturnbutton=\beamerbutton
+}
+
 
 %
 % Inserting navigation bars

File base/beamerbaseoverlay.sty

 %
 \def\beamer@plus{+}
 
-\def\action{\@ifnextchar<{\beamer@parsedaction}{\beamer@parsedaction<+>}}
+\def\action{\@ifnextchar<{\beamer@parsedaction}{\beamer@parsedaction<*>}}
 \long\def\beamer@parsedaction<#1>#2{%
   \def\beamer@doifnotinframe{}\def\beamer@doifinframe{}%
   {{\setbox0=\hbox{\beamer@decode#1| stop:0| }}}%
     \csname#2\endcsname<#3>{#1}}%
   \beamer@processactions}
 
-\def\actionenv{\beamer@ifnextcharospec{\beamer@parsedactionenv}{\beamer@parsedactionenv<+>}}
+\def\actionenv{\beamer@ifnextcharospec{\beamer@parsedactionenv}{\beamer@parsedactionenv<*>}}
 \def\beamer@parsedactionenv<#1>{%
   \def\beamer@doifnotinframe{}\def\beamer@doifinframe{}%
   {{\setbox0=\hbox{\beamer@decode#1| stop:0| }}}%
 }
 
 \renewcommand<>{\hypertarget}[2]{\only#3{\beameroriginal{\hypertarget}{#1}{#2}}}
+\renewcommand<>{\hyperlink}[2]{\only#3{\beameroriginal{\hyperlink}{#1}{#2}}}
 
 \mode
 <article>
 {
-  \AtBeginDocument{
+  \g@addto@macro\beamer@lastminutepatches{
     % These have to be done late...
     \renewcommand<>{\hypertarget}[2]{\only#3{\beameroriginal{\hypertarget}{#1}{#2}}}
+    \renewcommand<>{\hyperlink}[2]{\only#3{\beameroriginal{\hyperlink}{#1}{#2}}}
   }
 }
 
 %
 % Labels in overlays
 %
-\AtBeginDocument{%
+\g@addto@macro\beamer@lastminutepatches{%
   \let\beamer@origlabel\label
   \def\label{\@ifnextchar<{\beamer@label}{\beamer@label<1>}}
 
 \mode
 <article>
 {
-  \AtBeginDocument{
+  \g@addto@macro\beamer@lastminutepatches{
     % Has to be done late...
-    \newcommand<>{\label}{\alt#1{\beameroriginal{\label}}{\@gobble}}
+    \renewcommand<>{\label}{\alt#1{\beameroriginal{\label}}{\@gobble}}
   }
 }
 

File base/beamerbasetoc.sty

   \beamer@pausesubsectionsfalse%
   \beamer@subsectionshidefalse%
   \beamer@subsectionsshadedfalse%
-  \def\beamer@tocsections{<+>}%
+  \def\beamer@tocsections{<*>}%
   \setkeys{beamertoc}{firstsection=1}%
   \setkeys{beamertoc}{#1}%
   \vspace*{-.5em}{\makeatletter%

File examples/beamerexample1.tex

-\documentclass[class=article]{beamer}
+\documentclass{beamer}
 
 % Try the class options [notes], [notesonly], [trans], [handout],
 % [red], [compress], [draft] and see what happens!
 % For a green structure color use:
 %\colorlet{structure}{green!50!black}
 
-\mode<article>
+\mode<article> % only for the article version
 {
   \usepackage{beamerbasearticle}
   \usepackage{fullpage}
+  \usepackage{hyperref}
 }
 
 \beamertemplateshadingbackground{red!10}{blue!10}
 
 \frame{\titlepage}
 
-\section*{Outline}
+\section<presentation>*{Outline}
 
 \frame
 {
   }
 }
 
-\part{Main Talk}
+\part<presentation>{Main Talk}
 
 \section[Models]{The Model of Overhead-Free Computation}
 
   \end{Theorem}
 
   \begin{overprint}
-  \onslide<1| handout:0| trans:0>
+  \onslide<1| handout:0| trans:0| article:0>
     \hfill\hyperlinkframestartnext{\beamerskipbutton{Skip proof}}
   \onslide<2| handout:1| trans:1>
     \begin{proof}
     $\Class{PSPACE}$. 
   \end{Theorem}
 
-  \only<1>
+  \only<1| article:0| trans:0| handout:0>
   {
     \vskip1em
 
       \end{enumerate}
     \end{proof}
 
-    \hfill\hyperlink{pspacecomplete<1>}{\beamerreturnbutton{Return}}
+    \only<beamer>{\hfill\hyperlink{pspacecomplete<1>}{\beamerreturnbutton{Return}}}
   }
 }
 
 
 \section*{Summary}
 
-\subsection*{Summary}
+\subsection<presentation>*{Summary}
 
 \frame
 {
-  \frametitle{Summary}
+  \frametitle<presentation>{Summary}
 
   \begin{block}{}
     \begin{itemize}
 
 
 
-\subsection*{Further Reading}
+\subsection<presentation>*{Further Reading}
 
 \frame{
-  \frametitle{For Further Reading}
+  \frametitle<presentation>{For Further Reading}
   
   \beamertemplatebookbibitems
   

File themes/beamerthemeshadow.sty

 % of the LaTeX Project Public License Distributed from CTAN
 % archives in directory macros/latex/base/lppl.txt.
 
+\mode<presentation>
+
 \beamerboxesdeclarecolorscheme{title}{structure!75!black}{structure!75!black}
 
 \usetitlepagetemplate{
   \beamerboxesdeclarecolorscheme{alert}{alert!75!averagebackgroundcolor}{alert!10!averagebackgroundcolor}
   \beamerboxesdeclarecolorscheme{example}{beamerexample!75!averagebackgroundcolor}{beamerexample!10!averagebackgroundcolor}
 }
+
+
+\mode
+<all>