summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/pgf/modules
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-08-08 22:54:29 +0000
committerKarl Berry <karl@freefriends.org>2015-08-08 22:54:29 +0000
commit531d43fafa269c546d587eaca6cd14adcd11914f (patch)
tree1883933af984c60254e6d9d1bd955a76748cb827 /Master/texmf-dist/tex/generic/pgf/modules
parent877e963d44f039783cb9227d90c911866c780961 (diff)
pgf (8aug15)
git-svn-id: svn://tug.org/texlive/trunk@38079 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/pgf/modules')
-rw-r--r--Master/texmf-dist/tex/generic/pgf/modules/pgfmoduledatavisualization.code.tex226
-rw-r--r--Master/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex25
-rw-r--r--Master/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex31
3 files changed, 162 insertions, 120 deletions
diff --git a/Master/texmf-dist/tex/generic/pgf/modules/pgfmoduledatavisualization.code.tex b/Master/texmf-dist/tex/generic/pgf/modules/pgfmoduledatavisualization.code.tex
index 243f8ce225d..f991fdedaef 100644
--- a/Master/texmf-dist/tex/generic/pgf/modules/pgfmoduledatavisualization.code.tex
+++ b/Master/texmf-dist/tex/generic/pgf/modules/pgfmoduledatavisualization.code.tex
@@ -7,7 +7,7 @@
%
% See the file doc/generic/pgf/licenses/LICENSE for more details.
-\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/modules/pgfmoduledatavisualization.code.tex,v 1.47 2013/07/19 13:16:48 tantau Exp $
+\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/modules/pgfmoduledatavisualization.code.tex,v 1.50 2015/05/18 17:01:16 tantau Exp $
\usepgfmodule{oo,shapes}
\usepgflibrary{fpu}
@@ -1523,11 +1523,10 @@
% has a value different from \relax, it will always be used instead
% of the in attribute itself. This can be useful to temporarily
% set a constant value to a key inside a mapping chain.
+ %
+ % If the subkey /is min or max is set to "min" or "max", the mapping
+ % will always be done to the respective out min or out max values.
-% \attribute clip;
-% % The code for clipping the interval. Will set \pgf@dvcliptrue, if a
-% % clip is necessary.
-
\attribute out;
% The name of the output attribute.
@@ -1577,35 +1576,6 @@
\pgfkeysvalueof{/pgf/data visualization/obj}.connect(\pgf@dv@me,map,map datapoint signal)
}
-% % Method
-% \method set clip interval(#1,#2) {
-% \def\pgfdvmin{#1}%
-% \def\pgfdvmax{#2}%
-% \ifx\pgfdvmin\pgfutil@empty%
-% \else%
-% \pgfdvmathenter{\pgf@dv@temp}{\pgfdvmin}%
-% \pgfdvmathexitbyserializing{\pgfdvmin}{\pgf@dv@temp}%
-% \fi
-% \ifx\pgfdvmax\pgfutil@empty%
-% \else%
-% \pgfdvmathenter{\pgf@dv@temp}{\pgfdvmax}%
-% \pgfdvmathexitbyserializing{\pgfdvmax}{\pgf@dv@temp}%
-% \fi
-% \pgfooeset{clip}{%
-% \noexpand\pgf@dvclipfalse%
-% \ifx\pgfdvmin\pgfutil@empty%
-% \else%
-% \noexpand\pgfdvmathenter{\noexpand\pgf@dv@temp}{\pgfdvmin}%
-% \noexpand\pgfdvmathifless{\noexpand\pgfvalue}{\noexpand\pgf@dv@temp}{\noexpand\pgf@dvcliptrue}{}%
-% \fi%
-% \ifx\pgfdvmax\pgfutil@empty%
-% \else%
-% \noexpand\pgfdvmathenter{\noexpand\pgf@dv@temp}{\pgfdvmax}%
-% \noexpand\pgfdvmathifless{\noexpand\pgf@dv@temp}{\noexpand\pgfvalue}{\noexpand\pgf@dvcliptrue}{}%
-% \fi%
-% }
-% }
-
% Method
%
% #1 = in interval minimum
@@ -1624,67 +1594,88 @@
% Let's start with the output, it's easier...
\pgfoolet{out min}{\pgf@out@interval@min}
\pgfoolet{out max}{\pgf@out@interval@max}
- \pgfdvmathsub{\pgf@out@diff}{\pgf@out@interval@max}{\pgf@out@interval@min}
- \let\pgfvalue=\pgf@in@interval@min
- \pgfoovalueof{trans}
- \let\pgf@in@interval@min@transformed=\pgfvalue
- \pgfoolet{trans in min}{\pgf@in@interval@min@transformed}%
- \let\pgfvalue=\pgf@in@interval@max
- \pgfoovalueof{trans}
- \let\pgf@in@interval@max@transformed=\pgfvalue
- \pgfdvmathsub{\pgf@diff@in@transformed}{\pgf@in@interval@max@transformed}{\pgf@in@interval@min@transformed}
- %
- % Precompute the scaling
- %
- \pgfdvmathdiv{\pgf@scale}{\pgf@out@diff}{\pgf@diff@in@transformed}%
- \pgfoolet{scale}{\pgf@scale}%
+ \pgfdvmathifless{\pgf@in@interval@min}{\pgf@in@interval@max}{%
+ \pgfdvmathsub{\pgf@out@diff}{\pgf@out@interval@max}{\pgf@out@interval@min}
+ \let\pgfvalue=\pgf@in@interval@min
+ \pgfoovalueof{trans}
+ \let\pgf@in@interval@min@transformed=\pgfvalue
+ \pgfoolet{trans in min}{\pgf@in@interval@min@transformed}%
+ \let\pgfvalue=\pgf@in@interval@max
+ \pgfoovalueof{trans}
+ \let\pgf@in@interval@max@transformed=\pgfvalue
+ \pgfdvmathsub{\pgf@diff@in@transformed}{\pgf@in@interval@max@transformed}{\pgf@in@interval@min@transformed}
+ %
+ % Precompute the scaling
+ %
+ \pgfdvmathdiv{\pgf@scale}{\pgf@out@diff}{\pgf@diff@in@transformed}%
+ \pgfoolet{scale}{\pgf@scale}%
+ }{%
+ \pgfoolet{scale}\pgf@dv@no@scale%
+ }%
}%
}
-
+ \def\pgf@dv@no@scale{noscale}
+
% Slot
\method map() {
- \pgfooget{scale}\pgf@temp
- \ifx\pgf@temp\pgfutil@empty%
+ \pgfooget{scale}\pgf@dv@scale
+ \ifx\pgf@dv@scale\pgfutil@empty%
% not yet setup
\else%
- \pgfkeysgetvalue{/data point/\pgfoovalueof{in}/const}\pgf@dv@external@value%
- \ifx\pgf@dv@external@value\relax%
- \pgfkeysgetvalue{/data point/\pgfoovalueof{in}}\pgf@dv@external@value%
- \fi%
- \ifx\pgf@dv@external@value\pgfutil@empty%
- \pgf@dv@mapper@pos@check%
+ \pgfkeysgetvalue{/data point/\pgfoovalueof{in}/is min or max}\pgf@dv@is%
+ \ifx\pgf@dv@is\pgf@min@text%
+ \pgf@dv@set@out@min%
\else%
- \ifx\pgf@dv@external@value\relax%
- \pgf@dv@mapper@pos@check%
+ \ifx\pgf@dv@is\pgf@max@text%
+ \pgf@dv@set@out@max%
\else%
-% % Clip?
- \pgfdvmathenter{\pgfvalue}{\pgf@dv@external@value}%
-% \pgfoovalueof{clip}%
-% \ifpgf@dvclip%
-% \pgfkeyslet{/data point/\pgfoovalueof{out}}\pgfutil@empty%
-% \else%
- \pgf@dv@mapper@trans{}
-% \fi%
+ \ifx\pgf@dv@scale\pgf@dv@no@scale%
+ \pgf@dv@mapper@goto@mid%
+ \else%
+ \pgfkeysgetvalue{/data point/\pgfoovalueof{in}/const}\pgf@dv@external@value%
+ \ifx\pgf@dv@external@value\relax%
+ \pgfkeysgetvalue{/data point/\pgfoovalueof{in}}\pgf@dv@external@value%
+ \fi%
+ \ifx\pgf@dv@external@value\pgfutil@empty%
+ \pgf@dv@mapper@pos@check%
+ \else%
+ \ifx\pgf@dv@external@value\relax%
+ \pgf@dv@mapper@pos@check%
+ \else%
+ \pgfdvmathenter{\pgfvalue}{\pgf@dv@external@value}%
+ \pgf@dv@mapper@trans
+ \fi%
+ \fi%
+ \fi%
\fi%
\fi%
-% \pgfkeysgetvalue{/data point/\pgfoovalueof{in}/min}\pgf@dv@external@value%
-% \ifx\pgf@dv@external@value\relax\else%
-% \ifx\pgf@dv@external@value\pgfutil@empty\else%
-% \pgfdvmathenter{\pgfvalue}{\pgf@dv@external@value}%
-% \pgf@dv@mapper@trans{/min}
-% \fi
-% \fi
-% \pgfkeysgetvalue{/data point/\pgfoovalueof{in}/max}\pgf@dv@external@value%
-% \ifx\pgf@dv@external@value\relax\else%
-% \ifx\pgf@dv@external@value\pgfutil@empty\else%
-% \pgfdvmathenter{\pgfvalue}{\pgf@dv@external@value}%
-% \pgf@dv@mapper@trans{/max}
-% \fi
-% \fi
\fi%
}
- \def\pgf@dv@mapper@trans#1{
+ \def\pgf@dv@set@out@min{%
+ \pgfkeyslet{/data point/\pgfoovalueof{out}/is min or max}\pgf@min@text%
+ \pgfooget{out min}{\pgf@minmax@temp}%
+ \pgf@dv@set@out@now%
+ }
+ \def\pgf@dv@set@out@max{%
+ \pgfkeyslet{/data point/\pgfoovalueof{out}/is min or max}\pgf@max@text%
+ \pgfooget{out max}{\pgf@minmax@temp}%
+ \pgf@dv@set@out@now%
+ }
+ \def\pgf@dv@set@out@now{%
+ \pgfkeysgetvalue{/data point/\pgfoovalueof{out}/offset}\pgf@dv@external@offset%
+ \ifx\pgf@dv@external@offset\relax\else%
+ \ifx\pgf@dv@external@offset\pgfutil@empty\else%
+ \pgfdvmathenter{\pgfvalue}{\pgf@minmax@temp}%
+ \pgfdvmathenter{\pgf@dv@offset}{\pgf@dv@external@offset}%
+ \pgfdvmathadd{\pgfvalue}{\pgfvalue}{\pgf@dv@offset}
+ \pgfdvmathexitbyserializing{\pgf@minmax@temp}{\pgfvalue}%
+ \fi
+ \fi
+ \pgfkeyslet{/data point/\pgfoovalueof{out}}\pgf@minmax@temp%
+ }
+
+ \def\pgf@dv@mapper@trans{
\pgfooget{trans in min}{\pgf@dv@trans@in@min}%
\pgfooget{scale}{\pgf@dv@scale}%
\pgfooget{out min}{\pgf@dv@out@min}%
@@ -1692,7 +1683,7 @@
\pgfdvmathsub{\pgfvalue}{\pgfvalue}{\pgf@dv@trans@in@min}%
\pgfdvmathmul{\pgfvalue}{\pgfvalue}{\pgf@dv@scale}%
\pgfdvmathadd{\pgfvalue}{\pgfvalue}{\pgf@dv@out@min}%
- \pgfkeysgetvalue{/data point/\pgfoovalueof{out}#1/offset}\pgf@dv@external@offset%
+ \pgfkeysgetvalue{/data point/\pgfoovalueof{out}/offset}\pgf@dv@external@offset%
\ifx\pgf@dv@external@offset\relax\else%
\ifx\pgf@dv@external@offset\pgfutil@empty\else%
\pgfdvmathenter{\pgf@dv@offset}{\pgf@dv@external@offset}%
@@ -1700,7 +1691,7 @@
\fi
\fi
\pgfdvmathexitbyserializing{\pgf@temp}{\pgfvalue}%
- \pgfkeyslet{/data point/\pgfoovalueof{out}#1}\pgf@temp%
+ \pgfkeyslet{/data point/\pgfoovalueof{out}}\pgf@temp%
}
\def\pgf@dv@mapper@pos@check{%
@@ -1718,6 +1709,17 @@
\pgfkeyslet{/data point/\pgfoovalueof{out}}\pgf@temp%
\fi\fi%
}
+
+ \def\pgf@dv@mapper@goto@mid{%
+ % Ok, compute transformed min position:
+ \pgfooget{out min}{\pgf@out@interval@min}
+ \pgfooget{out max}{\pgf@out@interval@max}
+ \pgfdvmathmulfixed{\pgf@out@interval@min}{\pgf@out@interval@min}{.5}
+ \pgfdvmathmulfixed{\pgf@out@interval@max}{\pgf@out@interval@max}{.5}
+ \pgfdvmathadd{\pgf@out@val}{\pgf@out@interval@min}{\pgf@out@interval@max}%
+ \pgfdvmathexitbyserializing{\pgf@temp}{\pgf@out@val}%
+ \pgfkeyslet{/data point/\pgfoovalueof{out}}\pgf@temp%
+ }
}
@@ -1775,6 +1777,14 @@
% that deforms the linear mapping. In case f is specified,
% f(#1) is mapped to #2 and f(#3) is mapped to #4.
+ \attribute spec maps min;
+ % When the scaling spec maps "min" to some value, rather than some
+ % specific value to that value, then spec maps min will be set to
+ % \pgfutil@firstoftwo, otherwise to \pgfutil@secondoftwo
+
+ \attribute spec maps max;
+ % Like spec maps min
+
\attribute function;
% Stores the function
@@ -1826,18 +1836,6 @@
\pgfkeysvalueof{/pgf/data visualization/obj}.connect(\pgf@dv@me,phase,phase signal)
}
-
-% % Method
-% %
-% % #1 = a min clip -- everything below this value will be clipped
-% % #2 = a max value -- everything above this value will be clipped
-% %
-% % Sets a clipping for the underlying interval mapper.
-% %
-% \method set clip interval(#1,#2) {
-% \pgfoovalueof{interval mapper}.set clip interval({#1},{#2})%
-% }
-
% Getter
%
% Returns an interval object that stores the range of the in
@@ -1887,21 +1885,23 @@
% In case #1 is set to the special value "min", it evaluates to
% \pgfdvmin, when set to "max" it evaluates to \pgfdvmax.
%
- \method set in to(#1) {
- \edef\pgf@temp{#1}
- \ifx\pgf@temp\pgf@min@text
+ \method set in to(#1) {%
+ \edef\pgf@temp{#1}%
+ \ifx\pgf@temp\pgf@min@text%
\pgf@dv@lib@set@mm%
- \let\pgf@dv@value\pgfdvmin
- \else
- \ifx\pgf@temp\pgf@max@text
+ \let\pgf@dv@value\pgfdvmin%
+ \pgfoovalueof{spec maps min}{\pgfkeyslet{/data point/\pgfoovalueof{in}/is min or max}\pgf@min@text}{}%
+ \else%
+ \ifx\pgf@temp\pgf@max@text%
\pgf@dv@lib@set@mm%
- \let\pgf@dv@value\pgfdvmax
- \else
- \pgfdvmathenter{\pgf@dv@value}{\pgf@temp}
- \fi
- \fi
- \pgfdvmathexitbyserializing{\pgf@dv@serial}{\pgf@dv@value}
- \pgfkeyslet{/data point/\pgfoovalueof{in}}\pgf@dv@serial
+ \let\pgf@dv@value\pgfdvmax%
+ \pgfoovalueof{spec maps min}{\pgfkeyslet{/data point/\pgfoovalueof{in}/is min or max}\pgf@max@text}{}%
+ \else%
+ \pgfdvmathenter{\pgf@dv@value}{\pgf@temp}%
+ \fi%
+ \fi%
+ \pgfdvmathexitbyserializing{\pgf@dv@serial}{\pgf@dv@value}%
+ \pgfkeyslet{/data point/\pgfoovalueof{in}}\pgf@dv@serial%
}
\def\pgf@dv@lib@set@mm{
\pgfooget{in range obj}\pgfdvinrangeinterval
@@ -1918,7 +1918,7 @@
\pgfoovalueof{in range obj}.get min and max()
\ifx\pgfdvmin\pgfutil@empty% undefined, since no data points
\else%
- \pgfooget{scaling spec}\pgf@temp
+ \pgfooget{scaling spec}\pgf@temp%
\expandafter\pgf@lib@dv@parse@scaling\pgf@temp\pgf@stop%
\pgfoovalueof{interval mapper}.set interval values(%
\pgf@lib@dv@min,\pgf@lib@dv@max,%
@@ -1936,13 +1936,17 @@
\pgfdvmathenter{\pgf@lib@dv@max@at@mv}{#4}
\ifx\pgf@lib@dv@min\pgf@min@text%
\let\pgf@lib@dv@min@mv\pgfdvmin
+ \pgfoolet{spec maps min}\pgfutil@firstoftwo%
\else
\pgfdvmathenter{\pgf@lib@dv@min@mv}{\pgf@lib@dv@min}
+ \pgfoolet{spec maps min}\pgfutil@secondoftwo%
\fi
\ifx\pgf@lib@dv@max\pgf@max@text%
\let\pgf@lib@dv@max@mv\pgfdvmax
+ \pgfoolet{spec maps max}\pgfutil@firstoftwo%
\else
\pgfdvmathenter{\pgf@lib@dv@max@mv}{\pgf@lib@dv@max}
+ \pgfoolet{spec maps max}\pgfutil@secondoftwo%
\fi
\pgfdvmathexitbyserializing{\pgf@lib@dv@min}{\pgf@lib@dv@min@mv}
\pgfdvmathexitbyserializing{\pgf@lib@dv@min@at}{\pgf@lib@dv@min@at@mv}
@@ -2767,7 +2771,7 @@
\c@pgf@counta=\c@pgf@countb\relax
\c@pgf@countb=\c@pgf@countc\relax
\fi
- \edef\temp{rows: \the\c@pgf@counta, columns: \the\c@pgf@countb}\temp
+ %\edef\temp{rows: \the\c@pgf@counta, columns: \the\c@pgf@countb}\temp
%
% Now arrange the matrix
%
diff --git a/Master/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex b/Master/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex
index 8620a91e4de..696608e31e8 100644
--- a/Master/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex
+++ b/Master/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex
@@ -7,7 +7,7 @@
%
% See the file doc/generic/pgf/licenses/LICENSE for more details.
-\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/modules/pgfmoduleplot.code.tex,v 1.12 2013/07/31 16:22:24 tantau Exp $
+\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/modules/pgfmoduleplot.code.tex,v 1.13 2015/08/03 07:57:07 cfeuersaenger Exp $
% PGF's plotting interface works as follows:
@@ -328,6 +328,7 @@
\def\pgfplotxyfile#1{%
\begingroup%
+ \def\b@pgfplotsxyfile@scanning@for@first{1}%
\pgfplotstreamstart%
\openin\r@pgf@reada=#1
\ifeof\r@pgf@reada
@@ -348,9 +349,15 @@
\let\par=\pgf@savedpar%
\edef\pgf@temp{\pgf@temp}%
\ifx\pgf@temp\pgfutil@empty%
- \ifeof\r@pgf@reada\else\pgfplotstreamnewdataset\fi%
+ \if1\b@pgfplotsxyfile@scanning@for@first
+ \else
+ \ifeof\r@pgf@reada\else\pgfplotstreamnewdataset\fi%
+ \fi
\else\ifx\pgf@temp\pgf@partext%
- \ifeof\r@pgf@reada\else\pgfplotstreamnewdataset\fi%
+ \if1\b@pgfplotsxyfile@scanning@for@first
+ \else
+ \ifeof\r@pgf@reada\else\pgfplotstreamnewdataset\fi%
+ \fi
\else%
\expandafter\pgf@parsexyline\pgf@temp\pgf@stop%
\fi\fi%
@@ -358,6 +365,7 @@
}
\def\pgf@parsexyline#1 #2 #3\pgf@stop{%
+ \def\b@pgfplotsxyfile@scanning@for@first{0}%
\edef\pgf@xyline@flag@val{#3}%
\ifx\pgf@xyline@flag@val\pgf@xyline@flag@undef%
\pgfplotstreampointundefined%
@@ -405,9 +413,15 @@
\def\pgf@readxyzfile{%
\pgfutil@read\r@pgf@reada to \pgf@temp%
\ifx\pgf@temp\pgfutil@empty%
- \ifeof\r@pgf@reada\else\pgfplotstreamnewdataset\fi%
+ \if1\b@pgfplotsxyfile@scanning@for@first
+ \else
+ \ifeof\r@pgf@reada\else\pgfplotstreamnewdataset\fi%
+ \fi
\else\ifx\pgf@temp\pgf@partext%
- \ifeof\r@pgf@reada\else\pgfplotstreamnewdataset\fi%
+ \if1\b@pgfplotsxyfile@scanning@for@first
+ \else
+ \ifeof\r@pgf@reada\else\pgfplotstreamnewdataset\fi%
+ \fi
\else%
\expandafter\pgf@parsexyzline\pgf@temp\pgf@stop%
\fi\fi%
@@ -415,6 +429,7 @@
}
\def\pgf@parsexyzline#1 #2 #3 #4\pgf@stop{%
+ \def\b@pgfplotsxyfile@scanning@for@first{0}%
\edef\pgf@xyline@flag@val{#4}%
\ifx\pgf@xyline@flag@val\pgf@xyline@flag@undef%
\pgfplotstreampointundefined%
diff --git a/Master/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex b/Master/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex
index 7e4e65d4c38..6a4d0932393 100644
--- a/Master/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex
+++ b/Master/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex
@@ -7,7 +7,7 @@
%
% See the file doc/generic/pgf/licenses/LICENSE for more details.
-\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/modules/pgfmoduleshapes.code.tex,v 1.34 2013/10/31 15:44:19 tantau Exp $
+\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/modules/pgfmoduleshapes.code.tex,v 1.35 2014/03/21 19:52:38 tantau Exp $
@@ -41,6 +41,7 @@
{\pgferror{Unknown shape ``#1''}}%
{%
{%
+ \pgf@outer@adjust@hook%
\let\pgf@sh@savedmacros=\pgfutil@empty% MW
\let\pgf@sh@savedpoints=\pgfutil@empty%
\def\pgf@sm@shape@name{#1}% CJ % TT added prefix!
@@ -108,6 +109,7 @@
}%
}%
}
+\let\pgf@outer@adjust@hook\relax
\def\pgf@shapes@late@pos@begin{%
% Rename node
@@ -153,8 +155,6 @@
}%
}
-\let\pgf@nodecallback=\pgfutil@gobble
-
% Creates a node
@@ -400,6 +400,8 @@
}
+
+
% Quickly create a coordinate node
%
% #1 = name
@@ -849,12 +851,33 @@
inner sep/.style ={/pgf/inner xsep=#1,/pgf/inner ysep=#1},
outer xsep/.initial =.5\pgflinewidth,
outer ysep/.initial =.5\pgflinewidth,
- outer sep/.style ={/pgf/outer xsep=#1,/pgf/outer ysep=#1},
+ outer sep/.code =\pgf@handle@outer@sep{#1},
minimum width/.initial =1pt,
minimum height/.initial =1pt,
minimum size/.style ={/pgf/minimum width=#1,/pgf/minimum height=#1},
}
+
+
+\def\pgf@handle@outer@sep#1{%
+ \def\pgf@temp{#1}%
+ \ifx\pgf@temp\pgf@auto@text%
+ \def\pgf@outer@adjust@hook{%
+ \pgftransformationadjustments%
+ \pgfkeyssetvalue{/pgf/outer xsep}{.5\pgflinewidth*\pgfhorizontaltransformationadjustment}%
+ \pgfkeyssetvalue{/pgf/outer ysep}{.5\pgflinewidth*\pgfverticaltransformationadjustment}%
+ \pgf@outer@auto@adjust@hook%
+ }%
+ \else%
+ \pgfkeyssetvalue{/pgf/outer xsep}{#1}%
+ \pgfkeyssetvalue{/pgf/outer ysep}{#1}%
+ \fi%
+}
+\def\pgf@auto@text{auto}
+
+\let\pgf@outer@auto@adjust@hook\relax
+
+
% Keys for rotating the shape border.
% (may not be supported by all shapes)
%