diff options
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r-- | Master/texmf-dist/tex/latex/rputover/rputover.sty | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/rputover/rputover.sty b/Master/texmf-dist/tex/latex/rputover/rputover.sty new file mode 100644 index 00000000000..bfaf166f888 --- /dev/null +++ b/Master/texmf-dist/tex/latex/rputover/rputover.sty @@ -0,0 +1,70 @@ +% rputover.sty +% Version 1.0 +% Martin J. Osborne, 2017.3.25 +% Based partially on the answer of Werner at +% http://tex.stackexchange.com/questions/353748/is-there-a-variant-of-rput-in-pstricks-that-preserves-background-fill-colors +% Released under the LaTeX project public license 1.3 + +\RequirePackage{pst-node} + +\newcounter{rpo@pstfiglabel} +\newcounter{rpo@coverable} +\newlength{\rpo@fboxrule} +\setlength{\rpo@fboxrule}{\fboxrule} + +\def\rputover{% + \fboxrule=0pt + \@ifnextchar[% + {\@ifnextchar({\@putoveron}{\@putoveror}}% + {\@ifnextchar({\@putovernn}{\@putovernr}}% +}% + +\def\@putoveror[#1]#2(#3,#4)#5{% + \rput[#1]{#2}(#3,#4){\psDefBoxNodes{label\therpo@pstfiglabel}{\fbox{#5}}}% + \stepcounter{rpo@pstfiglabel}% + \setlength{\fboxrule}{\rpo@fboxrule}% +}% + +\def\@putoveron[#1](#2,#3)#4{% + \rput[#1](#2,#3){\psDefBoxNodes{label\therpo@pstfiglabel}{\fbox{#4}}}% + \stepcounter{rpo@pstfiglabel}% + \setlength{\fboxrule}{\rpo@fboxrule}% +}% + +\def\@putovernr#1(#2,#3)#4{% + \rput{#1}(#2,#3){\psDefBoxNodes{label\therpo@pstfiglabel}{\fbox{#4}}}% + \stepcounter{rpo@pstfiglabel}% + \setlength{\fboxrule}{\rpo@fboxrule}% +}% + +\def\@putovernn(#1,#2)#3{% + \rput(#1,#2){\psDefBoxNodes{label\therpo@pstfiglabel}{\fbox{#3}}}% + \stepcounter{rpo@pstfiglabel}% + \setlength{\fboxrule}{\rpo@fboxrule}% +}% + +% Optional argument of \coverable is intended to be the region (x0,y0)(x1,y1) with +% respect to which the reverse clip is done. The default, (-\maxdimen,-\maxdimen)(\maxdimen,\maxdimen), +% seems to work fine, so the possibility of specifying the region manually doesn't seem to be necessary (or useful). +\def\coverable{% + \@ifnextchar[{\@coverableo}{\@coverablen}% +}% + +\def\@coverableo[(#1,#2)(#3,#4)]#5{\@coverableg{#1}{#2}{#3}{#4}{#5}} +\def\@coverablen#1{\@coverableg{-\maxdimen}{-\maxdimen}{\maxdimen}{\maxdimen}{#1}} + +\def\@coverableg#1#2#3#4#5{% + \psclip{% + \pscustom[linestyle=none]{% + \loop% + \psline[liftpen=2](label\therpo@coverable:bl)(label\therpo@coverable:br)(label\therpo@coverable:tr)(label\therpo@coverable:tl)(label\therpo@coverable:bl)% + \stepcounter{rpo@coverable}% + \ifnum\value{rpo@coverable}<\value{rpo@pstfiglabel}% + \repeat% + \psline[liftpen=2](#1,#2)(#1,#4)(#3,#4)(#3,#2)% + }% + }% + #5 + \endpsclip% +} + |