[Tex/LaTex] Beamer pause and grey not in order

beamergraphicspause

I have a slide that is produced by the following codes:

\begin{frame}[plain]
\begin{itemize}
\item Current work 0
\item Future works 1
\item Future works 2
\begin{center}
\includegraphics[scale=0.35]{xxx.pdf}
\end{center}
\end{itemize}
\end{frame}

Now I want to display the first item "Current work 0" and the graphics xxx.pdf at the same time, while grey out the two "Future works". Then on the next slide I want to display the two "Future works" items and grey out "Current works" and the graphics. Is there any way to achieve that?

Best Answer

The following MWE provides \hidecontent[<transparency>]{<stuff>} that hides <stuff> with a white transparent box. Optional transparency is set as <transparency> (provided by Heiko's transparent package); default is 0.25 or 25%:

enter image description here

\documentclass{beamer}% http://ctan.org/pkg/beamer
\usepackage{transparent}% http://ctan.org/pkg/transparent
\setbeamercovered{transparent}
\newcommand{\hidecontent}[2][0.25]{{% \hidecontent[<transparency>]{<stuff>}
  \setbox9=\hbox{#2}% Store <stuff> in \box9 to obtain height/width
  \transparent{#1}\ooalign{\usebox9\cr\color{white}\rule{\wd9}{\ht9}\cr}}}
\begin{document}
\begin{frame}[plain]
  \begin{itemize}
    \item<1> Current work 0
    \item<2> Future works 1
    \item<2> Future works 2
    \begin{center}
      \mbox{\only<1>{\includegraphics[scale=0.35]{example-image-a.pdf}}}%
      \mbox{\only<2>{\hidecontent{\includegraphics[scale=0.35]{example-image-a.pdf}}}}%
    \end{center}
  \end{itemize}
\end{frame}
\end{document}

beamer doesn't adequately handle hiding of graphics, hence the use of \hidecontent. This works well with rectangular content. Other content (textual, for example), is best dealt with by beamer itself.