summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-03-27 21:43:48 +0000
committerKarl Berry <karl@freefriends.org>2017-03-27 21:43:48 +0000
commitb77be621f0a8f5fa4c5ccb00365e5578dd3dbd7f (patch)
tree040974671d6ef9326e3710e986a5552d04a61547 /Master/texmf-dist/tex
parentae82007e33549c1cfe132e8ee9d08607e8c6572f (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.sty70
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%
+}
+