将 Beamer 笔记压缩到一页

将 Beamer 笔记压缩到一页

我正在尝试为我创建的演示文稿创建一些笔记beamer。我正在使用\note{...}它来执行此操作,当将其配置为仅打印注释时,我可以让它为每张幻灯片生成一页包含注释的页面。

但是我没有太多的笔记,所以笔记页大部分都是半空的,这会浪费很多空间。我一直在寻找,发现了很多影响笔记页本身的方法(使其仅包含笔记,或者一些技巧/窍门使长笔记跨越多个笔记页),但我找不到任何方法将多个笔记页“压缩”为一个。

我也尝试过beamerarticle,但你总是能得到幻灯片的完整内容,这不是我想要的。理想的解决方案是创建一个看起来像这样的文档beamerarticle,只是它只有章节标题,空章节标题被删除,内容不是幻灯片内容,而只是我的笔记。这大约是 3 页,而不是 20 页……

有没有类似的东西,或者类似的东西?

答案1

了解一下beamerbasenotes.sty负责生成笔记的命令,一开始相当令人失望:在文章模式下,命令\note被简单地定义为什么都不做!然而,文件的大部分内容实际上在无论如何中都是可用的beamerarticle,所以我的代码很短:

\newif\ifshowonlynotes
\showonlynotestrue

\makeatletter
\newif\ifbeamer@inlecture\beamer@inlecturetrue
\def\beamer@currentmode{beamer}
\input{beamerbasenotes.sty}
\def\beamer@currentmode{article}

\renewcommand\beamer@outsideframenote[2][]{%
  \def\beamer@noteenvstart{}%
  \def\beamer@noteenvend{}%
  \setkeys{beamernotes}{#1}%
  \par
  \beamer@noteenvstart#2\beamer@noteenvend%
  \par
}

\addtobeamertemplate{frame begin}{\beamer@framenotesbegin}{}
\addtobeamertemplate{frame end}{}{\beamer@setupnote\beamer@notesactions}

\ifshowonlynotes
  \let\beamer@dosingleframe=\beamer@donoframe
  \g@addto@macro\beamer@endframe{\usebeamertemplate{frame end}}
\fi
\makeatother

将此代码添加到文档的序言中,加载完成后beamerarticle,它会重新输入beamerbasenotes.sty,但这一次,定义会像实际演示文稿一样执行。当然,之后需要进行一些自定义,以使宏适应文章模式。

默认情况下,框架内容是隐藏的,只显示注释,正如您所要求的。如果您还想查看实际的框架,请将\showonlynotestrue第 2 行更改为\showonlynotesfalse

示例代码:

\documentclass{article}
\usepackage{beamerarticle}

\newif\ifshowonlynotes
\showonlynotestrue

\makeatletter
\newif\ifbeamer@inlecture\beamer@inlecturetrue
\def\beamer@currentmode{beamer}
\input{beamerbasenotes.sty}
\def\beamer@currentmode{article}

\renewcommand\beamer@outsideframenote[2][]{%
  \def\beamer@noteenvstart{}%
  \def\beamer@noteenvend{}%
  \setkeys{beamernotes}{#1}%
  \par
  \beamer@noteenvstart#2\beamer@noteenvend%
  \par
}

\setbeamertemplate{frame begin}{\beamer@framenotesbegin}
\setbeamertemplate{frame end}{\beamer@setupnote\beamer@notesactions}

\ifshowonlynotes
  \let\beamer@dosingleframe=\beamer@donoframe
  \g@addto@macro\beamer@endframe{\usebeamertemplate{frame end}}
\fi
\makeatother

\begin{document}
\begin{frame}
This is a frame with a\note{Note in frame 1} note.
\end{frame}

\note{An external note}

\begin{frame}
A frame with notes as items.
\note[item]{notes}
\note[item]{as}
\note[item]{items}
\end{frame}

\note[itemize]{
  \item External note
  \item with items
}

\begin{frame}
Last frame.\note{Last note.}
\end{frame}
\end{document}

输出:

示例代码的输出:文章模式下的一些注释

相关内容