为什么如果删除“handout”选项,beamer 演示文稿的文件大小/编译时间会增加?

为什么如果删除“handout”选项,beamer 演示文稿的文件大小/编译时间会增加?

我做了一个投影机演讲最近,并被

  1. 选项handout不是给出。
  2. 运行时间增加pdflatex

我认为这两个问题是相关的。虽然我同意文件大小和编译时间的增加是必要的,但下面的实验表明出了问题。实际上,生成的 pdf 文件包含完全相同的内容

为了演示,我创建了n包含小图片的投影块。这和在标题中放置徽标的效果差不多(每张幻灯片中都包含徽标)。 编辑:正如指出的那样,块的不同之处在于它们需要昂贵的渲染选项。

怎样才能克服这个不便的问题呢?


讲义选项,boadilla 主题(1 页):

  • 编译时(用户):1.6秒
  • 文件大小:38369 KiB

无讲义选项,boadilla 主题(50 页)

  • 编译时(用户):1.183米 !!
  • 文件大小:230133 KiB

无讲义选项,默认主题(50 页)

  • 编译时(用户):5.6秒
  • 文件大小:136877 KiB

没有讲义选项,没有区块(50 页)(而是使用\pause

  • 编译时(用户):3.3秒(boadilla,默认主题2.9秒
  • 文件大小:101033 KiB

补充说明:

包含的图像大小为2815 KiB。这可能占140750 KiB或61.2%没有讲义如果单独包含,则文件大小会降低。但显然,这不应该做

这是最小的例子:

\documentclass[]{beamer} % pdflatex runs longer, resulting in a much larger file
%\documentclass[handout]{beamer}
\usepackage{lmodern}% http://ctan.org/pkg/lm
\usepackage{pgffor}
\mode<presentation>
\usetheme{Boadilla} % this seems to be the main bottle neck. Shadings and rounded corners 
\author[se]{sebastian}
\title[atitle]{A title}

\begin{document}
\def\nitems{50}
\begin{frame}
  \foreach \i in {1,...,\nitems}
  {
  \begin{block}{t\i}<\i-> % blocks require a lot of processing time
    \includegraphics[height=1mm]{2815-kb.pdf}
  \end{block}
  }
\end{frame}
\end{document}

注意:该文件2815-kb.pdf不包含任何位图。

答案1

我认为我们对此有一个误解“完全相同的内容”

  • handout模式下,Beamer 将叠加系列的所有步骤合并为一个,在大多数情况下,这意味着只输出帧的最后一张幻灯片。 在您的例子中,这会导致单页 PDF 包含 50 个 Beamer 块(即使其中只有 8 个实际上可见)。

  • presentation模式(默认)下,Beamer 每动画一步输出一页,从而产生一系列 50 页 PDF 页面,其中包含 1、2、...、50 个 Beamer 块。因此,生成的 PDF 包含 1+2+...+50=1275 个 Beamer 块。

正如您所指出的,所包含的图形不会造成太多开销,因为软件包graphicx会自动确保图形对象的内容仅嵌入一次在 PDF 中,也就是说,有一个图像和 50 对 1275 个对它的引用。

但是,即使部分内容被重复使用:每个 beamer 块仍然在生成的 PDF 文件中构成至少一个不同的对象,因此您的presentation版本包含的 PDF 对象比该版本多 25.5 倍handout

这也解释了 Paul 的观察结果,即尺寸差异很大程度上取决于所采用的 beamer 主题以及是否使用 beamer 块:主题Bodialla使用圆形 beamer 块,标题和正文之间有颜色过渡,并带有柔和阴影。显然,这会产生很大的影响。如果您在示例中添加以下行(加载主题后):

\setbeamertemplate{blocks}[rounded][shadow=false]

块不再具有阴影,并且beamer版本的大小下降了 38 KiB(从 230361 到 192676),而版本的大小handout仅下降了 2 KiB。

禁用标题和正文之间的软过渡效果

\makeatletter
\pgfdeclareverticalshading[lower.bg,upper.bg]{bmb@transition}{200cm}{ color(0pt)=(lower.bg); color(4pt)=(lower.bg); color(4pt)=(upper.bg)}
\makeatother

在版本中将大小进一步减小了 8 KiB beamer(至 192668)。

我怀疑遮光的成本相对较高每个实例并且这会累积您拥有的 1275 个投影仪块。

相关内容