Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

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?

share|improve this question

2 Answers 2

up vote 3 down vote accepted

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.

share|improve this answer

I can suggest a less complicated way than what Werner proposed. It consists in one include and no change to your code, but you have to download a custom style that remedy to your problem.

  1. Download fixpauseincludegraphics.sty and place it into the same folder as your .tex file.

  2. Include the package with \usepackage{fixpauseincludegraphics}.

  3. (optional) Check out this post to understand how it works - long story short, this solution consists in an overloading of \includegraphics to redraw the pictures using tikz to change the opacity according to the beamer transparency state.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.