我正在编写一个演示文稿beamer
,在证明的某个时刻,使用它only<X>
来显示证明的某些部分。在这些宏中,我展示了一些我想在之后引用的定理,但是我总是得到错误<refname> has been referenced but does notexist, replaced by a fixed one
和而??
不是数字。
MWE 如下:
\documentclass{beamer}
\usepackage{amsthm}
\newtheorem{thm}{Theorem}[section]
\begin{document}
\begin{frame}{One}
\begin{thm}\label{thm:one}\end{thm}
\only<2>{
\begin{thm} % I want to reference this one!
\label{thm:one_hidden}
\end{thm}
}
\end{frame}
\begin{frame}{Two}
See theorem~\ref{thm:one} and~\ref{thm:one_hidden}
% output:
% See theorem 0.1 and ??
\end{frame}
\end{document}
有办法实现吗?还是我必须将定理放在only<X>
宏之外?
\uncover
注意:不是按照我的意愿做。它只是隐藏了文本,但仍然占用空间:
我想要的是:
使用 输出中的最后一个??
替换为as 。0.2
\uncover
输出是由 MWE 的这个修改版本产生的:
\documentclass{beamer}
\usepackage{amsthm}
\newtheorem{thm}{Theorem}[section]
\begin{document}
\begin{frame}{One}
\begin{thm}\label{thm:one}A\end{thm}
\only<2>{ % or \uncover<2>{
\begin{thm}
\label{thm:one_hidden}
B
\end{thm}
}
\begin{thm}
C
\end{thm}
\end{frame}
\begin{frame}{Two}
See theorem~\ref{thm:one} and~\ref{thm:one_hidden}
\end{frame}
\end{document}
答案1
您所要做的就是指定标签的覆盖编号
\documentclass{beamer}
\usepackage{amsthm}
\newtheorem{thm}{Theorem}[section]
\begin{document}
\begin{frame}{One}
\begin{thm}\label<1>{thm:one}\end{thm}
\only<2>{
\begin{thm} % I want to reference this one!
\label<2>{thm:onehidden}
\end{thm}
}
\end{frame}
\begin{frame}{Two}
See theorem~\ref{thm:one} and~\ref{thm:onehidden}
% output:
% See theorem 0.1 and ??
\end{frame}
\end{document}