我做了一个投影机演讲最近,并被
- 选项
handout
为不是给出。 - 运行时间增加
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 个投影仪块。