在 Beamer 中,不在第一个覆盖层上的标签不会写入 .aux 文件

在 Beamer 中,不在第一个覆盖层上的标签不会写入 .aux 文件

以下 Beamer 文档很荒谬,但却演示了我在实际代码中遇到的一个问题:

\documentclass{beamer}
\begin{document}
\begin{frame}
\only<2>{
\begin{enumerate}
\item<2>\label{label}
\end{enumerate}
\ref{label}
}
\end{frame}
\end{document}

如果将覆盖规范<2>更改为<1>,则此(荒谬的)文档的行为将符合预期。但是,使用覆盖规范<2>,标签{label}永远不会写入.aux文件。

如何标记和引用未出现在框架第一个覆盖中的材料?

答案1

您可以通过确保内容确实存在于第一个覆盖层上但不可见来避免该问题,例如使用\visible<2>{}而不是\only<2>{}

如果这对您的实际文档不起作用(例如由于间距等),您还可以使用\label覆盖规范来确保它在正确的覆盖上发布:

\documentclass{beamer}

\begin{document}
\begin{frame}[label=test]
\only<2>{
\begin{enumerate}
\item<2>\label<2>{label}
\end{enumerate}
ref \ref{label}
}
\end{frame}
\end{document}

相关内容