From 237df1eb06d422ff243a05b9a25501ba287681c1 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 15 Oct 2006 22:37:32 +0000 Subject: pgf/tikz 1.09 big update (13oct06) git-svn-id: svn://tug.org/texlive/trunk@2332 c570f23f-e606-0410-a88d-b1316a301751 --- .../pgf/libraries/pgflibraryarrows.code.tex | 46 ++- .../pgf/libraries/pgflibraryautomata.code.tex | 189 ----------- .../pgf/libraries/pgflibrarypatterns.code.tex | 140 ++++++++ .../pgf/libraries/pgflibraryplothandlers.code.tex | 92 ++++- .../pgf/libraries/pgflibraryplotmarks.code.tex | 14 +- .../pgf/libraries/pgflibraryshapes.code.tex | 300 +++++++++++++++- .../pgf/libraries/pgflibrarysnakes.code.tex | 65 +++- .../pgf/libraries/pgflibrarytikz3d.code.tex | 105 ++++++ .../pgf/libraries/pgflibrarytikzarrows.code.tex | 14 + .../pgf/libraries/pgflibrarytikzautomata.code.tex | 102 ++++++ .../libraries/pgflibrarytikzbackgrounds.code.tex | 14 +- .../pgf/libraries/pgflibrarytikzer.code.tex | 39 +++ .../pgf/libraries/pgflibrarytikzmindmap.code.tex | 320 +++++++++++++++++ .../pgf/libraries/pgflibrarytikzpatterns.code.tex | 14 + .../pgf/libraries/pgflibrarytikzpetri.code.tex | 146 ++++++++ .../libraries/pgflibrarytikzplothandlers.code.tex | 14 + .../pgf/libraries/pgflibrarytikzplotmarks.code.tex | 14 + .../pgf/libraries/pgflibrarytikzshapes.code.tex | 14 + .../pgf/libraries/pgflibrarytikzsnakes.code.tex | 14 + .../pgf/libraries/pgflibrarytikztopaths.code.tex | 378 +++++++++++++++++++++ .../pgf/libraries/pgflibrarytikztrees.code.tex | 34 +- 21 files changed, 1838 insertions(+), 230 deletions(-) delete mode 100644 Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryautomata.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarypatterns.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikz3d.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzarrows.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzautomata.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzer.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzmindmap.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzpatterns.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzpetri.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzplothandlers.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzplotmarks.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzshapes.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzsnakes.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikztopaths.code.tex (limited to 'Master/texmf-dist/tex/generic/pgf/libraries') diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.code.tex index e953e2d28b1..a0b9a108d60 100644 --- a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.code.tex @@ -1,9 +1,13 @@ -\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 . +% Copyright 2006 by Till Tantau +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. % -% This program can be redistributed and/or modified under the terms -% of the GNU Public License, version 2. +% See the file doc/generic/pgf/licenses/LICENSE for more details. + +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibraryarrows.code.tex,v 1.5 2006/10/11 15:22:26 tantau Exp $ % A square bracket shaped arrow @@ -703,6 +707,38 @@ \pgfarrowsdeclarereversed{hooks reversed}{hooks reversed}{hooks}{hooks} +% An arrow that looks like a serif of the computer modern font + +\pgfarrowsdeclare{serif cm}{serif cm} +{ + \@tempdima=0.4pt% + \advance\@tempdima by.45\pgflinewidth% + \pgfarrowsleftextend{-.75\@tempdima} + \pgfarrowsrightextend{.04\pgflinewidth} +} +{ + \@tempdima=0.4pt% + \advance\@tempdima by.45\pgflinewidth% + \pgftransformxshift{.04\pgflinewidth} + \pgfpathmoveto{\pgfpoint{-.75\@tempdima}{.5\pgflinewidth}} + \pgfpathcurveto + {\pgfpoint{-.375\@tempdima}{.5\pgflinewidth}} + {\pgfpoint{-.375\@tempdima}{.7\pgflinewidth}} + {\pgfpoint{-.375\@tempdima}{1.95\@tempdima}} + \pgfpathlineto{\pgfpoint{0pt}{1.95\@tempdima}} + \pgfpathcurveto + {\pgfpoint{-.04\pgflinewidth}{.5\@tempdima}} + {\pgfpoint{-.04\pgflinewidth}{-.5\@tempdima}} + {\pgfpoint{0pt}{-1.95\@tempdima}} + \pgfpathlineto{\pgfpoint{-.375\@tempdima}{-1.95\@tempdima}} + \pgfpathcurveto + {\pgfpoint{-.375\@tempdima}{-.7\pgflinewidth}} + {\pgfpoint{-.375\@tempdima}{-.5\pgflinewidth}} + {\pgfpoint{-.75\@tempdima}{-.5\pgflinewidth}} + \pgfpathclose + \pgfusepathqfill +} + % Round cap diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryautomata.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryautomata.code.tex deleted file mode 100644 index be801d0a7df..00000000000 --- a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryautomata.code.tex +++ /dev/null @@ -1,189 +0,0 @@ -\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 . -% -% 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/pgflibrarypatterns.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarypatterns.code.tex new file mode 100644 index 00000000000..aebb9fb5ce6 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarypatterns.code.tex @@ -0,0 +1,140 @@ +% Copyright 2006 by Till Tantau +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +% +% See the file doc/generic/pgf/licenses/LICENSE for more details. + +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarypatterns.code.tex,v 1.7 2006/10/11 15:22:26 tantau Exp $ + + +% Lines in different directions + +\pgfdeclarepatternformonly{horizontal lines}{\pgfpointorigin}{\pgfpoint{100pt}{1pt}}{\pgfpoint{100pt}{3pt}}% +{ + \pgfsetlinewidth{0.4pt} + \pgfpathmoveto{\pgfpoint{0pt}{0.5pt}} + \pgfpathlineto{\pgfpoint{100pt}{0.5pt}} + \pgfusepath{stroke} +} + +\pgfdeclarepatternformonly{vertical lines}{\pgfpointorigin}{\pgfpoint{1pt}{100pt}}{\pgfpoint{3pt}{100pt}}% +{ + \pgfsetlinewidth{0.4pt} + \pgfpathmoveto{\pgfpoint{0.5pt}{0pt}} + \pgfpathlineto{\pgfpoint{0.5pt}{100pt}} + \pgfusepath{stroke} +} + +\pgfdeclarepatternformonly{north east lines}{\pgfpoint{-1pt}{-1pt}}{\pgfpoint{4pt}{4pt}}{\pgfpoint{3pt}{3pt}}% +{ + \pgfsetlinewidth{0.4pt} + \pgfpathmoveto{\pgfpoint{0pt}{0pt}} + \pgfpathlineto{\pgfpoint{3.1pt}{3.1pt}} + \pgfusepath{stroke} +} + +\pgfdeclarepatternformonly{north west lines}{\pgfpoint{-1pt}{-1pt}}{\pgfpoint{4pt}{4pt}}{\pgfpoint{3pt}{3pt}}% +{ + \pgfsetlinewidth{0.4pt} + \pgfpathmoveto{\pgfpoint{0pt}{3pt}} + \pgfpathlineto{\pgfpoint{3.1pt}{-0.1pt}} + \pgfusepath{stroke} +} + +% Crossed lines in different directions + +\pgfdeclarepatternformonly{grid}{\pgfpoint{-1pt}{-1pt}}{\pgfpoint{4pt}{4pt}}{\pgfpoint{3pt}{3pt}}% +{ + \pgfsetlinewidth{0.4pt} + \pgfpathmoveto{\pgfpoint{0pt}{0pt}} + \pgfpathlineto{\pgfpoint{0pt}{3.1pt}} + \pgfpathmoveto{\pgfpoint{0pt}{0pt}} + \pgfpathlineto{\pgfpoint{3.1pt}{0pt}} + \pgfusepath{stroke} +} + +\pgfdeclarepatternformonly{crosshatch}{\pgfpoint{-1pt}{-1pt}}{\pgfpoint{4pt}{4pt}}{\pgfpoint{3pt}{3pt}}% +{ + \pgfsetlinewidth{0.4pt} + \pgfpathmoveto{\pgfpoint{3.1pt}{0pt}} + \pgfpathlineto{\pgfpoint{0pt}{3.1pt}} + \pgfpathmoveto{\pgfpoint{0pt}{0pt}} + \pgfpathlineto{\pgfpoint{3.1pt}{3.1pt}} + \pgfusepath{stroke} +} + + +% Dotted regions + +\pgfdeclarepatternformonly{dots}{\pgfpoint{-1pt}{-1pt}}{\pgfpoint{1pt}{1pt}}{\pgfpoint{3pt}{3pt}}% +{ + \pgfpathcircle{\pgfpoint{0pt}{0pt}}{.5pt} + \pgfusepath{fill} +} + +\pgfdeclarepatternformonly{crosshatch dots}{\pgfpoint{-1pt}{-1pt}}{\pgfpoint{2.5pt}{2.5pt}}{\pgfpoint{3pt}{3pt}}% +{ + \pgfpathcircle{\pgfpoint{0pt}{0pt}}{.5pt} + \pgfpathcircle{\pgfpoint{1.5pt}{1.5pt}}{.5pt} + \pgfusepath{fill} +} + + + + +% Star shaped patterns + +\pgfdeclarepatternformonly{fivepointed stars}{\pgfpointorigin}{\pgfpoint{3mm}{3mm}}{\pgfpoint{3mm}{3mm}}% +{ + \pgftransformshift{\pgfpoint{1mm}{1mm}} + \pgfpathmoveto{\pgfpointpolar{18}{1mm}} + \pgfpathlineto{\pgfpointpolar{162}{1mm}} + \pgfpathlineto{\pgfpointpolar{306}{1mm}} + \pgfpathlineto{\pgfpointpolar{90}{1mm}} + \pgfpathlineto{\pgfpointpolar{234}{1mm}} + \pgfpathclose% + \pgfusepath{fill} +} + +\pgfdeclarepatternformonly{sixpointed stars}{\pgfpointorigin}{\pgfpoint{3mm}{3mm}}{\pgfpoint{3mm}{3mm}}% +{ + \pgftransformshift{\pgfpoint{1mm}{1mm}} + \pgfpathmoveto{\pgfpointpolar{30}{1mm}} + \pgfpathlineto{\pgfpointpolar{150}{1mm}} + \pgfpathlineto{\pgfpointpolar{270}{1mm}} + \pgfpathclose% + \pgfpathmoveto{\pgfpointpolar{-30}{1mm}} + \pgfpathlineto{\pgfpointpolar{-270}{1mm}} + \pgfpathlineto{\pgfpointpolar{-150}{1mm}} + \pgfpathclose% + \pgfsetnonzerorule + \pgfusepath{fill} +} + + + +% Bricks + +\pgfdeclarepatternformonly{bricks}{\pgfpoint{-1pt}{-1pt}}{\pgfpoint{5mm}{5mm}}{\pgfpoint{4mm}{4mm}}% +{ + \pgfsetlinewidth{0.8pt} + \pgfpathmoveto{\pgfpoint{0mm}{1mm}} + \pgfpathlineto{\pgfpoint{4mm}{1mm}} + \pgfpathmoveto{\pgfpoint{0mm}{3mm}} + \pgfpathlineto{\pgfpoint{4mm}{3mm}} + \pgfpathmoveto{\pgfpoint{1mm}{0mm}} + \pgfpathlineto{\pgfpoint{1mm}{1mm}} + \pgfpathmoveto{\pgfpoint{3mm}{1mm}} + \pgfpathlineto{\pgfpoint{3mm}{3mm}} + \pgfpathmoveto{\pgfpoint{1mm}{3mm}} + \pgfpathlineto{\pgfpoint{1mm}{4mm}} + \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 index 7bbaa4b24bb..afd5f3509b4 100644 --- a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex @@ -1,10 +1,13 @@ -\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 . +% Copyright 2006 by Till Tantau +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. % -% This program can be redistributed and/or modified under the terms -% of the GNU Public License, version 2. +% See the file doc/generic/pgf/licenses/LICENSE for more details. +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibraryplothandlers.code.tex,v 1.7 2006/10/11 15:22:26 tantau Exp $ \newif\ifpgf@plot@started @@ -23,7 +26,7 @@ \def\pgfplothandlercurveto{% \def\pgf@plotstreamstart{% \global\let\pgf@plotstreampoint=\pgf@plot@curveto@handler@initial% - \global\let\pgf@plotstreamspecial=\@gobble% + \global\let\pgf@plotstreamspecial=\pgf@gobble% \global\let\pgf@plotstreamend=\pgf@plot@curveto@handler@finish% \global\pgf@plot@startedfalse% }% @@ -113,7 +116,7 @@ \def\pgfplothandlerclosedcurve{% \def\pgf@plotstreamstart{% \global\let\pgf@plotstreampoint=\pgf@plot@closedcurve@handler@initial% - \global\let\pgf@plotstreamspecial=\@gobble% + \global\let\pgf@plotstreamspecial=\pgf@gobble% \global\let\pgf@plotstreamend=\pgf@plot@closedcurve@handler@finish% }% } @@ -276,7 +279,7 @@ \def\pgfplothandlerxcomb{% \def\pgf@plotstreamstart{% \global\let\pgf@plotstreampoint=\pgf@plot@xcomb@handler% - \global\let\pgf@plotstreamspecial=\@gobble% + \global\let\pgf@plotstreamspecial=\pgf@gobble% \global\let\pgf@plotstreamend=\relax% }% } @@ -302,7 +305,7 @@ \def\pgfplothandlerycomb{% \def\pgf@plotstreamstart{% \global\let\pgf@plotstreampoint=\pgf@plot@ycomb@handler% - \global\let\pgf@plotstreamspecial=\@gobble% + \global\let\pgf@plotstreamspecial=\pgf@gobble% \global\let\pgf@plotstreamend=\relax% }% } @@ -331,7 +334,7 @@ \def\pgfplothandlerpolarcomb{% \def\pgf@plotstreamstart{% \global\let\pgf@plotstreampoint=\pgf@plot@polarcomb@handler% - \global\let\pgf@plotstreamspecial=\@gobble% + \global\let\pgf@plotstreamspecial=\pgf@gobble% \global\let\pgf@plotstreamend=\relax% }% } @@ -359,19 +362,86 @@ % \pgfplotxyfile{mytable} \def\pgfplothandlermark#1{% + \pgf@plothandlermark{% + \ifnum\pgf@plot@mark@count<\pgf@plot@mark@repeat\relax% + \else% + \global\pgf@plot@mark@count=0\relax% + #1% + \fi% + }% +} + +\newcount\pgf@plot@mark@count +\def\pgf@plot@mark@phase{0} + +\def\pgf@plothandlermark#1{% \def\pgf@plot@mark{#1}% \def\pgf@plotstreamstart{% + \global\pgf@plot@mark@count=\pgf@plot@mark@repeat\relax% + \global\advance\pgf@plot@mark@count by-\pgf@plot@mark@phase\relax% \global\let\pgf@plotstreampoint=\pgf@plot@mark@handler% - \global\let\pgf@plotstreamspecial=\@gobble% + \global\let\pgf@plotstreamspecial=\pgf@gobble% \global\let\pgf@plotstreamend=\relax% }% } \def\pgf@plot@mark@handler#1{% + \global\advance\pgf@plot@mark@count by1\relax% {\pgftransformshift{#1}\pgf@plot@mark}% } +% Set the repeat count for marks. For example, if 3 is given as a +% value, only every third point will get a mark. +% +% #1 = repeat count +% +% Example: +% +% \pgfsetplotmarkrepeat{2} + +\def\pgfsetplotmarkrepeat#1{\def\pgf@plot@mark@repeat{#1}} +\pgfsetplotmarkrepeat{1} + + +% Set the phase for marks. For example, if 3 is the repeat and 3 is +% the phase, already the first point will be marked. +% +% #1 = the index of the first point that should be marked. +% +% Example: +% +% \pgfsetplotmarkphase{3} + +\def\pgfsetplotmarkphase#1{\def\pgf@plot@mark@phase{#1}} +\pgfsetplotmarkphase{1} + + + +% This handler draws a given mark at those points whose number is +% given in the (pgffor-like) list. +% +% #1 = some code to be executed at each point (with the coordinate +% system translated to that point). +% Typically, this code will be \pgfuseplotmark{whatever}. +% #2 = list of positions like "1,2,4,...,9,10" +% +% Example: +% +% \pgfplothandlermarklisted{\pgfuseplotmark{*}}{1,2,4,...,9} +% \pgfplotxyfile{mytable} + +\def\pgfplothandlermarklisted#1#2{% + \let\pgf@plot@mark@list=\pgf@empty% + \edef\pgf@marshal{\noexpand\foreach\noexpand\pgf@temp in{#2}} + \pgf@marshal{\xdef\pgf@plot@mark@list{\pgf@plot@mark@list(\pgf@temp)}}% + \pgf@plothandlermark{% + \edef\pgf@marshal{\noexpand\in@{(\the\pgf@plot@mark@count)}{\pgf@plot@mark@list}}% + \pgf@marshal% + \ifin@#1\fi}% +} + + % Define a new plot mark for use with \pgfplotmark. % % #1 = a plot mark mnemonic diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryplotmarks.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryplotmarks.code.tex index 760998738b4..a821e6f65cf 100644 --- a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryplotmarks.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryplotmarks.code.tex @@ -1,9 +1,13 @@ -\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 . +% Copyright 2006 by Till Tantau +% +% This file may be distributed and/or modified % -% This program can be redistributed and/or modified under the terms -% of the GNU Public License, version 2. +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +% +% See the file doc/generic/pgf/licenses/LICENSE for more details. + +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibraryplotmarks.code.tex,v 1.4 2006/10/11 15:22:26 tantau Exp $ % A stroked circle mark diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.code.tex index 2c777ef5504..a6965b60e3b 100644 --- a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.code.tex @@ -1,10 +1,13 @@ -\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 . +% Copyright 2006 by Till Tantau +% +% This file may be distributed and/or modified % -% This program can be redistributed and/or modified under the terms -% of the GNU Public License, version 2. +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +% +% See the file doc/generic/pgf/licenses/LICENSE for more details. +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibraryshapes.code.tex,v 1.9 2006/10/11 15:22:26 tantau Exp $ \pgfdeclareshape{ellipse} % @@ -191,6 +194,293 @@ } + + +% Set the recommended shape aspect ratio +% +% #1 = aspect ratio +% +% Example: +% +% \pgfsetshapeminwidth{1.5} + +\def\pgfsetshapeaspect#1{% + \def\pgfshapeaspect{#1}% + % Invert + \@tempdima=#1pt% + \@tempdima=.125\@tempdima% + \c@pgf@counta=\@tempdima\relax% 8192*determinant + \@tempdima=8192pt% + \divide\@tempdima by\c@pgf@counta% + \edef\pgfshapeaspectinverse{\pgf@sys@tonumber{\@tempdima}} +} +\pgfsetshapeaspect{1} + + + +\pgfdeclareshape{diamond} +{ + \savedanchor\outernortheast{% + % + % Calculate width and height of the inner rectangle + % + \pgf@xa=.5\wd\pgfnodeparttextbox% + \setlength\pgf@xc{\pgfshapeinnerxsep}% + \advance\pgf@xa by\pgf@xc% + \pgf@ya=.5\ht\pgfnodeparttextbox% + \advance\pgf@ya by.5\dp\pgfnodeparttextbox% + \setlength\pgf@yc{\pgfshapeinnerysep}% + \advance\pgf@ya by\pgf@yc% + % + % Calculate width and height of diamond + % + \pgf@x=\pgf@xa% + \advance\pgf@x by\pgfshapeaspect\pgf@ya% + \pgf@y=\pgfshapeaspectinverse\pgf@xa% + \advance\pgf@y by\pgf@ya% + % + % Check against minimum height/width + % + \setlength\pgf@xb{\pgfshapeminwidth}% + \ifdim\pgf@x<\pgf@xb% + % yes, too small. Enlarge... + \pgf@x=\pgf@xb% + \fi% + \setlength\pgf@yb{\pgfshapeminheight}% + \ifdim\pgf@y<\pgf@yb% + % yes, too small. Enlarge... + \pgf@y=\pgf@yb% + \fi% + % + % Add outer border + % + \setlength\pgf@xa{\pgfshapeouterxsep}% + \advance\pgf@x by\pgf@xa% + \setlength\pgf@ya{\pgfshapeouterysep}% + \advance\pgf@y by\pgf@ya% + } + \savedanchor\text{% + \pgf@x=-.5\wd\pgfnodeparttextbox% + \pgf@y=-.5\ht\pgfnodeparttextbox% + \advance\pgf@y by.5\dp\pgfnodeparttextbox% + } + + % + % Anchors + % + \anchor{text}{\text}% + \anchor{center}{\pgfpointorigin}% + \anchor{mid}{% + \pgf@process{\text}% + \pgf@x=0pt% + \setlength\pgf@ya{.5ex} + \advance\pgf@y by\pgf@ya% + } + \anchor{base}{\pgf@process{\text}\pgf@x=0pt } + \anchor{north}{\pgf@process{\outernortheast}\pgf@x=0pt} + \anchor{south}{\pgf@process{\outernortheast}\pgf@x=0pt\pgf@y=-\pgf@y} + \anchor{west}{\pgf@process{\outernortheast}\pgf@x=-\pgf@x\pgf@y=0pt} + \anchor{north west}{\pgf@process{\outernortheast}\pgf@x=-.5\pgf@x\pgf@y=.5\pgf@y} + \anchor{south west}{\pgf@process{\outernortheast}\pgf@x=-.5\pgf@x\pgf@y=-.5\pgf@y} + \anchor{east}{\pgf@process{\outernortheast}\pgf@y=0pt} + \anchor{north east}{\pgf@process{\outernortheast}\pgf@x=.5\pgf@x\pgf@y=.5\pgf@y} + \anchor{south east}{\pgf@process{\outernortheast}\pgf@x=.5\pgf@x\pgf@y=-.5\pgf@y} + \anchorborder{% + \pgf@xa=\pgf@x% + \pgf@ya=\pgf@y% + \pgf@process{\outernortheast}% + \ifdim\pgf@xa>0pt% + \else% + \pgf@x=-\pgf@x% + \fi% + \ifdim\pgf@ya>0pt% + \else% + \pgf@y=-\pgf@y% + \fi% + \edef\pgf@marshal{% + \noexpand\pgfpointintersectionoflines + {\noexpand\pgfpointorigin} + {\noexpand\pgfpoint{\the\pgf@xa}{\the\pgf@ya}} + {\noexpand\pgfpoint{\the\pgf@x}{0pt}} + {\noexpand\pgfpoint{0pt}{\the\pgf@y}}% + }% + \pgf@process{\pgf@marshal}% + } + + % + % Background path + % + \backgroundpath{ + \pgf@process{\outernortheast}% + \pgf@xc=\pgf@x% + \pgf@yc=\pgf@y% + \setlength{\pgf@xa}{\pgfshapeouterxsep}% + \setlength{\pgf@ya}{\pgfshapeouterysep}% + \advance\pgf@xc by-1.414213\pgf@xa% + \advance\pgf@yc by-1.414213\pgf@ya% + \pgfpathmoveto{\pgfpoint{\pgf@xc}{0pt}}% + \pgfpathlineto{\pgfpoint{0pt}{\pgf@yc}}% + \pgfpathlineto{\pgfpoint{-\pgf@xc}{0pt}}% + \pgfpathlineto{\pgfpoint{0pt}{-\pgf@yc}}% + \pgfpathclose% + } +} + + + +\newbox\pgfnodepartlowerbox + +% +% A circle that is split in the middle into an upper and a lower part. +% +% This node consists of two parts: The upper (main) part is shown in +% the upper half of the circle. The second part is the (optional) +% lower part. +% +% Parts: text, lower + +\pgfdeclareshape{circle split} +{ + % + % Node parts + % + \nodeparts{text,lower} + + % + % 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\loweranchor{% + \pgf@x=-.5\wd\pgfnodepartlowerbox% + \advance\pgf@x by.5\wd\pgfnodeparttextbox% + \setlength{\pgf@y}{\pgfshapeinnerysep}% + \pgf@y=-2\pgf@y% + \advance\pgf@y by-\ht\pgfnodepartlowerbox% + \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\pgfnodepartlowerbox% + \advance\pgf@ya by.5\dp\pgfnodepartlowerbox% + \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\pgfnodepartlowerbox% + \pgf@xa=.5\wd\pgfnodepartlowerbox% + \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{lower}{\loweranchor} + + % + % 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% + \pgfsetshortenstart{0pt}% + \pgfsetshortenend{0pt}% + \pgfsetarrows{-}% + \pgfpathmoveto{\pgfpointadd{\centerpoint}{\pgfpoint{-\@tempdima}{0pt}}}% + \pgfpathlineto{\pgfpointadd{\centerpoint}{\pgfpoint{\@tempdima}{0pt}}}% + \pgfusepath{stroke}% + } +} + + + \pgfdeclareshape{cross out} { \inheritsavedanchors[from=rectangle] % this is nearly a rectangle diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarysnakes.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarysnakes.code.tex index 3440477499e..f9795dc4a99 100644 --- a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarysnakes.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarysnakes.code.tex @@ -1,9 +1,13 @@ -\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 . +% Copyright 2006 by Till Tantau +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. % -% This program can be redistributed and/or modified under the terms -% of the GNU Public License, version 2. +% See the file doc/generic/pgf/licenses/LICENSE for more details. + +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarysnakes.code.tex,v 1.14 2006/10/11 15:22:26 tantau Exp $ \newdimen\pgfsnakesegmentamplitude @@ -280,6 +284,35 @@ +% crosses snakes +% +% Parameters: \pgfsnakesegmentlength, \pgfsnakeobjectsize, \pgfsnakesegmentamplitude + +\pgfdeclaresnake{crosses}{crosses} +{ + \state{crosses}[switch if less than=\pgfsnakesegmentlength to last, + width=\pgfsnakesegmentlength] + { + \pgfpathmoveto{\pgfpoint{0pt}{\pgfsnakesegmentamplitude}} + \pgfpathlineto{\pgfpoint{\pgfsnakesegmentobjectlength}{-\pgfsnakesegmentamplitude}} + \pgfpathmoveto{\pgfpoint{0pt}{-\pgfsnakesegmentamplitude}} + \pgfpathlineto{\pgfpoint{\pgfsnakesegmentobjectlength}{\pgfsnakesegmentamplitude}} + } + \state{last}[width=\pgfsnakesegmentobjectlength,next state=final] + { + \pgfpathmoveto{\pgfpoint{0pt}{\pgfsnakesegmentamplitude}} + \pgfpathlineto{\pgfpoint{\pgfsnakesegmentobjectlength}{-\pgfsnakesegmentamplitude}} + \pgfpathmoveto{\pgfpoint{0pt}{-\pgfsnakesegmentamplitude}} + \pgfpathlineto{\pgfpoint{\pgfsnakesegmentobjectlength}{\pgfsnakesegmentamplitude}} + } + \state{final} + { + \pgfpathmoveto{\pgfpoint{\pgfsnakeremainingdistance}{0pt}} + } +} + + + % ticks snakes % % Parameters: \pgfsnakesegmentlength, \pgfsnakesegmentamplitude @@ -366,4 +399,26 @@ +% bent snake +% +% A snake that looks like someone bent the line a bit. +% +% Parameters: \pgfsnakesegmentamplitude, \pgfsnakesegmentaspect + +\pgfdeclaresnake{bent}{bent} +{ + \state{bent}[width=\pgfsnakeremainingdistance,next state=final] + { + \pgfpathcurveto + {\pgfpoint{\pgfsnakesegmentaspect\pgfsnakeremainingdistance}{\pgfsnakesegmentamplitude}} + {\pgfpointadd{\pgfpoint{\pgfsnakeremainingdistance}{0pt}} + {\pgfpoint{-\pgfsnakesegmentaspect\pgfsnakeremainingdistance}{\pgfsnakesegmentamplitude}}} + {\pgfpoint{\pgfsnakeremainingdistance}{0pt}} + } + \state{final} + {} +} + + + \endinput diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikz3d.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikz3d.code.tex new file mode 100644 index 00000000000..d980b557feb --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikz3d.code.tex @@ -0,0 +1,105 @@ +% Copyright 2006 by Till Tantau +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +% +% See the file doc/generic/pgf/licenses/LICENSE for more details. + +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikz3d.code.tex,v 1.3 2006/10/11 15:22:26 tantau Exp $ + + + +% New coordinate systems: + +\tikzdeclarecoordinatesystem{xyz cylindrical} +{% + \setkeys{tikzcskeys}{angle=0,radius=0,z=0,#1}% + \pgfpointcylindrical{\tikz@cs@angle}{\tikz@cs@radius}{\tikz@cs@z}% +} + +\tikzdeclarecoordinatesystem{xyz spherical} +{% + \setkeys{tikzcskeys}{angle=0,radius=0,latitude=0,longitude=0,#1}% + \pgfpointspherical{\tikz@cs@angle}{\tikz@cs@latitude}{\tikz@cs@radius}% +} + +\define@key{tikzcskeys}{longitude}{\def\tikz@cs@angle{#1}} +\define@key{tikzcskeys}{latitude}{\def\tikz@cs@latitude{#1}} + + +% Options for transforming into a plane: + +\tikzoption{plane origin}{\def\tikz@plane@origin{\tikz@scan@one@point\@firstofone#1}} +\tikzoption{plane x}{\def\tikz@plane@x{\tikz@scan@one@point\@firstofone#1}} +\tikzoption{plane y}{\def\tikz@plane@y{\tikz@scan@one@point\@firstofone#1}} + +\let\tikz@plane@origin=\pgfpointorigin +\def\tikz@plain@x{\pgfpointxy{1}{0}} +\def\tikz@plain@y{\pgfpointxy{0}{1}} + +\tikzoption{canvas is plane}[]{ + \tikz@canvas@is@plane +} +\tikzoption{canvas is xy plane at z}{% + \tikz@addtransform{\pgftransformshift{\pgfpointxyz{0}{0}{#1}}}% +} +\tikzoption{canvas is yx plane at z}[]{% + \def\tikz@plane@origin{\pgfpointxyz{0}{0}{#1}}% + \def\tikz@plane@x{\pgfpointxyz{0}{1}{#1}}% + \def\tikz@plane@y{\pgfpointxyz{1}{0}{#1}}% + \tikz@canvas@is@plane +} +\tikzoption{canvas is xz plane at y}[]{% + \def\tikz@plane@origin{\pgfpointxyz{0}{#1}{0}}% + \def\tikz@plane@x{\pgfpointxyz{1}{#1}{0}}% + \def\tikz@plane@y{\pgfpointxyz{0}{#1}{1}}% + \tikz@canvas@is@plane +} +\tikzoption{canvas is zx plane at y}[]{% + \def\tikz@plane@origin{\pgfpointxyz{0}{#1}{0}}% + \def\tikz@plane@x{\pgfpointxyz{0}{#1}{1}}% + \def\tikz@plane@y{\pgfpointxyz{1}{#1}{0}}% + \tikz@canvas@is@plane +} +\tikzoption{canvas is yz plane at x}[]{% + \def\tikz@plane@origin{\pgfpointxyz{#1}{0}{0}}% + \def\tikz@plane@x{\pgfpointxyz{#1}{1}{0}}% + \def\tikz@plane@y{\pgfpointxyz{#1}{0}{1}}% + \tikz@canvas@is@plane +} +\tikzoption{canvas is zy plane at x}[]{% + \def\tikz@plane@origin{\pgfpointxyz{#1}{0}{0}}% + \def\tikz@plane@x{\pgfpointxyz{#1}{0}{1}}% + \def\tikz@plane@y{\pgfpointxyz{#1}{1}{0}}% + \tikz@canvas@is@plane +} + + + +% Transformation code + +\def\tikz@canvas@is@plane{ + \pgf@process{\tikz@plane@x}% + \pgf@xa=\pgf@x% + \pgf@ya=\pgf@y% + \pgf@process{\tikz@plane@y}% + \pgf@xb=\pgf@x% + \pgf@yb=\pgf@y% + \pgf@process{\tikz@plane@origin}% + \edef\pgf@marshal{\noexpand\tikz@addtransform{% + \noexpand\pgftransformtriangle + {\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}} + {\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}} + {\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}} + \noexpand\pgftransformscale{0.035146}% + \noexpand\pgfsetxvec{\noexpand\pgfpoint{1cm}{0cm}}% + \noexpand\pgfsetyvec{\noexpand\pgfpoint{0cm}{1cm}}% + \noexpand\pgfsetzvec{\noexpand\pgfpoint{0cm}{0cm}}% + }}% + \pgf@marshal% +} + + +\endinput diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzarrows.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzarrows.code.tex new file mode 100644 index 00000000000..2ca988c5493 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzarrows.code.tex @@ -0,0 +1,14 @@ +% Copyright 2006 by Till Tantau +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +% +% See the file doc/generic/pgf/licenses/LICENSE for more details. + +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikzarrows.code.tex,v 1.2 2006/10/11 15:22:26 tantau Exp $ + +\usepgflibrary{arrows} + +\endinput diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzautomata.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzautomata.code.tex new file mode 100644 index 00000000000..d30f8abb767 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzautomata.code.tex @@ -0,0 +1,102 @@ +% Copyright 2006 by Till Tantau +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +% +% See the file doc/generic/pgf/licenses/LICENSE for more details. + +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikzautomata.code.tex,v 1.3 2006/10/11 15:22:26 tantau Exp $ + + +% Styles for states: + +\tikzstyle{every state}= [] + +\tikzstyle{state without output}= [circle,draw,minimum size=2.5em,every state] +\tikzstyle{state with output}= [circle split,draw,minimum size=2.5em,every state] + +\tikzstyle{accepting by arrow}= [after node path= +{ + { + [to path= + { + [->,double=none,every accepting by arrow] + -- + ([shift=(\tikz@accepting@angle:\tikz@accepting@distance)]\tikztostart.\tikz@accepting@angle) + node [shape=rectangle,anchor=\tikz@accepting@anchor] {\tikz@accepting@text} + }] + edge () + } +}] +\tikzstyle{every accepting by arrow}=[] +\tikzstyle{accepting by double}= [double,outer sep=.5\pgflinewidth+.3pt] % .3pt is half double width distance + +\tikzstyle{initial by arrow}= [after node path= +{ + { + [to path= + { + [->,double=none,every initial by arrow] + ([shift=(\tikz@initial@angle:\tikz@initial@distance)]\tikztostart.\tikz@initial@angle) + node [shape=rectangle,anchor=\tikz@initial@anchor] {\tikz@initial@text} + -- (\tikztostart)}] + edge () + } +}] +\tikzstyle{every initial by arrow}=[] + + +\tikzoption{initial text}{\tikzaddafternodepathoption{\def\tikz@initial@text{#1}}} +\tikzoption{accepting text}{\tikzaddafternodepathoption{\def\tikz@accepting@text{#1}}} + +\tikzoption{initial where}{\tikzaddafternodepathoption{\csname tikz@initial@compute@#1\endcsname}} +\tikzoption{accepting where}{\tikzaddafternodepathoption{\csname tikz@accepting@compute@#1\endcsname}} + +\tikzoption{initial distance}{\tikzaddafternodepathoption{\def\tikz@initial@distance{#1}}} +\tikzoption{accepting distance}{\tikzaddafternodepathoption{\def\tikz@initial@distance{#1}}} + +\def\tikz@initial@text{start} +\def\tikz@accepting@text{} + +\def\tikz@initial@distance{3ex} +\def\tikz@accepting@distance{3ex} + +\def\tikz@initial@compute@above{\def\tikz@initial@angle{90}\def\tikz@initial@anchor{south}} +\def\tikz@initial@compute@below{\def\tikz@initial@angle{270}\def\tikz@initial@anchor{north}} +\def\tikz@initial@compute@left{\def\tikz@initial@angle{180}\def\tikz@initial@anchor{east}} +\def\tikz@initial@compute@right{\def\tikz@initial@angle{0}\def\tikz@initial@anchor{west}} + +\def\tikz@initial@angle{180} +\def\tikz@initial@anchor{east} + +\def\tikz@accepting@compute@above{\def\tikz@accepting@angle{90}\def\tikz@accepting@anchor{south}} +\def\tikz@accepting@compute@below{\def\tikz@accepting@angle{270}\def\tikz@accepting@anchor{north}} +\def\tikz@accepting@compute@left{\def\tikz@accepting@angle{180}\def\tikz@accepting@anchor{east}} +\def\tikz@accepting@compute@right{\def\tikz@accepting@angle{0}\def\tikz@accepting@anchor{west}} + +\def\tikz@accepting@angle{0} +\def\tikz@accepting@anchor{west} + + +\tikzstyle{initial above}= [initial by arrow,initial where=above] +\tikzstyle{initial below}= [initial by arrow,initial where=below] +\tikzstyle{initial left}= [initial by arrow,initial where=left] +\tikzstyle{initial right}= [initial by arrow,initial where=right] + +\tikzstyle{accepting above}= [accepting by arrow,accepting where=above] +\tikzstyle{accepting below}= [accepting by arrow,accepting where=below] +\tikzstyle{accepting left}= [accepting by arrow,accepting where=left] +\tikzstyle{accepting right}= [accepting by arrow,accepting where=right] + + +% Defaults: + +\tikzstyle{state}= [state without output] +\tikzstyle{accepting}= [accepting by double] +\tikzstyle{initial}= [initial by arrow] + + + +\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 index 260a8f9a28a..6fa6b9963cc 100644 --- a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzbackgrounds.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzbackgrounds.code.tex @@ -1,9 +1,13 @@ -\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 . +% Copyright 2006 by Till Tantau +% +% This file may be distributed and/or modified % -% This program can be redistributed and/or modified under the terms -% of the GNU Public License, version 2. +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +% +% See the file doc/generic/pgf/licenses/LICENSE for more details. + +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikzbackgrounds.code.tex,v 1.3 2006/10/11 15:22:26 tantau Exp $ % Layers diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzer.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzer.code.tex new file mode 100644 index 00000000000..3056d59185e --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzer.code.tex @@ -0,0 +1,39 @@ +% Copyright 2006 by Till Tantau +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +% +% See the file doc/generic/pgf/licenses/LICENSE for more details. + +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikzer.code.tex,v 1.3 2006/10/11 15:22:26 tantau Exp $ + + +% Styles for entity types: + +\tikzstyle{every entity}= [] +\tikzstyle{entity}= [rectangle,draw, + minimum height=2\baselineskip, + minimum width=4\baselineskip,every entity] + + +% Styles for relationship types: + +\tikzstyle{every relationship}= [] +\tikzstyle{relationship}= [diamond,draw, + minimum size=1.5\baselineskip, + inner sep=1pt, + every relationship] + + +% Styles for relationship types: + +\tikzstyle{every attribute}= [] +\tikzstyle{attribute}= [minimum size=1.5\baselineskip,ellipse,draw,every attribute] +\tikzstyle{key attribute}= [font=\itshape,attribute] + + + + +\endinput diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzmindmap.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzmindmap.code.tex new file mode 100644 index 00000000000..80a2ca35f55 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzmindmap.code.tex @@ -0,0 +1,320 @@ +% Copyright 2006 by Till Tantau +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +% +% See the file doc/generic/pgf/licenses/LICENSE for more details. + +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikzmindmap.code.tex,v 1.14 2006/10/11 15:22:26 tantau Exp $ + + + +% A snake for connecting circle nodes +% +% Parameters: \pgfsnakecirclestartradius, \pgfsnakecircleendradius, +% \pgfsnakesegmentamplitude, \pgfsnakesegmentangle + +\pgfdeclaresnake{circle connection bar}{initial} +{ + \state{initial}[width=0pt,next state=bar] + { + { + \pgftransformxshift{-\pgfsnakecirclestartradius}% + \pgfpathmoveto{\pgfpointpolar{\pgfsnakesegmentangle}{\pgfsnakecirclestartradius}} + \pgfpatharc{\pgfsnakesegmentangle}{-\pgfsnakesegmentangle}{\pgfsnakecirclestartradius} + \@tempcnta=-\pgfsnakesegmentangle\relax + \advance\@tempcnta by90\relax + \setlength\@tempdima{\pgfsnakecirclestartradius} + \setlength\@tempdimb{\pgfsnakesegmentamplitude} + \pgfpathcurveto + {\pgfpointadd + {\pgfpointpolar{-\pgfsnakesegmentangle}{\pgfsnakecirclestartradius}} + {\pgfpointpolar{\the\@tempcnta}{.25\@tempdima}}} + {\pgfpoint{1.25\@tempdima}{-.5\@tempdimb}} + {\pgfpoint{1.5\@tempdima}{-.5\@tempdimb}} + \pgfpathlineto{\pgfpoint{1.5\@tempdima}{.5\@tempdimb}} + \@tempcnta=\pgfsnakesegmentangle\relax + \advance\@tempcnta by-90\relax + \pgfpathcurveto + {\pgfpoint{1.25\@tempdima}{.5\@tempdimb}} + {\pgfpointadd + {\pgfpointpolar{\pgfsnakesegmentangle}{\pgfsnakecirclestartradius}} + {\pgfpointpolar{\the\@tempcnta}{.25\@tempdima}}} + {\pgfpointpolar{\pgfsnakesegmentangle}{\pgfsnakecirclestartradius}} + \pgfpathclose + } + } + \state{bar}[width=0pt,next state=end] + { + \setlength\@tempdima{\pgfsnakecirclestartradius}% + \setlength\@tempdimb{\pgfsnakecircleendradius}% + \setlength\pgf@xc{\pgfsnakesegmentamplitude}% + \pgfpathrectangle + {\pgfpoint{.5\@tempdima}{-.5\pgf@xc}} + {\pgfpoint{\pgfsnakeremainingdistance-.5\@tempdimb-.5\@tempdima}{\pgf@xc}} + } + \state{end}[width=0pt,next state=final] + { + { + \pgftransformxshift{\pgfsnakeremainingdistance}% + \pgftransformxscale{-1}% + \pgftransformxshift{-\pgfsnakecircleendradius}% + \pgfpathmoveto{\pgfpointpolar{\pgfsnakesegmentangle}{\pgfsnakecircleendradius}} + \pgfpatharc{\pgfsnakesegmentangle}{-\pgfsnakesegmentangle}{\pgfsnakecircleendradius} + \@tempcnta=-\pgfsnakesegmentangle\relax + \advance\@tempcnta by90\relax + \setlength\@tempdima{\pgfsnakecircleendradius} + \setlength\@tempdimb{\pgfsnakesegmentamplitude}% + \pgfpathcurveto + {\pgfpointadd + {\pgfpointpolar{-\pgfsnakesegmentangle}{\pgfsnakecircleendradius}} + {\pgfpointpolar{\the\@tempcnta}{.25\@tempdima}}} + {\pgfpoint{1.25\@tempdima}{-.5\@tempdimb}} + {\pgfpoint{1.5\@tempdima}{-.5\@tempdimb}} + \pgfpathlineto{\pgfpoint{1.5\@tempdima}{.5\@tempdimb}} + \@tempcnta=\pgfsnakesegmentangle\relax + \advance\@tempcnta by-90\relax + \pgfpathcurveto + {\pgfpoint{1.25\@tempdima}{.5\@tempdimb}} + {\pgfpointadd + {\pgfpointpolar{\pgfsnakesegmentangle}{\pgfsnakecircleendradius}} + {\pgfpointpolar{\the\@tempcnta}{.25\@tempdima}}} + {\pgfpointpolar{\pgfsnakesegmentangle}{\pgfsnakecircleendradius}} + \pgfpathclose + } + } + \state{final} + {} +} + + +\def\pgfsnakecirclestartradius{1cm} +\def\pgfsnakecircleendradius{1cm} +\def\pgfsnakesegmentangle{20} + + + + +% To paths for connecting circle nodes + +\tikzstyle{circle connection bar}= +[to path={ + \pgfextra{\tikz@compute@circle@radii\tikz@compute@segmentamplitude} + [fill=\tikz@concept@color,draw=none] + [snake=circle connection bar] + [every circle connection bar] + -- (\tikztotarget) \tikztonodes +}] +\tikzstyle{every circle connection bar}=[] + +\def\tikz@compute@circle@radii{% + \pgf@process{\pgfpointtransformed{\pgfpointanchor{\tikztostart}{center}}}% + \pgf@xa=\pgf@x% + \pgf@process{\pgfpointtransformed{\pgfpointanchor{\tikztostart}{west}}}% + \advance\pgf@xa by-\pgf@x% + \edef\pgfsnakecirclestartradius{\the\pgf@xa}% + \pgf@process{\pgfpointtransformed{\pgfpointanchor{\tikztotarget}{center}}}% + \pgf@xa=\pgf@x% + \pgf@process{\pgfpointtransformed{\pgfpointanchor{\tikztotarget}{west}}}% + \advance\pgf@xa by-\pgf@x% + \edef\pgfsnakecircleendradius{\the\pgf@xa}% +} +\def\tikz@compute@segmentamplitude{% + \pgf@x=\pgfsnakecirclestartradius\relax% + \ifdim\pgf@x>\pgfsnakecircleendradius\relax% + \pgf@x=\pgfsnakecircleendradius\relax% + \fi% + \pgf@x=.175\pgf@x\relax% + \edef\pgfsnakesegmentamplitude{\the\pgf@x}% +} + + +% Switch color in a mindmap + +\tikzoption{circle connection bar switch color}{\tikz@parse@switch#1\pgf@unique} +\def\tikz@parse@switch from (#1) to (#2)\pgf@unique{% + \def\tikz@to@path{% + \pgfextra{% + \colorlet{tikz@switch@from}{#1}% + \colorlet{tikz@switch@to}{#2}% + \tikz@compute@circle@radii\tikz@compute@segmentamplitude% + \tikz@compute@rotation% + } + [fill=none,draw=none] + [snake=circle connection bar] + [every circle connection bar] + -- (\tikztotarget) \tikztonodes + [shading=tikz@shade@bar] + } +} + +\tikzoption{concept color}{% + \let\tikz@old@concept@color=\tikz@concept@color% + \def\tikz@edge@to@parent@path{ + (\tikzparentnode) + to[circle connection bar switch color=from (\tikz@old@concept@color) to (#1)] + (\tikzchildnode)} + \def\tikz@concept@color{#1}% +} + +\pgfdeclarehorizontalshading[tikz@switch@from,tikz@switch@to]{tikz@shade@bar}{100bp}{% + color(0pt)=(tikz@switch@from); + color(45bp)=(tikz@switch@from); + color(50bp)=(tikz@switch@to); + color(100bp)=(tikz@switch@to)} + +\def\tikz@compute@rotation{% + \pgf@process{\pgfpointnormalised{\pgfpointdiff{\pgfpointanchor{\tikztostart}{center}}{\pgfpointanchor{\tikztotarget}{center}}}}% + \pgf@ya=-\pgf@y% + \edef\pgf@marshal{% + \noexpand\pgfsetadditionalshadetransform{% + \noexpand\pgftransformcm + {\pgf@sys@tonumber{\pgf@x}}{\pgf@sys@tonumber{\pgf@y}}% + {\pgf@sys@tonumber{\pgf@ya}}{\pgf@sys@tonumber{\pgf@x}}% + {\noexpand\pgfpointorigin}% + }% + }% + \pgf@marshal% +} + + + + +% A concept node + +\tikzstyle{concept}= [circle,fill=\tikz@concept@color,draw=\tikz@concept@color,every concept] +\tikzstyle{every concept}= [] + +\def\tikz@concept@color{black} + +\tikzstyle{tikz@concept@setting}=[edge from parent path={(\tikzparentnode) to [circle connection bar] (\tikzchildnode)}] +\tikzstyle{tikz@concept@color@set}=[] + + +\tikzstyle{extra concept}= [concept color=black!50,level 2 concept,concept,every extra concept] +\tikzstyle{every extra concept}=[] + +\tikzstyle{concept connection}=[line width=1mm,shorten <=2mm,shorten >=2mm,cap=round,draw=black!50] + + +% A mindmap + +\tikzstyle{mindmap}= + [fill,draw,very thick,outer sep=0pt,inner sep=1pt,% + set style={{every child}+=[style=tikz@concept@setting,style=tikz@concept@color@set]},% + style=root concept, + set style={{level 1}+=[style=level 1 concept]}, + set style={{level 2}+=[style=level 2 concept]}, + set style={{level 3}+=[style=level 3 concept]}, + set style={{level 4}+=[style=level 4 concept]}, + text centered,% + segment angle=20, + style=every mindmap, + ] +\tikzstyle{every mindmap}=[] + + +\tikzstyle{root concept}= [minimum size=4cm,text width=3.5cm,font=\large] +\tikzstyle{level 1 concept}=[minimum size=2.25cm, + level distance=5cm, + text width=2cm, + sibling angle=60, + font=\small] +\tikzstyle{level 2 concept}=[minimum size=1.75cm,% + level distance=2.9cm,% + text width=1.5cm,% + sibling angle=60,% + font=\footnotesize] +\tikzstyle{level 3 concept}=[minimum size=1.15cm,% + text width=1cm,% + level distance=2.4cm,% + sibling angle=30,% + font=\tiny] +\tikzstyle{level 4 concept}=[minimum size=0.9cm,% + text width=0.7cm, + level distance=1.85cm,% + sibling angle=30,% + font=\tiny] + +\tikzstyle{large mindmap}= + [% + set style={{root concept}=[minimum size=5.6cm,text width=4.5cm,font=\Large]}, + set style={{level 1 concept}=[% + minimum size=3.2cm, + level distance=7cm, + text width=2.8cm, + sibling angle=60, + font=]},% + set style={{level 2 concept}=[% + minimum size=2.45cm,% + level distance=4cm,% + text width=2.2cm,% + sibling angle=60,% + font=\small% + ]},% + set style={{level 3 concept}=[% + minimum size=1.63cm,% + text width=1.4cm,% + level distance=3.38cm,% + sibling angle=30,% + font=\scriptsize]},% + set style={{level 4 concept}=[% + minimum size=1.27cm,% + text width=1cm, + level distance=2.60cm,% + sibling angle=30,% + font=\tiny]},% + mindmap,% + line width=2pt + ] + +\tikzstyle{huge mindmap}= + [% + set style={{root concept}=[minimum size=8cm,text width=7cm,font=\huge]}, + set style={{level 1 concept}+=[% + minimum size=4.5cm, + level distance=10cm, + text width=4cm, + sibling angle=60, + font=\large]},% + set style={{level 2 concept}+=[% + minimum size=3.5cm,% + level distance=5.8cm,% + text width=3cm,% + sibling angle=60,% + font=% + ]},% + set style={{level 3 concept}+=[% + minimum size=2.3cm,% + text width=2cm,% + level distance=4.8cm,% + sibling angle=30,% + font=\footnotesize]},% + set style={{level 4 concept}+=[% + minimum size=1.7cm,% + text width=1.4cm, + level distance=3.7cm,% + sibling angle=30,% + font=\scriptsize]},% + mindmap,% + line width=3pt + ] + + +% Annotations + +\tikzstyle{annotation}=[shape=rectangle, + minimum size=0pt, + text width=3.5cm, + outer sep=1.5mm, + inner sep=1mm, + text badly ragged, + rounded corners, + font=\tiny, + every annotation] +\tikzstyle{every annotation}=[] + +\endinput + diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzpatterns.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzpatterns.code.tex new file mode 100644 index 00000000000..7766f66d8d5 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzpatterns.code.tex @@ -0,0 +1,14 @@ +% Copyright 2006 by Till Tantau +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +% +% See the file doc/generic/pgf/licenses/LICENSE for more details. + +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikzpatterns.code.tex,v 1.2 2006/10/11 15:22:26 tantau Exp $ + +\usepgflibrary{patterns} + +\endinput diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzpetri.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzpetri.code.tex new file mode 100644 index 00000000000..ebb43bca13f --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzpetri.code.tex @@ -0,0 +1,146 @@ +% Copyright 2006 by Till Tantau +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +% +% See the file doc/generic/pgf/licenses/LICENSE for more details. + +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikzpetri.code.tex,v 1.3 2006/10/11 15:22:26 tantau Exp $ + + +% Styles for places: + +\tikzstyle{every place}= [] +\tikzstyle{place}= [circle,draw,inner sep=0pt, + minimum size=5ex, + every place] + + +% Styles for transition: + +\tikzstyle{every transition}= [] +\tikzstyle{transition}= [rectangle,draw,inner sep=0pt, + minimum size=4mm, + every transition] + + +% Styles for relationship types: + +\tikzstyle{pre}= [<-,shorten <=1pt] +\tikzstyle{post}= [->,shorten >=1pt] +\tikzstyle{pre and post}= [<->,shorten >=1pt,shorten <=1pt] + + + +% Styles for marks: + +\tikzstyle{every token}= [] +\tikzstyle{token}= [fill=black,draw=none,circle, + inner sep=0.5pt,minimum size=1ex, + text=white,font=\tiny,every token] + +\tikzoption{token distance}{\def\tikz@token@distance{#1}} +\def\tikz@token@distance{1.5ex} + +\tikzstyle{children are tokens}= [growth function=\tikz@grow@tokens,edge from parent path=] + +\tikzoption{tokens}{% + \ifnum#1>0\relax% + \tikz@add@after@node@path{% + {[children are tokens]child foreach \tikz@dummy in {1,...,#1} {node[token]{}}}}% + \fi} + +\tikzoption{colored tokens}{% + \tikz@add@after@node@path{% + {[children are tokens]child foreach \tikz@child@color in {#1} {node[token,\tikz@child@color]{}}}}% + } + +\tikzoption{structured tokens}{% + \tikz@add@after@node@path{% + {[children are tokens]child foreach \tikz@child@name in {#1} {node[token]{\tikz@child@name}}}}% + } + + +\def\tikz@grow@tokens{% + \setlength{\pgf@xa}{\tikz@token@distance}% + \setlength{\pgf@ya}{\tikz@token@distance}% + \pgf@xc=0pt% + \pgf@yc=0pt% + \csname tikz@grow@tokens@placer@\the\tikznumberofchildren @\the\tikznumberofcurrentchild\endcsname% + \pgftransformshift{\pgfqpoint{\pgf@xc}{\pgf@yc}}% +} + +\def\tikz@def@grow@tokens#1#2#3#4{% + \expandafter\def\csname tikz@grow@tokens@placer@#1@#2\endcsname{% + \pgf@xc=#3\pgf@xa% + \pgf@yc=#4\pgf@ya}% +} + + +% Single token +\tikz@def@grow@tokens{1}{1}{0}{0} + +% Two tokens +\tikz@def@grow@tokens{2}{1}{-.5}{0} +\tikz@def@grow@tokens{2}{2}{.5}{0} + +% Three tokens +\tikz@def@grow@tokens{3}{1}{0} {0.57} +\tikz@def@grow@tokens{3}{2}{-.5}{-.306025} +\tikz@def@grow@tokens{3}{3}{.5} {-.306025} + +% Four tokens +\tikz@def@grow@tokens{4}{1}{-.5}{.5} +\tikz@def@grow@tokens{4}{2}{.5}{.5} +\tikz@def@grow@tokens{4}{3}{-.5}{-.5} +\tikz@def@grow@tokens{4}{4}{.5}{-.5} + +% Five tokens +\tikz@def@grow@tokens{5}{1}{0}{.85} +\tikz@def@grow@tokens{5}{2}{-0.808398}{0.26266} +\tikz@def@grow@tokens{5}{3}{0.808398}{0.26266} +\tikz@def@grow@tokens{5}{4}{-0.499617}{-0.687664} +\tikz@def@grow@tokens{5}{5}{0.499617}{-0.687664} + +% Six tokens +\tikz@def@grow@tokens{6}{1}{-1}{.5} +\tikz@def@grow@tokens{6}{2}{0}{.5} +\tikz@def@grow@tokens{6}{3}{1}{.5} +\tikz@def@grow@tokens{6}{4}{-1}{-.5} +\tikz@def@grow@tokens{6}{5}{0}{-.5} +\tikz@def@grow@tokens{6}{6}{1}{-.5} + +% Seven tokens +\tikz@def@grow@tokens{7}{1}{0}{1} +\tikz@def@grow@tokens{7}{2}{-1}{.5} +\tikz@def@grow@tokens{7}{3}{0}{0} +\tikz@def@grow@tokens{7}{4}{1}{.5} +\tikz@def@grow@tokens{7}{5}{-1}{-.5} +\tikz@def@grow@tokens{7}{6}{0}{-1} +\tikz@def@grow@tokens{7}{7}{1}{-.5} + +% Eight tokens +\tikz@def@grow@tokens{8}{1}{-.5}{1} +\tikz@def@grow@tokens{8}{2}{.5}{1} +\tikz@def@grow@tokens{8}{3}{-1}{0} +\tikz@def@grow@tokens{8}{4}{0}{0} +\tikz@def@grow@tokens{8}{5}{1}{0} +\tikz@def@grow@tokens{8}{6}{-1}{-1} +\tikz@def@grow@tokens{8}{7}{0}{-1} +\tikz@def@grow@tokens{8}{8}{1}{-1} + +% Eight tokens +\tikz@def@grow@tokens{9}{1}{-1}{1} +\tikz@def@grow@tokens{9}{2}{0}{1} +\tikz@def@grow@tokens{9}{3}{1}{1} +\tikz@def@grow@tokens{9}{4}{-1}{0} +\tikz@def@grow@tokens{9}{5}{0}{0} +\tikz@def@grow@tokens{9}{6}{1}{0} +\tikz@def@grow@tokens{9}{7}{-1}{-1} +\tikz@def@grow@tokens{9}{8}{0}{-1} +\tikz@def@grow@tokens{9}{9}{1}{-1} + + +\endinput diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzplothandlers.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzplothandlers.code.tex new file mode 100644 index 00000000000..d9179187394 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzplothandlers.code.tex @@ -0,0 +1,14 @@ +% Copyright 2006 by Till Tantau +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +% +% See the file doc/generic/pgf/licenses/LICENSE for more details. + +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikzplothandlers.code.tex,v 1.2 2006/10/11 15:22:26 tantau Exp $ + +\usepgflibrary{plothandlers} + +\endinput diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzplotmarks.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzplotmarks.code.tex new file mode 100644 index 00000000000..4455e03aac2 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzplotmarks.code.tex @@ -0,0 +1,14 @@ +% Copyright 2006 by Till Tantau +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +% +% See the file doc/generic/pgf/licenses/LICENSE for more details. + +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikzplotmarks.code.tex,v 1.2 2006/10/11 15:22:26 tantau Exp $ + +\usepgflibrary{plotmarks} + +\endinput diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzshapes.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzshapes.code.tex new file mode 100644 index 00000000000..ef4dcca2a7b --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzshapes.code.tex @@ -0,0 +1,14 @@ +% Copyright 2006 by Till Tantau +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +% +% See the file doc/generic/pgf/licenses/LICENSE for more details. + +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikzshapes.code.tex,v 1.2 2006/10/11 15:22:26 tantau Exp $ + +\usepgflibrary{shapes} + +\endinput diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzsnakes.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzsnakes.code.tex new file mode 100644 index 00000000000..0274721bd36 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzsnakes.code.tex @@ -0,0 +1,14 @@ +% Copyright 2006 by Till Tantau +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +% +% See the file doc/generic/pgf/licenses/LICENSE for more details. + +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikzsnakes.code.tex,v 1.2 2006/10/11 15:22:26 tantau Exp $ + +\usepgflibrary{snakes} + +\endinput diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikztopaths.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikztopaths.code.tex new file mode 100644 index 00000000000..c26ce1c018f --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikztopaths.code.tex @@ -0,0 +1,378 @@ +% Copyright 2006 by Till Tantau +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +% +% See the file doc/generic/pgf/licenses/LICENSE for more details. + +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikztopaths.code.tex,v 1.4 2006/10/11 15:22:26 tantau Exp $ + + +% Straight to + +\tikzstyle{line to}= [to path={-- (\tikztotarget) \tikztonodes}] + + +% Curved to + +\tikzstyle{every curve to}= [] +\tikzstyle{curve to}= [to path=\tikz@to@curve@path] + +\tikzoption{bend angle}{\def\tikz@to@bend{#1}} + +\tikzoption{bend left}[]{% + \def\pgf@temp{#1}% + \ifx\pgf@temp\pgf@empty% + \else% + \def\tikz@to@bend{#1}% + \fi% + \let\tikz@to@out=\tikz@to@bend% + \c@pgf@counta=180\relax% + \advance\c@pgf@counta by-\tikz@to@out\relax% + \edef\tikz@to@in{\the\c@pgf@counta}% + \tikz@to@switch@on% + \tikz@to@relativetrue% +} + +\tikzoption{bend right}[]{% + \def\pgf@temp{#1}% + \ifx\pgf@temp\pgf@empty% + \else% + \def\tikz@to@bend{#1}% + \fi% + % Now, negate + \c@pgf@counta=\tikz@to@bend\relax% + \c@pgf@counta=-\c@pgf@counta\relax% + \edef\tikz@to@out{\the\c@pgf@counta}% + \c@pgf@counta=180\relax% + \advance\c@pgf@counta by-\tikz@to@out\relax% + \edef\tikz@to@in{\the\c@pgf@counta}% + \tikz@to@switch@on% + \tikz@to@relativetrue% +} + +\tikzoption{relative}[true]{\csname tikz@to@relative#1\endcsname} +\newif\iftikz@to@relative +\tikz@to@relativefalse + +\tikzoption{in}{\def\tikz@to@in{#1}\tikz@to@switch@on} +\tikzoption{out}{\def\tikz@to@out{#1}\tikz@to@switch@on} + +\tikzoption{in looseness}{\tikz@to@set@in@looseness{#1}} +\tikzoption{out looseness}{\tikz@to@set@out@looseness{#1}} +\tikzoption{looseness}{\tikz@to@set@in@looseness{#1}\tikz@to@set@out@looseness{#1}} + +\tikzoption{in control}{\tikz@to@set@in@control{#1}} +\tikzoption{out control}{\tikz@to@set@out@control{#1}} +\tikzoption{controls}{\tikz@to@parse@controls#1\pgf@stop} + +\tikzoption{in min distance}{\tikz@to@set@distances{#1}{}{}{}} +\tikzoption{in max distance}{\tikz@to@set@distances{}{#1}{}{}} +\tikzoption{in distance}{\tikz@to@set@distances{#1}{#1}{}{}} +\tikzoption{out min distance}{\tikz@to@set@distances{}{}{#1}{}} +\tikzoption{out max distance}{\tikz@to@set@distances{}{}{}{#1}} +\tikzoption{out distance}{\tikz@to@set@distances{}{}{#1}{#1}} +\tikzoption{min distance}{\tikz@to@set@distances{#1}{}{#1}{}} +\tikzoption{max distance}{\tikz@to@set@distances{}{#1}{}{#1}} +\tikzoption{distance}{\tikz@to@set@distances{#1}{#1}{#1}{#1}} + +\def\tikz@to@set@distances#1#2#3#4{% + \tikz@to@setifnotempy{#1}{\tikz@to@in@min}{\let\tikz@to@end@compute=\tikz@to@end@compute@looseness}% + \tikz@to@setifnotempy{#2}{\tikz@to@in@max}{\let\tikz@to@end@compute=\tikz@to@end@compute@looseness}% + \tikz@to@setifnotempy{#3}{\tikz@to@out@min}{\let\tikz@to@start@compute=\tikz@to@start@compute@looseness}% + \tikz@to@setifnotempy{#4}{\tikz@to@out@max}{\let\tikz@to@start@compute=\tikz@to@start@compute@looseness}% + \tikz@to@switch@on% +} + +\def\tikz@to@setifnotempy#1#2#3{% + \def\pgf@temp{#1}% + \ifx\pgf@temp\pgf@empty\else\def#2{#1}#3\fi% +} + + +\def\tikz@to@set@in@looseness#1{% + \def\tikz@to@in@looseness{#1}% + \let\tikz@to@end@compute=\tikz@to@end@compute@looseness% + \tikz@to@switch@on% +} +\def\tikz@to@set@out@looseness#1{% + \def\tikz@to@out@looseness{#1}% + \let\tikz@to@start@compute=\tikz@to@start@compute@looseness% + \tikz@to@switch@on% +} + +\def\tikz@to@parse@controls#1and#2\pgf@stop{\tikz@to@set@in@control{#2}\tikz@to@set@out@control{#1}} + +\def\tikz@to@set@in@control#1{% + \def\tikz@to@in@control{#1}% + \let\tikz@to@end@compute=\tikz@to@end@compute@control% + \tikz@to@switch@on% +} +\def\tikz@to@set@out@control#1{% + \def\tikz@to@out@control{#1}% + \let\tikz@to@start@compute=\tikz@to@start@compute@control% + \tikz@to@switch@on% +} + + +\def\tikz@to@bend{30} + +\def\tikz@to@out{45} +\def\tikz@to@in{135} + +\def\tikz@to@out@looseness{1} +\def\tikz@to@in@looseness{1} + +\def\tikz@to@in@min{0pt} +\def\tikz@to@in@max{10000pt} +\def\tikz@to@out@min{0pt} +\def\tikz@to@out@max{10000pt} + +\def\tikz@to@switch@on{\let\tikz@to@path=\tikz@to@curve@path} + +\def\tikz@to@curve@path{% + [every curve to] + \pgfextra{\iftikz@to@relative\tikz@to@compute@relative\else\tikz@to@compute\fi} + \tikz@computed@path + \tikztonodes% +} + +\def\tikz@to@modify#1#2{% + \pgf@ifundefined{pgf@sh@ns@#1} + {}% + {\edef#1{#1.#2}} +}% + +\def\tikz@to@compute{% + \let\tikz@tofrom=\tikztostart% + \let\tikz@toto=\tikztotarget% + \tikz@to@modify\tikz@tofrom\tikz@to@out% + \tikz@to@modify\tikz@toto\tikz@to@in% + \ifx\tikz@to@start@compute\tikz@to@start@compute@looseness% + \tikz@to@compute@distance% + \else% + \ifx\tikz@from@start@compute\tikz@to@start@compute@looseness% + \tikz@to@compute@distance% + \fi% + \fi% + \tikz@to@start@compute% + \tikz@to@end@compute% + \edef\tikz@computed@path{.. controls \tikz@computed@start and \tikz@computed@end .. (\tikz@toto)} +} + +\def\tikz@to@compute@distance{\tikz@scan@one@point\tikz@@to@compute@distance(\tikz@tofrom)} +\def\tikz@@to@compute@distance#1{% + \def\tikz@first@point{#1}% + \tikz@scan@one@point\tikz@@@to@compute@distance(\tikz@toto)} +\def\tikz@@@to@compute@distance#1{% + \def\tikz@second@point{#1}% + \tikz@to@compute@distance@main% +} +\def\tikz@to@compute@distance@main{% + \pgf@process{\pgfpointdiff{\tikz@first@point}{\tikz@second@point}}% + \ifdim\pgf@x<0pt\pgf@xa=-\pgf@x\else\pgf@xa=\pgf@x\fi% + \ifdim\pgf@y<0pt\pgf@ya=-\pgf@y\else\pgf@ya=\pgf@y\fi% + % + % Calculate length of second to first 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=0.3915\pgf@xa% + \pgf@xa=\tikz@to@out@looseness\pgf@x% + \pgf@xb=\tikz@to@in@looseness\pgf@x% + % Adjust as necessary + \setlength{\pgf@ya}{\tikz@to@out@min} + \ifdim\pgf@xa<\pgf@ya% + \pgf@xa=\pgf@ya% + \fi% + \setlength{\pgf@ya}{\tikz@to@out@max} + \ifdim\pgf@xa>\pgf@ya% + \pgf@xa=\pgf@ya% + \fi% + \setlength{\pgf@ya}{\tikz@to@in@min} + \ifdim\pgf@xb<\pgf@ya% + \pgf@xb=\pgf@ya% + \fi% + \setlength{\pgf@ya}{\tikz@to@in@max} + \ifdim\pgf@xb>\pgf@ya% + \pgf@xb=\pgf@ya% + \fi% +} + +\def\tikz@to@start@compute@looseness{% + \edef\tikz@computed@start{([shift=(\tikz@to@out:\the\pgf@xa)]\tikz@tofrom)}% +} +\def\tikz@to@end@compute@looseness{% + \edef\tikz@computed@end{([shift=(\tikz@to@in:\the\pgf@xb)]\tikz@toto)}% +} +\def\tikz@to@start@compute@control{% + \let\tikz@computed@start=\tikz@to@out@control% +} +\def\tikz@to@end@compute@control{% + \let\tikz@computed@end=\tikz@to@in@control% +} + +\let\tikz@to@start@compute=\tikz@to@start@compute@looseness% +\let\tikz@to@end@compute=\tikz@to@end@compute@looseness% + + + + +% Relative curves + +\def\tikz@to@compute@relative{% + \tikz@scan@one@point\tikz@@to@compute@relative(\tikztostart)% +} +\def\tikz@@to@compute@relative#1{% + \def\tikz@tofrom{#1}% + \tikz@scan@one@point\tikz@@@to@compute@relative(\tikztotarget)% +} +\def\tikz@@@to@compute@relative#1{% + \def\tikz@toto{#1}% + \begingroup + % + % Adjust start and target so that they lie on the border in the + % rotated coordinate system. + % + \pgf@ifundefined{pgf@sh@ns@\tikztostart} + {% + \let\tikz@first@point=\tikz@tofrom% + \let\tikz@tostart@tikz=\pgf@empty + }% + {% + % Start computation of new start. + {% + \tikz@tofrom% + \pgf@xc=\pgf@x% + \pgf@yc=\pgf@y% + {% + \pgftransformreset% + \pgftransformshift{\pgfqpoint{\pgf@xc}{\pgf@yc}}% + \pgftransformrotate{\tikz@to@out}% + \pgftransformshift{\pgfqpoint{-\pgf@xc}{-\pgf@yc}}% + \pgf@process{\pgfpointtransformed{\tikz@toto}}% + }% + \pgf@xc=\pgf@x% + \pgf@yc=\pgf@y% + \pgfpointshapeborder{\tikztostart}{\pgfqpoint{\pgf@xc}{\pgf@yc}}% + \xdef\tikz@tofrom@smuggle{\noexpand\pgfpoint{\the\pgf@x}{\the\pgf@y}} + }% + \let\tikz@first@point=\tikz@tofrom@smuggle% + \tikz@first@point% + \edef\tikz@tostart@tikz{(\the\pgf@x,\the\pgf@y)}% + }% + \pgf@ifundefined{pgf@sh@ns@\tikztotarget} + {% + \let\tikz@second@point=\tikz@toto% + }% + {% + % Start computation of new target. + {% + \tikz@toto% + \pgf@xc=\pgf@x% + \pgf@yc=\pgf@y% + {% + \pgftransformreset% + \pgftransformshift{\pgfqpoint{\pgf@xc}{\pgf@yc}}% + \pgftransformrotate{180}% + \pgftransformrotate{\tikz@to@in}% + \pgftransformshift{\pgfqpoint{-\pgf@xc}{-\pgf@yc}}% + \pgf@process{\pgfpointtransformed{\tikz@tofrom}}% + }% + \pgf@xc=\pgf@x% + \pgf@yc=\pgf@y% + \pgfpointshapeborder{\tikztotarget}{\pgfqpoint{\pgf@xc}{\pgf@yc}}% + \xdef\tikz@toto@smuggle{\noexpand\pgfpoint{\the\pgf@x}{\the\pgf@y}} + }% + \let\tikz@second@point=\tikz@toto@smuggle% + }% + \tikz@second@point% + \edef\tikz@totarget@tikz{(\the\pgf@x,\the\pgf@y)}% + % + % Compute distances + % + \tikz@to@compute@distance@main% + \edef\tikz@to@first@distance{\the\pgf@xa}% + \edef\tikz@to@second@distance{\the\pgf@xb}% + % + % Next step: Establish a transformed coordinate system so that the (modified) + % start is at the origin and the (modified) target is at (1,0) + % + \pgftransformreset% + \pgf@process{\tikz@first@point}% + \pgf@xa=\pgf@x% + \pgf@ya=\pgf@y% + \pgf@process{\tikz@second@point}% + \advance\pgf@x by-\pgf@xa% + \advance\pgf@y by-\pgf@ya% + \pgfpointnormalised{}% + \pgf@xc=\pgf@x% + \pgf@yc=\pgf@y% + \pgf@xb=-\pgf@x% + \pgf@yb=-\pgf@y% + % + % Now compute the control points. + % + {% + \pgftransformshift{\tikz@first@point}% + \pgftransformcm{\pgf@sys@tonumber\pgf@xc}{\pgf@sys@tonumber\pgf@yc}{\pgf@sys@tonumber\pgf@yb}{\pgf@sys@tonumber\pgf@xc}% + {\pgfpointorigin}% + \pgf@process{\pgfpointtransformed{\pgfpointpolar{\tikz@to@out}{\tikz@to@first@distance}}}% + \xdef\tikz@computed@start{(\the\pgf@x,\the\pgf@y)}% + } + {% + \pgftransformshift{\tikz@second@point}% + \pgftransformcm{\pgf@sys@tonumber\pgf@xc}{\pgf@sys@tonumber\pgf@yc}{\pgf@sys@tonumber\pgf@yb}{\pgf@sys@tonumber\pgf@xc}% + {\pgfpointorigin}% + \pgf@process{\pgfpointtransformed{\pgfpointpolar{\tikz@to@in}{\tikz@to@second@distance}}}% + \xdef\tikz@computed@end{(\the\pgf@x,\the\pgf@y)}% + } + \xdef\tikz@computed@path{ + \tikz@tostart@tikz + .. controls \tikz@computed@start and \tikz@computed@end .. + \tikz@totarget@tikz}% + \endgroup +} + + + +% Loops + +\tikzstyle{loop}= [to path={ + \pgfextra{\let\tikztotarget=\tikztostart} + [looseness=8,min distance=5mm,every loop] + \tikz@to@curve@path + }] + +\tikzstyle{every loop}= [->,shorten >=1pt] + +\tikzstyle{loop right}= [right,out=15,in=-15,loop] +\tikzstyle{loop above}= [above,out=105,in=75,loop] +\tikzstyle{loop left}= [left,out=195,in=165,loop] +\tikzstyle{loop below}= [below,out=285,in=255,loop] + + + + + +\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 index 8f472237604..841b534fed3 100644 --- a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikztrees.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikztrees.code.tex @@ -1,10 +1,13 @@ -\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 . +% Copyright 2006 by Till Tantau +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. % -% This program can be redistributed and/or modified under the terms -% of the GNU Public License, version 2. +% See the file doc/generic/pgf/licenses/LICENSE for more details. +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikztrees.code.tex,v 1.7 2006/10/11 15:22:26 tantau Exp $ @@ -72,6 +75,27 @@ \pgftransformxshift{\the\tikzleveldistance}% } +\tikzoption{counterclockwise from}{\let\tikz@grow=\tikz@grow@circle@from\def\tikz@grow@circle@from@start{#1}} + +\def\tikz@grow@circle@from{% + \c@pgf@counta=\tikz@sibling@angle\relax% + \multiply\c@pgf@counta by\tikznumberofcurrentchild\relax% + \advance\c@pgf@counta by-\tikz@sibling@angle\relax% + \advance\c@pgf@counta by\tikz@grow@circle@from@start\relax% + \pgftransformshift{\pgfpointpolar{\the\c@pgf@counta}{\the\tikzleveldistance}}% +} + +\tikzoption{clockwise from}{\let\tikz@grow=\tikz@grow@circle@from@\def\tikz@grow@circle@from@start{#1}} + +\def\tikz@grow@circle@from@{% + \c@pgf@counta=\tikz@sibling@angle\relax% + \multiply\c@pgf@counta by-\tikznumberofcurrentchild\relax% + \advance\c@pgf@counta by\tikz@sibling@angle\relax% + \advance\c@pgf@counta by\tikz@grow@circle@from@start\relax% + \pgftransformshift{\pgfpointpolar{\the\c@pgf@counta}{\the\tikzleveldistance}}% +} + + % % Connections -- cgit v1.2.3