讲义模式下的叠加单独框架

讲义模式下的叠加单独框架

对于我的讲座,我经常使用 tikz 以图形方式说明概念。

图表中通常包含大量信息,tikz 包含不同框架上的不同插图。然而,在讲义模式下,所有内容都折叠成一个,难以辨认。

我怎样才能保持“典型”幻灯片的讲义模式,但暂时切换到针对特定幻灯片的每个覆盖层都有单独的页面?

这是 MWE。问题是 tikzpicture 的两个部分都打印在了一起。给出的解决方案这里建议用 <X|handout:X> 替换每个。这在特定情况下可行,但对于具有许多单独叠加层的幻灯片来说,这很乏味(而且我还使用透明模式,所以我真的必须重复两次)

\documentclass[handout]{beamer}
\usepackage{tikz}

\begin{document}
    \begin{frame}
    \begin{itemize}[<+->]
    \item Show all of this
    \item at once
    \item in the handout.
    \end{itemize}
    \end{frame}

    \begin{frame}
    % \begin{animatedhandout} % see below
    \centering
    \begin{tikzpicture}
        \only<1>{\draw (-1,-1) rectangle (1,1) (1,0) node[anchor=west] {Info 1};}
        \only<2>{\draw (0,0) circle (1) (1,0) node[anchor=west] {Info 2};}
    \end{tikzpicture}
    % \end{animatedhandout}
    \end{frame}

    \begin{frame}
    \begin{itemize}[<+->]
    \item Again, this should 
    \item all be shown at once
    \item in the handout.
    \end{itemize}
    \end{frame}
\end{document}

我正在考虑定义一个命令

\newcommand<>{\onlyev}[1]{
  \only<#2 | handout:#2 | tran:#2 >{#1}
}

在每个模式下都只打印在指定的幻灯片上(“仅在任何地方”)。问题是参数 #2 已经包含尖括号,因此 \onlyev<7>{hello} 将扩展为

```\only<<7> | handout:<7> | tran:<7> >{hello}```` 并没有达到预期的效果。如果有人能帮我从我的论点中去掉 < 和 > 符号,我可以使用这种方法。

或者,我尝试定义一个环境animatedhandout,可以在框架内调用该环境,根据以下内容暂时切换到 beamer 模式这个答案

\makeatletter 
\newenvironment{animatedhandout}{
    \begingroup
    \gdef\beamer@currentmode{beamer}
    }{%
    \endgroup
}
\makeatother

不幸的是,这似乎并没有在幻灯片之后切换回讲义模式(由于某种原因,它还会弄乱居中)。

答案1

正如我的评论所示beamer \againframe 显示全帧,无任何/有所有叠加层,如果您只想在组内进行更改而不是全局更改,请使用\def而不是:\gdef

\documentclass[handout]{beamer}
\usepackage{tikz}

\makeatletter 
\newenvironment{animatedhandout}{%
    \begingroup
    \def\beamer@currentmode{beamer}%
    }{%
    \endgroup
}
\makeatother

\begin{document}
    \begin{frame}
    \begin{itemize}[<+->]
    \item Show all of this
    \item at once
    \item in the handout.
    \end{itemize}
    \end{frame}

    \begin{frame}
     \begin{animatedhandout} % see below
     \centering
     \begin{tikzpicture}
        \only<1>{\draw (-1,-1) rectangle (1,1) (1,0) node[anchor=west] {Info 1};}
        \only<2>{\draw (0,0) circle (1) (1,0) node[anchor=west] {Info 2};}
     \end{tikzpicture}\par
     \end{animatedhandout}
    \end{frame}

    \begin{frame}
    \begin{itemize}[<+->]
    \item Again, this should 
    \item all be shown at once
    \item in the handout.
    \end{itemize}
    \end{frame}
\end{document}

在此处输入图片描述

相关内容