Escopo ou substituição \pause?

Escopo ou substituição \pause?

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 alignapareç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 \pausea 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 alignjá 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 \alwayscomando (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 beamerpausese uso \pausefuncionou quando nada mais simples funcionou.

informação relacionada