投影机中的相对覆盖规范?

投影机中的相对覆盖规范?

阅读手册中的以下引文时beamer,我有点困惑:

当你写作时<.->,类似的事情<+->发生了除了计数器beamerpauses没有增加,并且除了您将得到减一的值beamerpauses。因此,一个点(可能后跟偏移量)只是扩展到计数器的当前值beamerpauses减一(可能为偏移量)。

我对最后一句话的理解有些困难,我发现我无法回答以下任何问题:

  1. 指定的偏移量应该是负数还是正数?
  2. 偏移量应该如何指定?手册没有提供任何示例。
  3. 在应用偏移量之前它是否增加了(或者可能减少了)?
  4. beamerpauses柜台的价值是多少之内覆盖所适用的代码?
  5. 这个计数器的值是多少规格?

最小非工作示例

为了更好地理解这一点,我创建了以下最小示例,才不是編輯。

\documentclass{beamer}
\begin{document}
\newcommand\cn{{\small\emph{\textbf{Beamer pauses is \arabic{beamerpauses}}}}}

\begin{frame}[fragile]\frametitle{Dot Notation in Overlays}
  \begin{enumerate}
    \item This is my first item, no overlay specification; \cn
    \item<+-> This is my second item, overlay specification is \verb/<+->/; \cn
    \item<.-> This is my third item, overlay specification is \verb/<.->/; \cn
    \item This is my fourth item, no overlay specification; \cn
    \item<.-> This is my fifth item, overlay specification is \verb/<.->/; \cn
    \item<.(1)-> This is my sixth item, overlay specification is \verb/<.(1)->/; \cn
    \item This is my seventh item, no overlay specification; \cn
    \item<.(-1)-> This is my eighth item, overlay specification is \verb/<.(-1)->/; \cn
    \item This is my ninth item, no overlay specification; \cn
    \item<.(-2)-> This is my tenth item, overlay specification is \verb/<.(-2)->/; \cn
    \item This is my eleventh item, no overlay specification; \cn
    \item<.(+1)-> This is my twelfth item, overlay specification is \verb/<.(+1)->/; \cn
    \item This is my thirteenth item, no overlay specification; \cn
    \item<.(+2)-> This is my fourteenth item, overlay specification is \verb/<.(+2)->/; \cn
    \item This is my fifteenth and final item, with no overlay specification; \cn
  \end{enumerate}
\end{frame}
\end{document}

我收到的错误信息是:

Runaway argument?
! File ended while scanning use of \next.
<inserted text> 
                \par 
<*> myfile.tex

?  

我的请求是:您能否帮助我编译这个例子,更重要的是,根据我未能发现的一般原理解释输出。


最小在职的例子

下面的例子解释了我迄今为止所发现的内容,也是基于下面的讨论。

\documentclass{beamer}
\usepackage{color}
  \newcommand\red[1]{\textcolor{red}{#1} }
  \newcommand\blue[1]{\textcolor{blue}{#1} }

  \makeatletter
\newcommand*{\overlaynumber}{\number\beamer@slideinframe}
\makeatother

\newcommand\noOverlay{\red{No OS---permanent} \cn}
\newcommand\plusMinus{\blue{OS is \texttt{<+->};} \cn}
\usepackage{multicol}\raggedcolumns

\newcommand\ct{\texttt{\textbackslash{}beamerpauses}}
\newcommand\cn{\hfill\textcolor{green!50!black}{\tiny\ct=\arabic{beamerpauses}}}
\begin{document}
\scriptsize
\renewcommand\baselinestretch{0.8}
\begin{frame}\frametitle{Beamer's Overlay Specification (OS) With \texttt{<.$X$>}}
  \alert{\textbf{Slide \#\overlaynumber}}
  \begin{multicols*}{2}
    \begin{enumerate}
      \item\noOverlay 
      \item<+->\plusMinus
      \item<+->\plusMinus
      \item<+->\plusMinus
      \item\noOverlay
      \item<.->OS \texttt{<.->} means \emph{present with last overlay},
    without advancing \ct; \cn
      \item\noOverlay
      \item<.(0)->OS \texttt{<.(0)->} is just the same as \texttt{<.->}; \cn
      \item<.-> in fact, all consecutive occurrences of the \texttt{<.->} OS are displayed together. \cn
      \item\noOverlay 
      \item\plusMinus
      \item<.(-1)-> OS, \texttt{<.(-1)->} means: present the overlayed 
        content \emph{\underline{two} slides before} the current value of \ct; \ct{} does not change; \cn
      \item<+->\plusMinus
      \item<+->\plusMinus
      \item<.(-2)-> OS \texttt{<.(-2)->} means: present the overlayed 
        content \emph{\underline{three} slides before} the current value of counter  \ct; as usual, the counter \ct{} does not change; \cn
      \item\noOverlay
      \item<.(1)->  OS \texttt{<.(1)->} means:
        present with \emph{current} overlay; do not advance \ct; \cn
      \item\noOverlay
      \item<.(2)->  OS \texttt{<.(2)->} means:
        present with \emph{next} overlay; do not advance \ct; \cn
      \item<.(3)->  Similarly, OS \texttt{<.(3)->} means:
        present with overlay \emph{after the next}; as usual, do not advance \ct; \cn
        \item\noOverlay
        \item<+->\plusMinus
        \item\noOverlay
        \item<+->\plusMinus
        \item<+->\plusMinus
        \item<+->\plusMinus
      \end{enumerate}
    \end{multicols*}
  \end{frame}
\end{document}

答案1

在了解.其工作原理之前,我认为有必要简要了解一下+覆盖规范中的工作原理,并将其与仅包含明确数字的“简单”规范联系起来。我将最后讨论偏移量,因为它们更复杂。

对于简单的数字情况

\begin{itemize}
  \item<1-> From the first slide
  \item<2-> From the second slide
  \item<3-> From the third slide
  ...
\end{itemize}

这个想法很明确:具有覆盖规范的内容1-会出现在第一张幻灯片和任何后续幻灯片上,而更复杂的设置(例如<1,3-5,7>)也是可能的并且是人类可读的。

在 的情况下+,当读取覆盖规范时,如果用计数器的当前值beamer替换所有标记,则递增计数器(以应用于它找到的下一个案例)。因此,假设框架中没有其他覆盖,+beamerpauses

\begin{itemize}
  \item<+-> From the first slide
  \item<+-> From the second slide
  \item<+-> From the third slide
  ...
\end{itemize}

相当于前面的例子:第一个+被 替换1,第二个被 替换2,第三个被 替换3

这个想法.是,它允许你拥有两个(或更多)等效的覆盖规范。例如,如果我们想要做

\begin{itemize}
  \item<1-> From the first slide
  \item<1-> From the first slide
  \item<2-> From the second slide
  \item<2-> From the second slide
  ...
\end{itemize}

如果没有对数字进行硬编码,我们就不能直接使用+。相反,我们可以使用.,这实际上意味着“重复最后一个值beamerpauses”:

\begin{itemize}
  \item<+-> From the first slide
  \item<.-> From the first slide
  \item<+-> From the second slide
  \item<.-> From the second slide
  ...
\end{itemize}

这里,第一行beamerpauses1,所以+变成1。第二行中,该值重复出现,所以.被 替换为1。第三行beamerpauses2(因为+第一行有 ),所以我们最终得到的结果与我的硬编码情况相同。

请注意,虽然beamer手册描述了代码级别实际发生的情况,但将其视为.“重复上一次使用的值+”在概念上更容易,并且结果相同。(替换总是使用beamerpauses,并且因为+会增加它,所以你必须退后一步才能.做正确的事情。)

接下来,我们开始讨论偏移业务,这是相当先进的。同样,如果我们先进行硬编码演示,我们可能会

\begin{itemize}
  \item<2-> From the second slide
  \item<3-> From the third slide
  \item<4-> From the fourth slide
  ...
\end{itemize}

可以“灵活地”做到

\begin{itemize}
  \item<+(1)-> From the first slide
  \item<+(1)-> From the second slide
  \item<+(1)-> From the first slide
  ...
\end{itemize}

这里的想法是,括号中的值会“调整”替换,因此+这里的符号将被替换为比正常值“提前”的值。请注意,这beamerpauses仍然是“正确的”,因此在上面的例子中,它1在第一行,2在第二行,ETC。

.语法上也完全一样

\begin{itemize}
  \item<+-> From the first slide
  \item<.(1)-> From the second slide
  \item<.(2)-> From the third slide
  \item<+-> From the second slide
  ...
\end{itemize}

但正如最后一行所示,beamerpauses并没有增加。

括号语法的思想是允许相对的无需修复绝对覆盖数字。但是,您需要确保这些值是合理的。在问题中,行

\item<.(-2)-> This is my tenth item, overlay specification is \verb/<.(-2)->/; \cn

导致错误,因为最后一个+被替换为1。因此减去 2 会得到一个覆盖数-1,这是无效的。beamer代码没有进行健全性测试,因此您会得到一个低级错误:也许可以纠正,但您真的需要注意您的偏移量!

另一件需要注意的事情是,你真的不想+在覆盖层中出现“额外”的符号。例如,在以下行中

\item<.(+1)-> This is my twelfth item, overlay specification is \verb/<.(+1)->/; \cn

以正常方式替换+为的当前值beamerpauses,因此此行首先转换为

\item<.(21)-> This is my twelfth item, overlay specification is \verb/<.(+1)->/; \cn

然后应用偏移:幻灯片 22!想必你想要

\item<.(1)-> This is my twelfth item, overlay specification is \verb/<.(+1)->/; \cn

IE从当前幻灯片往下一张,因此在问题幻灯片 2 的示例中。

举一个您可能想要使用这些偏移量的例子,假设您希望项目的第一行和第三行一起出现,然后是第二行和第四行,但您不想对幻灯片编号进行硬编码。

\begin{itemize}
  \item<+-> First item  % Creates overlay 1
  \item<+-> Second item % Creates overlay 2
  \item<.(-1)-> Third item % Appears on overlay 1
  \item<.-> Fourth item % Appears on overlay 2
\end{itemize}

这只会创建 2 个覆盖,其中后面两个项目将根据它们与第二个项目的相对关系进行设置:最后一个项目已+被使用,因此beamerpauses被更改。


根据要求,回答问题中的具体要点:

  1. 指定的偏移量应该是负数还是正数?

    • 偏移量不应包括+,并且仅当保持值“在范围内”时才应为负数(覆盖的绝对值应保持正数)。
  2. 偏移量该如何指定?

    • 偏移量应使用与 相同的语法来编写+例如,,,,<.(1)-><.(2)->ETC。
  3. 在应用偏移量之前它是否增加了(或者可能减少了)?

    • 都不是。写<.->就写吧<.(0)->
  4. beamerpauses应用覆盖的代码中的计数器的值是多少?

    • 与覆盖规范之前相同:它(可能)仅在覆盖规范的末尾递增。(参见第 5 点)。
  5. 指定之后这个计数器的值是多少?

    • 如果+覆盖规范中存在 a,则 的值beamerpauses将精确增加一。

相关内容