如何从 Beamer 演示文稿生成包含 6 张幻灯片的 PDF?

如何从 Beamer 演示文稿生成包含 6 张幻灯片的 PDF?

我想生成一个在同一页上有 6 个框架的 PDF 文档。我的意思是,我有一个 Beamer 演示文稿,每张幻灯片上都有一个框架,我想得到如下内容:http://alumni.media.mit.edu/~maov/classes/vision09/lect/09_Image_Filtering_Edge_Detection_09.pdf

有可能吗?有什么想法从哪里开始吗?

答案1

您可以先定义一个“6 对 1”pgf 页面布局,然后在模式中激活它handout。我使用下面的代码——我可能从某个地方修改过它,但我记不清了。也许您可以根据自己的需要进一步微调它:

\documentclass[handout]{beamer}
\usetheme{Dresden}
\usepackage{pgfpages}


\pgfpagesdeclarelayout{6 on 1}
{
  \edef\pgfpageoptionheight{\the\paperwidth} % landscaped by default
  \edef\pgfpageoptionwidth{\the\paperheight}
  \def\pgfpageoptionborder{0pt}
  \def\pgfpageoptionfirstshipout{1}
}
{
  \pgfpagesphysicalpageoptions
  {%
    logical pages=6,%
    physical height=\pgfpageoptionheight,%
    physical width=\pgfpageoptionwidth,%
    current logical shipout=\pgfpageoptionfirstshipout%
  }
  \ifdim\paperheight>\paperwidth\relax
    % put side-by-side
    \pgfpageslogicalpageoptions{1}
    {%
      border shrink=\pgfpageoptionborder,%
      resized width=.5\pgfphysicalwidth,%
      resized height=\pgfphysicalheight,%
      center=\pgfpoint{.1667\pgfphysicalwidth}{.25\pgfphysicalheight}%
    }%
    \pgfpageslogicalpageoptions{3}
    {%
      border shrink=\pgfpageoptionborder,%
      resized width=.5\pgfphysicalwidth,%
      resized height=\pgfphysicalheight,%
      center=\pgfpoint{.5\pgfphysicalwidth}{.25\pgfphysicalheight}%
    }%
    \pgfpageslogicalpageoptions{5}
    {%
      border shrink=\pgfpageoptionborder,%
      resized width=.5\pgfphysicalwidth,%
      resized height=\pgfphysicalheight,%
      center=\pgfpoint{.8333\pgfphysicalwidth}{.25\pgfphysicalheight}%
    }%
    \pgfpageslogicalpageoptions{2}
    {%
      border shrink=\pgfpageoptionborder,%
      resized width=.5\pgfphysicalwidth,%
      resized height=\pgfphysicalheight,%
      center=\pgfpoint{.1667\pgfphysicalwidth}{.75\pgfphysicalheight}%
    }%
    \pgfpageslogicalpageoptions{4}
    {%
      border shrink=\pgfpageoptionborder,%
      resized width=.5\pgfphysicalwidth,%
      resized height=\pgfphysicalheight,%
      center=\pgfpoint{.5\pgfphysicalwidth}{.75\pgfphysicalheight}%
    }%
    \pgfpageslogicalpageoptions{6}
    {%
      border shrink=\pgfpageoptionborder,%
      resized width=.5\pgfphysicalwidth,%
      resized height=\pgfphysicalheight,%
      center=\pgfpoint{.8333\pgfphysicalwidth}{.75\pgfphysicalheight}%
    }%
  \else
    % stack on top of one another
    \pgfpageslogicalpageoptions{1}
    {%
      border shrink=\pgfpageoptionborder,%
      resized width=0.5\pgfphysicalwidth,%
      resized height=\pgfphysicalheight,%
      center=\pgfpoint{.25\pgfphysicalwidth}{.8333\pgfphysicalheight}%
    }%
    \pgfpageslogicalpageoptions{3}
    {%
      border shrink=\pgfpageoptionborder,%
      resized width=0.5\pgfphysicalwidth,%
      resized height=\pgfphysicalheight,%
      center=\pgfpoint{.25\pgfphysicalwidth}{.5\pgfphysicalheight}%
    }%
    \pgfpageslogicalpageoptions{5}
    {%
      border shrink=\pgfpageoptionborder,%
      resized width=0.5\pgfphysicalwidth,%
      resized height=\pgfphysicalheight,%
      center=\pgfpoint{.25\pgfphysicalwidth}{.1667\pgfphysicalheight}%
    }%
    \pgfpageslogicalpageoptions{2}
    {%
      border shrink=\pgfpageoptionborder,%
      resized width=0.5\pgfphysicalwidth,%
      resized height=\pgfphysicalheight,%
      center=\pgfpoint{.75\pgfphysicalwidth}{.8333\pgfphysicalheight}%
    }%
    \pgfpageslogicalpageoptions{4}
    {%
      border shrink=\pgfpageoptionborder,%
      resized width=0.5\pgfphysicalwidth,%
      resized height=\pgfphysicalheight,%
      center=\pgfpoint{.75\pgfphysicalwidth}{.5\pgfphysicalheight}%
    }%
    \pgfpageslogicalpageoptions{6}
    {%
      border shrink=\pgfpageoptionborder,%
      resized width=0.5\pgfphysicalwidth,%
      resized height=\pgfphysicalheight,%
      center=\pgfpoint{.75\pgfphysicalwidth}{.1667\pgfphysicalheight}%
    }%
  \fi
}



\mode<handout>{
    \pgfpagesuselayout{6 on 1}[a4paper, border shrink=8mm]
    \pgfpageslogicalpageoptions{1}{border code=\pgfusepath{stroke}}
    \pgfpageslogicalpageoptions{2}{border code=\pgfusepath{stroke}}
    \pgfpageslogicalpageoptions{3}{border code=\pgfusepath{stroke}}
    \pgfpageslogicalpageoptions{4}{border code=\pgfusepath{stroke}}
    \pgfpageslogicalpageoptions{5}{border code=\pgfusepath{stroke}}
    \pgfpageslogicalpageoptions{6}{border code=\pgfusepath{stroke}}
}

\begin{document}

\begin{frame}{First}
lala
\end{frame}

\begin{frame}{Second}
lala
\end{frame}

\begin{frame}{Third}
lala
\end{frame}

\begin{frame}{Fourth}
lala
\end{frame}

\begin{frame}{Fifth}
lala
\end{frame}

\begin{frame}{Sixth}
lala
\end{frame}


\end{document}

答案2

如果您不介意使用第二个文件来创建文档,则可以使用类似下面的方法。这假设这是您在模式mypresentation-h.pdf下创建的 beamer 演示文稿。handout

\documentclass[a4paper]{article}
\usepackage{pdfpages}
        \includepdfset{pages=-,nup=2x3,frame,noautoscale=false,delta=5mm 5mm,pagecommand={\thispagestyle{plain}}}% adjust the pagestyle etc. as desired

\geometry{vscale=.75,hscale=.925}% if you are not using A4, you might need to adjust this to get things looking right
\usepackage{parskip}

\begin{document}

\includepdf[scale=.9]{mypresentation-h.pdf}% beamer presentation created in handout mode (to flatten slides). Also consider using a black and white theme if printing or copying greyscale

\end{document}

答案3

布局6 on 1现在包含在 3.1 版或更高版本的 pgf 中(可从https://sourceforge.net/p/pgf/git/ci/master/tree/

有了这个,LianTze Lim 的回答可以简化为:

\documentclass[handout]{beamer}
\usetheme{Dresden}
\usepackage{pgfpages}

\mode<handout>{
    \pgfpagesuselayout{6 on 1}[a4paper, border shrink=8mm]
}

\begin{document}

\begin{frame}{First}
lala
\end{frame}

\begin{frame}{Second}
lala
\end{frame}

\begin{frame}{Third}
lala
\end{frame}

\begin{frame}{Fourth}
lala
\end{frame}

\begin{frame}{Fifth}
lala
\end{frame}

\begin{frame}{Sixth}
lala
\end{frame}

\end{document}

相关内容