Ich habe eine Bildsequenz, die ich animieren möchte beamer
. In jedem Frame möchte ich zwei Bilder haben, sagen wir A und B, vertikal ausgerichtet und zentriert auf der Seite. Alle Bilder haben die gleiche Größe.
Ich habe versucht, die Bilder mithilfe von auszurichten \vspace{}
, doch dann häufen sich die vertikalen Abstände und die Bilder rutschen nach unten, während ich durch sie hindurch gehe.
Wie soll ich die Bilder in jedem Rahmen ausrichten?
Hier ist ein minimales funktionierendes Beispiel:
\documentclass{beamer}
\begin{document}
\frame{
\begin{figure}[t!]
\includegraphics<1>[scale=.5]{fig/imageA1} \vspace{.1in}
\includegraphics<1>[scale=.5]{fig/imageB1}
\includegraphics<2>[scale=.5]{fig/imageA2} \vspace{.1in}
\includegraphics<2>[scale=.5]{fig/imageB2}
\includegraphics<3>[scale=.5]{fig/imageA3} \vspace{.1in}
\includegraphics<3>[scale=.5]{fig/imageB3}
\includegraphics<4>[scale=.5]{fig/imageA4} \vspace{.1in}
\includegraphics<4>[scale=.5]{fig/imageB4}
\end{figure}
}
\end{document}
Antwort1
Die Verwendung schwebender Umgebungen (wie figure
oder table
) in einem Rahmen funktioniert nicht wie vorgesehen. Um Ihr Ziel zu erreichen, aktivieren Sie allowpagebreak
und T
. Passen Sie die Grafik mit height
der Option an. Den Rest finden Sie im Code unten.
\documentclass{beamer}
\usepackage{graphicx}
\begin{document}
\frame[allowpagebreak,T]
{%
\only<1>
{%
\centering
\includegraphics[height=\dimexpr0.5\textheight-0.5in]{example-image-a}
\vfill
\includegraphics[height=\dimexpr0.5\textheight-0.5in]{example-image-a}
}%
\only<2>
{%
\centering
\includegraphics[height=\dimexpr0.5\textheight-0.5in]{example-image-b}
\vfill
\includegraphics[height=\dimexpr0.5\textheight-0.5in]{example-image-b}
}%
\only<3>
{%
\centering
\includegraphics[height=\dimexpr0.5\textheight-0.5in]{example-image-c}
\vfill
\includegraphics[height=\dimexpr0.5\textheight-0.5in]{example-image-c}
}%
\only<4>
{%
\centering
\includegraphics[height=\dimexpr0.5\textheight-0.5in]{example-image}
\vfill
\includegraphics[height=\dimexpr0.5\textheight-0.5in]{example-image}
}%
}
\end{document}
Informationen zum Erstellen von GIF-Animationen finden Sie untermeine andere Antwort hier.
Antwort2
Anstelle von \vspace
können Sie verwenden, \\
um einen Zeilenumbruch zu erzwingen.
\documentclass{beamer}
\begin{document}
\frame{
\begin{figure}[t!]
\includegraphics<1>[scale=.5]{img} \\
\includegraphics<1>[scale=.5]{img}
\includegraphics<2>[scale=.5]{img} \\
\includegraphics<2>[scale=.5]{img}
\includegraphics<3>[scale=.5]{img} \\
\includegraphics<3>[scale=.5]{img}
\includegraphics<4>[scale=.5]{img} \\
\includegraphics<4>[scale=.5]{img}
\end{figure}
}
\end{document}
Antwort3
Wenn Sie insgesamt nur einen Zeilenumbruch haben, anstatt einen für jedes Bildpaar, sollte Ihr Problem verschwinden. Der Punkt ist, dass Ihr \vspace{.1in}
Befehl nicht durch die <1>
, <2>
, <3>
, oder maskiert wird <4>
:
\documentclass{beamer}
\begin{document}
\frame{
\begin{figure}[t!]
\includegraphics<1>[scale=.5]{fig/imageA1}
\includegraphics<2>[scale=.5]{fig/imageA2}
\includegraphics<3>[scale=.5]{fig/imageA3}
\includegraphics<4>[scale=.5]{fig/imageA4}
\vspace{.1in}
\includegraphics<1>[scale=.5]{fig/imageB1}
\includegraphics<2>[scale=.5]{fig/imageB2}
\includegraphics<3>[scale=.5]{fig/imageB3}
\includegraphics<4>[scale=.5]{fig/imageB4}
\end{figure}
}
\end{document}