# Beamer - list items replace one another

In a certain frame, I would like to have a picture at the bottom of the frame and several list items that describe it. So my plan is to divide the frame vertically, put the picture at bottom and the list items on top. However because of room issue, I would like the first item to appear, then be replaced by the second item, and so on.

That is, my first slide in that frame should look like:

\begin{frame}[t]{System overview}
\begin{minipage}{\textwidth}
\begin{itemize}
\item item1
\end{itemize}
\end{minipage}
\vfill
\begin{minipage}{\textwidth}
\begin{center}
\includegraphics[scale=0.65]{picture.jpg}
\end{center}
\end{minipage}
\end{frame}


and the second slide:

\begin{frame}[t]{System overview}
\begin{minipage}{\textwidth}
\begin{itemize}
\item item2
\end{itemize}
\end{minipage}
\vfill
\begin{minipage}{\textwidth}
\begin{center}
\includegraphics[scale=0.65]{picture.jpg}
\end{center}
\end{minipage}
\end{frame}


and so on. Any ideas?

-

You can simply use overlay specifications on the items. As follows:

\begin{frame}[t]{System overview}
\begin{minipage}{\textwidth}
\begin{itemize}
\item<1> item1
\item<2> item2
\end{itemize}
\end{minipage}
\vfill
\begin{minipage}{\textwidth}
\centering
\includegraphics[scale=0.65]{picture.jpg}
\end{minipage}
\end{frame}


Note that I replaced the center environment with \centering, it deals better with space. If you want elements to be visible on more than one slide, you can use ranges like <1-4> for slides 1 through 4 and <3-> for from slide 3 onwards.

Edit: I misunderstood the quesiton, to keep the items in place you need an \only specification. You can renew the \item macro to be "overlay-aware" like this:

\documentclass{beamer}
\renewcommand<>{\item}[1]{\only#2{\beameroriginal{\item}{#1}}}
\begin{document}
\begin{frame}[t]{System overview}
\begin{minipage}{\textwidth}
\begin{itemize}
\item<1>{item1}
\item<2>{item2}
\end{itemize}
\end{minipage}
\vfill
\begin{minipage}{\textwidth}
\centering
\includegraphics[scale=0.65]{picture.jpg}
\end{minipage}
\end{frame}
\end{document}


Note that you need the {} around the argument to \item.

If for some reason you don't want to have to use curly braces to delimit the argument to \item or you don't want to renew the item command you can use the action specification like follows:

\documentclass{beamer}
\begin{document}
\begin{frame}[t]{System overview}
\begin{minipage}{\textwidth}
\begin{itemize}
\item<1|only@1> item1
\item<2|only@2> item2
\item<3|only@3> item3
\end{itemize}
\end{minipage}
\vfill
\begin{minipage}{\textwidth}
\centering
\includegraphics[scale=0.65]{picture.jpg}
\end{minipage}
\end{frame}
\end{document}

-
Thanks. However, I want the second item to appear in the same place as the first item, and so on. Otherwise I don't have room for the picture –  Elec Jan 23 '12 at 8:56
@Elec: see the updated answer. –  Roelof Spijker Jan 23 '12 at 9:11
Thanks, it does the trick. But is it possible to define it only locally? (I don't want to change the itemize definition outside that specific frame). Also another issue - is it possible to make the picture "stick" to the bottom of the page? it changes the vertical position as I change slides, depending on the item's number of rows, even though I used \vfill –  Elec Jan 23 '12 at 9:35
@Elec: You can specify \begin{frame}[b], then the whole frame is aligned to bottom instead of center. –  yo' Jan 23 '12 at 9:45
Ok, the updated answer is perfect regarding the items. Do you know how to solve the issue of vertical alignment? –  Elec Jan 23 '12 at 9:46

You need the \alt command which works like \item\alt<1>{item1}{item2} or nested: \item\alt<1>{item1}{\alt<2>{item2}{item3}} etc. Look up the details of this command in the beamer documentation.

-