我希望每个项目的高度都是恒定的(自动调整到最高的一个)。就像“套印”一样,不需要枚举。
\documentclass[11pt]{beamer}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usetheme{Warsaw}
\begin{document}
\begin{frame}
\begin{example}
Have a look to :
\begin{enumerate}[<only@+>]
\item One line
\item Two\\ lines
\item And now\\three\\lines
\end{enumerate}
\end{example}
\end{frame}
\end{document}
答案1
这是因为only
不会为其他项目分配空间。您需要根据自己的情况使用其他方法(请参阅beamer使用指南.pdf第 9 章:创建覆盖)。您需要手动执行此操作(据我所知,但您肯定可以自动执行此操作,请等待 latex 专业人士),选择最大的项目并\onslide+
在那里使用。其余的都可以\onslide*
。我创建了以下解决方案:
\documentclass[11pt]{beamer}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usetheme{Warsaw}
\newcommand{\tlap}[1]{\raisebox{0pt}{#1}}
\newcommand{\myitem}[1]{\tlap{\rlap{\parbox[t]{\linewidth}{\item {\vspace{-2.2ex} \strut#1\strut}}}}}
\begin{document}
\begin{frame}
\begin{example}
Have a look to :
\begin{enumerate}
\onslide*<1>{\myitem{One line}}%
\onslide*<2>{\myitem{Two\\lines}}%
\onslide+<3>{\myitem{And now\\three\\lines}}
\end{enumerate}
\end{example}
\end{frame}
\end{document}
这里的技巧是对较短的项目使用only
或\onslide*
(不分配空间),对最长的项目使用visible
或\onslide+
(分配空间)。
我不知道为什么,但\item
在 parbox 中使用会导致枚举顶部出现空格。这就是我添加的原因\vspace
,看起来不错,但希望有更好的方法。顺便说一句,我假设您想使用环境itemize
,而不是enumeration
?在这种情况下,枚举对我来说没有多大意义……
我添加它\rlap
仅仅是为了测试目的,在一张幻灯片上查看项目。
编辑:如果环境上方没有文本,这似乎无法正常工作enumerate
。第一个条目总是太低,其余的似乎没问题。\vspace
如果这个问题解决了,可能就不再需要调整了。有什么想法吗?
编辑2:为了为您省去很多麻烦,并且不需要一些花哨的东西,只需在这个示例环境中分配所需的空间可能会更容易,我非常喜欢这种方法!
\documentclass[11pt]{beamer}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usetheme{Warsaw}
\newenvironment{examplefix}[1]{\begin{example}\begin{minipage}[t][#1\baselineskip]{\linewidth}}{\end{minipage}\end{example}}
\begin{document}
\begin{frame}
\begin{examplefix}{4}
Have a look to :
\begin{enumerate}[<only@+>]
\item One line
\item Two\\ lines
\item And now\\three\\lines
\end{enumerate}
\end{examplefix}
\end{frame}
\end{document}