Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
160 lines (158 sloc) 6.46 KB
\let\tikz@lib@nf@textheight\relax
\let\tikz@lib@nf@textdepth\relax
\let\tikz@lib@nf@textwidth\relax
\tikzset{
Minimum Width/.code={%
\pgfutil@ifundefined{\pgfpictureid @#1@width}{}{%
\tikzset{/tikz/minimum width/.expand twice=+\csname\pgfpictureid @#1@width\endcsname}%
}%
\tikz@addmode{\pgfmathsetlengthmacro\tikz@lib@nf@outerxsep{\pgfkeysvalueof{/pgf/outer xsep}}\global\let\tikz@lib@nf@outerxsep\tikz@lib@nf@outerxsep}%
\tikzset{
prefix after command={%
\pgfextra
\pgfinterruptpath
\pgfsettransform{\csname pgf@sh@nt@\tikzlastnode\endcsname}%
\pgfpointanchor{\tikzlastnode}{east}%
\pgf@xa=\pgf@x \pgf@ya=\pgf@y
\pgfpointanchor{\tikzlastnode}{west}%
\advance\pgf@xa-\pgf@x
\advance\pgf@ya-\pgf@y
\pgfmathveclen@{\pgf@sys@tonumber\pgf@xa}{\pgf@sys@tonumber\pgf@ya}%
\pgf@x\pgfmathresult pt\relax
\advance\pgf@x-\tikz@lib@nf@outerxsep
\advance\pgf@x-\tikz@lib@nf@outerxsep
\pgfutil@ifundefined{\pgfpictureid @#1@width}{%
\expandafter\xdef\csname\pgfpictureid @#1@width\endcsname{\the\pgf@x}%
}{%
\expandafter\ifdim\csname\pgfpictureid @#1@width\endcsname<\pgf@x
\expandafter\xdef\csname\pgfpictureid @#1@width\endcsname{\the\pgf@x}%
\fi
}%
\expandafter\expandafter\expandafter\gdef\expandafter\expandafter\expandafter
\tikz@atend@picture\expandafter\expandafter\expandafter{\expandafter\tikz@atend@picture\expandafter\tikz@lib@nf@save\expandafter{\pgfpictureid}{#1}{width}{width}}
\endpgfinterruptpath
\endpgfextra
}%
}%
},
Minimum Height/.code={%
\pgfutil@ifundefined{\pgfpictureid @#1@height}{}{%
\tikzset{/tikz/minimum height/.expand twice=+\csname\pgfpictureid @#1@height\endcsname}%
}%
\tikz@addmode{\pgfmathsetlengthmacro\tikz@lib@nf@outerysep{\pgfkeysvalueof{/pgf/outer ysep}}\global\let\tikz@lib@nf@outerysep\tikz@lib@nf@outerysep}%
\tikzset{
prefix after command={%
\pgfextra
\pgfinterruptpath
\pgfsettransform{\csname pgf@sh@nt@\tikzlastnode\endcsname}%
\pgfpointanchor{\tikzlastnode}{north}%
\pgf@xa=\pgf@x \pgf@ya=\pgf@y
\pgfpointanchor{\tikzlastnode}{south}%
\advance\pgf@xa-\pgf@x
\advance\pgf@ya-\pgf@y
\pgfmathveclen@{\pgf@sys@tonumber\pgf@xa}{\pgf@sys@tonumber\pgf@ya}%
\pgf@x\pgfmathresult pt\relax
\advance\pgf@x-\tikz@lib@nf@outerysep
\advance\pgf@x-\tikz@lib@nf@outerysep
\pgfutil@ifundefined{\pgfpictureid @#1@height}{%
\expandafter\xdef\csname\pgfpictureid @#1@height\endcsname{\the\pgf@x}%
}{%
\expandafter\ifdim\csname\pgfpictureid @#1@height\endcsname<\pgf@x
\expandafter\xdef\csname\pgfpictureid @#1@height\endcsname{\the\pgf@x}%
\fi
}%
\expandafter\expandafter\expandafter\gdef\expandafter\expandafter\expandafter
\tikz@atend@picture\expandafter\expandafter\expandafter{\expandafter\tikz@atend@picture\expandafter\tikz@lib@nf@save\expandafter{\pgfpictureid}{#1}{height}{height}}
\endpgfinterruptpath
\endpgfextra
}%
}%
},
Minimum Size/.style={
Minimum Height={#1},
Minimum Width={#1}},
Text Height/.code=\edef\tikz@lib@nf@textheight{#1},
Text Depth/.code= \edef\tikz@lib@nf@textdepth{#1},
Text Width/.code=%
\edef\tikz@lib@nf@textwidth{#1}%
\pgfutil@ifundefined{\pgfpictureid @#1@textwidth}{}{%
\tikzset{text width/.expand twice=+\csname\pgfpictureid @#1@textwidth\endcsname}%
}%
}
\def\tikz@lib@nf@text@#1#2#3{%
\expandafter\ifx\csname tikz@lib@nf@#3\endcsname\relax\else
\ifx#1\wd\def\tikz@temp{@}\else\let\tikz@temp\pgfutil@empty\fi
\expandafter\ifx\csname tikz@lib@nf@#3\tikz@temp\endcsname\pgfutil@empty\else
\pgfutil@ifundefined{\pgfpictureid @\csname tikz@lib@nf@#3\endcsname @#3\tikz@temp}{%
\expandafter\xdef\csname\pgfpictureid @\csname tikz@lib@nf@#3\endcsname @#3\tikz@temp\endcsname{\the#1#2}%
}{%
\ifdim\csname\pgfpictureid @\csname tikz@lib@nf@#3\endcsname @#3\tikz@temp\endcsname<#1#2
\expandafter\xdef\csname\pgfpictureid @\csname tikz@lib@nf@#3\endcsname @#3\tikz@temp\endcsname{\the#1#2}%
\else
\ifx#1\wd\else
#1#2=\csname\pgfpictureid @\csname tikz@lib@nf@#3\endcsname @#3\endcsname\relax
\fi
\fi
}%
\edef\tikz@temp{\noexpand\tikz@lib@nf@save{\pgfpictureid}{\csname tikz@lib@nf@#3\endcsname}{#3}{#3\tikz@temp}}%
\expandafter\expandafter\expandafter\gdef\expandafter\expandafter\expandafter
\tikz@atend@picture\expandafter\expandafter\expandafter{\expandafter\tikz@atend@picture\tikz@temp}%
\fi
\fi
}
%%% Redefinition
\def\tikz@fig@continue{%
\ifx\tikz@text@width\pgfutil@empty%
\else%
\pgfmathsetlength{\pgf@x}{\tikz@text@width}%
\wd\pgfnodeparttextbox=\pgf@x%
\fi%
\ifx\tikz@text@height\pgfutil@empty%
\else%
\pgfmathsetlength{\pgf@x}{\tikz@text@height}%
\ht\pgfnodeparttextbox=\pgf@x%
\fi%
\ifx\tikz@text@depth\pgfutil@empty%
\else%
\pgfmathsetlength{\pgf@x}{\tikz@text@depth}%
\dp\pgfnodeparttextbox=\pgf@x%
\fi%
%
%
%
\tikz@lib@nf@text@\ht\pgfnodeparttextbox{textheight}%
\tikz@lib@nf@text@\dp\pgfnodeparttextbox{textdepth}%
\tikz@lib@nf@text@\wd\pgfnodeparttextbox{textwidth}%
%
% Node transformation
%
\tikz@node@transformations
%
\setbox\tikz@figbox=\hbox{%
\setbox\pgfutil@tempboxa=\copy\tikz@figbox%
\unhbox\pgfutil@tempboxa%
\hbox{{%
\pgfinterruptpath%
\pgfscope%
\tikz@options%
\setbox\tikz@figbox=\box\pgfutil@voidb@x%
\pgfmultipartnode{\tikz@shape}{\tikz@anchor}{\tikz@fig@name}{%
\pgfutil@tempdima=\pgflinewidth%
{\begingroup\tikz@finish}%
\global\pgflinewidth=\pgfutil@tempdima%
}%
\endpgfscope
\endpgfinterruptpath%
}}%
}%
%
\tikz@alias%
\tikz@node@finish%
}
\def\tikz@lib@nf@save#1#2#3#4{%
\pgfutil@ifundefined{#1@#2@#3@done}{%
\expandafter\let\csname#1@#2@#3@done\endcsname\pgfutil@empty%
\immediate\write\pgfutil@auxout{\noexpand\expandafter\noexpand\gdef\noexpand\csname#1@#2@#3\endcsname{\csname#1@#2@#4\endcsname}}
}{}%
}
\endinput