在块投影仪上使用 \only

在块投影仪上使用 \only

有没有办法让命令\only在块中起作用beamer

或者是否有其他方法可以让块出现然后消失?

这是我的代码的一部分:

\documentclass{beamer}
\usetheme{CambridgeUS}


\usepackage[french]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{moreverb}
\usepackage{listings}
\begin{document}

\begin{frame}[fragile]{Creation des outils principaux}
  % - Le titre doit résumer le transparent dans un langage compréhensible
  %   par tous ceux qui ne suivront rien de ce qu'il y a sur ce transparent.
  \begin{itemize}
        \item Recuperation des donnees entrées dans le terminal
            \only<2>{
                \begin{exampleblock}{Opt Parse}
\begin{lstlisting}[firstnumber=0]
import optparse
def parser():
    parser = optparse.OptionParser(        description = "Dessinateur de fonctions")
    parser.add_option('-o', type=str, action = "store",
                        default="out.ppm", dest="filename",
                        help='filename. Default : out.ppm')
    return parser.parse_args()
if __name__ == '__main__':
    (opts, args) = parser()
\end{lstlisting}
                \end{exampleblock}
            }
    \end{itemize}
\end{frame}

\end{document}

答案1

我没看到你的问题。我构建了这个 MWE:

\documentclass{beamer}
\usetheme{CambridgeUS}

\begin{document}

\begin{frame}{Title of this frame}
% first block appears at first
\only<1>{
    \begin{block}{First block}
    Hello
    \end{block}
}
% first block disappears and the second appears
\only<2>{
    \begin{block}{Second block}
    Hello again
    \end{block}
}

\end{frame}

\end{document}

获得这两个框架:

在此处输入图片描述

在此处输入图片描述

如您所见,帧号始终相同,并且第二个块出现在第一个块之后,并且不太明显。

编辑

在您发布 MWE 后,我了解到了您的问题。也许我的解决方案不能完全让您满意,但它确实有效。

首先:这个选项fragile无论如何都是需要的。其次,由于我注意到代码几乎占据了整个框架(即使将字体大小设置得更小),所以我决定在我的解决方案中将其放在环境之外itemize

这是新的 MWE:

\documentclass{beamer}
\usetheme{CambridgeUS}

\usepackage[french]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{moreverb}
\usepackage{listings}
\lstset{basicstyle={\footnotesize}}
\begin{document}

\begin{frame}[fragile]{Creation des outils principaux}
  % - Le titre doit résumer le transparent dans un langage compréhensible
  %   par tous ceux qui ne suivront rien de ce qu'il y a sur ce transparent.
\begin{itemize}
\item<1-> Recuperation des donnees entrées dans le terminal
\end{itemize}
\begin{exampleblock}{Opt Parse}<2>
\begin{lstlisting}[firstnumber=0]
import optparse
def parser():
    parser = optparse.OptionParser(        description = "Dessinateur de fonctions")
    parser.add_option('-o', type=str, action = "store",
                        default="out.ppm", dest="filename",
                        help='filename. Default : out.ppm')
    return parser.parse_args()
if __name__ == '__main__':
    (opts, args) = parser()
\end{lstlisting}
\end{exampleblock}

\end{frame}
\end{document}

结果如下面两帧所示:

在此处输入图片描述

在此处输入图片描述

注意,关键点是将 插入<1->item<2>这样exampleblockitem当 出现时, 的句子仍然可见exampleblock

答案2

Claudio 的变体回答可以通过修改动作规范环境block,正如Beamer 3.50 版用户指南在第 9.6.3 节中:

\documentclass{beamer}
\usetheme{CambridgeUS}

\begin{document}

\begin{frame}{Title of this frame}
% first block appears at first
\begin{block}<only@1>{First block} % <-- note the "only@" here...
    Hello
\end{block}
% first block disappears and the second appears
\begin{block}<only@2>{Second block} % <-- and here
    Hello again
\end{block}

\end{frame}

\end{document}

相关内容