访问 beamer 中的当前覆盖编号

访问 beamer 中的当前覆盖编号

对于beamer我的某个包中的一些相关代码,我需要访问当前的覆盖编号。我指的是用于诸如 之类的东西的内部编号\only<1>{..}

\only<1>{ Some internal number must be one in here }
\only<2>{ But 2 in here }
\only<1-5>{\includegraphics[page=(current overlay number)]{...}}

我查看了beamer手册,没有找到任何相关信息。我查看了源代码,找到了一些相关的宏/计数器,但它们并不总是保存正确的值。\beamerpauses似乎也不是正确的。有人知道这个数字的“官方”计数器/宏吗?

答案1

您可能正在寻找内部柜台

\beamer@slideinframe

定义于beamerbasedecode.stybeamer:当遇到诸如\only<1,3-5>{...}检查是否显示或隐藏内容之类的事情时参考的值。

关于如何访问该值的小演示:

\documentclass{beamer}
\makeatletter
\newcommand*{\overlaynumber}{\number\beamer@slideinframe}
\makeatother
\begin{document}
\begin{frame}
\only<1>{ Some internal number must be \overlaynumber\ in here }
\only<2>{ But \overlaynumber\ in here }

\only<1-5>{Graphic \overlaynumber}
\end{frame}
\end{document}

相关内容