2

This minimal example

\documentclass{beamer}

\begin{document} \begin{frame} \begin{itemize}[<+->] \item item 1 \item item 2 \item item 3 \end{itemize} \end{frame} \end{document}

yields a presentation with three bullet points that are revealed one by one. I would like to globally increase the vertical spacing between the items. The following ideas do not provide a satisfactory solution.

  • \addtolength{\itemsep}{10pt} works, but the command has to be added to each itemize environment individually.
  • \usepackage{enumitem} makes the bullet points invisible.
  • Redefining the itemize environment or item command as well as defining a new list environment as suggested here breaks the beamer overlay specifications ([<...>]) for the respective environment or command.

Is there anything else I could try? Is it possible to pass through overlay specifications when redefining an environment?

Quappas
  • 33

1 Answers1

3

The base question was solved by Gonzalo Medina here. Since then, I refined it a bit to have a command that you can use globally or inside a specific frame (see the comments and the example):

\documentclass{beamer}

\usepackage{xpatch} \makeatletter \newlength{\my@beamer@itemsepi}\setlength{\my@beamer@itemsepi}{3ex} \newlength{\my@beamer@itemsepii}\setlength{\my@beamer@itemsepii}{1.5ex} \newlength{\my@beamer@itemsepiii}\setlength{\my@beamer@itemsepiii}{1.5ex} \newcommand{\my@beamer@setsep}{% \ifnum@itemdepth=1\relax \setlength\itemsep{\my@beamer@itemsepi}% separation for first level \else \ifnum@itemdepth=2\relax \setlength\itemsep{\my@beamer@itemsepii}% separation for second level % \setlength\topsep{\my@beamer@itemsepi}% separation for second level \else \ifnum@itemdepth=3\relax \setlength\itemsep{\my@beamer@itemsepiii}% separation for third level % \setlength\topsep{\my@beamer@itemsepii}% separation for second level \fi\fi\fi} \xpatchcmd{\itemize} {\def\makelabel}{\my@beamer@setsep\def\makelabel}{}{} \xpatchcmd{\beamer@enum@} {\def\makelabel}{\my@beamer@setsep\def\makelabel}{}{} \newcommand\setlistsep[3]{% \setlength{\my@beamer@itemsepi}{#1}% \setlength{\my@beamer@itemsepii}{#2}% \setlength{\my@beamer@itemsepiii}{#3}% } \makeatother

% This will set the separations in the whole document. You can override % it for each frame by putting it at the start of the frame.

\setlistsep{10ex}{5ex}{5ex}

\begin{document} \begin{frame} \begin{itemize}[<+->] \item item 1 \item item 2 \item item 3 \end{itemize} \end{frame} \begin{frame} \setlistsep{3ex}{3ex}{3ex} \begin{itemize}[<+->] \item item 1 \item item 2 \item item 3 \end{itemize} \end{frame} \begin{frame} \begin{itemize}[<+->] \item item 1 \item item 2 \item item 3 \end{itemize} \end{frame}

\end{document}

enter image description here

Rmano
  • 40,848
  • 3
  • 64
  • 125