summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex')
-rw-r--r--Master/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex2563
1 files changed, 1365 insertions, 1198 deletions
diff --git a/Master/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex b/Master/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex
index 09d9a2fa122..7e3ff194bdf 100644
--- a/Master/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex
+++ b/Master/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex
@@ -7,7 +7,7 @@
%
% See the file doc/generic/pgf/licenses/LICENSE for more details.
-\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/frontendlayer/tikz/tikz.code.tex,v 1.151 2015/08/07 10:17:34 cfeuersaenger Exp $
+\ProvidesPackageRCS{tikz.code.tex}
\def\tikzerror#1{\pgfutil@packageerror{tikz}{#1}{}}
@@ -39,16 +39,15 @@
\newif\iftikz@snaked
\newif\iftikz@decoratepath
-% |\pgfutil@empty| is defined in \file{pgfutil-common.tex}.
-\let\tikz@options=\pgfutil@empty
+\let\tikz@options\pgfutil@empty
% |\tikz@addoption| adds \texttt{#1} at the end of the replacement
% text of |\tikz@options| without expansion.
\def\tikz@addoption#1{%
- \expandafter\def\expandafter\tikz@options\expandafter{\tikz@options#1}}
+ \expandafter\def\expandafter\tikz@options\expandafter{\tikz@options#1}}%
% Same as |tikz@addoption| for |\tikz@mode|. Note that |\tikz@mode| is
% initially let to |\pgfutil@empty| later (see path usage options).
\def\tikz@addmode#1{%
- \expandafter\def\expandafter\tikz@mode\expandafter{\tikz@mode#1}}
+ \expandafter\def\expandafter\tikz@mode\expandafter{\tikz@mode#1}}%
% Same as |tikz@addoption| for |\tikz@transform|. Works even if
% |\tikz@transform| is not defined. In that case, nothing is added to
% |\tikz@transform|: \texttt{#1} is expanded.
@@ -57,54 +56,55 @@
#1%
\else
\expandafter\def\expandafter\tikz@transform\expandafter{\tikz@transform#1}%
- \fi}
+ \fi
+}%
% TikZ options management.
% Setting up the tikz key family (key management needs
% \file{pgfkeys.code.tex});
-\pgfkeys{/tikz/.is family}
+\pgfkeys{/tikz/.is family}%
% |\tikzset| is a shortcut to set keys that belongs to the tikz
% family.
-\def\tikzset{\pgfqkeys{/tikz}}
+\def\tikzset{\pgfqkeys{/tikz}}%
% Note: |\tikzoption| is supported for compatibility only. |\tikzset|
% should be used instead.
\def\tikzoption#1{%
\pgfutil@ifnextchar[%]
- {\tikzoption@opt{#1}}{\tikzoption@noopt{#1}}}
+ {\tikzoption@opt{#1}}{\tikzoption@noopt{#1}}}%
\def\tikzoption@opt#1[#2]#3{%
\pgfkeysdef{/tikz/#1}{#3}%
- \pgfkeyssetvalue{/tikz/#1/.@def}{#2}}
+ \pgfkeyssetvalue{/tikz/#1/.@def}{#2}}%
\def\tikzoption@noopt#1#2{%
\pgfkeysdef{/tikz/#1}{#2}%
- \pgfkeyssetvalue{/tikz/#1/.@def}{\pgfkeysvaluerequired}}
+ \pgfkeyssetvalue{/tikz/#1/.@def}{\pgfkeysvaluerequired}}%
% Baseline options
\tikzoption{baseline}[0pt]{%
\pgfutil@ifnextchar(%)
- {\tikz@baseline@coordinate}{\tikz@baseline@simple}#1\@nil}
-\def\tikz@baseline@simple#1\@nil{\pgfsetbaseline{#1}}
+ {\tikz@baseline@coordinate}{\tikz@baseline@simple}#1\@nil}%
+\def\tikz@baseline@simple#1\@nil{\pgfsetbaseline{#1}}%
\def\tikz@baseline@coordinate#1\@nil{%
- \pgfsetbaselinepointlater{\tikz@scan@one@point\pgfutil@firstofone#1}}
+ \pgfsetbaselinepointlater{\tikz@scan@one@point\pgfutil@firstofone#1}}%
-\tikzoption{trim left}[0pt]{\pgfutil@ifnextchar({\tikz@trim@coordinate{left}}{\tikz@trim@simple{left}}#1\@nil}%)
-\tikzoption{trim right}{\pgfutil@ifnextchar({\tikz@trim@coordinate{right}}{\tikz@trim@simple{right}}#1\@nil}%)
-\def\tikz@trim@simple#1#2\@nil{\csname pgfsettrim#1\endcsname{#2}}
-\def\tikz@trim@coordinate#1#2\@nil{\csname pgfsettrim#1pointlater\endcsname{\tikz@scan@one@point\pgfutil@firstofone#2}}
+\tikzoption{trim left}[0pt]{\pgfutil@ifnextchar({\tikz@trim@coordinate{left}}{\tikz@trim@simple{left}}#1\@nil}%)%
+\tikzoption{trim right}{\pgfutil@ifnextchar({\tikz@trim@coordinate{right}}{\tikz@trim@simple{right}}#1\@nil}%)%
+\def\tikz@trim@simple#1#2\@nil{\csname pgfsettrim#1\endcsname{#2}}%
+\def\tikz@trim@coordinate#1#2\@nil{\csname pgfsettrim#1pointlater\endcsname{\tikz@scan@one@point\pgfutil@firstofone#2}}%
% Draw options
\tikzoption{line width}{\tikz@semiaddlinewidth{#1}}%
-\def\tikz@semiaddlinewidth#1{\tikz@addoption{\pgfsetlinewidth{#1}}\pgfmathsetlength\pgflinewidth{#1}}
+\def\tikz@semiaddlinewidth#1{\tikz@addoption{\pgfsetlinewidth{#1}}\pgfmathsetlength\pgflinewidth{#1}}%
-\tikzoption{cap}{\tikz@addoption{\csname pgfset#1cap\endcsname}}
-\tikzoption{join}{\tikz@addoption{\csname pgfset#1join\endcsname}}
-\tikzoption{line cap}{\tikz@addoption{\csname pgfset#1cap\endcsname}}
-\tikzoption{line join}{\tikz@addoption{\csname pgfset#1join\endcsname}}
-\tikzoption{miter limit}{\tikz@addoption{\pgfsetmiterlimit{#1}}}
+\tikzoption{cap}{\tikz@addoption{\csname pgfset#1cap\endcsname}}%
+\tikzoption{join}{\tikz@addoption{\csname pgfset#1join\endcsname}}%
+\tikzoption{line cap}{\tikz@addoption{\csname pgfset#1cap\endcsname}}%
+\tikzoption{line join}{\tikz@addoption{\csname pgfset#1join\endcsname}}%
+\tikzoption{miter limit}{\tikz@addoption{\pgfsetmiterlimit{#1}}}%
\tikzoption{dash pattern}{% syntax: on 2pt off 3pt on 4pt ...
\def\tikz@temp{#1}%
@@ -116,23 +116,37 @@
\expandafter\tikz@scandashon\pgfutil@gobble#1o\@nil%
\edef\tikz@temp{{\tikz@dashpattern}{\noexpand\tikz@dashphase}}%
\expandafter\tikz@addoption\expandafter{\expandafter\pgfsetdash\tikz@temp}%
- \fi}
+ \fi}%
\tikzoption{dash phase}{%
\def\tikz@dashphase{#1}%
\edef\tikz@temp{{\tikz@dashpattern}{\noexpand\tikz@dashphase}}%
\expandafter\tikz@addoption\expandafter{\expandafter\pgfsetdash\tikz@temp}%
}%
-\def\tikz@dashphase{0pt}
-\def\tikz@dashpattern{}
+\tikzoption{dash}{\tikz@parse@full@dash#1\pgf@stop}%
+\def\tikz@parse@full@dash#1phase#2\pgf@stop{%
+ \def\tikz@dashphase{#2}%
+ \def\tikz@temp{#1}%
+ \ifx\tikz@temp\pgfutil@empty%
+ \def\tikz@dashpattern{}%
+ \tikz@addoption{\pgfsetdash{}{0pt}}%
+ \else%
+ \def\tikz@dashpattern{}%
+ \expandafter\tikz@scandashon\pgfutil@gobble#1o\@nil%
+ \edef\tikz@temp{{\tikz@dashpattern}{\noexpand\tikz@dashphase}}%
+ \expandafter\tikz@addoption\expandafter{\expandafter\pgfsetdash\tikz@temp}%
+ \fi%
+}%
+\def\tikz@dashphase{0pt}%
+\def\tikz@dashpattern{}%
\def\tikz@scandashon n#1o{%
\expandafter\def\expandafter\tikz@dashpattern\expandafter{\tikz@dashpattern{#1}}%
- \pgfutil@ifnextchar\@nil{\pgfutil@gobble}{\tikz@scandashoff}}
+ \pgfutil@ifnextchar\@nil{\pgfutil@gobble}{\tikz@scandashoff}}%
\def\tikz@scandashoff ff#1o{%
\expandafter\def\expandafter\tikz@dashpattern\expandafter{\tikz@dashpattern{#1}}%
- \pgfutil@ifnextchar\@nil{\pgfutil@gobble}{\tikz@scandashon}}
+ \pgfutil@ifnextchar\@nil{\pgfutil@gobble}{\tikz@scandashon}}%
-\tikzoption{draw opacity}{\tikz@addoption{\pgfsetstrokeopacity{#1}}}
+\tikzoption{draw opacity}{\tikz@addoption{\pgfsetstrokeopacity{#1}}}%
% Double draw options
\tikzoption{double}[]{%
@@ -146,7 +160,7 @@
\fi%
\tikz@addmode{\tikz@mode@doubletrue}%
\tikzset{every double/.try}%
- \fi}
+ \fi}%
\tikzoption{double distance}{%
\pgfmathsetlength{\pgf@x}{#1}%
\edef\tikz@double@setup{%
@@ -156,7 +170,7 @@
\noexpand\pgfsetlinewidth{\pgflinewidth}%
\noexpand\pgfsetinnerlinewidth{\the\pgf@x}%
}%
- \tikzset{double}}
+ \tikzset{double}}%
\def\tikz@double@setup{%
\pgf@x=2\pgflinewidth%
\advance\pgf@x by0.6pt%
@@ -175,28 +189,28 @@
\noexpand\pgfsetlinewidth{\pgflinewidth}%
\noexpand\pgfsetinnerlinewidth{\pgf@xa}%
}%
- \tikzset{double}}}
-\tikzset{double equal sign distance/.style={double distance between line centers=0.45ex}}
+ \tikzset{double}}}%
+\tikzset{double equal sign distance/.style={double distance between line centers=0.45ex}}%
% Fill options
-\tikzoption{even odd rule}[]{\tikz@addoption{\pgfseteorule}}
-\tikzoption{nonzero rule}[]{\tikz@addoption{\pgfsetnonzerorule}}
+\tikzoption{even odd rule}[]{\tikz@addoption{\pgfseteorule}}%
+\tikzoption{nonzero rule}[]{\tikz@addoption{\pgfsetnonzerorule}}%
-\tikzoption{fill opacity}{\tikz@addoption{\pgfsetfillopacity{#1}}}
+\tikzoption{fill opacity}{\tikz@addoption{\pgfsetfillopacity{#1}}}%
% Joined fill/draw options
-\tikzoption{opacity}{\tikz@addoption{\pgfsetstrokeopacity{#1}\pgfsetfillopacity{#1}}}
+\tikzoption{opacity}{\tikz@addoption{\pgfsetstrokeopacity{#1}\pgfsetfillopacity{#1}}}%
% Blend mode
-\tikzset{blend mode/.code={\tikz@addoption{\pgfsetblendmode{#1}}}}
+\tikzset{blend mode/.code={\tikz@addoption{\pgfsetblendmode{#1}}}}%
% Main color options
@@ -220,45 +234,45 @@
\pgfsetcolor{.}%
\pgfsys@color@reset@inordertrue%
}%
- \def\tikz@textcolor{#1}}
+ \def\tikz@textcolor{#1}}%
% Rounding options
-\tikzoption{rounded corners}[4pt]{\pgfsetcornersarced{\pgfpoint{#1}{#1}}}
-\tikzoption{sharp corners}[]{\pgfsetcornersarced{\pgfpointorigin}}
+\tikzoption{rounded corners}[4pt]{\pgfsetcornersarced{\pgfpoint{#1}{#1}}}%
+\tikzoption{sharp corners}[]{\pgfsetcornersarced{\pgfpointorigin}}%
% Radii and arc options
-\tikzset{x radius/.initial=0pt}
-\tikzset{y radius/.initial=0pt}
-\tikzset{radius/.style={/tikz/x radius=#1,/tikz/y radius=#1}}
-\tikzset{start angle/.initial=}
-\tikzset{end angle/.initial=}
-\tikzset{delta angle/.initial=}
+\tikzset{x radius/.initial=0pt}%
+\tikzset{y radius/.initial=0pt}%
+\tikzset{radius/.style={/tikz/x radius=#1,/tikz/y radius=#1}}%
+\tikzset{start angle/.initial=}%
+\tikzset{end angle/.initial=}%
+\tikzset{delta angle/.initial=}%
% Coordinate options
-\tikzoption{x}{\tikz@handle@vec{\pgfsetxvec}{\tikz@handle@x}#1\relax}
-\tikzoption{y}{\tikz@handle@vec{\pgfsetyvec}{\tikz@handle@y}#1\relax}
-\tikzoption{z}{\tikz@handle@vec{\pgfsetzvec}{\tikz@handle@z}#1\relax}
+\tikzoption{x}{\tikz@handle@vec{\pgfsetxvec}{\tikz@handle@x}#1\relax}%
+\tikzoption{y}{\tikz@handle@vec{\pgfsetyvec}{\tikz@handle@y}#1\relax}%
+\tikzoption{z}{\tikz@handle@vec{\pgfsetzvec}{\tikz@handle@z}#1\relax}%
-\def\tikz@handle@vec#1#2{\pgfutil@ifnextchar({\tikz@handle@coordinate#1}{\tikz@handle@single#2}}
-\def\tikz@handle@coordinate#1{\tikz@scan@one@point#1}
-\def\tikz@handle@single#1#2\relax{#1{#2}}
-\def\tikz@handle@x#1{\pgfsetxvec{\pgfpoint{#1}{0pt}}}
-\def\tikz@handle@y#1{\pgfsetyvec{\pgfpoint{0pt}{#1}}}
-\def\tikz@handle@z#1{\pgfsetzvec{\pgfpoint{#1}{#1}}}
+\def\tikz@handle@vec#1#2{\pgfutil@ifnextchar({\tikz@handle@coordinate#1}{\tikz@handle@single#2}}%
+\def\tikz@handle@coordinate#1{\tikz@scan@one@point#1}%
+\def\tikz@handle@single#1#2\relax{#1{#2}}%
+\def\tikz@handle@x#1{\pgfsetxvec{\pgfpoint{#1}{0pt}}}%
+\def\tikz@handle@y#1{\pgfsetyvec{\pgfpoint{0pt}{#1}}}%
+\def\tikz@handle@z#1{\pgfsetzvec{\pgfpoint{#1}{#1}}}%
% Transformation options
-\tikzoption{scale}{\tikz@addtransform{\pgftransformscale{#1}}}
-\tikzoption{scale around}{\tikz@addtransform{\def\tikz@aroundaction{\pgftransformscale}\tikz@doaround{#1}}}
-\tikzoption{xscale}{\tikz@addtransform{\pgftransformxscale{#1}}}
-\tikzoption{xslant}{\tikz@addtransform{\pgftransformxslant{#1}}}
-\tikzoption{yscale}{\tikz@addtransform{\pgftransformyscale{#1}}}
-\tikzoption{yslant}{\tikz@addtransform{\pgftransformyslant{#1}}}
-\tikzoption{rotate}{\tikz@addtransform{\pgftransformrotate{#1}}}
-\tikzoption{rotate around}{\tikz@addtransform{\def\tikz@aroundaction{\pgftransformrotate}\tikz@doaround{#1}}}
+\tikzoption{scale}{\tikz@addtransform{\pgftransformscale{#1}}}%
+\tikzoption{scale around}{\tikz@addtransform{\def\tikz@aroundaction{\pgftransformscale}\tikz@doaround{#1}}}%
+\tikzoption{xscale}{\tikz@addtransform{\pgftransformxscale{#1}}}%
+\tikzoption{xslant}{\tikz@addtransform{\pgftransformxslant{#1}}}%
+\tikzoption{yscale}{\tikz@addtransform{\pgftransformyscale{#1}}}%
+\tikzoption{yslant}{\tikz@addtransform{\pgftransformyslant{#1}}}%
+\tikzoption{rotate}{\tikz@addtransform{\pgftransformrotate{#1}}}%
+\tikzoption{rotate around}{\tikz@addtransform{\def\tikz@aroundaction{\pgftransformrotate}\tikz@doaround{#1}}}%
\def\tikz@doaround#1{%
\edef\tikz@temp{#1}% get rid of active stuff
\expandafter\tikz@doparseA\tikz@temp%
@@ -266,7 +280,7 @@
\def\tikz@doparseA#1:{%
\def\tikz@temp@rot{#1}%
\tikz@scan@one@point\tikz@doparseB%
-}
+}%
\def\tikz@doparseB#1{%
\pgf@process{#1}%
\pgf@xc=\pgf@x%
@@ -274,21 +288,21 @@
\pgftransformshift{\pgfqpoint{\pgf@xc}{\pgf@yc}}%
\tikz@aroundaction{\tikz@temp@rot}%
\pgftransformshift{\pgfqpoint{-\pgf@xc}{-\pgf@yc}}%
-}
+}%
-\tikzoption{shift}{\tikz@addtransform{\tikz@scan@one@point\pgftransformshift#1\relax}}
-\tikzoption{xshift}{\tikz@addtransform{\pgftransformxshift{#1}}}
-\tikzoption{yshift}{\tikz@addtransform{\pgftransformyshift{#1}}}
-\tikzoption{cm}{\tikz@addtransform{\tikz@parse@cm#1\relax}}
-\tikzoption{reset cm}[]{\tikz@addtransform{\pgftransformreset}}
-\tikzoption{shift only}[]{\tikz@addtransform{\pgftransformresetnontranslations}}
+\tikzoption{shift}{\tikz@addtransform{\tikz@scan@one@point\pgftransformshift#1\relax}}%
+\tikzoption{xshift}{\tikz@addtransform{\pgftransformxshift{#1}}}%
+\tikzoption{yshift}{\tikz@addtransform{\pgftransformyshift{#1}}}%
+\tikzoption{cm}{\tikz@addtransform{\tikz@parse@cm#1\relax}}%
+\tikzoption{reset cm}[]{\tikz@addtransform{\pgftransformreset}}%
+\tikzoption{shift only}[]{\tikz@addtransform{\pgftransformresetnontranslations}}%
\def\tikz@parse@cm#1,#2,#3,#4,{%
\def\tikz@p@cm{{#1}{#2}{#3}{#4}}%
- \tikz@scan@one@point\tikz@parse@cmA}
+ \tikz@scan@one@point\tikz@parse@cmA}%
\def\tikz@parse@cmA#1{%
\expandafter\pgftransformcm\tikz@p@cm{#1}%
-}
+}%
\tikzset{transform canvas/.code=%
{%
@@ -303,7 +317,7 @@
\pgf@relevantforpicturesizefalse%
}%
}%
-}
+}%
\tikzset{turn/.code={%
\pgf@x=0pt%
@@ -318,21 +332,21 @@
{\pgf@sys@tonumber{\pgf@x}}{\pgf@sys@tonumber{\pgf@ya}}%
{\pgf@sys@tonumber{\pgf@y}}{\pgf@sys@tonumber{\pgf@x}}{\pgfqpoint{\tikz@lastx}{\tikz@lasty}}%
}%
-}
+}%
\def\tikz@tangent@lookup{%
\pgfgetpath\tikz@temp%
\pgfprocesspathextractpoints\tikz@temp%
\pgfpointsecondlastonpath%
-}
+}%
% Code for rotating the xyz coordinate system
% around the x, y, or z vector.
%
\def\tikz@xyz@rotate@let{%
- \let\pgf@z=\pgf@yc
+ \let\pgf@z=\pgf@yc%
\let\pgf@za=\pgf@xc%
-}
+}%
\def\tikz@xyz@rotate@xyz@xaxis#1#2#3#4{%
\tikz@xyz@rotate@let%
@@ -345,7 +359,7 @@
\advance\pgf@y by-\tikz@xyz@sin\pgf@za%
\pgf@z=\tikz@xyz@sin\pgf@ya%
\advance\pgf@z by\tikz@xyz@cos\pgf@za%
-}
+}%
\def\tikz@xyz@rotate@xyz@yaxis#1#2#3#4{%
\tikz@xyz@rotate@let%
@@ -358,7 +372,7 @@
\advance\pgf@x by\tikz@xyz@sin\pgf@za%
\pgf@z=-\tikz@xyz@sin\pgf@xa%
\advance\pgf@z by\tikz@xyz@cos\pgf@za%
-}
+}%
\def\tikz@xyz@rotate@xyz@zaxis#1#2#3#4{%
\tikz@xyz@rotate@let%
@@ -371,7 +385,7 @@
\advance\pgf@x by-\tikz@xyz@sin\pgf@ya%
\pgf@y=\tikz@xyz@sin\pgf@xa%
\advance\pgf@y by\tikz@xyz@cos\pgf@ya%
-}
+}%
\tikzset{rotate around x/.code={%
\tikz@xyz@rotate@let%
@@ -399,23 +413,23 @@
\tikz@xyz@rotate@xyz@zaxis{0pt}{1pt}{0pt}{\tikz@xyz@angle}%
\pgfsetyvec{\pgfpointxyz{\pgf@sys@tonumber{\pgf@x}}{\pgf@sys@tonumber{\pgf@y}}{\pgf@sys@tonumber{\pgf@z}}}%
\pgfsetxvec{\tikz@xyz@rotate@xvec}%
- }
-}
+ },
+}%
% Grid options
-\tikzoption{xstep}{\def\tikz@grid@x{#1}}
-\tikzoption{ystep}{\def\tikz@grid@y{#1}}
-\tikzoption{step}{\tikz@handle@vec{\tikz@step@point}{\tikz@step@single}#1\relax}
-\def\tikz@step@single#1{\def\tikz@grid@x{#1}\def\tikz@grid@y{#1}}
-\def\tikz@step@point#1{\pgf@process{#1}\edef\tikz@grid@x{\the\pgf@x}\edef\tikz@grid@y{\the\pgf@y}}
+\tikzoption{xstep}{\def\tikz@grid@x{#1}}%
+\tikzoption{ystep}{\def\tikz@grid@y{#1}}%
+\tikzoption{step}{\tikz@handle@vec{\tikz@step@point}{\tikz@step@single}#1\relax}%
+\def\tikz@step@single#1{\def\tikz@grid@x{#1}\def\tikz@grid@y{#1}}%
+\def\tikz@step@point#1{\pgf@process{#1}\edef\tikz@grid@x{\the\pgf@x}\edef\tikz@grid@y{\the\pgf@y}}%
-\def\tikz@grid@x{1cm}
-\def\tikz@grid@y{1cm}
+\def\tikz@grid@x{1cm}%
+\def\tikz@grid@y{1cm}%
% Current point updates
\newif\iftikz@current@point@local
-\tikzset{current point is local/.is if=tikz@current@point@local}
+\tikzset{current point is local/.is if=tikz@current@point@local}%
% Path usage options
\newif\iftikz@mode@double
@@ -428,16 +442,16 @@
\newif\iftikz@mode@fade@scope
\let\tikz@mode=\pgfutil@empty
-\def\tikz@nonetext{none}
+\def\tikz@nonetext{none}%
-\tikzoption{path only}[]{\let\tikz@mode=\pgfutil@empty}
+\tikzoption{path only}[]{\let\tikz@mode=\pgfutil@empty}%
\tikzset{
shade/.is choice,
shade/.default=true,
shade/true/.code=\tikz@addmode{\tikz@mode@shadetrue},
shade/false/.code=\tikz@addmode{\tikz@mode@shadefalse},
shade/none/.code=\tikz@addmode{\tikz@mode@shadefalse},
-}
+}%
\tikzoption{fill}[]{%
\edef\tikz@temp{#1}%
@@ -451,7 +465,7 @@
\fi%
\tikz@addmode{\tikz@mode@filltrue}%
\fi%
-}
+}%
\tikzoption{draw}[]{%
\edef\tikz@temp{#1}%
\ifx\tikz@temp\tikz@nonetext%
@@ -464,24 +478,24 @@
\fi%
\tikz@addmode{\tikz@mode@drawtrue}%
\fi%
-}
-\tikzoption{clip}[]{\tikz@addmode{\tikz@mode@cliptrue}}
-\tikzoption{use as bounding box}[]{\tikz@addmode{\tikz@mode@boundarytrue}}
+}%
+\tikzoption{clip}[]{\tikz@addmode{\tikz@mode@cliptrue}}%
+\tikzoption{use as bounding box}[]{\tikz@addmode{\tikz@mode@boundarytrue}}%
-\tikzoption{save path}{\tikz@addmode{\pgfsyssoftpath@getcurrentpath#1\global\let#1=#1}}
+\tikzoption{save path}{\tikz@addmode{\pgfsyssoftpath@getcurrentpath#1\global\let#1=#1}}%
\let\tikz@fillcolor=\pgfutil@empty
\let\tikz@strokecolor=\pgfutil@empty
% Insert a path using an option
-\tikzset{insert path/.code=\tikz@scan@next@command#1\pgf@stop}
+\tikzset{insert path/.code=\tikz@scan@next@command#1\pgf@stop}%
% Pattern options
\tikzset{pattern/.code=\tikzerror{You need to say \string\usetikzlibrary{patterns}},
- pattern color/.style=pattern}
+ pattern color/.style=pattern}%
% Path pictures
-\tikzset{path picture/.code=\tikz@addmode{\def\tikz@path@picture{#1}}}
+\tikzset{path picture/.code=\tikz@addmode{\def\tikz@path@picture{#1}}}%
% Fading options
\tikzset{path fading/.code={
@@ -496,7 +510,7 @@
\tikz@addmode{\tikz@mode@fade@pathtrue}%
\fi%
},
- path fading/.default=,
+ path fading/.default=,
scope fading/.code={
\def\tikz@temp{#1}%
\ifx\tikz@temp\tikz@nonetext%
@@ -509,83 +523,83 @@
\tikz@addmode{\tikz@mode@fade@scopetrue}%
\fi%
},
- scope fading/.default=}
-\tikzset{fit fading/.is if=tikz@fade@adjust}
-\tikzset{fading transform/.store in=\tikz@fade@transform}
-\tikzset{fading angle/.style={fading transform={rotate=#1}}}
+ scope fading/.default=}%
+\tikzset{fit fading/.is if=tikz@fade@adjust}%
+\tikzset{fading transform/.store in=\tikz@fade@transform}%
+\tikzset{fading angle/.style={fading transform={rotate=#1}}}%
-\newif\iftikz@fade@adjust
-\tikz@fade@adjusttrue
-\let\tikz@fade@transform\pgfutil@empty
+\newif\iftikz@fade@adjust%
+\tikz@fade@adjusttrue%
+\let\tikz@fade@transform\pgfutil@empty%
-\pgfutil@colorlet{transparent}{pgftransparent}
-\def\tikz@do@fade@transform{\let\tikz@transform=\relax\expandafter\tikzset\expandafter{\tikz@fade@transform}}
+\pgfutil@colorlet{transparent}{pgftransparent}%
+\def\tikz@do@fade@transform{\let\tikz@transform=\relax\expandafter\tikzset\expandafter{\tikz@fade@transform}}%
% Transparency groups
-\newif\iftikz@transparency@group
-\tikzset{/tikz/transparency group/.code=\tikz@transparency@grouptrue\def\tikz@transparency@group@options{isolated=true,#1}\let\tikz@blend@group\pgfutil@empty}
-\tikzset{/tikz/blend group/.code=\tikz@transparency@grouptrue\def\tikz@transparency@group@options{isolated=true}\def\tikz@blend@group{\pgfsetblendmode{#1}}}
+\newif\iftikz@transparency@group%
+\tikzset{/tikz/transparency group/.code=\tikz@transparency@grouptrue\def\tikz@transparency@group@options{isolated=true,#1}\let\tikz@blend@group\pgfutil@empty}%
+\tikzset{/tikz/blend group/.code=\tikz@transparency@grouptrue\def\tikz@transparency@group@options{isolated=true}\def\tikz@blend@group{\pgfsetblendmode{#1}}}%
\let\tikz@blend@group\pgfutil@empty
% Shading options
-\tikzoption{shading}{\def\tikz@shading{#1}\tikz@addmode{\tikz@mode@shadetrue}}
-\tikzoption{shading angle}{\def\tikz@shade@angle{#1}\tikz@addmode{\tikz@mode@shadetrue}}
+\tikzoption{shading}{\def\tikz@shading{#1}\tikz@addmode{\tikz@mode@shadetrue}}%
+\tikzoption{shading angle}{\def\tikz@shade@angle{#1}\tikz@addmode{\tikz@mode@shadetrue}}%
\tikzoption{top color}{%
\pgfutil@colorlet{tikz@axis@top}{#1}%
\pgfutil@colorlet{tikz@axis@middle}{tikz@axis@top!50!tikz@axis@bottom}%
- \def\tikz@shading{axis}\def\tikz@shade@angle{0}\tikz@addmode{\tikz@mode@shadetrue}}
+ \def\tikz@shading{axis}\def\tikz@shade@angle{0}\tikz@addmode{\tikz@mode@shadetrue}}%
\tikzoption{bottom color}{%
\pgfutil@colorlet{tikz@axis@bottom}{#1}%
\pgfutil@colorlet{tikz@axis@middle}{tikz@axis@top!50!tikz@axis@bottom}%
- \def\tikz@shading{axis}\def\tikz@shade@angle{0}\tikz@addmode{\tikz@mode@shadetrue}}
+ \def\tikz@shading{axis}\def\tikz@shade@angle{0}\tikz@addmode{\tikz@mode@shadetrue}}%
\tikzoption{middle color}{%
\pgfutil@colorlet{tikz@axis@middle}{#1}%
- \def\tikz@shading{axis}\tikz@addmode{\tikz@mode@shadetrue}}
+ \def\tikz@shading{axis}\tikz@addmode{\tikz@mode@shadetrue}}%
\tikzoption{left color}{%
\pgfutil@colorlet{tikz@axis@top}{#1}%
\pgfutil@colorlet{tikz@axis@middle}{tikz@axis@top!50!tikz@axis@bottom}%
- \def\tikz@shading{axis}\def\tikz@shade@angle{90}\tikz@addmode{\tikz@mode@shadetrue}}
+ \def\tikz@shading{axis}\def\tikz@shade@angle{90}\tikz@addmode{\tikz@mode@shadetrue}}%
\tikzoption{right color}{%
\pgfutil@colorlet{tikz@axis@bottom}{#1}%
\pgfutil@colorlet{tikz@axis@middle}{tikz@axis@top!50!tikz@axis@bottom}%
- \def\tikz@shading{axis}\def\tikz@shade@angle{90}\tikz@addmode{\tikz@mode@shadetrue}}
-\tikzoption{ball color}{\pgfutil@colorlet{tikz@ball}{#1}\def\tikz@shading{ball}\tikz@addmode{\tikz@mode@shadetrue}}
-\tikzoption{inner color}{\pgfutil@colorlet{tikz@radial@inner}{#1}\def\tikz@shading{radial}\tikz@addmode{\tikz@mode@shadetrue}}
-\tikzoption{outer color}{\pgfutil@colorlet{tikz@radial@outer}{#1}\def\tikz@shading{radial}\tikz@addmode{\tikz@mode@shadetrue}}
+ \def\tikz@shading{axis}\def\tikz@shade@angle{90}\tikz@addmode{\tikz@mode@shadetrue}}%
+\tikzoption{ball color}{\pgfutil@colorlet{tikz@ball}{#1}\def\tikz@shading{ball}\tikz@addmode{\tikz@mode@shadetrue}}%
+\tikzoption{inner color}{\pgfutil@colorlet{tikz@radial@inner}{#1}\def\tikz@shading{radial}\tikz@addmode{\tikz@mode@shadetrue}}%
+\tikzoption{outer color}{\pgfutil@colorlet{tikz@radial@outer}{#1}\def\tikz@shading{radial}\tikz@addmode{\tikz@mode@shadetrue}}%
-\def\tikz@shading{axis}
-\def\tikz@shade@angle{0}
+\def\tikz@shading{axis}%
+\def\tikz@shade@angle{0}%
\pgfdeclareverticalshading[tikz@axis@top,tikz@axis@middle,tikz@axis@bottom]{axis}{100bp}{%
color(0bp)=(tikz@axis@bottom);
color(25bp)=(tikz@axis@bottom);
color(50bp)=(tikz@axis@middle);
color(75bp)=(tikz@axis@top);
- color(100bp)=(tikz@axis@top)}
+ color(100bp)=(tikz@axis@top)}%
-\pgfutil@colorlet{tikz@axis@top}{gray}
-\pgfutil@colorlet{tikz@axis@middle}{gray!50!white}
-\pgfutil@colorlet{tikz@axis@bottom}{white}
+\pgfutil@colorlet{tikz@axis@top}{gray}%
+\pgfutil@colorlet{tikz@axis@middle}{gray!50!white}%
+\pgfutil@colorlet{tikz@axis@bottom}{white}%
\pgfdeclareradialshading[tikz@ball]{ball}{\pgfqpoint{-10bp}{10bp}}{%
color(0bp)=(tikz@ball!15!white);
color(9bp)=(tikz@ball!75!white);
color(18bp)=(tikz@ball!70!black);
color(25bp)=(tikz@ball!50!black);
- color(50bp)=(black)}
+ color(50bp)=(black)}%
-\pgfutil@colorlet{tikz@ball}{blue}
+\pgfutil@colorlet{tikz@ball}{blue}%
\pgfdeclareradialshading[tikz@radial@inner,tikz@radial@outer]{radial}{\pgfpointorigin}{%
color(0bp)=(tikz@radial@inner);
color(25bp)=(tikz@radial@outer);
- color(50bp)=(tikz@radial@outer)}
+ color(50bp)=(tikz@radial@outer)}%
-\pgfutil@colorlet{tikz@radial@inner}{gray}
-\pgfutil@colorlet{tikz@radial@outer}{white}
+\pgfutil@colorlet{tikz@radial@inner}{gray}%
+\pgfutil@colorlet{tikz@radial@outer}{white}%
% Pin options
@@ -598,10 +612,11 @@
pin edge={},
tikz@pin@post/.code={\global\let\tikz@pin@edge@style@smuggle=\tikz@pin@edge@style},
tikz@pre@pin@edge/.code={%
- \def\pgf@marshal{\tikzstyle{tikz@pin@options}=}
- \expandafter\pgf@marshal\expandafter[\tikz@pin@edge@style@smuggle]%
- }%
-}
+ \toks0=\expandafter{\tikz@pin@edge@style@smuggle}%
+ \edef\pgf@marshal{\noexpand\tikzset{tikz@pin@options/.style={\the\toks0}}}%
+ \pgf@marshal
+ },%
+}%
\tikzset{%
pin/.code={%
@@ -617,7 +632,7 @@
{\tikz@parse@pin@nonactive}
{\tikz@parse@pin@nonactive[]}#1:\pgf@nil}%
\fi
- \tikz@next}}
+ \tikz@next}}%
\begingroup
\catcode`\:=\active\relax
@@ -625,8 +640,8 @@
\gdef\tikz@parse@pin@active@i#1{%
\pgfutil@ifnextchar[%]
{\tikz@parse@pin@active}
- {\tikz@parse@pin@active[]}#1:\pgf@nil}
-
+ {\tikz@parse@pin@active[]}#1:\pgf@nil}%
+
\long\gdef\tikz@parse@pin@active[#1]#2:#3\pgf@nil{%
\def\tikz@temp{#3}%
\ifx\tikz@temp\pgfutil@empty
@@ -634,7 +649,7 @@
\tikz@@parse@pin@active[#1]\tikz@pin@default@pos:#2:\pgf@nil%
\else
\tikz@@parse@pin@active[#1]#2:#3\pgf@nil%
- \fi}
+ \fi}%
\long\gdef\tikz@@parse@pin@active[#1]#2:#3:\pgf@nil{%
\tikzset{%
@@ -647,14 +662,14 @@
anchor=@auto,
#1,
append after command = {%
- (\tikz@save@last@node)
+ (\tikz@save@last@node)
edge [every pin edge,
tikz@pre@pin@edge,
- tikz@pin@options]
+ tikz@pin@options]
(\tikzlastnode)},
tikz@label@post = \tikz@pin@distance,
tikz@pin@post] {#3}
- \egroup}}}
+ \egroup}}}%
\endgroup
\long\def\tikz@parse@pin@nonactive[#1]#2:#3\pgf@nil{%
@@ -664,7 +679,7 @@
\tikz@@parse@pin@nonactive[#1]\tikz@pin@default@pos:#2:\pgf@nil%
\else
\tikz@@parse@pin@nonactive[#1]#2:#3\pgf@nil%
- \fi}
+ \fi}%
\long\def\tikz@@parse@pin@nonactive[#1]#2:#3:\pgf@nil{%
\tikzset{%
@@ -677,14 +692,14 @@
anchor=@auto,
#1,
append after command = {%
- (\tikz@save@last@node)
+ (\tikz@save@last@node)
edge [every pin edge,
tikz@pre@pin@edge,
- tikz@pin@options]
+ tikz@pin@options]
(\tikzlastnode)},
tikz@label@post = \tikz@pin@distance,
tikz@pin@post] {#3}
- \egroup}}}
+ \egroup}}}%
% Label and pin options
@@ -695,10 +710,10 @@
label position=above,
absolute/.is if=tikz@absolute,
tikz@label@angle/.store in=\tikz@label@angle
-}
+}%
\newif\iftikz@absolute
-\def\tikz@on@text{center}
+\def\tikz@on@text{center}%
\tikzset{tikz@label@post/.code 2 args={
\edef\tikz@label@angle{\tikz@label@angle}%
@@ -715,7 +730,7 @@
{\pgfpointadd{\pgfpointanchor{\tikzlastnode}{center}}{\pgfpointpolar{\tikz@label@angle}{1pt}}}}%
\edef\tikz@node@at{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
\tikz@compute@direction{\tikz@label@angle}%
- \tikz@addtransform{\pgftransformshift{\pgfpointpolar{\tikz@label@angle}{#1}}}%
+ \tikz@addtransform{\pgftransformshift{\pgfpointpolar{\tikz@label@angle}{#1}}}%
\else%
\pgf@process{\pgfpointanchor{\tikzlastnode}{\tikz@label@angle}}%
\edef\tikz@node@at{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
@@ -734,9 +749,9 @@
\fi%
\fi%
\fi%
- \iftikz@label@simple%
+ \iftikz@label@simple%
\tikz@compute@direction{\tikz@label@angle}%
- \tikz@addtransform{\pgftransformshift{\pgfpointpolar{\tikz@label@angle}{#1}}}%
+ \tikz@addtransform{\pgftransformshift{\pgfpointpolar{\tikz@label@angle}{#1}}}%
\else%
\pgf@process{\pgfpointnormalised{%
\pgfpointdiff{\pgfpointtransformed{\pgfqpoint{\pgf@xc}{\pgf@yc}}}{\pgfpointtransformed{\pgfqpoint{\pgf@xb}{\pgf@yb}}}}}%
@@ -754,8 +769,8 @@
\fi%
\fi%
\fi}
-}
-
+}%
+
\newif\iftikz@label@simple%
\tikzset{%
@@ -772,7 +787,7 @@
{\tikz@parse@label@nonactive}
{\tikz@parse@label@nonactive[]}#1:\pgf@nil}%
\fi
- \tikz@next}}
+ \tikz@next}}%
\begingroup
\catcode`\:=\active\relax
@@ -780,8 +795,8 @@
\gdef\tikz@parse@label@active@i#1{%
\pgfutil@ifnextchar[%]
{\tikz@parse@label@active}
- {\tikz@parse@label@active[]}#1:\pgf@nil}
-
+ {\tikz@parse@label@active[]}#1:\pgf@nil}%
+
\gdef\tikz@parse@label@active[#1]#2:#3\pgf@nil{%
\def\tikz@temp{#3}%
\ifx\tikz@temp\pgfutil@empty
@@ -795,11 +810,11 @@
\tikz@@parse@label@active[#1]#2:#3\pgf@nil%
\fi
\fi
- }
+ }%
\gdef\tikz@@parse@label@active[#1]#2:#3:\pgf@nil{%
\tikzset{%
- append after command = {%
+ append after command = {%
\bgroup
[current point is local=true]
\pgfextra{\let\tikz@save@last@fig@name=\tikz@last@fig@name\tikz@node@is@a@labelfalse}
@@ -807,9 +822,9 @@
tikz@label@angle = #2,
anchor=@auto,
#1,
- tikz@label@post = \tikz@label@distance] {\iftikz@handle@active@nodes\expandafter\scantokens\else\expandafter\pgfutil@firstofone\fi{#3}}
+ tikz@label@post = \tikz@label@distance] {\iftikz@handle@active@nodes\expandafter\scantokens\else\expandafter\pgfutil@firstofone\fi{#3\ignorespaces}}
\pgfextra{\global\let\tikz@last@fig@name=\tikz@save@last@fig@name}
- \egroup}}}
+ \egroup}}}%
\endgroup
\def\tikz@parse@label@nonactive[#1]#2:#3\pgf@nil{%
@@ -825,30 +840,30 @@
\tikz@@parse@label@nonactive[#1]#2:#3\pgf@nil%
\fi
\fi
-}
+}%
\def\tikz@@parse@label@nonactive[#1]#2:#3:\pgf@nil{%
\tikzset{%
- append after command = {%
+ append after command = {%
\bgroup
[current point is local=true]
\pgfextra{\let\tikz@save@last@fig@name=\tikz@last@fig@name\tikz@node@is@a@labelfalse}
- node [every label,
+ node [every label,
tikz@label@angle = #2,
anchor=@auto,
#1,
- tikz@label@post = \tikz@label@distance] {\iftikz@handle@active@nodes\expandafter\scantokens\else\expandafter\pgfutil@firstofone\fi{#3}}
+ tikz@label@post = \tikz@label@distance] {\iftikz@handle@active@nodes\expandafter\scantokens\else\expandafter\pgfutil@firstofone\fi{#3\ignorespaces}}
\pgfextra{\global\let\tikz@last@fig@name=\tikz@save@last@fig@name}
- \egroup}}}
+ \egroup}}}%
-\expandafter\def\csname tikz@label@angle@is@right\endcsname{\def\tikz@label@angle{0}}
-\expandafter\def\csname tikz@label@angle@is@above right\endcsname{\def\tikz@label@angle{45}}
-\expandafter\def\csname tikz@label@angle@is@above\endcsname{\def\tikz@label@angle{90}}
-\expandafter\def\csname tikz@label@angle@is@above left\endcsname{\def\tikz@label@angle{135}}
-\expandafter\def\csname tikz@label@angle@is@left\endcsname{\def\tikz@label@angle{180}}
-\expandafter\def\csname tikz@label@angle@is@below left\endcsname{\def\tikz@label@angle{225}}
-\expandafter\def\csname tikz@label@angle@is@below\endcsname{\def\tikz@label@angle{270}}
-\expandafter\def\csname tikz@label@angle@is@below right\endcsname{\def\tikz@label@angle{315}}
+\expandafter\def\csname tikz@label@angle@is@right\endcsname{\def\tikz@label@angle{0}}%
+\expandafter\def\csname tikz@label@angle@is@above right\endcsname{\def\tikz@label@angle{45}}%
+\expandafter\def\csname tikz@label@angle@is@above\endcsname{\def\tikz@label@angle{90}}%
+\expandafter\def\csname tikz@label@angle@is@above left\endcsname{\def\tikz@label@angle{135}}%
+\expandafter\def\csname tikz@label@angle@is@left\endcsname{\def\tikz@label@angle{180}}%
+\expandafter\def\csname tikz@label@angle@is@below left\endcsname{\def\tikz@label@angle{225}}%
+\expandafter\def\csname tikz@label@angle@is@below\endcsname{\def\tikz@label@angle{270}}%
+\expandafter\def\csname tikz@label@angle@is@below right\endcsname{\def\tikz@label@angle{315}}%
\def\tikz@compute@direction#1{%
\ifx\tikz@anchor\tikz@auto@text%
@@ -879,87 +894,87 @@
\else%
\def\tikz@anchor{west}%
\fi\fi\fi\fi\fi\fi\fi\fi%
- \fi%
-}
-\def\tikz@auto@text{@auto}
+ \fi%
+}%
+\def\tikz@auto@text{@auto}%
% General node options
\tikzset{
- name/.code={\edef\tikz@fig@name{\tikz@pp@name{#1}}},%
+ name/.code={\edef\tikz@fig@name{\tikz@pp@name{#1}}\let\tikz@id@name\tikz@fig@name},%
name prefix/.initial=,%
name suffix/.initial=%
-}
-\def\tikz@pp@name#1{\csname pgfk@/tikz/name prefix\endcsname#1\csname pgfk@/tikz/name suffix\endcsname}
+}%
+\def\tikz@pp@name#1{\csname pgfk@/tikz/name prefix\endcsname#1\csname pgfk@/tikz/name suffix\endcsname}%
\tikzset{
node contents/.code=\def\tikz@node@content{#1},
- pic type/.code=\def\tikz@node@content{#1}, % alias
-}
+ pic type/.code=\def\tikz@node@content{#1}, % alias
+}%
\tikzset{
behind path/.code=\def\tikz@whichbox{\tikz@figbox@bg},
in front of path/.code=\def\tikz@whichbox{\tikz@figbox}
-}
-\def\tikz@whichbox{\tikz@figbox}
+}%
+\def\tikz@whichbox{\tikz@figbox}%
-\tikzoption{at}{\tikz@scan@one@point\tikz@set@at#1}
+\tikzoption{at}{\tikz@scan@one@point\tikz@set@at#1}%
\def\tikz@set@at#1{\def\tikz@node@at{#1}}%
-\tikzoption{shape}{\edef\tikz@shape{#1}}
+\tikzoption{shape}{\edef\tikz@shape{#1}}%
-\tikzoption{nodes}{\tikzstyle{every node}+=[#1]}
+\tikzoption{nodes}{\tikzset{every node/.append style={#1}}}%
\tikzset{alias/.code={%
\tikz@fig@mustbenamed
- \begingroup
- \toks0=\expandafter{\tikz@alias}%
- \edef\pgf@temp{\noexpand\pgfnodealias{\tikz@pp@name{#1}}{\noexpand\tikz@fig@name}}%
- \toks1=\expandafter{\pgf@temp}%
- \xdef\pgf@marshal{%
- \noexpand\def\noexpand\tikz@alias{\the\toks0 \the\toks1 }%
- }%
- \endgroup
- \pgf@marshal
-}}
+ \begingroup
+ \toks0=\expandafter{\tikz@alias}%
+ \edef\pgf@temp{\noexpand\pgfnodealias{\tikz@pp@name{#1}}{\noexpand\tikz@fig@name}}%
+ \toks1=\expandafter{\pgf@temp}%
+ \xdef\pgf@marshal{%
+ \noexpand\def\noexpand\tikz@alias{\the\toks0 \the\toks1 }%
+ }%
+ \endgroup
+ \pgf@marshal
+}}%
% deprecated:
-\def\tikzaddafternodepathoption#1{#1\tikzset{prefix after command={\pgfextra{#1}}}}
-\tikzset{after node path/.style={append after command={#1}}}
+\def\tikzaddafternodepathoption#1{#1\tikzset{prefix after command={\pgfextra{#1}}}}%
+\tikzset{after node path/.style={append after command={#1}}}%
% Pic options
\newif\iftikz@node@is@pic
-\tikzset{pic text/.store in=\tikzpictext}
+\tikzset{pic text/.store in=\tikzpictext}%
\let\tikzpictext\relax
-\tikzset{pic text options/.store in=\tikzpictextoptions}
+\tikzset{pic text options/.store in=\tikzpictextoptions}%
\let\tikzpictextoptions\pgfutil@empty
% Anchoring
-\tikzoption{anchor}{\def\tikz@anchor{#1}\let\tikz@do@auto@anchor=\relax}
+\tikzoption{anchor}{\def\tikz@anchor{#1}\let\tikz@do@auto@anchor=\relax}%
-\tikzoption{left}[]{\def\tikz@anchor{east}\tikz@possibly@transform{x}{-}{#1}}
-\tikzoption{right}[]{\def\tikz@anchor{west}\tikz@possibly@transform{x}{}{#1}}
-\tikzoption{above}[]{\def\tikz@anchor{south}\tikz@possibly@transform{y}{}{#1}}
-\tikzoption{below}[]{\def\tikz@anchor{north}\tikz@possibly@transform{y}{-}{#1}}
+\tikzoption{left}[]{\def\tikz@anchor{east}\tikz@possibly@transform{x}{-}{#1}}%
+\tikzoption{right}[]{\def\tikz@anchor{west}\tikz@possibly@transform{x}{}{#1}}%
+\tikzoption{above}[]{\def\tikz@anchor{south}\tikz@possibly@transform{y}{}{#1}}%
+\tikzoption{below}[]{\def\tikz@anchor{north}\tikz@possibly@transform{y}{-}{#1}}%
\tikzoption{above left}[]%
{\def\tikz@anchor{south east}%
- \tikz@possibly@transform{x}{-}{#1}\tikz@possibly@transform{y}{}{#1}}
+ \tikz@possibly@transform{x}{-}{#1}\tikz@possibly@transform{y}{}{#1}}%
\tikzoption{above right}[]%
{\def\tikz@anchor{south west}%
- \tikz@possibly@transform{x}{}{#1}\tikz@possibly@transform{y}{}{#1}}
+ \tikz@possibly@transform{x}{}{#1}\tikz@possibly@transform{y}{}{#1}}%
\tikzoption{below left}[]%
{\def\tikz@anchor{north east}%
- \tikz@possibly@transform{x}{-}{#1}\tikz@possibly@transform{y}{-}{#1}}
+ \tikz@possibly@transform{x}{-}{#1}\tikz@possibly@transform{y}{-}{#1}}%
\tikzoption{below right}[]%
{\def\tikz@anchor{north west}%
- \tikz@possibly@transform{x}{}{#1}\tikz@possibly@transform{y}{-}{#1}}
-\tikzset{centered/.code=\def\tikz@anchor{center}}
-
-\tikzoption{node distance}{\def\tikz@node@distance{#1}}
-\def\tikz@node@distance{1cm}
+ \tikz@possibly@transform{x}{}{#1}\tikz@possibly@transform{y}{-}{#1}}%
+\tikzset{centered/.code=\def\tikz@anchor{center}}%
+
+\tikzoption{node distance}{\def\tikz@node@distance{#1}}%
+\def\tikz@node@distance{1cm}%
% The following are deprecated:
\tikzoption{above of}{\tikz@of{#1}{90}}%
@@ -976,17 +991,17 @@
\tikz@addtransform{%
\expandafter\tikz@extract@node@dist\tikz@node@distance and\pgf@stop%
\pgftransformshift{\pgfpointpolar{#2}{\tikz@extracted@node@distance}}}%
- \def\tikz@node@at{\pgfpointanchor{#1}{center}}}
+ \def\tikz@node@at{\pgfpointanchor{#1}{center}}}%
\def\tikz@extract@node@dist#1and#2\pgf@stop{%
- \def\tikz@extracted@node@distance{#1}}
+ \def\tikz@extracted@node@distance{#1}}%
\tikzset{
transform shape nonlinear/.is choice,
transform shape nonlinear/.default=true,
transform shape nonlinear/true/.code=\let\tikz@nlt\relax,
transform shape nonlinear/false/.code=\def\tikz@nlt{\pgfapproximatenonlineartranslation},
- transform shape nonlinear=false
-}
+ transform shape nonlinear=false,
+}%
\tikzoption{transform shape}[true]{%
@@ -996,7 +1011,7 @@
\else%
\pgfresetnontranslationattimetrue%
\fi%
-}
+}%
\newif\iftikz@fullytransformed
\pgfresetnontranslationattimetrue%
@@ -1012,30 +1027,30 @@
\pgfmathsetlength{\pgf@x}{#3}%
\pgf@x=#2\pgf@x\relax%
\edef\tikz@marshal{\noexpand\tikz@addtransform{%
- \expandafter\noexpand\csname pgftransform#1shift\endcsname{\the\pgf@x}}}%
+ \expandafter\noexpand\csname pgftransform#1shift\endcsname{\the\pgf@x}}}%
\tikz@marshal%
\fi%
-}
+}%
% Inter-picture options
\tikzoption{remember picture}[true]{\csname pgfrememberpicturepositiononpage#1\endcsname}
\tikzset{
- overlay/.is choice,
- overlay/true/.code={\pgf@relevantforpicturesizefalse},
- overlay/false/.code={\pgf@relevantforpicturesizetrue},
- overlay/.default=true
+ overlay/.is choice,
+ overlay/true/.code={\pgf@relevantforpicturesizefalse},
+ overlay/false/.code={\pgf@relevantforpicturesizetrue},
+ overlay/.default=true
}
% Line/curve label placement options
-\tikzoption{sloped}[true]{\csname pgfslopedattime#1\endcsname}
-\tikzoption{allow upside down}[true]{\csname pgfallowupsidedownattime#1\endcsname}
+\tikzoption{sloped}[true]{\csname pgfslopedattime#1\endcsname}%
+\tikzoption{allow upside down}[true]{\csname pgfallowupsidedownattime#1\endcsname}%
-\tikzoption{pos}{\edef\tikz@time{#1}\ifx\tikz@time\pgfutil@empty\else\pgfmathsetmacro\tikz@time{\tikz@time}\fi}
+\tikzoption{pos}{\edef\tikz@time{#1}\ifx\tikz@time\pgfutil@empty\else\pgfmathsetmacro\tikz@time{\tikz@time}\fi}%
-\tikzoption{auto}[]{\csname tikz@install@auto@anchor@#1\endcsname}
+\tikzoption{auto}[]{\csname tikz@install@auto@anchor@#1\endcsname}%
\tikzoption{swap}[]{%
\def\tikz@temp{left}%
\ifx\tikz@auto@anchor@direction\tikz@temp%
@@ -1043,39 +1058,39 @@
\else%
\def\tikz@auto@anchor@direction{left}%
\fi%
-}
-\tikzset{'/.style=swap} % shorthand
+}%
+\tikzset{'/.style=swap}% shorthand
-\def\tikz@install@auto@anchor@{\let\tikz@do@auto@anchor=\tikz@auto@anchor@on}
-\def\tikz@install@auto@anchor@false{\let\tikz@do@auto@anchor=\relax}
-\def\tikz@install@auto@anchor@left{\let\tikz@do@auto@anchor=\tikz@auto@anchor@on\def\tikz@auto@anchor@direction{left}}
-\def\tikz@install@auto@anchor@right{\let\tikz@do@auto@anchor=\tikz@auto@anchor@on\def\tikz@auto@anchor@direction{right}}
+\def\tikz@install@auto@anchor@{\let\tikz@do@auto@anchor=\tikz@auto@anchor@on}%
+\def\tikz@install@auto@anchor@false{\let\tikz@do@auto@anchor=\relax}%
+\def\tikz@install@auto@anchor@left{\let\tikz@do@auto@anchor=\tikz@auto@anchor@on\def\tikz@auto@anchor@direction{left}}%
+\def\tikz@install@auto@anchor@right{\let\tikz@do@auto@anchor=\tikz@auto@anchor@on\def\tikz@auto@anchor@direction{right}}%
\let\tikz@do@auto@anchor=\relax%
\def\tikz@auto@anchor@on{\csname tikz@auto@anchor@\tikz@auto@anchor@direction\endcsname}
-\def\tikz@auto@anchor@left{\tikz@auto@pre\tikz@auto@anchor\tikz@auto@post}
-\def\tikz@auto@anchor@right{\tikz@auto@pre\tikz@auto@anchor@prime\tikz@auto@post}
+\def\tikz@auto@anchor@left{\tikz@auto@pre\tikz@auto@anchor\tikz@auto@post}%
+\def\tikz@auto@anchor@right{\tikz@auto@pre\tikz@auto@anchor@prime\tikz@auto@post}%
-\def\tikz@auto@anchor@direction{left}
+\def\tikz@auto@anchor@direction{left}%
% Text options
-\tikzoption{text}{\def\tikz@textcolor{#1}}
-\tikzoption{font}{\def\tikz@textfont{#1}}
-\tikzoption{node font}{\def\tikz@node@textfont{#1}}
-\tikzoption{text opacity}{\def\tikz@textopacity{#1}}
-\tikzoption{text width}{\def\tikz@text@width{#1}}
-\tikzoption{text height}{\def\tikz@text@height{#1}}
-\tikzoption{text depth}{\def\tikz@text@depth{#1}}
+\tikzoption{text}{\def\tikz@textcolor{#1}}%
+\tikzoption{font}{\def\tikz@textfont{#1}}%
+\tikzoption{node font}{\def\tikz@node@textfont{#1}}%
+\tikzoption{text opacity}{\def\tikz@textopacity{#1}}%
+\tikzoption{text width}{\def\tikz@text@width{#1}}%
+\tikzoption{text height}{\def\tikz@text@height{#1}}%
+\tikzoption{text depth}{\def\tikz@text@depth{#1}}%
\tikzoption{text ragged}[]%
-{\def\tikz@text@action{\pgfutil@raggedright\rightskip0pt plus2em \spaceskip.3333em \xspaceskip.5em\relax}}
-\tikzoption{text badly ragged}[]{\def\tikz@text@action{\pgfutil@raggedright\relax}}
+{\def\tikz@text@action{\pgfutil@raggedright\rightskip0pt plus2em \spaceskip.3333em \xspaceskip.5em\relax}}%
+\tikzoption{text badly ragged}[]{\def\tikz@text@action{\pgfutil@raggedright\relax}}%
\tikzoption{text ragged left}[]%
-{\def\tikz@text@action{\pgfutil@raggedleft\leftskip0pt plus2em \spaceskip.3333em \xspaceskip.5em\relax}}
-\tikzoption{text badly ragged left}[]{\def\tikz@text@action{\pgfutil@raggedleft\relax}}
-\tikzoption{text justified}[]{\def\tikz@text@action{\leftskip0pt\rightskip0pt\relax}}
+{\def\tikz@text@action{\pgfutil@raggedleft\leftskip0pt plus2em \spaceskip.3333em \xspaceskip.5em\relax}}%
+\tikzoption{text badly ragged left}[]{\def\tikz@text@action{\pgfutil@raggedleft\relax}}%
+\tikzoption{text justified}[]{\def\tikz@text@action{\leftskip0pt\rightskip0pt\relax}}%
\tikzoption{text centered}[]{\def\tikz@text@action{%
\leftskip0pt plus2em%
\rightskip0pt plus2em%
@@ -1083,14 +1098,14 @@
\parfillskip=0pt%
\iftikz@warn@for@narrow@centered\else\hbadness10000\fi%
\let\\=\@centercr% for latex
- \relax}}
+ \relax}}%
\tikzoption{text badly centered}[]%
{\def\tikz@text@action{%
\let\\=\@centercr% for latex
\parfillskip=0pt%
\rightskip\pgfutil@flushglue%
- \leftskip\pgfutil@flushglue\relax}}
-\tikzset{badness warnings for centered text/.is if=tikz@warn@for@narrow@centered}
+ \leftskip\pgfutil@flushglue\relax}}%
+\tikzset{badness warnings for centered text/.is if=tikz@warn@for@narrow@centered}%
\newif\iftikz@warn@for@narrow@centered
\let\tikz@text@width=\pgfutil@empty
@@ -1101,7 +1116,7 @@
\let\tikz@textopacity=\pgfutil@empty
\let\tikz@node@textfont=\pgfutil@empty
-\def\tikz@text@action{\pgfutil@raggedright\rightskip0pt plus2em \spaceskip.3333em \xspaceskip.5em\relax}
+\def\tikz@text@action{\pgfutil@raggedright\rightskip0pt plus2em \spaceskip.3333em \xspaceskip.5em\relax}%
% Alignment
@@ -1115,23 +1130,23 @@
align/center/.style={text centered,node halign header=\tikz@align@center@header},
align/flush center/.style={text badly centered,node halign header=\tikz@align@center@header},
align/justify/.style ={text justified,node halign header=\tikz@align@left@header},
- align/none/.style ={text justified,node halign header=}
-}
-\def\tikz@align@left@header{##\hfil\cr}
-\def\tikz@align@right@header{\hfil##\cr}
-\def\tikz@align@center@header{\hfil##\hfil\cr}
+ align/none/.style ={text justified,node halign header=},
+}%
+\def\tikz@align@left@header{##\hfil\cr}%
+\def\tikz@align@right@header{\hfil##\cr}%
+\def\tikz@align@center@header{\hfil##\hfil\cr}%
% Arrow options
-\tikzoption{arrows}{\tikz@processarrows{#1}}
+\tikzoption{arrows}{\tikz@processarrows{#1}}%
\tikzoption{>}{\pgfdeclarearrow{name=<->,means={#1}}}%
-\pgfdeclarearrow{name=|<->|, means={>[sep=0pt].|}}
+\pgfdeclarearrow{name=|<->|, means={>[sep=0pt].|}}%
-\tikzoption{shorten <}{\pgfsetshortenstart{#1}}
-\tikzoption{shorten >}{\pgfsetshortenend{#1}}
+\tikzoption{shorten <}{\pgfsetshortenstart{#1}}%
+\tikzoption{shorten >}{\pgfsetshortenend{#1}}%
\def\tikz@processarrows#1{%
\def\tikz@current@arrows{#1}%
@@ -1140,94 +1155,94 @@
\else%
\pgfsetarrows{#1}%
\fi%
-}
+}%
-\def\tikz@current@arrows{-}
+\def\tikz@current@arrows{-}%
% Parabola options
\tikzoption{bend}{\tikz@scan@one@point\tikz@set@parabola@bend#1\relax}%
-\tikzoption{bend pos}{\def\tikz@parabola@bend@factor{#1}}
+\tikzoption{bend pos}{\def\tikz@parabola@bend@factor{#1}}%
\tikzoption{parabola height}{%
\def\tikz@parabola@bend@factor{.5}%
- \def\tikz@parabola@bend{\pgfpointadd{\pgfpoint{0pt}{#1}}{\tikz@last@position@saved}}}
+ \def\tikz@parabola@bend{\pgfpointadd{\pgfpoint{0pt}{#1}}{\tikz@last@position@saved}}}%
-\def\tikz@parabola@bend{\tikz@last@position@saved}
-\def\tikz@parabola@bend@factor{0}
+\def\tikz@parabola@bend{\tikz@last@position@saved}%
+\def\tikz@parabola@bend@factor{0}%
-\def\tikz@set@parabola@bend#1{\def\tikz@parabola@bend{#1}}
+\def\tikz@set@parabola@bend#1{\def\tikz@parabola@bend{#1}}%
% Axis options
-\tikzoption{domain}{\edef\tikz@plot@domain{#1}\expandafter\tikz@plot@samples@recalc\tikz@plot@domain\relax}
-\tikzoption{range}{\def\tikz@plot@range{#1}}
-\tikzoption{yrange}{\def\tikz@plot@range{#1}}
+\tikzoption{domain}{\edef\tikz@plot@domain{#1}\expandafter\tikz@plot@samples@recalc\tikz@plot@domain\relax}%
+\tikzoption{range}{\def\tikz@plot@range{#1}}%
+\tikzoption{yrange}{\def\tikz@plot@range{#1}}%
\let\tikz@plot@range=\pgfutil@empty
-\tikzoption{xrange}{\def\tikz@plot@xrange{#1}}
+\tikzoption{xrange}{\def\tikz@plot@xrange{#1}}%
\let\tikz@plot@xrange=\pgfutil@empty
% Plot options
-\tikzoption{smooth}[]{\let\tikz@plot@handler=\pgfplothandlercurveto}
-\tikzoption{smooth cycle}[]{\let\tikz@plot@handler=\pgfplothandlerclosedcurve}
-\tikzoption{sharp plot}[]{\let\tikz@plot@handler\pgfplothandlerlineto}
-\tikzoption{sharp cycle}[]{\let\tikz@plot@handler\pgfplothandlerpolygon}
-
-\tikzoption{tension}{\pgfsetplottension{#1}}
-
-\tikzoption{xcomb}[]{\let\tikz@plot@handler=\pgfplothandlerxcomb}
-\tikzoption{ycomb}[]{\let\tikz@plot@handler=\pgfplothandlerycomb}
-\tikzoption{polar comb}[]{\let\tikz@plot@handler=\pgfplothandlerpolarcomb}
-\tikzoption{ybar}[]{\let\tikz@plot@handler=\pgfplothandlerybar}
-\tikzoption{ybar interval}[]{\let\tikz@plot@handler=\pgfplothandlerybarinterval}
-\tikzoption{xbar interval}[]{\let\tikz@plot@handler=\pgfplothandlerxbarinterval}
-\tikzoption{xbar}[]{\let\tikz@plot@handler=\pgfplothandlerxbar}
-\tikzoption{const plot}[]{\let\tikz@plot@handler=\pgfplothandlerconstantlineto}
-\tikzoption{const plot mark left}[]{\let\tikz@plot@handler=\pgfplothandlerconstantlineto}
-\tikzoption{const plot mark right}[]{\let\tikz@plot@handler=\pgfplothandlerconstantlinetomarkright}
-\tikzoption{const plot mark mid}[]{\let\tikz@plot@handler=\pgfplothandlerconstantlinetomarkmid}
-\tikzoption{jump mark right}[]{\let\tikz@plot@handler=\pgfplothandlerjumpmarkright}
-\tikzoption{jump mark mid}[]{\let\tikz@plot@handler=\pgfplothandlerjumpmarkmid}
-\tikzoption{jump mark left}[]{\let\tikz@plot@handler=\pgfplothandlerjumpmarkleft}
-
-\tikzoption{raw gnuplot}[true]{\csname tikz@plot@raw@gnuplot#1\endcsname}
-\tikzoption{prefix}{\def\tikz@plot@prefix{#1}}
-\tikzoption{id}{\def\tikz@plot@id{#1}}
-
-\tikzoption{samples}{\pgfmathsetmacro\tikz@plot@samples{max(2,#1)}\expandafter\tikz@plot@samples@recalc\tikz@plot@domain\relax}
-\tikzoption{samples at}{\def\tikz@plot@samplesat{#1}}
-\tikzoption{parametric}[true]{\csname tikz@plot@parametric#1\endcsname}
-
-\tikzoption{variable}{\def\tikz@plot@var{#1}}
-
-\tikzoption{only marks}[]{\let\tikz@plot@handler\pgfplothandlerdiscard}
+\tikzoption{smooth}[]{\let\tikz@plot@handler=\pgfplothandlercurveto}%
+\tikzoption{smooth cycle}[]{\let\tikz@plot@handler=\pgfplothandlerclosedcurve}%
+\tikzoption{sharp plot}[]{\let\tikz@plot@handler\pgfplothandlerlineto}%
+\tikzoption{sharp cycle}[]{\let\tikz@plot@handler\pgfplothandlerpolygon}%
+
+\tikzoption{tension}{\pgfsetplottension{#1}}%
+
+\tikzoption{xcomb}[]{\let\tikz@plot@handler=\pgfplothandlerxcomb}%
+\tikzoption{ycomb}[]{\let\tikz@plot@handler=\pgfplothandlerycomb}%
+\tikzoption{polar comb}[]{\let\tikz@plot@handler=\pgfplothandlerpolarcomb}%
+\tikzoption{ybar}[]{\let\tikz@plot@handler=\pgfplothandlerybar}%
+\tikzoption{ybar interval}[]{\let\tikz@plot@handler=\pgfplothandlerybarinterval}%
+\tikzoption{xbar interval}[]{\let\tikz@plot@handler=\pgfplothandlerxbarinterval}%
+\tikzoption{xbar}[]{\let\tikz@plot@handler=\pgfplothandlerxbar}%
+\tikzoption{const plot}[]{\let\tikz@plot@handler=\pgfplothandlerconstantlineto}%
+\tikzoption{const plot mark left}[]{\let\tikz@plot@handler=\pgfplothandlerconstantlineto}%
+\tikzoption{const plot mark right}[]{\let\tikz@plot@handler=\pgfplothandlerconstantlinetomarkright}%
+\tikzoption{const plot mark mid}[]{\let\tikz@plot@handler=\pgfplothandlerconstantlinetomarkmid}%
+\tikzoption{jump mark right}[]{\let\tikz@plot@handler=\pgfplothandlerjumpmarkright}%
+\tikzoption{jump mark mid}[]{\let\tikz@plot@handler=\pgfplothandlerjumpmarkmid}%
+\tikzoption{jump mark left}[]{\let\tikz@plot@handler=\pgfplothandlerjumpmarkleft}%
+
+\tikzoption{raw gnuplot}[true]{\csname tikz@plot@raw@gnuplot#1\endcsname}%
+\tikzoption{prefix}{\def\tikz@plot@prefix{#1}}%
+\tikzoption{id}{\def\tikz@plot@id{#1}}%
+
+\tikzoption{samples}{\pgfmathsetmacro\tikz@plot@samples{max(2,#1)}\expandafter\tikz@plot@samples@recalc\tikz@plot@domain\relax}%
+\tikzoption{samples at}{\def\tikz@plot@samplesat{#1}}%
+\tikzoption{parametric}[true]{\csname tikz@plot@parametric#1\endcsname}%
+
+\tikzoption{variable}{\def\tikz@plot@var{#1}}%
+
+\tikzoption{only marks}[]{\let\tikz@plot@handler\pgfplothandlerdiscard}%
\tikzoption{mark}{%
- \def\tikz@plot@mark{#1}%
- \def\tikz@temp{none}%
- \ifx\tikz@temp\tikz@plot@mark
- \let\tikz@plot@mark=\pgfutil@empty
- \fi
-}
+ \def\tikz@plot@mark{#1}%
+ \def\tikz@temp{none}%
+ \ifx\tikz@temp\tikz@plot@mark
+ \let\tikz@plot@mark=\pgfutil@empty
+ \fi
+}%
\tikzset{
- no marks/.style={mark=none},%
- no markers/.style={mark=none},%
- every mark/.style={},
- mark options/.style={%
- every mark/.style={#1}%
- }}
-\tikzoption{mark size}{\pgfsetplotmarksize{#1}}
-
-\tikzoption{mark indices}{\def\tikz@mark@list{#1}}
-\tikzoption{mark phase}{\pgfsetplotmarkphase{#1}}
-\tikzoption{mark repeat}{\pgfsetplotmarkrepeat{#1}}
+ no marks/.style={mark=none},%
+ no markers/.style={mark=none},%
+ every mark/.style={},
+ mark options/.style={%
+ every mark/.style={#1}%
+ }}%
+\tikzoption{mark size}{\pgfsetplotmarksize{#1}}%
+
+\tikzoption{mark indices}{\def\tikz@mark@list{#1}}%
+\tikzoption{mark phase}{\pgfsetplotmarkphase{#1}}%
+\tikzoption{mark repeat}{\pgfsetplotmarkrepeat{#1}}%
\let\tikz@mark@list=\pgfutil@empty
\let\tikz@plot@handler=\pgfplothandlerlineto
\let\tikz@plot@mark=\pgfutil@empty
-\def\tikz@plot@samples{25}
-\def\tikz@plot@domain{-5:5}
-\def\tikz@plot@var{\x}
-\def\tikz@plot@samplesat{-5,-4.5833333,...,5}
+\def\tikz@plot@samples{25}%
+\def\tikz@plot@domain{-5:5}%
+\def\tikz@plot@var{\x}%
+\def\tikz@plot@samplesat{-5,-4.5833333,...,5}%
\def\tikz@plot@samples@recalc#1:#2\relax{%
\begingroup
\pgfmathparse{#1}%
@@ -1251,11 +1266,11 @@
\fi%
\pgfmath@smuggleone\tikz@plot@samplesat
\endgroup
-}
+}%
-\def\tikz@plot@prefix{\jobname.}
-\def\tikz@plot@id{pgf-plot}
+\def\tikz@plot@prefix{\jobname.}%
+\def\tikz@plot@id{pgf-plot}%
\newif\iftikz@plot@parametric
\newif\iftikz@plot@raw@gnuplot
@@ -1264,11 +1279,11 @@
%
% To and edge options
%
-\tikzoption{to path}{\def\tikz@to@path{#1}}
+\tikzoption{to path}{\def\tikz@to@path{#1}}%
-\def\tikz@to@path{-- (\tikztotarget) \tikztonodes}
+\def\tikz@to@path{-- (\tikztotarget) \tikztonodes}%
-\tikzset{edge macro/.store in=\tikz@edge@macro}
+\tikzset{edge macro/.store in=\tikz@edge@macro}%
\let\tikz@edge@macro\pgfutil@empty
\tikzset{
@@ -1276,8 +1291,8 @@
\expandafter\def\expandafter\tikz@tonodes\expandafter{\tikz@tonodes #1}
},
edge label/.style={/tikz/edge node={node[auto]{#1}}},
- edge label'/.style={/tikz/edge node={node[auto,swap]{#1}}}
-}
+ edge label'/.style={/tikz/edge node={node[auto,swap]{#1}}},
+}%
% After command options
@@ -1289,36 +1304,36 @@
\expandafter\expandafter\expandafter\tikz@after@path%
\expandafter\expandafter\expandafter{%
\expandafter\tikz@temp\tikz@after@path}%
- }
-}
+ },
+}%
\let\tikz@after@path\pgfutil@empty
% Tree options
\newif\iftikz@child@missing
-\pgfkeys{/tikz/missing/.is if=tikz@child@missing}
+\pgfkeys{/tikz/missing/.is if=tikz@child@missing}%
-\tikzset{edge from parent macro/.initial=\tikz@edge@from@parent@macro}
+\tikzset{edge from parent macro/.initial=\tikz@edge@from@parent@macro}%
\def\tikz@edge@from@parent@macro#1#2{
- [style=edge from parent, #1, /utils/exec=\tikz@node@is@a@labeltrue] \tikz@edge@to@parent@path #2}
+ [style=edge from parent, #1, /utils/exec=\tikz@node@is@a@labeltrue] \tikz@edge@to@parent@path #2}%
-\tikzoption{edge from parent path}{\def\tikz@edge@to@parent@path{#1}}
+\tikzoption{edge from parent path}{\def\tikz@edge@to@parent@path{#1}}%
-\tikzoption{parent anchor}{\def\tikzparentanchor{.#1}\ifx\tikzparentanchor\tikz@border@text\let\tikzparentanchor\pgfutil@empty\fi}
-\tikzoption{child anchor}{\def\tikzchildanchor{.#1}\ifx\tikzchildanchor\tikz@border@text\let\tikzchildanchor\pgfutil@empty\fi}
+\tikzoption{parent anchor}{\def\tikzparentanchor{.#1}\ifx\tikzparentanchor\tikz@border@text\let\tikzparentanchor\pgfutil@empty\fi}%
+\tikzoption{child anchor}{\def\tikzchildanchor{.#1}\ifx\tikzchildanchor\tikz@border@text\let\tikzchildanchor\pgfutil@empty\fi}%
-\tikzoption{level distance}{\pgfmathsetlength\tikzleveldistance{#1}}
-\tikzoption{sibling distance}{\pgfmathsetlength\tikzsiblingdistance{#1}}
+\tikzoption{level distance}{\pgfmathsetlength\tikzleveldistance{#1}}%
+\tikzoption{sibling distance}{\pgfmathsetlength\tikzsiblingdistance{#1}}%
-\tikzoption{growth function}{\let\tikz@grow=#1}
+\tikzoption{growth function}{\let\tikz@grow=#1}%
-\tikzset{grow siblings on line/.style={growth function=\tikz@grow@direction}}
+\tikzset{grow siblings on line/.style={growth function=\tikz@grow@direction}}%
-\tikzoption{growth parent anchor}{\def\tikz@growth@anchor{#1}}
+\tikzoption{growth parent anchor}{\def\tikz@growth@anchor{#1}}%
\tikzoption{grow}{\tikz@set@growth{#1}\edef\tikz@special@level{\the\tikztreelevel}}%
\tikzoption{grow'}{\tikz@set@growth{#1}\tikz@swap@growth\edef\tikz@special@level{\the\tikztreelevel}}%
-\def\tikz@growth@anchor{center}
+\def\tikz@growth@anchor{center}%
\def\tikz@special@level{-1}% never
@@ -1341,30 +1356,30 @@
\edef\tikz@angle@grow@left{\the\c@pgf@counta}%
\advance\c@pgf@counta by180\relax%
\edef\tikz@angle@grow@right{\the\c@pgf@counta}%
-}
+}%
-\def\tikz@border@text{.border}
+\def\tikz@border@text{.border}%
\let\tikzparentanchor=\pgfutil@empty
\let\tikzchildanchor=\pgfutil@empty
-\def\tikz@edge@to@parent@path{(\tikzparentnode\tikzparentanchor) -- (\tikzchildnode\tikzchildanchor)}
+\def\tikz@edge@to@parent@path{(\tikzparentnode\tikzparentanchor) -- (\tikzchildnode\tikzchildanchor)}%
-\tikzleveldistance=15mm
-\tikzsiblingdistance=15mm
+\tikzleveldistance=15mm%
+\tikzsiblingdistance=15mm%
-\def\tikz@grow@direction@down{-90}
-\def\tikz@grow@direction@up{90}
-\def\tikz@grow@direction@left{180}
-\def\tikz@grow@direction@right{0}
+\def\tikz@grow@direction@down{-90}%
+\def\tikz@grow@direction@up{90}%
+\def\tikz@grow@direction@left{180}%
+\def\tikz@grow@direction@right{0}%
-\def\tikz@grow@direction@south{-90}
-\def\tikz@grow@direction@north{90}
-\def\tikz@grow@direction@west{180}
-\def\tikz@grow@direction@east{0}
+\def\tikz@grow@direction@south{-90}%
+\def\tikz@grow@direction@north{90}%
+\def\tikz@grow@direction@west{180}%
+\def\tikz@grow@direction@east{0}%
-\expandafter\def\csname tikz@grow@direction@north east\endcsname{45}
-\expandafter\def\csname tikz@grow@direction@north west\endcsname{135}
-\expandafter\def\csname tikz@grow@direction@south east\endcsname{-45}
-\expandafter\def\csname tikz@grow@direction@south west\endcsname{-135}
+\expandafter\def\csname tikz@grow@direction@north east\endcsname{45}%
+\expandafter\def\csname tikz@grow@direction@north west\endcsname{135}%
+\expandafter\def\csname tikz@grow@direction@south east\endcsname{-45}%
+\expandafter\def\csname tikz@grow@direction@south west\endcsname{-135}%
\def\tikz@grow@direction{%
\pgftransformshift{\pgfpointpolar{\tikz@angle@grow}{\tikzleveldistance}}%
@@ -1377,30 +1392,30 @@
\pgftransformshift{\pgfpointpolar{\tikz@angle@grow@left}{\pgfutil@tempdima}}%
\pgftransformshift{\pgfpointpolar{\tikz@angle@grow@right}{\tikznumberofcurrentchild\tikzsiblingdistance}}%
\fi%
-}
+}%
-\tikzset{grow=down}
+\tikzset{grow=down}%
% Snakes are in a lib:
-\tikzset{snake/.code=\tikzerror{You need to say \string\usetikzlibrary{snakes}}}
+\tikzset{snake/.code=\tikzerror{You need to say \string\usetikzlibrary{snakes}}}%
% Decorations
-\tikzset{decorate/.code=\tikzerror{You need to load a decoration library}}
+\tikzset{decorate/.code=\tikzerror{You need to load a decoration library}}%
% Matrix options
-\usepgfmodule{matrix}
+\usepgfmodule{matrix}%
-\tikzoption{matrix}[true]{\csname tikz@is@matrix#1\endcsname}
+\tikzoption{matrix}[true]{\csname tikz@is@matrix#1\endcsname}%
-\tikzoption{matrix anchor}{\def\tikz@matrix@anchor{#1}}
+\tikzoption{matrix anchor}{\def\tikz@matrix@anchor{#1}}%
-\tikzoption{column sep}{\def\pgfmatrixcolumnsep{#1}}
-\tikzoption{row sep}{\def\pgfmatrixrowsep{#1}}
+\tikzoption{column sep}{\def\pgfmatrixcolumnsep{#1}}%
+\tikzoption{row sep}{\def\pgfmatrixrowsep{#1}}%
-\tikzoption{cells}{\tikzstyle{every cell}+=[#1]}
+\tikzoption{cells}{\tikzset{every cell/.append style={#1}}}%
-\tikzoption{ampersand replacement}{\def\tikz@ampersand@replacement{#1}}
+\tikzoption{ampersand replacement}{\def\tikz@ampersand@replacement{#1}}%
\newif\iftikz@is@matrix
\let\tikz@matrix@anchor=\pgfutil@empty
@@ -1411,25 +1426,25 @@
\tikzset{%
handle active characters in code/.is if=tikz@handle@active@code,
handle active characters in nodes/.is if=tikz@handle@active@nodes,
-}
+}%
\newif\iftikz@handle@active@code
\newif\iftikz@handle@active@nodes
% Execute option
-\tikzoption{execute at begin picture}{\expandafter\def\expandafter\tikz@atbegin@picture\expandafter{\tikz@atbegin@picture#1}}
-\tikzoption{execute at end picture}{\expandafter\def\expandafter\tikz@atend@picture\expandafter{\tikz@atend@picture#1}}
-\tikzoption{execute at begin scope}{\expandafter\def\expandafter\tikz@atbegin@scope\expandafter{\tikz@atbegin@scope#1}}
-\tikzoption{execute at end scope}{\expandafter\def\expandafter\tikz@atend@scope\expandafter{\tikz@atend@scope#1}}
-\tikzoption{execute at begin to}{\expandafter\def\expandafter\tikz@atbegin@to\expandafter{\tikz@atbegin@to#1}}
-\tikzoption{execute at end to}{\expandafter\def\expandafter\tikz@atend@to\expandafter{\tikz@atend@to#1}}
-\tikzoption{execute at begin node}{\expandafter\def\expandafter\tikz@atbegin@node\expandafter{\tikz@atbegin@node#1}}
-\tikzoption{execute at end node}{\expandafter\def\expandafter\tikz@atend@node\expandafter{\tikz@atend@node#1}}
-\tikzoption{execute at begin matrix}{\expandafter\def\expandafter\tikz@atbegin@matrix\expandafter{\tikz@atbegin@matrix#1}}
-\tikzoption{execute at end matrix}{\expandafter\def\expandafter\tikz@atend@matrix\expandafter{\tikz@atend@matrix#1}}
-\tikzoption{execute at begin cell}{\expandafter\def\expandafter\tikz@atbegin@cell\expandafter{\tikz@atbegin@cell#1}}
-\tikzoption{execute at end cell}{\expandafter\def\expandafter\tikz@atend@cell\expandafter{\tikz@atend@cell#1}}
-\tikzoption{execute at empty cell}{\expandafter\def\expandafter\tikz@at@emptycell\expandafter{\tikz@at@emptycell#1}}
+\tikzoption{execute at begin picture}{\expandafter\def\expandafter\tikz@atbegin@picture\expandafter{\tikz@atbegin@picture#1}}%
+\tikzoption{execute at end picture}{\expandafter\def\expandafter\tikz@atend@picture\expandafter{\tikz@atend@picture#1}}%
+\tikzoption{execute at begin scope}{\expandafter\def\expandafter\tikz@atbegin@scope\expandafter{\tikz@atbegin@scope#1}}%
+\tikzoption{execute at end scope}{\expandafter\def\expandafter\tikz@atend@scope\expandafter{\tikz@atend@scope#1}}%
+\tikzoption{execute at begin to}{\expandafter\def\expandafter\tikz@atbegin@to\expandafter{\tikz@atbegin@to#1}}%
+\tikzoption{execute at end to}{\expandafter\def\expandafter\tikz@atend@to\expandafter{\tikz@atend@to#1}}%
+\tikzoption{execute at begin node}{\expandafter\def\expandafter\tikz@atbegin@node\expandafter{\tikz@atbegin@node#1}}%
+\tikzoption{execute at end node}{\expandafter\def\expandafter\tikz@atend@node\expandafter{\tikz@atend@node#1}}%
+\tikzoption{execute at begin matrix}{\expandafter\def\expandafter\tikz@atbegin@matrix\expandafter{\tikz@atbegin@matrix#1}}%
+\tikzoption{execute at end matrix}{\expandafter\def\expandafter\tikz@atend@matrix\expandafter{\tikz@atend@matrix#1}}%
+\tikzoption{execute at begin cell}{\expandafter\def\expandafter\tikz@atbegin@cell\expandafter{\tikz@atbegin@cell#1}}%
+\tikzoption{execute at end cell}{\expandafter\def\expandafter\tikz@atend@cell\expandafter{\tikz@atend@cell#1}}%
+\tikzoption{execute at empty cell}{\expandafter\def\expandafter\tikz@at@emptycell\expandafter{\tikz@at@emptycell#1}}%
\let\tikz@atbegin@picture=\pgfutil@empty
\let\tikz@atend@picture=\pgfutil@empty
@@ -1447,17 +1462,17 @@
% Pre and post actions
-\tikzset{preaction/.code=\expandafter\def\expandafter\tikz@preactions\expandafter{\tikz@preactions\tikz@extra@preaction{#1}}}
-\tikzset{postaction/.code=\expandafter\def\expandafter\tikz@postactions\expandafter{\tikz@postactions\tikz@extra@postaction{#1}}}
+\tikzset{preaction/.code=\expandafter\def\expandafter\tikz@preactions\expandafter{\tikz@preactions\tikz@extra@preaction{#1}}}%
+\tikzset{postaction/.code=\expandafter\def\expandafter\tikz@postactions\expandafter{\tikz@postactions\tikz@extra@postaction{#1}}}%
\let\tikz@preactions=\pgfutil@empty
\let\tikz@postactions=\pgfutil@empty
% Styles
-\tikzoption{set style}{\tikzstyle#1}
+\tikzoption{set style}{\tikzstyle#1}%
% Handled in a special way.
-\def\tikzstyle{\pgfutil@ifnextchar\bgroup\tikz@style@parseA\tikz@style@parseB}
-\def\tikz@style@parseB#1={\tikz@style@parseA{#1}=}
+\def\tikzstyle{\pgfutil@ifnextchar\bgroup\tikz@style@parseA\tikz@style@parseB}%
+\def\tikz@style@parseB#1={\tikz@style@parseA{#1}=}%
\def\tikz@style@parseA#1#2=#3[#4]{% check for an optional argument
\pgfutil@in@[{#2}%]
\ifpgfutil@in@%
@@ -1474,14 +1489,14 @@
\pgfkeys{/tikz/#1/.append style={#4}}%
\else%
\pgfkeys{/tikz/#1/.style={#4}}%
- \fi}
+ \fi}%
\def\tikz@style@parseD#1#2=#3{%
\pgfutil@in@+{#2}%
\ifpgfutil@in@%
\pgfkeys{/tikz/#1/.append style={#3}}%
\else%
\pgfkeys{/tikz/#1/.style={#3}}%
- \fi}
+ \fi}%
%
@@ -1490,86 +1505,103 @@
%
%
-\tikzstyle{help lines}= [color=gray,line width=0.2pt]
-
-\tikzstyle{every picture}= []
-\tikzstyle{every path}= []
-\tikzstyle{every scope}= []
-\tikzstyle{every plot}= []
-\tikzstyle{every node}= []
-\tikzstyle{every child}= []
-\tikzstyle{every child node}= []
-\tikzstyle{every to}= []
-\tikzstyle{every cell}= []
-\tikzstyle{every matrix}= []
-\tikzstyle{every edge}= [draw]
-\tikzstyle{every label}= [draw=none,fill=none]
-\tikzstyle{every pin}= [draw=none,fill=none]
-\tikzstyle{every pin edge}= [help lines]
-
-\tikzstyle{ultra thin}= [line width=0.1pt]
-\tikzstyle{very thin}= [line width=0.2pt]
-\tikzstyle{thin}= [line width=0.4pt]
-\tikzstyle{semithick}= [line width=0.6pt]
-\tikzstyle{thick}= [line width=0.8pt]
-\tikzstyle{very thick}= [line width=1.2pt]
-\tikzstyle{ultra thick}= [line width=1.6pt]
-
-\tikzstyle{solid}= [dash pattern=]
-\tikzstyle{dotted}= [dash pattern=on \pgflinewidth off 2pt]
-\tikzstyle{densely dotted}= [dash pattern=on \pgflinewidth off 1pt]
-\tikzstyle{loosely dotted}= [dash pattern=on \pgflinewidth off 4pt]
-\tikzstyle{dashed}= [dash pattern=on 3pt off 3pt]
-\tikzstyle{densely dashed}= [dash pattern=on 3pt off 2pt]
-\tikzstyle{loosely dashed}= [dash pattern=on 3pt off 6pt]
-\tikzstyle{dashdotted}= [dash pattern=on 3pt off 2pt on \the\pgflinewidth off 2pt]
-\tikzstyle{dash dot}= [dash pattern=on 3pt off 2pt on \the\pgflinewidth off 2pt]
-\tikzstyle{densely dashdotted}= [dash pattern=on 3pt off 1pt on \the\pgflinewidth off 1pt]
-\tikzstyle{densely dash dot}= [dash pattern=on 3pt off 1pt on \the\pgflinewidth off 1pt]
-\tikzstyle{loosely dashdotted}= [dash pattern=on 3pt off 4pt on \the\pgflinewidth off 4pt]
-\tikzstyle{loosely dash dot}= [dash pattern=on 3pt off 4pt on \the\pgflinewidth off 4pt]
-\tikzstyle{dashdotdotted}= [dash pattern=on 3pt off 2pt on \the\pgflinewidth off 2pt on \the\pgflinewidth off 2pt]
-\tikzstyle{densely dashdotdotted}= [dash pattern=on 3pt off 1pt on \the\pgflinewidth off 1pt on \the\pgflinewidth off 1pt]
-\tikzstyle{loosely dashdotdotted}= [dash pattern=on 3pt off 4pt on \the\pgflinewidth off 4pt on \the\pgflinewidth off 4pt]
-\tikzstyle{dash dot dot}= [dash pattern=on 3pt off 2pt on \the\pgflinewidth off 2pt on \the\pgflinewidth off 2pt]
-\tikzstyle{densely dash dot dot}= [dash pattern=on 3pt off 1pt on \the\pgflinewidth off 1pt on \the\pgflinewidth off 1pt]
-\tikzstyle{loosely dash dot dot}= [dash pattern=on 3pt off 4pt on \the\pgflinewidth off 4pt on \the\pgflinewidth off 4pt]
-
-
-\tikzstyle{transparent}= [opacity=0]
-\tikzstyle{ultra nearly transparent}=[opacity=0.05]
-\tikzstyle{very nearly transparent}= [opacity=0.1]
-\tikzstyle{nearly transparent}= [opacity=0.25]
-\tikzstyle{semitransparent}= [opacity=0.5]
-\tikzstyle{nearly opaque}= [opacity=0.75]
-\tikzstyle{very nearly opaque}= [opacity=0.9]
-\tikzstyle{ultra nearly opaque}= [opacity=0.95]
-\tikzstyle{opaque}= [opacity=1]
-
-\tikzstyle{at start}= [pos=0]
-\tikzstyle{very near start}= [pos=0.125]
-\tikzstyle{near start}= [pos=0.25]
-\tikzstyle{midway}= [pos=0.5]
-\tikzstyle{near end}= [pos=0.75]
-\tikzstyle{very near end}= [pos=0.875]
-\tikzstyle{at end}= [pos=1]
-
-\tikzstyle{bend at start}= [bend pos=0,bend={+(0,0)}]
-\tikzstyle{bend at end}= [bend pos=1,bend={+(0,0)}]
-
-\tikzstyle{edge from parent}= [draw]
+\tikzset{help lines/.style= {color=gray,line width=0.2pt}}%
+
+\tikzset{every picture/.style= {}}%
+\tikzset{every path/.style= {}}%
+\tikzset{every scope/.style= {}}%
+\tikzset{every plot/.style= {}}%
+\tikzset{every node/.style= {}}%
+\tikzset{every child/.style= {}}%
+\tikzset{every child node/.style= {}}%
+\tikzset{every to/.style= {}}%
+\tikzset{every cell/.style= {}}%
+\tikzset{every matrix/.style= {}}%
+\tikzset{every edge/.style= {draw}}%
+\tikzset{every label/.style= {draw=none,fill=none}}%
+\tikzset{every pin/.style= {draw=none,fill=none}}%
+\tikzset{every pin edge/.style= {help lines}}%
+
+\tikzset{ultra thin/.style= {line width=0.1pt}}%
+\tikzset{very thin/.style= {line width=0.2pt}}%
+\tikzset{thin/.style= {line width=0.4pt}}%
+\tikzset{semithick/.style= {line width=0.6pt}}%
+\tikzset{thick/.style= {line width=0.8pt}}%
+\tikzset{very thick/.style= {line width=1.2pt}}%
+\tikzset{ultra thick/.style= {line width=1.6pt}}%
+
+\tikzset{solid/.style= {dash pattern=}}%
+\tikzset{dotted/.style= {dash pattern=on \pgflinewidth off 2pt}}%
+\tikzset{densely dotted/.style= {dash pattern=on \pgflinewidth off 1pt}}%
+\tikzset{loosely dotted/.style= {dash pattern=on \pgflinewidth off 4pt}}%
+\tikzset{dashed/.style= {dash pattern=on 3pt off 3pt}}%
+\tikzset{densely dashed/.style= {dash pattern=on 3pt off 2pt}}%
+\tikzset{loosely dashed/.style= {dash pattern=on 3pt off 6pt}}%
+\tikzset{dashdotted/.style= {dash pattern=on 3pt off 2pt on \the\pgflinewidth off 2pt}}%
+\tikzset{dash dot/.style= {dash pattern=on 3pt off 2pt on \the\pgflinewidth off 2pt}}%
+\tikzset{densely dashdotted/.style= {dash pattern=on 3pt off 1pt on \the\pgflinewidth off 1pt}}%
+\tikzset{densely dash dot/.style= {dash pattern=on 3pt off 1pt on \the\pgflinewidth off 1pt}}%
+\tikzset{loosely dashdotted/.style= {dash pattern=on 3pt off 4pt on \the\pgflinewidth off 4pt}}%
+\tikzset{loosely dash dot/.style= {dash pattern=on 3pt off 4pt on \the\pgflinewidth off 4pt}}%
+\tikzset{dashdotdotted/.style= {dash pattern=on 3pt off 2pt on \the\pgflinewidth off 2pt on \the\pgflinewidth off 2pt}}%
+\tikzset{densely dashdotdotted/.style= {dash pattern=on 3pt off 1pt on \the\pgflinewidth off 1pt on \the\pgflinewidth off 1pt}}%
+\tikzset{loosely dashdotdotted/.style= {dash pattern=on 3pt off 4pt on \the\pgflinewidth off 4pt on \the\pgflinewidth off 4pt}}%
+\tikzset{dash dot dot/.style= {dash pattern=on 3pt off 2pt on \the\pgflinewidth off 2pt on \the\pgflinewidth off 2pt}}%
+\tikzset{densely dash dot dot/.style= {dash pattern=on 3pt off 1pt on \the\pgflinewidth off 1pt on \the\pgflinewidth off 1pt}}%
+\tikzset{loosely dash dot dot/.style= {dash pattern=on 3pt off 4pt on \the\pgflinewidth off 4pt on \the\pgflinewidth off 4pt}}%
+
+
+\tikzset{transparent/.style= {opacity=0}}%
+\tikzset{ultra nearly transparent/.style={opacity=0.05}}%
+\tikzset{very nearly transparent/.style= {opacity=0.1}}%
+\tikzset{nearly transparent/.style= {opacity=0.25}}%
+\tikzset{semitransparent/.style= {opacity=0.5}}%
+\tikzset{nearly opaque/.style= {opacity=0.75}}%
+\tikzset{very nearly opaque/.style= {opacity=0.9}}%
+\tikzset{ultra nearly opaque/.style= {opacity=0.95}}%
+\tikzset{opaque/.style= {opacity=1}}%
+
+\tikzset{at start/.style= {pos=0}}%
+\tikzset{very near start/.style= {pos=0.125}}%
+\tikzset{near start/.style= {pos=0.25}}%
+\tikzset{midway/.style= {pos=0.5}}%
+\tikzset{near end/.style= {pos=0.75}}%
+\tikzset{very near end/.style= {pos=0.875}}%
+\tikzset{at end/.style= {pos=1}}%
+
+\tikzset{bend at start/.style= {bend pos=0,bend={+(0,0)}}}%
+\tikzset{bend at end/.style= {bend pos=1,bend={+(0,0)}}}%
+
+\tikzset{edge from parent/.style= {draw}}%
+
+
+
+% Animation callbacks
+\tikzset{
+ animate/.code=\tikzerror{You need to say \string\usetikzlibrary{animations} to use animations}
+}
+
+% ID callbacks
+\newif\iftikz@is@node
+\let\tikz@id@hook\pgfutil@empty
+\def\tikz@call@id@hook{\ifx\tikz@id@hook\pgfutil@empty\else\tikz@id@hook\pgfuseid{\tikz@id@name}\fi}%
+
+% RDF stuff
+\let\tikz@clear@rdf@options\relax
+\let\tikz@do@rdf@post@options\relax
+\let\tikz@do@rdf@pre@options\relax
%
% Setting keys
%
-\pgfkeys{/tikz/style/.style=#1}
+\pgfkeys{/tikz/style/.style=#1}%
\pgfkeys{/tikz/.unknown/.code=%
% Is it a pgf key?
- \let\tikz@key\pgfkeyscurrentname%
+ \let\tikz@key\pgfkeyscurrentname%
\pgfkeys{/pgf/\tikz@key/.try={#1}}%
\ifpgfkeyssuccess%
\else%
@@ -1580,7 +1612,7 @@
\edef\tikz@textcolor{\tikz@key}%
\else%
\pgfutil@doifcolorelse{\tikz@key}
- {%
+ {%
\expandafter\tikz@addoption\expandafter{\expandafter\tikz@compat@color@set\expandafter{\tikz@key}}%
\edef\tikz@textcolor{\tikz@key}%
}%
@@ -1594,8 +1626,7 @@
% Ok, third chance: A shape!
\expandafter\ifx\csname pgf@sh@s@\tikz@key\endcsname\relax%
\pgfkeys{/errors/unknown key/.expand
- once=\expandafter{\expandafter/\expandafter t\expandafter
- i\expandafter k\expandafter z\expandafter/\tikz@key}{#1}}%
+ once=\expandafter{\expandafter/\expandafter t\expandafter i\expandafter k\expandafter z\expandafter/\tikz@key}{#1}}%
\else%
\edef\tikz@shape{\tikz@key}%
\fi%
@@ -1603,14 +1634,14 @@
}%
\fi%
\fi%
-}
+}%
\def\tikz@compat@color@set#1{%
\pgfutil@color{#1}\pgfutil@colorlet{pgffillcolor}{#1}%
- \expandafter\let\expandafter\pgf@temp\csname\string\color@pgffillcolor\endcsname
+ \expandafter\let\expandafter\pgf@temp\csname\string\color@pgffillcolor\endcsname%
% for arrow tips:
\global\let\pgf@strokecolor@global=\pgf@temp
\global\let\pgf@fillcolor@global=\pgf@temp
-}
+}%
\def\tikz@startup@env{%
\ifnum\the\catcode`\;=\active\relax\expandafter\let\expandafter\tikz@origsemi\expandafter=\tikz@activesemicolon\fi%
@@ -1620,7 +1651,7 @@
\iftikz@handle@active@code%
\tikz@switchoff@shorthands%
\fi%
-}
+}%
%
% Main TikZ Environment
@@ -1629,7 +1660,7 @@
\def\tikzpicture{%
\begingroup%
\tikz@startup@env%
- \pgfutil@ifnextchar[\tikz@picture{\tikz@picture[]}}%}
+ \tikz@collect@scope@anims\tikz@picture}%
\def\tikz@picture[#1]{%
\pgfpicture%
\let\tikz@atbegin@picture=\pgfutil@empty%
@@ -1643,22 +1674,22 @@
\fi%
\expandafter\tikz@atbegin@picture%
\tikz@lib@scope@check%
-}
+}%
\def\endtikzpicture{%
\tikz@atend@picture%
\global\let\pgf@shift@baseline@smuggle=\pgf@baseline%
\global\let\pgf@trimleft@final@smuggle=\pgf@trimleft%
\global\let\pgf@trimright@final@smuggle=\pgf@trimright%
\global\let\pgf@remember@smuggle=\ifpgfrememberpicturepositiononpage%
- \pgf@remember@layerlist@globally
+ \pgf@remember@layerlist@globally
\endscope%
\let\pgf@baseline=\pgf@shift@baseline@smuggle%
\let\pgf@trimleft=\pgf@trimleft@final@smuggle%
\let\pgf@trimright=\pgf@trimright@final@smuggle%
\let\ifpgfrememberpicturepositiononpage=\pgf@remember@smuggle%
- \pgf@restore@layerlist@from@global
- \endpgfpicture\endgroup}
-
+ \pgf@restore@layerlist@from@global
+ \endpgfpicture\endgroup}%
+
% Inlined picture
%
@@ -1676,108 +1707,128 @@
\def\tikz{%
\begingroup%
\tikz@startup@env%
- \pgfutil@ifnextchar[{\tikz@opt}{\tikz@opt[]}}
-\def\tikz@opt[#1]{\tikzpicture[#1]\pgfutil@ifnextchar\bgroup{\tikz@}{\tikz@@single}}
-\def\tikz@{\bgroup\tikz@auto@end@pathtrue\aftergroup\endtikzpicture\aftergroup\endgroup\let\pgf@temp=}
+ \tikz@collect@scope@anims\tikz@opt}%
+\def\tikz@opt[#1]{\tikzpicture[#1]\pgfutil@ifnextchar\bgroup{\tikz@}{\tikz@@single}}%
+\def\tikz@{\bgroup\tikz@auto@end@pathtrue\aftergroup\endtikzpicture\aftergroup\endgroup\let\pgf@temp=}%
\def\tikz@@single#1{%
\expandafter\ifx\csname tikz@protected@command\string#1\endcsname\relax%
\expandafter\tikz@@%
\else%
\begingroup\def\tikz@path@do@at@end{\endgroup\endtikzpicture\endgroup}%
\fi%
- #1%
-}
-
-\expandafter\let\csname tikz@protected@command\string\draw\endcsname\pgfutil@empty
-\expandafter\let\csname tikz@protected@command\string\pattern\endcsname\pgfutil@empty
-\expandafter\let\csname tikz@protected@command\string\fill\endcsname\pgfutil@empty
-\expandafter\let\csname tikz@protected@command\string\filldraw\endcsname\pgfutil@empty
-\expandafter\let\csname tikz@protected@command\string\shade\endcsname\pgfutil@empty
-\expandafter\let\csname tikz@protected@command\string\shadedraw\endcsname\pgfutil@empty
-\expandafter\let\csname tikz@protected@command\string\clip\endcsname\pgfutil@empty
-\expandafter\let\csname tikz@protected@command\string\graph\endcsname\pgfutil@empty
-\expandafter\let\csname tikz@protected@command\string\useasboundingbox\endcsname\pgfutil@empty
-\expandafter\let\csname tikz@protected@command\string\node\endcsname\pgfutil@empty
-\expandafter\let\csname tikz@protected@command\string\coordinate\endcsname\pgfutil@empty
-\expandafter\let\csname tikz@protected@command\string\matrix\endcsname\pgfutil@empty
-\expandafter\let\csname tikz@protected@command\string\datavisualization\endcsname\pgfutil@empty
-\expandafter\let\csname tikz@protected@command\string\path\endcsname\pgfutil@empty
-\expandafter\let\csname tikz@protected@command\string\pic\endcsname\pgfutil@empty
+ #1%
+}%
+
+\expandafter\let\csname tikz@protected@command\string\draw\endcsname\pgfutil@empty%
+\expandafter\let\csname tikz@protected@command\string\pattern\endcsname\pgfutil@empty%
+\expandafter\let\csname tikz@protected@command\string\fill\endcsname\pgfutil@empty%
+\expandafter\let\csname tikz@protected@command\string\filldraw\endcsname\pgfutil@empty%
+\expandafter\let\csname tikz@protected@command\string\shade\endcsname\pgfutil@empty%
+\expandafter\let\csname tikz@protected@command\string\shadedraw\endcsname\pgfutil@empty%
+\expandafter\let\csname tikz@protected@command\string\clip\endcsname\pgfutil@empty%
+\expandafter\let\csname tikz@protected@command\string\graph\endcsname\pgfutil@empty%
+\expandafter\let\csname tikz@protected@command\string\useasboundingbox\endcsname\pgfutil@empty%
+\expandafter\let\csname tikz@protected@command\string\node\endcsname\pgfutil@empty%
+\expandafter\let\csname tikz@protected@command\string\coordinate\endcsname\pgfutil@empty%
+\expandafter\let\csname tikz@protected@command\string\matrix\endcsname\pgfutil@empty%
+\expandafter\let\csname tikz@protected@command\string\datavisualization\endcsname\pgfutil@empty%
+\expandafter\let\csname tikz@protected@command\string\path\endcsname\pgfutil@empty%
+\expandafter\let\csname tikz@protected@command\string\pic\endcsname\pgfutil@empty%
% Comment by TT: I hope I fixed the \tikz \foreach problem. The new
% version will take a conservative approach and will only do fancy
% stuff when the next keyword after \tikz is one of the following:
-% \draw, \fill, \filldraw, \graph, \matrix,
+% \draw, \fill, \filldraw, \graph, \matrix,
\def\tikz@@{%
\let\tikz@next=\tikz@collectnormalsemicolon%
\ifnum\the\catcode`\;=\active\relax%
\let\tikz@next=\tikz@collectactivesemicolon%
\fi%
- \tikz@next}
+ \tikz@next}%
\def\tikz@collectnormalsemicolon#1;{#1;\endtikzpicture\endgroup}
{
\catcode`\;=\active
\gdef\tikz@collectactivesemicolon#1;{#1;\endtikzpicture\endgroup}
-}
+}%
% End old code
-% Invokes '#1' if the command is invoked withing a tikzpicture and
+% Invokes '#1' if the command is invoked within a tikzpicture and
% '#2' if not.
\def\tikzifinpicture#1#2{%
- \pgfutil@ifundefined{filldraw}{#2}{#1}% TT: This is a wrong
+ \pgfutil@ifundefined{filldraw}{#2}{#1}% TT: This is a wrong
% test! Who uses this?...
}%
+
+\def\tikz@collect@scope@anims#1{%
+ \pgfutil@ifnextchar[#1{#1[]}%]
+}%
+
%
% Environment for scoping graphic state settings
%
-\def\tikz@scope@env{\pgfutil@ifnextchar[\tikz@@scope@env{\tikz@@scope@env[]}}
-\def\tikz@@scope@env[#1]{%
+\def\tikz@scope@env{%
\pgfscope%
\begingroup%
\let\tikz@atbegin@scope=\pgfutil@empty%
\let\tikz@atend@scope=\pgfutil@empty%
\let\tikz@options=\pgfutil@empty%
+ \tikz@clear@rdf@options%
\let\tikz@mode=\pgfutil@empty%
+ \let\tikz@id@name=\pgfutil@empty%
\tikz@transparency@groupfalse%
- \tikzset{every scope/.try,#1}%
+ \tikzset{every scope/.try}%
+ \tikz@collect@scope@anims\tikz@scope@opt%
+}%
+\def\tikz@scope@opt[#1]{%
+ \tikzset{#1}%
\tikz@options%
+ \tikz@do@rdf@pre@options%
\iftikz@transparency@group\expandafter\pgftransparencygroup\expandafter[\tikz@transparency@group@options]\tikz@blend@group\fi%
- \expandafter\tikz@atbegin@scope%
- \tikz@lib@scope@check%
-}
+ \tikz@is@nodefalse%
+ \tikz@call@id@hook%
+ \pgfidscope%
+ \tikz@do@rdf@post@options%
+ \begingroup%
+ \let\tikz@id@name\pgfutil@empty%
+ \expandafter\tikz@atbegin@scope%
+ \expandafter\pgfclearid%
+ \tikz@lib@scope@check%
+}%
\def\endtikz@scope@env{%
- \tikz@atend@scope%
+ \tikz@atend@scope%
+ \endgroup%
+ \endpgfidscope%
\iftikz@transparency@group\endpgftransparencygroup\fi%
\endgroup%
\endpgfscope%
\tikz@lib@scope@check%
-}
+}%
-\def\tikz@scoped{\pgfutil@ifnextchar[{\tikz@scoped@opt}{\tikz@scoped@opt[]}}
-\def\tikz@scoped@opt[#1]{\scope[#1]\pgfutil@ifnextchar\bgroup{\tikz@scoped@}{\tikz@scoped@@single}}
-\def\tikz@scoped@{\bgroup\tikz@auto@end@pathtrue\aftergroup\endscope\let\pgf@temp=}
+\def\tikz@scoped{\tikz@collect@scope@anims\tikz@scoped@opt}%
+\def\tikz@scoped@opt[#1]{\scope[#1]\pgfutil@ifnextchar\bgroup{\tikz@scoped@}{\tikz@scoped@@single}}%
+\def\tikz@scoped@{\bgroup\tikz@auto@end@pathtrue\aftergroup\endscope\let\pgf@temp=}%
\def\tikz@scoped@@single#1{%
\expandafter\ifx\csname tikz@scoped@protected@command\string#1\endcsname\relax%
\expandafter\tikz@scoped@@%
\else%
\begingroup\def\tikz@scoped@path@do@at@end{\endgroup\endscope}%
\fi%
- #1%
-}
+ #1%
+}%
\def\tikz@scoped@@{%
\let\tikz@scoped@next=\tikz@scoped@collectnormalsemicolon%
\ifnum\the\catcode`\;=\active\relax%
\let\tikz@scoped@next=\tikz@scoped@collectactivesemicolon%
\fi%
- \tikz@scoped@next}
+ \tikz@scoped@next}%
\def\tikz@scoped@collectnormalsemicolon#1;{#1;\endscope}
{
\catcode`\;=\active
\gdef\tikz@scoped@collectactivesemicolon#1;{#1;\endscope}
-}
-
+}%
+
% Install a shortcut command which is only valid inside of a
% tikzpicture.
@@ -1788,17 +1839,17 @@
% #1: shortcut command inside of tikzpicture
% #2: real command name
\def\tikzaddtikzonlycommandshortcutlet#1#2{%
- \expandafter\def\expandafter\tikz@installcommands\expandafter{\tikz@installcommands
- \let#1=#2%
- }%
+ \expandafter\def\expandafter\tikz@installcommands\expandafter{\tikz@installcommands
+ \let#1=#2%
+ }%
}%
% Has the same effect as \tikzaddtikzonlycommandshortcutlet but uses
% \def#1{#2} instead of \let.
\def\tikzaddtikzonlycommandshortcutdef#1#2{%
- \expandafter\def\expandafter\tikz@installcommands\expandafter{\tikz@installcommands
- \def#1{#2}%
- }%
+ \expandafter\def\expandafter\tikz@installcommands\expandafter{\tikz@installcommands
+ \def#1{#2}%
+ }%
}%
%
@@ -1836,33 +1887,33 @@
\let\path=\tikz@command@path%
\let\againpath=\tikz@command@againpath%
%
- \def\draw{\path[draw]}
- \def\pattern{\path[pattern]}
- \def\fill{\path[fill]}
- \def\filldraw{\path[fill,draw]}
- \def\shade{\path[shade]}
- \def\shadedraw{\path[shade,draw]}
- \def\clip{\path[clip]}
- \def\graph{\path graph}
- \def\useasboundingbox{\path[use as bounding box]}
- \def\node{\tikz@path@overlay{node}}
- \def\pic{\tikz@path@overlay{pic}}
- \def\coordinate{\tikz@path@overlay{coordinate}}
- \def\matrix{\tikz@path@overlay{node[matrix]}}
- \def\calendar{\tikz@lib@cal@calendar}%
+ \def\draw{\path[draw]}%
+ \def\pattern{\path[pattern]}%
+ \def\fill{\path[fill]}%
+ \def\filldraw{\path[fill,draw]}%
+ \def\shade{\path[shade]}%
+ \def\shadedraw{\path[shade,draw]}%
+ \def\clip{\path[clip]}%
+ \def\graph{\path graph}%
+ \def\useasboundingbox{\path[use as bounding box]}%
+ \def\node{\tikz@path@overlay{node}}%
+ \def\pic{\tikz@path@overlay{pic}}%
+ \def\coordinate{\tikz@path@overlay{coordinate}}%
+ \def\matrix{\tikz@path@overlay{node[matrix]}}%
+ \def\calendar{\tikz@lib@cal@calendar}%
\def\datavisualization{\tikz@lib@datavisualization}%
-}
+}%
\ifx\tikz@lib@cal@calendar\@undefined
-\def\tikz@lib@cal@calendar{\tikzerror{You need to say \string\usetikzlibrary{calendar} to use the \string\calendar{} command}}
+\def\tikz@lib@cal@calendar{\tikzerror{You need to say \string\usetikzlibrary{calendar} to use the \string\calendar{} command}}%
\fi
\ifx\tikz@lib@datavisualization\@undefined
-\def\tikz@lib@datavisualization{\tikzerror{You need to say \string\usetikzlibrary{datavisualization} to use the \string\datavisualization{} command}}
+\def\tikz@lib@datavisualization{\tikzerror{You need to say \string\usetikzlibrary{datavisualization} to use the \string\datavisualization{} command}}%
\fi
\def\tikz@path@overlay#1{%
\let\tikz@signal@path=\tikz@signal@path% for detection at begin of matrix cell
- \pgfutil@ifnextchar<{\tikz@path@overlayed{#1}}{\path #1}}
-\def\tikz@path@overlayed#1<#2>{\path<#2> #1}
+ \pgfutil@ifnextchar<{\tikz@path@overlayed{#1}}{\path #1}}%
+\def\tikz@path@overlayed#1<#2>{\path<#2> #1}%
\def\tikz@uninstallcommands{%
\let\scope=\tikz@origscope%
@@ -1887,18 +1938,18 @@
\let\calendar=\tikz@origcalendar%
\let\datavisualization=\tikz@origdv%
\let\graph=\tikz@origgraph%
-}
+}%
-{
+{%
\catcode`\;=12
- \gdef\tikz@nonactivesemicolon{;}
+ \gdef\tikz@nonactivesemicolon{;}%
\catcode`\:=12
- \gdef\tikz@nonactivecolon{:}
+ \gdef\tikz@nonactivecolon{:}%
\catcode`\|=12
- \gdef\tikz@nonactivebar{|}
+ \gdef\tikz@nonactivebar{|}%
\catcode`\!=12
- \gdef\tikz@nonactiveexlmark{!}
+ \gdef\tikz@nonactiveexlmark{!}%
\catcode`\;=\active
\catcode`\:=\active
\catcode`\|=\active
@@ -1915,8 +1966,8 @@
\def:{\tikz@nonactivecolon}%
\def|{\tikz@nonactivebar}%
\def!{\tikz@nonactiveexlmark}%
- }
-}
+ }%
+}%
\let\tikz@orig@shorthands\pgfutil@empty
\def\tikz@switchoff@shorthands{%
@@ -1950,32 +2001,32 @@
\catcode`\.12\relax%
\catcode`\$3\relax%
\fi%
-}
+}%
% Constructs a path and draws/fills them according to the current
-% settings.
+% settings.
\def\tikz@command@path{%
\let\tikz@signal@path=\tikz@signal@path% for detection at begin of matrix cell
\pgfutil@ifnextchar[{\tikz@check@earg}%]
- {\pgfutil@ifnextchar<{\tikz@doopt}{\tikz@@command@path}}}
+ {\pgfutil@ifnextchar<{\tikz@doopt}{\tikz@@command@path}}}%
\def\tikz@signal@path{\tikz@signal@path}%
\def\tikz@check@earg[#1]{%
\pgfutil@ifnextchar<{\tikz@swap@args[#1]}{\tikz@@command@path[#1]}}
-\def\tikz@swap@args[#1]<#2>{\tikz@command@path<#2>[#1]}
+\def\tikz@swap@args[#1]<#2>{\tikz@command@path<#2>[#1]}%
\def\tikz@doopt{%
\let\tikz@next=\tikz@eargnormalsemicolon%
\ifnum\the\catcode`\;=\active\relax%
\let\tikz@next=\tikz@eargactivesemicolon%
\fi%
- \tikz@next}
-\long\def\tikz@eargnormalsemicolon<#1>#2;{\alt<#1>{\tikz@@command@path#2;}{\tikz@path@do@at@end}}
+ \tikz@next}%
+\long\def\tikz@eargnormalsemicolon<#1>#2;{\alt<#1>{\tikz@@command@path#2;}{\tikz@path@do@at@end}}%
{
\catcode`\;=\active
- \long\global\def\tikz@eargactivesemicolon<#1>#2;{\alt<#1>{\tikz@@command@path#2;}{\tikz@path@do@at@end}}
+ \long\global\def\tikz@eargactivesemicolon<#1>#2;{\alt<#1>{\tikz@@command@path#2;}{\tikz@path@do@at@end}}%
}
\def\tikz@@command@path{%
@@ -1985,6 +2036,7 @@
\setbox\tikz@figbox@bg=\box\pgfutil@voidb@x%
\let\tikz@path@do@at@end=\tikz@lib@scope@check%
\let\tikz@options=\pgfutil@empty%
+ \tikz@clear@rdf@options%
\let\tikz@mode=\pgfutil@empty%
\let\tikz@moveto@waiting=\relax%
\let\tikz@timer=\relax%
@@ -2004,53 +2056,54 @@
\tikz@lastysaved=0pt%
\tikzset{every path/.try}%
\tikz@scan@next@command%
-}
+}%
\def\tikz@scan@next@command{%
\ifx\tikz@collected@onpath\pgfutil@empty%
\else%
\tikz@invoke@collected@onpath%
\fi%
\afterassignment\tikz@handle\let\pgf@let@token=%
-}
+}%
\newcount\tikz@expandcount
+\let\tikz@collected@onpath=\pgfutil@empty%
% Central dispatcher for commands
\def\tikz@handle{%
- \let\@next=\tikz@expand%
+ \let\pgfutil@next=\tikz@expand%
\ifx\pgf@let@token(%)
- \let\@next=\tikz@movetoabs%
+ \let\pgfutil@next=\tikz@movetoabs%
\else%
\ifx\pgf@let@token+%
- \let\@next=\tikz@movetorel%
+ \let\pgfutil@next=\tikz@movetorel%
\else%
\ifx\pgf@let@token-%
- \let\@next=\tikz@lineto%
+ \let\pgfutil@next=\tikz@lineto%
\else%
\ifx\pgf@let@token.%
- \let\@next=\tikz@dot%
+ \let\pgfutil@next=\tikz@dot%
\else%
\ifx\pgf@let@token r%
- \let\@next=\tikz@rect%
+ \let\pgfutil@next=\tikz@rect%
\else%
\ifx\pgf@let@token n%
- \let\@next=\tikz@fig%
+ \let\pgfutil@next=\tikz@fig%
\else%
\ifx\pgf@let@token[%]
- \let\@next=\tikz@parse@options%
+ \let\pgfutil@next=\tikz@parse@options%
\else%
\ifx\pgf@let@token c%
- \let\@next=\tikz@cchar%
+ \let\pgfutil@next=\tikz@cchar%
\else%
\ifx\pgf@let@token\bgroup%
- \let\@next=\tikz@beginscope%
+ \let\pgfutil@next=\tikz@beginscope%
\else%
\ifx\pgf@let@token\egroup%
- \let\@next=\tikz@endscope%
+ \let\pgfutil@next=\tikz@endscope%
\else%
\ifx\pgf@let@token;%
- \let\@next=\tikz@finish%
+ \let\pgfutil@next=\tikz@finish%
\else%
- \let\@next=\tikz@handle@more%
+ \let\pgfutil@next=\tikz@handle@more%
\fi%
\fi%
\fi%
@@ -2062,72 +2115,76 @@
\fi%
\fi%
\fi%
- \@next%
-}
+ \pgfutil@next%
+}%
% Continued...
\def\tikz@handle@more{%
\ifx\pgf@let@token a%
- \let\@next=\tikz@arcA%
+ \let\pgfutil@next=\tikz@a@char%
\else%
\ifx\pgf@let@token e%
- \let\@next=\tikz@e@char%
+ \let\pgfutil@next=\tikz@e@char%
\else%
\ifx\pgf@let@token g%
- \let\@next=\tikz@g@char%
+ \let\pgfutil@next=\tikz@g@char%
\else%
\ifx\pgf@let@token s%
- \let\@next=\tikz@schar%
+ \let\pgfutil@next=\tikz@schar%
\else%
\ifx\pgf@let@token |%
- \let\@next=\tikz@vh@lineto%
+ \let\pgfutil@next=\tikz@vh@lineto%
\else%
\ifx\pgf@let@token p%
- \let\@next=\tikz@pchar%
+ \let\pgfutil@next=\tikz@pchar%
\pgfsetmovetofirstplotpoint%
\else%
\ifx\pgf@let@token t%
- \let\@next=\tikz@to%
+ \let\pgfutil@next=\tikz@to%
\else%
\ifx\pgf@let@token\pgfextra%
- \let\@next=\tikz@extra%
+ \let\pgfutil@next=\tikz@extra%
\else%
\ifx\pgf@let@token\foreach%
- \let\@next=\tikz@foreach%
+ \let\pgfutil@next=\tikz@foreach%
\else%
\ifx\pgf@let@token f%
- \let\@next=\tikz@fchar%
+ \let\pgfutil@next=\tikz@fchar%
\else%
\ifx\pgf@let@token\pgf@stop%
- \let\@next=\relax%
+ \let\pgfutil@next=\relax%
\else%
\ifx\pgf@let@token\par%
- \let\@next=\tikz@scan@next@command%
+ \let\pgfutil@next=\tikz@scan@next@command%
\else%
\ifx\pgf@let@token d%
- \let\@next=\tikz@decoration%
+ \let\pgfutil@next=\tikz@decoration%
\else%
\ifx\pgf@let@token l%
- \let\@next=\tikz@l@char%\tikz@let@command%
+ \let\pgfutil@next=\tikz@l@char%
\else%
- \let\@next=\tikz@expand%
- \fi%
- \fi%
- \fi%
- \fi%
- \fi%
- \fi%
- \fi%
- \fi%
- \fi%
- \fi%
+ \ifx\pgf@let@token:%
+ \let\pgfutil@next=\tikz@colon@char%
+ \else%
+ \let\pgfutil@next=\tikz@expand%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
\fi%
\fi%
\fi%
\fi%
- \ifx\@next\tikz@expand\else\tikz@expandcount=100\relax\fi%
- \@next%
-}
+ \ifx\pgfutil@next\tikz@expand\else\tikz@expandcount=100\relax\fi%
+ \pgfutil@next%
+}%
\def\tikz@l@char{%
\pgfutil@ifnextchar e{\tikz@let@command}{%
@@ -2135,54 +2192,56 @@
\pgfutil@ifnextchar-{\tikz@@lsystem}{\tikz@expand}%
}%
}%
-}
+}%
\def\tikz@lsystem{%
\tikzerror{You need to say \string\usetikzlibrary{lindenmayersystems} to draw Lindenmayer systems}
-}
+}%
\def\tikz@@lsystem{%
\tikzerror{You need to say \string\usetikzlibrary{lindenmayersystems} to draw L-systems}
-}
+}%
-\def\tikz@pchar{\pgfutil@ifnextchar l{\tikz@plot}{\pgfutil@ifnextchar i{\tikz@subpicture}{\tikz@parabola}}}
+\def\tikz@pchar{\pgfutil@ifnextchar l{\tikz@plot}{\pgfutil@ifnextchar i{\tikz@subpicture}{\tikz@parabola}}}%
\def\tikz@cchar{%
\pgfutil@ifnextchar i{\tikz@circle}%
{\pgfutil@ifnextchar h{\tikz@children}{\tikz@cochar}}}%
\def\tikz@cochar o{%
- \pgfutil@ifnextchar o{\tikz@coordinate}{\tikz@cosine}}
+ \pgfutil@ifnextchar o{\tikz@coordinate}{\tikz@cosine}}%
\def\tikz@e@char{%
\pgfutil@ifnextchar l{\tikz@ellipse}{\tikz@@e@char}}%
+\def\tikz@a@char{%
+ \pgfutil@ifnextchar r{\tikz@arcA}{\tikzerror{Arc expected}}}%
\def\tikz@@e@char dge{%
\pgfutil@ifnextchar f{\tikz@edgetoparent}{\tikz@edge@plain}}%
-\def\tikz@schar{\pgfutil@ifnextchar i{\tikz@sine}{\tikz@svg@path}}
+\def\tikz@schar{\pgfutil@ifnextchar i{\tikz@sine}{\tikz@svg@path}}%
-\def\tikz@g@char r{\pgfutil@ifnextchar i{\tikz@grid}{\tikz@graph}}
+\def\tikz@g@char r{\pgfutil@ifnextchar i{\tikz@grid}{\tikz@graph}}%
% svg syntax
% svg[options] {...}
\def\tikz@svg@path{%
\tikzerror{You need to say \string\usetikzlibrary{svg.path} to use the svg path command}
-}
+}%
\def\tikz@finish{%
- % Rendering pipeline
- %
+ % Rendering pipeline
+ %
% Step 1: The path background box
%
\box\tikz@figbox@bg%
- %
+ %
% Step 2: Decorate path
- %
+ %
\iftikz@decoratepath%
\tikz@lib@dec@decorate@path%
\fi%
- %
+ %
% Step 3: Preactions
- %
+ %
\pgfsyssoftpath@getcurrentpath\tikz@actions@path%
\edef\tikz@restorepathsize{%
\global\pgf@pathmaxx=\the\pgf@pathmaxx%
@@ -2238,8 +2297,8 @@
\tikz@mode@fade@scopefalse%
\fi%
%
- % Step 3: Setup options
- %
+ % Step 5': Setup options
+ %
\ifx\tikz@options\pgfutil@empty%
\else%
\pgfsys@beginscope%
@@ -2248,7 +2307,18 @@
\begingroup%
\tikz@options%
\fi%
- %
+ \tikz@do@rdf@pre@options%
+ %
+ % Step 5'': Setup animations
+ %
+ \tikz@is@nodefalse%
+ \tikz@call@id@hook%
+ \iftikz@mode@clip\else%
+ \pgfidscope%
+ \tikz@do@rdf@post@options%
+ \begingroup%
+ \fi% open an animation scope here, unless clipping is done
+ %
% Step 6: Do a fill if shade or a path picture follows.
%
\iftikz@mode@fill%
@@ -2257,7 +2327,10 @@
\pgfprocessround{\tikz@temppath}{\tikz@temppath}% change the path
\pgfsyssoftpath@setcurrentpath\tikz@temppath%
\pgfsyssoftpath@invokecurrentpath%
+ \pgfpushtype%
+ \pgfusetype{.path fill}%
\pgfsys@fill%
+ \pgfpoptype%
\tikz@mode@fillfalse% no more filling...
\else%
\ifx\tikz@path@picture\pgfutil@empty%
@@ -2266,28 +2339,38 @@
\pgfprocessround{\tikz@temppath}{\tikz@temppath}% change the path
\pgfsyssoftpath@setcurrentpath\tikz@temppath%
\pgfsyssoftpath@invokecurrentpath%
+ \pgfpushtype%
+ \pgfusetype{.path fill}%
\pgfsys@fill%
+ \pgfpoptype%
\tikz@mode@fillfalse% no more filling...
\fi%
\fi%
\fi%
- %
+ %
% Step 7: Do a shade if necessary.
%
\iftikz@mode@shade%
\pgfsyssoftpath@getcurrentpath\tikz@temppath
\pgfprocessround{\tikz@temppath}{\tikz@temppath}% change the path
\pgfsyssoftpath@setcurrentpath\tikz@temppath%
+ \pgfpushtype%
+ \pgfusetype{.path shade}%
\pgfshadepath{\tikz@shading}{\tikz@shade@angle}%
+ \pgfpoptype%
\tikz@mode@shadefalse% no more shading...
\fi%
- %
+ %
% Step 8: Do a path picture if necessary.
%
\ifx\tikz@path@picture\pgfutil@empty%
\else%
\begingroup%
+ \pgfusetype{.path picture}%
+ \pgfidscope%
\pgfsys@beginscope%
+ \let\tikz@id@name\pgfutil@empty%
+ \pgfclearid%
\pgfsyssoftpath@getcurrentpath\tikz@temppath
\pgfprocessround{\tikz@temppath}{\tikz@temppath}% change the path
\pgfsyssoftpath@setcurrentpath\tikz@temppath%
@@ -2302,14 +2385,15 @@
}
\expandafter\def\csname pgf@sh@nt@path picture bounding box\endcsname{{1}{0}{0}{1}{0pt}{0pt}}
\expandafter\def\csname pgf@sh@pi@path picture bounding box\endcsname{\pgfpictureid}
- \pgfinterruptpath%
+ \pgfinterruptpath%
\tikz@path@picture%
\endpgfinterruptpath%
\pgfsys@endscope%
+ \endpgfidscope%
\endgroup%
- \let\tikz@path@picture=\pgfutil@empty%
+ \let\tikz@path@picture=\pgfutil@empty%
\fi%
- %
+ %
% Step 9: Double stroke, if necessary
%
\iftikz@mode@draw%
@@ -2320,17 +2404,20 @@
\tikz@double@setup%
\fi%
\fi%
- %
+ %
% Step 10: Do stroke/fill/clip as needed
%
+ \pgfpushtype%
\edef\tikz@temp{\noexpand\pgfusepath{%
\iftikz@mode@fill fill,\fi%
\iftikz@mode@draw draw,\fi%
\iftikz@mode@clip clip\fi%
}}%
+ \pgfusetype{.path}%
\tikz@temp%
+ \pgfpoptype%
\tikz@mode@fillfalse% no more filling
- %
+ %
% Step 11: Double stroke, if necessary
%
\iftikz@mode@draw%
@@ -2344,11 +2431,15 @@
% Step 12: Postactions
%
\tikz@postactions%
- %
+ %
% Step 13: Add labels and nodes
%
\box\tikz@figbox%
%
+ % Step 14: Close animations
+ %
+ \iftikz@mode@clip\else\endgroup\endpgfidscope\fi%
+ %
% Step 14: Close option brace
%
\ifx\tikz@options\pgfutil@empty%
@@ -2370,9 +2461,10 @@
\endgroup%
\global\pgflinewidth=\tikzscope@linewidth%
\tikz@path@do@at@end%
-}
+}%
\let\tikz@lib@scope@check\pgfutil@empty% this is a hook for the scopes library
-\def\tikz@path@do@at@end{\tikz@lib@scope@check}
+\def\tikz@path@do@at@end{\tikz@lib@scope@check}%
+\def\tikz@@pathtext{@path}%
\def\pgf@outer@auto@adjust@hook{%
{%
@@ -2380,11 +2472,11 @@
\tikz@mode%
\expandafter%
}%
- \iftikz@mode@draw\else%xxx
+ \iftikz@mode@draw\else%
\pgfkeyslet{/pgf/outer xsep}\pgf@zero@text
\pgfkeyslet{/pgf/outer ysep}\pgf@zero@text
\fi%
-}
+}%
% Extra actions
@@ -2398,7 +2490,7 @@
\tikz@restorepathsize%
\pgfsys@endscope%
}%
-}
+}%
\def\tikz@extra@postaction#1{%
{%
@@ -2410,36 +2502,36 @@
\pgf@resetpathsizes%
\pgfsys@endscope%
}%
-}
+}%
-\def\tikz@skip#1{\tikz@scan@next@command#1}
+\def\tikz@skip#1{\tikz@scan@next@command#1}%
\def\tikz@expand{%
\advance\tikz@expandcount by -1%
\ifnum\tikz@expandcount<0\relax%
\tikzerror{Giving up on this path. Did you forget a semicolon?}%
- \let\@next=\tikz@finish%
+ \let\pgfutil@next=\tikz@finish%
\else%
- \let\@next=\tikz@@expand
+ \let\pgfutil@next=\tikz@@expand
\fi%
- \@next}
+ \pgfutil@next}%
\def\tikz@@expand{%
- \expandafter\tikz@scan@next@command\pgf@let@token}
+ \expandafter\tikz@scan@next@command\pgf@let@token}%
-% Syntax for scopes:
+% Syntax for scopes:
% {scoped path commands}
\newif\iftikz@auto@end@path
-\def\tikz@beginscope{\begingroup\tikz@auto@end@pathfalse\tikz@scan@next@command}
+\def\tikz@beginscope{\begingroup\tikz@auto@end@pathfalse\tikz@scan@next@command}%
\def\tikz@endscope{%
\iftikz@auto@end@path\expandafter\tikz@finish\expandafter\egroup\else\expandafter\tikz@@endscope\fi%
-}
-\def\tikz@@endscope{%
+}%
+\def\tikz@@endscope{%
\global\setbox\tikz@tempbox=\box\tikz@figbox%
\global\setbox\tikz@tempbox@bg=\box\tikz@figbox@bg%
\global\let\tikz@tangent@temp\tikz@tangent%
@@ -2468,24 +2560,24 @@
\setbox\tikz@figbox=\box\tikz@tempbox%
\setbox\tikz@figbox@bg=\box\tikz@tempbox@bg%
\let\tikz@tangent\tikz@tangent@temp%
- \tikz@scan@next@command}
+ \tikz@scan@next@command}%
-% Syntax for pgfextra:
+% Syntax for pgfextra:
% \pgfextra {normal tex text}
% \pgfextra normal tex text \endpgfextra
-\def\tikz@extra{\pgfutil@ifnextchar\bgroup\tikz@@extra\relax}
-\long\def\tikz@@extra#1{#1\tikz@scan@next@command}
+\def\tikz@extra{\pgfutil@ifnextchar\bgroup\tikz@@extra\relax}%
+\long\def\tikz@@extra#1{#1\tikz@scan@next@command}%
\let\endpgfextra=\tikz@scan@next@command
-\def\pgfextra{pgfextra}
+\def\pgfextra{pgfextra}%
% Syntax for foreach:
%
% foreach \var in {list} {path text}
-%
+%
% or
%
% \foreach \var in {list} {path text}
@@ -2494,7 +2586,7 @@
%
% \draw (0,0) \foreach \x in {1,2,3} {-- (\x,0) circle (1cm)} -- (5,5);
-\def\tikz@fchar oreach{\tikz@foreach}
+\def\tikz@fchar oreach{\tikz@foreach}%
\def\tikz@foreach{%
\def\pgffor@beginhook{%
@@ -2530,10 +2622,10 @@
\xdef\tikz@foreach@save@lasty{\the\tikz@lasty}%
\xdef\tikz@foreach@save@lastxsaved{\the\tikz@lastxsaved}%
\xdef\tikz@foreach@save@lastysaved{\the\tikz@lastysaved}%
- \foreach}
+ \foreach}%
+
-
-% Syntax for againpath:
+% Syntax for againpath:
% \againpath \somepathname
\def\tikz@command@againpath#1{%
@@ -2541,27 +2633,34 @@
\pgfsyssoftpath@getcurrentpath\tikz@temp%
\expandafter\pgfutil@g@addto@macro\expandafter\tikz@temp\expandafter{#1}%
\pgfsyssoftpath@setcurrentpath\tikz@temp%
- }
-}
+ }%
+}%
+
+% animation syntax
+% :attribute = {...}
+
+\def\tikz@colon@char#1=#2{%
+ \tikz@scan@next@command{[animate={myself:{#1}={#2}}]}%
+}%
%
% When this if is set, a just-scanned point is a shape and its border
% position still needs to be determined, depending on subsequent
-% commands.
+% commands.
%
\newif\iftikz@shapeborder
-% Syntax for moveto:
+% Syntax for moveto:
% <point>
-\def\tikz@movetoabs{\tikz@moveto(}
-\def\tikz@movetorel{\tikz@moveto+}
+\def\tikz@movetoabs{\tikz@moveto(}%
+\def\tikz@movetorel{\tikz@moveto+}%
\def\tikz@moveto{%
- \tikz@scan@one@point{\tikz@@moveto}}
+ \tikz@scan@one@point{\tikz@@moveto}}%
\def\tikz@@moveto#1{%
\tikz@make@last@position{#1}%
\iftikz@shapeborder%
@@ -2573,7 +2672,7 @@
\let\tikz@moveto@waiting=\relax%
\fi%
\tikz@scan@next@command%
-}
+}%
\let\tikz@moveto@waiting=\relax % normally, nothing is waiting...
@@ -2583,7 +2682,7 @@
\pgfpathmoveto{\tikz@last@position}%
\fi%
\let\tikz@moveto@waiting=\relax%
-}
+}%
\def\tikz@flush@moveto@toward#1#2#3{%
@@ -2600,22 +2699,22 @@
\pgfpathmoveto{\pgfqpoint{\pgf@x}{\pgf@y}}%
\fi%
\let\tikz@moveto@waiting=\relax%
-}
+}%
%
-% Collecting labels on the path
+% Collecting labels on the path
%
\def\tikz@collect@coordinate@onpath#1c{%
- \pgfutil@ifnextchar y{\tikz@cycle@expander@add#1}{\tikz@collect@coordinate@onpath@{#1}}}
+ \pgfutil@ifnextchar y{\tikz@cycle@expander@add#1}{\tikz@collect@coordinate@onpath@{#1}}}%
\def\tikz@collect@coordinate@onpath@#1oordinate{%
- \pgfutil@ifnextchar[{\tikz@@collect@coordinate@opt#1}{\tikz@@collect@coordinate@opt#1[]}}%}
+ \pgfutil@ifnextchar[{\tikz@@collect@coordinate@opt#1}{\tikz@@collect@coordinate@opt#1[]}}%}%
\def\tikz@@collect@coordinate@opt#1[#2]{%
\pgfutil@ifnextchar({\tikz@@collect@coordinate#1[#2]}{%
- \tikz@collect@label@onpath#1node[shape=coordinate,#2]{}}}%}
+ \tikz@collect@label@onpath#1node[shape=coordinate,#2]{}}}%}%
\def\tikz@@collect@coordinate#1[#2](#3){%
- \tikz@collect@label@onpath#1node[shape=coordinate,#2](#3){}}
+ \tikz@collect@label@onpath#1node[shape=coordinate,#2](#3){}}%
\newif\iftikz@collect@pic
@@ -2623,43 +2722,48 @@
\expandafter\def\expandafter\tikz@collected@onpath\expandafter{\tikz@collected@onpath node}%
\let\tikz@collect@cont#1%
\tikz@collect@picfalse%
- \tikz@collect@label@scan}
+ \tikz@collect@label@scan}%
\def\tikz@collect@pic@onpath#1pic{%
\expandafter\def\expandafter\tikz@collected@onpath\expandafter{\tikz@collected@onpath pic}%
\let\tikz@collect@cont#1
\tikz@collect@pictrue%
- \tikz@collect@label@scan}
+ \tikz@collect@label@scan}%
-\def\tikz@collect@label@scan{%
+\def\tikz@collect@label@scan{%
\pgfutil@ifnextchar f{\tikz@collect@nodes}{%
\pgfutil@ifnextchar({\tikz@collect@paran}%
{\pgfutil@ifnextchar[{\tikz@collect@options}%
- {\pgfutil@ifnextchar\bgroup{\tikz@collect@arg}%
- {\tikz@collect@cont}}}}%
-}%}}
+ {\pgfutil@ifnextchar:{\tikz@collect@animation}%
+ {\pgfutil@ifnextchar\bgroup{\tikz@collect@arg}%
+ {\tikz@collect@cont}}}}}%
+}%}}%
\def\tikz@collect@nodes foreach#1in{%
\expandafter\def\expandafter\tikz@collected@onpath\expandafter{\tikz@collected@onpath foreach#1in}%
\pgfutil@ifnextchar\bgroup\tikz@collect@nodes@group\tikz@collect@nodes@one%
-}
+}%
\def\tikz@collect@nodes@one#1{%
- \expandafter\def\expandafter\tikz@collected@onpath\expandafter{\tikz@collected@onpath #1}%
+ \expandafter\def\expandafter\tikz@collected@onpath\expandafter{\tikz@collected@onpath #1}%
\tikz@collect@label@scan%
-}
+}%
\def\tikz@collect@nodes@group#1{%
- \expandafter\def\expandafter\tikz@collected@onpath\expandafter{\tikz@collected@onpath{#1}}%
+ \expandafter\def\expandafter\tikz@collected@onpath\expandafter{\tikz@collected@onpath{#1}}%
\tikz@collect@label@scan%
-}
+}%
+\def\tikz@collect@animation#1=#2{%
+ \expandafter\def\expandafter\tikz@collected@onpath\expandafter{\tikz@collected@onpath#1={#2}}%
+ \tikz@collect@label@scan%
+}%
\def\tikz@collect@paran#1){%
\expandafter\def\expandafter\tikz@collected@onpath\expandafter{\tikz@collected@onpath#1)}%
\tikz@collect@label@scan%
-}
+}%
\def\tikz@collect@options#1]{%
\expandafter\def\expandafter\tikz@collected@onpath\expandafter{\tikz@collected@onpath#1]}%
\tikz@collect@label@scan%
-}
+}%
\def\tikz@collect@arg#1{%
\iftikz@handle@active@nodes%
\iftikz@collect@pic%
@@ -2671,7 +2775,7 @@
\expandafter\def\expandafter\tikz@collected@onpath\expandafter{\tikz@collected@onpath{#1}}%
\fi%
\tikz@collect@cont%
-}
+}%
\def\tikz@invoke@collected@onpath{%
\tikz@node@is@a@labeltrue%
@@ -2679,37 +2783,37 @@
\let\tikz@collected@onpath=\pgfutil@empty%
\expandafter\tikz@scan@next@command\tikz@temp\pgf@stop%
\tikz@node@is@a@labelfalse%
-}
+}%
%
% Macros for the cycle command
%
-\def\tikz@cycle@expander#1{\pgfutil@ifnextchar c{\tikz@cycle@expander@{#1}}{#1}}
-\def\tikz@cycle@expander@#1c{\pgfutil@ifnextchar y{\tikz@cycle@expander@add{#1}}{#1c}}
-\def\tikz@cycle@expander@add#1ycle{#1(current subpath start)--cycle}
+\def\tikz@cycle@expander#1{\pgfutil@ifnextchar c{\tikz@cycle@expander@{#1}}{#1}}%
+\def\tikz@cycle@expander@#1c{\pgfutil@ifnextchar y{\tikz@cycle@expander@add{#1}}{#1c}}%
+\def\tikz@cycle@expander@add#1ycle{#1(current subpath start)--cycle}%
-% Syntax for lineto:
+% Syntax for lineto:
% -- <point>
\def\tikz@lineto{%
\pgfutil@ifnextchar |%
{\expandafter\tikz@hv@lineto\pgfutil@gobble}%
{\expandafter\pgfutil@ifnextchar\tikz@activebar{\expandafter\tikz@hv@lineto\pgfutil@gobble}%
- {\expandafter\tikz@lineto@mid\pgfutil@gobble}}}
+ {\expandafter\tikz@lineto@mid\pgfutil@gobble}}}%
\def\tikz@lineto@mid{%
\pgfutil@ifnextchar n{\tikz@collect@label@onpath\tikz@lineto@mid}%
{%
\pgfutil@ifnextchar c{\tikz@close}{%
- \pgfutil@ifnextchar p{\tikz@lineto@plot@or@pic}{\tikz@scan@one@point{\tikz@@lineto}}}}}
+ \pgfutil@ifnextchar p{\tikz@lineto@plot@or@pic}{\tikz@scan@one@point{\tikz@@lineto}}}}}%
\def\tikz@lineto@plot@or@pic p{%
\pgfutil@ifnextchar i{\tikz@collect@pic@onpath\tikz@lineto@mid p}{%
\pgfsetlinetofirstplotpoint\tikz@plot}%
-}
+}%
\def\tikz@@lineto#1{%
% Record the starting point for later labels on the path:
\edef\tikz@timer@start{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}
@@ -2721,7 +2825,7 @@
\tikz@path@lineto{\tikz@last@position}%
\edef\tikz@timer@end{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}%
\tikz@make@last@position{#1}%
- \edef\tikz@moveto@waiting{\tikz@shapeborder@name}%
+ \edef\tikz@moveto@waiting{\tikz@shapeborder@name}%
\else%
% target is a reasonable point...
% Record the starting point for later labels on the path:
@@ -2733,7 +2837,7 @@
\let\tikz@timer=\tikz@timer@line%
\let\tikz@tangent\tikz@timer@start%
\tikz@scan@next@command%
-}
+}%
% snake or lineto?
\def\tikz@path@lineto#1{%
@@ -2745,7 +2849,7 @@
\else%
\pgfpathlineto{#1}%
\fi%
-}
+}%
% snake or lineto?
\def\tikz@path@close#1{%
@@ -2756,17 +2860,17 @@
}%
\fi%
\pgfpathclose%
-}
+}%
-% Syntax for lineto horizontal/vertical:
+% Syntax for lineto horizontal/vertical:
% -| <point>
\def\tikz@hv@lineto{%
\pgfutil@ifnextchar n{\tikz@collect@label@onpath\tikz@hv@lineto}{
\pgfutil@ifnextchar p{\tikz@collect@pic@onpath\tikz@hv@lineto}%
{\pgfutil@ifnextchar c{\tikz@collect@coordinate@onpath\tikz@hv@lineto}%
- {\tikz@scan@one@point{\tikz@@hv@lineto}}}}}
+ {\tikz@scan@one@point{\tikz@@hv@lineto}}}}}%
\def\tikz@@hv@lineto#1{%
\edef\tikz@timer@start{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}%
\pgf@yc=\tikz@lasty%
@@ -2783,7 +2887,7 @@
\xdef\tikz@timer@end@temp{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}% move out of group
}%
\let\tikz@timer@end=\tikz@timer@end@temp%
- \edef\tikz@moveto@waiting{\tikz@shapeborder@name}%
+ \edef\tikz@moveto@waiting{\tikz@shapeborder@name}%
\else%
\tikz@path@lineto{\pgfqpoint{\tikz@lastx}{\pgf@yc}}%
\tikz@path@lineto{\tikz@last@position}%
@@ -2791,17 +2895,17 @@
\fi%
\let\tikz@timer=\tikz@timer@hvline%
\tikz@scan@next@command%
-}
+}%
-% Syntax for lineto vertical/horizontal:
+% Syntax for lineto vertical/horizontal:
% |- <point>
-\def\tikz@vh@lineto-{\tikz@vh@lineto@next}
+\def\tikz@vh@lineto-{\tikz@vh@lineto@next}%
\def\tikz@vh@lineto@next{%
\pgfutil@ifnextchar n{\tikz@collect@label@onpath\tikz@vh@lineto@next}{%
\pgfutil@ifnextchar p{\tikz@collect@pic@onpath\tikz@vh@lineto@next}%
{\pgfutil@ifnextchar c{\tikz@collect@coordinate@onpath\tikz@vh@lineto@next}%
- {\tikz@scan@one@point\tikz@@vh@lineto}}}}
+ {\tikz@scan@one@point\tikz@@vh@lineto}}}}%
\def\tikz@@vh@lineto#1{%
\edef\tikz@timer@start{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}%
\pgf@xc=\tikz@lastx%
@@ -2818,7 +2922,7 @@
\xdef\tikz@timer@end@temp{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}% move out of group
}%
\let\tikz@timer@end=\tikz@timer@end@temp%
- \edef\tikz@moveto@waiting{\tikz@shapeborder@name}%
+ \edef\tikz@moveto@waiting{\tikz@shapeborder@name}%
\else%
\tikz@path@lineto{\pgfqpoint{\pgf@xc}{\tikz@lasty}}%
\tikz@path@lineto{\tikz@last@position}%
@@ -2826,9 +2930,9 @@
\fi%
\let\tikz@timer=\tikz@timer@vhline%
\tikz@scan@next@command%
-}
+}%
-% Syntax for cycle:
+% Syntax for cycle:
% -- cycle
\def\tikz@close c{%
\pgfutil@ifnextchar o{\tikz@collect@coordinate@onpath\tikz@lineto@mid c}% oops, a coordinate
@@ -2843,39 +2947,53 @@
\let\tikz@timer=\tikz@timer@line%
\let\tikz@tangent\tikz@timer@start%
\tikz@scan@next@command%
-}
+}%
-% Syntax for options:
+% Syntax for options:
% [options]
\def\tikz@parse@options#1]{%
\tikzset{#1}%
\tikz@scan@next@command%
-}
+}%
% Syntax for edges:
% edge [options] (coordinate)
% edge [options] node {node text} (coordinate)
+% edge :attribute={...} [options] node {node text} (coordinate)
\def\tikz@edge@plain{%
\begingroup%
\ifx\tikz@to@use@whom\pgfutil@undefined\else\tikz@to@use@whom\fi
\let\tikz@to@or@edge@function=\tikz@do@edge%
- \tikz@to@or@edge}
+ \let\tikz@@to@local@options\pgfutil@empty%
+ \let\tikz@collected@onpath=\pgfutil@empty%
+ \tikz@to@or@edge}%
% Syntax for to paths:
% to [options] (coordinate)
% to [options] node {node text} (coordinate)
+% to :attribute={...} [options] node {node text} (coordinate)
\def\tikz@to o{%
\tikz@to@use@last@coordinate%
\let\tikz@to@or@edge@function=\tikz@do@to%
- \tikz@to@or@edge}
-
-\def\tikz@to@or@edge{\pgfutil@ifnextchar[\tikz@@to@or@edge{\tikz@@to@or@edge[]}}%}
-\def\tikz@@to@or@edge[#1]{%
- \def\tikz@@to@local@options{#1}%
+ \let\tikz@@to@local@options\pgfutil@empty%
\let\tikz@collected@onpath=\pgfutil@empty%
- \tikz@@to@collect%
-}
+ \tikz@to@or@edge}%
+
+\def\tikz@to@or@edge{%
+ \pgfutil@ifnextchar[{\tikz@to@or@edge@option}{%
+ \pgfutil@ifnextchar:{\tikz@to@or@edge@animation}{%
+ \tikz@@to@collect}}%]
+}%
+\def\tikz@to@or@edge@option[#1]{%
+ \expandafter\def\expandafter\tikz@@to@local@options\expandafter{\tikz@@to@local@options,#1}%
+ \tikz@to@or@edge%
+}%
+\def\tikz@to@or@edge@animation:#1=#2{%
+ \expandafter\def\expandafter\tikz@@to@local@options\expandafter{\tikz@@to@local@options,%
+ animate={myself:{#1}={#2}}}%
+ \tikz@to@or@edge%
+}%
\def\tikz@@to@collect{%
\pgfutil@ifnextchar(\tikz@@to@or@edge@coordinate%)
{\pgfutil@ifnextchar n{\tikz@collect@label@onpath\tikz@@to@collect}%
@@ -2884,7 +3002,7 @@
{\pgfutil@ifnextchar +{\tikz@scan@one@point\tikz@@to@or@edge@math}%
{\tikzerror{(, +, coordinate, pic, or node expected}%)
\tikz@@to@or@edge@coordinate()}}}}}%
-}
+}%
\def\tikz@@to@or@edge@coordinate({%
\pgfutil@ifnextchar${%$
@@ -2897,17 +3015,17 @@
\tikz@@to@or@edge@@coordinate(%
}%
}%
-}
-\def\tikz@@to@or@edge@math#1{%
+}%
+\def\tikz@@to@or@edge@math#1{%
\pgf@process{#1}%
\edef\tikztotarget{\the\pgf@x,\the\pgf@y}%
\tikz@to@or@edge@function%
-}
+}%
\def\tikz@@to@or@edge@@coordinate(#1){%
\def\tikztotarget{#1}%
\tikz@to@or@edge@function%
-}
+}%
\def\tikz@do@edge{%
\ifx\tikz@edge@macro\pgfutil@empty%
@@ -2919,10 +3037,14 @@
\pgfscope%
\let\tikz@transform=\pgfutil@empty%
\let\tikz@options=\pgfutil@empty%
+ \tikz@clear@rdf@options%
\let\tikz@tonodes=\tikz@collected@onpath%
\def\tikztonodes{{\pgfextra{\tikz@node@is@a@labeltrue}\tikz@tonodes}}%
\let\tikz@collected@onpath=\pgfutil@empty%
\tikz@options%
+ \tikz@do@rdf@pre@options%
+ \pgfidscope%
+ \tikz@do@rdf@post@options%
\tikz@transform%
\let\tikz@transform=\relax%
% Typeset node:
@@ -2932,6 +3054,7 @@
\path[style=every edge]\expandafter[\tikz@@to@local@options](\tikztostart)\tikz@to@path
\pgfextra{\global\let\tikz@after@path@smuggle=\tikz@after@path};%
\tikz@atend@to%
+ \endpgfidscope%
\endpgfscope%
\endpgfinterruptpath%
\egroup
@@ -2939,15 +3062,15 @@
\egroup%
\global\setbox\tikz@tempbox=\box\tikz@whichbox%
\expandafter\endgroup%
- \expandafter\setbox\tikz@whichbox=\box\tikz@tempbox%
+ \expandafter\setbox\tikz@whichbox=\box\tikz@tempbox%
\else%
\expandafter\expandafter\expandafter\tikz@edge@macro%
\expandafter\expandafter\expandafter{\expandafter\tikz@@to@local@options\expandafter}\expandafter{\tikz@collected@onpath}%
\endgroup%
\let\tikz@after@path@smuggle=\pgfutil@empty%
\fi%
- \expandafter\tikz@scan@next@command\tikz@after@path@smuggle%
-}
+ \expandafter\tikz@scan@next@command\tikz@after@path@smuggle%
+}%
\def\tikz@do@to{%
\let\tikz@tonodes=\tikz@collected@onpath%
@@ -2963,7 +3086,7 @@
\pgf@stop%
\expandafter\tikz@scan@next@command\expandafter%
}\tikz@after@path%
-}
+}%
\def\tikz@to@use@last@coordinate{%
@@ -2972,60 +3095,60 @@
\else%
\edef\tikztostart{\the\tikz@lastx,\the\tikz@lasty}%
\fi%
-}
+}%
\def\tikz@to@use@last@fig@name{%
\edef\tikztostart{\tikz@to@last@fig@name}%
-}
+}%
% Syntax for graph path command:
-% graph {...}
+% graph [options] {...}
% See the graph library for details
-\def\tikz@graph aph{\tikz@lib@graph@parser}
+\def\tikz@graph aph{\tikz@lib@graph@parser}%
-\def\tikz@lib@graph@parser{\pgfutil@ifnextchar[\tikz@graph@error{\tikz@graph@error[]}}%]
+\def\tikz@lib@graph@parser{\pgfutil@ifnextchar[\tikz@graph@error{\tikz@graph@error[]}}%]%
\def\tikz@graph@error[#1]#2{%
- \tikzerror{You need to say \string\usetikzlibrary{graphs} in order to use the graph syntax}%
+ \tikzerror{You need to say \string\usetikzlibrary{graphs} in order to use the graph syntax}%
\tikz@lib@graph@parser@done%
-}
+}%
\def\tikz@lib@graph@parser@done{%
\tikz@scan@next@command%
-}
+}%
-% Syntax for edge from parent:
+% Syntax for edge from parent:
% edge from parent [options]
-\def\tikz@edgetoparent from parent{\pgfutil@ifnextchar[\tikz@@edgetoparent{\tikz@@edgetoparent[]}}%}
+\def\tikz@edgetoparent from parent{\pgfutil@ifnextchar[\tikz@@edgetoparent{\tikz@@edgetoparent[]}}%}%
\def\tikz@@edgetoparent[#1]{%
\let\tikz@edge@to@parent@needed=\pgfutil@empty%
\def\tikz@edgetoparent@options{#1}%
\begingroup%
\let\tikz@collected@onpath=\pgfutil@empty%
\tikz@edgetoparentcollect%
-}
+}%
\def\tikz@edgetoparentcollect{
\pgfutil@ifnextchar n{\tikz@collect@label@onpath\tikz@edgetoparentcollect}%
{%
- \expandafter%
+ \expandafter%
\endgroup%
- \expandafter\tikz@edgetoparent@rollout\expandafter{\tikz@collected@onpath}%
+ \expandafter\tikz@edgetoparent@rollout\expandafter{\tikz@collected@onpath}%
}
-}
+}%
\def\tikz@edgetoparent@rollout#1{%
\pgfkeysgetvalue{/tikz/edge from parent macro}\tikz@etop@temp
\expandafter\tikz@scan@next@command\expandafter\tikz@etop@temp\expandafter{\tikz@edgetoparent@options}{#1}%
-}
+}%
% Syntax for bezier curves
% .. controls(point) and (point) .. (target)
-% .. controls(point) .. (target)
+% .. controls(point) .. (target)
% .. (target) % currently not supported
\def\tikz@dot.{\tikz@@dot}%
@@ -3033,14 +3156,14 @@
\pgfutil@ifnextchar n{\tikz@collect@label@onpath\tikz@@dot}{%
\pgfutil@ifnextchar p{\tikz@collect@pic@onpath\tikz@@dot}%
{\pgfutil@ifnextchar c{\tikz@curveto@double}{\tikz@curveto@auto}}}%
-}
+}%
\def\tikz@curveto@double co{%
\pgfutil@ifnextchar o{\tikz@collect@coordinate@onpath\tikz@@dot co}
- {\tikz@cureveto@@double}}
+ {\tikz@cureveto@@double}}%
\def\tikz@cureveto@@double ntrols#1{%
\tikz@scan@one@point\tikz@curveA#1%
-}
+}%
\def\tikz@curveA#1{%
\edef\tikz@timer@start{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}%
{%
@@ -3052,29 +3175,29 @@
\pgfutil@ifnextchar a
{\tikz@curveBand}%
{\let\tikz@curve@second\tikz@curve@first\tikz@curveCdots}%
-}
+}%
\def\tikz@curveBand and{%
\tikz@scan@one@point\tikz@curveB%
-}
+}%
\def\tikz@curveB#1{%
\def\tikz@curve@second{#1}%
\tikz@curveCdots}
\def\tikz@curveCdots{%
- \afterassignment\tikz@curveCdot\let\@next=}
+ \afterassignment\tikz@curveCdot\let\pgfutil@next=}%
\def\tikz@curveCdot.{%
- \ifx\@next.%
+ \ifx\pgfutil@next.%
\else%
\tikzerror{Dot expected}%
\fi%
\tikz@updatecurrenttrue%
\tikz@curveCcheck%
-}
+}%
\def\tikz@curveCcheck{%
\pgfutil@ifnextchar n{\tikz@collect@label@onpath\tikz@curveCcheck}{%
\pgfutil@ifnextchar p{\tikz@collect@pic@onpath\tikz@curveCcheck}%
{\pgfutil@ifnextchar c{\tikz@collect@coordinate@onpath\tikz@curveCcheck}
{\tikz@scan@one@point\tikz@curveC}}}%
-}
+}%
\def\tikz@curveC#1{%
\tikz@make@last@position{#1}%
\edef\tikz@curve@third{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}%
@@ -3095,7 +3218,7 @@
\pgfpathmoveto{\pgfqpoint{\pgf@x}{\pgf@y}}%
\fi%
\let\tikz@timer@cont@one=\tikz@curve@first%
- \let\tikz@timer@cont@two=\tikz@curve@second%
+ \let\tikz@timer@cont@two=\tikz@curve@second%
% Second, the end:
\iftikz@shapeborder%
% ok, target is a shape. recalculate third
@@ -3107,7 +3230,7 @@
\global\let\tikz@timer@end@temp=\tikz@curve@third% move out of group
}%
\let\tikz@timer@end=\tikz@timer@end@temp%
- \edef\tikz@moveto@waiting{\tikz@shapeborder@name}%
+ \edef\tikz@moveto@waiting{\tikz@shapeborder@name}%
\else%
\pgfpathcurveto{\tikz@curve@first}{\tikz@curve@second}{\tikz@curve@third}%
\let\tikz@timer@end=\tikz@curve@third
@@ -3116,11 +3239,11 @@
\let\tikz@timer=\tikz@timer@curve%
\let\tikz@tangent=\tikz@curve@second%
\tikz@scan@next@command%
-}
+}%
-% Syntax for rectangles:
-% rectangle <corner point>
+% Syntax for rectangles:
+% rectangle <corner point>
\def\tikz@rect ectangle{%
\tikz@flush@moveto%
\edef\tikz@timer@start{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}%
@@ -3132,16 +3255,16 @@
{
\pgf@xa=\tikz@lastx\relax%
\pgf@ya=\tikz@lasty\relax%
- \tikz@scan@one@point\tikz@rectB}}}}
+ \tikz@scan@one@point\tikz@rectB}}}}%
\def\tikz@rectB#1{%
\tikz@make@last@position{#1}%
\edef\tikz@timer@end{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}%
- \let\tikz@timer=\tikz@timer@line%
+ \let\tikz@timer=\tikz@timer@line%
\pgfpathmoveto{\pgfqpoint{\pgf@xa}{\pgf@ya}}%
\tikz@path@lineto{\pgfqpoint{\pgf@xa}{\tikz@lasty}}%
\tikz@path@lineto{\pgfqpoint{\tikz@lastx}{\tikz@lasty}}%
\tikz@path@lineto{\pgfqpoint{\tikz@lastx}{\pgf@ya}}%
- \iftikz@snaked%
+ \iftikz@snaked%
\tikz@path@lineto{\pgfqpoint{\pgf@xa}{\pgf@ya}}%
\fi%
\pgfpathclose%
@@ -3149,17 +3272,17 @@
\def\pgfstrokehook{}%
\let\tikz@tangent\relax%
\tikz@scan@next@command%
-}
+}%
-% Syntax for grids:
-% grid <corner point>
+% Syntax for grids:
+% grid <corner point>
\def\tikz@grid id{%
\tikz@flush@moveto%
\pgf@xa=\tikz@lastx\relax%
\pgf@ya=\tikz@lasty\relax%
- \pgfutil@ifnextchar[{\tikz@gridA}{\tikz@gridA[]}}%}
+ \pgfutil@ifnextchar[{\tikz@gridA}{\tikz@gridA[]}}%}%
\def\tikz@gridA[#1]{%
\def\tikz@grid@options{#1}%
\tikz@cycle@expander{\tikz@scan@one@point\tikz@gridB}}%
@@ -3189,16 +3312,16 @@
{\pgfqpoint{\pgf@xa}{\pgf@ya}}{\pgfqpoint{\tikz@lastx}{\tikz@lasty}}%
\expandafter}%
\expandafter\tikz@scan@next@command\tikz@after@path%
-}
+}%
-% Syntax for plot:
+% Syntax for plot:
% plot [local options] ... % starts with a moveto
% -- plot [local options] ... % starts with a lineto
\def\tikz@plot lot{%
\tikz@flush@moveto%
- \pgfutil@ifnextchar[{\tikz@@plot}{\tikz@@plot[]}}%}
+ \pgfutil@ifnextchar[{\tikz@@plot}{\tikz@@plot[]}}%}%
\def\tikz@@plot[#1]{%
\let\tikz@tangent\tikz@tangent@lookup%
\begingroup%
@@ -3210,8 +3333,8 @@
{\pgfutil@ifnextchar c{\tikz@plot@scan@points}%
{\pgfutil@ifnextchar ({\tikz@plot@expression}{%
\tikzerror{Cannot parse this plotting data}%
- \endgroup}}}}
-\def\tikz@plot@f f{\pgfutil@ifnextchar i{\tikz@plot@file}{\tikz@plot@function}}
+ \endgroup}}}}%
+\def\tikz@plot@f f{\pgfutil@ifnextchar i{\tikz@plot@file}{\tikz@plot@function}}%
\def\tikz@plot@file ile#1{\def\tikz@plot@data{\pgfplotxyfile{#1}}\tikz@@@plot}%
\def\tikz@plot@scan@points coordinates#1{%
@@ -3220,18 +3343,18 @@
\pgfutil@ifnextchar\pgf@stop{\pgfplotstreamend\expandafter\tikz@@@plot\pgfutil@gobble}
{\tikz@scan@one@point\tikz@plot@next@point}%
#1\pgf@stop%
-}
+}%
\def\tikz@plot@next@point#1{%
\pgfplotstreampoint{#1}%
\pgfutil@ifnextchar\pgf@stop{\pgfplotstreamend\expandafter\tikz@@@plot\pgfutil@gobble}%
{\tikz@scan@one@point\tikz@plot@next@point}%
-}
+}%
\def\tikz@plot@function unction#1{%
- \def\tikz@plot@filename{\tikz@plot@prefix\tikz@plot@id}%
+ \def\tikz@plot@filename{\tikz@plot@prefix\tikz@plot@id}%
\iftikz@plot@raw@gnuplot%
\def\tikz@plot@data{\pgfplotgnuplot[\tikz@plot@filename]{#1}}%
\else%
- \iftikz@plot@parametric%
+ \iftikz@plot@parametric%
\def\tikz@plot@data{\pgfplotgnuplot[\tikz@plot@filename]{%
set samples \tikz@plot@samples;
set parametric;
@@ -3248,19 +3371,19 @@
\fi%
\fi%
\tikz@@@plot%
-}
+}%
\def\tikz@plot@no@resample{%
\pgfutil@IfFileExists{\tikz@plot@filename.table}%
{\def\tikz@plot@data{\pgfplotxyfile{\tikz@plot@filename.table}}}%
{}%
-}
+}%
\def\tikz@plot@expression(#1){%
\edef\tikz@plot@data{\noexpand\pgfplotfunction{\expandafter\noexpand\tikz@plot@var}{\tikz@plot@samplesat}}%
\expandafter\def\expandafter\tikz@plot@data\expandafter{\tikz@plot@data{\tikz@scan@one@point\pgfutil@firstofone(#1)}}%
\tikz@@@plot%
-}
+}%
\def\tikz@@@plot{%
\def\pgfplotlastpoint{\pgfpointorigin}%
@@ -3293,17 +3416,17 @@
\global\setbox\tikz@tempbox=\box\tikz@whichbox%
\global\let\tikz@after@path@smuggle=\tikz@after@path
\expandafter\endgroup%
- \expandafter\setbox\tikz@whichbox=\box\tikz@tempbox%
- \tikz@make@last@position{\tikz@@@temp}%
+ \expandafter\setbox\tikz@whichbox=\box\tikz@tempbox%
+ \tikz@make@last@position{\tikz@@@temp}%
\expandafter\tikz@scan@next@command\tikz@after@path@smuggle%
-}
+}%
\pgfdeclareplotmark{ball}
{%
\def\tikz@shading{ball}%
\shade (0pt,0pt) circle (\pgfplotmarksize);%
-}
+}%
@@ -3326,7 +3449,7 @@
\tikz@updatecurrenttrue%
\pgfpathcosine{\pgfqpoint{\pgf@xc}{\pgf@yc}}%
\tikz@scan@next@command%
-}
+}%
% Syntax for sine curves:
% sin <end of quarter-period>
@@ -3346,22 +3469,22 @@
\tikz@updatecurrenttrue%
\pgfpathsine{\pgfqpoint{\pgf@xc}{\pgf@yc}}%
\tikz@scan@next@command%
-}
+}%
-% Syntax for parabolas:
+% Syntax for parabolas:
% parabola[options] bend <coordinate> <coordinate>
\def\tikz@parabola arabola{%
\let\tikz@tangent\tikz@tangent@lookup%
- \pgfutil@ifnextchar[{\tikz@parabola@options}{\tikz@parabola@options[]}}%}
+ \pgfutil@ifnextchar[{\tikz@parabola@options}{\tikz@parabola@options[]}}%}%
\def\tikz@parabola@options[#1]{%
\def\tikz@parabola@option{#1}%
- \pgfutil@ifnextchar b{\tikz@parabola@scan@bend}{\tikz@cycle@expander{\tikz@scan@one@point\tikz@parabola@semifinal}}}
-\def\tikz@parabola@scan@bend bend{\tikz@scan@one@point\tikz@parabola@scan@bendB}
+ \pgfutil@ifnextchar b{\tikz@parabola@scan@bend}{\tikz@cycle@expander{\tikz@scan@one@point\tikz@parabola@semifinal}}}%
+\def\tikz@parabola@scan@bend bend{\tikz@scan@one@point\tikz@parabola@scan@bendB}%
\def\tikz@parabola@scan@bendB#1{%
\def\tikz@parabola@bend{#1}%
\tikz@cycle@expander{\tikz@scan@one@point\tikz@parabola@semifinal}%
-}
+}%
\def\tikz@parabola@semifinal#1{%
\tikz@flush@moveto%
% Save original start:
@@ -3390,7 +3513,7 @@
\expandafter\endgroup%
\expandafter\expandafter\expandafter\pgfpathparabola\expandafter\tikz@parabola@b%
\expandafter\tikz@scan@next@command\tikz@after@path%
-}
+}%
% Syntax for circles:
@@ -3402,23 +3525,23 @@
% ellipse (x-radius and y-radius) % deprecated
%
% radii can be dimensionless, then they are in the xy-system
-\def\tikz@circle ircle{\tikz@flush@moveto\tikz@@circle}
-\def\tikz@ellipse llipse{\tikz@flush@moveto\tikz@@circle}
+\def\tikz@circle ircle{\tikz@flush@moveto\tikz@@circle}%
+\def\tikz@ellipse llipse{\tikz@flush@moveto\tikz@@circle}%
\def\tikz@@circle{%
\let\tikz@tangent\relax%
\pgfutil@ifnextchar(\tikz@@@circle
{\pgfutil@ifnextchar[\tikz@circle@opt{%])
\advance\tikz@expandcount by -10\relax% go down quickly
\ifnum\tikz@expandcount<0\relax%
- \let\@next=\tikz@@circle@normal%
+ \let\pgfutil@next=\tikz@@circle@normal%
\else%
- \let\@next=\tikz@@circle@scanexpand%
+ \let\pgfutil@next=\tikz@@circle@scanexpand%
\fi%
- \@next%
+ \pgfutil@next%
}}%
-}
-\def\tikz@@circle@scanexpand{\expandafter\tikz@@circle}
-\def\tikz@@circle@normal{\tikz@circle@opt[]}
+}%
+\def\tikz@@circle@scanexpand{\expandafter\tikz@@circle}%
+\def\tikz@@circle@normal{\tikz@circle@opt[]}%
\def\tikz@circle@opt[#1]{%
{%
@@ -3430,7 +3553,7 @@
\tikz@do@circle{\pgfkeysvalueof{/tikz/x radius}}{\pgfkeysvalueof{/tikz/y radius}}
}%
\tikz@scan@next@command%
-}
+}%
\def\tikz@@@circle(#1){%
{%
@@ -3443,10 +3566,10 @@
\fi%
}%
\tikz@scan@next@command%
-}
+}%
\def\tikz@@ellipseB(#1 and #2){%
\tikz@do@circle{#1}{#2}
-}
+}%
\def\tikz@do@circle#1#2{
\pgfmathparse{#1}%
\let\tikz@ellipse@x=\pgfmathresult%
@@ -3469,15 +3592,12 @@
\pgfpointxy{\tikz@ellipse@x}{0}}{\pgfpointxy{0}{\tikz@ellipse@y}}%
\fi%
\fi%
-}
+}%
-% Syntax 1 for arcs:
-% arc (start angle:end angle:radius)
+% Syntax for arcs:
+% arc [options]
%
-% Syntax 2 for arcs:
-% arc (start angle:end angle:x-radius and y-radius)
-%
-% radius can be dimensionless, then the arc is in the xy-coordinate system
+% (The syntax with parentheses is deprecated.)
\def\tikz@arcA rc{\tikz@flush@moveto\tikz@arc@cont}%
\def\tikz@arc@cont{%
\pgfutil@ifnextchar(%)
@@ -3487,16 +3607,16 @@
{%
\advance\tikz@expandcount by -10\relax% go down quickly
\ifnum\tikz@expandcount<0\relax%
- \let\@next=\tikz@@arc@normal%
+ \let\pgfutil@next=\tikz@@arc@normal%
\else%
- \let\@next=\tikz@@arc@scanexpand%
+ \let\pgfutil@next=\tikz@@arc@scanexpand%
\fi%
- \@next%
+ \pgfutil@next%
}%
}%
-}
-\def\tikz@@arc@scanexpand{\expandafter\tikz@arc@cont}
-\def\tikz@@arc@normal{\tikz@arc@opt[]}
+}%
+\def\tikz@@arc@scanexpand{\expandafter\tikz@arc@cont}%
+\def\tikz@@arc@normal{\tikz@arc@opt[]}%
\def\tikz@arc@opt[#1]{%
@@ -3508,7 +3628,7 @@
\ifx\tikz@s\pgfutil@empty%
\pgfmathsetmacro\tikz@s{\tikz@e-\tikz@d}
\else
- \ifx\tikz@e\pgfutil@empty%
+ \ifx\tikz@e\pgfutil@empty%
\pgfmathsetmacro\tikz@e{\tikz@s+\tikz@d}
\fi%
\fi%
@@ -3518,27 +3638,27 @@
{\pgfkeysvalueof{/tikz/y radius}}}%
}%
\pgf@marshal%
- \tikz@arcfinal%
-}
+ \tikz@arcfinal%
+}%
\def\tikz@@arcto(#1){%
\edef\tikz@temp{(#1)}%
\expandafter\tikz@@@arcto@check@slashand\tikz@temp%
-}
+}%
\def\tikz@@@arcto@check@slashand(#1:#2:#3){%
\pgfutil@in@{ and }{#3}%
- \ifpgfutil@in@%
+ \ifpgfutil@in@%
\tikz@parse@arc@and(#1:#2:#3)%
\else%
\tikz@parse@arc@and(#1:#2:{#3} and {#3})%
\fi%
- \tikz@arcfinal%
-}
+ \tikz@arcfinal%
+}%
\def\tikz@parse@arc@and(#1:#2:#3 and #4){%
\tikz@do@arc{#1}{#2}{#3}{#4}%
-}
+}%
\def\tikz@do@arc#1#2#3#4{%
\let\tikz@tangent\tikz@tangent@lookup%
\edef\tikz@timer@start{\noexpand\pgfqpoint{\the\tikz@lastx}{\the\tikz@lasty}}%
@@ -3553,8 +3673,8 @@
\tikz@@@arcfinal{\pgfpatharc{\tikz@timer@start@angle}{\tikz@timer@end@angle}{\tikz@arc@x pt and \tikz@arc@y pt}}
{\pgfpointpolar{\tikz@timer@start@angle}{\tikz@arc@x pt and \tikz@arc@y pt}}
{\pgfpointpolar{\tikz@timer@end@angle}{\tikz@arc@x pt and \tikz@arc@y pt}}%
- \edef\tikz@timer@zero@axis{\noexpand\pgfqpoint{\tikz@arc@x pt}{0pt}}
- \edef\tikz@timer@ninety@axis{\noexpand\pgfqpoint{0pt}{\tikz@arc@y pt}}
+ \edef\tikz@timer@zero@axis{\noexpand\pgfqpoint{\tikz@arc@x pt}{0pt}}
+ \edef\tikz@timer@ninety@axis{\noexpand\pgfqpoint{0pt}{\tikz@arc@y pt}}
\else%
\tikzerror{You cannot mix dimensions and dimensionless values in an arc}%
\fi%
@@ -3567,12 +3687,12 @@
\tikz@@@arcfinal{\pgfpatharcaxes{\tikz@timer@start@angle}{\tikz@timer@end@angle}{\pgfpointxy{\tikz@arc@x}{0}}{\pgfpointxy{0}{\tikz@arc@y}}}
{\pgfpointpolarxy{\tikz@timer@start@angle}{\tikz@arc@x and \tikz@arc@y}}{\pgfpointpolarxy{\tikz@timer@end@angle}{\tikz@arc@x and \tikz@arc@y}}%
\pgf@process{\pgfpointxy{\tikz@arc@x}{0}}
- \edef\tikz@timer@zero@axis{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}
+ \edef\tikz@timer@zero@axis{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}
\pgf@process{\pgfpointxy{0}{\tikz@arc@y}}
- \edef\tikz@timer@ninety@axis{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}
+ \edef\tikz@timer@ninety@axis{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}
\fi%
\fi%
-}
+}%
\def\tikz@@@arcfinal#1#2#3{%
#1%
@@ -3580,7 +3700,7 @@
\xdef\tikz@arc@save@first{\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
\pgf@process{#3}
\xdef\tikz@arc@save@second{\pgfqpoint{\the\pgf@x}{\the\pgf@y}}%
-}
+}%
\def\tikz@arcfinal{%
\pgf@process{\tikz@arc@save@first}%
@@ -3593,40 +3713,40 @@
\tikz@lastysaved=\tikz@lasty%
\let\tikz@timer=\tikz@timer@arc%
\tikz@scan@next@command%
-}
+}%
% Syntax for coordinates:
% coordinate[options] (coordinate name) at (point)
% where ``at (point)'' is optional
\def\tikz@coordinate ordinate{%
- \pgfutil@ifnextchar[{\tikz@@coordinate@opt}{\tikz@@coordinate@opt[]}}
+ \pgfutil@ifnextchar[{\tikz@@coordinate@opt}{\tikz@@coordinate@opt[]}}%
\def\tikz@@coordinate@opt[#1]{%
\pgfutil@ifnextchar({\tikz@@coordinate[#1]}
- {\tikz@fig ode[shape=coordinate,#1]{}}}%}
+ {\tikz@fig ode[shape=coordinate,#1]{}}}%}%
\def\tikz@@coordinate[#1](#2){%
\pgfutil@ifnextchar a{\tikz@@coordinate@at[#1](#2)}
- {\tikz@fig ode[shape=coordinate,#1](#2){}}}
+ {\tikz@fig ode[shape=coordinate,#1](#2){}}}%
\def\tikz@@coordinate@at[#1](#2)a{%
\pgfutil@ifnextchar t{\tikz@@coordinate@@at[#1](#2)a}%
{\tikz@fig ode[shape=coordinate,#1](#2){}a}%
-}
+}%
\def\tikz@@coordinate@@at[#1](#2)at#3({%
\def\tikz@coordinate@caller{\tikz@fig ode[shape=coordinate,#1](#2)at}%
\tikz@scan@one@point\tikz@@coordinate@at@math(%
-}
+}%
\def\tikz@@coordinate@at@math#1{%
\pgf@process{#1}%
\edef\tikz@temp{(\the\pgf@x,\the\pgf@y)}%
\expandafter\tikz@coordinate@caller\tikz@temp{}%
-}
-
+}%
+
% Syntax for nodes:
-% node foreach \var in {list} ... [options] (node name) at (pos) {label text}
+% node foreach \var in {list} ... :attribute={...} [options] (node name) at (pos) {label text}
%
-% all of [options], (node name), at(pos), and foreach are
+% all of :attribute, [options], (node name), at(pos), and foreach are
% optional. There can be multiple options and the ordering is not
% important as in node[draw] (a) [rotate=10] {text}, *except* that all
% foreach statements must come first.
@@ -3635,7 +3755,7 @@
%
\def\tikz@fig ode{%
\pgfutil@ifnextchar a\tikz@test@also{
- \pgfutil@ifnextchar f{\tikz@nodes@start}\tikz@normal@fig}}
+ \pgfutil@ifnextchar f{\tikz@nodes@start}\tikz@normal@fig}}%
\def\tikz@test@also a{\pgfutil@ifnextchar l\tikz@node@also{\tikz@normal@fig a}}%
\def\tikz@normal@fig{%
\edef\tikz@save@line@width{\the\pgflinewidth}%
@@ -3648,6 +3768,8 @@
\let\tikz@atend@scope=\pgfutil@empty%
\let\tikz@do@after@node=\tikz@scan@next@command%
\let\tikz@options=\pgfutil@empty%
+ \tikz@clear@rdf@options%
+ \let\tikz@id@name=\pgfutil@empty%
\let\tikz@after@path=\pgfutil@empty%
\let\tikz@transform=\pgfutil@empty%
\let\tikz@mode=\pgfutil@empty%
@@ -3670,21 +3792,23 @@
\pgfutil@ifnextchar a{\tikz@fig@scan@at}
{\pgfutil@ifnextchar({\tikz@fig@scan@name}
{\pgfutil@ifnextchar[{\tikz@fig@scan@options}%
- {\pgfutil@ifnextchar\bgroup{\tikz@fig@main}%
- {\tikzerror{A node must have a (possibly empty) label text}%
- \tikz@fig@main{}}}}}}%}}
+ {\pgfutil@ifnextchar:{\tikz@fig@scan@animation}%
+ {\pgfutil@ifnextchar\bgroup{\tikz@fig@main}%
+ {\tikzerror{A node must have a (possibly empty) label text}%
+ \tikz@fig@main{}}}}}}}%}}%
\def\tikz@fig@scan@at at{%
- \tikz@scan@one@point\tikz@@fig@scan@at}
+ \tikz@scan@one@point\tikz@@fig@scan@at}%
\def\tikz@@fig@scan@at#1{%
\def\tikz@node@at{#1}\tikz@@scan@fig}%
\def\tikz@fig@scan@name(#1){%
- \pgfkeysvalueof{/tikz/name/.@cmd}#1\pgfeov% CF : this is now ALWAYS consistent with 'name=' option; allows overrides.
- \tikz@@scan@fig}%
+ \pgfkeysvalueof{/tikz/name/.@cmd}#1\pgfeov% CF : this is now ALWAYS consistent with 'name=' option; allows overrides.
+ \tikz@@scan@fig}%
% make it \long to allow \par in "pin" options etc:
\long\def\tikz@fig@scan@options[#1]{\iftikz@node@is@pic\tikz@enable@pic@quotes\else\tikz@enable@node@quotes\fi\tikzset{#1}\ifx\tikz@node@content\relax\expandafter\tikz@@scan@fig\else\tikz@expand@node@contents\fi}%
+\def\tikz@fig@scan@animation:#1=#2{\tikzset{animate={myself:{#1}={#2}}}\tikz@@scan@fig}%
\def\tikz@expand@node@contents{%
\expandafter\tikz@@scan@fig\expandafter{\tikz@node@content}%
-}
+}%
\let\tikz@node@reset@hook=\pgfutil@empty%
\let\tikz@node@begin@hook=\pgfutil@empty%
\def\tikz@fig@main{%
@@ -3693,58 +3817,63 @@
\expandafter\tikz@subpicture@handle%
\else%
\afterassignment\tikz@@fig@main\expandafter\let\expandafter\next\expandafter=%
- \fi}
+ \fi}%
\def\tikz@@fig@main{%
\pgfutil@ifundefined{pgf@sh@s@\tikz@shape}%
{\tikzerror{Unknown shape ``\tikz@shape.'' Using ``rectangle'' instead}%
\def\tikz@shape{rectangle}}%
{}%
\tikzset{every \tikz@shape\space node/.try}%
- \tikz@node@textfont%
+ \tikz@node@textfont%
\tikz@node@begin@hook%
\iftikz@is@matrix%
\let\tikz@next=\tikz@do@matrix%
\else%
\let\tikz@next=\tikz@do@fig%
\fi%
- \tikz@next%
-}
+ \tikz@next%
+}%
\let\tikz@nodepart@list\pgfutil@empty
-\def\tikz@do@fig{%
+\def\tikz@do@fig{%
% Ok, reset all node part boxes
\pgfutil@for\tikz@temp:=\tikz@nodepart@list\do{%
\expandafter\setbox\csname pgfnodepart\tikz@temp box\endcsname=\box\pgfutil@voidb@x%
}%
\setbox\pgfnodeparttextbox=\hbox%
\bgroup%
- \tikzset{every text node part/.try}%
- \ifx\tikz@textopacity\pgfutil@empty%
- \else%
- \pgfsetfillopacity{\tikz@textopacity}%
- \pgfsetstrokeopacity{\tikz@textopacity}%
- \fi%
\pgfinterruptpicture%
+ \pgfsys@begin@text%
+ \pgfsys@text@to@black@hook%
+ \tikzset{every text node part/.try}%
+ \ifx\tikz@textopacity\pgfutil@empty%
+ \else%
+ \pgfsetfillopacity{\tikz@textopacity}%
+ \pgfsetstrokeopacity{\tikz@textopacity}%
+ \fi%
\ifx\tikz@text@width\pgfutil@empty%
- \tikz@textfont%
+ \tikz@textfont%
\else%
\begingroup%
- \pgfmathsetlength{\pgf@x}{\tikz@text@width}%
+ \pgfmathsetlength{\pgf@x}{\tikz@text@width}%
\pgfutil@minipage[t]{\pgf@x}\leavevmode\hbox{}%
- \tikz@textfont%
+ \tikz@textfont%
\tikz@text@action%
\fi%
\tikz@atbegin@node%
\bgroup%
\aftergroup\unskip%
+ % Some color stuff has been moved from here to outside; this is
+ % necessary for support of dvisvgm and of animation
+ % snapshots.
\ifx\tikz@textcolor\pgfutil@empty%
\else%
\pgfutil@colorlet{.}{\tikz@textcolor}%
\fi%
- \pgfsetcolor{.}%
+ \pgfutil@color{.}%
\setbox\tikz@figbox=\box\pgfutil@voidb@x%
\setbox\tikz@figbox@bg=\box\pgfutil@voidb@x%
\tikz@uninstallcommands%
- \iftikz@handle@active@code%
+ \iftikz@handle@active@code%
\tikz@orig@shorthands%
\let\tikz@orig@shorthands\pgfutil@empty%
\fi%
@@ -3754,12 +3883,12 @@
\aftergroup\tikz@fig@collectresetcolor%
\tikz@halign@check%
\ignorespaces%
-}
+}%
\def\tikz@fig@collectresetcolor{%
% Hacks for special packages that mess with \aftergroup
\pgfutil@ifnextchar\reset@color% hack for color package
{\reset@color\afterassignment\tikz@fig@collectresetcolor\let\tikz@temp=}\tikz@fig@boxdone%
-}
+}%
\def\tikz@fig@boxdone{%
\tikz@atend@node%
\ifx\tikz@text@width\pgfutil@empty%
@@ -3767,13 +3896,14 @@
\pgfutil@endminipage%
\endgroup%
\fi%
+ \pgfsys@end@text%
\endpgfinterruptpicture%
\egroup%
\pgfutil@ifnextchar c{\tikz@fig@mustbenamed\tikz@fig@continue}%
{\pgfutil@ifnextchar[{\tikz@fig@mustbenamed\tikz@fig@continue}%
{\pgfutil@ifnextchar t{\tikz@fig@mustbenamed\tikz@fig@continue}
{\pgfutil@ifnextchar e{\tikz@fig@mustbenamed\tikz@fig@continue}
- {\ifx\tikz@after@path\pgfutil@empty\expandafter\tikz@fig@continue\else\expandafter\tikz@fig@mustbenamed\expandafter\tikz@fig@continue\fi}}}}}%}
+ {\ifx\tikz@after@path\pgfutil@empty\expandafter\tikz@fig@continue\else\expandafter\tikz@fig@mustbenamed\expandafter\tikz@fig@continue\fi}}}}}%}%
\def\tikz@do@matrix{%
\tikzset{every matrix/.try}%
@@ -3786,77 +3916,86 @@
\pgfscope%
\ifx\tikz@time\pgfutil@empty\let\tikz@time\tikz@time@for@matrix\fi%
\tikz@options%
- \setbox\tikz@figbox=\box\pgfutil@voidb@x%
- \setbox\tikz@figbox@bg=\box\pgfutil@voidb@x%
- \let\tikzmatrixname=\tikz@fig@name%
- \edef\tikz@m@anchor{\ifx\tikz@matrix@anchor\pgfutil@empty\tikz@anchor\else\tikz@matrix@anchor\fi}%
- \expandafter\pgfutil@in@\expandafter{\expandafter.\expandafter}\expandafter{\tikz@m@anchor}%
- \ifpgfutil@in@%
- \expandafter\tikz@matrix@split\tikz@m@anchor\relax%
- \else%
- \def\tikz@matrix@shift{\pgfpointorigin}%
- \fi%
- \let\tikz@transform=\relax%
- \pgfmatrix%
- {\tikz@shape}%
- {\tikz@m@anchor}%
- {\tikz@fig@name}%
- {%
- \pgfutil@tempdima=\pgflinewidth%
- {\begingroup\tikz@finish}%
- \global\pgflinewidth=\pgfutil@tempdima%
- }%
- {\tikz@matrix@shift}%
- {%
- \tikz@matrix@make@active@ampersand%
- \def\pgfmatrixbegincode{%
- \pgfsys@beginscope%
- \tikz@common@matrix@code%
- \tikz@atbegin@cell%
- }%
- \def\tikz@common@matrix@code{%
- \let\tikz@options=\pgfutil@empty%
- \let\tikz@mode=\pgfutil@empty%
- \tikzset{every cell/.try={\the\pgfmatrixcurrentrow}{\the\pgfmatrixcurrentcolumn}}%
- \tikzset{column \the\pgfmatrixcurrentcolumn/.try}%
- \ifodd\pgfmatrixcurrentcolumn%
- \tikzset{every odd column/.try}%
- \else%
- \tikzset{every even column/.try}%
- \fi%
- \tikzset{row \the\pgfmatrixcurrentrow/.try}%
- \ifodd\pgfmatrixcurrentrow%
- \tikzset{every odd row/.try}%
- \else%
- \tikzset{every even row/.try}%
- \fi%
- \tikzset{row \the\pgfmatrixcurrentrow\space column \the\pgfmatrixcurrentcolumn/.try}%
- \tikz@options%
- }%
- \def\pgfmatrixendcode{%
- \tikz@atend@cell%
- \pgfsys@endscope%
- }%
- \def\pgfmatrixemptycode{%
- \pgfsys@beginscope%
- \tikz@common@matrix@code%
- \tikz@at@emptycell%
- \pgfsys@endscope%
+ \tikz@do@rdf@pre@options%
+ \tikz@is@nodefalse%
+ \tikz@call@id@hook%
+ \pgfidscope%
+ \tikz@do@rdf@post@options%
+ \begingroup%
+ \let\tikz@id@name\pgfutil@empty%
+ \pgfclearid%
+ \setbox\tikz@figbox=\box\pgfutil@voidb@x%
+ \setbox\tikz@figbox@bg=\box\pgfutil@voidb@x%
+ \let\tikzmatrixname=\tikz@fig@name%
+ \edef\tikz@m@anchor{\ifx\tikz@matrix@anchor\pgfutil@empty\tikz@anchor\else\tikz@matrix@anchor\fi}%
+ \expandafter\pgfutil@in@\expandafter{\expandafter.\expandafter}\expandafter{\tikz@m@anchor}%
+ \ifpgfutil@in@%
+ \expandafter\tikz@matrix@split\tikz@m@anchor\relax%
+ \else%
+ \def\tikz@matrix@shift{\pgfpointorigin}%
+ \fi%
+ \let\tikz@transform=\relax%
+ \pgfmatrix%
+ {\tikz@shape}%
+ {\tikz@m@anchor}%
+ {\tikz@fig@name}%
+ {%
+ \pgfutil@tempdima=\pgflinewidth%
+ {\begingroup\tikz@finish}%
+ \global\pgflinewidth=\pgfutil@tempdima%
}%
- \tikz@atbegin@matrix%
- \aftergroup\tikz@do@matrix@cont}%
- \bgroup%
-}
+ {\tikz@matrix@shift}%
+ {%
+ \tikz@matrix@make@active@ampersand%
+ \def\pgfmatrixbegincode{%
+ \pgfsys@beginscope%
+ \tikz@common@matrix@code%
+ \tikz@atbegin@cell%
+ }%
+ \def\tikz@common@matrix@code{%
+ \let\tikz@options=\pgfutil@empty%
+ \let\tikz@mode=\pgfutil@empty%
+ \tikzset{every cell/.try={\the\pgfmatrixcurrentrow}{\the\pgfmatrixcurrentcolumn}}%
+ \tikzset{column \the\pgfmatrixcurrentcolumn/.try}%
+ \ifodd\pgfmatrixcurrentcolumn%
+ \tikzset{every odd column/.try}%
+ \else%
+ \tikzset{every even column/.try}%
+ \fi%
+ \tikzset{row \the\pgfmatrixcurrentrow/.try}%
+ \ifodd\pgfmatrixcurrentrow%
+ \tikzset{every odd row/.try}%
+ \else%
+ \tikzset{every even row/.try}%
+ \fi%
+ \tikzset{row \the\pgfmatrixcurrentrow\space column \the\pgfmatrixcurrentcolumn/.try}%
+ \tikz@options%
+ }%
+ \def\pgfmatrixendcode{%
+ \tikz@atend@cell%
+ \pgfsys@endscope%
+ }%
+ \def\pgfmatrixemptycode{%
+ \pgfsys@beginscope%
+ \tikz@common@matrix@code%
+ \tikz@at@emptycell%
+ \pgfsys@endscope%
+ }%
+ \tikz@atbegin@matrix%
+ \aftergroup\tikz@do@matrix@cont}%
+ \bgroup%
+}%
\def\tikz@do@matrix@cont{%
- \tikz@atend@matrix%
+ \tikz@atend@matrix%
+ \endgroup%
+ \endpgfidscope%
\endpgfscope
\endpgfinterruptpath%
\egroup\egroup%
\egroup%
%
\tikz@node@finish%
-}
-
+}%
{%
\catcode`\&=13
\gdef\tikz@matrix@make@active@ampersand{%
@@ -3873,8 +4012,8 @@
\def\tikz@matrix@split#1.#2\relax{%
\def\tikz@m@anchor{text}%
\def\tikz@matrix@shift{\pgfpointanchor{#1}{#2}}%
-}
-
+}%
+
\def\tikz@fig@continue{%
\ifx\tikz@text@width\pgfutil@empty%
\else%
@@ -3896,28 +4035,49 @@
%
\tikz@node@transformations%
\tikz@nlt%
- %
+ %
\setbox\tikz@whichbox=\hbox{%
\unhbox\tikz@whichbox%
\hbox{{%
\pgfinterruptpath%
\pgfscope%
\tikz@options%
- \setbox\tikz@figbox=\box\pgfutil@voidb@x%
- \setbox\tikz@figbox@bg=\box\pgfutil@voidb@x%
- \pgfmultipartnode{\tikz@shape}{\tikz@anchor}{\tikz@fig@name}{%
- \pgfutil@tempdima=\pgflinewidth%
- {\begingroup\tikz@finish}%
- \global\pgflinewidth=\pgfutil@tempdima%
- }%
- \endpgfscope
+ \tikz@do@rdf@pre@options%
+ \tikz@is@nodetrue%
+ \tikz@call@id@hook%
+ \pgfidscope%
+ \tikz@do@rdf@post@options%
+ \let\tikz@id@name\pgfutil@empty%
+ \setbox\tikz@figbox=\box\pgfutil@voidb@x%
+ \setbox\tikz@figbox@bg=\box\pgfutil@voidb@x%
+ % Add color modifications to text box
+ \setbox\pgfnodeparttextbox=\hbox{{%
+ \pgfsys@begin@text% Colors moved here...
+ \ifx\tikz@textcolor\pgfutil@empty%
+ \else%
+ \pgfutil@colorlet{.}{\tikz@textcolor}%
+ \fi%
+ \pgfsetcolor{.}%
+ \pgfusetype{.text}%
+ \pgfidscope%
+ \box\pgfnodeparttextbox%
+ \endpgfidscope%
+ \pgfsys@end@text%
+ }}%
+ \pgfmultipartnode{\tikz@shape}{\tikz@anchor}{\tikz@fig@name}{%
+ \pgfutil@tempdima=\pgflinewidth%
+ {\begingroup\tikz@finish}%
+ \global\pgflinewidth=\pgfutil@tempdima%
+ }%
+ \endpgfidscope%
+ \endpgfscope%
\endpgfinterruptpath%
}}%
}%
%
\tikz@alias%
\tikz@node@finish%
-}
+}%
\def\tikz@fig@mustbenamed{%
@@ -3925,13 +4085,14 @@
% Assign a dummy name
\global\advance\tikz@fig@count by1\relax
\edef\tikz@fig@name{tikz@f@\the\tikz@fig@count}%
+ \let\tikz@id@name\tikz@fig@name%
\fi%
-}
+}%
\def\tikz@node@transformations{%
- %
+ %
% Possibly, we are ``online''
- %
+ %
\ifx\tikz@time\pgfutil@empty%
\pgftransformshift{\tikz@node@at}%
\iftikz@fullytransformed%
@@ -3944,9 +4105,9 @@
\fi%
% Invoke local transformations
\tikz@transform%
-}
+}%
-\def\tikz@node@finish{%
+\def\tikz@node@finish{%
\global\let\tikz@last@fig@name=\tikz@fig@name%
\global\let\tikz@after@path@smuggle=\tikz@after@path%
% shift box outside group
@@ -3959,10 +4120,10 @@
\tikz@do@after@path@smuggle%
\tikz@node@is@picfalse
\tikz@do@after@node%
-}
+}%
\let\tikz@fig@continue@orig=\tikz@fig@continue
-\def\tikz@do@after@node{\tikz@scan@next@command}
+\def\tikz@do@after@node{\tikz@scan@next@command}%
\def\tikz@do@after@path@smuggle{%
\let\tikz@to@last@fig@name=\tikz@last@fig@name%
@@ -3977,9 +4138,9 @@
\tikz@scan@next@command{\tikz@after@path@smuggle}\pgf@stop%
\fi%
\fi%
-}
+}%
-\def\tikz@call@late#1#2{\pgfnodepostsetupcode{#1}{\path[late options={name={#1},append after command={#2}}];}}
+\def\tikz@call@late#1#2{\pgfnodepostsetupcode{#1}{\path[late options={name={#1},append after command={#2}}];}}%
\newif\iftikz@do@align
@@ -3998,10 +4159,10 @@
\setbox\tikz@align@aligned@box=\box\pgfutil@voidb@x% void
\let\\=\tikz@align@newline%
\expandafter\tikz@start@align%
- \fi%
-}
-\def\tikz@align@newline{\pgfutil@protect\tikz@align@newline@}
-\def\tikz@align@newline@{\unskip\pgfutil@ifnextchar[\tikz@@align@newline{\tikz@@align@newline[0pt]}}%}
+ \fi%
+}%
+\def\tikz@align@newline{\pgfutil@protect\tikz@align@newline@}%
+\def\tikz@align@newline@{\unskip\pgfutil@ifnextchar[\tikz@@align@newline{\tikz@@align@newline[0pt]}}%}%
\def\tikz@@align@newline[#1]{\egroup\tikz@align@continue\pgfmathparse{#1}\let\tikz@align@temp=\pgfmathresult\tikz@start@align}%
% Two safe boxes for alignment:
\let\tikz@align@aligned@box=\pgfnodeparttextbox
@@ -4011,12 +4172,12 @@
% Start collecting text:
\setbox\tikz@align@line@box=\hbox\bgroup\bgroup%
\aftergroup\tikz@align@collectresetcolor\ignorespaces%
-}
+}%
\def\tikz@align@collectresetcolor{%
\pgfutil@ifnextchar\reset@color%
{\reset@color\afterassignment\tikz@align@collectresetcolor\let\tikz@temp=}%
{\tikz@align@end@check}%
-}
+}%
\def\tikz@align@end@check{%
\egroup%
\ifvoid\tikz@align@aligned@box%
@@ -4034,26 +4195,26 @@
\box\tikz@align@aligned@box%
\egroup%
}%
-}
-\def\tikz@align@continue{\tikz@@align@continue}
+}%
+\def\tikz@align@continue{\tikz@@align@continue}%
\let\tikz@@align@continue=\pgfutil@empty
-\def\tikz@node@also lso{\pgfutil@ifnextchar[\tikz@node@also@opt{\tikz@node@also@opt[]}}
+\def\tikz@node@also lso{\pgfutil@ifnextchar[\tikz@node@also@opt{\tikz@node@also@opt[]}}%
\def\tikz@node@also@opt[#1]{
\pgfutil@ifnextchar(%)
{\tikz@node@also@opt@cont[#1]}%
{\tikzerror{Syntax error in node also: ``('' expected.}%
\tikz@scan@next@command}%
-}
-\def\tikz@node@also@opt@cont[#1](#2){\tikzset{late options={name=#2,#1}}\tikz@scan@next@command}
-
+}%
+\def\tikz@node@also@opt@cont[#1](#2){\tikzset{late options={name=#2,#1}}\tikz@scan@next@command}%
+
% Syntax for parts of nodes:
% node ... {... \nodepart[options]{name} ... \nodepart{name} ...}
-\def\tikz@nodepart{\pgfutil@ifnextchar[\tikz@@nodepart{\tikz@@nodepart[]}}%}
+\def\tikz@nodepart{\pgfutil@ifnextchar[\tikz@@nodepart{\tikz@@nodepart[]}}%}%
\def\tikz@@nodepart[#1]#2{%
\tikz@atend@node%
\unskip%
@@ -4061,7 +4222,7 @@
\gdef\tikz@nodepart@name{#2}%
\global\let\tikz@fig@continue=\tikz@nodepart@continue%
\pgfutil@ifnextchar x{\egroup\relax}{\egroup\relax}% gobble spaces
-}
+}%
\def\tikz@nodepart@continue{%
\global\let\tikz@fig@continue=\tikz@fig@continue@orig%
\ifx\tikz@nodepart@list\pgfutil@empty%
@@ -4072,6 +4233,9 @@
% Now start new box:
\expandafter\setbox\csname pgfnodepart\tikz@nodepart@name box\endcsname=\hbox%
\bgroup%
+ \pgfinterruptpicture%
+ \pgfsys@begin@text%
+ \pgfsys@text@to@black@hook%
\tikzset{every \tikz@nodepart@name\space node part/.try}%
\expandafter\tikzset\expandafter{\tikz@nodepart@options}%
\ifx\tikz@textopacity\pgfutil@empty%
@@ -4079,27 +4243,27 @@
\pgfsetfillopacity{\tikz@textopacity}%
\pgfsetstrokeopacity{\tikz@textopacity}%
\fi%
- \pgfinterruptpicture%
+ % Colors moved here...
+ \ifx\tikz@textcolor\pgfutil@empty%
+ \else%
+ \pgfutil@colorlet{.}{\tikz@textcolor}%
+ \fi%
+ \pgfsetcolor{.}%
\ifx\tikz@text@width\pgfutil@empty%
- \tikz@textfont%
+ \tikz@textfont%
\else%
\begingroup%
\pgfmathsetlength{\pgf@x}{\tikz@text@width}%
\pgfutil@minipage[t]{\pgf@x}\leavevmode\hbox{}%
- \tikz@textfont%
+ \tikz@textfont%
\tikz@text@action%
\fi%
\bgroup%
\aftergroup\unskip%
- \ifx\tikz@textcolor\pgfutil@empty%
- \else%
- \pgfutil@colorlet{.}{\tikz@textcolor}%
- \fi%
- \pgfsetcolor{.}%
\setbox\tikz@figbox=\box\pgfutil@voidb@x%
\setbox\tikz@figbox@bg=\box\pgfutil@voidb@x%
\tikz@uninstallcommands%
- \iftikz@handle@active@code%
+ \iftikz@handle@active@code%
\tikz@orig@shorthands%
\let\tikz@orig@shorthands\pgfutil@empty%
\fi%
@@ -4110,12 +4274,12 @@
\aftergroup\tikz@fig@collectresetcolor%
\tikz@halign@check%
\ignorespaces%
-}
+}%
-%
+%
% Node foreach
-%
+%
\def\tikz@nodes@start{%
\let\tikz@nodes@list\pgfutil@empty%
@@ -4125,27 +4289,27 @@
\def\tikz@nodes@collect{node }%
\fi%
\tikz@nodes%
-}
+}%
\def\tikz@nodes foreach{\pgfutil@ifnextchar x\tikz@nodes@\tikz@nodes@}% get rid of spaces
\def\tikz@nodes@#1in{%
\expandafter\def\expandafter\tikz@nodes@list\expandafter{\tikz@nodes@list\foreach#1in}%
\pgfutil@ifnextchar\bgroup\tikz@nodes@group\tikz@nodes@one%
-}
+}%
\def\tikz@nodes@one#1{%
\expandafter\def\expandafter\tikz@nodes@list\expandafter{\tikz@nodes@list#1}%
\pgfutil@ifnextchar f\tikz@nodes\tikz@nodes@scan%
-}
+}%
\def\tikz@nodes@group#1{%
\expandafter\def\expandafter\tikz@nodes@list\expandafter{\tikz@nodes@list{#1}}%
\pgfutil@ifnextchar f\tikz@nodes\tikz@nodes@scan%
-}
+}%
\def\tikz@nodes@scan{%
\pgfutil@ifnextchar a{\tikz@nodes@at}%
{\pgfutil@ifnextchar({\tikz@nodes@name}%
{\pgfutil@ifnextchar[{\tikz@nodes@opt}%
{\pgfutil@ifnextchar\bgroup{\tikz@nodes@main}%
{\tikzerror{Nodes must have a (possibly empty) label text}%
- \tikz@fig@main{}}}}}}%}}
+ \tikz@fig@main{}}}}}}%}}%
\def\tikz@nodes@at at#1){%
\expandafter\def\expandafter\tikz@nodes@collect\expandafter{\tikz@nodes@collect at#1)}%
\tikz@nodes@scan}%
@@ -4179,14 +4343,14 @@
\setbox\tikz@figbox=\box\tikz@tempbox%
\setbox\tikz@figbox@bg=\box\tikz@tempbox@bg%
\tikz@scan@next@command%
-}
+}%
%
% "late" options can be used to "redo" a node
%
-\tikzset{late options/.code=\tikz@late@options{#1}}
+\tikzset{late options/.code=\tikz@late@options{#1}}%
\def\tikz@late@options#1{%
% Do a "virtual" node:
\begingroup%
@@ -4197,6 +4361,7 @@
\fi%
\tikz@is@matrixfalse%
\let\tikz@options=\pgfutil@empty%
+ \tikz@clear@rdf@options%
\let\tikz@after@path=\pgfutil@empty%
\let\tikz@afternodepathoptions=\pgfutil@empty%
\let\tikz@alias=\pgfutil@empty%
@@ -4204,7 +4369,7 @@
\tikz@decoratepathfalse%
\tikz@node@reset@hook%
\tikz@enable@node@quotes%
- \tikzset{every node/.try,#1}%
+ \tikzset{every node/.try,#1}%
\ifx\tikz@fig@name\pgfutil@empty%
\tikzerror{Late options must reference some existing node}%
\fi%
@@ -4215,7 +4380,7 @@
\global\let\tikz@after@path@smuggle=\tikz@after@path%
\endgroup%
\tikz@do@after@path@smuggle%
-}
+}%
% Auto placement
@@ -4223,19 +4388,23 @@
\def\tikz@auto@pre{%
\begingroup
\pgfresetnontranslationattimefalse
- \pgfslopedattimetrue%
+ \ifpgfslopedattime
+ \pgfslopedattimefalse%
+ \else
+ \pgfslopedattimetrue%
+ \fi
\pgfallowupsidedownattimetrue%
\tikz@timer%
- \pgf@x=\pgf@pt@aa pt%
+ \pgf@x=\pgf@pt@aa pt%
\pgf@y=\pgf@pt@ab pt%
\pgfpointnormalised{}%
-}
+}%
\def\tikz@auto@post{%
\global\let\tikz@anchor@smuggle=\tikz@anchor%
\endgroup%
\let\tikz@anchor=\tikz@anchor@smuggle%
-}
+}%
\def\tikz@auto@anchor{%
\ifdim\pgf@x>0.05pt%
@@ -4261,7 +4430,7 @@
\def\tikz@anchor{west}%
\fi%
\fi\fi%
-}
+}%
\def\tikz@auto@anchor@prime{%
\ifdim\pgf@x>0.05pt%
@@ -4287,16 +4456,16 @@
\def\tikz@anchor{east}%
\fi%
\fi\fi%
-}
+}%
%
% Callbacks: Please see the documentation of the graph drawing
% lib for info on these callbacks
%
-\def\tikzgdeventcallback#1#2{}
-\def\tikzgdeventgroupcallback#1{}
-\def\tikzgdlatenodeoptionacallback#1{}
+\def\tikzgdeventcallback#1#2{}%
+\def\tikzgdeventgroupcallback#1{}%
+\def\tikzgdlatenodeoptionacallback#1{}%
% Syntax for trees:
% node {...} child [options] {...} child [options] {...} ...
@@ -4306,22 +4475,22 @@
% Start collecting the children:
\let\tikz@children@list=\pgfutil@empty%
\tikznumberofchildren=0\relax%
- \tikz@collect@children c}
+ \tikz@collect@children c}%
-\def\tikz@collect@children{\pgfutil@ifnextchar c{\tikz@collect@children@cchar}{\tikz@children@collected}}
-\def\tikz@collect@children@cchar c{\pgfutil@ifnextchar h{\tikz@collect@child}{\tikz@children@collected c}}
-\def\tikz@collect@child hild{\pgfutil@ifnextchar[{\tikz@collect@childA}{\tikz@collect@childA[]}}%}
-\def\tikz@collect@childA[#1]{\pgfutil@ifnextchar f{\tikz@collect@children@foreach[#1]}{\tikz@collect@childB[#1]}}
+\def\tikz@collect@children{\pgfutil@ifnextchar c{\tikz@collect@children@cchar}{\tikz@children@collected}}%
+\def\tikz@collect@children@cchar c{\pgfutil@ifnextchar h{\tikz@collect@child}{\tikz@children@collected c}}%
+\def\tikz@collect@child hild{\pgfutil@ifnextchar[{\tikz@collect@childA}{\tikz@collect@childA[]}}%}%
+\def\tikz@collect@childA[#1]{\pgfutil@ifnextchar f{\tikz@collect@children@foreach[#1]}{\tikz@collect@childB[#1]}}%
\def\tikz@collect@childB[#1]{%
\advance\tikznumberofchildren by1\relax
\expandafter\def\expandafter\tikz@children@list\expandafter{\tikz@children@list \tikz@childnode[#1]}%
- \pgfutil@ifnextchar\bgroup{\tikz@collect@child@code}{\tikz@collect@child@code{}}}
+ \pgfutil@ifnextchar\bgroup{\tikz@collect@child@code}{\tikz@collect@child@code{}}}%
\def\tikz@collect@child@code#1{%
\expandafter\def\expandafter\tikz@children@list\expandafter{\tikz@children@list{#1}}%
\tikz@collect@children%
-}
+}%
\def\tikz@collect@children@foreach[#1]foreach#2in#3{%
- \pgfutil@ifnextchar\bgroup{\tikz@collect@children@foreachA{#1}{#2}{#3}}{\tikz@collect@children@foreachA{#1}{#2}{#3}{}}}
+ \pgfutil@ifnextchar\bgroup{\tikz@collect@children@foreachA{#1}{#2}{#3}}{\tikz@collect@children@foreachA{#1}{#2}{#3}{}}}%
\def\tikz@collect@children@foreachA#1#2#3#4{%
\expandafter\def\expandafter\tikz@children@list\expandafter
{\tikz@children@list\tikz@childrennodes[#1]{#2}{#3}{#4}}%
@@ -4332,15 +4501,16 @@
}%
\tikznumberofchildren=\c@pgf@counta%
\tikz@collect@children%
-}
+}%
\long\def\tikz@children@collected{%
\begingroup%
\advance\tikztreelevel by 1\relax%
\tikzgdeventgroupcallback{descendants}%
\let\tikz@options=\pgfutil@empty%
+ \tikz@clear@rdf@options%
\let\tikz@transform=\pgfutil@empty%
\tikzset{level/.try=\the\tikztreelevel,level \the\tikztreelevel/.try}%
- \tikz@transform%
+ \tikz@transform%
\let\tikz@transform=\relax%
\let\tikzparentnode=\tikz@last@fig@name%
\ifx\tikz@grow\relax\else%
@@ -4352,10 +4522,10 @@
\global\setbox\tikz@tempbox=\box\tikz@figbox%
\global\setbox\tikz@tempbox@bg=\box\tikz@figbox@bg%
\endgroup%
- \setbox\tikz@figbox=\box\tikz@tempbox%
- \setbox\tikz@figbox@bg=\box\tikz@tempbox@bg%
+ \setbox\tikz@figbox=\box\tikz@tempbox%
+ \setbox\tikz@figbox@bg=\box\tikz@tempbox@bg%
\tikz@scan@next@command%
-}
+}%
% Syntax for children:
%
@@ -4378,7 +4548,7 @@
\tikznumberofcurrentchild=\c@pgf@counta\relax%
\setbox\tikz@figbox=\box\tikz@tempbox%
\setbox\tikz@figbox@bg=\box\tikz@tempbox@bg%
-}
+}%
% Syntax for child:
@@ -4404,7 +4574,7 @@
\let\tikz@transform=\pgfutil@empty%
\tikzset{every child/.try,#1}%
\tikz@options%
- \tikz@transform%
+ \tikz@transform%
\let\tikz@transform=\relax%
\tikz@grow%
% Typeset node:
@@ -4429,12 +4599,12 @@
\egroup\egroup%
\egroup%
\fi%
-}
+}%
\def\tikz@parse@child@node{%
\pgfutil@ifnextchar n{\tikz@parse@child@node@n}%
{\pgfutil@ifnextchar c{\tikz@parse@child@node@c}%
- {\pgfutil@ifnextchar\pgf@stop\tikz@parse@child@node@rest\tikz@parse@child@node@expand}}}
+ {\pgfutil@ifnextchar\pgf@stop\tikz@parse@child@node@rest\tikz@parse@child@node@expand}}}%
\def\tikz@parse@child@node@expand{%
\advance\tikz@expandcount by-1\relax%
\ifnum\tikz@expandcount<0\relax%
@@ -4442,22 +4612,22 @@
\else%
\expandafter\expandafter\expandafter\tikz@parse@child@node%
\fi%
-}
-\def\tikz@parse@child@node@rest#1\pgf@stop{\tikz@expandcount=100\relax\def\tikz@child@node@rest{#1}}
-\def\tikz@parse@child@node@c c{\tikz@expandcount=100\pgfutil@ifnextchar o{\tikz@parse@child@node@co}{\tikz@parse@child@node@rest c}}
-\def\tikz@parse@child@node@co o{\pgfutil@ifnextchar o{\tikz@parse@child@node@coordinate}{\tikz@parse@child@node@rest co}}
+}%
+\def\tikz@parse@child@node@rest#1\pgf@stop{\tikz@expandcount=100\relax\def\tikz@child@node@rest{#1}}%
+\def\tikz@parse@child@node@c c{\tikz@expandcount=100\pgfutil@ifnextchar o{\tikz@parse@child@node@co}{\tikz@parse@child@node@rest c}}%
+\def\tikz@parse@child@node@co o{\pgfutil@ifnextchar o{\tikz@parse@child@node@coordinate}{\tikz@parse@child@node@rest co}}%
\def\tikz@parse@child@node@coordinate ordinate{%
\pgfutil@ifnextchar ({\tikz@@parse@child@node@coordinate}{%
\def\tikz@child@node@text{[shape=coordinate]{}}%
- \tikz@parse@child@node@rest}}%}
+ \tikz@parse@child@node@rest}}%}%
\def\tikz@@parse@child@node@coordinate(#1){%
\pgfutil@ifnextchar a{\tikz@p@c@n@c@at(#1)}{%
\def\tikz@child@node@text{[shape=coordinate,name=#1]{}}%
- \tikz@parse@child@node@rest}}
+ \tikz@parse@child@node@rest}}%
\def\tikz@p@c@n@c@at(#1)at#2({%
\def\tikz@child@node@text@pre{[shape=coordinate,name=#1]at}%
\tikz@scan@one@point\tikz@p@c@n@c@at@math(%
-}
+}%
\def\tikz@p@c@n@c@at@math#1{%
\pgf@process{#1}%
\edef\tikz@marshal{(\the\pgf@x,\the\pgf@y){}}%
@@ -4465,7 +4635,7 @@
\expandafter\expandafter\expandafter\tikz@child@node@text%
\expandafter\expandafter\expandafter{\expandafter\tikz@child@node@text@pre\tikz@marshal}%
\tikz@parse@child@node@rest%
-}
+}%
\def\tikz@parse@child@node@n node{\tikz@expandcount=100%
\let\tikz@child@node@text=\pgfutil@empty%
\tikz@p@c@s}%
@@ -4474,73 +4644,74 @@
{\pgfutil@ifnextchar ({\tikz@p@c@s@paran}
{\pgfutil@ifnextchar [{\tikz@p@c@s@bra}
{\pgfutil@ifnextchar \bgroup{\tikz@p@c@s@group}
- {\tikzerror{Cannot parse this node}}}}}}%}}
+ {\tikzerror{Cannot parse this node}}}}}}%}}%
\def\tikz@p@c@s@at at#1({%
\tikz@scan@one@point\tikz@p@c@s@at@math(%
-}
+}%
\def\tikz@p@c@s@at@math#1{%
\pgf@process{#1}%
\edef\tikz@marshal{ at(\the\pgf@x,\the\pgf@y)}%
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter\tikz@child@node@text%
\expandafter\expandafter\expandafter{\expandafter\tikz@child@node@text\tikz@marshal}
- \tikz@p@c@s}
+ \tikz@p@c@s}%
\def\tikz@p@c@s@paran(#1){%
\expandafter\def\expandafter\tikz@child@node@text\expandafter{\tikz@child@node@text(#1)}
- \tikz@p@c@s}
+ \tikz@p@c@s}%
\def\tikz@p@c@s@bra[#1]{%
\expandafter\def\expandafter\tikz@child@node@text\expandafter{\tikz@child@node@text[#1]}
- \tikz@p@c@s}
+ \tikz@p@c@s}%
\def\tikz@p@c@s@group#1{%
- \iftikz@handle@active@nodes%
+ \iftikz@handle@active@nodes%
\expandafter\def\expandafter\tikz@child@node@text\expandafter{\tikz@child@node@text{\scantokens{#1}}}%
\else%
\expandafter\def\expandafter\tikz@child@node@text\expandafter{\tikz@child@node@text{#1}}
\fi%
\tikz@parse@child@node@rest%
-}
+}%
-%
+%
% Syntax for decorated subpaths:
%
% decorate [option] { subpath }
%
\def\tikz@decoration ecorate{%
\pgfutil@ifnextchar[{\tikz@lib@decoration}{\tikz@lib@decoration[]}%]
-}
+}%
-\def\tikz@lib@decoration[#1]#2{\tikzerror{You need to load a decoration library}}
+\def\tikz@lib@decoration[#1]#2{\tikzerror{You need to load a decoration library}}%
% The decorate path command:
-\def\tikz@lib@dec@decorate@path{\tikzerror{You need to load a decoration library}}
+\def\tikz@lib@dec@decorate@path{\tikzerror{You need to load a decoration library}}%
-%
+%
% Syntax for let :
%
-% let \p1 = (coordinate), \p2 = (coordinate),... in
+% let \p1 = (coordinate), \p2 = (coordinate),... in
%
\def\tikz@let@command et#1in{%
\tikzerror{You need to say \string\usetikzlibrary{calc} to use the let command}%
-}
+ \tikz@scan@next@command%
+}%
%
% Syntax for pictures:
-%
+%
% as for nodes, but with "pic" instead of "node"
-%
+%
\newif\iftikz@node@is@pic
-\def\tikz@subpicture ic{\tikz@node@is@pictrue\tikz@scan@next@command node}
+\def\tikz@subpicture ic{\tikz@node@is@pictrue\tikz@scan@next@command node}%
\def\tikz@subpicture@handle#1{%
\pgfkeys@spdef\tikz@temp{#1}%
\expandafter\tikz@subpicture@handle@\expandafter{\tikz@temp}%
-}
+}%
\def\tikz@subpicture@handle@#1{
- \pgfkeys{/tikz/pics/.cd,#1}
+ \pgfkeys{/tikz/pics/.cd,#1}%
\tikz@node@transformations%
\let\tikz@transform=\relax%
\let\tikz@picmode\tikz@mode%
@@ -4570,7 +4741,7 @@
\egroup
\egroup%
\egroup%
- \fi%
+ \fi%
\pgfkeysgetvalue{/tikz/pics/foreground code}{\tikz@pic@code}
\ifx\tikz@pic@code\pgfutil@empty\else%
\setbox\tikz@figbox=\hbox\bgroup%
@@ -4592,7 +4763,7 @@
\egroup
\egroup%
\egroup%
- \fi%
+ \fi%
\pgfkeysgetvalue{/tikz/pics/background code}{\tikz@pic@code}
\ifx\tikz@pic@code\pgfutil@empty\else%
\setbox\tikz@figbox@bg=\hbox\bgroup%
@@ -4614,12 +4785,12 @@
\egroup
\egroup%
\egroup%
- \fi%
+ \fi%
\tikz@node@finish%
-}
+}%
\tikzset{
pic actions/.code=\tikz@addmode{\tikz@picmode}
-}
+}%
% Setting up the picture codes:
\tikzset{
@@ -4627,26 +4798,26 @@
pics/code/.initial=,
pics/background code/.initial=,
pics/foreground code/.initial=
-}
+}%
% Defining pictures:
-\def\tikzdeclarepic#1#2{\pgfkeys{/tikz/#1/.cd,#2}}
+\def\tikzdeclarepic#1#2{\pgfkeys{/tikz/#1/.cd,#2}}%
\pgfkeysdef{/handlers/.pic}{%
\edef\pgf@temp{\pgfkeyscurrentpath}%
\edef\pgf@temp{\expandafter\tikz@smuggle@pics@in\pgf@temp\pgf@stop}%
- \expandafter\pgfkeys\expandafter{\pgf@temp/.style={code={#1}}}
-}
-\def\tikz@smuggle@pics@in/tikz/#1\pgf@stop{/tikz/pics/#1}
+ \expandafter\pgfkeys\expandafter{\pgf@temp/.style={code={#1}}}%
+}%
+\def\tikz@smuggle@pics@in/tikz/#1\pgf@stop{/tikz/pics/#1}%
%
% Timers
-%
+%
\def\tikz@timer@line{%
\pgftransformlineattime{\tikz@time}{\tikz@timer@start}{\tikz@timer@end}%
-}
+}%
\def\tikz@timer@vhline{%
\ifdim\tikz@time pt<0.5pt% first half
@@ -4655,7 +4826,7 @@
\pgf@ya=\pgf@y%
\pgf@process{\tikz@timer@end}%
\pgf@xb=\tikz@time pt%
- \pgf@xb=2\pgf@xb%
+ \pgf@xb=2\pgf@xb%
\edef\tikz@marshal{\noexpand\pgftransformlineattime{\pgf@sys@tonumber{\pgf@xb}}{\noexpand\tikz@timer@start}{%
\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@y}}}%
\tikz@marshal%
@@ -4671,7 +4842,7 @@
{\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@y}}{\noexpand\tikz@timer@end}}%
\tikz@marshal%
\fi%
-}
+}%
\def\tikz@timer@hvline{%
\ifdim\tikz@time pt<0.5pt% first half
@@ -4680,7 +4851,7 @@
\pgf@ya=\pgf@y%
\pgf@process{\tikz@timer@end}%
\pgf@xb=\tikz@time pt%
- \pgf@xb=2\pgf@xb%
+ \pgf@xb=2\pgf@xb%
\edef\tikz@marshal{\noexpand\pgftransformlineattime{\pgf@sys@tonumber{\pgf@xb}}{\noexpand\tikz@timer@start}{%
\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@ya}}}%
\tikz@marshal%
@@ -4696,11 +4867,11 @@
{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@ya}}{\noexpand\tikz@timer@end}}%
\tikz@marshal%
\fi%
-}
+}%
\def\tikz@timer@curve{%
\pgftransformcurveattime{\tikz@time}{\tikz@timer@start}{\tikz@timer@cont@one}{\tikz@timer@cont@two}{\tikz@timer@end}%
-}
+}%
\def\tikz@timer@arc{%
@@ -4721,13 +4892,13 @@
{\tikz@timer@zero@axis}%
{\tikz@timer@ninety@axis}%
{\tikz@timer@start@angle}{\tikz@timer@end@angle}%
-}
+}%
%
% Coordinate systems
-%
+%
\def\tikzdeclarecoordinatesystem#1#2{%
\expandafter\def\csname tikz@parse@cs@#1\endcsname(##1){%
@@ -4737,41 +4908,41 @@
}%
\let\tikz@shapeborder@name=\tikz@smubble@b%
\edef\tikz@return@coordinate{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}}%
-}
+}%
\def\tikzaliascoordinatesystem#1#2{%
\edef\pgf@marshal{\noexpand\let\expandafter\noexpand\csname
tikz@parse@cs@#1\endcsname=\expandafter\noexpand\csname
tikz@parse@cs@#2\endcsname}%
\pgf@marshal%
-}
+}%
-% Default coodinate systems:
+% Default coordinate systems:
\tikzdeclarecoordinatesystem{canvas}
{%
\tikzset{cs/.cd,x=0pt,y=0pt,#1}%
\pgfpoint{\tikz@cs@x}{\tikz@cs@y}%
-}
+}%
\tikzdeclarecoordinatesystem{canvas polar}
{%
\tikzset{cs/.cd,angle=0,radius=0cm,#1}%
\pgfpointpolar{\tikz@cs@angle}{\tikz@cs@xradius and \tikz@cs@yradius}%
-}
+}%
\tikzdeclarecoordinatesystem{xyz}
{%
\tikzset{cs/.cd,x=0,y=0,z=0,#1}%
\pgfpointxyz{\tikz@cs@x}{\tikz@cs@y}{\tikz@cs@z}%
-}
+}%
\tikzdeclarecoordinatesystem{xyz polar}
{%
\tikzset{cs/.cd,angle=0,radius=0,#1}%
\pgfpointpolarxy{\tikz@cs@angle}{\tikz@cs@xradius and \tikz@cs@yradius}%
-}
-\tikzaliascoordinatesystem{xy polar}{xyz polar}
+}%
+\tikzaliascoordinatesystem{xy polar}{xyz polar}%
\tikzdeclarecoordinatesystem{node}
@@ -4791,14 +4962,14 @@
\else%
\pgfpointanchor{\tikz@pp@name{\tikz@cs@node}}{\tikz@cs@anchor}%
\fi%
-}
+}%
% Intersection coordinates
-\tikzset{cs/first line/.code=\def\tikz@cs@line@a{#1}\def\tikz@cs@type@a{line}}
-\tikzset{cs/second line/.code=\def\tikz@cs@line@b{#1}\def\tikz@cs@type@b{line}}
+\tikzset{cs/first line/.code=\def\tikz@cs@line@a{#1}\def\tikz@cs@type@a{line}}%
+\tikzset{cs/second line/.code=\def\tikz@cs@line@b{#1}\def\tikz@cs@type@b{line}}%
-\tikzset{cs/first node/.code=\tikz@cs@unpack{\tikz@cs@node@a}{\tikz@cs@type@a}{#1}}
-\tikzset{cs/second node/.code=\tikz@cs@unpack{\tikz@cs@node@b}{\tikz@cs@type@b}{#1}}
+\tikzset{cs/first node/.code=\tikz@cs@unpack{\tikz@cs@node@a}{\tikz@cs@type@a}{#1}}%
+\tikzset{cs/second node/.code=\tikz@cs@unpack{\tikz@cs@node@b}{\tikz@cs@type@b}{#1}}%
\def\tikz@cs@unpack#1#2#3{%
\expandafter\ifx\csname pgf@sh@ns@#3\endcsname\relax%
@@ -4807,12 +4978,12 @@
\def#1{#3}%
\edef#2{\csname pgf@sh@ns@#3\endcsname}%
\fi%
-}
+}%
-\tikzset{cs/solution/.initial=1}
+\tikzset{cs/solution/.initial=1}%
-\tikzset{cs/horizontal line through/.store in=\tikz@cs@hori@line}
-\tikzset{cs/vertical line through/.store in=\tikz@cs@vert@line}
+\tikzset{cs/horizontal line through/.store in=\tikz@cs@hori@line}%
+\tikzset{cs/vertical line through/.store in=\tikz@cs@vert@line}%
\tikzdeclarecoordinatesystem{intersection}
{%
@@ -4825,7 +4996,7 @@
\else%
\csname tikz@intersect@\tikz@cs@type@a @and@\tikz@cs@type@b\endcsname%
\fi%
-}
+}%
\def\tikz@intersect@line@and@line{%
\expandafter\tikz@scan@one@point\expandafter\tikz@parse@line\tikz@cs@line@a%
@@ -4841,14 +5012,14 @@
{\noexpand\pgfqpoint{\the\pgf@xc}{\the\pgf@yc}}%
{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}}}%
\pgf@marshal%
-}
+}%
\def\tikz@parse@line#1--{%
\pgf@process{#1}%
\pgf@xc=\pgf@x%
\pgf@yc=\pgf@y%
\tikz@scan@one@point\pgf@process%
-}
+}%
\tikzdeclarecoordinatesystem{perpendicular}
@@ -4857,7 +5028,7 @@
\expandafter\tikz@scan@one@point\expandafter\tikz@parse@intersection@a\tikz@cs@hori@line%
\expandafter\tikz@scan@one@point\expandafter\tikz@parse@intersection@b\tikz@cs@vert@line%
\pgfqpoint{\the\pgf@xb}{\the\pgf@ya}
-}
+}%
\tikzdeclarecoordinatesystem{barycentric}
{%
@@ -4870,7 +5041,7 @@
\global\pgf@x=\pgfmathresult\pgf@xa%
\global\pgf@y=\pgfmathresult\pgf@ya%
}%
-}
+}%
\def\tikz@bary@dolist#1=#2,{%
\def\tikz@temp{#1}%
@@ -4883,17 +5054,17 @@
\advance\pgf@xb by\pgfmathresult pt%
\expandafter\tikz@bary@dolist%
\fi%
-}
+}%
-\tikzset{cs/x/.store in=\tikz@cs@x}
-\tikzset{cs/y/.store in=\tikz@cs@y}
-\tikzset{cs/z/.store in=\tikz@cs@z}
-\tikzset{cs/angle/.store in=\tikz@cs@angle}
-\tikzset{cs/x radius/.store in=\tikz@cs@xradius}
-\tikzset{cs/y radius/.store in=\tikz@cs@yradius}
-\tikzset{cs/radius/.style={/tikz/cs/x radius=#1,/tikz/cs/y radius=#1}}
-\tikzset{cs/name/.store in=\tikz@cs@node}
-\tikzset{cs/anchor/.store in=\tikz@cs@anchor}
+\tikzset{cs/x/.store in=\tikz@cs@x}%
+\tikzset{cs/y/.store in=\tikz@cs@y}%
+\tikzset{cs/z/.store in=\tikz@cs@z}%
+\tikzset{cs/angle/.store in=\tikz@cs@angle}%
+\tikzset{cs/x radius/.store in=\tikz@cs@xradius}%
+\tikzset{cs/y radius/.store in=\tikz@cs@yradius}%
+\tikzset{cs/radius/.style={/tikz/cs/x radius=#1,/tikz/cs/y radius=#1}}%
+\tikzset{cs/name/.store in=\tikz@cs@node}%
+\tikzset{cs/anchor/.store in=\tikz@cs@anchor}%
@@ -4903,8 +5074,8 @@
% Last position visited
-\def\tikz@last@position{\pgfqpoint{\tikz@lastx}{\tikz@lasty}}
-\def\tikz@last@position@saved{\pgfqpoint{\tikz@lastxsaved}{\tikz@lastysaved}}
+\def\tikz@last@position{\pgfqpoint{\tikz@lastx}{\tikz@lasty}}%
+\def\tikz@last@position@saved{\pgfqpoint{\tikz@lastxsaved}{\tikz@lastysaved}}%
% Make given point the last position visited
\def\tikz@make@last@position#1{%
@@ -4916,45 +5087,45 @@
\tikz@lastysaved=\pgf@y\relax%
\fi%
\tikz@updatecurrenttrue%
-}
+}%
\newif\iftikz@updatecurrent
\tikz@updatecurrenttrue
-% Scanner: Scans a point or a relative point.
+% Scanner: Scans a point or a relative point.
% It then calls the first parameter with the argument set to an
% appropriate pgf command representing that point.
\def\tikz@scan@one@point#1{%
\let\tikz@to@use@whom=\tikz@to@use@last@coordinate%
\tikz@shapeborderfalse%
- \pgfutil@ifnextchar+{\tikz@scan@relative#1}{\tikz@scan@absolute#1}}
+ \pgfutil@ifnextchar+{\tikz@scan@relative#1}{\tikz@scan@absolute#1}}%
\def\tikz@scan@absolute#1{%
\pgfutil@ifnextchar({\tikz@scan@@absolute#1}%)
{%
\advance\tikz@expandcount by -1%
\ifnum\tikz@expandcount<0\relax%
- \let\@next=\tikz@@scangiveup%
+ \let\pgfutil@next=\tikz@@scangiveup%
\else%
- \let\@next=\tikz@@scanexpand%
+ \let\pgfutil@next=\tikz@@scanexpand%
\fi%
- \@next{#1}%
+ \pgfutil@next{#1}%
}%
-}
-\def\tikz@@scanexpand#1{\expandafter\tikz@scan@one@point\expandafter#1}
-\def\tikz@@scangiveup#1{\tikzerror{Cannot parse this coordinate}#1{\pgfpointorigin}}
+}%
+\def\tikz@@scanexpand#1{\expandafter\tikz@scan@one@point\expandafter#1}%
+\def\tikz@@scangiveup#1{\tikzerror{Cannot parse this coordinate}#1{\pgfpointorigin}}%
\def\tikz@scan@@absolute#1({%
\pgfutil@ifnextchar[% uhoh... options!
{\def\tikz@scan@point@recall{#1}\tikz@scan@options}%
{\tikz@@@scan@@absolute#1(}%
-}
+}%
\def\tikz@scan@options[#1]#2{%
\def\tikz@scan@point@options{#1}%
\tikz@@@scan@@absolute\tikz@scan@handle@options(#2%
-}
+}%
\def\tikz@scan@handle@options#1{%
{%
@@ -4967,15 +5138,15 @@
\pgf@process{\pgfpointtransformed{#1}}%
\xdef\tikz@marshal{\expandafter\noexpand\tikz@scan@point@recall{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}}%
}%
- \tikz@marshal%
-}
+ \tikz@marshal%
+}%
\def\tikz@ensure@dollar@catcode{%
\ifnum\catcode`\$=3 %
\else
\tikzerror{Sorry, some package has redefined the meaning of the
math-mode dollar sign. This is incompatible with tikz and its calc
- library and might cause unrecoverable errors}%
+ library and might cause unrecoverable errors}%
% only show error once:
\global\let\tikz@ensure@dollar@catcode=\relax
\fi
@@ -4986,50 +5157,50 @@
\pgfutil@ifnextchar{$}%$
{\tikz@parse@calculator#1(}
{\tikz@scan@no@calculator#1(}%
-}
+}%
\def\tikz@scan@no@calculator#1(#2){%
\edef\tikz@temp{(#2)}%
\expandafter\tikz@@scan@@no@calculator\expandafter#1\tikz@temp%
-}
+}%
\def\tikz@@scan@@no@calculator#1(#2){%
\pgfutil@in@{cs:}{#2}%
\ifpgfutil@in@%
- \let\@next\tikz@parse@coordinatesystem%
+ \let\pgfutil@next\tikz@parse@coordinatesystem%
\else%
\pgfutil@in@{intersection }{#2}%
\ifpgfutil@in@%
- \let\@next\tikz@parse@intersection%
+ \let\pgfutil@next\tikz@parse@intersection%
\else%
\pgfutil@in@|{#2}%
\ifpgfutil@in@
\pgfutil@in@{-|}{#2}%
\ifpgfutil@in@
- \let\@next\tikz@parse@hv%
+ \let\pgfutil@next\tikz@parse@hv%
\else%
- \let\@next\tikz@parse@vh%
+ \let\pgfutil@next\tikz@parse@vh%
\fi%
\else%
\pgfutil@in@:{#2}%
\ifpgfutil@in@
- \let\@next\tikz@parse@polar%
+ \let\pgfutil@next\tikz@parse@polar%
\else%
\pgfutil@in@,{#2}%
- \ifpgfutil@in@%
- \let\@next\tikz@parse@regular%
+ \ifpgfutil@in@%
+ \let\pgfutil@next\tikz@parse@regular%
\else%
- \let\@next\tikz@parse@node%
+ \let\pgfutil@next\tikz@parse@node%
\fi%
\fi%
\fi%
\fi%
\fi%
- \@next#1(#2)%
-}
+ \pgfutil@next#1(#2)%
+}%
\def\tikz@parse@calculator#1($#2$){%
\tikzerror{You need to say \string\usetikzlibrary{calc} for coordinate calculation}%
#1{\pgfpointorigin}%
-}
+}%
\def\tikz@parse@coordinatesystem#1(#2 cs:#3){%
\let\tikz@return@coordinate=\pgfpointorigin%
@@ -5037,20 +5208,20 @@
{\tikzerror{Unknown coordinate system '#2'}}
{\csname tikz@parse@cs@#2\endcsname(#3)}%
\expandafter#1\expandafter{\tikz@return@coordinate}%
-}
+}%
\newif\iftikz@isdimension
\def\tikz@checkunit#1{%
\pgfmathparse{#1}%
\let\iftikz@isdimension=\ifpgfmathunitsdeclared%
-}
+}%
\def\tikz@parse@polar#1(#2:#3){%
\pgfutil@ifundefined{tikz@polar@dir@#2}
{\tikz@@parse@polar#1({#2}:{#3})}
{\tikz@@parse@polar#1(\csname tikz@polar@dir@#2\endcsname:{#3})}%
-}
+}%
\def\tikz@@parse@polar#1(#2:#3){%
\pgfutil@in@{ and }{#3}%
\ifpgfutil@in@%
@@ -5059,7 +5230,7 @@
\edef\tikz@args{({#2}:{#3} and {#3})}%
\fi%
\expandafter\tikz@@@parse@polar\expandafter#1\tikz@args%
-}
+}%
\def\tikz@@@parse@polar#1(#2:#3 and #4){%
\tikz@checkunit{#3}%
\iftikz@isdimension%
@@ -5080,69 +5251,65 @@
\fi%
\fi%
\tikz@next%
-}
-\def\tikz@polar@dir@up{90}
-\def\tikz@polar@dir@down{-90}
-\def\tikz@polar@dir@left{180}
-\def\tikz@polar@dir@right{0}
-\def\tikz@polar@dir@north{90}
-\def\tikz@polar@dir@south{-90}
-\def\tikz@polar@dir@east{0}
-\def\tikz@polar@dir@west{180}
-\expandafter\def\csname tikz@polar@dir@north east\endcsname{45}
-\expandafter\def\csname tikz@polar@dir@north west\endcsname{135}
-\expandafter\def\csname tikz@polar@dir@south east\endcsname{-45}
-\expandafter\def\csname tikz@polar@dir@south west\endcsname{-135}
-
-
-% MW:
-% Check to see if the y-coordinate is inside {}. If it is, scan it and
-% reinsert it into the stream inside an extra group.
-%
-% MW:
+}%
+\def\tikz@polar@dir@up{90}%
+\def\tikz@polar@dir@down{-90}%
+\def\tikz@polar@dir@left{180}%
+\def\tikz@polar@dir@right{0}%
+\def\tikz@polar@dir@north{90}%
+\def\tikz@polar@dir@south{-90}%
+\def\tikz@polar@dir@east{0}%
+\def\tikz@polar@dir@west{180}%
+\expandafter\def\csname tikz@polar@dir@north east\endcsname{45}%
+\expandafter\def\csname tikz@polar@dir@north west\endcsname{135}%
+\expandafter\def\csname tikz@polar@dir@south east\endcsname{-45}%
+\expandafter\def\csname tikz@polar@dir@south west\endcsname{-135}%
+
+
+% MW:
% Check to see if the y-coordinate is inside {}. If it is, scan it and
-% reinsert it into the stream inside an extra group.
+% reinsert it into the stream inside an extra group.
%
\def\tikz@parse@regular#1(#2,{%
- \pgfutil@ifnextchar\bgroup{\tikz@@parse@regular#1{#2}}{\tikz@@@parse@regular#1{#2}}%
-}
+ \pgfutil@ifnextchar\bgroup{\tikz@@parse@regular#1{#2}}{\tikz@@@parse@regular#1{#2}}%
+}%
\def\tikz@@parse@regular#1#2#3{%
- \pgfutil@ifnextchar[{% Uh oh! An array index.
- \tikz@@@parse@regular#1{#2}{#3}}%
- {\tikz@@@parse@regular#1{#2}{{#3}}}}
-
+ \pgfutil@ifnextchar[{% Uh oh! An array index.
+ \tikz@@@parse@regular#1{#2}{#3}}%
+ {\tikz@@@parse@regular#1{#2}{{#3}}}}%
+
% Originally \def\tikz@parse@regular#1(#2,#3){%
%
\def\tikz@@@parse@regular#1#2#3){%
\pgfutil@in@,{#3}%
- \ifpgfutil@in@%
+ \ifpgfutil@in@%
\tikz@parse@splitxyz{#1}{#2}#3,%
\else%
\tikz@checkunit{#2}%
\iftikz@isdimension%
\tikz@checkunit{#3}%
\iftikz@isdimension%
- \def\@next{#1{\pgfpoint{#2}{#3}}}%
+ \def\pgfutil@next{#1{\pgfpoint{#2}{#3}}}%
\else%
- \def\@next{#1{\pgfpointadd{\pgfpoint{#2}{0pt}}{\pgfpointxy{0}{#3}}}}%
+ \def\pgfutil@next{#1{\pgfpointadd{\pgfpoint{#2}{0pt}}{\pgfpointxy{0}{#3}}}}%
\fi%
\else%
\tikz@checkunit{#3}%
\iftikz@isdimension%
- \def\@next{#1{\pgfpointadd{\pgfpoint{0pt}{#3}}{\pgfpointxy{#2}{0}}}}%
+ \def\pgfutil@next{#1{\pgfpointadd{\pgfpoint{0pt}{#3}}{\pgfpointxy{#2}{0}}}}%
\else%
- \def\@next{#1{\pgfpointxy{#2}{#3}}}%
+ \def\pgfutil@next{#1{\pgfpointxy{#2}{#3}}}%
\fi%
\fi%
\fi%
- \@next%
-}
+ \pgfutil@next%
+}%
\def\tikz@parse@splitxyz#1#2#3,#4,{%
- \def\@next{#1{\pgfpointxyz{#2}{#3}{#4}}}%
-}
+ \def\pgfutil@next{#1{\pgfpointxyz{#2}{#3}{#4}}}%
+}%
-\def\tikz@coordinate@text{coordinate}
+\def\tikz@coordinate@text{coordinate}%
\def\tikz@parse@node#1(#2){%
\pgfutil@in@.{#2}% Ok, flag this
@@ -5151,7 +5318,7 @@
\else%
\tikz@calc@anchor#2.center\tikz@stop% to be on the save side, in
% case iftikz@shapeborder is ignored...
- \expandafter\ifx\csname pgf@sh@ns@#2\endcsname\tikz@coordinate@text%
+ \expandafter\ifx\csname pgf@sh@ns@\tikz@pp@name{#2}\endcsname\tikz@coordinate@text%
\else
\tikz@shapebordertrue%
\def\tikz@shapeborder@name{\tikz@pp@name{#2}}%
@@ -5159,11 +5326,11 @@
\fi%
\edef\tikz@marshal{\noexpand#1{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}}%
\tikz@marshal%
-}
+}%
\def\tikz@calc@anchor#1.#2\tikz@stop{%
\pgfpointanchor{\tikz@pp@name{#1}}{#2}%
-}
+}%
\def\tikz@parse@hv#1(#2){%
@@ -5183,11 +5350,11 @@
\fi%
\fi%
\fi%
- \tikz@next#1(#2)}
-\def\tikz@parse@hvboth#1(#2 -| #3){\tikz@parse@vhdone#1({#3}|-{#2})}
-\def\tikz@parse@hvleft#1(#2 -|#3){\tikz@parse@vhdone#1({#3}|-{#2})}
-\def\tikz@parse@hvright#1(#2-| #3){\tikz@parse@vhdone#1({#3}|-{#2})}
-\def\tikz@parse@hvdone#1(#2-|#3){\tikz@parse@vhdone#1({#3}|-{#2})}
+ \tikz@next#1(#2)}%
+\def\tikz@parse@hvboth#1(#2 -| #3){\tikz@parse@vhdone#1({#3}|-{#2})}%
+\def\tikz@parse@hvleft#1(#2 -|#3){\tikz@parse@vhdone#1({#3}|-{#2})}%
+\def\tikz@parse@hvright#1(#2-| #3){\tikz@parse@vhdone#1({#3}|-{#2})}%
+\def\tikz@parse@hvdone#1(#2-|#3){\tikz@parse@vhdone#1({#3}|-{#2})}%
\def\tikz@parse@vh#1(#2){%
\pgfutil@in@{ |- }{#2}%
@@ -5206,10 +5373,10 @@
\fi%
\fi%
\fi%
- \tikz@next#1(#2)}
-\def\tikz@parse@vhboth#1(#2 |- #3){\tikz@parse@vhdone#1({#2}|-{#3})}
-\def\tikz@parse@vhleft#1(#2 |-#3){\tikz@parse@vhdone#1({#2}|-{#3})}
-\def\tikz@parse@vhright#1(#2|- #3){\tikz@parse@vhdone#1({#2}|-{#3})}
+ \tikz@next#1(#2)}%
+\def\tikz@parse@vhboth#1(#2 |- #3){\tikz@parse@vhdone#1({#2}|-{#3})}%
+\def\tikz@parse@vhleft#1(#2 |-#3){\tikz@parse@vhdone#1({#2}|-{#3})}%
+\def\tikz@parse@vhright#1(#2|- #3){\tikz@parse@vhdone#1({#2}|-{#3})}%
\def\tikz@parse@vhdone#1(#2|-#3){%
{%
\tikz@@@scan@@absolute\tikz@parse@vh@mid(#2)%
@@ -5217,9 +5384,9 @@
\xdef\tikz@marshal{\noexpand#1{\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}}}%
}%
\tikz@marshal%
-}
-\def\tikz@parse@vh@mid#1{\pgf@process{#1}\pgf@xa=\pgf@x}
-\def\tikz@parse@vh@end#1{\pgf@process{#1}\pgf@ya=\pgf@y}
+}%
+\def\tikz@parse@vh@mid#1{\pgf@process{#1}\pgf@xa=\pgf@x}%
+\def\tikz@parse@vh@end#1{\pgf@process{#1}\pgf@ya=\pgf@y}%
\def\tikz@parse@intersection#1(intersection{%
\pgfutil@ifnextchar o{%
@@ -5227,7 +5394,7 @@
}{%
\tikz@parse@main@intersection#1%
}%
-}
+}%
\def\tikz@parse@main@intersection#1#2of #3 and #4){%
\tikzset{cs/solution=#2}%
\pgfutil@in@{--}{#3}%
@@ -5245,36 +5412,36 @@
\tikz@parse@cs@intersection()% advanced hackery...
\edef\pgf@marshal{\noexpand#1{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}}%
\pgf@marshal%
-}
+}%
\def\tikz@reparse@line#1#2--#3\pgf@stop{%
\tikzset{cs/#1 line={(#2)--(#3)}}%
-}
+}%
-\def\tikz@parse@intersection@a#1{\pgf@process{#1}\pgf@xa=\pgf@x\pgf@ya=\pgf@y}
-\def\tikz@parse@intersection@b#1{\pgf@process{#1}\pgf@xb=\pgf@x\pgf@yb=\pgf@y}
+\def\tikz@parse@intersection@a#1{\pgf@process{#1}\pgf@xa=\pgf@x\pgf@ya=\pgf@y}%
+\def\tikz@parse@intersection@b#1{\pgf@process{#1}\pgf@xb=\pgf@x\pgf@yb=\pgf@y}%
\def\tikz@scan@relative#1+{%
- \pgfutil@ifnextchar+{\tikz@scan@plusplus#1}{\tikz@scan@oneplus#1}}
+ \pgfutil@ifnextchar+{\tikz@scan@plusplus#1}{\tikz@scan@oneplus#1}}%
\def\tikz@scan@plusplus#1+{%
\def\tikz@doafter{#1}%
\tikz@scan@absolute\tikz@add%
-}
+}%
\def\tikz@add#1{%
\tikz@doafter{\pgfpointadd{#1}{\tikz@last@position@saved}}%
-}
+}%
\def\tikz@scan@oneplus#1{%
\def\tikz@doafter{#1}%
\tikz@updatecurrentfalse%
\tikz@scan@absolute\tikz@add%
-}
+}%
-%
+%
% Quote handling
-%
+%
\let\tikz@enable@node@quotes\relax
\let\tikz@enable@edge@quotes\relax
@@ -5287,16 +5454,16 @@
% Include a library file.
%
% #1 = List of names of library file.
-%
+%
% Description:
%
% This command includes a list of TikZ library files. For each file X in the
% list, the file tikzlibraryX.code.tex is included, provided this has
-% not been done earlier.
+% not been done earlier.
%
% For the convenience of Context users, both round and square brackets
% are possible for the argument.
-%
+%
% If no file tikzlibraryX.code.tex exists, the file
% pgflibraryX.code.tex is tried instead. If this file, also, does not
% exist, an error message is printed.
@@ -5306,8 +5473,8 @@
% \usetikzlibrary{arrows}
% \usetikzlibrary[patterns,topaths]
-\def\usetikzlibrary{\pgfutil@ifnextchar[{\use@tikzlibrary}{\use@@tikzlibrary}}%}
-\def\use@tikzlibrary[#1]{\use@@tikzlibrary{#1}}
+\def\usetikzlibrary{\pgfutil@ifnextchar[{\use@tikzlibrary}{\use@@tikzlibrary}}%}%
+\def\use@tikzlibrary[#1]{\use@@tikzlibrary{#1}}%
\def\use@@tikzlibrary#1{%
\edef\pgf@list{#1}%
\pgfutil@for\pgf@temp:=\pgf@list\do{%
@@ -5338,12 +5505,12 @@
\fi%
\fi
}%
-}
+}%
% Always-present libraries:
-\usetikzlibrary{topaths}
+\usetikzlibrary{topaths}%