diff options
author | Karl Berry <karl@freefriends.org> | 2017-03-27 21:43:48 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2017-03-27 21:43:48 +0000 |
commit | b77be621f0a8f5fa4c5ccb00365e5578dd3dbd7f (patch) | |
tree | 040974671d6ef9326e3710e986a5552d04a61547 /Master/texmf-dist/tex | |
parent | ae82007e33549c1cfe132e8ee9d08607e8c6572f (diff) |
rputover (27mar17)
git-svn-id: svn://tug.org/texlive/trunk@43624 c570f23f-e606-0410-a88d-b1316a301751
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% +} + |