1

I have a simple nested list on the first slide. I want to 'cover' (make transparent) most items and 'alert' some of them on the second slide. Is there a simple way to do this without specifying overlays for all items?

My attempt

\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}

The second slide looks like so:

second slide

However, I want the alerted items to be non-transparent. Is it possible with minimal modifications in this approach? I would prefer not specifying overlays for every individual item.

1 Answer 1

1

You can uncover the alerted text like this:

\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}

enter image description here

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .