From 82c5dfce91cec1a5d83b9f5608368de73f9f7e92 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 3 Oct 2016 22:20:33 +0000 Subject: overlays (2oct16) git-svn-id: svn://tug.org/texlive/trunk@42195 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/overlays/overlays.sty | 128 +++++++++++++--------- 1 file changed, 75 insertions(+), 53 deletions(-) (limited to 'Master/texmf-dist/tex/latex/overlays') diff --git a/Master/texmf-dist/tex/latex/overlays/overlays.sty b/Master/texmf-dist/tex/latex/overlays/overlays.sty index 8cf8df8a893..6e0866ff6c2 100644 --- a/Master/texmf-dist/tex/latex/overlays/overlays.sty +++ b/Master/texmf-dist/tex/latex/overlays/overlays.sty @@ -1,9 +1,9 @@ -\ProvidesPackage{overlays}[2016/09/30 v2.0 Incremental slides] +\ProvidesPackage{overlays}[2016/10/02 v2.2 Incremental slides] % Copyright (C) 2016 Andreas Nolda % Author: Andreas Nolda -% Version: 2.0 +% Version: 2.2 % This work may be distributed and/or modified under the conditions of the LaTeX % Project Public License, either version 1.3 of this license or (at your option) @@ -13,63 +13,45 @@ % The following code is inspired by Matthias Meister's "present" package. It % uses an algorithm by Martin Scharrer for testing numbers in numerical ranges -% (http://tex.stackexchange.com/q/19000/). The code for processing overlays with -% verbatim content is taken from the "texpower" package, which in turn took it -% from Till Tantau's "beamer" package. +% (http://tex.stackexchange.com/q/19000). The code for saving counters between +% overlays as well as for overlays with verbatim content is taken from the +% "texpower" package, which in turn is based on Till Tantau's "beamer" package. \RequirePackage{color} \RequirePackage{environ} \RequirePackage{pgffor} -\definecolor{background}{rgb}{1,1,1} -\definecolor{alert}{rgb}{1,0,0} +\def\s@vedcounters{} -\newcount\curoverl@y -\newcount\maxoverl@y -\newcount\overl@yspeca -\newcount\overl@yspecb -\newcount\saveequ@tion +\def\s@vecounters% + {\begingroup + \def\@elt##1{\global\csname c@##1\endcsname\the\csname c@##1\endcsname}% + \xdef\restores@vedcounters{\s@vedcounters}% + \endgroup} -\def\@getoverl@yspecb-#1\relax% - {\ifx\relax#1\relax - \overl@yspecb=\maxoverl@y - \else - \overl@yspecb=#1\relax - \fi} - -\def\getoverl@yspecb% - {\@ifnextchar\relax - {\overl@yspecb=\overl@yspeca}% - {\@getoverl@yspecb}} +\newcommand{\savebetweenoverlays}[1]% + {\expandafter\def + \expandafter\s@vedcounters + \expandafter{\s@vedcounters\@elt{#1}}} -\def\ifinoverl@yspec#1#2% - {\global\let\inoverl@yspec\@secondoftwo - \foreach \i in {#2} - {\afterassignment\getoverl@yspecb - \overl@yspeca=0\i\relax - \pgfmathtruncatemacro\result{(#1>=\overl@yspeca) && (#1<=\overl@yspecb)}% - \ifnum\result=1\relax - \breakforeach - \global\let\inoverl@yspec\@firstoftwo - \fi}% - \inoverl@yspec} +\savebetweenoverlays{page} +\savebetweenoverlays{equation} -\long\def\overl@y#1#2#3{\ifinoverl@yspec{\curoverl@y}{#1}{#2}{#3}} +\newcount\curoverl@y +\newcount\maxoverl@y \NewEnviron{overlays}[1]% - {\maxoverl@y=#1% + {\s@vecounters + \maxoverl@y=#1% \curoverl@y=0% - \saveequ@tion=\value{equation}% \loop \advance\curoverl@y by 1% \begingroup \BODY \endgroup \ifnum\curoverl@y<\maxoverl@y% - \vfill \clearpage - \addtocounter{page}{-1}% - \setcounter{equation}{\saveequ@tion}% + \restores@vedcounters \repeat} \newwrite\verb@timfileout @@ -84,6 +66,19 @@ \@makeother\^^L \endlinechar`\^^M \catcode`\^^M=12 \processslidefirstline} +\newenvironment{fragileoverlays}[1] + {\maxoverl@y=#1% + \def\verb@timfilen@me{\jobname.vrb}% + \immediate\openout\verb@timfileout=\verb@timfilen@me% + \verb@timreadslide} + {\immediate\closeout\verb@timfileout% + \begin{overlays}{\maxoverl@y} + \def\verbatim@nolig@list{\do\`\do\<\do\>\do\'} % don't make "," and "-" active + \input{\verb@timfilen@me}% + \end{overlays}} + +\def\endfr@gileoverl@ys{\endgroup\end{fragileoverlays}} + {\catcode`\^^M=12\endlinechar=-1% \long\gdef\processslidefirstline#1^^M% {\def\overl@ystest{#1}% @@ -111,21 +106,48 @@ \xdef\stopslide{\string\\end\string\{fragileoverlays\string\}} \xdef\stopslidefirst{\noexpand\end\string\{fragileoverlays\string\}}} -\newenvironment{fragileoverlays}[1] - {\maxoverl@y=#1% - \def\verb@timfilen@me{\jobname.vrb}% - \immediate\openout\verb@timfileout=\verb@timfilen@me% - \verb@timreadslide} - {\immediate\closeout\verb@timfileout% - \begin{overlays}{\maxoverl@y} - \def\verbatim@nolig@list{\do\`\do\<\do\>\do\'} % do not make "," and "-" active - \input{\verb@timfilen@me}% - \end{overlays}} +\newcount\overl@yspeca +\newcount\overl@yspecb -\def\endfr@gileoverl@ys{\endgroup\end{fragileoverlays}} +\def\@getoverl@yspecb-#1\relax% + {\ifx\relax#1\relax + \overl@yspecb=\maxoverl@y + \else + \overl@yspecb=#1\relax + \fi} + +\def\getoverl@yspecb% + {\@ifnextchar\relax + {\overl@yspecb=\overl@yspeca}% + {\@getoverl@yspecb}} + +\def\ifinoverl@yspec#1#2% + {\global\let\inoverl@yspec\@secondoftwo + \foreach \i in {#2} + {\afterassignment\getoverl@yspecb + \overl@yspeca=0\i\relax + \pgfmathtruncatemacro\result{(#1>=\overl@yspeca) && (#1<=\overl@yspecb)}% + \ifnum\result=1\relax + \breakforeach + \global\let\inoverl@yspec\@firstoftwo + \fi}% + \inoverl@yspec} + +\long\def\overl@y#1#2#3{\ifinoverl@yspec{\curoverl@y}{#1}{#2}{#3}} \newcommand{\only}[2]{\overl@y{#1}{#2}{\relax}} -\newcommand{\visible}[2]{\overl@y{#1}{#2}{{\color{background}#2\ifvmode\unskip\fi}}} +\definecolor{background}{rgb}{1,1,1} +\newcommand{\visible}[2]{\overl@y{#1}{#2}{{\color{background}% + \let\default@color\current@color + #2% + \ifvmode + \unskip + \fi}}} -\newcommand{\alert}[2]{\overl@y{#1}{{\color{alert}#2\ifvmode\unskip\fi}}{#2}} +\definecolor{alert}{rgb}{1,0,0} +\newcommand{\alert}[2]{\overl@y{#1}{{\color{alert}% + #2% + \ifvmode + \unskip + \fi}}{#2}} -- cgit v1.2.3