如何使用 beamer 中的独立包?

如何使用 beamer 中的独立包?

我有一个 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

请注意,standalonesbeamer支持实际上并不适合您的应用程序。将整个框架作为图像并不是真正的解决方法。问题还在于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}

相关内容