In most documents, you can do this, which avoids the use of extra packages.
\let\tempone\itemize
\let\temptwo\enditemize
\renewenvironment{itemize}{\tempone\addtolength{\itemsep}{0.5\baselineskip}}{\temptwo}
(Stufazi suggested a neater way of doing this in his answer, which I will use below.)
However, I think that the frame
environment in beamer
resets the properties of itemize
. You could do something like this, but it will prevent frame
's optional arguments from working.
\documentclass{beamer}
\let\oldframe\frame
\renewcommand{\frame}{%
\oldframe
\let\olditemize\itemize
\renewcommand\itemize{\olditemize\addtolength{\itemsep}{100pt}}%
}
%
\begin{document}
\begin{frame}
\begin{itemize}
\item The first.
\item The second.
\item The third.
\end{itemize}
\end{frame}
%
\begin{frame}
\begin{itemize}
\item The fourth.
\item The fifth.
\item The sixth.
\end{itemize}
\end{frame}
%
\end{document}
Alternatively, you could try this, but I can't guarantee that it won't break something else.
\documentclass{beamer}
\newlength{\wideitemsep}
\setlength{\wideitemsep}{\itemsep}
\addtolength{\wideitemsep}{100pt}
\let\olditem\item
\renewcommand{\item}{\setlength{\itemsep}{\wideitemsep}\olditem}
%
\begin{document}
\begin{frame}
\begin{itemize}
\item The first.
\item<2-> The second.
\item<3-> The third.
\end{itemize}
\end{frame}
%
\begin{frame}[shrink=50]
\begin{itemize}
\item The fourth.
\item The fifth.
\item The sixth.
\end{itemize}
\end{frame}
%
\end{document}
It might be safer to define your own list environment based on itemize and use this in future; thus
\newenvironment{wideitemize}{\itemize\addtolength{\itemsep}{100pt}}{\enditemize}
This would avoid the necessity for hacks that have unwanted side effects.
It's not a good idea to use the enumitem
package with beamer
since beamer
has its own ways of dealing with the standard list-like environments. Just by loading enumitem
when using beamer
you loose the special beamer
formatting and the overlay-awareness of the list-like components.
To suppress the spacing, you can redefine itemize
as implemented by beamer
in the file beamerbaselocalstructure.sty
. In the following example I show a possible modification, setting \topsep
, \partopsep
and \itemsep
to 0pt
(adjust these values according to your needs); the modified lines are signaled with %NEW
:
\documentclass{beamer}
\makeatletter
\renewcommand{\itemize}[1][]{%
\beamer@ifempty{#1}{}{\def\beamer@defaultospec{#1}}%
\ifnum \@itemdepth >2\relax\@toodeep\else
\advance\@itemdepth\@ne
\beamer@computepref\@itemdepth% sets \beameritemnestingprefix
\usebeamerfont{itemize/enumerate \beameritemnestingprefix body}%
\usebeamercolor[fg]{itemize/enumerate \beameritemnestingprefix body}%
\usebeamertemplate{itemize/enumerate \beameritemnestingprefix body begin}%
\list
{\usebeamertemplate{itemize \beameritemnestingprefix item}}
{%
\setlength\topsep{0pt}%NEW
\setlength\partopsep{0pt}%NEW
\setlength\itemsep{0pt}%NEW
\def\makelabel##1{%
{%
\hss\llap{{%
\usebeamerfont*{itemize \beameritemnestingprefix item}%
\usebeamercolor[fg]{itemize \beameritemnestingprefix item}##1}}%
}%
}%
}
\fi%
\beamer@cramped%
\raggedright%
\beamer@firstlineitemizeunskip%
}
\makeatother
\begin{document}
\begin{frame}
Some text
\begin{itemize}
\setlength\topsep{0pt}
\setlength\partopsep{0pt}
\item Item 1
\item Item 2
\item Item 3
\end{itemize}
Some text
\end{frame}
\end{document}
Just for comparison, the same list without the modifications:
Best Answer
The list-like environments (
enumerate
,itemize
, anddescription
) add a vertical space equal to\topsep + \parskip + (possibly) \partopsep
before and after the list. You can suppress those spaces using the correspondingenumitem
keys; an example: