我目前正在准备一个会议演示,并且正在使用非常好的tikz
和pgfplots
包与 结合使用beamer
。
为了强调图中的某些内容,我使用了beamer
覆盖系统。
当我使用一些小的tikzpicture
s 时,所有内容都会使用一些命令集成到文档中\input
。但是,对于较大的pgfplots
数字(您会看到我来了),我的编译时间相当长。
我当前的解决方案是使用多个图片分别预编译我的大图片,并使用覆盖选项tikzpicture
调用一些图片。\includegraphics
Beamer 代码
\documentclass{beamer}
\begin{document}
\begin{frame}
\includegraphics<1>[page=1]{image}
\includegraphics<2>[page=2]{image}
\includegraphics<3->[page=3]{image}
\end{frame}
\end{document}
使用哪里image
构建
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\begin{axis}[]
% Plot to be displayed on overlay 1
\addplot[domain=0:1,samples=100]{x};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}[]
% Plots to be displayed on overlay 2
\addplot[domain=0:1,samples=100]{x};
\addplot[domain=0:1,samples=100]{x^2};
\end{axis}
\end{tikzpicture}
% And so on
\end{document}
我知道有一些外部化的方法可以做到这一点,但我想知道社区对此事的看法。
如果这是双份的话,请提前致歉。
standalone
beamer
与选项相关的编辑
使用standalone
该beamer
选项似乎会产生有趣的结果(感谢 samcarter)。但是,输出的大小为框架大小beamer
,而不是适合 pgfplots 轴。请参阅下面的 MWE。
\documentclass[beamer]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{standaloneframe}
\begin{tikzpicture}
\begin{axis}[]
\only<1>{\addplot[domain=0:1, samples=100]{x};}
\addplot[domain=0:1, samples=100]{x^2};
\addplot[domain=0:1, samples=100]{x^3};
\only<4>{\addplot[domain=0:1, samples=100]{x^4}};
\end{axis}
\end{tikzpicture}
\end{standaloneframe}
\end{document}
答案1
将tikz
和preview
选项传递给standalone
:
\documentclass[beamer,tikz,preview]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{standaloneframe}
\begin{tikzpicture}
\begin{axis}[]
\only<1>{\addplot[domain=0:1, samples=100]{x};}
\addplot[domain=0:1, samples=100]{x^2};
\addplot[domain=0:1, samples=100]{x^3};
\only<4>{\addplot[domain=0:1, samples=100]{x^4}};
\end{axis}
\end{tikzpicture}
\end{standaloneframe}
\end{document}
编译后会得到pdflatex
一个裁剪精美的 4 页 PDF。为了方便嵌入到框架中beamer
,我建议采用以下模式:
\documentclass{beamer}
\usepackage{tikz}
\begin{document}
\begin{frame}
\foreach \ov/\pg in {1/1,2/2,3-/3}{
\includegraphics<\ov>[page=\pg]{image.pdf}
}
\onslide<4>{Still the last figure!}
\end{frame}
\end{document}