You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
230 lines
5.5 KiB
230 lines
5.5 KiB
% Copyright 2003--2007 by Till Tantau
|
|
% Copyright 2010 by Vedran Mileti\'c
|
|
% Copyright 2012,2015 by Vedran Mileti\'c, Joseph Wright
|
|
% Copyright 2017,2018 by Louis Stuart, Joseph Wright
|
|
%
|
|
% This file may be distributed and/or modified
|
|
%
|
|
% 1. under the LaTeX Project Public License and/or
|
|
% 2. under the GNU Public License.
|
|
%
|
|
% See the file doc/licenses/LICENSE for more details.
|
|
|
|
\mode
|
|
<presentation>
|
|
|
|
\newbox\beamer@frameboxcopy
|
|
\newif\ifbeamer@twoscreensnotes
|
|
|
|
|
|
% Notes options
|
|
|
|
\defbeameroption{hide notes}[]%
|
|
{
|
|
\beamer@notesfalse
|
|
}
|
|
|
|
\defbeameroption{show notes}[]%
|
|
{
|
|
\beamer@notestrue
|
|
}
|
|
|
|
\defbeameroption{show notes on second screen}[right]%
|
|
{
|
|
\ifx\@onlypreamble\@notprerr
|
|
\ltx@ifpackageloaded{pgfpages}{}{%
|
|
\ClassError{beamer}{`pgfpages' package necessary for this option}{}%
|
|
}%
|
|
\else%
|
|
\RequirePackage{pgfpages}%
|
|
\fi%
|
|
\pgfpagesuselayout{two screens with optional second}[second #1]
|
|
\beamer@twoscreensnotestrue
|
|
\beamer@notestrue
|
|
}
|
|
|
|
\defbeameroption{show only notes}[]%
|
|
{
|
|
\beamer@notestrue
|
|
\beamer@notesnormalsfalse
|
|
\nofiles
|
|
}
|
|
|
|
|
|
|
|
%
|
|
% Notes
|
|
%
|
|
|
|
\define@key{beamernotes}{enumerate}[true]{%
|
|
\def\beamer@noteenvstart{\begin{enumerate}\itemsep=0pt\parskip=0pt}%
|
|
\def\beamer@noteenvend{\end{enumerate}}}
|
|
\define@key{beamernotes}{itemize}[true]{%
|
|
\def\beamer@noteenvstart{\begin{itemize}\itemsep=0pt\parskip=0pt}%
|
|
\def\beamer@noteenvend{\end{itemize}}}
|
|
|
|
\newcommand\beamer@outsideframenote[2][]{%
|
|
\beamer@savemode%
|
|
\ifbeamer@inlecture%
|
|
\def\beamer@noteenvstart{}%
|
|
\def\beamer@noteenvend{}%
|
|
\setkeys{beamernotes}{#1}%
|
|
\ifbeamer@notes
|
|
\begingroup
|
|
\setbeamertemplate{itemize item}{\textbullet}
|
|
\setbeamertemplate{itemize subitem}{--}
|
|
\setbeamertemplate{enumerate item}{\insertenumlabel.}
|
|
\setbeamertemplate{enumerate subitem}{\insertenumlabel.\insertsubenumlabel}
|
|
\def\@oddhead{}
|
|
\def\@oddfoot{}
|
|
\let\@evenhead\@oddhead
|
|
\let\@evenfoot\@oddfoot
|
|
\def\beamer@backgroundtemplate{}%
|
|
\setbeamercolor{item}{fg=black,bg=white}
|
|
\color{black}%
|
|
\nointerlineskip
|
|
\hbox{\hskip-\Gm@lmargin\hskip1cm\vbox to\textheight{%
|
|
%pretend to have ``standard'' margins
|
|
\edef\beamer@origlmargin{\Gm@lmargin}%
|
|
\edef\beamer@origrmargin{\Gm@rmargin}%
|
|
\def\Gm@lmargin{1cm}%
|
|
\def\Gm@rmargin{1cm}%
|
|
\textwidth=\dimexpr\paperwidth-\Gm@lmargin-\Gm@rmargin\relax%
|
|
\hsize=\textwidth%
|
|
\@arrayparboxrestore%
|
|
\vskip-\headheight%
|
|
\def\insertnote{\vbox{}%
|
|
\beamer@noteenvstart#2\beamer@noteenvend%
|
|
}%
|
|
\usebeamertemplate*{note page}%
|
|
\vfil%
|
|
\vskip-4pt% foot separator
|
|
\vskip-\footheight}\hskip-\Gm@lmargin\hskip1cm}%
|
|
\ifbeamer@twoscreensnotes%
|
|
\pgfpagescurrentpagewillbelogicalpage{2}%
|
|
\advance\c@page by-1\relax%
|
|
\fi%
|
|
\clearpage
|
|
\endgroup
|
|
\fi%
|
|
\fi%
|
|
\beamer@resumemode}
|
|
|
|
%
|
|
% Notes in frames
|
|
%
|
|
|
|
\def\beamer@itemtext{item}
|
|
|
|
\newcommand<>{\beamer@inframenote}[2][]{%
|
|
\ifbeamer@inlecture%
|
|
\only#3{%
|
|
\def\beamer@temp{#1}%
|
|
\ifx\beamer@temp\beamer@itemtext%
|
|
\expandafter\gdef\expandafter\beamer@noteitems%
|
|
\expandafter{\beamer@noteitems\item#2}%
|
|
\else
|
|
\expandafter\gdef\expandafter\beamer@notes%
|
|
\expandafter{\beamer@notes#2}%
|
|
\fi%
|
|
}%
|
|
\fi%
|
|
}
|
|
|
|
\def\note{%
|
|
\ifbeamer@inframe%
|
|
\let\next=\beamer@inframenote%
|
|
\else%
|
|
\let\next=\beamer@outsideframenote%
|
|
\fi%
|
|
\next}
|
|
|
|
\def\beamer@framenotesbegin{% at beginning of slide
|
|
\gdef\beamer@noteitems{}%
|
|
\gdef\beamer@notes{}%
|
|
}
|
|
|
|
\def\beamer@framenotesend
|
|
{% at end of slide
|
|
\global\setbox\beamer@frameboxcopy
|
|
=\hbox{\leaders\copy\beamer@framebox\hskip\wd\beamer@framebox}
|
|
\ifx\beamer@noteitems\@empty%
|
|
\ifx\beamer@notes\@empty%
|
|
% possibly suppress this slide
|
|
\ifbeamer@frameswithnotesonly
|
|
% suppress frame
|
|
\global\setbox\beamer@framebox=\box\voidb@x%
|
|
\fi%
|
|
\ifbeamer@twoscreensnotes%
|
|
\beamer@setupnote%
|
|
\fi%
|
|
\else%
|
|
\beamer@setupnote%
|
|
\fi
|
|
\else%
|
|
\beamer@setupnote%
|
|
\fi
|
|
\ifbeamer@notesnormals%
|
|
\else%
|
|
\global\setbox\beamer@framebox=\box\voidb@x%
|
|
\fi%
|
|
}
|
|
|
|
\def\beamer@setupnote{%
|
|
\gdef\beamer@notesactions{%
|
|
\beamer@outsideframenote{%
|
|
% Notice that the note page is typeset at the beginning of the next slide
|
|
\advance\beamer@slideinframe by-1\relax
|
|
\beamer@atbeginnote%
|
|
\beamer@notes%
|
|
\ifx\beamer@noteitems\@empty\else
|
|
\begin{enumerate}\itemsep=0pt\parskip=0pt%
|
|
\beamer@noteitems%
|
|
\end{enumerate}%
|
|
\fi%
|
|
\beamer@atendnote%
|
|
\advance\beamer@slideinframe by 1\relax%
|
|
}%
|
|
\gdef\beamer@notesactions{}%
|
|
}
|
|
}
|
|
|
|
|
|
|
|
\def\beamer@notesactions{}
|
|
|
|
\newcommand\AtBeginNote[1]{\long\def\beamer@atbeginnote{#1}}
|
|
\newcommand\AtEndNote[1]{\long\def\beamer@atendnote{#1}}
|
|
|
|
\AtBeginNote{}
|
|
\AtEndNote{}
|
|
|
|
|
|
|
|
%
|
|
% Note frame insert
|
|
%
|
|
|
|
\newcommand{\insertslideintonotes}[1]{{%
|
|
\begin{pgfpicture}{0cm}{0cm}{#1\paperwidth}{#1\paperheight}
|
|
\begin{pgflowlevelscope}{\pgftransformscale{#1}}%
|
|
\color{normal text.bg}
|
|
\pgfpathrectangle{\pgfpointorigin}{\pgfpoint{\paperwidth}{\paperheight}}
|
|
\pgfusepath{fill,clip}
|
|
\color{normal text.fg}
|
|
{\pgftransformshift{\pgfpoint{\beamer@origlmargin}{\footheight}}\pgftext[left,bottom]{\copy\beamer@frameboxcopy}}
|
|
\end{pgflowlevelscope}
|
|
\end{pgfpicture}%
|
|
}}
|
|
|
|
|
|
\mode
|
|
<article>
|
|
{
|
|
\newcommand<>\note[2][]{}
|
|
}
|
|
|
|
|
|
|
|
\mode
|
|
<all>
|
|
|