# enumerate, overlays and beamer

I would like to understand the following behaviour of enumerate in beamer. The following example

\documentclass{beamer}

\newcommand{\marca}{\onslide<2>{\makebox[0pt][r]{$\clubsuit$\qquad}}}
\begin{document}

\begin{frame}
My list

\begin{enumerate}
\item\marca One
\item Two
\end{enumerate}
\end{frame}

\end{document}


shows a list. I would like that first overlay shows the numbered list, and the second overlay shows the clubsuit on first item. However, first number does not appear.

If I change my command \marca in the following way

\newcommand{\marca}{\makebox[0pt][r]{\overlay<2>{$\clubsuit$\qquad}}}


then I get what I want. But I don't understand why. Any explanation?

Your macro \uncover the \makebox{} stuff on slide 2, therefore is "covered" on slide 1, but is just there, hiding the number of the item.

If you change \onslide by \uncover or \visibleyou obtain a similar effect. But if you change \onslide by \only, then \makebox will be only on slide 2, and the problem disappear:

\newcommand{\marca}{%
\only<2>{\makebox[0pt][r]{$\clubsuit$\qquad}}
}


Alternatively, you can use \onslide* instead of \only to obtain the same result (run texdoc beamer, see page 80).

When I tried the following, the first number in the list appeared:

\newcommand{\marca}{\mbox{}\onslide<2>{\makebox[0pt][r]{$\clubsuit$\qquad}}}


Added \mbox{} just before \onslide command.