在第二个屏幕上创建带有注释的讲义

在第二个屏幕上创建带有注释的讲义

如何从第二个屏幕打印幻灯片及其附带的注释页作为讲义?我尝试实现以下效果:

在此处输入图片描述

(最好每页有 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只是一个包装pdflatexpdfpagesLaTeX 包,您也可以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}

相关内容