Angenommen, ich verwende immer zwei Blöcke pro Frame.
Dann hätte ich gerne eine einfache Möglichkeit, Folgendes zu tun, ohne Kopieren/Einfügen:
Auf jedem Frame (außer dem ersten),
- Der erste Block sollte der zweite Block aus dem vorherigen Frame sein.
Daher vermute ich, dass etwas Ähnliches wie der folgende Code möglich und hilfreich wäre:
\begin{frame}
% code to call the second block from the previous frame
\begin{block} % the new block, to be used again on the next frame
\end{block}
\end{frame}
Wenn es möglich wäre, einige Overlays zu verwenden, wäre das schön.
Irgendeine Idee?
Antwort1
Hier ist eine Lösung ohne manuelles Eingreifen; \dupbox
sie erledigt die ganze Arbeit; Sie definieren zunächst den ursprünglichen Inhalt und rufen ihn dann einfach mit dem neuen Text auf; sie \dupbox
hat auch ein optionales Argument, mit dem Sie einen Titel für den Block angeben können:
\documentclass{beamer}
\usepackage{tikz}
\usetheme{Warsaw}
\usecolortheme{crane}
\newcommand\dupbox[2][]{%
\begin{block}{\duptitle}
\begin{minipage}{\linewidth}
\duptext
\end{minipage}
\end{block}
\begin{block}{#1}
\begin{minipage}{\linewidth}
#2
\end{minipage}
\end{block}
\gdef\duptext{#2}
\gdef\duptitle{#1}
}
\gdef\duptext{Initial text}
\gdef\duptitle{}
\begin{document}
\begin{frame}
\dupbox[Optional title]{Some text for frames one and two}
\end{frame}
\begin{frame}
\dupbox{Another test text for frames two and three with some math:
\[a=b.\]
}
\end{frame}
\begin{frame}
\dupbox[A simple TikZ drawing]{\tikz{\fill[blue] (0\linewidth,0) circle (13pt);
\fill[orange] (6,0) circle (13pt);}
}
\end{frame}
\begin{frame}
\dupbox{Even more text}
\end{frame}
\end{document}
Antwort2
So wie das?
\documentclass{beamer}
\begin{document}
\begin{frame}
\only<1>{\begin{block}{First} block \end{block}}
\only<1,2>{\begin{block}{Second} block \end{block}}
\only<2,3>{\begin{block}{Third} block \end{block}}
\only<3>{\begin{block}{4th} block \end{block}}
\end{frame}
\end{document}