当所有(非嵌套)项目被覆盖时,beamer 显示嵌套子项目

当所有(非嵌套)项目被覆盖时,beamer 显示嵌套子项目

我试图在\itemize项目和子项目(只是嵌套itemize项目)之间获得交替突出显示的效果,但存在一个问题,即当所有非嵌套项目都隐藏时,嵌套的子项目无法显示。 期望的效果是:

  • 覆盖 #1:非嵌套项目最初将以完全不透明的方式显示,而嵌套子项目最初将以透明方式显示
  • 覆盖 #2:非嵌套项目隐藏为透明项目,而嵌套子项目则以完全不透明度显示
  • 覆盖层 #3:所有项目均以完全不透明的方式显示

重现该问题的最小工作示例(使用反映我想要实现的目标的代码):

\documentclass{beamer}
\begin{document}
\setbeamercovered{transparent}
\begin{frame}
    \begin{itemize}
        \item<1,3>{outside}
        \begin{itemize}
            \item<2->{inside}
        \end{itemize}
        \item<1,3>{outside}
    \end{itemize}
\end{frame}
\end{document}

请注意,问题似乎特别出现在嵌套 itemize 环境之前的最后一个非嵌套项中。即,上面的问题是子项未能执行出现在幻灯片 #2 上的叠加规范,但在下面示例中,当其上方的非嵌套项也在幻灯片 #2 期间显示时(而不是在幻灯片 #2 期间隐藏在上方时),此规范有效:

\documentclass{beamer}
\begin{document}
\setbeamercovered{transparent}
\begin{frame}
    \begin{itemize}
        \item<1->{outside}  % <---- this is the difference from above
        \begin{itemize}
            \item<2->{inside}
        \end{itemize}
        \item<1,3>{outside}
    \end{itemize}
\end{frame}
\end{document}

答案1

包括\visible\item

\documentclass{beamer}
\begin{document}
\setbeamercovered{transparent}
\begin{frame}
    \begin{itemize}
        \item\visible<1,3>{outside}
        \begin{itemize}
            \item\visible<2->{inside}
        \end{itemize}
        \item\visible<1,3>{outside}
    \end{itemize}
\end{frame}
\end{document}

在此处输入图片描述

答案2

这是一个几乎可以实现意图的黑客攻击,但并不理想,因为子弹不会变得透明(并且编码也很麻烦)

\setbeamercovered{transparent}
\begin{frame}
    \begin{itemize}
        \item{\temporal<2>{outside}{\color{black!15}{outside}}{outside}}
        \begin{itemize}
            \item<->{inside}
        \end{itemize}
        \item<1,3>{later}
    \end{itemize}
\end{frame}

相关内容