我lstlisting
在 beamer 框架中使用环境,但我还想使用带有显示/隐藏选项的块,如<2>
、<1-3>
等。使用以下代码,仅显示框架的第一个版本(仅显示第一个块)。有没有办法让隐藏/显示的块选项在选项[containsverbatim]
处于活动状态时起作用?
\begin{frame}[containsverbatim]
\begin{block}{}
\begin{lstlisting}
blah blah blah
\end{lstlisting}
\end{block}
\begin{block}<2>{}
\begin{lstlisting}
blah blah blah
\end{lstlisting}
\end{block}
\end{frame}
答案1
当然,你可以在框架中结合逐字材料和覆盖规范;只有一些预防措施必须采取:要在框架中使用逐字材料,你必须将选项添加[fragile]
到frame
环境(对于逐字逐句的材料,该\frame
命令不起作用);该\end{frame}
行必须单独一行:
\documentclass{beamer}
\usepackage{listings}
\begin{document}
\begin{frame}[fragile]
\begin{block}{}
\begin{lstlisting}
blah blah blah
\end{lstlisting}
\end{block}
\begin{block}<2>{}
\begin{lstlisting}
blah blah blah
\end{lstlisting}
\end{block}
\end{frame}
\end{document}
答案2
您可以组合lstlisting
和 beamer 的 uncover
功能。但是您不应该使用containsverbatim
。相反,有一个选项可以将逐字部分放在 之前,这样\begin{frame}
就不会混淆 beamer 的功能。您可以在 beamer 类的文档中找到它。