Ich habe die Antwort auf diese Frage gelesenMischen von Überdrucken mit Aufzählungsblöcken
[Ich kopiere den Code erneut, damit Sie dem Link nicht folgen müssen]
\documentclass{beamer}
\usetheme{Warsaw}
\begin{document}
\begin{frame}{Test}
\begin{center}
text before
\pause
\begin{overlayarea}{\textwidth}{3.3cm}
\only<2-3>{%
\begin{block}{Some title here}
\begin{enumerate}[<+->]
\item One
\item Two
\end{enumerate}
\end{block}}
\only<4-7>{%
\begin{block}{Some title here}
\begin{enumerate}[<+(2)->]
\item CHicken
\item Duck
\item Rooster
\end{enumerate}
\end{block}}
\end{overlayarea}
text after
\end{center}
\end{frame}
\end{document}
und mir ist die Verwendung einer Zahl in Klammern in der standardmäßigen inkrementierten Overlay-Spezifikation in der zweiten enumerate
Umgebung aufgefallen. (siehe das Vorhandensein von [<+(2)->]
) Nur dann werden die Elemente der zweiten nummerierten Liste in der overlayarea
Umgebung inkrementell aufgedeckt.
Warum ist das nötig? Es scheint zu bedeuten, dass beamerpauses
es zwischen den enumerate
Umgebungen zurückgesetzt wird? Oder wird es zwischen den only
Befehlen in der overlay
Umgebung zurückgesetzt?
Ist das nicht ein übles Verhalten? Denn es ist, als ob Sie die Beamerpausen selbst im Auge behalten müssten. Der Nutzen von [<+->]
geht dann verloren, nicht wahr?
Antwort1
Das scheinbar seltsame Phänomen kann anhand des folgenden einfachen Beispiels erklärt werden:
\documentclass{beamer}
\newcommand\showpauses{The value of beamerpauses at this point in slide \insertpagenumber\ is: \thebeamerpauses}
\begin{document}
\begin{frame}{Test}
\only<1-2>{\par\showpauses%
\begin{enumerate}[<+->]
\item One \showpauses
\item Two \showpauses
\end{enumerate}
}
\only<3>{\par\showpauses}
\end{frame}
\end{document}
Nach der Bearbeitung des Dokuments erhalten Sie eine Präsentation mit drei Folien, die den Wert des beamerpauses
Zählers in verschiedenen Stadien zeigt.
Bis Folie zwei läuft alles wie erwartet: Am Ende von enumerate
auf Folie zwei ist der Wert von beamerpauses
drei; auf Folie drei beamerpauses
ist jedoch 1
. Warum ist das passiert? Nun, weil die Overlay-Spezifikation für \only
war 1-2
, alsoalleswas auf den Folien 1 und 2 passiert, wird nur für diese Folien auftreten; insbesondere beamerpauses
wird das durch die Aufzählung erzeugte Stepping von Auswirkungen habennurfür Folie eins und zwei. Auf der dritten Folie, die nicht unter dem Einfluss von steht , hat \only
der Zähler den Wert, den er vorher hatte.beamerpauses
Zeigt dies, dass etwas mit nicht stimmt beamer
? Ich glaube nicht; schließlich \only
ist die erwartete Bedeutung von , die Dinge in seinem Rahmen zu halten.nurfür die angegebenen Folien.
Wenn Sie im obigen Beispiel <1->
(oder <1-3>
) anstelle von verwenden, wie in<1-2>
\documentclass{beamer}
\newcommand\showpauses{The value of beamerpauses at this point in slide \insertpagenumber\ is: \thebeamerpauses}
\begin{document}
\begin{frame}{Test}
\only<1->{\par\showpauses%
\begin{enumerate}[<+->]
\item One \showpauses
\item Two \showpauses
\end{enumerate}
}
\only<3>{\par\showpauses}
\end{frame}
Sie werden sehen, dass der Zähler auf Folie drei jetzt den Wert drei hat, da die dritte Folie im Gültigkeitsbereich von liegt \only
.
Die „schmutzige“ manuelle Erhöhung des Zählers im ursprünglichen Beispiel war einfach auf den Spezialeffekt zurückzuführen, den der OP erzielen wollte. Vielleicht könnte dieser gleiche Effekt auch auf andere Weise ohne manuelles Eingreifen erzielt werden?