我有一张分为两列的幻灯片,其中一列应包含代码块,该代码块会在接下来的幻灯片中发生变化。此代码有效:
\documentclass{beamer}
\usepackage[utf8x]{inputenc}
\usepackage{listings}
\begin{document}
\begin{frame}[fragile]
\frametitle{Title ®}
\centering
\begin{columns}[onlytextwidth]
\begin{column}{0.4\textwidth}
Figure
\end{column}
\begin{column}{0.5\textwidth}
%\only<1>{
\begin{block}{Block1}
\begin{lstlisting}
if(1) {}
\end{lstlisting}
\end{block}
%}
%\only<2>{
\begin{block}{Block2}
\begin{lstlisting}
if(2) {}
\end{lstlisting}
\end{block}
%}
\end{column}
\end{columns}
\end{frame}
\end{document}
但当我取消注释时
\only<1>{
...
}
\only<2>{
...
}
我收到错误:
! 额外 },或忘记 \endgroup. l.23 }
我该如何解决?
答案1
论证中的逐字逐句材料是有问题的。请使用onlyenv
环境:
\documentclass{beamer}
\usepackage[utf8x]{inputenc}
\usepackage{listings}
\begin{document}
\begin{frame}[fragile]
\frametitle{Title ®}
\centering
\begin{columns}[onlytextwidth]
\begin{column}{0.4\textwidth}
Figure
\end{column}
\begin{column}{0.5\textwidth}
\begin{onlyenv}<1>
\begin{block}{Block1}
\begin{lstlisting}
if(1) {}
\end{lstlisting}
\end{block}
\end{onlyenv}
\begin{onlyenv}<2>
\begin{block}{Block2}
\begin{lstlisting}
if(2) {}
\end{lstlisting}
\end{block}
\end{onlyenv}
\end{column}
\end{columns}
\end{frame}
\end{document}