beamer 中的动画:嵌套列表

beamer 中的动画:嵌套列表

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

相关内容