This seems to be caused by the center alignment of the two columns (because you use {columns}[c]
). I would change that to top alignment ([t]
) and add \vspace{0cm}
on top of the second column to create a narrow top line to which the first line of the first column is aligned to. This is basically the same solution as for Aligning image and text on top, with minipages and Vertical alignment of tikzpicture with text? just for beamer columns.
\documentclass[t]{beamer}
\usetheme{Singapore}
\usecolortheme{rose}
\begin{document}
\begin{frame}{Riverbend Community Math Center}
\begin{columns}[t]
\begin{column}{0.6\textwidth}
\begin{itemize}[<+->]
\item Founded in Summer of 2006
\item Centered in St.~Joseph County, Indiana
\item Independent, non-profit organization
\item Serves people ages 5 through adult
\item Promotes interest and confidence in mathematics
\end{itemize}
\end{column}
\begin{column}{0.4\textwidth}
\vspace{0cm}
\only<1>{\includegraphics[width=\textwidth]{RiverbendCommunityMathCenter}}
\only<2>{\includegraphics[width=\textwidth]{RiverbendCommunityMathCenter}}
\only<3>{\includegraphics[width=\textwidth]{RiverbendCommunityMathCenter}}
\only<4>{\includegraphics[width=\textwidth]{RiverbendCommunityMathCenter}}
\only<5>{\includegraphics[width=\textwidth]{RiverbendCommunityMathCenter}}
\end{column}
\end{columns}
\end{frame}
\end{document}
Note that instead \only<n>{\includegraphics[...]{...}}
you can also write \includegraphics<n>[...]{...}
which should have the same effect, but is shorter.
For getting the horizontal alignment right, you could supply the trim left
option to the tikzpicture
s, which sets the bounding box so it starts at x=0
. There's no option like that for the vertical alignment, however, so in that case you'll have to make sure the bounding boxes between the pictures match by setting them manually using \pgfresetboundingbox
and then issuing a \path
command that has the right dimensions.
You can automate this by defining a style like
master/.style={
execute at end picture={
\coordinate (lower right) at (current bounding box.south east);
\coordinate (upper left) at (current bounding box.north west);
}
}
which you supply to the first picture of a group to save the necessary bounding box information, and
slave/.style={
execute at end picture={
\pgfresetboundingbox
\path (upper left) rectangle (lower right);
}
}
which you supply to the other pictures in the group to set their bounding box to be equal to that of the first picture.
You have to be a bit careful with manually adjusted bounding boxes, as the pictures could protrude into the page margins or into the surrounding text.
\documentclass[10pt]{book}
\usepackage{tikz}
\tikzset{
master/.style={
execute at end picture={
\coordinate (lower right) at (current bounding box.south east);
\coordinate (upper left) at (current bounding box.north west);
}
},
slave/.style={
execute at end picture={
\pgfresetboundingbox
\path (upper left) rectangle (lower right);
}
}
}
\begin{document}
\begin{tikzpicture}[master]
\draw[line width=30pt] (0,0) -- (7,0);
\end{tikzpicture}
\begin{tikzpicture}[slave]
\draw[line width=30pt] (0,0) -- (7,0);
\draw[line width=20pt] (-0.4, 0) -- (-0.1, 0);
\end{tikzpicture}
\begin{tikzpicture}[slave]
\draw[line width=30pt] (0,0) -- (7,0);
\draw[line width=20pt] (-0.4, 0) -- (-0.1, 0);
\draw[line width=20pt] (-0.8, 0) -- (-0.5, 0);
\end{tikzpicture}
\begin{center}%
\begin{tikzpicture}[master]%
\draw[line width=30pt] (0,0) -- (7,0);
\end{tikzpicture}%
\end{center}%
\begin{center}%
\begin{tikzpicture}[slave]%
\draw[line width=30pt] (0,0) -- (7,0);
\draw[line width=20pt] (-0.4, 0) -- (-0.1, 0);
\end{tikzpicture}%
\end{center}%
\begin{center}%
\begin{tikzpicture}[slave]%
\draw[line width=30pt] (0,0) -- (7,0);
\draw[line width=20pt] (-0.4, 0) -- (-0.1, 0);
\draw[line width=20pt] (-0.8, 0) -- (-0.5, 0);
\end{tikzpicture}%
\end{center}%
\begin{tikzpicture}[master]%
\draw[line width=30pt] (0,0) -- (0,7);
\end{tikzpicture}%
\hspace{1em}
\begin{tikzpicture}[slave]%
\draw[line width=30pt] (0,0) -- (0,7);
\draw[line width=20pt] (0,-0.4) -- (0,-0.1);
\end{tikzpicture}%
\hspace{1em}
\begin{tikzpicture}[slave]%
\draw[line width=30pt] (0,0) -- (0,7);
\draw[line width=20pt] (0,-0.4) -- (0,-0.1);
\draw[line width=20pt] (0,-0.8) -- (0,-0.5);
\end{tikzpicture}%
\begin{center}%
\begin{tikzpicture}[master]%
\draw[line width=30pt] (0,0) -- (0,7);
\end{tikzpicture}%
\hspace{1em}
\begin{tikzpicture}[slave]%
\draw[line width=30pt] (0,0) -- (0,7);
\draw[line width=20pt] (0,-0.4) -- (0,-0.1);
\end{tikzpicture}%
\hspace{1em}
\begin{tikzpicture}[slave]%
\draw[line width=30pt] (0,0) -- (0,7);
\draw[line width=20pt] (0,-0.4) -- (0,-0.1);
\draw[line width=20pt] (0,-0.8) -- (0,-0.5);
\end{tikzpicture}%
\end{center}%
\end{document}
Best Answer
The
overprint
environment has a fixed width which defaults to the\textwidth
(or maybe the similar\linewidth
) and can be given using the optional argument. The whole environment is then centered, not just the image(s) inside it, which are internally left aligned. Because the environment is already as wide as the given space the centering effectively doesn't change its placement. You need to center the images inside theoverprint
area instead (e.g. using\centerline{\includegraphics[..]{..}}}
) or reduce theoverprint
environment to the image width manually so that it can be effectively centered.or
I replaced the
scale
key withwidth
here to ensure that the images have the same width as theoverprint
environment. I prefer the first\centerline
solution because you don't have to match any widths.