Tenho alguns slides de palestras com problemas de várias partes. Gostaria que os alunos pudessem ver todo o problema apresentado e, em seguida, preencher as respostas passo a passo. Isso é possível, desde que o material preenchido possa ser dividido em pequenos pedaços:
\documentclass{beamer}
\begin{document}
\begin{frame}\onslide<+->{}
This problem has three parts.
\begin{enumerate}
\item What is the answer to part 1?\\
\onslide<+->{First interpret the question.}\onslide<+->{ Then do some work.}\onslide<+->{ Now we can answer the question, and the answer is} \onslide<+->{ 42.}
\item What is the answer to part 2?\\
\onslide<+->{This problem is easy, and the answer is }\onslide<+->{0.}
\item What is the answer to part 3?\\
\onslide<+->{You'll have to figure this one out for yourself.}
\end{enumerate}
\end{frame}
\end{document}
Esta solução é bastante elegante (exceto a inicial \onslide<+->
para incrementar o contador). Infelizmente, ele quebra (ou pelo menos fica muito confuso) se eu quiser fazer uma pausa no meio de um ambiente, como um alinhamento:
\documentclass{beamer}
\usepackage{amsmath}
\begin{document}
%% Standard (?) fix to make \pause work at all in align environment
\mode<presentation>{\setbeamercovered{transparent=0}}
\makeatletter
\def\beamerorig@set@color{%
\pdfliteral{\current@color}%
\aftergroup\reset@color
}
\def\beamerorig@reset@color{\pdfliteral{\current@color}}
\makeatother
%%
\begin{frame}
This problem has three parts.
\begin{enumerate}
\item What is the answer to part 1?\\\pause
First interpret the question. Then calculate
\begin{align*}
\Pr[X\in A] &=\pause \frac{1}{2^n} \sum_{i=0}^n \binom{n}{i} \\
&=\pause 1
\end{align*}
\item What is the answer to part 2?\\\pause
More answers, \pause with more parts.
\item What is the answer to part 3?\\\pause
...
\end{enumerate}
\end{frame}
\end{document}
É claro que se eu fizer desta maneira as últimas partes do problema não aparecerão até terminarmos a primeira parte.
Eu provavelmente poderia fazer a abordagem anterior funcionar, dividindo a resposta em pedaços ainda menores e, em seguida, garantindo que o texto anterior e a primeira parte do texto align
apareçam simultaneamente, mas isso parece exigir muito trabalho manual em um caso por caso. -caso. Eu pensaria que a solução correta seria restringir o efeito de \pause
a algum escopo dentro da própria resposta ou substituí-lo, forçando o material posterior que desejo visível no início a ser opaco (acredito que a correção para align
já o torna para que o texto esteja sempre lá, apenas transparente).
Existe uma boa maneira de fazer isso?
Responder1
Acabei usando a seguinte solução alternativa usando o \always
comando (reconhecidamente muito hackeado) que redefine o contador de slides para seu conteúdo:
\documentclass{beamer}
\usepackage{amsmath}
%% Standard (?) fix to make \pause work at all in align environment
\mode<presentation>{\setbeamercovered{transparent=0}}
\makeatletter
\def\beamerorig@set@color{%
\pdfliteral{\current@color}%
\aftergroup\reset@color
}
\def\beamerorig@reset@color{\pdfliteral{\current@color}}
\makeatother
%%
%% \always{} command ensures that its contents are visible on all slides of the frame.
\newcounter{beamerpausessave}
\newcommand{\always}[1]{\setcounter{beamerpausessave}{\value{beamerpauses}}
\setcounter{beamerpauses}{0}\pause #1
\setcounter{beamerpauses}{\value{beamerpausessave}}\addtocounter{beamerpauses}{-1}\pause}
\begin{document}
\begin{frame}
This problem has three parts.
\begin{enumerate}
\always{\item What is the answer to part 1?\\}\pause
First interpret the question. Then calculate
\begin{align*}
\Pr[X\in A] &=\pause \frac{1}{2^n} \sum_{i=0}^n \binom{n}{i} \\
&=\pause 1
\end{align*}
\always{\item What is the answer to part 2?\\}\pause
More answers, \pause with more parts.
\always{\item What is the answer to part 3?\\}\pause
...
\end{enumerate}
\end{frame}
\end{document}
Ainda não entendo por que essa combinação específica de configuração beamerpauses
e uso \pause
funcionou quando nada mais simples funcionou.