diff options
Diffstat (limited to 'macros/latex/contrib/beamer/base/beamerbasenotes.sty')
-rw-r--r-- | macros/latex/contrib/beamer/base/beamerbasenotes.sty | 223 |
1 files changed, 223 insertions, 0 deletions
diff --git a/macros/latex/contrib/beamer/base/beamerbasenotes.sty b/macros/latex/contrib/beamer/base/beamerbasenotes.sty new file mode 100644 index 0000000000..b0cc196c31 --- /dev/null +++ b/macros/latex/contrib/beamer/base/beamerbasenotes.sty @@ -0,0 +1,223 @@ +% 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]% +{ + \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} + \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> |