Mein Code:
\documentclass{beamer}
\begin{document}
\begin{frame}[fragile]
% Slide 1
\begin{onlyenv}<1->
\begin{verbatim}
#include <stdio.h>
int main()
{
printf("hello, world\n");
return 0;
}
\end{verbatim}
\end{onlyenv}
% Slide 1 + Slide 2
\begin{onlyenv}<2>
\begin{verbatim}
$ cc hello.c
\end{verbatim}
\end{onlyenv}
% Slide 1 + Slide 3
\begin{onlyenv}<3>
\begin{verbatim}
$ cc hello.c
$ ./a.out
\end{verbatim}
\end{onlyenv}
% Slide 1 + Slide 4
\begin{onlyenv}<4>
\begin{verbatim}
$ cc hello.c
$ ./a.out
hello, world
\end{verbatim}
\end{onlyenv}
\end{frame}
\end{document}
Das Problem mit diesem Code besteht darin, dass der Inhalt beim Anzeigen des Codes aufgrund der sich ändernden Höhe des Inhalts ständig herumspringt. Gibt es eine entsprechende Umgebung, onlyenv
die den Platz für die Anzeige des Inhalts in zukünftigen Folien reserviert?
Ich denke, was ich frage, ist: Der \only
Befehl reserviert keinen Speicherplatz für versteckte Inhalte und hat eine entsprechende Umgebung namens \onlyenv
. Andererseits \onslide
reserviert Speicherplatz für versteckte Inhalte und ich versuche, eine entsprechende Umgebung dafür zu finden.
Antwort1
Dies ist mit der Umgebung möglich overprint
. Innerhalb dieser Umgebung \onslide
fungiert der Befehl als \item
.
Ich zitiere das Beamer-Handbuch(9.6.1 Befehle und Umgebungen Overlay-Spezifikationsfähig machen)
\begin{overprint}[area width] environment contents \end{overprint}
Die Bereichsbreite entspricht standardmäßig der Textbreite. Verwenden Sie innerhalb der Umgebung \onFolieBefehle, um verschiedene Dinge anzugeben, die für diese Umgebung auf verschiedenen Folien angezeigt werden sollen. Die\onFolieBefehle werden verwendet wie\ArtikelBefehle. Alles innerhalb der Umgebung wird in einem rechteckigen Bereich der angegebenen Breite platziert. Die Höhe und Tiefe des Bereichs werden groß genug gewählt, um den größten Inhalt des Bereichs aufzunehmen. Die Overlay-Spezifikationen der\onFolieBefehle müssen disjunkt sein. Dies kann ein Problem für Handouts sein, da dort alle Overlay-Spezifikationen standardmäßig1Wenn Sie die OptionHandzettelkönnen Sie alle bis auf einen deaktivieren\onFolieindem Sie die anderen auf0.
\documentclass{beamer}
\begin{document}
\begin{frame}[fragile]
% Slide 1
\begin{overprint}
\onslide<1->
\begin{verbatim}
#include <stdio.h>
int main()
{
printf("hello, world\n");
return 0;
}
\end{verbatim}
\end{overprint}
% Slide 1 + Slide 2
\begin{overprint}
\onslide<2->
\begin{verbatim}
$ cc hello.c
\end{verbatim}
\end{overprint}
% Slide 1 + Slide 3
\begin{overprint}
\onslide<3->
\begin{verbatim}
$ ./a.out
\end{verbatim}
\end{overprint}
% Slide 1 + Slide 4
\begin{overprint}
\onslide<4->
\begin{verbatim}
hello, world
\end{verbatim}
\end{overprint}
\end{frame}
\end{document}