![비머 슬라이드보다 콘텐츠를 발전시키세요](https://rvso.com/image/405341/%EB%B9%84%EB%A8%B8%20%EC%8A%AC%EB%9D%BC%EC%9D%B4%EB%93%9C%EB%B3%B4%EB%8B%A4%20%EC%BD%98%ED%85%90%EC%B8%A0%EB%A5%BC%20%EB%B0%9C%EC%A0%84%EC%8B%9C%ED%82%A4%EC%84%B8%EC%9A%94.png)
이 예에서는 다음과 같습니다.
\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의 선은 후속 슬라이드의 동일한 선을 기준으로 이동됩니다. 각 슬라이드에 동일한 참조 시스템을 적용하는 방법
답변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}