通过投影仪幻灯片改进内容

通过投影仪幻灯片改进内容

在此示例中:

\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

解决方案可以使用\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}

截屏

相关内容