我有一个 beamer 演示文稿,其中显示了很多图表(从图论的角度来看),编译起来需要花费很多时间。我认为该
standalone
软件包可能会对我有所帮助,但我看不出它如何帮助我。假设这是我的主要文档(我使用的是 Emacs,以及 Ubuntu 11.10 中更新的 vanilla TeX Live 2011):
\documentclass{beamer}
\usepackage[mode=buildnew]{standalone}
\begin{document}
\begin{frame}
%\includestandalone{simpleframe}
\input{simpleframe}
\end{frame}
\end{document}
%%% Local Variables:
%%% LaTeX-command: "latex -shell-escape"
%%% End:
这是文件 simpleframe.tex:
\documentclass[beamer]{standalone}
\begin{document}
\begin{standaloneframe}
\only<1>{One}
\only<2>{Two}
\end{standaloneframe}
\end{document}
然后:
- 编译 simpleframe.tex 没问题
- 编译主文件就可以了
- 编译主文件
\includestandalone
仅显示第一个覆盖层,并且带有溢出的框。
我想利用 的优点[mode=buildnew]
,但难道我不需要使用 吗\includestandalone
?我该怎么做?
答案1
我是 的作者standalone
。首先,是的,[mode=buildnew]
需要\includestandalone
。 包含的文件\input
不会受到 的影响mode
。您的问题是,独立文件在此模式下作为图像包含在 中,并且\includestandalone
。这是使用 完成的,\includegraphics
默认情况下,它仅选择多页 PDF 的第一页。为了使其工作,\includegraphics
需要在独立文件中重新应用叠加规范,即\includegraphics<1>[page=1]{...}
、\includegraphics<2>[page=2]{...}
等。目前情况并非如此,但我会将其放在包的待办事项列表中。
我现在创建了一些代码,这些代码会将独立 PDF 的所有页面都包含到 beamer 中。这只是一个简单的概念验证代码,并不支持所有内容,例如\graphicspath
不支持,PDF 也不是由 构建的standalone
。
请注意,standalone
sbeamer
支持实际上并不适合您的应用程序。将整个框架作为图像并不是真正的解决方法。问题还在于beamer
内容standalone
未被裁剪。您可能需要寻找更好的方法来提高编译速度。请查看\includeonlyframes
手册beamer
。
\documentclass{beamer}
\usepackage[mode=buildnew]{standalone}
\newcount\mycount
\renewcommand\includestandalone[2][]{%
\begingroup
\pdfximage{#2.pdf}%
\chardef\npages\pdflastximagepages\relax
\mycount=1
\loop
\includegraphics<\the\mycount>[page=\the\mycount,#1]{#2.pdf}
\ifnum\mycount<\npages
\advance\mycount by 1
\repeat
\endgroup
}
\begin{document}
\begin{frame}
\includestandalone{simpleframe}
\end{frame}
\end{document}