Existe um equivalente a "onlyenv" que reserva espaço para conteúdo oculto?

Existe um equivalente a "onlyenv" que reserva espaço para conteúdo oculto?

Meu código:

\documentclass{beamer}
\begin{document}
\begin{frame}[fragile]

% Slide 1
\begin{onlyenv}<1->
\begin{verbatim}
#include <stdio.h>

int main()
{
    printf("hello, world\n");
    return 0;
}
\end{verbatim}
\end{onlyenv}

% Slide 1 + Slide 2
\begin{onlyenv}<2>
\begin{verbatim}
$ cc hello.c
\end{verbatim}
\end{onlyenv}

% Slide 1 + Slide 3
\begin{onlyenv}<3>
\begin{verbatim}
$ cc hello.c
$ ./a.out
\end{verbatim}
\end{onlyenv}

% Slide 1 + Slide 4
\begin{onlyenv}<4>
\begin{verbatim}
$ cc hello.c
$ ./a.out
hello, world
\end{verbatim}
\end{onlyenv}

\end{frame}
\end{document}

O problema com este código é que à medida que o código é revelado, o conteúdo continua saltando devido à mudança de altura do conteúdo. Existe um ambiente equivalente a onlyenvesse que reservaria espaço para que o conteúdo fosse revelado em slides futuros.

Acho que o que estou perguntando é: o \onlycomando não reserva espaço para conteúdo oculto e possui um ambiente equivalente chamado \onlyenv. Por outro lado, \onslidereserva espaço para conteúdos ocultos e estou tentando encontrar um ambiente equivalente para isso.

Responder1

É possível fazer isso com o overprintmeio ambiente. Dentro deste ambiente, o \onslidecomando funciona como um arquivo \item.

Cito o manual do beamer(9.6.1 Tornando a sobreposição de comandos e ambientes ciente das especificações)

\begin{overprint}[area width] environment contents \end{overprint}

A largura da área é padronizada como a largura do texto. Dentro do ambiente, utilize \onslidecomandos para especificar coisas diferentes que devem ser mostradas para este ambiente em slides diferentes. O\onslidecomandos são usados ​​como\itemcomandos. Tudo dentro do ambiente será colocado em uma área retangular com largura especificada. A altura e a profundidade da área são escolhidas grandes o suficiente para acomodar o maior conteúdo da área. As especificações de sobreposição do\onslideos comandos devem ser separados. Isto pode ser um problema para folhetos, já que, lá, todas as especificações de sobreposição são padronizadas para1. Se você usar a opçãofolheto, você pode desativar todos, exceto um\onslidedefinindo os outros para0.

\documentclass{beamer}
\begin{document}
\begin{frame}[fragile]

% Slide 1
\begin{overprint}
\onslide<1->
\begin{verbatim}
#include <stdio.h>

int main()
{
    printf("hello, world\n");
    return 0;
}
\end{verbatim}
\end{overprint}

% Slide 1 + Slide 2
\begin{overprint}
\onslide<2->
\begin{verbatim}

$ cc hello.c
\end{verbatim}
\end{overprint}

% Slide 1 + Slide 3
\begin{overprint}
\onslide<3->
\begin{verbatim}
$ ./a.out
\end{verbatim}
\end{overprint}

% Slide 1 + Slide 4
\begin{overprint}
\onslide<4->
\begin{verbatim}
hello, world
\end{verbatim}
\end{overprint}

\end{frame}
\end{document}

informação relacionada