summaryrefslogtreecommitdiff
path: root/graphics/pstricks/contrib/pst-ovl/tex/pst-ovl.tex
blob: 11909c8cf4e8415e81c5e5e1a796aafd3bc80020 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
%% $Id: pst-ovl.tex 1169 2020-05-01 14:27:32Z herbert $
%%
%%
%% This is file `pst-ovl.tex',
%%
%% IMPORTANT NOTICE:
%%
%% Package `pst-ovl.tex'
%% 
%% 2015,2020 --  Timothy Van Zandt
%%          Herbert Voss <hvoss@tug.org>
%%
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN archives
%% in directory macros/latex/base/lppl.txt.
%%
%% DESCRIPTION:
%%   `pst-ovl' is a PostScript related package for  
%%    overlay support
%%
\csname PSTovlloaded\endcsname
\let\PSTovlloaded\endinput
%
%% Requires main PSTricks
\ifx\PSTricksLoaded\endinput\else\input pstricks \fi
%
\def\fileversion{0.07b}
\def\filedate{2020/05/01}
\message{`pst-ovl' v\fileversion, \filedate\space (tvz,hv)}
%
\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
%
\def\tx@BeginOL{ tx@ovlDict begin BeginOL }
\def\tx@InitOL{ tx@ovlDict begin InitOL }
\def\tx@BOLend{ tx@ovlDict begin BOL end }
%
\pstheader{pst-ovl.pro}
%
\def\pst@initoverlay#1{\pst@Verb{ \tx@InitOL end /TheOL #1 def }}
%
\def\AltOverlayMode{%
  \def\pst@initoverlay##1{%
    \pst@Verb{
      \tx@InitOL
      /Visible { initclip } def
      /Invisible {
        CP newpath OLUnit itransform moveto clip newpath moveto
      } def
      /TheOL ##1 def end }}}
%
\def\pst@overlay#1{%
  \edef\curr@overlay{#1}%
  \expandafter\pst@Verb\expandafter{ #1 \tx@BOLend }%
  \aftergroup\pst@endoverlay}
%
\def\pst@endoverlay{\expandafter\pst@Verb\expandafter{\curr@overlay \space \tx@BOLend }}
\def\curr@overlay{-1}
%
\newbox\thepsoverlaybox
%
\def\psoverlaybox{%
  \global\setbox\thepsoverlaybox=\hbox\bgroup
  \begingroup
  \let\psoverlay\pst@overlay
  \def\psoverlaybox{%
    \@pstrickserr{Overlays cannot be nested}\@eha}%
  \def\psputoverlaybox{%
    \@pstrickserr{You must end the overlay box
         before using \string\psputoverlaybox}}%
  \psoverlay{0}%
  \ignorespaces}
%
\def\endpsoverlaybox{\endgroup\egroup}
\def\psputoverlaybox#1{%
  \hbox{\expandafter\pst@initoverlay\expandafter{#1}\copy\thepsoverlaybox}}
%
\def\psoverlay{\@pstrickserr{\string\psoverlay\space
  can only be used after \string\overlaybox}}
%
\catcode`\@=\PstAtCode\relax
%
%% END: pst-ovl.tex
\endinput