Beamer, ambiente alltt e \only

Beamer, ambiente alltt e \only

Eu tenho o seguinte problema ao usar um allttambiente em um documento beamer. Coloquei um allttambiente dentro de um ambiente de bloco. Então, todas as quebras de linha estarão corretas no documento de saída. Mas se eu incluir o bloco com um \onlycomando, as quebras de linha no allttambiente serão removidas. Como posso remover esse problema? Um exemplo mínimo é:

\documentclass{beamer}

\usepackage[utf8x]{inputenc}
\usepackage{default}
\usepackage{xcolor}
\usepackage{alltt}

\begin{document}
\begin{frame}[t,fragile]
This text should be on all 3 overlays.
\only<1,2>{
\begin{block}<1,2>{}
\footnotesize
\begin{alltt}
[user@{\color{red}nodeXX} ~]\$ {\color{blue}module load comp/gcc/4.5.1}
[user@{\color{red}nodeXX} ~]\$ {\color{blue}module load mpi/openmpi/1.6.0}
[user@{\color{red}nodeXX} ~]\$ {\color{blue}mpirun ./prgm}
\end{alltt}
\end{block}
\begin{block}<2>{}
Next Step...
\end{block}
}
\begin{block}<3>{}
This block is shown next directly below the text.  
\end{block}

\end{frame}
\end{document}

Se \only estiver comentado, o ambiente alltt cria as quebras de linha, mas o bloco 3 fica na parte inferior da página.

Responder1

Você pode usar \defverbatim:

\documentclass{beamer}
\usetheme{Boadilla}
\usepackage[utf8x]{inputenc}
\usepackage{default}
\usepackage{xcolor}
\usepackage{alltt}

\begin{document}

\begin{frame}[t,fragile]
\defverbatim[colored]\mycode{
\footnotesize
\begin{alltt}
[user@{\color{red}nodeXX} ~]\$ {\color{blue}module load comp/gcc/4.5.1} 
[user@{\color{red}nodeXX} ~]\$ {\color{blue}module load mpi/openmpi/1.6.0} 
[user@{\color{red}nodeXX} ~]\$ {\color{blue}mpirun ./prgm}
\end{alltt}
}

This text should be on all 3 overlays.
\only<1,2>{
\begin{block}<1,2>{}
\mycode
\end{block}
}
\begin{block}<2>{}
Next Step...
\end{block}
\begin{block}<3>{}
This block is shown next directly below the text.  
\end{block}

\end{frame}
\end{document}

insira a descrição da imagem aqui

informação relacionada