У меня есть слайд, который открывается пошагово. Допустим, обычно у него n слайдов. Но «теперь» я решаю не начинать со слайда 1, а, скажем, со слайда 2. Хотя все еще показано n-1 слайдов, LaTeX все равно решает, что больше не может найти определение метки! Как решить эту проблему?
Ниже я привожу минимальный пример. Обратите внимание, что я продублировал все слайды, чтобы можно было определить метку как аргумент слайда, а также «обычным способом» — просто чтобы показать, что это ничего не меняет.
Вот код:
\documentclass{beamer}
\begin{document}
\begin{frame}<2->{Title of Slide 1}\label{LabelOfSlideOne}
Slide 1 has three subslides, opened one by one, normally. Here, however, we start at slide number 2!
\begin{itemize}[<+->]
\item 1
\item 2
\item 3
\end{itemize}
\end{frame}
\begin{frame}<2->[label=LabelOfSlideTwo]{Title of Slide 2}
Slide 2 is exactly as slide 1, we simply define the label differently.
\begin{itemize}[<+->]
\item 1
\item 2
\item 3
\end{itemize}
\end{frame}
\begin{frame}{Title of Slide 3}\label{LabelOfSlideThree}
Slide 3 has two subslides, we show them incrementally, as normal.
\begin{itemize}[<+->]
\item 1
\item 2
\end{itemize}
\end{frame}
\begin{frame}[label=LabelOfSlideFour]{Title of Slide 4}
Slide 4 is exactly as slide 3, we simply define the label differently.
\begin{itemize}[<+->]
\item 1
\item 2
\end{itemize}
\end{frame}
\begin{frame}{Slide 5: Test all the references!}
\begin{itemize}
\item This should show a 1: \ref{LabelOfSlideOne}
\item This should show a 2: \ref{LabelOfSlideTwo}
\item This should show a 3: \ref{LabelOfSlideThree}
\item This should show a 4: \ref{LabelOfSlideFour}
\end{itemize}
\end{frame}
\end{document}
Вот результат:
Это показывает, что в то время какобычноОпределение меток работает отлично (последние два слайда), но не работает, когда мы не показываем все слайды (первые два слайда).
Итак... Как решить эту проблему?
решение1
Есть несколько способов избежать этой проблемы:
Вы можете указать метку на определенном наложении, например
\label<2>{LabelOfSlideOne}
вы можете сослаться на определенное наложение метки, например
\ref{LabelOfSlideTwo<2>}
\documentclass{beamer}
\begin{document}
\begin{frame}<2->{Title of Slide 1}\label<2>{LabelOfSlideOne}
Slide 1 has three subslides, opened one by one, normally. Here, however, we start at slide number 2!
\begin{itemize}[<+->]
\item 1
\item 2
\item 3
\end{itemize}
\end{frame}
\begin{frame}<2->[label=LabelOfSlideTwo]{Title of Slide 2}
Slide 2 is exactly as slide 1, we simply define the label differently.
\begin{itemize}[<+->]
\item 1
\item 2
\item 3
\end{itemize}
\end{frame}
\begin{frame}{Title of Slide 3}\label{LabelOfSlideThree}
Slide 3 has two subslides, we show them incrementally, as normal.
\begin{itemize}[<+->]
\item 1
\item 2
\end{itemize}
\end{frame}
\begin{frame}[label=LabelOfSlideFour]{Title of Slide 4}
Slide 4 is exactly as slide 3, we simply define the label differently.
\begin{itemize}[<+->]
\item 1
\item 2
\end{itemize}
\end{frame}
\begin{frame}{Slide 5: Test all the references!}
\begin{itemize}
\item This should show a 1: \ref{LabelOfSlideOne}
\item This should show a 2: \ref{LabelOfSlideTwo<2>}
\item This should show a 3: \ref{LabelOfSlideThree}
\item This should show a 4: \ref{LabelOfSlideFour}
\end{itemize}
\end{frame}
\end{document}