这个最小的例子
\documentclass{beamer}
\begin{document}
\begin{frame}
\begin{itemize}[<+->]
\item item 1
\item item 2
\item item 3
\end{itemize}
\end{frame}
\end{document}
产生一个包含三个项目要点的演示文稿,这些要点将逐一显示。我想全局增加item
s 之间的垂直间距。以下想法没有提供令人满意的解决方案。
\addtolength{\itemsep}{10pt}
可以,但是必须将命令itemize
单独添加到每个环境中。\usepackage{enumitem}
使项目符号不可见。- 重新定义
itemize
环境或item
命令以及按照建议定义新的列表环境这里[<...>]
破坏相应环境或命令的投影仪覆盖规范( )。
还有什么我可以尝试的吗?重新定义环境时是否可以传递覆盖规范?
答案1
基本问题已解决作者:Gonzalo Medina从那时起,我对它进行了一些改进,使其拥有一个可以全局使用或在特定框架内使用的命令(参见注释和示例):
\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}