我制作了一个 beamer 演示文稿,其中按顺序使用 构建了一个 TikZ 图\pause
。示例:
\documentclass{beamer}
\usepackage{tikz}
\begin{document}
\begin{frame}
\begin{tikzpicture}[ scale=5 ]
\draw (0,0) -- (1,0) node[below] {$f_1$};
\pause
\draw (0,0) -- (0,1) node[left] {$f_2$};
\pause
\draw (0,0) -- (0.87,0.5) node[right] {$f_3$};
\end{tikzpicture}
\end{frame}
\end{document}
这会产生三张幻灯片。我希望将它们作为三张单独的图像,其中每张 TikZ 图片覆盖整个“页面”或“幻灯片”。也就是说,我想要输出 slide1.pdf、slide2.pdf 和 slide3.pdf,并且每张幻灯片中的 TikZ 图片都应覆盖整个幻灯片。
我可以通过创建三个包含大量重复 TikZ 代码的独立 .tex 文件来实现这一点,但我想还有更好的方法。
有什么好的解决办法?
答案1
我不确定这个问题,但我认为你正在寻找standalone
\documentclass[beamer]{standalone}
\usepackage{tikz}
\begin{document}
\begin{standaloneframe}
\begin{tikzpicture}[ scale=5 ]
\draw (0,0) -- (1,0) node[below] {$f_1$};
\pause
\draw (0,0) -- (0,1) node[left] {$f_2$};
\pause
\draw (0,0) -- (0.87,0.5) node[right] {$f_3$};
\end{tikzpicture}
\end{standaloneframe}
\end{document}
生成一个包含三页/框架的 pdf 文档。
您可以使用where将它们作为背景包含在任何beamer
演示文稿中。\includegraphics[page=x]{your-standalone-file.pdf}
x=1,2,3
您standaloneframe
不必担心不同的图形尺寸,因为它们都是相同的。
\documentclass{beamer}
\begin{document}
\setbeamertemplate{background}{\includegraphics[page=1]{168685}}
\begin{frame}{First frame}
\end{frame}
\setbeamertemplate{background}{\includegraphics[page=2]{168685}}
\begin{frame}{Second frame}
\end{frame}
\setbeamertemplate{background}{\includegraphics[page=3]{168685}}
\begin{frame}{Third frame}
\end{frame}
\end{document}
答案2
如果使用\documentclass[tikz]{standalone}
,则tikzpicture
文档中的每个环境都将创建不同的页面。
然后,您可以将每个页面单独包含在文档中。我使用循环\foreach
来生成多个tikzpicture
环境,并根据幻灯片编号设置各种切换和值。
这是独立文档的一个示例。
% Using the 'tikz' option causes each tikz diagram to be displayed on a different page.
\documentclass[tikz]{standalone}
\usepackage{etoolbox}% Provides \newtoggle
\newtoggle{showLines}
\newtoggle{showRegions}
\begin{document}
\foreach \slideNumber in {
0, % Slide that is never shown. Used to adjust the timing of overlays in Beamer slideshow.
0, % Circle only
10, % Lines
20, % Regions (blue)
30 % Regions (red)
}{%
\ifnum \slideNumber > 9
\toggletrue{showLines}
\fi
\ifnum \slideNumber > 19
\toggletrue{showRegions}
\fi
\ifnum \slideNumber > 29
\def\fillColor{blue}
\else
\def\fillColor{red}
\fi
\tikzset{regions/.style={fill=\fillColor}}
\begin{tikzpicture}[scale=1.2]
\iftoggle{showRegions}{
% Draw shaded regions
\fill[regions] (0, 1) -- (1, 1) -- (1, 0) -- cycle;
\fill[regions] (0, 1) -- (-1, 1) -- (-1, 0) -- cycle;
\fill[regions] (0, -1) -- (1, -1) -- (1, 0) -- cycle;
\fill[regions] (0, -1) -- (-1, -1) -- (-1, 0) -- cycle;
}{}% END 'showRegions'
\iftoggle{showLines}{%
\draw (0.0, 0.0) -- (1, 1);
\draw (0.0, 0.0) -- (-1, 1);
\draw (0.0, 0.0) -- (1, -1);
\draw (0.0, 0.0) -- (-1, -1);
}{}% End 'showLines'
\draw (0,0) circle[radius=1cm];
\end{tikzpicture}
}
\end{document}
以下是使用生成的 TikZ 图像的 Beamer 幻灯片示例:
\documentclass{beamer}
% Access the current Beamer overlay value,
% per https://tex.stackexchange.com/a/55066/153678
\makeatletter
\newcommand*{\overlaynumber}{\number\beamer@slideinframe}
\makeatother
\begin{document}
\begin{frame}
\begin{columns}
\begin{column}[T]{0.48\textwidth}
Here is my first thing to say. There is nothing to see here yet.
\pause
\begin{itemize}[<+->]
\item Now there is a circle.
\item Crossed by lines.
\item Add some red corners.
\item Make them blue.
\end{itemize}
\end{column}
\hfill
\begin{column}[T]{0.48\textwidth}
% Start showing the images on the second slide.
% Set the page of the PDF displayed equal to
\includegraphics<2->[page=\overlaynumber]{path/to/tikzoutput.pdf}
\end{column}
\end{columns}
\end{frame}
\end{document}