[Tex/LaTex] Beamer: always overlay first item on same frame

beameritemizeoverlays

I've read and tried to follow instructions from similar questions but I can't seem to get my slide to work the way it should. I basically have an itemize block and I want my list items to show overlaid, but always remain top-aligned. My code is:

\begin{frame}[fragile]
\begin{itemize}
\item<1-1> a really long item, which takes up almost the entire page
\item<2-2> another item
\item<3-3> yet another one
\end{itemize}
\end{frame}

Currently, items 2 and 3 correctly show up by themselves, but there is a huge blank space where the first item was. Hope I made my issue clear. Cheers.

Best Answer

The default overlay specifications use the \uncover method. This means if it they are not “on” the current slide they are invisible, but take up the same amount of space as if they were there.

It sounds like you want material not on the current slide to be skipped altogether, which means you want \only instead. You can add this into the overlay spec like so:

\begin{frame}{Only}
\begin{itemize}
\item<only@1> a really long item, which takes up almost the entire page
\item<only@2> another item
\item<only@3> yet another one
\end{itemize}
\end{frame}

You don't need start and end slides if those slide numbers are the same. In fact, you can further optimize using the + token to indicate “increment one”:

\begin{frame}{Only}
\begin{itemize}
\item<only@+> a really long item, which takes up almost the entire page
\item<only@+> another item
\item<only@+> yet another one
\end{itemize}
\end{frame}

And now that all the specs are the same you can make it an argument to the itemize environment.

\begin{frame}{Only}
\begin{itemize}[<only@+>]
\item a really long item, which takes up almost the entire page
\item another item
\item yet another one
\end{itemize}
\end{frame}