Eu tenho uma sequência de imagens que gostaria de animar beamer
. Em cada quadro, gostaria de ter duas imagens, digamos A e B, alinhadas verticalmente e centralizadas na página. Todas as imagens têm o mesmo tamanho.
Tentei alinhar as imagens usando \vspace{}
, mas os espaços verticais se acumulam e as imagens deslizam para baixo conforme faço a transição por elas.
Como devo alinhar as imagens em cada quadro?
Aqui está um exemplo mínimo de trabalho:
\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}
Responder1
Usar ambientes flutuantes (como figure
ou table
) em um quadro não funciona como deveria. Para atingir seu objetivo, ative allowpagebreak
e T
. Ajuste os gráficos com height
a opção. Veja o código abaixo para o restante.
\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}
Para criar animação GIF, consulteminha outra resposta aqui.
Responder2
Em vez de \vspace
, você pode usar \\
para forçar uma quebra de linha.
\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}
Responder3
Se você tiver apenas uma quebra de linha no total, em vez de uma para cada par de imagens, seu problema deverá desaparecer. A questão é que seu \vspace{.1in}
comando não é mascarado por <1>
, <2>
, <3>
ou <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}