如何从第二个屏幕打印幻灯片及其附带的注释页作为讲义?我尝试实现以下效果:
(最好每页有 3 张幻灯片和 3 页注释页,幻灯片之间的间距并不重要)。
现在使用时\pgfpagesuselayout{8 on 1}
有些幻灯片缺失,而且定位完全错误:
\documentclass{beamer}
\usepackage{pgfpages}
\setbeameroption{show notes on second screen}
\pgfpagesuselayout{8 on 1}
\setbeamercolor{background canvas}{bg=gray}
\begin{document}
\fontsize{60}{64}\selectfont
\begin{frame}
Slide 1
\note{\fontsize{60}{64}\selectfont Note 1}
\end{frame}
\begin{frame}
Slide 2
\note{\fontsize{60}{64}\selectfont Note 2}
\end{frame}
\begin{frame}
Slide 3
\note{\fontsize{60}{64}\selectfont Note 3}
\end{frame}
\end{document}
如果可能的话我想保留\setbeameroption{show notes on second screen}
,因为这个Beamer 分区页面并显示每页的注释问题
答案1
我只想用于pdfnup
以下任务:
pdfnup --nup 1x3 --no-landscape --scale 0.9 --delta "0 1cm" --no-tidy slides.pdf
slides-nup.pdf
生成具有预期布局的文件:
shellpdfnup
脚本是pdfjam
收藏,它包含在大多数 Linux 发行版中。对于 MacOS,它可以通过 MacPorts、fink 或 brew 获得。在 Windows 上,它应该与 cygwin 或 mingw 一起使用,但我还没有测试过。
然而,由于这pdfjam
只是一个包装pdflatex
,pdfpages
LaTeX 包,您也可以pdflatex
直接雇用来完成任务(使用额外的 LaTeX 文档):
\batchmode
\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{pdfpages}
\begin{document}
\includepdfmerge[nup=1x3,scale=0.9,delta=0 1cm]{slides.pdf,-}
\end{document}
可重复使用模板的解决方案:
对于可重复使用的、独立于平台的模板,仅使用pdflatex
不需要外部工具,我们可以将上述内容改进为通用的幻灯片讲义生成器。
以下假设您的演示模板以后缀命名-slides
,即 , <presentation>-slides.tex
然后它将编译为文件<presentation>-slides.pdf
。以下代码应作为 提供<presentation>-handout.tex
。
如果编译<presentation>-handout.tex
,它会执行以下操作:
- 检查是否
<presentation>-slides.pdf
存在,如果不存在则打印错误 <presentation>-handout.pdf
使用相应的 nup 设置生成。- 检查是否
<presentation>-slides.pdf
是最近的,即不早于<presentation>-slides.tex
。否则,它会打印警告。
用户只需重命名<presentation>-slides.tex
并<presentation>-handout.tex
按照“正确”的顺序进行编译(这无论如何都是“自然”的顺序,因为讲义制作通常是最后进行的......)
% http://tex.stackexchange.com/questions/141194/creating-a-handout-with-the-notes-of-a-second-screen/141294
\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{pdfpages}
% We assume that this file is named
%
% <presentation>-handout.tex
%
% and that the actual material stems from a file
%
% <presentation>-slides.pdf
%
% which itself is compiled out of the source file
%
% <presentation>-slides.tex
%
\newcommand{\jobbasename}{}
\newcommand{\setjobbasename}{%
\def\split##1-##2!!!{\def\jobbasename{##1}}%
\expandafter\split\jobname!!!%
}
% after: \jobbasename is <presentation>
\setjobbasename
\begin{document}
% Check if <presentation>.pdf does exist, otherwise typeout an error message
\IfFileExists{\jobbasename-slides.pdf}{%
% Include the material
\includepdf[nup=1x3,scale=0.9,delta=0 1cm,pages=-]{\jobbasename-slides.pdf}
% Check if <presentation.pdf> is older than <presentation.tex> and typeout a warning
\ifnum\pdfstrcmp{\pdffilemoddate{\jobbasename-slides.pdf}}{\pdffilemoddate{\jobbasename-slides.tex}}<0%
\typeout{}
\typeout{WARNING: \jobbasename-slides.pdf seems to be out of date!}
\typeout{\space\space\space\space\space\space\space\space\space Consider recompiling \jobbasename-slides.tex.}
\typeout{}
\fi
}{%
\typeout{}
\typeout{ERROR: \jobbasename-slides.pdf not found!}
\typeout{\space\space\space\space\space\space\space You need to compile \jobbasename-slides.tex first.}
\typeout{}
}
\end{document}