diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/beamer/beamerbaseoverlay.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/beamer/beamerbaseoverlay.sty | 824 |
1 files changed, 824 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/beamer/beamerbaseoverlay.sty b/Master/texmf-dist/tex/latex/beamer/beamerbaseoverlay.sty new file mode 100644 index 00000000000..0adcbc830f9 --- /dev/null +++ b/Master/texmf-dist/tex/latex/beamer/beamerbaseoverlay.sty @@ -0,0 +1,824 @@ +\ProvidesPackageRCS $Header: /cvsroot/latex-beamer/latex-beamer/base/beamerbaseoverlay.sty,v 1.49 2005/05/18 15:42:12 tantau Exp $ + +% Copyright 2003 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. + +% +% +% Basic overlay commands +% +% + +\long\def\beamer@ifnextcharospec#1#2{% + \def\reserved@a{#1}% + \def\reserved@b{#2}% + \futurelet\@let@token\beamer@ifnch} +\def\beamer@ifnch{% + \ifx\@let@token<% + \let\reserved@c\reserved@a% + \else% + \let\reserved@c\reserved@b% + \fi% + \reserved@c} + +% +% \only +% +\def\only{\@ifnextchar<{\beamer@only}{\beamer@@only}} +\long\def\beamer@only<#1>#2{% + \def\beamer@doifnotinframe{}\def\beamer@doifinframe{#2}% + {\beamer@masterdecode{#1}}\beamer@donow} +\long\def\beamer@@only#1{\beamer@ifnextcharospec{\beamer@@@only{#1}}{#1}} +\long\def\beamer@@@only#1<#2>{% + \def\beamer@doifnotinframe{}\def\beamer@doifinframe{#1}% + {\beamer@masterdecode{#2}}\beamer@donow} + +% +% \alt and \altenv +% +\def\alt{\@ifnextchar<{\beamer@alt}{\beamer@alttwo}} +\long\def\beamer@alttwo#1#2{\beamer@ifnextcharospec{\beamer@altget{#1}{#2}}{#1}} +\long\def\beamer@altget#1#2<#3>{% + \def\beamer@doifnotinframe{#2}\def\beamer@doifinframe{#1}% + {\beamer@masterdecode{#3}}\beamer@donow} +\long\def\beamer@alt<#1>#2#3{% + \def\beamer@doifnotinframe{#3}\def\beamer@doifinframe{#2}% + {\beamer@masterdecode{#1}}\beamer@donow} + + +\def\altenv{\@ifnextchar<{\beamer@altenv}{\beamer@@@altenv}} +\def\beamer@altenv<#1>{\beamer@@altenv{<#1>}} +\long\def\beamer@@@altenv#1#2#3#4{\beamer@ifnextcharospec{\beamer@altenvsort{#1}{#2}{#3}{#4}}{\beamer@@altenv{}{#1}{#2}{#3}{#4}}} +\long\def\beamer@altenvsort#1#2#3#4<#5>{\beamer@@altenv{<#5>}{#1}{#2}{#3}{#4}} +\long\def\beamer@@altenv#1#2#3#4#5{\alt#1{\long\def\beamer@eoenv{#3}#2}{\long\def\beamer@eoenv{#5}#4}} +\def\endaltenv{\beamer@eoenv} + +% +% \action and actionenv +% +\def\beamer@plus{+} + +\def\action{\@ifnextchar<{\beamer@parsedaction}{\expandafter\beamer@parsedaction\beamer@defaultospec}} +\long\def\beamer@parsedaction<#1>#2{% + \def\beamer@doifnotinframe{}\def\beamer@doifinframe{}% + {{\beamer@masterdecode{#1}}}% + \ifx\beamer@decodefound\beamer@plus% + \long\def\beamer@todo{#2}% + \else% + \expandafter\long\expandafter\def\expandafter\beamer@todo% + \expandafter{\expandafter\uncover\expandafter<\expandafter a\expandafter l\expandafter l\expandafter:\beamer@decodefound>{#2}}% + \fi% + \expandafter\beamer@processactions\beamer@decaction{}% + \beamer@todo} + +\def\beamer@processactions#1{% + \beamer@ifempty{#1}{}{% + \expandafter\beamer@@processactions\expandafter{\beamer@todo}#1}} +\long\def\beamer@@processactions#1#2<#3>{% + \expandafter\long\expandafter\def\expandafter\beamer@todo\expandafter{% + \csname#2\endcsname<all:#3>{#1}}% + \beamer@processactions} + +\def\actionenv{\beamer@ifnextcharospec{\beamer@parsedactionenv}{\expandafter\beamer@parsedactionenv\beamer@defaultospec}} +\def\beamer@parsedactionenv<#1>{% + \def\beamer@doifnotinframe{}\def\beamer@doifinframe{}% + {{\beamer@masterdecode{#1}}}% + \ifx\beamer@decodefound\beamer@plus% + \def\beamer@todobegin{}% + \def\beamer@todoend{}% + \else% + \edef\beamer@todobegin{\noexpand\begin{uncoverenv}<all:\beamer@decodefound>}% + \def\beamer@todoend{\end{uncoverenv}}% + \fi% + \expandafter\beamer@processactionsbegin\beamer@decaction{}% + \expandafter\beamer@processactionsend\beamer@decaction{}% + \beamer@todobegin} +\def\endactionenv{\beamer@todoend} + +\def\beamer@processactionsbegin#1{% + \beamer@ifempty{#1}{}{% + \expandafter\beamer@@processactionsbegin\expandafter{\beamer@todobegin}#1}} +\long\def\beamer@@processactionsbegin#1#2<#3>{% + \def\beamer@todobegin{\begin{#2env}<all:#3>#1}% + \beamer@processactionsbegin} + + +\def\beamer@processactionsend#1{% + \beamer@ifempty{#1}{}{% + \expandafter\beamer@@processactionsend\expandafter{\beamer@todoend}#1}} +\long\def\beamer@@processactionsend#1#2<#3>{% + \def\beamer@todoend{#1\end{#2env}}% + \beamer@processactionsend} + + +\def\beamer@defaultospec{<*>} +\def\beamer@emptyospec{<*>} + +% +% \temporal +% +\long\def\temporal<#1>#2#3#4{% past, present, future + \def\beamer@doifnotinframe{\beamer@picked}\def\beamer@doifinframe{#3}% + {\beamer@masterdecode{#1}% + \ifbeamer@localanotherslide\gdef\beamer@picked{#2}\else\gdef\beamer@picked{#4}\fi}\beamer@donow} + + +% +% \newoverlaycommand +% +\def\beameroriginal#1{\csname @orig\string#1\endcsname} + + +\newcount\beamer@argscount + +% +% newenvironment extension +% +\let\beamer@orignewenvironment=\newenvironment + +\def\newenvironment{\@ifnextchar<{\beamer@newenv}{\beamer@orignewenvironment}} +\def\beamer@newenv<>{\@star@or@long\beamer@new@environment} +\def\beamer@new@environment#1{\@ifnextchar[{\beamer@@newenv{#1}}{\beamer@newenvnoopt{#1}{0}}} +\def\beamer@@newenv#1[#2]{\@ifnextchar[{\beamer@newenvopt{#1}{#2}}{\beamer@newenvnoopt{#1}{#2}}} +\long\def\beamer@newenvnoopt#1#2#3#4{% + \expandafter\newcommand\expandafter<\expandafter>\csname#1\endcsname[#2]{#3}% + \expandafter\long\expandafter\def\csname end#1\endcsname{#4}% +} +\long\def\beamer@newenvopt#1#2[#3]#4#5{% + \expandafter\newcommand\expandafter<\expandafter>\csname#1\endcsname[#2][#3]{#4}% + \expandafter\long\expandafter\def\csname end#1\endcsname{#5}% +} + + +\let\beamer@origrenewenvironment=\renewenvironment + +\def\renewenvironment{\@ifnextchar<{\beamer@renewenv}{\beamer@origrenewenvironment}} +\def\beamer@renewenv<>#1{% + \edef\beamer@do{\csname original#1\endcsname=\expandafter\noexpand\csname#1\endcsname} + \expandafter\let\beamer@do% + \edef\beamer@do{\csname endoriginal#1\endcsname=\expandafter\noexpand\csname end#1\endcsname} + \expandafter\let\beamer@do% + \newenvironment<>{#1}} + + +% +% newcommand extension +% +\let\beamer@orignewcommand=\newcommand + +\def\newcommand{\@ifnextchar<{\beamer@newcom}{\beamer@orignewcommand}} +\def\beamer@newcom<>{\@star@or@long\beamer@new@command} +\def\beamer@new@command#1{\@ifnextchar[{\beamer@@newcom{#1}}{\beamer@newcomnoopt{#1}{0}}} +\def\beamer@@newcom#1[#2]{\@ifnextchar[{\beamer@newcomopt{#1}{#2}}{\beamer@newcomnoopt{#1}{#2}}} +\long\def\beamer@newcomnoopt#1#2#3{% + \ifnum#2=0\relax% + \expandafter\def\expandafter#1\expandafter{\expandafter\beamer@sortzero\expandafter{\csname beamerx@\string#1\endcsname}}% + \else + \expandafter\def\expandafter#1\expandafter{\expandafter\beamer@sort\expandafter{\csname beamerx@\string#1\endcsname}{#2}}% + \fi% + \beamer@argscount=#2\relax% + \advance\beamer@argscount by 1\relax% + \expandafter\newcommand\csname beamerx@\string#1\endcsname[\beamer@argscount]{#3}% +} +\long\def\beamer@newcomopt#1#2[#3]#4{% + \expandafter\def\expandafter#1\expandafter{\expandafter\beamer@presort\expandafter{\csname beamerx@\string#1\endcsname}{#2}{#3}}% + \beamer@argscount=#2\relax% + \advance\beamer@argscount by 1\relax% + \expandafter\newcommand\csname beamerx@\string#1\endcsname[\beamer@argscount]{#4}% +} + +\let\beamer@origrenewcommand=\renewcommand + +\def\renewcommand{\@ifnextchar<{\beamer@renewcom}{\beamer@origrenewcommand}} +\def\beamer@renewcom<>#1{% + \expandafter\def\expandafter\beamer@name\expandafter{\csname @orig\string#1\endcsname}% + \expandafter\let\beamer@name=#1\relax% + \newcommand<>#1} + + +\long\def\beamer@presort#1#2#3{% + \long\def\beamer@todo{#1}% + \def\beamer@ospec{}% + \beamer@argscount=#2\relax% + \beamer@prechecka{#3}} +\long\def\beamer@prechecka#1{\@ifnextchar<{\beamer@preget{#1}}{\beamer@precheckb{#1}}} +\long\def\beamer@preget#1<#2>{\def\beamer@ospec{<#2>}\beamer@precheckb{#1}} +\long\def\beamer@precheckb#1{\@ifnextchar[{\beamer@pregetb}{\beamer@pregetb[#1]}} +\long\def\beamer@pregetb[#1]{% + \expandafter\long\expandafter\def\expandafter\beamer@todo\expandafter{\beamer@todo{#1}}% + \advance\beamer@argscount by-1\relax% + \beamer@parseargs% +} + +\def\beamer@sortzero#1{\beamer@ifnextcharospec{\beamer@sortzeroread{#1}}{#1{}}} +\def\beamer@sortzeroread#1<#2>{#1{<#2>}} + + +\def\beamer@sort#1#2{% + \long\def\beamer@todo{#1}% + \def\beamer@ospec{}% + \beamer@argscount=#2\relax% + \beamer@parseargs} + +\def\beamer@parseargs{% + \ifnum\beamer@argscount=0% + \let\next=\beamer@finalargscheck% + \else% + \let\next=\beamer@lookforarg% + \fi% + \next} +\def\beamer@lookforarg{% + \@ifnextchar<\beamer@foundspec\beamer@readarg} +\def\beamer@foundspec<#1>{% + \def\beamer@ospec{<#1>}% + \beamer@lookforarg} +\long\def\beamer@readarg#1{% + \expandafter\long\expandafter\def\expandafter\beamer@todo\expandafter{\beamer@todo{#1}}% + \advance\beamer@argscount by-1\relax% + \beamer@parseargs% +} + +\def\beamer@finalargscheck{\beamer@ifnextcharospec\beamer@finalspec\beamer@finalnospec} +\def\beamer@finalspec<#1>{\def\beamer@ospec{<#1>}\beamer@finalnospec} +\def\beamer@finalnospec{% + \expandafter\beamer@todo\expandafter{\beamer@ospec}} + + + + +\mode<presentation> + + +% commands for smuggling skips past + +\newskip\beamer@lastskipcover +\def\beamer@smuggle#1{% + {}% + \beamer@lastskipcover=\lastskip% + \edef\beamer@lastskiptext{\the\lastskip}% + \ifx\beamer@lastskiptext\beamer@zeropt\else% + \ifvmode\unskip\fi\ifhmode\unskip\fi\fi% + #1% + \ifx\beamer@lastskiptext\beamer@zeropt\else% + \ifvmode\vskip\beamer@lastskipcover\fi\ifhmode\hskip\beamer@lastskipcover\fi\fi% +} + + + +% +% Uncovering management +% +\def\beamer@actions#1#2{% + \gdef\beamer@do{#1% + \expandafter\gdef\csname beamer@doafter% + \the\beamer@coveringdepth\endcsname{#2}}} + +\def\beamer@startcovered{% + \beamer@smuggle{% + \global\advance\beamer@coveringdepth by 1\relax% + \beamer@actions{\pgfsys@begininvisible\aftergroup\beamer@@spacingcover}{% + \pgfsys@endinvisible\aftergroup\beamer@@spacingcover% + }% + \def\opaqueness<##1>##2{% + \only<##1>{% + \beamer@actions{% + \expandafter\xdef\csname beamer@oldcolorhook% + \the\beamer@coveringdepth\endcsname{\beamer@colorhook}% + \expandafter\xdef\csname beamer@oldpgfextension% + \the\beamer@coveringdepth\endcsname{\beamer@pgfextension}% + {\globalcolorstrue\colorlet{beamer@freeze\the\beamer@coveringdepth}{bg}}% + \xdef\beamer@colorhook{!##2!beamer@freeze% + \the\beamer@coveringdepth\beamer@colorhook}% + \gdef\beamer@pgfextension{!##2opaque}% + \color{.}% + }% + {% + \xdef\beamer@colorhook{\csname beamer@oldcolorhook% + \the\beamer@coveringdepth\endcsname}% + \xdef\beamer@pgfextension{\csname beamer@oldpgfextension% + \the\beamer@coveringdepth\endcsname}% + \color{.}% + }}}% + \ifnum\beamer@slideinframe<\beamer@minimum%ok, at beginning + {% + \beamer@saveanother% + \advance\beamer@minimum by-\beamer@slideinframe% + \beamer@slideinframe=\beamer@minimum% + \beamer@uncoverbeforeactions% + \beamer@restoreanother% + }% + \else% + {% + \beamer@saveanother% + \advance\beamer@slideinframe by-\beamer@minimum% + \beamer@uncoverafteractions% + \beamer@restoreanother% + }% + \fi% + \beamer@do% + }% +} +\def\beamer@endcovered{% + \beamer@smuggle{% + \csname beamer@doafter\the\beamer@coveringdepth\endcsname% + \global\advance\beamer@coveringdepth by -1\relax% + }% +}% + + +\define@key{beamer@mixin}{still covered}{\def\beamer@uncoverbeforeactions{\ignorespaces#1}} +\define@key{beamer@mixin}{again covered}{\def\beamer@uncoverafteractions{\ignorespaces#1}} + +\define@key{beamer@mixin}{invisible}[]{% + \def\beamer@uncoverbeforeactions{\ignorespaces} + \def\beamer@uncoverafteractions{\ignorespaces}} + +\define@key{beamer@mixin}{transparent}[15]{% + \def\beamer@uncoverbeforeactions{\ignorespaces\opaqueness<1->{#1}} + \def\beamer@uncoverafteractions{\ignorespaces\opaqueness<1->{#1}}} + +\define@key{beamer@mixin}{dynamic}[]{% + \def\beamer@uncoverbeforeactions{\ignorespaces\opaqueness<1-2>{10}\opaqueness<3->{5}} + \def\beamer@uncoverafteractions{\ignorespaces\opaqueness<1-2>{10}\opaqueness<3->{5}}} + +\define@key{beamer@mixin}{highly dynamic}[]{% + \def\beamer@uncoverbeforeactions{\ignorespaces\opaqueness<1>{15}\opaqueness<2>{10}\opaqueness<3>{5}\opaqueness<4->{2}} + \def\beamer@uncoverafteractions{\ignorespaces\opaqueness<1>{15}\opaqueness<2>{10}\opaqueness<3>{5}\opaqueness<4->{2}}} + + +\def\setbeamercovered#1{% + \setkeys{beamer@mixin}{invisible}% + \setkeys{beamer@mixin}{#1}} + +\setbeamercovered{invisible} + +\newcolormixin\beamer@colorhook + +\def\pgfalternateextension{\colorcurrentmixin\beamer@pgfextension} + +\def\beamer@colorhook{} +\def\beamer@pgfextension{} + +\beamer@coveringdepth=0 + + +\mode +<article> +{ + \let\setbeamercovered=\@gobble +} + + + + +% +% Pausing +% + +\newenvironment{beamer@framepauses}%internal +{% + \global\c@beamerpauses=1\relax% + \gdef\beamer@endpause{}% +} +{\beamer@endpause} + +\newcommand{\beamer@@pause}[1][]{% + \beamer@ifempty{#1}% + {\global\advance\c@beamerpauses by1\relax}% + {\global\c@beamerpauses=#1\relax}% + \onslide<\c@beamerpauses->\relax% +} + +\mode +<all> +{ + \AtBeginDocument + { + \let\beamer@musixpause=\pause + \let\pause=\beamer@@pause + + \let\beamer@music=\music + \def\music{\let\beamerpause=\pause\let\pause\beamer@musixpause\beamer@music} + } +} + + + +\mode +<all> +{ + \def\onslide{\@ifstar{\only}{\@ifnextchar+{\expandafter\beamer@visibleonslide\@gobble}{\beamer@mainonslide}}} + + \newcommand<>{\beamer@visibleonslide}{% + \@ifnextchar\bgroup + {\visible#1}% + {\beamer@noargsvisibleonslide#1}} + + \newcommand<>{\beamer@mainonslide}{% + \@ifnextchar\bgroup% + {\uncover#1}% + {\beamer@noargsonslide#1}% + } +} + +\newcommand<>{\beamer@noargsonslide}{% + \beamer@endpause% + \alt#1% + {\beamer@spacingcover\gdef\beamer@endpause{\beamer@spacingcover}}% + {\beamer@startcovered\gdef\beamer@endpause{\beamer@endcovered}}% +} + +\newcommand<>{\beamer@noargsvisibleonslide}{% + \beamer@endpause% + \alt#1% + {\beamer@spacingcover\gdef\beamer@endpause{\beamer@spacingcover}}% + {\beamer@begininvisible\gdef\beamer@endpause{\beamer@endinvisible}}% +} + +\mode +<article> +{ + \newcommand\beamer@@pause[1][]{} + \newcommand<>{\beamer@noargsonslide}{} + \newcommand<>{\beamer@noargsvisibleonslide}{} +} + + + + +% +% Make item overlays +% + +\let\beamer@origitem=\item +\def\beamer@callorigitem{\@ifnextchar[\beamer@@callorigitem{\beamer@origitem\kern0pt\ignorespaces}} +\def\beamer@@callorigitem[#1]{\beamer@origitem[#1]\kern0pt\ignorespaces} + +\def\item{% + \@ifnextchar\relax\beamer@origitem{% + \ifhmode% + \unskip\unskip\par% + \fi% + \beamer@closeitem\gdef\beamer@closeitem{}% + \@ifnextchar<{\beamer@parseitem}{\beamer@itemcheckopt}}} +\def\beamer@itemcheckopt{\@ifnextchar[{\beamer@itemcheckopta}{% + \ifx\beamer@defaultospec\beamer@emptyospec% + \let\next=\beamer@callorigitem% + \else% + \let\next=\beamer@defaultparse% + \fi% + \next% + }} +\def\beamer@defaultparse{\expandafter\beamer@parseitem\beamer@defaultospec} +\long\def\beamer@itemcheckopta[#1]{\@ifnextchar<{\beamer@itemreverse[#1]}{% + \ifx\beamer@defaultospec\beamer@emptyospec% + \let\next=\beamer@callorigitem% + \else% + \let\next=\beamer@defaultparse% + \fi% + \next[#1]}} +\long\def\beamer@itemreverse[#1]<#2>{\beamer@parseitem<#2>[#1]} + +\def\beamer@parseitem<#1>{% + \gdef\beamer@closeitem{\end{actionenv}}% +\begin{actionenv}<#1>\beamer@callorigitem} + + +\def\beamerdefaultoverlayspecification#1{% + \beamer@ifempty{#1}% + {% + \def\beamer@gdefaultospec{<*>}% + \def\beamer@defaultospec{<*>}}% + {% + \def\beamer@gdefaultospec{#1}% + \def\beamer@defaultospec{#1}% + }% +} +\beamerdefaultoverlayspecification{} + + +\newcount\beamer@trivlistdepth +\beamer@trivlistdepth=0 + +\let\beamer@orig@trivlist=\@trivlist +\def\@trivlist{% + \global\advance\beamer@trivlistdepth by1\relax% + \expandafter\global\expandafter\let\csname beamer@closeitem\the\beamer@trivlistdepth\endcsname=\beamer@closeitem% + \gdef\beamer@closeitem{}% + \beamer@orig@trivlist% + } +\let\beamer@origendtrivlist=\endtrivlist +\def\endtrivlist{% + \beamer@closeitem% + \expandafter\global\expandafter\let\expandafter\beamer@closeitem\expandafter=\csname + beamer@closeitem\the\beamer@trivlistdepth\endcsname% + \global\advance\beamer@trivlistdepth by-1\relax% + \beamer@origendtrivlist} + +\def\beamer@closeitem{} + +\let\beamer@list=\list +\let\beamer@@trivlist=\@trivlist + + +\mode +<article> +{ + \AtBeginDocument{% + \let\beamer@origitem=\item + \def\item{\@ifnextchar<\beamer@@item\beamer@item} + \def\beamer@@item<#1>{\beamer@item} + \def\beamer@item{\@ifnextchar[\beamer@@@item\beamer@origitem} + \def\beamer@@@item[#1]{\@ifnextchar<{\beamer@@@@item[#1]}{\beamer@origitem[#1]}} + \def\beamer@@@@item[#1]<#2>{\beamer@origitem[#1]} + } +} + + + +% +% Overlay commands +% + + +\mode +<all> +{ + \newcommand\beamer@gobbleoptional[2][]{} + \newcommand\beamer@gobbleoptionalinsp[2][]{\ignorespaces} +} + +\def\beamer@@spacingcover{\beamer@smuggle{\pgfsys@begininvisible\pgfsys@endinvisible}} +\def\beamer@spacingcover{\beamer@@spacingcover\aftergroup\beamer@@spacingcover} + +\def\beamer@begininvisible{\beamer@smuggle{\pgfsys@begininvisible\aftergroup\beamer@@spacingcover}} +\def\beamer@endinvisible{\beamer@smuggle{\pgfsys@endinvisible\aftergroup\beamer@@spacingcover}} + +\long\def\beamer@fakeinvisible#1{\beamer@spacingcover#1\beamer@spacingcover} +\long\def\beamer@makecovered#1{\beamer@startcovered#1\beamer@endcovered} +\long\def\beamer@reallymakeinvisible#1{\beamer@begininvisible#1\beamer@endinvisible} + +\newcommand{\uncover}{\alt{\beamer@fakeinvisible}{\beamer@makecovered}} +\newcommand{\visible}{\alt{\beamer@fakeinvisible}{\beamer@reallymakeinvisible}} +\newcommand{\invisible}{\alt{\beamer@reallymakeinvisible}{\beamer@fakeinvisible}} +\newenvironment{visibleenv}{\begin{altenv}{\beamer@spacingcover}{\beamer@spacingcover}{\beamer@begininvisible}{\beamer@endinvisible}}{\end{altenv}} +\newenvironment{invisibleenv}{\begin{altenv}{\beamer@begininvisible}{\beamer@endinvisible}{\beamer@spacingcover}{\beamer@spacingcover}}{\end{altenv}} +\newenvironment{uncoverenv}{\begin{altenv}{\beamer@spacingcover}{\beamer@spacingcover}{\beamer@startcovered}{\beamer@endcovered}}{\end{altenv}} +\newenvironment{onlyenv}{\begin{altenv}{}{}{\begingroup\setbox0=\vbox\bgroup}{\egroup\endgroup}}{\end{altenv}} +\renewcommand<>{\color}{\alt#1{\beameroriginal{\color}}{\beamer@gobbleoptionalinsp}} + +\mode +<article> +{ + \newcommand{\uncover}{\alt{\@firstofone}{\@gobble}} + \newcommand{\visible}{\alt{\@firstofone}{\@gobble}} + \newcommand{\invisible}{\alt{\@gobble}{\@firstofone}} + \newenvironment{onlyenv}{\begin{altenv}{}{}{\begingroup\setbox0=\vbox\bgroup}{\egroup\endgroup}}{\end{altenv}} + \newenvironment{uncoverenv}{\begin{altenv}{}{}{\begingroup\setbox0=\vbox\bgroup}{\egroup\endgroup}}{\end{altenv}} + \newenvironment{visibleenv}{\begin{altenv}{}{}{\begingroup\setbox0=\vbox\bgroup}{\egroup\endgroup}}{\end{altenv}} + \newenvironment{invisibleenv}{\begin{altenv}{\begingroup\setbox0=\vbox\bgroup}{\egroup\endgroup}{}{}}{\end{altenv}} + + \AtBeginDocument{ + % These have to be done late... + \renewcommand<>{\color}{\alt#1{\beameroriginal{\color}}{\beamer@gobbleoptionalinsp}} + } +} + +\mode +<all> +{ + \renewcommand<>{\textbf}{\only#1{\beameroriginal{\textbf}}} + \renewcommand<>{\textit}{\only#1{\beameroriginal{\textit}}} + \renewcommand<>{\textsl}{\only#1{\beameroriginal{\textsl}}} + \renewcommand<>{\textsf}{\only#1{\beameroriginal{\textsf}}} + \renewcommand<>{\textrm}{\only#1{\beameroriginal{\textrm}}} +} + +\renewcommand<>{\hypertarget}[2]{\only#3{\beameroriginal{\hypertarget}{#1}{#2}}} +\renewcommand<>{\hyperlink}[2]{\only#3{\beameroriginal{\hyperlink}{#1}{#2}}} + +\mode +<article> +{ + \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}}} + } +} + + + +\newcommand<>{\emph}[1]{{\only#2{\itshape}#1}} + +\mode +<article> +{ + \renewcommand<>{\emph}{\only#1{\beameroriginal\emph}} +} + + + +% +% Insert area +% +\newenvironment{overlayarea}[2]{% + \beamer@animht=#1\relax% + \beamer@animwd=#2\relax% + \setbox\beamer@areabox=\vbox to#2\bgroup% + \strut\begin{minipage}[t]{#1}% + } + {% + \end{minipage}\vfil% + \egroup% + \wd\beamer@areabox=\beamer@animht% + \ht\beamer@areabox=\beamer@animwd% + \dp\beamer@areabox=0pt% + \box\beamer@areabox% +} + +\mode +<article> +{ + \newenvironment{overlayarea}[2]{}{}% no effect +} + + +\newenvironment{overprint}[1][\textwidth]{% + \let\beamer@noargsonslide=\beamer@onslide% + \let\beamer@noargsvisibleonslide=\beamer@onslide% + \beamer@animht=0pt% + \beamer@animdp=0pt% + \beamer@animwd=#1\relax% + \setbox\beamer@animcurrent=\box\beamer@animshowbox% makes animshowbox empty + \setbox\beamer@animcurrent=\hbox{}% + \def\beamer@endaction{}% +}{% + \beamer@endaction% + \ifvoid\beamer@animshowbox\setbox\beamer@animshowbox=\hbox{}\fi% + \ht\beamer@animshowbox=\beamer@animht% + \dp\beamer@animshowbox=\beamer@animdp% + \wd\beamer@animshowbox=\beamer@animwd% + \box\beamer@animshowbox% +} + +\def\beamer@onslide<#1>{% + \beamer@endaction% + \alt<#1>{% + \ifvoid\beamer@animshowbox\else\ClassError{beamer}{Overprints may not overlap}{}\fi% + \def\beamer@endaction{% + \end{minipage}% + \egroup% + \ifdim\beamer@animht<\ht\beamer@animcurrent\beamer@animht=\ht\beamer@animcurrent\fi% + \ifdim\beamer@animdp<\dp\beamer@animcurrent\beamer@animdp=\dp\beamer@animcurrent\fi% + \setbox\beamer@animshowbox=\copy\beamer@animcurrent} + }% + {\def\beamer@endaction{% + \end{minipage}% + \egroup% + \ifdim\beamer@animht<\ht\beamer@animcurrent\beamer@animht=\ht\beamer@animcurrent\fi% + \ifdim\beamer@animdp<\dp\beamer@animcurrent\beamer@animdp=\dp\beamer@animcurrent\fi}% + }% + \setbox\beamer@animcurrent=\vbox\bgroup\begin{minipage}[t]{\beamer@animwd}% +} + +\mode +<article> +{ + \newenvironment{overprint}[1][]% + {% + \let\beamer@noargsonslide=\beamer@onslide% + \let\beamer@noargsvisibleonslide=\beamer@onslide% + \begin{onlyenv}} + {\end{onlyenv}} + + \def\beamer@onslide<#1>{\end{onlyenv}\begin{onlyenv}<#1>} +} + + +% +% Transitions - DISTRACTING and to be used with CARE!!!! +% + +\define@key{beamertrans}{direction}{\def\beamer@transdir{ /Di #1 }} +\define@key{beamertrans}{duration}{\def\beamer@dur{ /D #1 }} + +\newcommand\beamer@dotrans[2][]{% + \def\beamer@transdir{}% + \def\beamer@dur{}% + \setkeys{beamertrans}{#1}% + \edef\beamer@temp{{pdfpagetransition={#2 \beamer@transdir\space\beamer@dur}}} + \expandafter\hypersetup\beamer@temp} + +\mode +<article> +{ + \newcommand\beamer@dotrans[2][]{} +} + +\mode +<all> +{ + \newcommand<>{\transblindshorizontal}[1][]{\only#2{\beamer@dotrans[#1]{Blinds /Dm /H}}} + \newcommand<>{\transblindsvertical}[1][]{\only#2{\beamer@dotrans[#1]{Blinds /Dm /V}}} + \newcommand<>{\transboxin}[1][]{\only#2{\beamer@dotrans[#1]{Box /M /I}}} + \newcommand<>{\transboxout}[1][]{\only#2{\beamer@dotrans[#1]{Box /M /O}}} + \newcommand<>{\transcover}[1][]{\only#2{\beamer@dotrans[#1]{Cover}}} + \newcommand<>{\transdissolve}[1][]{\only#2{\beamer@dotrans[#1]{Dissolve}}} + \newcommand<>{\transfade}[1][]{\only#2{\beamer@dotrans[#1]{Fade}}} + \newcommand<>{\transglitter}[1][]{\only#2{\beamer@dotrans[#1]{Glitter}}} + \newcommand<>{\transpush}[1][]{\only#2{\beamer@dotrans[#1]{Push}}} + \newcommand<>{\transsplitverticalin}[1][]{\only#2{\beamer@dotrans[#1]{Split /Dm /V /M /I}}} + \newcommand<>{\transsplitverticalout}[1][]{\only#2{\beamer@dotrans[#1]{Split /Dm /V /M /O}}} + \newcommand<>{\transsplithorizontalin}[1][]{\only#2{\beamer@dotrans[#1]{Split /Dm /H /M /I}}} + \newcommand<>{\transsplithorizontalout}[1][]{\only#2{\beamer@dotrans[#1]{Split /Dm /H /M /O}}} + \newcommand<>{\transuncover}[1][]{\only#2{\beamer@dotrans[#1]{Uncover}}} + \newcommand<>{\transwipe}[1][]{\only#2{\beamer@dotrans[#1]{Wipe}}} +} + +\newcommand<>{\transduration}[1]{\only#2{\hypersetup{pdfpageduration=#1}}} + +\mode +<article> +{ + \newcommand<>{\transduration}[1]{} +} + + +% +% Animation macros +% + +\def\animate<#1>{\transduration<#1| handout:0| trans:0>{0}} +\def\animatevalue<#1-#2>#3#4#5{% + \only<#1-#2>{}% enforce these frames + \ifnum\beamer@slideinframe<#1\relax% + #3=#4% + \else% + \ifnum\beamer@slideinframe<#2\relax% + #3=#4\relax% + #3=-#3\relax% + \advance#3 by#5\relax% + \beamer@animationtempa=#2\relax% + \advance\beamer@animationtempa by-#1% + \ifnum\beamer@animationtempa>0% + \divide#3 by\beamer@animationtempa% + \fi% + \beamer@animationtempa=\beamer@slideinframe% + \advance\beamer@animationtempa by-#1% + \multiply#3 by\beamer@animationtempa% + \advance#3 by#4% + \else + #3=#5% + \fi% + \fi% +} + +\mode +<article> +{ + \def\animate<#1>{} + \def\animatevalue<#1-#2>#3#4#5{#3=#4} +} + + + +% +% Labels in overlays +% +\g@addto@macro\beamer@lastminutepatches{% + \let\beamer@origlabel\label + \def\label{\@ifnextchar<{\beamer@label}{\beamer@label<1>}} + + \let\beamer@origlabel@in@display\label@in@display + \def\label@in@display{\@ifnextchar<{\beamer@label@in@display}{\beamer@label@in@display<1>}} +} + +\def\beamer@label<#1>#2{\alt<#1>{\beamer@origlabel{#2}\beamer@nameslide{#2}}{\beamer@dummynameslide}} +\def\beamer@label@in@display<#1>#2{\alt<#1>{\beamer@origlabel@in@display{#2}\beamer@nameslide{#2}}{\beamer@dummynameslide}} + +\mode +<article> +{ + \g@addto@macro\beamer@lastminutepatches{ + % Has to be done late... + \renewcommand<>{\label}{\alt#1{\beameroriginal{\label}}{\@gobble}} + \renewcommand<>{\label@in@display}{\alt#1{\beameroriginal{\label@in@display}}{\@gobble}} + } +} + +\AtBeginDocument +{ + \let\beamer@origref=\ref + \long\def\ref#1{\hyperlink{#1}{\beamer@origref{#1}}} +} + +\mode +<all> + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "~/texmf/tex/latex/beamer/examples/beamerexample1.tex" +%%% End: |