ビーマーのスライド番号を参照すると、すべてのスライドが表示されません (未定義の参照エラー)

ビーマーのスライド番号を参照すると、すべてのスライドが表示されません (未定義の参照エラー)

段階的に開かれるスライドがあります。通常は 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}

結果は次のとおりです。

ここに画像の説明を入力してください

これは、通常はラベルの定義は完全に機能しますが (最後の 2 つのスライド)、すべてのスライドを表示しない場合は機能しません (最初の 2 つのスライド)。

それで...この問題をどうやって解決するのでしょうか?

答え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}

ここに画像の説明を入力してください

関連情報