Beamer 有[<+->]
列表选项,可使每个项目单独显示。但是,它也使嵌套列表中的项目单独显示。如何使每个嵌套列表作为一个整体显示?
例如,
\begin{itemize}[<+->]
\item A
\begin{itemize}
\item A1
\item A2
\end{itemize}
\item B
\begin{itemize}
\item B1
\item B2
\end{itemize}
\end{itemize}
每个项目单独出现(换句话说,创建了 6 张幻灯片)。我希望所有 A 同时出现,所有 B 同时出现(换句话说,PDF 中有两张幻灯片)。
PS. 我宁愿避免使用明确的<i->
注释。
答案1
我不相信你能。在文档中(Beamer 用户指南,v.3.33,第 110 页第 12.1 节)中写道:“⟨默认覆盖规范⟩被子环境继承。当然,在子环境中,您可以通过将其设置为 来在本地重置它<1->
。" 我可能是错的,可能存在绕过它的方法,但这似乎是预期的行为。
我建议您定义自己的innerItemize
环境:
\newenvironment{innerItemize}{%
\begin{itemize}[<1->]%
}{%
\end{itemize}%
}
\begin{itemize}[<+->]
\item A
\begin{innerItemize}
\item A1
\item A2
\end{innerItemize}
\item B
\begin{innerItemize}
\item B1
\item B2
\end{innerItemize}
\end{itemize}
如果你坚持使用原始代码,你可以破解环境itemize
以使用默认环境作为外层,并转向相当于innerItemize
内层的。我不认为我会喜欢这样的破解,但你可以这样做:
\let\oldItemize\itemize
\let\endoldItemize\enditemize
\newcommand{\myItemize}[1][<1->]{\oldItemize[#1]}
\def\endmyItemize{\endoldItemize}
\let\itemize\myItemize
\let\enditemize\endmyItemize