diff options
Diffstat (limited to 'Master/texmf-dist/tex/generic/pgf/libraries')
8 files changed, 2536 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.code.tex new file mode 100644 index 00000000000..e953e2d28b1 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.code.tex @@ -0,0 +1,806 @@ +\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibraryarrows.code.tex,v 1.2 2005/07/06 15:58:57 tantau Exp $ + +% Copyright 2005 by Till Tantau <tantau@cs.tu-berlin.de>. +% +% This program can be redistributed and/or modified under the terms +% of the GNU Public License, version 2. + + +% A square bracket shaped arrow + +\pgfarrowsdeclare{[}{]} +{ + \@tempdima=1pt% + \advance\@tempdima by1.25\pgflinewidth% + \pgfarrowsleftextend{-\@tempdima} + \pgfarrowsrightextend{.5\pgflinewidth} +} +{ + \@tempdima=2pt% + \advance\@tempdima by1.5\pgflinewidth% + \@tempdimb=\@tempdima% + \advance\@tempdimb by\pgflinewidth% + \pgfsetdash{}{0pt} + \pgfsetmiterjoin + \pgfsetbuttcap + \pgfpathmoveto{\pgfpoint{-.5\@tempdimb}{-\@tempdima}} + \pgfpathlineto{\pgfpoint{0pt}{-\@tempdima}} + \pgfpathlineto{\pgfpoint{0pt}{\@tempdima}} + \pgfpathlineto{\pgfpoint{-.5\@tempdimb}{\@tempdima}} + \pgfusepathqstroke +} + +\pgfarrowsdeclarereversed{]}{[}{[}{]} + + +% A round bracket shaped arrow + +\pgfarrowsdeclare{(}{)} +{ + \@tempdima=2pt% + \advance\@tempdima by1.5\pgflinewidth% + \@tempdimb=0.0625\@tempdima\advance\@tempdimb by.5\pgflinewidth% + \pgfarrowsrightextend{\@tempdimb} + \@tempdimb=0.5\@tempdima\advance\@tempdimb by.5\pgflinewidth% + \pgfarrowsleftextend{-\@tempdimb} +} +{ + \@tempdima=2pt% + \advance\@tempdima by1.5\pgflinewidth% + \pgfsetdash{}{0pt} + \pgfsetroundcap + \pgfpathmoveto{\pgfpoint{-.5\@tempdima}{-\@tempdima}} + \pgfpathcurveto + {\pgfpoint{.25\@tempdima}{-.5\@tempdima}} + {\pgfpoint{.25\@tempdima}{.5\@tempdima}} + {\pgfpoint{-.5\@tempdima}{\@tempdima}} + \pgfusepathqstroke +} + +\pgfarrowsdeclarereversed{)}{(}{(}{)} + + + + +% A pointed bracket shaped arrow + +\pgfarrowsdeclare{angle 90}{angle 90} +{ + \@tempdima=0.3pt% + \advance\@tempdima by.25\pgflinewidth% + \@tempdimb=5.5\@tempdima\advance\@tempdimb by.5\pgflinewidth% + \pgfarrowsleftextend{-\@tempdimb} + \@tempdimb=.5\@tempdima\advance\@tempdimb by0.707\pgflinewidth% + \pgfarrowsrightextend{\@tempdimb} +} +{ + \@tempdima=0.3pt% + \advance\@tempdima by.25\pgflinewidth% + \pgfsetdash{}{0pt} + \pgfsetroundcap + \pgfsetmiterjoin + \pgfpathmoveto{\pgfpoint{-5.5\@tempdima}{-6\@tempdima}} + \pgfpathlineto{\pgfpoint{0.5\@tempdima}{0\@tempdima}} + \pgfpathlineto{\pgfpoint{-5.5\@tempdima}{6\@tempdima}} + \pgfusepathqstroke +} + +\pgfarrowsdeclarereversed{angle 90 reversed}{angle 90 reversed}{angle 90}{angle 90} + + +\pgfarrowsdeclare{angle 60}{angle 60} +{ + \@tempdima=0.3pt% + \advance\@tempdima by.25\pgflinewidth% + \@tempdimb=7.29\@tempdima\advance\@tempdimb by.5\pgflinewidth% + \pgfarrowsleftextend{-\@tempdimb} + \@tempdimb=.5\@tempdima\advance\@tempdimb by\pgflinewidth% + \pgfarrowsrightextend{\@tempdimb} +} +{ + \@tempdima=0.3pt% + \advance\@tempdima by.25\pgflinewidth% + \pgfsetdash{}{0pt} + \pgfsetroundcap + \pgfsetmiterjoin + \pgfpathmoveto{\pgfpointadd{\pgfpoint{0.5\@tempdima}{0pt}}{\pgfpointpolar{150}{9\@tempdima}}} + \pgfpathlineto{\pgfpoint{0.5\@tempdima}{0\@tempdima}} + \pgfpathlineto{\pgfpointadd{\pgfpoint{0.5\@tempdima}{0pt}}{\pgfpointpolar{-150}{9\@tempdima}}} + \pgfusepathqstroke +} + +\pgfarrowsdeclarereversed{angle 60 reversed}{angle 60 reversed}{angle 60}{angle 60} + + + +\pgfarrowsdeclare{angle 45}{angle 45} +{ + \@tempdima=0.3pt% + \advance\@tempdima by.25\pgflinewidth% + \@tempdimb=8.705\@tempdima\advance\@tempdimb by.5\pgflinewidth% + \pgfarrowsleftextend{-\@tempdimb} + \@tempdimb=.5\@tempdima\advance\@tempdimb by1.28\pgflinewidth% + \pgfarrowsrightextend{\@tempdimb} +} +{ + \@tempdima=0.3pt% + \advance\@tempdima by.25\pgflinewidth% + \pgfsetdash{}{0pt} + \pgfsetroundcap + \pgfsetmiterjoin + \pgfpathmoveto{\pgfpointadd{\pgfpoint{0.5\@tempdima}{0pt}}{\pgfpointpolar{157}{10\@tempdima}}} + \pgfpathlineto{\pgfpoint{0.5\@tempdima}{0\@tempdima}} + \pgfpathlineto{\pgfpointadd{\pgfpoint{0.5\@tempdima}{0pt}}{\pgfpointpolar{-157}{10\@tempdima}}} + \pgfusepathqstroke +} + +\pgfarrowsdeclarereversed{angle 45 reversed}{angle 45 reversed}{angle 45}{angle 45} + + + +% A dot shaped arrow + +\pgfarrowsdeclare{*}{*} +{ + \@tempdima=0.4pt% + \advance\@tempdima by.2\pgflinewidth% + \@tempdimb=5.5\@tempdima\advance\@tempdimb by\pgflinewidth + \pgfarrowsleftextend{-\@tempdimb} + \@tempdimb=1.5\@tempdima\advance\@tempdimb by.5\pgflinewidth + \pgfarrowsrightextend{\@tempdimb} +} +{ + \@tempdima=0.4pt% + \advance\@tempdima by.2\pgflinewidth% + \pgfsetdash{}{0pt} + \pgfpathcircle{\pgfpoint{-3\@tempdima}{0pt}}{4.5\@tempdima} + \pgfusepathqfillstroke +} + + +% An open dot shaped arrow + +\pgfarrowsdeclare{o}{o} +{ + \pgfarrowsleftextend{-.5\pgflinewidth} + \@tempdima=0.4pt% + \advance\@tempdima by.2\pgflinewidth% + \@tempdimb=9\@tempdima\advance\@tempdimb by.5\pgflinewidth + \pgfarrowsrightextend{\@tempdimb} +} +{ + \@tempdima=0.4pt% + \advance\@tempdima by.2\pgflinewidth% + \pgfsetdash{}{0pt} + \pgfpathcircle{\pgfpoint{4.5\@tempdima}{0bp}}{4.5\@tempdima} + \pgfusepathqstroke +} + + + +% A diamond shaped arrow + +\pgfarrowsdeclare{diamond}{diamond} +{ + \@tempdima=0.4pt% + \advance\@tempdima by.275\pgflinewidth% + \@tempdimb=13\@tempdima\advance\@tempdimb by.5\pgflinewidth + \pgfarrowsleftextend{-\@tempdimb} + \@tempdimb=1\@tempdima\advance\@tempdimb by.5\pgflinewidth + \pgfarrowsrightextend{\@tempdimb} +} +{ + \@tempdima=0.4pt% + \advance\@tempdima by.275\pgflinewidth% + \pgfsetdash{}{0pt} + \pgfsetroundjoin + \pgfpathmoveto{\pgfpoint{1\@tempdima}{0\@tempdima}} + \pgfpathlineto{\pgfpoint{-6\@tempdima}{4\@tempdima}} + \pgfpathlineto{\pgfpoint{-13\@tempdima}{0\@tempdima}} + \pgfpathlineto{\pgfpoint{-6\@tempdima}{-4\@tempdima}} + \pgfpathclose + \pgfusepathqfillstroke +} + +\pgfarrowsdeclare{open diamond}{open diamond}%{{-.5bp}{14.5bp}} +{ + \@tempdima=0.4pt% + \advance\@tempdima by.275\pgflinewidth% + \pgfarrowsleftextend{-.5\pgflinewidth} + \@tempdimb=14\@tempdima\advance\@tempdimb by.5\pgflinewidth + \pgfarrowsrightextend{\@tempdimb} +} +{ + \@tempdima=0.4pt% + \advance\@tempdima by.275\pgflinewidth% + \pgfsetdash{}{0pt} + \pgfsetroundjoin + \pgfpathmoveto{\pgfpoint{14\@tempdima}{0\@tempdima}} + \pgfpathlineto{\pgfpoint{7\@tempdima}{4\@tempdima}} + \pgfpathlineto{\pgfpoint{0\@tempdima}{0\@tempdima}} + \pgfpathlineto{\pgfpoint{7\@tempdima}{-4\@tempdima}} + \pgfpathclose + \pgfusepathqstroke +} + + + +% A triangle shaped arrow + +\pgfarrowsdeclare{triangle 90}{triangle 90} +{ + \@tempdima=0.5pt% + \advance\@tempdima by.25\pgflinewidth% + \@tempdimb=5.5\@tempdima\advance\@tempdimb by.5\pgflinewidth% + \pgfarrowsleftextend{-\@tempdimb} + \@tempdimb=.5\@tempdima\advance\@tempdimb by0.707\pgflinewidth% + \pgfarrowsrightextend{\@tempdimb} +} +{ + \@tempdima=0.5pt% + \advance\@tempdima by.25\pgflinewidth% + \pgfsetdash{}{0pt} + \pgfsetmiterjoin + \pgfpathmoveto{\pgfpoint{-5.5\@tempdima}{-6\@tempdima}} + \pgfpathlineto{\pgfpoint{0.5\@tempdima}{0\@tempdima}} + \pgfpathlineto{\pgfpoint{-5.5\@tempdima}{6\@tempdima}} + \pgfpathclose + \pgfusepathqfillstroke +} + +\pgfarrowsdeclarereversed{triangle 90 reversed}{triangle 90 reversed}{triangle 90}{triangle 90} + + +\pgfarrowsdeclare{triangle 60}{triangle 60} +{ + \@tempdima=0.5pt% + \advance\@tempdima by.25\pgflinewidth% + \@tempdimb=7.29\@tempdima\advance\@tempdimb by.5\pgflinewidth% + \pgfarrowsleftextend{-\@tempdimb} + \@tempdimb=.5\@tempdima\advance\@tempdimb by\pgflinewidth% + \pgfarrowsrightextend{\@tempdimb} +} +{ + \@tempdima=0.5pt% + \advance\@tempdima by.25\pgflinewidth% + \pgfsetdash{}{0pt} + \pgfsetmiterjoin + \pgfpathmoveto{\pgfpointadd{\pgfpoint{0.5\@tempdima}{0pt}}{\pgfpointpolar{150}{9\@tempdima}}} + \pgfpathlineto{\pgfpoint{0.5\@tempdima}{0\@tempdima}} + \pgfpathlineto{\pgfpointadd{\pgfpoint{0.5\@tempdima}{0pt}}{\pgfpointpolar{-150}{9\@tempdima}}} + \pgfpathclose + \pgfusepathqfillstroke +} + +\pgfarrowsdeclarereversed{triangle 60 reversed}{triangle 60 reversed}{triangle 60}{triangle 60} + + + + +\pgfarrowsdeclare{triangle 45}{triangle 45} +{ + \@tempdima=0.5pt% + \advance\@tempdima by.25\pgflinewidth% + \@tempdimb=8.705\@tempdima\advance\@tempdimb by.5\pgflinewidth% + \pgfarrowsleftextend{-\@tempdimb} + \@tempdimb=.5\@tempdima\advance\@tempdimb by1.28\pgflinewidth% + \pgfarrowsrightextend{\@tempdimb} +} +{ + \@tempdima=0.5pt% + \advance\@tempdima by.25\pgflinewidth% + \pgfsetdash{}{0pt} + \pgfsetmiterjoin + \pgfpathmoveto{\pgfpointadd{\pgfpoint{0.5\@tempdima}{0pt}}{\pgfpointpolar{157}{10\@tempdima}}} + \pgfpathlineto{\pgfpoint{0.5\@tempdima}{0\@tempdima}} + \pgfpathlineto{\pgfpointadd{\pgfpoint{0.5\@tempdima}{0pt}}{\pgfpointpolar{-157}{10\@tempdima}}} + \pgfpathclose + \pgfusepathqfillstroke +} + +\pgfarrowsdeclarereversed{triangle 45 reversed}{triangle 45 reversed}{triangle 45}{triangle 45} + + + + +\pgfarrowsdeclare{open triangle 90}{open triangle 90} +{ + \@tempdima=0.5pt% + \advance\@tempdima by.25\pgflinewidth% + \pgfarrowsleftextend{-.5\pgflinewidth} + \@tempdimb=6\@tempdima\advance\@tempdimb by0.707\pgflinewidth% + \pgfarrowsrightextend{\@tempdimb} +} +{ + \@tempdima=0.5pt% + \advance\@tempdima by.25\pgflinewidth% + \pgfsetdash{}{0pt} + \pgfsetmiterjoin + \pgfpathmoveto{\pgfpoint{0\@tempdima}{-6\@tempdima}} + \pgfpathlineto{\pgfpoint{6\@tempdima}{0\@tempdima}} + \pgfpathlineto{\pgfpoint{0\@tempdima}{6\@tempdima}} + \pgfpathclose + \pgfusepathqstroke +} + +\pgfarrowsdeclare{open triangle 90 reversed}{open triangle 90 reversed} +{ + \@tempdima=0.5pt% + \advance\@tempdima by.25\pgflinewidth% + \pgfarrowsleftextend{-.707\pgflinewidth} + \@tempdimb=6\@tempdima\advance\@tempdimb by0.5\pgflinewidth% + \pgfarrowsrightextend{\@tempdimb} +} +{ + \@tempdima=0.5pt% + \advance\@tempdima by.25\pgflinewidth% + \pgfsetdash{}{0pt} + \pgfsetmiterjoin + \pgfpathmoveto{\pgfpoint{6\@tempdima}{-6\@tempdima}} + \pgfpathlineto{\pgfpoint{0\@tempdima}{0\@tempdima}} + \pgfpathlineto{\pgfpoint{6\@tempdima}{6\@tempdima}} + \pgfpathclose + \pgfusepathqstroke +} + + + +\pgfarrowsdeclare{open triangle 60}{open triangle 60} +{ + \@tempdima=0.5pt% + \advance\@tempdima by.25\pgflinewidth% + \pgfarrowsleftextend{-.5\pgflinewidth} + \@tempdimb=7.794\@tempdima\advance\@tempdimb by\pgflinewidth% + \pgfarrowsrightextend{\@tempdimb} +} +{ + \@tempdima=0.5pt% + \advance\@tempdima by.25\pgflinewidth% + \pgfsetdash{}{0pt} + \pgfsetmiterjoin + \pgfpathmoveto{\pgfpointadd{\pgfpoint{7.794\@tempdima}{0pt}}{\pgfpointpolar{150}{9\@tempdima}}} + \pgfpathlineto{\pgfpoint{7.794\@tempdima}{0pt}} + \pgfpathlineto{\pgfpointadd{\pgfpoint{7.794\@tempdima}{0pt}}{\pgfpointpolar{-150}{9\@tempdima}}} + \pgfpathclose + \pgfusepathqstroke +} + + + +\pgfarrowsdeclare{open triangle 60 reversed}{open triangle 60 reversed} +{ + \@tempdima=0.5pt% + \advance\@tempdima by.25\pgflinewidth% + \pgfarrowsleftextend{-\pgflinewidth} + \@tempdimb=7.794\@tempdima\advance\@tempdimb by0.5\pgflinewidth% + \pgfarrowsrightextend{\@tempdimb} +} +{ + \@tempdima=0.5pt% + \advance\@tempdima by.25\pgflinewidth% + \pgfsetdash{}{0pt} + \pgfsetmiterjoin + \pgfpathmoveto{\pgfpointpolar{30}{9\@tempdima}} + \pgfpathlineto{\pgfpointorigin} + \pgfpathlineto{\pgfpointpolar{-30}{9\@tempdima}} + \pgfpathclose + \pgfusepathqstroke +} + + + +\pgfarrowsdeclare{open triangle 45}{open triangle 45} +{ + \@tempdima=0.5pt% + \advance\@tempdima by.25\pgflinewidth% + \pgfarrowsleftextend{-.5\pgflinewidth} + \@tempdimb=9.205\@tempdima\advance\@tempdimb by1.28\pgflinewidth% + \pgfarrowsrightextend{\@tempdimb} +} +{ + \@tempdima=0.5pt% + \advance\@tempdima by.25\pgflinewidth% + \pgfsetdash{}{0pt} + \pgfsetmiterjoin + \pgfpathmoveto{\pgfpointadd{\pgfpoint{9.205\@tempdima}{0pt}}{\pgfpointpolar{157}{10\@tempdima}}} + \pgfpathlineto{\pgfpoint{9.205\@tempdima}{0pt}} + \pgfpathlineto{\pgfpointadd{\pgfpoint{9.205\@tempdima}{0pt}}{\pgfpointpolar{-157}{10\@tempdima}}} + \pgfpathclose + \pgfusepathqstroke +} + + + +\pgfarrowsdeclare{open triangle 45 reversed}{open triangle 45 reversed} +{ + \@tempdima=0.5pt% + \advance\@tempdima by.25\pgflinewidth% + \pgfarrowsleftextend{-1.28\pgflinewidth} + \@tempdimb=9.205\@tempdima\advance\@tempdimb by0.5\pgflinewidth% + \pgfarrowsrightextend{\@tempdimb} +} +{ + \@tempdima=0.5pt% + \advance\@tempdima by.25\pgflinewidth% + \pgfsetdash{}{0pt} + \pgfsetmiterjoin + \pgfpathmoveto{\pgfpointpolar{23}{10\@tempdima}} + \pgfpathlineto{\pgfpointorigin} + \pgfpathlineto{\pgfpointpolar{-23}{10\@tempdima}} + \pgfpathclose + \pgfusepathqstroke +} + + + +% A less fleshy variant of LaTeX's orginal arrow type + +\pgfarrowsdeclare{latex'}{latex'} +{ + \@tempdima=0.28pt% + \advance\@tempdima by.3\pgflinewidth% + \pgfarrowsleftextend{-4\@tempdima} + \pgfarrowsrightextend{6\@tempdima} +} +{ + \@tempdima=0.28pt% + \advance\@tempdima by.3\pgflinewidth% + \pgfpathmoveto{\pgfpoint{6\@tempdima}{0\@tempdima}} + \pgfpathcurveto + {\pgfpoint{3.5\@tempdima}{.5\@tempdima}} + {\pgfpoint{-1\@tempdima}{1.5\@tempdima}} + {\pgfpoint{-4\@tempdima}{3.75\@tempdima}} + \pgfpathcurveto + {\pgfpoint{-1.5\@tempdima}{1\@tempdima}} + {\pgfpoint{-1.5\@tempdima}{-1\@tempdima}} + {\pgfpoint{-4\@tempdima}{-3.75\@tempdima}} + \pgfpathcurveto + {\pgfpoint{-1\@tempdima}{-1.5\@tempdima}} + {\pgfpoint{3.5\@tempdima}{-.5\@tempdima}} + {\pgfpoint{6\@tempdima}{0\@tempdima}} + \pgfusepathqfill +} + +\pgfarrowsdeclarereversed{latex' reversed}{latex' reversed}{latex'}{latex'} + + +% A rounded variant of the stealth arrow + +\pgfarrowsdeclare{stealth'}{stealth'} +{ + \@tempdima=0.28pt% + \advance\@tempdima by.3\pgflinewidth% + \@tempdimb=6\@tempdima\advance\@tempdimb by.5\pgflinewidth% + \pgfarrowsleftextend{-\@tempdimb} + \@tempdimb=2\@tempdima\advance\@tempdimb by0.5\pgflinewidth% + \pgfarrowsrightextend{\@tempdimb} +} +{ + \@tempdima=0.28pt% + \advance\@tempdima by.3\pgflinewidth% + \pgfsetdash{}{0pt} + \pgfsetroundjoin + \pgfpathmoveto{\pgfpoint{2\@tempdima}{0\@tempdima}} + \pgfpathcurveto + {\pgfpoint{-.5\@tempdima}{.5\@tempdima}} + {\pgfpoint{-3\@tempdima}{1.5\@tempdima}} + {\pgfpoint{-6\@tempdima}{3.25\@tempdima}} + \pgfpathcurveto + {\pgfpoint{-3\@tempdima}{1\@tempdima}} + {\pgfpoint{-3\@tempdima}{-1\@tempdima}} + {\pgfpoint{-6\@tempdima}{-3.25\@tempdima}} + \pgfpathcurveto + {\pgfpoint{-3\@tempdima}{-1.5\@tempdima}} + {\pgfpoint{-.5\@tempdima}{-.5\@tempdima}} + {\pgfpoint{2\@tempdima}{0\@tempdima}} + \pgfpathclose + \pgfusepathqfillstroke +} + +\pgfarrowsdeclarereversed{stealth' reversed}{stealth' reversed}{stealth'}{stealth'} + + + +% The two half of the $\to$ arrow + +\pgfarrowsdeclare{left to}{left to} +{ + \@tempdima=-0.84pt% + \advance\@tempdima by-1.3\pgflinewidth% + \@tempdimb=0.21pt% + \advance\@tempdimb by.625\pgflinewidth% + \pgfarrowsleftextend{\@tempdima} + \pgfarrowsrightextend{\@tempdimb} +} +{ + \@tempdima=0.28pt% + \advance\@tempdima by.3\pgflinewidth% + \pgfsetlinewidth{0.8\pgflinewidth} + \pgfsetdash{}{0pt} + \pgfsetroundcap + \pgfsetroundjoin + \pgfpathmoveto{\pgfpoint{-3\@tempdima}{4\@tempdima}} + \pgfpathcurveto + {\pgfpoint{-2.75\@tempdima}{2.5\@tempdima}} + {\pgfpoint{0pt}{0.25\@tempdima}} + {\pgfpoint{0.75\@tempdima}{0pt}} + \pgfpathcurveto + {\pgfpoint{0.55\@tempdima}{-0.125\pgflinewidth}} + {\pgfpoint{0.5\@tempdima}{-0.125\pgflinewidth}} + {\pgfpoint{0.5\@tempdima}{-0.125\pgflinewidth}} + \pgfpathlineto{\pgfpoint{0pt}{-0.125\pgflinewidth}} + \pgfusepathqstroke +} + + +\pgfarrowsdeclare{right to}{right to} +{ + \@tempdima=-0.84pt% + \advance\@tempdima by-1.3\pgflinewidth% + \@tempdimb=0.21pt% + \advance\@tempdimb by.625\pgflinewidth% + \pgfarrowsleftextend{\@tempdima} + \pgfarrowsrightextend{\@tempdimb} +} +{ + \@tempdima=0.28pt% + \advance\@tempdima by.3\pgflinewidth% + \pgfsetlinewidth{0.8\pgflinewidth} + \pgfsetdash{}{0pt} + \pgfsetroundcap + \pgfsetroundjoin + \pgfpathmoveto{\pgfpoint{-3\@tempdima}{-4\@tempdima}} + \pgfpathcurveto + {\pgfpoint{-2.75\@tempdima}{-2.5\@tempdima}} + {\pgfpoint{0pt}{-0.25\@tempdima}} + {\pgfpoint{0.75\@tempdima}{0pt}} + \pgfpathcurveto + {\pgfpoint{0.55\@tempdima}{0.125\pgflinewidth}} + {\pgfpoint{0.5\@tempdima}{0.125\pgflinewidth}} + {\pgfpoint{0.5\@tempdima}{0.125\pgflinewidth}} + \pgfpathlineto{\pgfpoint{0pt}{0.125\pgflinewidth}} + \pgfusepathqstroke +} + + + +% The halfs of the $\to$ arrow reversed + +\pgfarrowsdeclare{left to reversed}{left to reversed} +{ + \@tempdima=0.28pt% + \advance\@tempdima by.3\pgflinewidth% + \pgfarrowsleftextend{-.1\pgflinewidth} + \@tempdimb=3.75\@tempdima\advance\@tempdimb by0.9\pgflinewidth% + \pgfarrowsrightextend{\@tempdimb} +} +{ + \@tempdima=0.28pt% + \advance\@tempdima by.3\pgflinewidth% + \pgfsetdash{}{0pt} + \pgfsetroundjoin + \pgfsetbuttcap + \pgfpathmoveto{\pgfpoint{0.5\pgflinewidth}{0pt}} + \pgfpathlineto{\pgfpoint{-0.1\pgflinewidth}{0pt}} + \pgfusepathqstroke + \pgfsetroundcap + \pgfsetlinewidth{.8\pgflinewidth} + {\pgftransformxshift{0.625\pgflinewidth} + \pgfpathmoveto{\pgfpoint{3.75\@tempdima}{4\@tempdima}} + \pgfpathcurveto{\pgfpoint{3.5\@tempdima}{2.5\@tempdima}}{\pgfpoint{0.75\@tempdima}{0.25\@tempdima}}{\pgfpoint{0pt}{0.125\pgflinewidth}} + \pgfpathmoveto{\pgfpoint{3.75\@tempdima}{4\@tempdima}} + \pgfpathcurveto{\pgfpoint{3.5\@tempdima}{2.5\@tempdima}}{\pgfpoint{0.75\@tempdima}{0.25\@tempdima}}{\pgfpoint{0pt}{-0.125\pgflinewidth}} + } + \pgfusepathqstroke% +} + +\pgfarrowsdeclare{right to reversed}{right to reversed} +{ + \@tempdima=0.28pt% + \advance\@tempdima by.3\pgflinewidth% + \pgfarrowsleftextend{-.1\pgflinewidth} + \@tempdimb=3.75\@tempdima\advance\@tempdimb by0.9\pgflinewidth% + \pgfarrowsrightextend{\@tempdimb} +} +{ + \@tempdima=0.28pt% + \advance\@tempdima by.3\pgflinewidth% + \pgfsetdash{}{0pt} + \pgfsetroundjoin + \pgfsetbuttcap + \pgfpathmoveto{\pgfpoint{0.5\pgflinewidth}{0pt}} + \pgfpathlineto{\pgfpoint{-0.1\pgflinewidth}{0pt}} + \pgfusepathqstroke + \pgfsetroundcap + \pgfsetlinewidth{.8\pgflinewidth} + {\pgftransformxshift{0.625\pgflinewidth} + \pgfpathmoveto{\pgfpoint{3.75\@tempdima}{-4\@tempdima}} + \pgfpathcurveto{\pgfpoint{3.5\@tempdima}{-2.5\@tempdima}}{\pgfpoint{0.75\@tempdima}{-0.25\@tempdima}}{\pgfpoint{0pt}{-0.125\pgflinewidth}} + \pgfpathmoveto{\pgfpoint{3.75\@tempdima}{-4\@tempdima}} + \pgfpathcurveto{\pgfpoint{3.5\@tempdima}{-2.5\@tempdima}}{\pgfpoint{0.75\@tempdima}{-0.25\@tempdima}}{\pgfpoint{0pt}{0.125\pgflinewidth}} + } + \pgfusepathqstroke% +} + + + +% A left hook + +\pgfarrowsdeclare{left hook}{left hook} +{ + \@tempdima=0.4pt% + \advance\@tempdima by.2\pgflinewidth% + \pgfarrowsleftextend{-.5\pgflinewidth} + \@tempdimb=3.75\@tempdima\advance\@tempdimb by0.5\pgflinewidth% + \pgfarrowsrightextend{\@tempdimb} +} +{ + \@tempdima=0.4pt% + \advance\@tempdima by.2\pgflinewidth% + \pgfsetdash{}{0pt} + \pgfsetroundcap + \pgfpathmoveto{\pgfpoint{0\@tempdima}{0\@tempdima}} + \pgfpathlineto{\pgfpoint{0.75\@tempdima}{0\@tempdima}} + \pgfpathcurveto{\pgfpoint{2.415\@tempdima}{0\@tempdima}}{\pgfpoint{3.75\@tempdima}{1.665\@tempdima}}{\pgfpoint{3.75\@tempdima}{3\@tempdima}} + \pgfpathcurveto{\pgfpoint{3.75\@tempdima}{4.665\@tempdima}}{\pgfpoint{2.415\@tempdima}{6\@tempdima}}{\pgfpoint{0.75\@tempdima}{6\@tempdima}} + \pgfusepathqstroke% +} + +\pgfarrowsdeclarereversed{left hook reversed}{left hook reversed}{left hook}{left hook} + + + +% A right hook + +\pgfarrowsdeclare{right hook}{right hook} +{ + \@tempdima=0.4pt% + \advance\@tempdima by.2\pgflinewidth% + \pgfarrowsleftextend{-.5\pgflinewidth} + \@tempdimb=3.75\@tempdima\advance\@tempdimb by0.5\pgflinewidth% + \pgfarrowsrightextend{\@tempdimb} +} +{ + \@tempdima=0.4pt% + \advance\@tempdima by.2\pgflinewidth% + \pgfsetdash{}{0pt} + \pgfsetroundcap + \pgfpathmoveto{\pgfpoint{0\@tempdima}{0\@tempdima}} + \pgfpathlineto{\pgfpoint{0.75\@tempdima}{0\@tempdima}} + \pgfpathcurveto{\pgfpoint{2.415\@tempdima}{0\@tempdima}}{\pgfpoint{3.75\@tempdima}{-1.665\@tempdima}}{\pgfpoint{3.75\@tempdima}{-3\@tempdima}} + \pgfpathcurveto{\pgfpoint{3.75\@tempdima}{-4.665\@tempdima}}{\pgfpoint{2.415\@tempdima}{-6\@tempdima}}{\pgfpoint{0.75\@tempdima}{-6\@tempdima}} + \pgfusepathqstroke% +} + +\pgfarrowsdeclarereversed{right hook reversed}{right hook reversed}{right hook}{right hook} + + +% Hooks in both directions + +\pgfarrowsdeclare{hooks}{hooks} +{ + \@tempdima=0.4pt% + \advance\@tempdima by.2\pgflinewidth% + \pgfarrowsleftextend{-.5\pgflinewidth} + \@tempdimb=3.75\@tempdima\advance\@tempdimb by0.5\pgflinewidth% + \pgfarrowsrightextend{\@tempdimb} +} +{ + \@tempdima=0.4pt% + \advance\@tempdima by.2\pgflinewidth% + \pgfsetdash{}{0pt} + \pgfsetroundcap + \pgfpathmoveto{\pgfpoint{0\@tempdima}{0\@tempdima}} + \pgfpathlineto{\pgfpoint{0.75\@tempdima}{0\@tempdima}} + \pgfpathcurveto{\pgfpoint{2.415\@tempdima}{0\@tempdima}}{\pgfpoint{3.75\@tempdima}{1.665\@tempdima}}{\pgfpoint{3.75\@tempdima}{3\@tempdima}} + \pgfpathcurveto{\pgfpoint{3.75\@tempdima}{4.665\@tempdima}}{\pgfpoint{2.415\@tempdima}{6\@tempdima}}{\pgfpoint{0.75\@tempdima}{6\@tempdima}} + \pgfpathmoveto{\pgfpoint{0.75\@tempdima}{0\@tempdima}} + \pgfpathcurveto{\pgfpoint{2.415\@tempdima}{0\@tempdima}}{\pgfpoint{3.75\@tempdima}{-1.665\@tempdima}}{\pgfpoint{3.75\@tempdima}{-3\@tempdima}} + \pgfpathcurveto{\pgfpoint{3.75\@tempdima}{-4.665\@tempdima}}{\pgfpoint{2.415\@tempdima}{-6\@tempdima}}{\pgfpoint{0.75\@tempdima}{-6\@tempdima}} + \pgfusepathqstroke% +} + +\pgfarrowsdeclarereversed{hooks reversed}{hooks reversed}{hooks}{hooks} + + + + +% Round cap + +\pgfarrowsdeclare{round cap}{round cap} +{\pgfarrowsleftextend{0pt}\pgfarrowsrightextend{\pgflinewidth}} +{ + \pgfsetdash{}{0pt} + \pgfsetroundcap + \pgfpathmoveto{\pgfpointorigin} + \pgfpathlineto{\pgfpoint{0.5\pgflinewidth}{0pt}} + \pgfusepathqstroke +} + + +% Butt cap + +\pgfarrowsdeclare{butt cap}{butt cap} +{\pgfarrowsleftextend{-.1\pgflinewidth}\pgfarrowsrightextend{.5\pgflinewidth}} +{ + \pgfsetdash{}{0pt} + \pgfsetbuttcap + \pgfpathmoveto{\pgfpoint{-.1\pgflinewidth}{0pt}} + \pgfpathlineto{\pgfpoint{0.5\pgflinewidth}{0pt}} + \pgfusepathqstroke +} + + + +% 90 degrees cap + +\pgfarrowsdeclare{triangle 90 cap}{triangle 90 cap} +{\pgfarrowsleftextend{-.1\pgflinewidth}\pgfarrowsrightextend{1\pgflinewidth}} +{ + \pgfpathmoveto{\pgfpoint{-.1\pgflinewidth}{0.5\pgflinewidth}} + \pgfpathlineto{\pgfpoint{.5\pgflinewidth}{.5\pgflinewidth}} + \pgfpathlineto{\pgfpoint{\pgflinewidth}{0pt}} + \pgfpathlineto{\pgfpoint{.5\pgflinewidth}{-.5\pgflinewidth}} + \pgfpathlineto{\pgfpoint{-.1\pgflinewidth}{-0.5\pgflinewidth}} + \pgfusepathqfill +} + + +% reversed 90 degrees cap + +\pgfarrowsdeclare{triangle 90 cap reversed}{triangle 90 cap reversed} +{\pgfarrowsleftextend{-.1\pgflinewidth}\pgfarrowsrightextend{1\pgflinewidth}} +{ + \pgfpathmoveto{\pgfpoint{1\pgflinewidth}{0.5\pgflinewidth}} + \pgfpathlineto{\pgfpoint{-.1\pgflinewidth}{.5\pgflinewidth}} + \pgfpathlineto{\pgfpoint{-.1\pgflinewidth}{-.5\pgflinewidth}} + \pgfpathlineto{\pgfpoint{1\pgflinewidth}{-.5\pgflinewidth}} + \pgfpathlineto{\pgfpoint{0.5\pgflinewidth}{0\pgflinewidth}} + \pgfusepathqfill +} + + + +% fast + +\pgfarrowsdeclare{fast cap}{fast cap} +{\pgfarrowsleftextend{-.1\pgflinewidth}\pgfarrowsrightextend{2\pgflinewidth}} +{ + \pgfpathmoveto{\pgfpoint{-.1\pgflinewidth}{0.5\pgflinewidth}} + \pgfpathlineto{\pgfpoint{.5\pgflinewidth}{.5\pgflinewidth}} + \pgfpathlineto{\pgfpoint{1\pgflinewidth}{0\pgflinewidth}} + \pgfpathlineto{\pgfpoint{.5\pgflinewidth}{-.5\pgflinewidth}} + \pgfpathlineto{\pgfpoint{-.1\pgflinewidth}{-0.5\pgflinewidth}} + \pgfpathclose + \pgfpathmoveto{\pgfpoint{1\pgflinewidth}{0.5\pgflinewidth}} + \pgfpathlineto{\pgfpoint{1.5\pgflinewidth}{0.5\pgflinewidth}} + \pgfpathlineto{\pgfpoint{2\pgflinewidth}{0\pgflinewidth}} + \pgfpathlineto{\pgfpoint{1.5\pgflinewidth}{-.5\pgflinewidth}} + \pgfpathlineto{\pgfpoint{1\pgflinewidth}{-0.5\pgflinewidth}} + \pgfpathlineto{\pgfpoint{1.5\pgflinewidth}{0\pgflinewidth}} + \pgfpathclose + \pgfusepathqfill +} + + +\pgfarrowsdeclare{fast cap reversed}{fast cap reversed} +{\pgfarrowsleftextend{-.1\pgflinewidth}\pgfarrowsrightextend{2\pgflinewidth}} +{ + \pgfpathmoveto{\pgfpoint{-.1\pgflinewidth}{0.5\pgflinewidth}} + \pgfpathlineto{\pgfpoint{1\pgflinewidth}{.5\pgflinewidth}} + \pgfpathlineto{\pgfpoint{.5\pgflinewidth}{0\pgflinewidth}} + \pgfpathlineto{\pgfpoint{1\pgflinewidth}{-.5\pgflinewidth}} + \pgfpathlineto{\pgfpoint{-.1\pgflinewidth}{-0.5\pgflinewidth}} + \pgfpathclose + \pgfpathmoveto{\pgfpoint{1.5\pgflinewidth}{0.5\pgflinewidth}} + \pgfpathlineto{\pgfpoint{2\pgflinewidth}{0.5\pgflinewidth}} + \pgfpathlineto{\pgfpoint{1.5\pgflinewidth}{0\pgflinewidth}} + \pgfpathlineto{\pgfpoint{2\pgflinewidth}{-.5\pgflinewidth}} + \pgfpathlineto{\pgfpoint{1.5\pgflinewidth}{-0.5\pgflinewidth}} + \pgfpathlineto{\pgfpoint{1\pgflinewidth}{0\pgflinewidth}} + \pgfpathclose + \pgfusepathqfill +} + + +\endinput diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryautomata.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryautomata.code.tex new file mode 100644 index 00000000000..be801d0a7df --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryautomata.code.tex @@ -0,0 +1,189 @@ +\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibraryautomata.code.tex,v 1.1 2005/10/13 10:12:31 tantau Exp $ + +% Copyright 2005 by Till Tantau <tantau@cs.tu-berlin.de>. +% +% This program can be redistributed and/or modified under the terms +% of the GNU Public License, version 2. + +\newbox\pgfnodepartoutputbox + + + +% +% Node for states without output. This is just an alias for a circle +% node. +% +\pgfdeclareshape{state} +{ + \inheritsavedanchors[from=circle] % this is a circle + \inheritanchorborder[from=circle] + \inheritanchor[from=circle]{north} + \inheritanchor[from=circle]{north west} + \inheritanchor[from=circle]{north east} + \inheritanchor[from=circle]{center} + \inheritanchor[from=circle]{west} + \inheritanchor[from=circle]{east} + \inheritanchor[from=circle]{mid} + \inheritanchor[from=circle]{mid west} + \inheritanchor[from=circle]{mid east} + \inheritanchor[from=circle]{base} + \inheritanchor[from=circle]{base west} + \inheritanchor[from=circle]{base east} + \inheritanchor[from=circle]{south} + \inheritanchor[from=circle]{south west} + \inheritanchor[from=circle]{south east} + \inheritbackgroundpath[from=circle] +} + + +% +% Moore state node (a state with output). +% +% This node consists of two parts: The main part is the state +% name. The second part is the (optional) state output. This output is +% shown in the lower half of the node. +% +% Parts: text (=state name), output + +\pgfdeclareshape{state with output} +{ + % + % Node parts + % + \nodeparts{text,output} + + % + % Anchors + % + \savedanchor\centerpoint{% + \pgf@x=.5\wd\pgfnodeparttextbox% + \setlength{\pgf@y}{\pgfshapeinnerysep}% + \pgf@y=-\pgf@y% + \advance\pgf@y by-\dp\pgfnodeparttextbox% + \advance\pgf@y by-.5\pgflinewidth% + }% + \savedanchor\outputanchor{% + \pgf@x=-.5\wd\pgfnodepartoutputbox% + \advance\pgf@x by.5\wd\pgfnodeparttextbox% + \setlength{\pgf@y}{\pgfshapeinnerysep}% + \pgf@y=-2\pgf@y% + \advance\pgf@y by-\ht\pgfnodepartoutputbox% + \advance\pgf@y by-.5\pgflinewidth% + \advance\pgf@y by-\dp\pgfnodeparttextbox% + \advance\pgf@y by-.5\pgflinewidth% + } + + \saveddimen\radius{% + % + % Caculate ``height radius'' + % + \pgf@ya=.5\ht\pgfnodeparttextbox% + \advance\pgf@ya by.5\dp\pgfnodeparttextbox% + \advance\pgf@ya by.5\ht\pgfnodepartoutputbox% + \advance\pgf@ya by.5\dp\pgfnodepartoutputbox% + \advance\pgf@ya by.5\pgflinewidth% + \setlength\pgf@yb{\pgfshapeinnerysep}% + \advance\pgf@ya by2\pgf@yb% + % + % Caculate ``width radius'' + % + \pgf@xa=.5\wd\pgfnodeparttextbox% + \ifdim\pgf@xa<.5\wd\pgfnodepartoutputbox% + \pgf@xa=.5\wd\pgfnodepartoutputbox% + \fi% + \setlength\pgf@xb{\pgfshapeinnerxsep}% + \advance\pgf@xa by\pgf@xb% + % + % Calculate length of radius vector: + % + \pgf@process{\pgfpointnormalised{\pgfpoint{\pgf@xa}{\pgf@ya}}}% + \ifdim\pgf@x>\pgf@y% + \c@pgf@counta=\pgf@x% + \ifnum\c@pgf@counta=0\relax% + \else% + \divide\c@pgf@counta by 255\relax% + \pgf@xa=16\pgf@xa\relax% + \divide\pgf@xa by\c@pgf@counta% + \pgf@xa=16\pgf@xa\relax% + \fi% + \else% + \c@pgf@counta=\pgf@y% + \ifnum\c@pgf@counta=0\relax% + \else% + \divide\c@pgf@counta by 255\relax% + \pgf@ya=16\pgf@ya\relax% + \divide\pgf@ya by\c@pgf@counta% + \pgf@xa=16\pgf@ya\relax% + \fi% + \fi% + \pgf@x=\pgf@xa% + % + % If necessary, adjust radius so that the size requirements are + % met: + % + \setlength{\pgf@xb}{\pgfshapeminwidth}% + \setlength{\pgf@yb}{\pgfshapeminheight}% + \ifdim\pgf@x<.5\pgf@xb% + \pgf@x=.5\pgf@xb% + \fi% + \ifdim\pgf@x<.5\pgf@yb% + \pgf@x=.5\pgf@yb% + \fi% + % + % Now, add larger of outer sepearations. + % + \setlength{\pgf@xb}{\pgfshapeouterxsep}% + \setlength{\pgf@yb}{\pgfshapeouterysep}% + \ifdim\pgf@xb<\pgf@yb% + \advance\pgf@x by\pgf@yb% + \else% + \advance\pgf@x by\pgf@xb% + \fi% + } + + % + % Anchors + % + \inheritanchorborder[from=circle] + \inheritanchor[from=circle]{north} + \inheritanchor[from=circle]{north west} + \inheritanchor[from=circle]{north east} + \inheritanchor[from=circle]{center} + \inheritanchor[from=circle]{west} + \inheritanchor[from=circle]{east} + \inheritanchor[from=circle]{mid} + \inheritanchor[from=circle]{mid west} + \inheritanchor[from=circle]{mid east} + \inheritanchor[from=circle]{base} + \inheritanchor[from=circle]{base west} + \inheritanchor[from=circle]{base east} + \inheritanchor[from=circle]{south} + \inheritanchor[from=circle]{south west} + \inheritanchor[from=circle]{south east} + \anchor{output}{\outputanchor} + + % + % Background path + % + \inheritbackgroundpath[from=circle] + \beforebackgroundpath{ + \@tempdima=\radius% + \setlength{\pgf@xb}{\pgfshapeouterxsep}% + \setlength{\pgf@yb}{\pgfshapeouterysep}% + \ifdim\pgf@xb<\pgf@yb% + \advance\@tempdima by-\pgf@yb% + \else% + \advance\@tempdima by-\pgf@xb% + \fi% + \advance\@tempdima by-.5\pgflinewidth% + \pgfsetarrows{-}% + \pgfpathmoveto{\pgfpointadd{\centerpoint}{\pgfpoint{-\@tempdima}{0pt}}}% + \pgfpathlineto{\pgfpointadd{\centerpoint}{\pgfpoint{\@tempdima}{0pt}}}% + \pgfusepath{stroke}% + } +} + + + + +\endinput diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex new file mode 100644 index 00000000000..7bbaa4b24bb --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex @@ -0,0 +1,450 @@ +\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibraryplothandlers.code.tex,v 1.3 2005/07/06 15:58:57 tantau Exp $ + +% Copyright 2005 by Till Tantau <tantau@cs.tu-berlin.de>. +% +% This program can be redistributed and/or modified under the terms +% of the GNU Public License, version 2. + + +\newif\ifpgf@plot@started + + +% This handler converts each plot stream command into a curveto +% command, except for the first, which is converted to the previously +% specified action. +% +% Example: +% +% \pgfpathmoveto{\pgfpointorigin} +% \pgfsetlinetofirstplotpoint +% \pgfplothandlercurveto +% \pgfplotxyfile{mytable} + +\def\pgfplothandlercurveto{% + \def\pgf@plotstreamstart{% + \global\let\pgf@plotstreampoint=\pgf@plot@curveto@handler@initial% + \global\let\pgf@plotstreamspecial=\@gobble% + \global\let\pgf@plotstreamend=\pgf@plot@curveto@handler@finish% + \global\pgf@plot@startedfalse% + }% +} + +\def\pgf@plot@curveto@handler@initial#1{% + \pgf@process{#1}% + \pgf@xa=\pgf@x% + \pgf@ya=\pgf@y% + \pgf@plot@first@action{\pgfpoint{\pgf@xa}{\pgf@ya}}% + \xdef\pgf@plot@curveto@first{\noexpand\pgfpoint{\the\pgf@xa}{\the\pgf@ya}}% + \global\let\pgf@plot@curveto@first@support=\pgf@plot@curveto@first% + \global\let\pgf@plotstreampoint=\pgf@plot@curveto@handler@second% +} + +\def\pgf@plot@curveto@handler@second#1{% + \pgf@process{#1}% + \xdef\pgf@plot@curveto@second{\noexpand\pgfpoint{\the\pgf@x}{\the\pgf@y}}% + \global\let\pgf@plotstreampoint=\pgf@plot@curveto@handler@third% + \global\pgf@plot@startedtrue% +} + +\def\pgf@plot@curveto@handler@third#1{% + \pgf@process{#1}% + \xdef\pgf@plot@curveto@current{\noexpand\pgfpoint{\the\pgf@x}{\the\pgf@y}}% + % compute difference vector: + \pgf@xa=\pgf@x% + \pgf@ya=\pgf@y% + \pgf@process{\pgf@plot@curveto@first} + \advance\pgf@xa by-\pgf@x% + \advance\pgf@ya by-\pgf@y% + % compute support directions: + \pgf@xa=\pgf@plottension\pgf@xa% + \pgf@ya=\pgf@plottension\pgf@ya% + % first marshal: + \pgf@process{\pgf@plot@curveto@second}% + \pgf@xb=\pgf@x% + \pgf@yb=\pgf@y% + \pgf@xc=\pgf@x% + \pgf@yc=\pgf@y% + \advance\pgf@xb by-\pgf@xa% + \advance\pgf@yb by-\pgf@ya% + \advance\pgf@xc by\pgf@xa% + \advance\pgf@yc by\pgf@ya% + \edef\pgf@marshal{\noexpand\pgfpathcurveto{\noexpand\pgf@plot@curveto@first@support}% + {\noexpand\pgfpoint{\the\pgf@xb}{\the\pgf@yb}}{\noexpand\pgf@plot@curveto@second}}% + {\pgf@marshal}% + % Prepare next: + \global\let\pgf@plot@curveto@first=\pgf@plot@curveto@second% + \global\let\pgf@plot@curveto@second=\pgf@plot@curveto@current% + \xdef\pgf@plot@curveto@first@support{\noexpand\pgfpoint{\the\pgf@xc}{\the\pgf@yc}}% +} + +\def\pgf@plot@curveto@handler@finish{% + \ifpgf@plot@started% + \pgfpathcurveto{\pgf@plot@curveto@first@support}{\pgf@plot@curveto@second}{\pgf@plot@curveto@second}% + \fi% +} + + +% This commands sets the tension for smoothing of plots. +% +% #1 = tension of curves. A value of 1 will yield a circle when the +% control points are at quarters of a circle. A smaller value +% will result in a tighter curve. Default is 0.5. +% +% Example: +% +% \pgfsetplottension{0.2} + +\def\pgfsetplottension#1{% + \pgf@x=#1pt\relax% + \pgf@x=0.2775\pgf@x\relax% + \edef\pgf@plottension{\pgf@sys@tonumber\pgf@x}} +\pgfsetplottension{0.5} + + +% This handler converts the plot stream command into a curveto +% command that is closed using a closepath. +% +% Example: +% +% \pgfpathmoveto{\pgfpointorigin} +% \pgfplothandlerclosedcurve +% \pgfplotxyfile{mytable} + +\def\pgfplothandlerclosedcurve{% + \def\pgf@plotstreamstart{% + \global\let\pgf@plotstreampoint=\pgf@plot@closedcurve@handler@initial% + \global\let\pgf@plotstreamspecial=\@gobble% + \global\let\pgf@plotstreamend=\pgf@plot@closedcurve@handler@finish% + }% +} + +\def\pgf@plot@closedcurve@handler@initial#1{% + \pgf@process{#1}% + \pgf@xa=\pgf@x% + \pgf@ya=\pgf@y% + \xdef\pgf@plot@closedcurve@initial{\noexpand\pgfpoint{\the\pgf@xa}{\the\pgf@ya}}% + \global\let\pgf@plotstreampoint=\pgf@plot@closedcurve@handler@second% + \global\pgf@plot@startedfalse% +} + +\def\pgf@plot@closedcurve@handler@second#1{% + \pgf@process{#1}% + \xdef\pgf@plot@closedcurve@after@initial{\noexpand\pgfpoint{\the\pgf@x}{\the\pgf@y}}% + {\pgfpathmoveto{}}% + \global\let\pgf@plotstreampoint=\pgf@plot@closedcurve@handler@third% +} + +\def\pgf@plot@closedcurve@handler@third#1{% + \global\pgf@plot@startedtrue% + \pgf@process{#1}% + \xdef\pgf@plot@closedcurve@current{\noexpand\pgfpoint{\the\pgf@x}{\the\pgf@y}}% + % compute difference vector: + \pgf@xa=\pgf@x% + \pgf@ya=\pgf@y% + \pgf@process{\pgf@plot@closedcurve@initial} + \advance\pgf@xa by-\pgf@x% + \advance\pgf@ya by-\pgf@y% + % compute support directions: + \pgf@xa=\pgf@plottension\pgf@xa% + \pgf@ya=\pgf@plottension\pgf@ya% + % first marshal: + \pgf@process{\pgf@plot@closedcurve@after@initial}% + \pgf@xb=\pgf@x% + \pgf@yb=\pgf@y% + \pgf@xc=\pgf@x% + \pgf@yc=\pgf@y% + \advance\pgf@xb by-\pgf@xa% + \advance\pgf@yb by-\pgf@ya% + \advance\pgf@xc by\pgf@xa% + \advance\pgf@yc by\pgf@ya% + \global\let\pgf@plot@closedcurve@first=\pgf@plot@closedcurve@after@initial% + \global\let\pgf@plot@closedcurve@second=\pgf@plot@closedcurve@current% + \xdef\pgf@plot@closedcurve@after@initial@presupport{\noexpand\pgfpoint{\the\pgf@xb}{\the\pgf@yb}}% + \xdef\pgf@plot@closedcurve@first@support{\noexpand\pgfpoint{\the\pgf@xc}{\the\pgf@yc}}% + \global\let\pgf@plotstreampoint=\pgf@plot@closedcurve@handler@fourth% +} + +\def\pgf@plot@closedcurve@handler@fourth#1{% + \pgf@process{#1}% + \xdef\pgf@plot@closedcurve@current{\noexpand\pgfpoint{\the\pgf@x}{\the\pgf@y}}% + % compute difference vector: + \pgf@xa=\pgf@x% + \pgf@ya=\pgf@y% + \pgf@process{\pgf@plot@closedcurve@first} + \advance\pgf@xa by-\pgf@x% + \advance\pgf@ya by-\pgf@y% + % compute support directions: + \pgf@xa=\pgf@plottension\pgf@xa% + \pgf@ya=\pgf@plottension\pgf@ya% + % first marshal: + \pgf@process{\pgf@plot@closedcurve@second}% + \pgf@xb=\pgf@x% + \pgf@yb=\pgf@y% + \pgf@xc=\pgf@x% + \pgf@yc=\pgf@y% + \advance\pgf@xb by-\pgf@xa% + \advance\pgf@yb by-\pgf@ya% + \advance\pgf@xc by\pgf@xa% + \advance\pgf@yc by\pgf@ya% + \edef\pgf@marshal{\noexpand\pgfpathcurveto{\noexpand\pgf@plot@closedcurve@first@support}% + {\noexpand\pgfpoint{\the\pgf@xb}{\the\pgf@yb}}{\noexpand\pgf@plot@closedcurve@second}}% + {\pgf@marshal}% + % Prepare next: + \global\let\pgf@plot@closedcurve@first=\pgf@plot@closedcurve@second% + \global\let\pgf@plot@closedcurve@second=\pgf@plot@closedcurve@current% + \xdef\pgf@plot@closedcurve@first@support{\noexpand\pgfpoint{\the\pgf@xc}{\the\pgf@yc}}% +} + +\def\pgf@plot@closedcurve@handler@finish{% + \ifpgf@plot@started + % + % first, draw line from 2nd last to last: + % + \pgf@process{\pgf@plot@closedcurve@initial}% + % compute difference vector: + \pgf@xa=\pgf@x% + \pgf@ya=\pgf@y% + \pgf@process{\pgf@plot@closedcurve@first}% + \advance\pgf@xa by-\pgf@x% + \advance\pgf@ya by-\pgf@y% + % compute support directions: + \pgf@xa=\pgf@plottension\pgf@xa% + \pgf@ya=\pgf@plottension\pgf@ya% + % first marshal: + \pgf@process{\pgf@plot@closedcurve@second}% + \pgf@xb=\pgf@x% + \pgf@yb=\pgf@y% + \pgf@xc=\pgf@x% + \pgf@yc=\pgf@y% + \advance\pgf@xb by-\pgf@xa% + \advance\pgf@yb by-\pgf@ya% + \advance\pgf@xc by\pgf@xa% + \advance\pgf@yc by\pgf@ya% + \edef\pgf@marshal{\noexpand\pgfpathcurveto{\noexpand\pgf@plot@closedcurve@first@support}% + {\noexpand\pgfpoint{\the\pgf@xb}{\the\pgf@yb}}{\noexpand\pgf@plot@closedcurve@second}}% + {\pgf@marshal}% + \xdef\pgf@plot@closedcurve@first@support{\noexpand\pgfpoint{\the\pgf@xc}{\the\pgf@yc}}% + % + % second, draw line from last point to start: + % + \pgf@process{\pgf@plot@closedcurve@after@initial}% + % compute difference vector: + \pgf@xa=\pgf@x% + \pgf@ya=\pgf@y% + \pgf@process{\pgf@plot@closedcurve@second}% + \advance\pgf@xa by-\pgf@x% + \advance\pgf@ya by-\pgf@y% + % compute support directions: + \pgf@xa=\pgf@plottension\pgf@xa% + \pgf@ya=\pgf@plottension\pgf@ya% + % first marshal: + \pgf@process{\pgf@plot@closedcurve@initial}% + \pgf@xb=\pgf@x% + \pgf@yb=\pgf@y% + \pgf@xc=\pgf@x% + \pgf@yc=\pgf@y% + \advance\pgf@xb by-\pgf@xa% + \advance\pgf@yb by-\pgf@ya% + \advance\pgf@xc by\pgf@xa% + \advance\pgf@yc by\pgf@ya% + \edef\pgf@marshal{\noexpand\pgfpathcurveto{\noexpand\pgf@plot@closedcurve@first@support}% + {\noexpand\pgfpoint{\the\pgf@xb}{\the\pgf@yb}}{\noexpand\pgf@plot@closedcurve@initial}}% + {\pgf@marshal}% + % + % third, draw line from first to second point: + % + \edef\pgf@marshal{\noexpand\pgfpathcurveto{\noexpand\pgfpoint{\the\pgf@xc}{\the\pgf@yc}}% + {\noexpand\pgf@plot@closedcurve@after@initial@presupport}{\noexpand\pgf@plot@closedcurve@after@initial}}% + {\pgf@marshal}% + \pgfpathclose% + \fi% +} + + + + + +% This handler converts each point in a stream into a line from the +% $y$-axis to the given points coordinate, resulting in a +% ``comb.'' +% +% Example: +% +% \pgfplothandlerxcomb +% \pgfplotxyfile{mytable} + +\def\pgfplothandlerxcomb{% + \def\pgf@plotstreamstart{% + \global\let\pgf@plotstreampoint=\pgf@plot@xcomb@handler% + \global\let\pgf@plotstreamspecial=\@gobble% + \global\let\pgf@plotstreamend=\relax% + }% +} + +\def\pgf@plot@xcomb@handler#1{% + \pgf@process{#1}% + \pgf@xa=\pgf@x% + \pgf@ya=\pgf@y% + \pgfpathmoveto{\pgfpoint{0pt}{\pgf@ya}}% + \pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@ya}}% +} + + +% This handler converts each point in a stream into a line from the +% $x$-axis straight up to the given points coordinate, resulting in a +% ``comb.'' +% +% Example: +% +% \pgfplothandlerycomb +% \pgfplotxyfile{mytable} + +\def\pgfplothandlerycomb{% + \def\pgf@plotstreamstart{% + \global\let\pgf@plotstreampoint=\pgf@plot@ycomb@handler% + \global\let\pgf@plotstreamspecial=\@gobble% + \global\let\pgf@plotstreamend=\relax% + }% +} + +\def\pgf@plot@ycomb@handler#1{% + \pgf@process{#1}% + \pgf@xa=\pgf@x% + \pgf@ya=\pgf@y% + \pgfpathmoveto{\pgfpoint{\pgf@xa}{0pt}}% + \pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@ya}}% +} + + + + + + +% This handler converts each point in a stream into a line from the +% origin to the point's coordinate, resulting in a ``star''. +% +% Example: +% +% \pgfplothandlerpolarcomb +% \pgfplotxyfile{mytable} + +\def\pgfplothandlerpolarcomb{% + \def\pgf@plotstreamstart{% + \global\let\pgf@plotstreampoint=\pgf@plot@polarcomb@handler% + \global\let\pgf@plotstreamspecial=\@gobble% + \global\let\pgf@plotstreamend=\relax% + }% +} + +\def\pgf@plot@polarcomb@handler#1{% + \pgf@process{#1}% + \pgf@xa=\pgf@x% + \pgf@ya=\pgf@y% + \pgfpathmoveto{\pgfpointorigin}% + \pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@ya}}% +} + + + + +% This handler draws a given mark at each point. +% +% #1 = some code to be executed at each point (with the coordinate +% system translated to that point). +% Typically, this code will be \pgfuseplotmark{whatever}. +% +% Example: +% +% \pgfplothandlermark{\pgfuseplotmark{*}} +% \pgfplotxyfile{mytable} + +\def\pgfplothandlermark#1{% + \def\pgf@plot@mark{#1}% + \def\pgf@plotstreamstart{% + \global\let\pgf@plotstreampoint=\pgf@plot@mark@handler% + \global\let\pgf@plotstreamspecial=\@gobble% + \global\let\pgf@plotstreamend=\relax% + }% +} + +\def\pgf@plot@mark@handler#1{% + {\pgftransformshift{#1}\pgf@plot@mark}% +} + + +% Define a new plot mark for use with \pgfplotmark. +% +% #1 = a plot mark mnemonic +% #2 = code for drawing the mark +% +% Example: +% +% \pgfdeclareplotmark{*}{\pgfpathcircle{\pgfpointorigin}{2pt}\pgfusepathqfill} + +\def\pgfdeclareplotmark#1#2{\expandafter\def\csname pgf@plot@mark@#1\endcsname{#2}} + + +% Set the size of plot marks. For circles, this will be the radius, +% for other shapes it should be about half the width/height. +% +% Example: +% +% \pgfsetplotmarksize{1pt} + +\def\pgfsetplotmarksize#1{\setlength\pgfplotmarksize{#1}} + +\newdimen\pgfplotmarksize +\pgfplotmarksize=2pt + + +% Insert a plot mark's code at the origin. +% +% #1 = plot mark mnemonic +% +% Example: +% +% \pgfuseplotmark{*} + +\def\pgfuseplotmark#1{\csname pgf@plot@mark@#1\endcsname} + + +% A stroke-filled circle mark + +\pgfdeclareplotmark{*} +{% + \pgfpathcircle{\pgfpointorigin}{\pgfplotmarksize} + \pgfusepathqfillstroke +} + + +% A plus-sign like mark + +\pgfdeclareplotmark{+} +{% + \pgfpathmoveto{\pgfpoint{-\pgfplotmarksize}{0pt}} + \pgfpathlineto{\pgfpoint{\pgfplotmarksize}{0pt}} + \pgfpathmoveto{\pgfpoint{0pt}{\pgfplotmarksize}} + \pgfpathlineto{\pgfpoint{0pt}{-\pgfplotmarksize}} + \pgfusepathqstroke +} + + +% An x-shaped mark + +\pgfdeclareplotmark{x} +{% + \pgfpathmoveto{\pgfpoint{-.70710678\pgfplotmarksize}{-.70710678\pgfplotmarksize}} + \pgfpathlineto{\pgfpoint{.70710678\pgfplotmarksize}{.70710678\pgfplotmarksize}} + \pgfpathmoveto{\pgfpoint{-.70710678\pgfplotmarksize}{.70710678\pgfplotmarksize}} + \pgfpathlineto{\pgfpoint{.70710678\pgfplotmarksize}{-.70710678\pgfplotmarksize}} + \pgfusepathqstroke +} + +% See pgflibraryplotmarks for more plot marks + + + + + + +\endinput diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryplotmarks.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryplotmarks.code.tex new file mode 100644 index 00000000000..760998738b4 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryplotmarks.code.tex @@ -0,0 +1,208 @@ +\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibraryplotmarks.code.tex,v 1.2 2005/07/06 15:58:57 tantau Exp $ + +% Copyright 2005 by Till Tantau <tantau@cs.tu-berlin.de>. +% +% This program can be redistributed and/or modified under the terms +% of the GNU Public License, version 2. + + +% A stroked circle mark + +\pgfdeclareplotmark{o} +{% + \pgfpathcircle{\pgfpointorigin}{\pgfplotmarksize} + \pgfusepathqstroke +} + + + +% A six-pointed star mark + +\pgfdeclareplotmark{asterisk} +{% + \pgfpathmoveto{\pgfpoint{0pt}{-\pgfplotmarksize}} + \pgfpathlineto{\pgfpoint{0pt}{\pgfplotmarksize}} + \pgfpathmoveto{\pgfpointpolar{30}{\pgfplotmarksize}} + \pgfpathlineto{\pgfpointpolar{210}{\pgfplotmarksize}} + \pgfpathmoveto{\pgfpointpolar{-30}{\pgfplotmarksize}} + \pgfpathlineto{\pgfpointpolar{-210}{\pgfplotmarksize}} + \pgfusepathqstroke +} + + +% A five-pointed star mark + +\pgfdeclareplotmark{star} +{% + \pgfpathmoveto{\pgfpointorigin}\pgfpathlineto{\pgfpoint{0pt}{\pgfplotmarksize}} + \pgfpathmoveto{\pgfpointorigin}\pgfpathlineto{\pgfpointpolar{18}{\pgfplotmarksize}} + \pgfpathmoveto{\pgfpointorigin}\pgfpathlineto{\pgfpointpolar{-54}{\pgfplotmarksize}} + \pgfpathmoveto{\pgfpointorigin}\pgfpathlineto{\pgfpointpolar{234}{\pgfplotmarksize}} + \pgfpathmoveto{\pgfpointorigin}\pgfpathlineto{\pgfpointpolar{162}{\pgfplotmarksize}} + \pgfusepathqstroke +} + + +% An \oplus mark + +\pgfdeclareplotmark{oplus} +{% + \pgfpathcircle{\pgfpointorigin}{\pgfplotmarksize} + \pgfpathmoveto{\pgfpoint{-\pgfplotmarksize}{0pt}} + \pgfpathlineto{\pgfpoint{\pgfplotmarksize}{0pt}} + \pgfpathmoveto{\pgfpoint{0pt}{\pgfplotmarksize}} + \pgfpathlineto{\pgfpoint{0pt}{-\pgfplotmarksize}} + \pgfusepathqstroke +} + +\pgfdeclareplotmark{oplus*} +{% + \pgfpathcircle{\pgfpointorigin}{\pgfplotmarksize} + \pgfpathmoveto{\pgfpoint{-\pgfplotmarksize}{0pt}} + \pgfpathlineto{\pgfpoint{\pgfplotmarksize}{0pt}} + \pgfpathmoveto{\pgfpoint{0pt}{\pgfplotmarksize}} + \pgfpathlineto{\pgfpoint{0pt}{-\pgfplotmarksize}} + \pgfusepathqfillstroke +} + + +% An \otimes mark + +\pgfdeclareplotmark{otimes} +{% + \pgfpathcircle{\pgfpointorigin}{\pgfplotmarksize} + \pgfpathmoveto{\pgfpoint{-.70710678\pgfplotmarksize}{-.70710678\pgfplotmarksize}} + \pgfpathlineto{\pgfpoint{.70710678\pgfplotmarksize}{.70710678\pgfplotmarksize}} + \pgfpathmoveto{\pgfpoint{-.70710678\pgfplotmarksize}{.70710678\pgfplotmarksize}} + \pgfpathlineto{\pgfpoint{.70710678\pgfplotmarksize}{-.70710678\pgfplotmarksize}} + \pgfusepathqstroke +} + +\pgfdeclareplotmark{otimes*} +{% + \pgfpathcircle{\pgfpointorigin}{\pgfplotmarksize} + \pgfpathmoveto{\pgfpoint{-.70710678\pgfplotmarksize}{-.70710678\pgfplotmarksize}} + \pgfpathlineto{\pgfpoint{.70710678\pgfplotmarksize}{.70710678\pgfplotmarksize}} + \pgfpathmoveto{\pgfpoint{-.70710678\pgfplotmarksize}{.70710678\pgfplotmarksize}} + \pgfpathlineto{\pgfpoint{.70710678\pgfplotmarksize}{-.70710678\pgfplotmarksize}} + \pgfusepathqfillstroke +} + + +% A vertical bar mark + +\pgfdeclareplotmark{|} +{% + \pgfpathmoveto{\pgfpoint{0pt}{\pgfplotmarksize}} + \pgfpathlineto{\pgfpoint{0pt}{-\pgfplotmarksize}} + \pgfusepathqstroke +} + + + +% A horizontal bar mark + +\pgfdeclareplotmark{-} +{% + \pgfpathmoveto{\pgfpoint{\pgfplotmarksize}{0pt}} + \pgfpathlineto{\pgfpoint{-\pgfplotmarksize}{0pt}} + \pgfusepathqstroke +} + + +% A square stroked mark + +\pgfdeclareplotmark{square} +{% + \pgfpathrectangle{\pgfpoint{-\pgfplotmarksize}{-\pgfplotmarksize}}{\pgfpoint{2\pgfplotmarksize}{2\pgfplotmarksize}}% + \pgfusepathqstroke +} + +% A square stroked-filled mark + +\pgfdeclareplotmark{square*} +{% + \pgfpathrectangle{\pgfpoint{-\pgfplotmarksize}{-\pgfplotmarksize}}{\pgfpoint{2\pgfplotmarksize}{2\pgfplotmarksize}}% + \pgfusepathqfillstroke +} + + +% A triangle mark + +\pgfdeclareplotmark{triangle} +{% + \pgfpathmoveto{\pgfpoint{0pt}{\pgfplotmarksize}} + \pgfpathlineto{\pgfpointpolar{-30}{\pgfplotmarksize}} + \pgfpathlineto{\pgfpointpolar{-150}{\pgfplotmarksize}} + \pgfpathclose + \pgfusepathqstroke +} + + +% A stroke-filled triangle mark + +\pgfdeclareplotmark{triangle*} +{% + \pgfpathmoveto{\pgfpoint{0pt}{\pgfplotmarksize}} + \pgfpathlineto{\pgfpointpolar{-30}{\pgfplotmarksize}} + \pgfpathlineto{\pgfpointpolar{-150}{\pgfplotmarksize}} + \pgfpathclose + \pgfusepathqfillstroke +} + + + +% A diamond-shaped mark + +\pgfdeclareplotmark{diamond} +{% + \pgfpathmoveto{\pgfpoint{0pt}{\pgfplotmarksize}} + \pgfpathlineto{\pgfpoint{.75\pgfplotmarksize}{0pt}} + \pgfpathlineto{\pgfpoint{0pt}{-\pgfplotmarksize}} + \pgfpathlineto{\pgfpoint{-.75\pgfplotmarksize}{0pt}} + \pgfpathclose + \pgfusepathqstroke +} + + +% A stroke-filled diamond-shaped mark + +\pgfdeclareplotmark{diamond*} +{% + \pgfpathmoveto{\pgfpoint{0pt}{\pgfplotmarksize}} + \pgfpathlineto{\pgfpoint{.75\pgfplotmarksize}{0pt}} + \pgfpathlineto{\pgfpoint{0pt}{-\pgfplotmarksize}} + \pgfpathlineto{\pgfpoint{-.75\pgfplotmarksize}{0pt}} + \pgfpathclose + \pgfusepathqfillstroke +} + + + +% A pentagon-shaped mark + +\pgfdeclareplotmark{pentagon} +{% + \pgfpathmoveto{\pgfpoint{0pt}{\pgfplotmarksize}} + \pgfpathlineto{\pgfpointpolar{18}{\pgfplotmarksize}} + \pgfpathlineto{\pgfpointpolar{-54}{\pgfplotmarksize}} + \pgfpathlineto{\pgfpointpolar{234}{\pgfplotmarksize}} + \pgfpathlineto{\pgfpointpolar{162}{\pgfplotmarksize}} + \pgfpathclose + \pgfusepathqstroke +} + +% A stroke-filled pentagon-shaped mark + +\pgfdeclareplotmark{pentagon*} +{% + \pgfpathmoveto{\pgfpoint{0pt}{\pgfplotmarksize}} + \pgfpathlineto{\pgfpointpolar{18}{\pgfplotmarksize}} + \pgfpathlineto{\pgfpointpolar{-54}{\pgfplotmarksize}} + \pgfpathlineto{\pgfpointpolar{234}{\pgfplotmarksize}} + \pgfpathlineto{\pgfpointpolar{162}{\pgfplotmarksize}} + \pgfpathclose + \pgfusepathqfillstroke +} + +\endinput diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.code.tex new file mode 100644 index 00000000000..2c777ef5504 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.code.tex @@ -0,0 +1,289 @@ +\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibraryshapes.code.tex,v 1.5 2005/10/13 10:12:31 tantau Exp $ + +% Copyright 2005 by Till Tantau <tantau@cs.tu-berlin.de>. +% +% This program can be redistributed and/or modified under the terms +% of the GNU Public License, version 2. + + +\pgfdeclareshape{ellipse} +% +% Draws a circle around the text +% +{ + \savedanchor\centerpoint{% + \pgf@x=.5\wd\pgfnodeparttextbox% + \pgf@y=.5\ht\pgfnodeparttextbox% + \advance\pgf@y by-.5\dp\pgfnodeparttextbox% + } + \savedanchor\radius{% + % + % Caculate ``height radius'' + % + \pgf@y=.5\ht\pgfnodeparttextbox% + \advance\pgf@y by.5\dp\pgfnodeparttextbox% + \setlength\pgf@yb{\pgfshapeinnerysep}% + \advance\pgf@y by\pgf@yb% + % + % Caculate ``width radius'' + % + \pgf@x=.5\wd\pgfnodeparttextbox% + \setlength\pgf@xb{\pgfshapeinnerxsep}% + \advance\pgf@x by\pgf@xb% + % + % Adjust + % + \pgf@x=1.4142136\pgf@x% + \pgf@y=1.4142136\pgf@y% + % + % Adjust hieght, if necessary + % + \setlength\pgf@yc{\pgfshapeminheight}% + \ifdim\pgf@y<.5\pgf@yc% + \pgf@y=.5\pgf@yc% + \fi% + % + % Adjust width, if necessary + % + \setlength\pgf@xc{\pgfshapeminwidth}% + \ifdim\pgf@x<.5\pgf@xc% + \pgf@x=.5\pgf@xc% + \fi% + % + % Add outer sep + % + \setlength{\pgf@xb}{\pgfshapeouterxsep}% + \setlength{\pgf@yb}{\pgfshapeouterysep}% + \advance\pgf@x by\pgf@xb% + \advance\pgf@y by\pgf@yb% + } + + % + % Anchors + % + \anchor{center}{\centerpoint} + \anchor{mid}{\centerpoint\setlength\pgf@y{.5ex}} + \anchor{base}{\centerpoint\pgf@y=0pt} + \anchor{north} + { + \pgf@process{\radius} + \pgf@ya=\pgf@y% + \pgf@process{\centerpoint} + \advance\pgf@y by\pgf@ya + } + \anchor{south} + { + \pgf@process{\radius} + \pgf@ya=\pgf@y% + \pgf@process{\centerpoint} + \advance\pgf@y by-\pgf@ya + } + \anchor{west} + { + \pgf@process{\radius} + \pgf@xa=\pgf@x% + \pgf@process{\centerpoint} + \advance\pgf@x by-\pgf@xa + } + \anchor{mid west} + {% + \pgf@process{\radius} + \pgf@xa=\pgf@x% + \pgf@process{\centerpoint} + \advance\pgf@x by-\pgf@xa% + \setlength\pgf@y{.5ex} + } + \anchor{base west} + {% + \pgf@process{\radius} + \pgf@xa=\pgf@x% + \pgf@process{\centerpoint} + \advance\pgf@x by-\pgf@xa% + \pgf@y=0pt + } + \anchor{north west} + { + \pgf@process{\radius} + \pgf@xa=\pgf@x% + \pgf@ya=\pgf@y% + \pgf@process{\centerpoint} + \advance\pgf@x by-0.707107\pgf@xa + \advance\pgf@y by0.707107\pgf@ya + } + \anchor{south west} + { + \pgf@process{\radius} + \pgf@xa=\pgf@x% + \pgf@ya=\pgf@y% + \pgf@process{\centerpoint} + \advance\pgf@x by-0.707107\pgf@xa + \advance\pgf@y by-0.707107\pgf@ya + } + \anchor{east} + {% + \pgf@process{\radius} + \pgf@xa=\pgf@x% + \pgf@process{\centerpoint} + \advance\pgf@x by\pgf@xa + } + \anchor{mid east} + {% + \pgf@process{\radius} + \pgf@xa=\pgf@x% + \pgf@process{\centerpoint} + \advance\pgf@x by\pgf@xa% + \setlength\pgf@y{.5ex} + } + \anchor{base east} + {% + \pgf@process{\radius} + \pgf@xa=\pgf@x% + \pgf@process{\centerpoint} + \advance\pgf@x by\pgf@xa% + \pgf@y=0pt + } + \anchor{north east} + { + \pgf@process{\radius} + \pgf@xa=\pgf@x% + \pgf@ya=\pgf@y% + \pgf@process{\centerpoint} + \advance\pgf@x by0.707107\pgf@xa + \advance\pgf@y by0.707107\pgf@ya + } + \anchor{south east} + { + \pgf@process{\radius} + \pgf@xa=\pgf@x% + \pgf@ya=\pgf@y% + \pgf@process{\centerpoint} + \advance\pgf@x by0.707107\pgf@xa + \advance\pgf@y by-0.707107\pgf@ya + } + \anchorborder{ + \edef\pgf@marshal{% + \noexpand\pgfpointborderellipse + {\noexpand\pgfpoint{\the\pgf@x}{\the\pgf@y}} + {\noexpand\radius}% + }% + \pgf@marshal% + \pgf@xa=\pgf@x% + \pgf@ya=\pgf@y% + \centerpoint% + \advance\pgf@x by\pgf@xa% + \advance\pgf@y by\pgf@ya% + } + + % + % Background path + % + \backgroundpath + { + \pgf@process{\radius}% + \@tempdima=\pgf@x% + \@tempdimb=\pgf@y% + \setlength{\pgf@xb}{\pgfshapeouterxsep}% + \setlength{\pgf@yb}{\pgfshapeouterysep}% + \advance\@tempdima by-\pgf@xb% + \advance\@tempdimb by-\pgf@yb% + \pgfpathellipse{\centerpoint}{\pgfpoint{\@tempdima}{0pt}}{\pgfpoint{0pt}{\@tempdimb}}% + } +} + + +\pgfdeclareshape{cross out} +{ + \inheritsavedanchors[from=rectangle] % this is nearly a rectangle + \inheritanchorborder[from=rectangle] + \inheritanchor[from=rectangle]{north} + \inheritanchor[from=rectangle]{north west} + \inheritanchor[from=rectangle]{north east} + \inheritanchor[from=rectangle]{center} + \inheritanchor[from=rectangle]{west} + \inheritanchor[from=rectangle]{east} + \inheritanchor[from=rectangle]{mid} + \inheritanchor[from=rectangle]{mid west} + \inheritanchor[from=rectangle]{mid east} + \inheritanchor[from=rectangle]{base} + \inheritanchor[from=rectangle]{base west} + \inheritanchor[from=rectangle]{base east} + \inheritanchor[from=rectangle]{south} + \inheritanchor[from=rectangle]{south west} + \inheritanchor[from=rectangle]{south east} + \foregroundpath{ + % store lower right in xa/ya and upper right in xb/yb + \southwest \pgf@xa=\pgf@x \pgf@ya=\pgf@y + \northeast \pgf@xb=\pgf@x \pgf@yb=\pgf@y + \pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@ya}} + \pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@yb}} + \pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@yb}} + \pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@ya}} + } +} + + +\pgfdeclareshape{strike out} +{ + \inheritsavedanchors[from=rectangle] % this is nearly a rectangle + \inheritanchorborder[from=rectangle] + \inheritanchor[from=rectangle]{north} + \inheritanchor[from=rectangle]{north west} + \inheritanchor[from=rectangle]{north east} + \inheritanchor[from=rectangle]{center} + \inheritanchor[from=rectangle]{west} + \inheritanchor[from=rectangle]{east} + \inheritanchor[from=rectangle]{mid} + \inheritanchor[from=rectangle]{mid west} + \inheritanchor[from=rectangle]{mid east} + \inheritanchor[from=rectangle]{base} + \inheritanchor[from=rectangle]{base west} + \inheritanchor[from=rectangle]{base east} + \inheritanchor[from=rectangle]{south} + \inheritanchor[from=rectangle]{south west} + \inheritanchor[from=rectangle]{south east} + \foregroundpath{ + \pgfpathmoveto{\southwest} + \pgfpathlineto{\northeast} + } +} + + +\pgfdeclareshape{forbidden sign} +{ + \inheritsavedanchors[from=circle] % this is nearly a circle + \inheritanchorborder[from=circle] + \inheritanchor[from=circle]{north} + \inheritanchor[from=circle]{north west} + \inheritanchor[from=circle]{north east} + \inheritanchor[from=circle]{center} + \inheritanchor[from=circle]{west} + \inheritanchor[from=circle]{east} + \inheritanchor[from=circle]{mid} + \inheritanchor[from=circle]{mid west} + \inheritanchor[from=circle]{mid east} + \inheritanchor[from=circle]{base} + \inheritanchor[from=circle]{base west} + \inheritanchor[from=circle]{base east} + \inheritanchor[from=circle]{south} + \inheritanchor[from=circle]{south west} + \inheritanchor[from=circle]{south east} + \inheritbackgroundpath[from=circle] + \foregroundpath{ + \centerpoint% + \pgf@xc=\pgf@x% + \pgf@yc=\pgf@y% + \@tempdima=\radius% + \setlength{\pgf@xb}{\pgfshapeouterxsep}% + \setlength{\pgf@yb}{\pgfshapeouterysep}% + \ifdim\pgf@xb<\pgf@yb% + \advance\@tempdima by-\pgf@yb% + \else% + \advance\@tempdima by-\pgf@xb% + \fi% + \pgfpathmoveto{\pgfpointadd{\pgfpoint{\pgf@xc}{\pgf@yc}}{\pgfpoint{-0.707107\@tempdima}{-0.707107\@tempdima}}} + \pgfpathlineto{\pgfpointadd{\pgfpoint{\pgf@xc}{\pgf@yc}}{\pgfpoint{0.707107\@tempdima}{0.707107\@tempdima}}} + } +} + + +\endinput diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarysnakes.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarysnakes.code.tex new file mode 100644 index 00000000000..3440477499e --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarysnakes.code.tex @@ -0,0 +1,369 @@ +\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarysnakes.code.tex,v 1.9 2005/10/13 10:12:31 tantau Exp $ + +% Copyright 2005 by Till Tantau <tantau@cs.tu-berlin.de>. +% +% This program can be redistributed and/or modified under the terms +% of the GNU Public License, version 2. + + +\newdimen\pgfsnakesegmentamplitude +\newdimen\pgfsnakesegmentlength +\def\pgfsnakesegmentangle{45} +\def\pgfsnakesegmentobjectlength{\pgfsnakesegmentamplitude} +\def\pgfsnakesegmentaspect{0.5} + +\pgfsnakesegmentlength=10pt +\pgfsnakesegmentamplitude=2.5pt + + + +% snake snake +% +% This snake produces a hopefully optically pleasing squiggly snake. +% +% Parameters: \pgfsnakesegmentamplitude, \pgfsnakesegmentlength + +\pgfdeclaresnake{snake}{initial} +{ + \state{initial}[switch if less than=.625\pgfsnakesegmentlength to final, + width=.3125\pgfsnakesegmentlength, + next state=down] + { + \pgfpathcurveto + {\pgfpoint{.125\pgfsnakesegmentlength}{0pt}} + {\pgfpoint{.1875\pgfsnakesegmentlength}{\pgfsnakesegmentamplitude}} + {\pgfpoint{.3125\pgfsnakesegmentlength}{\pgfsnakesegmentamplitude}} + } + \state{down}[switch if less than=.8125\pgfsnakesegmentlength to end down, + width=.5\pgfsnakesegmentlength, + next state=up] + { + \pgfpathcosine{\pgfpoint{.25\pgfsnakesegmentlength}{-\pgfsnakesegmentamplitude}} + \pgfpathsine{\pgfpoint{.25\pgfsnakesegmentlength}{-\pgfsnakesegmentamplitude}} + } + \state{up}[switch if less than=.8125\pgfsnakesegmentlength to end up, + width=.5\pgfsnakesegmentlength, + next state=down] + { + \pgfpathcosine{\pgfpoint{.25\pgfsnakesegmentlength}{\pgfsnakesegmentamplitude}} + \pgfpathsine{\pgfpoint{.25\pgfsnakesegmentlength}{\pgfsnakesegmentamplitude}} + } + \state{end down}[width=.3125\pgfsnakesegmentlength, + next state=final] + { + \pgfpathcurveto + {\pgfpoint{.125\pgfsnakesegmentlength}{\pgfsnakesegmentamplitude}} + {\pgfpoint{.1875\pgfsnakesegmentlength}{0pt}} + {\pgfpoint{.3125\pgfsnakesegmentlength}{0pt}} + } + \state{end up}[width=.3125\pgfsnakesegmentlength, + next state=final] + { + \pgfpathcurveto + {\pgfpoint{.125\pgfsnakesegmentlength}{-\pgfsnakesegmentamplitude}} + {\pgfpoint{.1875\pgfsnakesegmentlength}{0pt}} + {\pgfpoint{.3125\pgfsnakesegmentlength}{0pt}} + } + \state{final} + { \pgfpathlineto{\pgfpoint{\pgfsnakeremainingdistance}{0pt}} } +} + + + + +% zigzag snake +% +% Parameters: \pgfsnakesegmentamplitude, \pgfsnakesegmentlength + +\pgfdeclaresnake{zigzag}{up} +{ + \state{up}[width=.5\pgfsnakesegmentlength,% + next state=down] + { + \pgfpathlineto{\pgfpoint{.25\pgfsnakesegmentlength}{\pgfsnakesegmentamplitude}} + \pgfpathlineto{\pgfpoint{.5\pgfsnakesegmentlength}{0pt}} + } + \state{down}[width=.5\pgfsnakesegmentlength,% + next state=up] + { + \pgfpathlineto{\pgfpoint{.25\pgfsnakesegmentlength}{-\pgfsnakesegmentamplitude}} + \pgfpathlineto{\pgfpoint{.5\pgfsnakesegmentlength}{0pt}} + } + \state{final} + { \pgfpathlineto{\pgfpoint{\pgfsnakeremainingdistance}{0pt}} } +} + + + +% saw snake +% +% Parameters: \pgfsnakesegmentamplitude, \pgfsnakesegmentlength + +\pgfdeclaresnake{saw}{initial} +{ + \state{initial}[width=\pgfsnakesegmentlength] + { + \pgfpathlineto{\pgfpoint{\pgfsnakesegmentlength}{\pgfsnakesegmentamplitude}} + \pgfpathlineto{\pgfpoint{\pgfsnakesegmentlength}{0pt}} + } + \state{final} + { + \pgfpathlineto{\pgfpoint{\pgfsnakeremainingdistance}{0pt}} + } +} + + +% coil snake +% +% Parameters: \pgfsnakesegmentamplitude, \pgfsnakesegmentlength, + +\pgfdeclaresnake{coil}{coil} +{ + \state{coil}[switch if less than=% + 1.5\pgfsnakesegmentlength+% + \pgfsnakesegmentaspect\pgfsnakesegmentamplitude+% + \pgfsnakesegmentaspect\pgfsnakesegmentamplitude to last, + width=\pgfsnakesegmentlength] + { + \pgfpathcurveto + {\pgfpoint@oncoil{0 }{ 0.555}{1}} + {\pgfpoint@oncoil{0.445}{ 1 }{2}} + {\pgfpoint@oncoil{1 }{ 1 }{3}} + \pgfpathcurveto + {\pgfpoint@oncoil{1.555}{ 1 }{4}} + {\pgfpoint@oncoil{2 }{ 0.555}{5}} + {\pgfpoint@oncoil{2 }{ 0 }{6}} + \pgfpathcurveto + {\pgfpoint@oncoil{2 }{-0.555}{7}} + {\pgfpoint@oncoil{1.555}{-1 }{8}} + {\pgfpoint@oncoil{1 }{-1 }{9}} + \pgfpathcurveto + {\pgfpoint@oncoil{0.445}{-1 }{10}} + {\pgfpoint@oncoil{0 }{-0.555}{11}} + {\pgfpoint@oncoil{0 }{ 0 }{12}} + } + \state{last}[width=.5\pgfsnakesegmentlength+% + \pgfsnakesegmentaspect\pgfsnakesegmentamplitude+% + \pgfsnakesegmentaspect\pgfsnakesegmentamplitude,next state=final] + { + \pgfpathcurveto + {\pgfpoint@oncoil{0 }{ 0.555}{1}} + {\pgfpoint@oncoil{0.445}{ 1 }{2}} + {\pgfpoint@oncoil{1 }{ 1 }{3}} + \pgfpathcurveto + {\pgfpoint@oncoil{1.555}{ 1 }{4}} + {\pgfpoint@oncoil{2 }{ 0.555}{5}} + {\pgfpoint@oncoil{2 }{ 0 }{6}} + } + \state{final} + { + \pgfpathlineto{\pgfpoint{\pgfsnakeremainingdistance}{0pt}} + } +} + +\def\pgfpoint@oncoil#1#2#3{% + \pgf@x=#1\pgfsnakesegmentamplitude% + \pgf@x=\pgfsnakesegmentaspect\pgf@x% + \pgf@y=#2\pgfsnakesegmentamplitude% + \pgf@xa=0.083333333333\pgfsnakesegmentlength% + \advance\pgf@x by#3\pgf@xa% +} + + +% bumps snake +% +% Parameters: \pgfsnakesegmentamplitude, \pgfsnakesegmentlength + +\pgfdeclaresnake{bumps}{initial} +{ + \state{initial}[width=.5\pgfsnakesegmentlength] + { + \pgfpathcurveto + {\pgfpoint{0pt}{.555\pgfsnakesegmentamplitude}} + {\pgfpoint{0.11125\pgfsnakesegmentlength}{\pgfsnakesegmentamplitude}} + {\pgfpoint{.25\pgfsnakesegmentlength}{\pgfsnakesegmentamplitude}} + \pgfpathcurveto + {\pgfpoint{.38875\pgfsnakesegmentlength}{\pgfsnakesegmentamplitude}} + {\pgfpoint{.5\pgfsnakesegmentlength}{.5\pgfsnakesegmentamplitude}} + {\pgfpoint{.5\pgfsnakesegmentlength}{0\pgfsnakesegmentamplitude}} + } + \state{final} + { + \pgfpathlineto{\pgfpoint{\pgfsnakeremainingdistance}{0pt}} + } +} + + + +% expanding waves snake +% +% Parameters: \pgfsnakesegmentangle, \pgfsnakesegmentlength + +\pgfdeclaresnake{expanding waves}{initial} +{ + \state{initial}[width=\pgfsnakesegmentlength,next state=wave] + {} + + \state{wave}[switch if less than=\pgfsnakesegmentlength to last, + width=\pgfsnakesegmentlength] + { + \pgfpathmoveto{ + \pgfpointadd + {\pgfpoint{-\pgfsnakecompleteddistance}{0pt}}% + {\pgfpointpolar{\pgfsnakesegmentangle}{\pgfsnakecompleteddistance}}}% + \pgfpatharc{\pgfsnakesegmentangle}{-\pgfsnakesegmentangle}{\pgfsnakecompleteddistance}% + } + \state{last}[width=0pt,next state=final] + { + \pgfpathmoveto{ + \pgfpointadd + {\pgfpoint{-\pgfsnakecompleteddistance}{0pt}}% + {\pgfpointpolar{\pgfsnakesegmentangle}{\pgfsnakecompleteddistance}}}% + \pgfpatharc{\pgfsnakesegmentangle}{-\pgfsnakesegmentangle}{\pgfsnakecompleteddistance}% + } + \state{final} + { + \pgfpathmoveto{\pgfpoint{\pgfsnakeremainingdistance}{0pt}} + } +} + + + +% waves snake +% +% Parameters: \pgfsnakesegmentangle, \pgfsnakesegmentlength + +\pgfdeclaresnake{waves}{wave} +{ + \state{wave}[width=\pgfsnakesegmentlength] + { + \pgftransformxshift{\pgfsnakesegmentlength} + \pgfpathmoveto{ + \pgfpointadd + {\pgfpoint{-\pgfsnakesegmentobjectlength}{0pt}}% + {\pgfpointpolar{\pgfsnakesegmentangle}{\pgfsnakesegmentobjectlength}}}% + \pgfpatharc{\pgfsnakesegmentangle}{-\pgfsnakesegmentangle}{\pgfsnakesegmentobjectlength}% + } + \state{final} + { + \pgfpathmoveto{\pgfpoint{\pgfsnakeremainingdistance}{0pt}} + } +} + + +% triangle snakes +% +% Parameters: \pgfsnakesegmentlength, \pgfsnakeobjectsize, \pgfsnakesegmentamplitude + +\pgfdeclaresnake{triangles}{triangle} +{ + \state{triangle}[switch if less than=\pgfsnakesegmentlength to last, + width=\pgfsnakesegmentlength] + { + \pgfpathmoveto{\pgfpoint{0pt}{\pgfsnakesegmentamplitude}} + \pgfpathlineto{\pgfpoint{\pgfsnakesegmentobjectlength}{0pt}} + \pgfpathlineto{\pgfpoint{0pt}{-\pgfsnakesegmentamplitude}} + \pgfpathclose + } + \state{last}[width=\pgfsnakesegmentobjectlength,next state=final] + { + \pgfpathmoveto{\pgfpoint{0pt}{\pgfsnakesegmentamplitude}} + \pgfpathlineto{\pgfpoint{\pgfsnakesegmentobjectlength}{0pt}} + \pgfpathlineto{\pgfpoint{0pt}{-\pgfsnakesegmentamplitude}} + \pgfpathclose + } + \state{final} + { + \pgfpathmoveto{\pgfpoint{\pgfsnakeremainingdistance}{0pt}} + } +} + + + +% ticks snakes +% +% Parameters: \pgfsnakesegmentlength, \pgfsnakesegmentamplitude + +\pgfdeclaresnake{ticks}{ticks} +{ + \state{ticks}[width=\pgfsnakesegmentlength] + { + \pgfpathmoveto{\pgfpoint{0pt}{\pgfsnakesegmentamplitude}} + \pgfpathlineto{\pgfpoint{0pt}{-\pgfsnakesegmentamplitude}} + } + \state{final} + { + \pgfpathmoveto{\pgfpoint{0pt}{\pgfsnakesegmentamplitude}} + \pgfpathlineto{\pgfpoint{0pt}{-\pgfsnakesegmentamplitude}} + \pgfpathmoveto{\pgfpoint{\pgfsnakeremainingdistance}{0pt}} + } +} + + +% border snake +% +% Parameters: \pgfsnakesegmentlength, \pgfsnakesegmentamplitude, \pgfsnakesegmentangle + +\pgfdeclaresnake{border}{tick} +{ + \state{tick}[switch if less than=\pgfsnakesegmentlength to last, + width=\pgfsnakesegmentlength] + { + \pgfpathmoveto{\pgfpointorigin} + \pgfpathlineto{\pgfpointpolar{\pgfsnakesegmentangle}{\pgfsnakesegmentamplitude}} + } + \state{last}[width=\pgfsnakesegmentamplitude,next state=final] + { + \pgfpathmoveto{\pgfpointorigin} + \pgfpathlineto{\pgfpointpolar{\pgfsnakesegmentangle}{\pgfsnakesegmentamplitude}} + } + \state{final} + { + \pgfpathmoveto{\pgfpoint{\pgfsnakeremainingdistance}{0pt}} + } +} + + + + +% brace snakes +% +% Parameters: \pgfsnakesegmentamplitude + +\pgfdeclaresnake{brace}{brace} +{ + \state{brace}[width=\pgfsnakeremainingdistance,next state=final] + { + \pgfpathmoveto{\pgfpoint{0pt}{0pt}} + \pgfpathcurveto + {\pgfpoint{.15\pgfsnakesegmentamplitude}{.3\pgfsnakesegmentamplitude}} + {\pgfpoint{.5\pgfsnakesegmentamplitude}{.5\pgfsnakesegmentamplitude}} + {\pgfpoint{\pgfsnakesegmentamplitude}{.5\pgfsnakesegmentamplitude}} + { + \pgftransformxshift{\pgfsnakesegmentaspect\pgfsnakeremainingdistance} + \pgfpathlineto{\pgfpoint{-\pgfsnakesegmentamplitude}{.5\pgfsnakesegmentamplitude}} + \pgfpathcurveto + {\pgfpoint{-.5\pgfsnakesegmentamplitude}{.5\pgfsnakesegmentamplitude}} + {\pgfpoint{-.15\pgfsnakesegmentamplitude}{.7\pgfsnakesegmentamplitude}} + {\pgfpoint{0\pgfsnakesegmentamplitude}{1\pgfsnakesegmentamplitude}} + \pgfpathcurveto + {\pgfpoint{.15\pgfsnakesegmentamplitude}{.7\pgfsnakesegmentamplitude}} + {\pgfpoint{.5\pgfsnakesegmentamplitude}{.5\pgfsnakesegmentamplitude}} + {\pgfpoint{\pgfsnakesegmentamplitude}{.5\pgfsnakesegmentamplitude}} + } + { + \pgftransformxshift{\pgfsnakeremainingdistance} + \pgfpathlineto{\pgfpoint{-\pgfsnakesegmentamplitude}{.5\pgfsnakesegmentamplitude}} + \pgfpathcurveto + {\pgfpoint{-.5\pgfsnakesegmentamplitude}{.5\pgfsnakesegmentamplitude}} + {\pgfpoint{-.15\pgfsnakesegmentamplitude}{.3\pgfsnakesegmentamplitude}} + {\pgfpoint{0pt}{0pt}} + } + } + \state{final} + {} +} + + + +\endinput diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzbackgrounds.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzbackgrounds.code.tex new file mode 100644 index 00000000000..260a8f9a28a --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzbackgrounds.code.tex @@ -0,0 +1,131 @@ +\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikzbackgrounds.code.tex,v 1.1 2005/08/13 18:59:56 tantau Exp $ + +% Copyright 2005 by Till Tantau <tantau@cs.tu-berlin.de>. +% +% This program can be redistributed and/or modified under the terms +% of the GNU Public License, version 2. + + +% Layers + +\pgfdeclarelayer{background} +\pgfsetlayers{background,main} + + +% Main style + +\tikzstyle{background rectangle}= [draw] +\tikzstyle{background top}= [draw] +\tikzstyle{background bottom}= [draw] +\tikzstyle{background left}= [draw] +\tikzstyle{background right}= [draw] +\tikzstyle{background grid}= [help lines,draw] + +\define@key{tikz}{inner frame sep}{\def\tikz@framexsep{#1}\def\tikz@frameysep{#1}} +\define@key{tikz}{inner frame xsep}{\def\tikz@framexsep{#1}} +\define@key{tikz}{inerr frame ysep}{\def\tikz@frameysep{#1}} +\def\tikz@framexsep{1ex} +\def\tikz@frameysep{1ex} + +\define@key{tikz}{outer frame sep}{\def\tikz@outerframexsep{#1}\def\tikz@outerframeysep{#1}} +\define@key{tikz}{outer frame xsep}{\def\tikz@outerframexsep{#1}} +\define@key{tikz}{outer frame ysep}{\def\tikz@outerframeysep{#1}} +\def\tikz@outerframexsep{0ex} +\def\tikz@outerframeysep{0ex} + + +% Looseness + +\tikzstyle{loose background}= [inner frame sep=2ex] +\tikzstyle{tight background}= [inner frame sep=0ex] + + + +% Showing background styles + +\tikzstyle{framed}= [style=show background rectangle] +\tikzstyle{gridded}= [style=show background grid] + +\tikzstyle{show background rectangle}=[execute at end picture=\tikz@background@framed] +\tikzstyle{show background top}= [execute at end picture=\tikz@background@top] +\tikzstyle{show background bottom}= [execute at end picture=\tikz@background@bottom] +\tikzstyle{show background left}= [execute at end picture=\tikz@background@left] +\tikzstyle{show background right}= [execute at end picture=\tikz@background@right] +\tikzstyle{show background grid}= [execute at end picture=\tikz@background@grid] + + +% Implementation + +\def\tikz@background@save{% + \ifx\tikz@bg@minx\@undefined% + \pgf@xb=\pgf@picminx% + \pgf@yb=\pgf@picminy% + \pgf@xc=\pgf@picmaxx% + \pgf@yc=\pgf@picmaxy% + \setlength{\pgf@x}{\tikz@framexsep}% + \setlength{\pgf@y}{\tikz@frameysep}% + \advance\pgf@xb by-\pgf@x% + \advance\pgf@yb by-\pgf@y% + \advance\pgf@xc by\pgf@x% + \advance\pgf@yc by\pgf@y% + \edef\tikz@bg@minx{\the\pgf@xb}% + \edef\tikz@bg@miny{\the\pgf@yb}% + \edef\tikz@bg@maxx{\the\pgf@xc}% + \edef\tikz@bg@maxy{\the\pgf@yc}% + \setlength{\pgf@x}{\tikz@outerframexsep}% + \setlength{\pgf@y}{\tikz@outerframeysep}% + \advance\pgf@xb by-\pgf@x% + \advance\pgf@yb by-\pgf@y% + \advance\pgf@xc by\pgf@x% + \advance\pgf@yc by\pgf@y% + \edef\tikz@bg@outerminx{\the\pgf@xb}% + \edef\tikz@bg@outerminy{\the\pgf@yb}% + \edef\tikz@bg@outermaxx{\the\pgf@xc}% + \edef\tikz@bg@outermaxy{\the\pgf@yc}% + \fi% +} + +\def\tikz@background@framed{% + \tikz@background@save% + \pgfonlayer{background} + \path[style=background rectangle] (\tikz@bg@minx,\tikz@bg@miny) rectangle (\tikz@bg@maxx,\tikz@bg@maxy); + \endpgfonlayer +} + +\def\tikz@background@top{% + \tikz@background@save% + \pgfonlayer{background} + \path[style=background top] (\tikz@bg@outerminx,\tikz@bg@maxy) -- (\tikz@bg@outermaxx,\tikz@bg@maxy); + \endpgfonlayer +} + +\def\tikz@background@bottom{% + \tikz@background@save% + \pgfonlayer{background} + \path[style=background bottom] (\tikz@bg@outerminx,\tikz@bg@miny) -- (\tikz@bg@outermaxx,\tikz@bg@miny); + \endpgfonlayer +} + +\def\tikz@background@left{% + \tikz@background@save% + \pgfonlayer{background} + \path[style=background left] (\tikz@bg@minx,\tikz@bg@outerminy) -- (\tikz@bg@minx,\tikz@bg@outermaxy); + \endpgfonlayer +} + +\def\tikz@background@right{% + \tikz@background@save% + \pgfonlayer{background} + \path[style=background right] (\tikz@bg@maxx,\tikz@bg@outerminy) -- (\tikz@bg@maxx,\tikz@bg@outermaxy); + \endpgfonlayer +} + +\def\tikz@background@grid{% + \tikz@background@save% + \pgfonlayer{background} + \path[style=background grid] (\tikz@bg@minx,\tikz@bg@miny) grid (\tikz@bg@maxx,\tikz@bg@maxy); + \endpgfonlayer +} + + +\endinput diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikztrees.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikztrees.code.tex new file mode 100644 index 00000000000..8f472237604 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikztrees.code.tex @@ -0,0 +1,94 @@ +\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikztrees.code.tex,v 1.4 2005/09/02 16:05:44 tantau Exp $ + +% Copyright 2005 by Till Tantau <tantau@cs.tu-berlin.de>. +% +% This program can be redistributed and/or modified under the terms +% of the GNU Public License, version 2. + + + + +% +% Three point growth +% + +\define@key{tikz}{grow via three points}{\let\tikz@grow=\tikz@grow@three\tikz@parse@three#1} + +\def\tikz@parse@three one child at#1(#2)#3and two children at#4(#5)#6and#7(#8){% + \def\tikz@tree@one@child{\tikz@scan@one@point\pgf@process(#2)} + \def\tikz@tree@left@child{\tikz@scan@one@point\pgf@process(#5)} + \def\tikz@tree@right@child{\tikz@scan@one@point\pgf@process(#8)} +} + +\def\tikz@grow@three{% + \pgf@process{\tikz@tree@one@child}% + \pgf@xa=\pgf@x% + \pgf@ya=\pgf@y% + \pgf@process{\tikz@tree@left@child}% + \pgf@xb=\pgf@x% + \pgf@yb=\pgf@y% + \advance\pgf@xb by-\pgf@xa% + \advance\pgf@yb by-\pgf@ya% + \pgf@process{\tikz@tree@right@child}% + \pgf@xc=\pgf@x% + \pgf@yc=\pgf@y% + \advance\pgf@xc by-\pgf@xa% + \advance\pgf@yc by-\pgf@ya% + \advance\pgf@xc by-\pgf@xb% + \advance\pgf@yc by-\pgf@yb% + \advance\tikznumberofchildren by-1\relax% + \pgf@xb=\tikznumberofchildren\pgf@xb\relax% + \pgf@yb=\tikznumberofchildren\pgf@yb\relax% + \advance\tikznumberofcurrentchild by-1\relax% + \pgf@xc=\tikznumberofcurrentchild\pgf@xc\relax% + \pgf@yc=\tikznumberofcurrentchild\pgf@yc\relax% + \advance\pgf@xa by\pgf@xb% + \advance\pgf@xa by\pgf@xc% + \advance\pgf@ya by\pgf@yb% + \advance\pgf@ya by\pgf@yc% + \edef\pgf@temp{\noexpand\pgftransformshift{\noexpand\pgfpoint{\the\pgf@xa}{\the\pgf@ya}}}% + \pgf@temp% +} + +% +% Circle grow +% + +\tikzstyle{grow cyclic}=[growth function=\tikz@grow@circle] + +\define@key{tikz}{sibling angle}{\edef\tikz@sibling@angle{#1}} +\def\tikz@sibling@angle{20} + +\def\tikz@grow@circle{% + \c@pgf@counta=\tikz@sibling@angle\relax% + \c@pgf@countb=\tikz@sibling@angle\relax% + \divide\c@pgf@counta by2\relax% + \multiply\c@pgf@countb by\tikznumberofcurrentchild\relax% + \c@pgf@countc=-\c@pgf@counta\relax + \multiply\c@pgf@countc by\tikznumberofchildren\relax% + \advance\c@pgf@countc by-\c@pgf@counta\relax + \advance\c@pgf@countc by\c@pgf@countb\relax + \pgftransformrotate{\the\c@pgf@countc}% + \pgftransformxshift{\the\tikzleveldistance}% +} + + +% +% Connections +% + +\tikzstyle{edge from parent fork down}= + [edge from parent path={(\tikzparentnode\tikzparentanchor) -- +(0pt,-.5\tikzleveldistance) -| (\tikzchildnode\tikzchildanchor)}] + +\tikzstyle{edge from parent fork up}= + [edge from parent path={(\tikzparentnode\tikzparentanchor) -- +(0pt,.5\tikzleveldistance) -| (\tikzchildnode\tikzchildanchor)}] + +\tikzstyle{edge from parent fork left}= + [edge from parent path={(\tikzparentnode\tikzparentanchor) -- +(-.5\tikzleveldistance,0pt) |- (\tikzchildnode\tikzchildanchor)}] + +\tikzstyle{edge from parent fork right}= + [edge from parent path={(\tikzparentnode\tikzparentanchor) -- +(.5\tikzleveldistance,0pt) |- (\tikzchildnode\tikzchildanchor)}] + + + +\endinput |