我在第一张幻灯片上有一个简单的嵌套列表。我想“覆盖”(使透明)大多数项目并在第二张幻灯片上“提醒”其中一些项目。有没有一种简单的方法可以做到这一点,而无需为所有项目指定覆盖?
我的尝试
\documentclass{beamer}
\setbeamercovered{transparent}
\begin{document}
\begin{frame}
\uncover<1>{
\begin{itemize}
\item Item 1
\begin{itemize}
\item<alert@2> Subitem 1
\end{itemize}
\item Item 2
\item Item 3
\begin{enumerate}
\item Subitem 1
\item<alert@2> Subitem 2
\end{enumerate}
\end{itemize}
}
\visible<2->{Text for slide 2}
\end{frame}
\end{document}
第二张幻灯片如下:
但是,我希望警报项不透明。这种方法只需进行最小的修改即可实现吗?我宁愿不为每个单独的项目指定覆盖。
答案1
您可以像这样发现警告文本:
\documentclass{beamer}
\setbeamercovered{transparent}
\makeatletter
\setbeamertemplate{alerted text begin}{%
\begingroup
\beamer@smuggle{%
\csname beamer@doafter\the\beamer@coveringdepth\endcsname
\global\advance\beamer@coveringdepth by -1\relax
}%
\setbeamercolor{local structure}{parent=alerted text}%
\setbeamercolor{item}{fg=alerted text.fg}%
}
\setbeamertemplate{alerted text end}{%
\endgroup
}
\makeatother
\begin{document}
\begin{frame}
\begin{itemize}[<1>]
\item Item 1
\begin{itemize}
\item<alert@2> Subitem 1
\end{itemize}
\item Item 2
\item Item 3
\begin{enumerate}
\item Subitem 1
\item<alert@2> Subitem 2
\end{enumerate}
\end{itemize}
\visible<2->{Text for slide 2}
\end{frame}
\end{document}