我尝试\usebox
在不同的框架上使用,但效果不如我预期。在下面的例子中,我预期第二张幻灯片也包含第二个椭圆。
\documentclass{beamer}
\usepackage{tikz}
\begin{document}
\newsavebox{\MyBox}
\begin{frame}
\savebox{\MyBox}{
\begin{tikzpicture}
\draw (0,0) ellipse (1cm and 2cm);
\end{tikzpicture}
}
\usebox{\MyBox}
\end{frame}
\begin{frame}
\usebox{\MyBox}
\end{frame}
\end{document}
PS:我尝试这样做的原因是创建图片的缩略图,以便当您单击时跳转到包含该图片的幻灯片。
答案1
通过将 tikzpicture (及其\savebox
) 移出环境framed
,其影响可以扩展到整个文档。通过将其放置在环境中 (如您最初所做的那样),您可以将图片的范围限制在该环境中。
\documentclass{beamer}
\usepackage{tikz}
\begin{document}
\newsavebox{\MyBox}
\savebox{\MyBox}{%
\begin{tikzpicture}
\draw (0,0) ellipse (1cm and 2cm);
\end{tikzpicture}%
}
\begin{frame}
\usebox{\MyBox}
\end{frame}
\begin{frame}
\usebox{\MyBox}
\end{frame}
\end{document}
答案2
\savebox
做出当地的分配给框寄存器。因此,当前环境结束后,设置将丢失frame
。这可以通过全局\setbox
分配来更改:
\documentclass{beamer}
\usepackage{tikz}
\newcommand*{\MakeGlobalBox}[1]{%
\global\setbox#1=\copy#1\relax
}
\begin{document}
\newsavebox{\MyBox}
\begin{frame}
\savebox{\MyBox}{%
\begin{tikzpicture}
\draw (0,0) ellipse (1cm and 2cm);
\end{tikzpicture}%
}
\usebox{\MyBox}
\MakeGlobalBox\MyBox
\end{frame}
\begin{frame}
\usebox{\MyBox}
\end{frame}
\end{document}
评论:
- 顺便说一句,我删除了框内容左侧和右侧的空格。它们是由 和
\savebox{\MyBox}{
之后的行尾引起的\end{tikzpicture}
。