비머 슬라이드보다 콘텐츠를 발전시키세요

비머 슬라이드보다 콘텐츠를 발전시키세요

이 예에서는 다음과 같습니다.

\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}

여기에 이미지 설명을 입력하세요

라인 조인이 보기 좋게 보이도록 하려면 이와 같은 것이 더 나을 수도 있습니다. (현재의 경우 차이를 확인하려면 확대해야 하지만 일반적으로 IMHO가 더 좋습니다.)

\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}

스크린샷

관련 정보