我的目的是制作一个有两列的框架:左侧是一系列项目,右侧是数字(只有一个例外)。项目应该一次显示一个,右列有不同的数字(或文本),它们与项目上的文本相关。
那个例外(下面示例中的幻灯片 3)就是让我感到困扰的地方(参见下面的 gif 动画)。右边的第 3 张幻灯片应该有一个分项。列表实际上就在那里,但是是透明的。
仅当我将列表放在中间幻灯片时才会发生这种情况。如果我更改顺序,使列表出现在最后,则一切正常。
如果我消除alertblock
和itemize
环境(即:使其成为普通文本),则问题消失。单独使用任何这些环境(即:仅使用alertblock
或仅使用itemize
)似乎都会再次引发问题。
下图解释了(我希望)问题是什么:
这是一个玩具示例源代码:
\documentclass{beamer}
\mode<presentation>
{
\usecolortheme{default}
\setbeamercovered{transparent}
}
\usepackage{lmodern}
\begin{document}
\begin{frame}[t]{some title}
\begin{columns}[T]
\column{.5\textwidth}
\begin{itemize}
\item<1-| alert@1>
item 1
\item<2-| alert@2>
item 2
\item<3-| alert@3>
item 3 %%% THE PROBLEM APPEARS IN THIS SLIDE
\item<4-| alert@4>
item 4
\item<5-| alert@5->
item 5
\end{itemize}
\onslide<6->
\footnotesize final words...
\column{.5\textwidth}
\only<1>{ figure 1 }
\only<2>{ figure 2 }
%% AND NOW, THE PROBLEMATIC PART:
\only<3>{
\begin{alertblock}
\small % if I comment this line it doesn't compile.
\begin{itemize}
\item
more items 1
\item
more items 2
\end{itemize}
\end{alertblock}
}
%% END OF TROUBLEMAKER
\only<4>{ figure 3 }
\only<5->{ figure 4 (last) }
\end{columns}
\end{frame}
\end{document}
还有另一个奇怪的行为:如果我注释掉该\small
命令,文档甚至无法编译,并给我这个错误消息:
! TeX capacity exceeded, sorry [input stack size=5000].
\end #1->\csname end#1
\endcsname \@checkend {#1}\expandafter \endgroup \if@e...
l.50 \end{frame}
! ==> Fatal error occurred, no output PDF file produced!
任何帮助深表感谢!
答案1
您的代码有两个问题:
- 的语法
\onslide
取决于它是否在overprint
环境中使用(onslide<...> ...
)或不在环境中使用( )。您需要在此处用括号onslide<...>{...}
将覆盖元素( )括起来。请参阅\footnotesize final words...
使用 onslide 和 overprint 以及 setbeamercovered{invisible} 时,表格标题透明了解更多详情。不按要求使用括号会对框架的其余部分造成严重破坏;这就是覆盖问题的根源。 - 环境
alertblock
需要一个参数(即块的标题)。alertblock
如果注释掉下一行,则不会向环境传递任何参数。如果您不想要标题,只需将其{}
作为强制参数传递即可。
见下文:
\documentclass{beamer}
\mode<presentation>
{
\usecolortheme{default}
\setbeamercovered{transparent}
}
\usepackage{lmodern}
\begin{document}
\begin{frame}[t]{some title}
\begin{columns}[T]
\column{.5\textwidth}
\begin{itemize}
\item<1-| alert@1>
item 1
\item<2-| alert@2>
item 2
\item<3-| alert@3>
item 3 %%% THE PROBLEM APPEARS IN THIS SLIDE
\item<4-| alert@4>
item 4
\item<5-| alert@5->
item 5
\end{itemize}
\onslide<6-> % <- outside of an overprint environment,
% the syntax of is \onslide<...>{},
% not \onslide<...> ...
{%
\footnotesize final words...%
}
\column{.5\textwidth}
\only<1>{ figure 1 }
\only<2>{ figure 2 }
%% AND NOW, THE PROBLEMATIC PART:
\only<3>{
\begin{alertblock}{} % alertblock has a mandatory argument
%\small % if I comment this line it doesn't compile.
\begin{itemize}
\item
more items 1
\item
more items 2
\end{itemize}
\end{alertblock}
}
%% END OF TROUBLEMAKER
\only<4>{ figure 3 }
\only<5->{ figure 4 (last) }
\end{columns}
\end{frame}
\end{document}