我已经阅读了文档,还有其他几个类似的问题,例如 Beamer:讲义/文章模式 - 生成具有不同覆盖编号的帧的多个副本
但我就是搞不懂。请帮帮我。在讲义模式下,我希望只有第 1 帧的第 3 张幻灯片、第 2 帧的第 1 张幻灯片和第 1 帧的第 4 张幻灯片。但是,它还为第一页选择了第 1 帧的第 4 张幻灯片。我也设法得到了这个结果,但我总是破坏了投影机模式的结果。
% for handout without notes
\documentclass[handout]{beamer}
\usepackage{pgfpages}
\pgfpagesuselayout{4 on 1}[a4paper,landscape,border shrink=5mm]
% NOT OK: frame1.4, expected frame1.3
% OK: frame2.1
% OK: frame1.4
% for handout with notes
% \documentclass[]{beamer}
% \usepackage{pgfpages}
% \setbeameroption{show notes on second screen=bottom}
% OK: frame1.1
% OK: frame1.2
% OK: frame1.3
% OK: frame2.1
% OK: frame1.4
% for presentation without notes
% \documentclass[]{beamer}
% OK: frame1.1
% OK: frame1.2
% OK: frame1.3
% OK: frame2.1
% OK: frame1.4
\usepackage{fontspec}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage[babel]{csquotes}
\usepackage{hyperref}
\author{todo author}
\institute{todo institute}
\date{todo date}
\title{todo title}
\begin{document}
\NoHyper
\begin{frame}<all:0>[label=frameFIRST]
\frametitle{FRAME 1}
\uncover<2>{slide2}\\
\uncover<3>{slide3}\\
\uncover<4>{slide4}
\end{frame}
\mode<beamer>{
\againframe<beamer:1-3>{frameFIRST}%
}
\mode<handout>{
\againframe<handout:3>{frameFIRST}%
}
\begin{frame}[label=frameSECOND]
\frametitle{FRAME 2}
foo
\end{frame}
\mode<beamer>{
\againframe<beamer:4>{frameFIRST}%
}
\mode<handout>{
\againframe<handout:4>{frameFIRST}%
}
\end{document}
答案1
这是一个答案,以某种方式依赖于答案这个问题。关键思想是beamer
即使在讲义模式下也强制创建单独的幻灯片。为此,您的第 1 帧必须创建为:
\begin{frame}<all:0>[label=frameFIRST]{FRAME 1}
\uncover<all:1>{slide1}\\
\uncover<all:2>{slide2}\\
\uncover<all:3>{slide3}\\
\uncover<all:4>{slide4}
\end{frame}
加上<all:n>
(n \in {1,...,4}, 也可以写成<all:+->
。因此,针对您的问题的 pdflatex-MWE 将是:
\documentclass[handout]{beamer}
%\documentclass{beamer}
\usepackage{pgfpages}
\pgfpagesuselayout{4 on 1}[a4paper,landscape,border shrink=5mm]
\begin{document}
\begin{frame}<all:0>[label=frameFIRST]{FRAME 1}
\uncover<all:+->{slide1}\\
\uncover<all:+->{slide2}\\
\uncover<all:+->{slide3}\\
\uncover<all:+->{slide4}
\end{frame}
\mode<beamer>{\againframe<beamer:1-3>{frameFIRST}}
\mode<handout>{\againframe<handout:3>{frameFIRST}}
\begin{frame}[label=frameSECOND]{FRAME 2}
foo
\end{frame}
\mode<beamer>{\againframe<beamer:4>{frameFIRST}}
\mode<handout>{\againframe<handout:4>{frameFIRST}}
\end{document}
此外,我们还可以添加用于跟踪幻灯片和模式的工具,其定义如下:
\makeatletter
\newcommand*{\overlaynumber}{slide \number\beamer@slideinframe}
\makeatother
\mode<handout>{\newcommand\mymode{mode handout}}
\mode<beamer>{\newcommand\mymode{mode beamer}}
并在每一帧中添加字幕:
{\Large \mymode, \overlaynumber}
并添加以下代码来在幻灯片周围添加一个框架
%\usepackage{tikz}
\setbeamertemplate{background canvas}{%
\tikz\draw(current page.north west) rectangle (current age.south east);%
}
我得到了整个代码:
%\documentclass[handout]{beamer}
\documentclass{beamer}
\usepackage{pgfpages}
\pgfpagesuselayout{4 on 1}[a4paper,landscape,border shrink=5mm]
%
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage[babel]{csquotes}
\usepackage{tikz}%\mode<handout>{%
\setbeamertemplate{background canvas}{%
\tikz\draw(current page.north west) rectangle (current page.south east);%
}
\makeatletter
\newcommand*{\overlaynumber}{slide \number\beamer@slideinframe}
\makeatother
\mode<handout>{\newcommand\mymode{mode handout}}
\mode<beamer>{\newcommand\mymode{mode beamer}}
\begin{document}
\NoHyper
\begin{frame}<all:0>[label=frameFIRST]{FRAME 1}{\Large \mymode, \overlaynumber)}
\uncover<all:+->{slide1}\\
\uncover<all:+->{slide2}\\
\uncover<all:+->{slide3}\\
\uncover<all:+->{slide4}
\end{frame}
\mode<beamer>{\againframe<beamer:1-2>{frameFIRST}}
\mode<handout>{\againframe<handout:3>{frameFIRST}}
\begin{frame}[label=frameSECOND]{FRAME 2}{\Large\mymode, \overlaynumber}
foo
\end{frame}
\mode<beamer>{\againframe<beamer:4>{frameFIRST}}
\mode<handout>{\againframe<handout:4>{frameFIRST}}
\end{document}