# In beamer, create a new slide for every item of a list

In a beamer class document, I would like to change the definition of the enumerate environment in such a way that every item is displayed in its own frame, at the top of the frame. In other words, I would like the following code

\documentclass{beamer}
% Code changing the definition of enumerate
\begin{document}

\begin{enumerate}
\item First point
\item Second point
\end{enumerate}

\end{document}


to produce the same result than

\documentclass{beamer}
\begin{document}

\begin{frame}
1) First point
\vspace*{\textheight} % moves the item at the top of the slide
\end{frame}

\begin{frame}
2) Second point
\vspace*{\textheight}
\end{frame}

\end{document}


Note that I do not want the 1) First point to appear on the second slide.

If it is possible (cherry on the cake!), I would like this redefinition of enumerate to be applied only when used inside a certain environment (say myenv).

You can use <only@1> to show a particular item on the first slide of a frame only. Instead of \vspace*{\textheight}. use [t] in order to top align the contents of a frame:

\documentclass{beamer}
\begin{document}

\begin{frame}[t]
\begin{enumerate}
\item<only@1> First point
\item<only@2> Second point
\end{enumerate}
\end{frame}

\end{document}

• Thanks! But you do not answer my question, as I want the behavior of \item to be modified once and for all, and not having to type <only@n> to every item Nov 11, 2020 at 8:32