透過投影機幻燈片發展內容

透過投影機幻燈片發展內容

在這個例子中:

\documentclass{beamer}
\usepackage{tikz}
\begin{document}
\begin{frame}
  \begin{overlayarea}{\linewidth}{0.7\paperheight}
    \centering
    \begin{tikzpicture}
      \coordinate (O) at (0, 0);
      \coordinate (A) at (5, 5);
      \coordinate (B) at (-5, 5);
      \only<1>
          {
            \draw (O) -- (B);
          }
          \only<2>
              {
                \draw (O) -- (B);
                \draw (O) -- (A);
              }
              \only<3>
                  {
                    \draw (O) -- (B);
                    \draw (O) -- (A);
                    \draw (A) -- (B);
                  }
    \end{tikzpicture}
  \end{overlayarea}
\end{frame}
\end{document}

我在投影片上描繪出一幅更複雜的畫面:

在此輸入影像描述

然而:

  1. 在每張投影片中,我都會重新繪製上一張投影片上繪製的所有內容。如何繼承上一張投影片的內容?

  2. 投影片 1 上的線相對於後續投影片上的同一線發生位移。如何在每張投影片上強制使用相同的參考系統。

答案1

解決方案可以使用\onslide

\documentclass{beamer}
\usepackage{tikz}
\begin{document}
\begin{frame}
    \centering
    \begin{tikzpicture}
      \coordinate (O) at (0, 0);
      \coordinate (A) at (5, 5);
      \coordinate (B) at (-5, 5);
\onslide<1->{
    \draw (O) -- (B);
    }
\onslide<2->{
    \draw (O) -- (A);
    }
\onslide<3->{
    \draw (A) -- (B);
    }
    \end{tikzpicture}
\end{frame}
\end{document}

在此輸入影像描述

答案2

overlay-beamer-styles就是為此而生的。與使用不同的是\only,這通常可以避免跳轉,而無需添加硬編碼的邊界框,您需要猜測其坐標,並且如果您決定稍後添加路徑,則需要調整該邊界框。

\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{overlay-beamer-styles}
\begin{document}
\begin{frame}
  \begin{overlayarea}{\linewidth}{0.7\paperheight}
    \centering
    \begin{tikzpicture}
      \coordinate (O) at (0, 0);
      \coordinate (A) at (5, 5);
      \coordinate (B) at (-5, 5);
      \draw (O) -- (B);
      \draw[visible on=<2->] (O) -- (A);
      \draw[visible on=<3->] (A) -- (B);
    \end{tikzpicture}
  \end{overlayarea}
\end{frame}
\end{document}

在此輸入影像描述

如果你想讓線條連接看起來不錯,也許這樣的東西更好。 (在本例中,您需要放大才能看到差異,但總的來說,恕我直言,這更好。)

\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{overlay-beamer-styles}
\begin{document}
\begin{frame}
  \begin{overlayarea}{\linewidth}{0.7\paperheight}
    \centering
    \begin{tikzpicture}
      \coordinate (O) at (0, 0);
      \coordinate (A) at (5, 5);
      \coordinate (B) at (-5, 5);
      \draw[visible on=<1>] (O) -- (B);
      \draw[visible on=<2>] (B) -- (O) -- (A);
      \draw[visible on=<3->] (B) -- (O) -- (A) -- cycle;
    \end{tikzpicture}
  \end{overlayarea}
\end{frame}
\end{document}

在此輸入影像描述

如果您想要使用許多路徑,您可以定義一種樣式 ,accumulate path它可以幫助您累積這些路徑。您只需繪製這些路徑,只要您希望該路徑和所有後續路徑僅出現在下一幀上,您就需要添加vis+.您不需要任何範圍或任何東西,只需vis+

\documentclass{beamer}
\usepackage{tikz}
\newcounter{Viesturs-step}
\resetcounteronoverlays{Viesturs-step}%
\usetikzlibrary{overlay-beamer-styles}
\tikzset{accumulate path/.style={/utils/exec=\setcounter{Viesturs-step}{#1},
every path/.append style={visible on=<\number\value{Viesturs-step}->}},
accumulate path/.default=1,
vis+/.style={/utils/exec=\stepcounter{Viesturs-step},
visible on=<\number\value{Viesturs-step}->}}
\begin{document}
\begin{frame}[t]
    \centering
    \begin{tikzpicture}[accumulate path]
      \coordinate (O) at (0, 0);
      \coordinate (A) at (5, 5);
      \coordinate (B) at (-5, 5);
      \draw (O) -- (B);
      \draw[red] (O) to[bend left] (B);
      \draw[vis+] (O) -- (A);
      \draw[red] (O)  to[bend right]  (A);
      \draw[vis+] (A) -- (B);
      \draw[red] (A)  to[bend right]  (B);
    \end{tikzpicture}
\end{frame}
\end{document}

在此輸入影像描述

答案3

\documentclass{beamer}
\usepackage{tikz}
\begin{document}
\begin{frame}
  \begin{overlayarea}{\linewidth}{0.7\paperheight}
    \centering
    \begin{tikzpicture}
    \useasboundingbox(-5.5,-.5)rectangle(6,5.5);% 
      \coordinate (O) at (0, 0);
      \coordinate (A) at (5, 5);
      \coordinate (B) at (-5, 5);

            \draw<1-> (O) -- (B);
            \draw<2-> (O) -- (A);
            \draw<3> (A) -- (B);
    \end{tikzpicture}
  \end{overlayarea}
\end{frame}
\end{document}

螢幕截圖

相關內容