summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/overlays
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-10-03 22:20:33 +0000
committerKarl Berry <karl@freefriends.org>2016-10-03 22:20:33 +0000
commit82c5dfce91cec1a5d83b9f5608368de73f9f7e92 (patch)
treea482b01db0d554551d46b76537daaf01a2c1b550 /Master/texmf-dist/tex/latex/overlays
parent166d14c272ba66dce4bbe38caf289969687311ac (diff)
overlays (2oct16)
git-svn-id: svn://tug.org/texlive/trunk@42195 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/overlays')
-rw-r--r--Master/texmf-dist/tex/latex/overlays/overlays.sty128
1 files changed, 75 insertions, 53 deletions
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 <andreas@nolda.org>
-% 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}}