Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I have a question about beamer and enumerations. Which is the best way in beamer to split a long enumeration in such a way that each main point has its own frame?

I already found this related answer but I was wondering about the possibility for a cleaner solution. There's also this other one, but I would like to keep control of frame breaks.

share|improve this question

2 Answers 2

up vote 5 down vote accepted

You may define your own enumeration list using enumerate and (re)storing the counter:

\documentclass{beamer}

\makeatletter
\newenvironment{cenumerate}{%
  \enumerate
  \setcounter{\@enumctr}{\csname saved@\@enumctr\endcsname}%
}{%
  \expandafter\xdef\csname saved@\@enumctr\endcsname{\the\value{\@enumctr}}%
  \endenumerate
}
\newenvironment{cenumerate*}{%
  \enumerate
}{%
  \expandafter\xdef\csname saved@\@enumctr\endcsname{\the\value{\@enumctr}}%
  \endenumerate
}
\makeatother

\begin{document}

\begin{frame}
  \begin{cenumerate*}% starting a new continous enumerate
  \item 1st
  \item 2nd
  \item 3rd
  \item 4th
  \end{cenumerate*}
\end{frame}

\begin{frame}
  \begin{cenumerate}
  \item 5th
  \item 6th
  \item 7th
  \item 8th
  \end{cenumerate}
\end{frame}

\begin{frame}
  \begin{cenumerate}
  \item 9th
  \item 10th
  \item 11th
  \item 12th
  \end{cenumerate}
\end{frame}

\end{document}

But this would fail, if you use step by step enumerations like:

\begin{frame}
  \begin{cenumerate}
  \item 5th
  \item<2-4> 6th
  \item<3-4> 7th
  \item<4> 8th
  \end{cenumerate}
\end{frame}
share|improve this answer
    
Thanks a lot Schweinebacke, it's a really nice solution. I tried that new environment of yours and it seems to be exactly what I was searching for. The step by step issue isn't really a problem for me, I don't use it very often. –  Riccardo Dec 13 '11 at 22:58
\documentclass{beamer}
\begin{document}

\begin{frame}[allowframebreaks,t]{title}{}
  \begin{enumerate}
  \item 1st
  \item 2nd
  \item 3rd
  \item 4th
  \item 5th
  \item 6th
  \item 7th
  \item 8th
  \item 9th
  \item 10th
  \item 11th
  \item 12th
  \item 13th
  \item 14th
  \item 15th
  \item 16th
  \item 17th
  \item 18th
  \end{enumerate}
\end{frame}

\end{document}
share|improve this answer
    
Thanks for your answer Herbert, but it seems to me that with your solution I completely lose control on the frame breaks. Beamer puts them as soon as it lacks space in the current one. I would like to have full, manual control instead. –  Riccardo Dec 13 '11 at 22:50
1  
@Riccardo: You may use \framebreak to add manual frame breaks. This would top align the partial list before the frame break. –  Schweinebacke Dec 14 '11 at 6:39
1  
@Riccardo: use \begin{frame}[allowframebreaks=0.7,t] if you want it at 70% of the page –  Herbert Dec 14 '11 at 7:40
    
Thank you, it will be handy eventually. –  Riccardo Dec 16 '11 at 15:23

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.