为什么我需要对该框架中的幻灯片的第二部分使用“硬”规范?

为什么我需要对该框架中的幻灯片的第二部分使用“硬”规范?

使用 Beamer 时,我有时会发现这个问题,但我不知道该如何处理。当我想在一个框架内先显示一个分段未覆盖的枚举,然后再显示另一个占据相同空间的枚举时,我会使用命令\only结合分段未覆盖的列表和[<+->]代码。

第一个\only命令的行为与我预期的一样,使用我用来控制覆盖的任何代码来揭开幻灯片\only。问题出现在第二次\only出现的时候。然后,如果我想分段揭开或对幻灯片揭开进行任何控制,我需要使用幻灯片的数字引用对幻灯片进行“硬编码”。

这个框架的例子解释了这一点:

\documentclass[xcolor=dvipsnames, 14pt]{beamer} %Presentation

\begin{document}


\begin{frame}{Title of the frame}

\begin{columns}[T]
    \begin{column}{0.65\textwidth}
    Here it goes something
    \end{column}

    \begin{column}{0.40\textwidth}
    \only<1-3>{Hello: \\
    
    \begin{enumerate}[<+->]
    \item one slide
    \item 2 slide
    \item 3 slide
    \end{enumerate}}%End of \only<1-3>
    \only<4->{
    in the same place
    
    \begin{enumerate}%[<+->]
    \item<4-> 4 slide
    \item<5-> 5 slide
    \item<6-> laast slide
    \end{enumerate}
    }%End of \only<4-
    \end{column}
\end{columns}

\end{frame}

\end{document}

[<+->]这是预期的行为吗?因为对我来说,听起来我做错了什么,在第一次之后无法使用\only

答案1

问题的根源在于\only不排版其内容然后将其丢弃。相反,它只是将其丢弃。也就是说,在第四张幻灯片上, 的内容\only<1-3>从未执行过,因此beamerpauses从未递增。因此,使用\begin{enumerate}[<+->],第一个\item仍然等同于\item<1->等。这就是为什么所有三个项目都显示在幻灯片 4 上的原因。如果在第二个列表中添加更多项目,您可以更清楚地看到这一点:只有前四个将显示在幻灯片 4 上,其他将以递增方式显示。

\setcounter{beamerpauses}{4}一个解决方案就是在之后说\only<4->{“伪造”省略的第一个列表的增量。

一种可能更可取的可能性是使用overprint代替。

\documentclass{beamer}

\begin{document}

\begin{frame}{Title of the frame}
  \begin{overprint}
    \onslide<1-3>
      Hello:
    
      \begin{enumerate}[<+->]
        \item one slide
        \item 2 slide
        \item 3 slide
      \end{enumerate}%
    
    \onslide<4->
      in the same place
      
      \begin{enumerate}[<+->]
      \item 4 slide
      \item 5 slide
      \item laast slide
      \end{enumerate}
  \end{overprint}
\end{frame}

\end{document}

我似乎记得overprint在复杂的幻灯片布局中遇到过一些麻烦,所以最好还是掌握一些beamerpauses技巧。但只要它有效,我就会选择overprint

相关内容