diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/tikz-qtree/tikz-qtree.tex')
-rw-r--r-- | Master/texmf-dist/tex/latex/tikz-qtree/tikz-qtree.tex | 43 |
1 files changed, 33 insertions, 10 deletions
diff --git a/Master/texmf-dist/tex/latex/tikz-qtree/tikz-qtree.tex b/Master/texmf-dist/tex/latex/tikz-qtree/tikz-qtree.tex index 17c8f3cb135..c28db5bae6a 100644 --- a/Master/texmf-dist/tex/latex/tikz-qtree/tikz-qtree.tex +++ b/Master/texmf-dist/tex/latex/tikz-qtree/tikz-qtree.tex @@ -1,5 +1,5 @@ % tikz-qtree.tex -% Version 1.11, 25 Dec 2010 +% Version 1.2, 20 Apr 2012 % Copyright (C) 2002, 2009 by David Chiang @@ -17,11 +17,13 @@ % with this program; if not, write to the Free Software Foundation, Inc., % 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +% New in version 1.2: +% - level-specific styles (thanks to Andrew Stacey) + % New in version 1.11: % - make options compatible with standard tikz trees % New in version 1.1: - % - sideways trees %% These macros facilitate building up an object recursively before @@ -75,9 +77,13 @@ } \def\@@@@@@subtree{% \@ifequal{\the\root@node}{\pgfutil@empty}% -\edef\act{\noexpand\@result={\noexpand\pgfsubtree{\noexpand\path coordinate (\noexpand\nodename);}{\the\child@list}}}% +\edef\act{\noexpand\@result={% +\noexpand\subtree@hook +\noexpand\pgfsubtree{\noexpand\path coordinate (\noexpand\nodename);}{\the\child@list}}}% \else -\edef\act{\noexpand\@result={\noexpand\pgfsubtree{\the\root@node}{\the\child@list}}}% +\edef\act{\noexpand\@result={% +\noexpand\subtree@hook +\noexpand\pgfsubtree{\the\root@node}{\the\child@list}}}% \fi \act \@return} @@ -104,8 +110,12 @@ \expandafter\child@list\expandafter{\the\child@list{\edge@adapter{}}}% \fi \scanned@edgefalse -\pgfutil@ifnextchar[{\@call\@subtree\@@@children}% subtree -{\@call\@leaf\@@@children}% leaf +\pgfutil@ifnextchar[{% subtree +\expandafter\child@list\expandafter{\the\child@list{\level@hook\interior@hook}}% +\@call\@subtree\@@@children}% +{% leaf +\expandafter\child@list\expandafter{\the\child@list{\level@hook\frontier@hook}}% +\@call\@leaf\@@@children}% }}} \def\@@@children{% % wrap child inside curly braces @@ -114,10 +124,12 @@ \@@children } -\def\@interior.{\@result{\node[alias=\nodename][every tree node,every internal node]}\@label} +\def\@interior.{\@result{\node[alias=\nodename][every tree node,every internal node,every level \the\pgftree@level\space node/.try]}\@label} \def\@leaf{\@call\@label\@@leaf} -\def\@@leaf{\edef\act{\noexpand\@result{\noexpand\pgfsubtree{\noexpand\node[alias=\noexpand\nodename][every tree node,every leaf node]\the\@result}{}}}\act\@return} +\def\@@leaf{\edef\act{\noexpand\@result{% +\noexpand\subtree@hook +\noexpand\pgfsubtree{\noexpand\node[alias=\noexpand\nodename][every tree node,every leaf node,every level \noexpand\the\pgftree@level\space node/.try]\the\@result}{}}}\act\@return} \def\@edge\edge #1;{% \@result{\edge@adapter{#1}}% @@ -128,6 +140,17 @@ \path edge from parent #1;% } +\def\level@hook{% +{\advance\pgftree@level by 1\relax +\xdef\@act{\noexpand\tikzset{level \the\pgftree@level/.try}}}\@act} +\def\subtree@hook{% +%\edef\act{\noexpand\tikzset{every tree node/.append code={\noexpand\tikzset{every level \the\pgftree@level+ node/.try}}}}\act +{\advance\pgftree@level by 1\relax +\xdef\@act{\noexpand\tikzset{level \the\pgftree@level+/.try}}}\@act +} +\def\interior@hook{\tikzset{interior/.try}} +\def\frontier@hook{\tikzset{frontier/.try}} + % a label is either text or PGF/TikZ code starting with \node \def\@label{\pgfutil@ifnextchar\node{\@litlabel}{\@@label}} \def\@@label#1 {% @@ -153,6 +176,7 @@ %%% Options \pgfkeysgetvalue{/tikz/level distance/.@cmd}{\orig@leveldistance} \tikzoption{level distance}{\pgfmathsetlength\levelsep{#1}\orig@leveldistance#1\pgfeov} +\tikzoption{distance from root}{\pgfmathsetlength\levelsep{#1}\advance\levelsep by -\pgftree@depth} \pgfkeysgetvalue{/tikz/sibling distance/.@cmd}{\orig@siblingdistance} \tikzoption{sibling distance}{\pgfmathsetlength\subtreesep{#1}\orig@siblingdistance#1\pgfeov} % different semantics @@ -171,11 +195,10 @@ \def\growprime@right{\def\leveldirection{right}\def\siblingdirection{down}} % defaults appropriate for linguistic trees +\def\tikz@edge@to@parent@path{\tree@edge{\tikzparentnode}{\tikzchildnode}} \tikzset{every tree node/.style={anchor=base}} \tikzset{every leaf node/.style={}} \tikzset{every internal node/.style={}} -\def\tikz@edge@to@parent@path{\tree@edge{\tikzparentnode}{\tikzchildnode}} % predefined roof style \tikzset{roof/.style={edge from parent path=\roof@edge{\tikzparentnode}{\tikzchildnode}}} - |