[Tex/LaTex] Tranparent items (not visible!) on a beamer presentation, inside a column and with overlays

beameritemizelistsoverlays

My purpose is to make a frame with 2 columns: on the left, a series of items, and on the right, figures (with one exception). The items are meant to appear one at a time, with different figures (or text) on the right column, which are related to the text on the items.

That exception (slide 3 in the example below) is what is giving me trouble (see the gif animation below). At the 3rd slide on the right there should be an itemized. The list is there actually, but transparent.

This only happens when I put the list on a middle slide. If I change the order so that the list appears at the end, then everything is OK.

If I eliminate the alertblock and the itemize environments (i.e.: make it just normal text), then the problem disappears. Any of those environments alone (i.e.: just the alertblock or just the itemize) seem to trigger the problem again.

The figure below explains (I hope) what the problem is:
example gif

This is a toy example source code:

\documentclass{beamer}
\mode<presentation>
{
  \usecolortheme{default}
  \setbeamercovered{transparent}
}

\usepackage{lmodern}

\begin{document}

\begin{frame}[t]{some title}
  \begin{columns}[T]
    \column{.5\textwidth}
      \begin{itemize}
        \item<1-| alert@1>
          item 1
        \item<2-| alert@2>
          item 2
        \item<3-| alert@3>
          item 3 %%% THE PROBLEM APPEARS IN THIS SLIDE
        \item<4-| alert@4>
          item 4
        \item<5-| alert@5->
          item 5
      \end{itemize}
      \onslide<6->
      \footnotesize final words...
    \column{.5\textwidth}
      \only<1>{ figure 1 }
      \only<2>{ figure 2 }

      %% AND NOW, THE PROBLEMATIC PART:
      \only<3>{
        \begin{alertblock}
          \small % if I comment this line it doesn't compile. 
          \begin{itemize}
            \item
              more items 1
            \item
              more items 2
          \end{itemize}
        \end{alertblock}
      }
      %% END OF TROUBLEMAKER

      \only<4>{ figure 3 }
      \only<5->{ figure 4 (last) }
  \end{columns}
\end{frame}

\end{document}

And there's another weird behavior: if I comment out the \small command, the document doesn't even compile, giving me this error message:

! TeX capacity exceeded, sorry [input stack size=5000].
\end #1->\csname end#1
                      \endcsname \@checkend {#1}\expandafter \endgroup \if@e...
l.50 \end{frame}

!  ==> Fatal error occurred, no output PDF file produced!

Any help is much appreciated!

Best Answer

There are two problems with your code:

  1. The syntax of \onslide differ depending on whether it's used within an overprint environment (onslide<...> ...) or not (onslide<...>{...}). You need to surround the overlay element (\footnotesize final words...) with braces here. See Transparent table captions when using onslide with overprint and setbeamercovered{invisible} for more details. Not using braces as required wreaks havok on the rest of the frame; that is the source of your overlay problem.
  2. The alertblock environment requires one argument (namely the title of the block). No argument is passed to the alertblock environment if you comment out the next line. If you don't want a title, just pass {} as the mandatory argument.

See below:

\documentclass{beamer}
\mode<presentation>
{
  \usecolortheme{default}
  \setbeamercovered{transparent}
}

\usepackage{lmodern}

\begin{document}

\begin{frame}[t]{some title}
  \begin{columns}[T]
    \column{.5\textwidth}
      \begin{itemize}
        \item<1-| alert@1>
          item 1
        \item<2-| alert@2>
          item 2
        \item<3-| alert@3>
          item 3 %%% THE PROBLEM APPEARS IN THIS SLIDE
        \item<4-| alert@4>
          item 4
        \item<5-| alert@5->
          item 5
      \end{itemize}
      \onslide<6->  % <- outside of an overprint environment,
                                % the syntax of is \onslide<...>{},
                                % not \onslide<...> ...
      {%
        \footnotesize final words...%
      }
    \column{.5\textwidth}
      \only<1>{ figure 1 }
      \only<2>{ figure 2 }

      %% AND NOW, THE PROBLEMATIC PART:
      \only<3>{
        \begin{alertblock}{} % alertblock has a mandatory argument
          %\small % if I comment this line it doesn't compile. 
          \begin{itemize}
            \item
              more items 1
            \item
              more items 2
          \end{itemize}
        \end{alertblock}
      }
      %% END OF TROUBLEMAKER

      \only<4>{ figure 3 }
      \only<5->{ figure 4 (last) }
  \end{columns}
\end{frame}

\end{document}