summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-09-17 23:35:53 +0000
committerKarl Berry <karl@freefriends.org>2009-09-17 23:35:53 +0000
commit6a05fdfc8d72fa5ce0ab6b1a63e2ce09f9a7f6a6 (patch)
treef23186156d13f47f53c67f2c64500d9f5060fbf0 /Master/texmf-dist/tex/generic
parentbde8571a27fc85283eec8adc43a126bb2bf927fa (diff)
pst-tree update (17sep09)
git-svn-id: svn://tug.org/texlive/trunk@15349 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic')
-rw-r--r--Master/texmf-dist/tex/generic/pst-tree/pst-tree.tex917
1 files changed, 480 insertions, 437 deletions
diff --git a/Master/texmf-dist/tex/generic/pst-tree/pst-tree.tex b/Master/texmf-dist/tex/generic/pst-tree/pst-tree.tex
index 140d18cbc6d..88ab3c11641 100644
--- a/Master/texmf-dist/tex/generic/pst-tree/pst-tree.tex
+++ b/Master/texmf-dist/tex/generic/pst-tree/pst-tree.tex
@@ -1,7 +1,7 @@
-%% pst-tree.tex
+%% $Id: pst-tree.tex 133 2009-09-17 05:53:56Z herbert $
%% COPYRIGHT 1993, 1994, 1999 by Timothy Van Zandt, tvz@nwu.edu.
%% COPYRIGHT 2000-2003 by Denis Girou.
-%% Copyright 2004-2009 Herbert Voss
+%% Copyright 2004-2010 Herbert Voss
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -24,25 +24,24 @@
\ifx\PSTnodesLoaded\endinput\else\input pst-node.tex\fi\relax
\ifx\PSTXKeyLoaded\endinput\else\input pst-xkey \fi
%
-\def\fileversion{1.10}
-\def\filedate{2008/12/12}
-\message{ v\fileversion, \filedate}
+\def\fileversion{1.11}
+\def\filedate{2009/09/17}
+\message{ v\fileversion, \filedate (tvz,dg,hv)}
%
\edef\TheAtCode{\the\catcode`\@}
\catcode`\@=11
%
\pst@addfams{pst-tree}
-\NormalCoor
\newbox\pstree@rootbox
\newbox\pstree@box
\def\pstree@succrow{%
-\ifpstreeflip
- \def\pssubtree@vertical{\pssubtree@vertical@vflip}%
-\else
- \def\pssubtree@vertical{\pssubtree@vertical@v}%
-\fi
+ \ifpstreeflip\def\pssubtree@vertical{\pssubtree@vertical@vflip}%
+ \else\def\pssubtree@vertical{\pssubtree@vertical@v}\fi
+%
\def\pstree@node{\pstree@node@v}%
+%
\def\pssubtree@horizontal{\pssubtree@horizontal@v}}%
+%
\def\pssubtree@vertical@v{%
\vrule height \pst@dimc depth \pst@dimd width \z@
\ifnum\psnodecnt=\z@
@@ -59,8 +58,8 @@
\pstree@theleftprofile\pstree@theleftprofile
\fi
\box\pstree@box
- \global\advance\psnodecnt 1\relax%
-}%
+ \global\advance\psnodecnt 1\relax}%
+%
\def\pssubtree@vertical@vflip{%
\vrule height \pst@dimc depth \pst@dimd width \z@
\ifnum\psnodecnt=\z@
@@ -77,12 +76,12 @@
\pstree@therightprofile\pstree@therightprofile
\fi
\box\pstree@box
- \global\advance\psnodecnt 1\relax%
-}%
+ \global\advance\psnodecnt 1\relax}%
+%
\def\pstree@node@v{%
\edef\pstree@leftprofile{\psk@thistreenodesize\pst@dima,\pstree@stop,}%
\edef\pstree@rightprofile{\psk@thistreenodesize\pst@dimb,\pstree@stop,}%
- \pssubtree@vertical}%
+ \pssubtree@vertical}
%
\def\pssubtree@horizontal@v{%
\pstree@max\pstree@upprofile\pst@cntg
@@ -96,26 +95,25 @@
%
\def\pstree@tightfit#1#2{%
\pst@cnth=\z@
- \edef\treenext{\noexpand\pstree@@tightfit#1\noexpand\@nil#2\noexpand\@nil}%
- \treenext
+ \edef\next{\noexpand\pstree@@tightfit#1\noexpand\@nil#2\noexpand\@nil}%
+ \next
\advance\pst@cnth\psk@thistreesep\relax
\advance\pst@cnth\pstree@tspace\relax
\gdef\pstree@tspace{\z@}}
%
\def\pstree@@tightfit#1,#2\@nil#3,#4\@nil{%
\ifnum#1=\pstree@stop
- \let\treenext\relax
+ \let\next\relax
\else
- \ifnum#3=\pstree@stop
- \let\treenext\relax
+ \ifnum#3=\pstree@stop\let\next\relax
\else
\pst@cntg=#1
\advance\pst@cntg#3
- \ifnum\pst@cntg>\pst@cnth \pst@cnth=\pst@cntg\fi
- \def\treenext{\pstree@@tightfit#2\@nil#4\@nil}%
+ \ifnum\pst@cntg>\pst@cnth\pst@cnth=\pst@cntg\fi
+ \def\next{\pstree@@tightfit#2\@nil#4\@nil}%
\fi
\fi
- \treenext}
+ \next}
%
\def\pstree@loosefit#1#2{%
\pstree@max{#1}\pst@cnth
@@ -145,35 +143,34 @@
%
\def\pstree@zip#1#2#3{%
\def\pst@tempg{}%
- \edef\treenext{\noexpand\pstree@@zip#1\noexpand\@nil#2\noexpand\@nil}%
- \treenext
+ \edef\next{\noexpand\pstree@@zip#1\noexpand\@nil#2\noexpand\@nil}%
+ \next
\global\let#3\pst@tempg}
%
\def\pstree@@zip#1,#2\@nil#3,#4\@nil{%
\ifnum#1=\pstree@stop
\edef\pst@tempg{\pst@tempg#3,#4}%
- \let\treenext\relax
+ \let\next\relax
\else
\ifnum#3=\pstree@stop
\pst@cntg=#1
\advance\pst@cntg-\pst@cnth
\edef\pst@tempg{\pst@tempg\the\pst@cntg,}%
- \def\treenext{\pstree@@zip#2\@nil\pstree@stop,\@nil}%
+ \def\next{\pstree@@zip#2\@nil\pstree@stop,\@nil}%
\else
\edef\pst@tempg{\pst@tempg#3,}%
- \def\treenext{\pstree@@zip#2\@nil#4\@nil}%
+ \def\next{\pstree@@zip#2\@nil#4\@nil}%
\fi
\fi
- \treenext}
+ \next}
%
\def\pstree@max#1#2{%
\pst@cntg=\z@
- \expandafter\pstree@@max#1%
- #2=\pst@cntg}%
+ \expandafter\pstree@@max#1#2=\pst@cntg}%
%
\def\pstree@@max#1,{%
- \ifnum#1=\pstree@stop \else
- \ifnum#1>\pst@cntg \pst@cntg=#1\fi
+ \ifnum#1=\pstree@stop\else
+ \ifnum#1>\pst@cntg \pst@cntg=#1 \fi
\expandafter\pstree@@max
\fi}
%
@@ -183,7 +180,7 @@
\xdef#1{\pst@tempg\pstree@stop,}}
%
\def\pstree@@add#1,{%
- \ifnum#1=\pstree@stop \else
+ \ifnum#1=\pstree@stop\else
\pst@cnth=#1
\advance\pst@cnth\pst@cntg
\xdef\pst@tempg{\pst@tempg\the\pst@cnth,}%
@@ -210,7 +207,66 @@
\def\pstree@ii{%
\ifnum\pstreelevel=\z@
\let\pstree@savedshortput\pst@shortput
- \psset@shortput{tab}%
+ \psset{shortput=tab}%
+ \else
+ \pst@@killglue
+ \fi
+ \begingroup
+ \begingroup
+ \def\pstree@node{%
+ \xdef\pstree@next{%
+ \noexpand\@psttrue
+ \noexpand\def\noexpand\pst@tempa{\number\pst@dima}%
+ \noexpand\def\noexpand\pst@tempb{\number\pst@dimb}%
+ \noexpand\def\noexpand\pst@tempc{\number\pst@dimc}%
+ \noexpand\def\noexpand\pst@tempd{\number\pst@dimd}}%
+ \box\pstree@box}%
+ \def\pssubtree@horizontal{\pssubtree@horizontal@o}%
+ \def\pssubtree@vertical{\pssubtree@vertical@o}%
+ \global\let\pstree@next\relax
+ \pst@makebox\pstree@iii}
+%
+\def\pstree@iii{%
+ \global\setbox\pst@boxg=\box\pst@hbox
+ \endgroup
+ \setbox\pstree@rootbox=\box\pst@boxg
+ \@pstfalse
+ \pstree@next
+ \if@pst
+ \ifdim\wd\pstree@rootbox=\z@\else
+ \@pstrickserr{Extraneous space in root node}\@ehpa
+ \typeout{===>\the\wd\pst@hbox (rootbox)}
+ \wd\pstree@rootbox=\z@
+ \fi
+ \else
+ \@pstrickserr{Missing or bad root node
+ (level \the\pstreelevel, node \the\psnodecnt)}\@ehpa
+ \def\pstree@next{%
+ \def\pst@tempa{0}%
+ \def\pst@tempb{0}%
+ \def\pst@tempc{0}%
+ \def\pst@tempd{0}}%
+ \wd\pstree@rootbox=\z@
+ \fi
+ \pstree@savevalues
+ \begingroup
+ \pstree@initsuccvalues
+ \pstree@setlevelpar
+ \pstree@do}
+%
+\def\pstree{\def\pst@par{}\pst@object{pstree}}
+\def\pstree@i{\def\pstree@makebox{\pst@@makebox}\pstree@ii}
+%
+\def\psTree{\def\pst@par{}\pst@object{psTree}}
+\def\psTree@i{\def\pstree@makebox{\pst@makelongbox}\pstree@ii}
+% hv --begin 1.00 2007-01-03 make it LaTeX-compatible
+%\def\endpsTree{\pst@endlongbox\ignorespaces}
+\def\endpsTree{\pst@endlongbox\csname ignorespacesafterend\endcsname}
+% hv --end
+\def\pstree@ii{%
+ \ifnum\pstreelevel=\z@
+ \let\pstree@savedshortput\pst@shortput
+ \psset{shortput=tab}%
\else
\pst@@killglue
\fi
@@ -256,6 +312,7 @@
\pstree@initsuccvalues
\pstree@setlevelpar
\pstree@do}
+
%
\def\pstree@setlevelpar{%
\advance\pstreelevel1
@@ -265,18 +322,11 @@
\let\psk@thistreenodesize\relax
\csname pstreehook\romannumeral\pstreelevel\endcsname
\use@par
- \ifx\psk@thistreesep\relax
- \let\psk@thistreesep\psk@treesep
- \fi
- \ifx\psk@thistreenodesize\relax
- \let\psk@thistreenodesize\psk@treenodesize
- \fi
- \ifx\psk@thistreefit\relax
- \let\psk@thistreefit\psk@treefit
- \fi
- \ifx\psk@thislevelsep\relax
- \let\psk@thislevelsep\psk@levelsep
- \let\psk@thislevelsepmode\psk@levelsepmode
+ \ifx\psk@thistreesep\relax \let\psk@thistreesep\psk@treesep\fi
+ \ifx\psk@thistreenodesize\relax \let\psk@thistreenodesize\psk@treenodesize\fi
+ \ifx\psk@thistreefit\relax \let\psk@thistreefit\psk@treefit\fi
+ \ifx\psk@thislevelsep\relax \let\psk@thislevelsep\psk@levelsep
+ \let\psk@thislevelsepmode\psk@levelsepmode
\fi
\ifnum\psk@treemode=\pstree@predmode\else
\global\advance\pstreecnt1
@@ -289,11 +339,7 @@
\advance\pst@dimg\pst@cntg sp
\edef\psk@thislevelsep{\number\pst@dimg sp}%
\fi
- \ifnum\psk@treemode>1
- \def\pst@tposflip{1 sub neg }%
- \else
- \def\pst@tposflip{}%
- \fi
+ \ifnum\psk@treemode>1 \def\pst@tposflip{1 sub neg }\else\def\pst@tposflip{}\fi
\ifx\pstree@bboxadjust\@empty\else
\xdef\pstree@treebboxadjust{%
\pstree@bboxadjust
@@ -305,164 +351,157 @@
\def\pstree@predmode{-1}
\def\pstree@savevalues{%
\edef\pstree@restorevalues{%
- \noexpand\gdef\noexpand\pstree@theleftprofile{\pstree@theleftprofile}%
- \noexpand\gdef\noexpand\pstree@therightprofile{\pstree@therightprofile}%
- \noexpand\gdef\noexpand\pstree@theupprofile{\pstree@theupprofile}%
- \noexpand\gdef\noexpand\pstree@thedownprofile{\pstree@thedownprofile}%
- \noexpand\gdef\noexpand\pstree@tspace{\pstree@tspace}%
- \noexpand\gdef\noexpand\pssucc{\pssucc}%
- \global\psnodecnt=\the\psnodecnt\relax
- \global\pstree@cnt=\the\pstree@cnt\relax}%
+ \noexpand\gdef\noexpand\pstree@theleftprofile{\pstree@theleftprofile}%
+ \noexpand\gdef\noexpand\pstree@therightprofile{\pstree@therightprofile}%
+ \noexpand\gdef\noexpand\pstree@theupprofile{\pstree@theupprofile}%
+ \noexpand\gdef\noexpand\pstree@thedownprofile{\pstree@thedownprofile}%
+ \noexpand\gdef\noexpand\pstree@tspace{\pstree@tspace}%
+ \noexpand\gdef\noexpand\pssucc{\pssucc}%
+ \global\psnodecnt=\the\psnodecnt\relax
+ \global\pstree@cnt=\the\pstree@cnt\relax}%
\let\pstree@savebboxadjust\pstree@treebboxadjust}
-%
-\def\pstree@initsuccvalues{%
- \def\pstree@therightprofile{\pstree@stop,}%
- \let\pstree@theleftprofile\pstree@therightprofile
- \let\pstree@theupprofile\pstree@therightprofile
- \let\pstree@thedownprofile\pstree@therightprofile
- \psnodecnt=\z@
- \pstree@cnt\z@
- \gdef\pstree@tspace{\z@}%
- \let\pspred\pssucc}
-%
-\def\pssucc{T}
-\pstree@initsuccvalues
-\def\pstree@down{%
- \pstree@succrow
- \pstree@makebox{\pstree@vertical{\lower}}}
-\def\pstree@up{%
- \pstree@succrow
- \pstree@makebox{\pstree@vertical{\raise}}}
-\def\pstree@levelsepadjust#1#2{%
+ \def\pstree@initsuccvalues{%
+ \def\pstree@therightprofile{\pstree@stop,}%
+ \let\pstree@theleftprofile\pstree@therightprofile
+ \let\pstree@theupprofile\pstree@therightprofile
+ \let\pstree@thedownprofile\pstree@therightprofile
+ \psnodecnt=\z@
+ \pstree@cnt\z@
+ \gdef\pstree@tspace{\z@}%
+ \let\pspred\pssucc}
+ \def\pssucc{T}
+ \pstree@initsuccvalues
+ \def\pstree@down{%
+ \pstree@succrow
+ \pstree@makebox{\pstree@vertical{\lower}}}
+ \def\pstree@up{%
+ \pstree@succrow
+ \pstree@makebox{\pstree@vertical{\raise}}}
+ \def\pstree@levelsepadjust#1#2{%
% DG/SR modification begin - May 14, 1997 - Patch 1
% Problem with levelsep=*...
%\pst@cntg=0\@nameuse{pstree@levelsepadjust-#1}%
-\pst@cntg=0\@nameuse{pstree@levelsepadjust-#1}
+ \pst@cntg=0\@nameuse{pstree@levelsepadjust-#1}
% DG/SR modification end
-\ifnum#2>\pst@cntg
-\expandafter\xdef\csname pstree@levelsepadjust-#1\endcsname
-{#2}%
-\fi}
+ \ifnum#2>\pst@cntg
+ \expandafter\xdef\csname pstree@levelsepadjust-#1\endcsname{#2}%
+ \fi}
% DG/SR modification begin - October 28, 1999 - Patch 5 - For plain TeX
-\ifx\@undefined\@auxout\newwrite\@auxout\fi
+ \ifx\@undefined\@auxout\newwrite\@auxout\fi
% DG/SR modification end
-\def\pstree@initlevelsepadjust{%
-\@ifundefined{@latexerr}{%
-\immediate\openin1 \jobname.pst
-\ifeof1 \else
-\input \jobname.pst
-\fi
-\immediate\closein1
-\csname newwrite\endcsname\pstree@auxout
-\immediate\openout\pstree@auxout \jobname.pst }%
-{\let\pstree@auxout\@auxout}%
-\global\let\pstree@initlevelsepadjust\relax}
-\newcount\pstree@stop
-\pstree@stop=-987654321
-\def\pstree@vertical#1{%
-\pst@cntg=\ifpstreeflip-\fi\wd\pst@hbox
-\divide\pst@cntg 2
-\pstree@add\pstree@theleftprofile
-\pstree@add\pstree@therightprofile
-\pst@dimg=\psk@thislevelsep\relax
-\ifx\psk@thislevelsepmode\relax
-\pstree@vertlevelsepadjust{#1}%
-\fi
-\global\setbox\pstree@box=\hbox{%
-\vrule height \pst@tempc sp depth \pst@tempd sp width \z@
-\unhbox\pstree@rootbox
-#1\pst@dimg\hbox to\z@{\hss\unhbox\pst@hbox\hss}}%
-\if@skiplevel
-\skiplevel@vertical
-\else
-\endgroup
-\fi
-\edef\pstree@leftprofile{\pst@tempa,\pstree@theleftprofile}%
-\edef\pstree@rightprofile{\pst@tempb,\pstree@therightprofile}%
-\pst@dimc=\ht\pstree@box
-\pst@dimd=\dp\pstree@box
-\ifpsshowbbox
-\pstree@max\pstree@leftprofile\pst@cntg
-\pst@dima=\pst@cntg sp
-\pstree@max\pstree@rightprofile\pst@cntg
-\pst@dimb=\pst@cntg sp
-\pstree@showbbox
-\fi
-\dp\pstree@box=\z@
-\ht\pstree@box=\z@
-\pstree@restorevalues
-\pssubtree@vertical
-\global\let\pstree@treebboxadjust\pstree@savebboxadjust
-\endgroup
-\ifnum\pstreelevel>\z@\expandafter\ignorespaces\fi}
+ \def\pstree@initlevelsepadjust{%
+ \@ifundefined{@latexerr}{%
+ \immediate\openin1 \jobname.pst
+ \ifeof1 \else\input \jobname.pst\fi
+ \immediate\closein1
+ \csname newwrite\endcsname\pstree@auxout
+ \immediate\openout\pstree@auxout \jobname.pst }{\let\pstree@auxout\@auxout}%
+ \global\let\pstree@initlevelsepadjust\relax}
+ \newcount\pstree@stop
+ \pstree@stop=-987654321
+ \def\pstree@vertical#1{%
+ \pst@cntg=\ifpstreeflip-\fi\wd\pst@hbox
+ \divide\pst@cntg 2
+ \pstree@add\pstree@theleftprofile
+ \pstree@add\pstree@therightprofile
+ \pst@dimg=\psk@thislevelsep\relax
+ \ifx\psk@thislevelsepmode\relax \pstree@vertlevelsepadjust{#1}\fi
+ \global\setbox\pstree@box=\hbox{%
+ \vrule height \pst@tempc sp depth \pst@tempd sp width \z@
+ \unhbox\pstree@rootbox
+ #1\pst@dimg\hbox to\z@{\hss\unhbox\pst@hbox\hss}}%
+ \if@skiplevel\skiplevel@vertical\else\endgroup\fi
+ \edef\pstree@leftprofile{\pst@tempa,\pstree@theleftprofile}%
+ \edef\pstree@rightprofile{\pst@tempb,\pstree@therightprofile}%
+ \pst@dimc=\ht\pstree@box
+ \pst@dimd=\dp\pstree@box
+ \ifpsshowbbox
+ \pstree@max\pstree@leftprofile\pst@cntg
+ \pst@dima=\pst@cntg sp
+ \pstree@max\pstree@rightprofile\pst@cntg
+ \pst@dimb=\pst@cntg sp
+ \pstree@showbbox
+ \fi
+ \dp\pstree@box=\z@
+ \ht\pstree@box=\z@
+ \pstree@restorevalues
+ \pssubtree@vertical
+ \global\let\pstree@treebboxadjust\pstree@savebboxadjust
+ \endgroup
+ \ifnum\pstreelevel>\z@\expandafter\ignorespaces\fi}
+%
\def\pstree@vertlevelsepadjust#1{%
-\ifx\if@filesw\iffalse\else
-\ifx#1\lower
-\pst@dimh=\pst@tempd sp
-\advance\pst@dimh\ht\pst@hbox
-\else
-\pst@dimh=\pst@tempc sp
-\advance\pst@dimh\dp\pst@hbox
-\fi
-\immediate\write\@auxout{%
-\string\pstree@levelsepadjust
-{\pstree@thetree-\the\pstreelevel}{\number\pst@dimh}}%
-\fi}
+ \ifx\if@filesw\iffalse\else
+ \ifx#1\lower
+ \pst@dimh=\pst@tempd sp
+ \advance\pst@dimh\ht\pst@hbox
+ \else
+ \pst@dimh=\pst@tempc sp
+ \advance\pst@dimh\dp\pst@hbox
+ \fi
+ \immediate\write\@auxout{%
+ \string\pstree@levelsepadjust{\pstree@thetree-\the\pstreelevel}{\number\pst@dimh}}%
+ \fi}
+%
\def\pstree@succcolumn{%
-\def\pssubtree@vertical{\pssubtree@vertical@h}%
-\def\pssubtree@horizontal{\pssubtree@horizontal@h}%
-\def\pstree@node{\pstree@node@h}}%
-\def\pssubtree@horizontal@h{%
-\xdef\pstree@theleftprofile{\number\pst@dima,\pstree@theleftprofile}%
-\xdef\pstree@therightprofile{\number\pst@dimb,\pstree@therightprofile}%
-\ifnum\psnodecnt=\z@
-\global\let\pstree@theupprofile\pstree@upprofile
-\global\let\pstree@thedownprofile\pstree@downprofile
-\box\pstree@box
-\else
-\ifpstreeflip
-\pssubtree@horizontal@@hflip
-\else
-\pssubtree@horizontal@@h
-\fi
-\fi
-\global\advance\psnodecnt 1\relax}
+ \def\pssubtree@vertical{\pssubtree@vertical@h}%
+ \def\pssubtree@horizontal{\pssubtree@horizontal@h}%
+ \def\pstree@node{\pstree@node@h}}%
+%
+ \def\pssubtree@horizontal@h{%
+ \xdef\pstree@theleftprofile{\number\pst@dima,\pstree@theleftprofile}%
+ \xdef\pstree@therightprofile{\number\pst@dimb,\pstree@therightprofile}%
+ \ifnum\psnodecnt=\z@
+ \global\let\pstree@theupprofile\pstree@upprofile
+ \global\let\pstree@thedownprofile\pstree@downprofile
+ \box\pstree@box
+ \else
+ \ifpstreeflip\pssubtree@horizontal@@hflip\else\pssubtree@horizontal@@h\fi
+ \fi
+ \global\advance\psnodecnt 1\relax}
+%
\def\pssubtree@horizontal@@h{%
-\psk@thistreefit\pstree@thedownprofile\pstree@upprofile
-\global\advance\pstree@cnt\pst@cnth
-\lower\the\pstree@cnt sp\box\pstree@box
-\pstree@zip\pstree@thedownprofile\pstree@downprofile\pstree@thedownprofile
-\pst@cnth=\pstree@cnt
-\pstree@zip\pstree@upprofile\pstree@theupprofile\pstree@theupprofile}
+ \psk@thistreefit\pstree@thedownprofile\pstree@upprofile
+ \global\advance\pstree@cnt\pst@cnth
+ \lower\the\pstree@cnt sp\box\pstree@box
+ \pstree@zip\pstree@thedownprofile\pstree@downprofile\pstree@thedownprofile
+ \pst@cnth=\pstree@cnt
+ \pstree@zip\pstree@upprofile\pstree@theupprofile\pstree@theupprofile}
+%
\def\pssubtree@horizontal@@hflip{%
-\psk@thistreefit\pstree@theupprofile\pstree@downprofile
-\global\advance\pstree@cnt\pst@cnth
-\raise\the\pstree@cnt sp\box\pstree@box
-\pstree@zip\pstree@theupprofile\pstree@upprofile\pstree@theupprofile
-\pst@cnth=\pstree@cnt
-\pstree@zip\pstree@downprofile\pstree@thedownprofile\pstree@thedownprofile}
+ \psk@thistreefit\pstree@theupprofile\pstree@downprofile
+ \global\advance\pstree@cnt\pst@cnth
+ \raise\the\pstree@cnt sp\box\pstree@box
+ \pstree@zip\pstree@theupprofile\pstree@upprofile\pstree@theupprofile
+ \pst@cnth=\pstree@cnt
+ \pstree@zip\pstree@downprofile\pstree@thedownprofile\pstree@thedownprofile}
+%
\def\pstree@node@h{%
-\edef\pstree@upprofile{\psk@thistreenodesize\pst@dimc,\pstree@stop,}%
-\edef\pstree@downprofile{\psk@thistreenodesize\pst@dimd,\pstree@stop,}%
-\pssubtree@horizontal@h}%
+ \edef\pstree@upprofile{\psk@thistreenodesize\pst@dimc,\pstree@stop,}%
+ \edef\pstree@downprofile{\psk@thistreenodesize\pst@dimd,\pstree@stop,}%
+ \pssubtree@horizontal@h}%
+%
\def\pssubtree@vertical@h{%
-\pstree@max\pstree@leftprofile\pst@cntg
-\pst@dima=\pst@cntg sp
-\pstree@max\pstree@rightprofile\pst@cntg
-\pst@dimb=\pst@cntg sp
-\pstree@treebboxadjust
-\edef\pstree@upprofile{\number\pst@dimc,\pstree@stop,}%
-\edef\pstree@downprofile{\number\pst@dimd,\pstree@stop,}%
-\pssubtree@horizontal@h}%
+ \pstree@max\pstree@leftprofile\pst@cntg
+ \pst@dima=\pst@cntg sp
+ \pstree@max\pstree@rightprofile\pst@cntg
+ \pst@dimb=\pst@cntg sp
+ \pstree@treebboxadjust
+ \edef\pstree@upprofile{\number\pst@dimc,\pstree@stop,}%
+ \edef\pstree@downprofile{\number\pst@dimd,\pstree@stop,}%
+ \pssubtree@horizontal@h}%
+%
\newif\if@psrighttree
\def\pstree@right{%
-\@psrighttreetrue
-\pstree@succcolumn
-\pstree@makebox\pstree@horizontal}
+ \@psrighttreetrue
+ \pstree@succcolumn
+ \pstree@makebox\pstree@horizontal}
+%
\def\pstree@left{%
-\@psrighttreefalse
-\pstree@succcolumn
-\pstree@makebox\pstree@horizontal}
+ \@psrighttreefalse
+ \pstree@succcolumn
+ \pstree@makebox\pstree@horizontal}
+%
\def\pstree@horizontal{%
\ifdim\wd\pst@hbox=\z@\else
\@pstrickserr{Extraneous space in tree successors}\@ehpa
@@ -507,33 +546,33 @@
\wd\pstree@box=\z@
\ifpsshowbbox
\pstree@max\pstree@upprofile\pst@cntg
-\pst@dimc=\pst@cntg sp
-\pstree@max\pstree@downprofile\pst@cntg
-\pst@dimd=\pst@cntg sp
-\pstree@showbbox
-\fi
-\pstree@restorevalues
-\pssubtree@horizontal
-\endgroup
-\ifnum\pstreelevel>\z@\expandafter\ignorespaces\fi}
+ \pst@dimc=\pst@cntg sp
+ \pstree@max\pstree@downprofile\pst@cntg
+ \pst@dimd=\pst@cntg sp
+ \pstree@showbbox
+ \fi
+ \pstree@restorevalues
+ \pssubtree@horizontal
+ \endgroup
+ \ifnum\pstreelevel>\z@\expandafter\ignorespaces\fi}
+%
% DG/SR modification begin - Sep. 24, 1997 - Patch 2
%\def\pstree@horizlevelsepadjust#1{%
\def\pstree@horizlevelsepadjust{%
% DG/SR modification end
-\ifx\if@filesw\iffalse\else
-\if@psrighttree
-\pst@dimh=\pst@tempb sp
-\pstree@max\pstree@theleftprofile\pst@cntg
-\advance\pst@dimh\pst@cntg sp
-\else
-\pst@dimh=\pst@tempa sp
-\pstree@max\pstree@therightprofile\pst@cntg
-\advance\pst@dimh\pst@cntg sp
-\fi
-\immediate\write\@auxout{%
-\string\pstree@levelsepadjust
-{\pstree@thetree-\the\pstreelevel}{\number\pst@dimh}}%
-\fi}
+ \ifx\if@filesw\iffalse\else
+ \if@psrighttree
+ \pst@dimh=\pst@tempb sp
+ \pstree@max\pstree@theleftprofile\pst@cntg
+ \advance\pst@dimh\pst@cntg sp
+ \else
+ \pst@dimh=\pst@tempa sp
+ \pstree@max\pstree@therightprofile\pst@cntg
+ \advance\pst@dimh\pst@cntg sp
+ \fi
+ \immediate\write\@auxout{%
+ \string\pstree@levelsepadjust{\pstree@thetree-\the\pstreelevel}{\number\pst@dimh}}%
+ \fi}
%
\define@key[psset]{pst-tree}{treemode}[0]{%
\pst@cntg=\ifx#1U\@empty2\else\ifx#1R\@empty1\else\ifx#1L\@empty3\else0\fi\fi\fi
@@ -602,35 +641,39 @@
\psset[pst-tree]{treeflip=false}
%
\def\pstree@node@o{%
-\leavevmode
-\hbox{%
-\vrule height \pst@dimc depth \pst@dimd width \z@
-\kern\pst@dima
-\box\pstree@box
-\kern\pst@dimb}}
+ \leavevmode
+ \hbox{%
+ \vrule height \pst@dimc depth \pst@dimd width \z@
+ \kern\pst@dima
+ \box\pstree@box
+ \kern\pst@dimb}}
+%
\def\pssubtree@vertical@o{%
-\pstree@max\pstree@leftprofile\pst@cntg
-\pst@dima=\pst@cntg sp
-\pstree@max\pstree@rightprofile\pst@cntg
-\pst@dimb=\pst@cntg sp
-\pstree@treebboxadjust
-\pstree@node}
+ \pstree@max\pstree@leftprofile\pst@cntg
+ \pst@dima=\pst@cntg sp
+ \pstree@max\pstree@rightprofile\pst@cntg
+ \pst@dimb=\pst@cntg sp
+ \pstree@treebboxadjust
+ \pstree@node}
+%
\def\pssubtree@horizontal@o{%
-\pstree@max\pstree@upprofile\pst@cntg
-\pst@dimc=\pst@cntg sp
-\pstree@max\pstree@downprofile\pst@cntg
-\pst@dimd=\pst@cntg sp
-\pstree@treebboxadjust
-\pstree@node}
+ \pstree@max\pstree@upprofile\pst@cntg
+ \pst@dimc=\pst@cntg sp
+ \pstree@max\pstree@downprofile\pst@cntg
+ \pst@dimd=\pst@cntg sp
+ \pstree@treebboxadjust
+ \pstree@node}
+%
\def\pstree@outer{%
-\def\pstree@node{\pstree@node@o}%
-\def\pssubtree@vertical{\pssubtree@vertical@o}%
-\def\pssubtree@horizontal{\pssubtree@horizontal@o}%
-\pstreelevel=\z@
-\def\pstree@predmode{-1}%
-\def\pst@tposflip{}%
-\let\pst@thisbox\relax
-\let\pst@shortput\pstree@savedshortput}
+ \def\pstree@node{\pstree@node@o}%
+ \def\pssubtree@vertical{\pssubtree@vertical@o}%
+ \def\pssubtree@horizontal{\pssubtree@horizontal@o}%
+ \pstreelevel=\z@
+ \def\pstree@predmode{-1}%
+ \def\pst@tposflip{}%
+ \let\pst@thisbox\relax
+ \let\pst@shortput\pstree@savedshortput}
+%
\let\pstree@savedshortput\ignorespaces
\pstree@outer
%
@@ -638,10 +681,10 @@
\psset[pst-tree]{showbbox=false}
%
\def\pstree@showbbox{%
-\setbox\pstree@box=\hbox{%
-\psframe[linewidth=0,linecolor=black,linestyle=solid,fillstyle=none]%
-(-\pst@dima,-\pst@dimd)(\pst@dimb,\pst@dimc)%
-\box\pstree@box}}%
+ \setbox\pstree@box=\hbox{%
+ \psframe[linewidth=0,linecolor=black,linestyle=solid,fillstyle=none]%
+ (-\pst@dima,-\pst@dimd)(\pst@dimb,\pst@dimc)%
+ \box\pstree@box}}%
%
\define@key[psset]{pst-tree}{edge}[\ncline]{%
\def\psedge{#1}%
@@ -650,36 +693,38 @@
%
\def\pspred{T}
\def\pstree@makenodebox{%
-\pst@@killglue
-\let\pst@thispsbox\pstree@outer
-\pst@makebox}
+ \pst@@killglue
+ \let\pst@thispsbox\pstree@outer
+ \pst@makebox}
+%
\def\begin@treenode{%
-\pst@@killglue
-\begingroup
-\use@par
-\global\let\pstree@edge\psedge
-\xdef\pssucc{\pspred-\the\psnodecnt}}
-\def\MakeShortTnput#1{%
-\def\end@treenode{\@ifnextchar#1{\tnput@}{\end@@treenode}}}
+ \pst@@killglue
+ \begingroup
+ \use@par
+ \global\let\pstree@edge\psedge
+ \xdef\pssucc{\pspred-\the\psnodecnt}}
+%
+\def\MakeShortTnput#1{\def\end@treenode{\@ifnextchar#1{\tnput@}{\end@@treenode}}}
\MakeShortTnput{~}
+%
\def\end@@treenode{%
-\pstree@bboxadjust
-\gdef\pstree@bboxadjust{}%
-\ifpsshowbbox\pstree@showbbox\fi
-\pstree@node
-\endgroup
-\ifnum\pstreelevel>\z@
-\pstree@edge{\pspred}{\pssucc}%
-\expandafter\pst@shortput
-\else
-\expandafter\ignorespaces
-\fi}
+ \pstree@bboxadjust
+ \gdef\pstree@bboxadjust{}%
+ \ifpsshowbbox\pstree@showbbox\fi
+ \pstree@node
+ \endgroup
+ \ifnum\pstreelevel>\z@
+ \pstree@edge{\pspred}{\pssucc}%
+ \expandafter\pst@shortput
+ \else
+ \expandafter\ignorespaces
+ \fi}
+%
\def\pstree@bboxadjust{}
\def\pstree@setbboxadjust#1#2{%
-\pssetlength\pst@dimg{#1}%
-\xdef\pstree@bboxadjust{%
-\pstree@bboxadjust
-#2\number\pst@dimg sp\relax}}
+ \pssetlength\pst@dimg{#1}%
+ \xdef\pstree@bboxadjust{%
+ \pstree@bboxadjust#2\number\pst@dimg sp\relax}}
%
\define@key[psset]{pst-tree}{bbl}{\pstree@setbboxadjust{#1}{\pst@dima=}}
\define@key[psset]{pst-tree}{bbr}{\pstree@setbboxadjust{#1}{\pst@dimb=}}
@@ -693,39 +738,43 @@
\let\pstree@treebboxadjust\relax
\def\Tn{\def\pst@par{}\pst@object{Tn}}
\def\Tn@i{%
-\pst@@killglue
-\global\let\pssucc\pspred
-\begingroup
-\pst@dima=\z@
-\pst@dimb=\z@
-\pst@dimc=\z@
-\pst@dimd=\z@
-\setbox\pstree@box=\hbox{}%%
-\pstree@node
-\endgroup
-\ignorespaces}
+ \pst@@killglue
+ \global\let\pssucc\pspred
+ \begingroup
+ \pst@dima=\z@
+ \pst@dimb=\z@
+ \pst@dimc=\z@
+ \pst@dimd=\z@
+ \setbox\pstree@box=\hbox{}%%
+ \pstree@node
+ \endgroup
+ \ignorespaces}
+%
\def\Tp{\def\pst@par{}\pst@object{Tp}}
\def\Tp@i{%
-\begin@treenode
-\pst@dima=\z@
-\pst@dimb=\z@
-\pst@dimc=\z@
-\pst@dimd=\z@
-\setbox\pstree@box=\hbox{%
-\pst@newnode{\pssucc}{10}{0 0 }{\tx@InitPnode}}%
-\end@treenode}
+ \begin@treenode
+ \pst@dima=\z@
+ \pst@dimb=\z@
+ \pst@dimc=\z@
+ \pst@dimd=\z@
+ \setbox\pstree@box=\hbox{%
+ \pst@newnode{\pssucc}{10}{0 0 }{\tx@InitPnode}}%
+ \end@treenode}
+%
\def\Tc{\def\pst@par{}\pst@object{Tc}}
\def\Tc@i#1{%
-\begin@treenode
-\pssetlength\pst@dima{#1}%
-\pst@dimb=\pst@dima
-\pst@dimc=\pst@dima
-\pst@dimd=\pst@dima
-\nodealignfalse
-\setbox\pstree@box=\hbox{\cnode@ii(\z@,\z@){#1}{\pssucc}}%
-\end@treenode}
+ \begin@treenode
+ \pssetlength\pst@dima{#1}%
+ \pst@dimb=\pst@dima
+ \pst@dimc=\pst@dima
+ \pst@dimd=\pst@dima
+ \nodealignfalse
+ \setbox\pstree@box=\hbox{\cnode@ii(\z@,\z@){#1}{\pssucc}}%
+ \end@treenode}
+%
\def\TC{\def\pst@par{}\pst@object{TC}}
\def\TC@i{\Tc@i{\psk@radius}}
+%
\def\Toval{\def\pst@par{}\pst@object{Toval}}
\def\Toval@i{\pstree@makenodebox{\Toval@ii\ovalnode@ii}}
\def\Toval@ii#1{%
@@ -752,8 +801,10 @@
%
\def\Tf{\def\pst@par{}\pst@object{Tf}}
\def\Tf@i{\Toval@ii{\fnode@ii()}}
+%
\def\Tdia{\def\pst@par{}\pst@object{Tdia}}
\def\Tdia@i{\pstree@makenodebox{\Toval@ii\dianode@ii}}
+%
\def\Ttri{\def\pst@par{}\pst@object{Ttri}}
\def\Ttri@i{\pstree@makenodebox{\Ttri@ii}}
\def\Ttri@ii{%
@@ -778,7 +829,7 @@
\def\Tr@ii#1{%
\begin@treenode
\def\pstree@nodehook{%
- \xdef\pstree@next{\pst@dima=\number\pst@dima sp\relax}}%
+ \xdef\pstree@next{\pst@dima=\number\pst@dima sp\relax}}%
\nodealigntrue
\setbox\pstree@box\hbox{#1\pssucc}%
\pstree@next
@@ -798,55 +849,55 @@
% DG modification end
\def\Tdot{\def\pst@par{}\pst@object{Tdot}}
\def\Tdot@i{%
-\begin@treenode
-\def\pstree@nodehook{\xdef\pstree@next{%
-\pst@dima=\number\pst@dima sp\relax
-\pst@dimc=\number\pst@dimb sp\relax}}%
-\nodealignfalse
-\setbox\pstree@box=\hbox{\dotnode@ii(\z@,\z@)\pssucc}%
-\pstree@next
-\pst@dimb=\pst@dima
-\pst@dimd=\pst@dimc
-\end@treenode}
+ \begin@treenode
+ \def\pstree@nodehook{\xdef\pstree@next{%
+ \pst@dima=\number\pst@dima sp\relax
+ \pst@dimc=\number\pst@dimb sp\relax}}%
+ \nodealignfalse
+ \setbox\pstree@box=\hbox{\dotnode@ii(\z@,\z@)\pssucc}%
+ \pstree@next
+ \pst@dimb=\pst@dima
+ \pst@dimd=\pst@dimc
+ \end@treenode}
%
\define@key[psset]{pst-tree}{fansize}[1cm]{\pst@@getlength{#1}\psk@fansize}
\psset[pst-tree]{fansize=1cm}
-%
\def\Tfan{\def\pst@par{}\pst@object{Tfan}}
\def\Tfan@i{%
-\addto@par{edge=none}%
-\begin@treenode
-\solid@star
-\pst@dimb=\psk@fansize
-\pst@dimd=\pslinewidth
-\advance\pst@dimb-\pst@dimd
-\divide\pst@dimb 2
-\divide\pst@dimd 2
-\ifodd\psk@treemode\relax
-\pst@dima=\pst@dimd
-\pst@dimc=\pst@dimb
-\else
-\pst@dima=\pst@dimb
-\pst@dimc=\pst@dimd
-\fi
-\setbox\pstree@box=\hbox{%
-\pst@newnode{\pssucc}{16}{}{%
-/Y 0 def
-/X 0 def
-/l \pst@number\pst@dima def
-/r l def
-/u \pst@number\pst@dimc def
-/d u def
-/NodePos { \tx@GetRnodePos } def}%
-\def\pst@linetype{1}%
-\nc@object{Closed}{\pspred}{\pssucc}{.5}{%
-tx@Dict begin \psline@iii pop end
-/w \pst@number\pst@dimb CLW 2 div sub def
-/m \ifodd\psk@treemode false \else true \fi def
-\tx@Tfan}}%
-\pst@dimb=\pst@dima
-\pst@dimd=\pst@dimc
-\end@treenode}
+ \addto@par{edge=none}%
+ \begin@treenode
+ \solid@star
+ \pst@dimb=\psk@fansize
+ \pst@dimd=\pslinewidth
+ \advance\pst@dimb-\pst@dimd
+ \divide\pst@dimb 2
+ \divide\pst@dimd 2
+ \ifodd\psk@treemode\relax
+ \pst@dima=\pst@dimd
+ \pst@dimc=\pst@dimb
+ \else
+ \pst@dima=\pst@dimb
+ \pst@dimc=\pst@dimd
+ \fi
+ \setbox\pstree@box=\hbox{%
+ \pst@newnode{\pssucc}{16}{}{%
+ /Y 0 def
+ /X 0 def
+ /l \pst@number\pst@dima def
+ /r l def
+ /u \pst@number\pst@dimc def
+ /d u def
+ /NodePos { \tx@GetRnodePos } def}%
+ \def\pst@linetype{1}%
+ \nc@object{Closed}{\pspred}{\pssucc}{.5}{%
+ tx@Dict begin \psline@iii pop end
+ /w \pst@number\pst@dimb CLW 2 div sub def
+ /m \ifodd\psk@treemode false \else true \fi def
+ \tx@Tfan}}%
+ \pst@dimb=\pst@dima
+ \pst@dimd=\pst@dimc
+ \end@treenode}
+%
\define@key[psset]{pst-tree}{tnsep}[{}]{%
\def\pst@tempg{#1}%
\ifx\pst@tempg\@empty
@@ -880,108 +931,99 @@ tx@Dict begin \psline@iii pop end
\def\tnput@#1{\def\pst@par{}\pst@object{tnput}}
\def\tnput@i{\pstree@makenodebox{\tnput@ii}}
\def\tnput@ii{%
-\begingroup
-\use@par
-\xdef\treenext{%
-\if@star\noexpand\pst@starbox\fi
-\noexpand\def\noexpand\psk@thistndepth{\psk@tndepth}%
-\noexpand\def\noexpand\psk@thistnheight{\psk@tnheight}%
-\noexpand\def\noexpand\psk@thistnyref{\psk@tnyref}%
-\noexpand\def\noexpand\psk@thistnsep{\psk@tnsep}%
-\expandafter\noexpand\csname pstree@tnput@\psk@tnpos\endcsname}%
-\endgroup
-\treenext
-\end@treenode}
+ \begingroup
+ \use@par
+ \xdef\next{%
+ \if@star\noexpand\pst@starbox\fi
+ \noexpand\def\noexpand\psk@thistndepth{\psk@tndepth}%
+ \noexpand\def\noexpand\psk@thistnheight{\psk@tnheight}%
+ \noexpand\def\noexpand\psk@thistnyref{\psk@tnyref}%
+ \noexpand\def\noexpand\psk@thistnsep{\psk@tnsep}%
+ \expandafter\noexpand\csname pstree@tnput@\psk@tnpos\endcsname}%
+ \endgroup
+ \next
+ \end@treenode}
+%
\@namedef{pstree@tnput@b}{%
\pstree@tnput@@v\pst@dimd\ht\dp\lower\psk@thistnheight}
\@namedef{pstree@tnput@a}{%
\pstree@tnput@@v\pst@dimc\dp\ht\raise\psk@thistndepth}
+%
\def\pstree@tnput@@v#1#2#3#4#5{%
-\pst@dimh=\wd\pst@hbox
-\pst@dimg=\psk@href\pst@dimh
-\advance\pst@dimg\pst@dimh
-\divide\pst@dimg 2
-\advance\pst@dimh-\pst@dimg
-\ifdim\pst@dimg>\pst@dima
-\pst@dima=\pst@dimg
-\fi
-\ifdim\pst@dimh>\pst@dimb
-\pst@dimb=\pst@dimh
-\fi
-\pst@dimh=\psk@thistnsep\relax
-\ifdim\pst@dimh<\z@
-\pst@dimh=-\pst@dimh
-\else
-\advance\pst@dimh#1%
-\fi
-\pssetlength\dimen@{#5}%
-\ifdim\dimen@>#2\pst@hbox
-\advance\pst@dimh\dimen@\relax
-\else
-\advance\pst@dimh#2\pst@hbox
-\fi
-\setbox\pstree@box=\hbox{%
-\box\pstree@box
-#4\pst@dimh\hbox to\z@{\kern-\pst@dimg\unhbox\pst@hbox\hss}}%
-#1=#3\pstree@box
-\dp\pstree@box=\z@
-\ht\pstree@box=\z@}
+ \pst@dimh=\wd\pst@hbox
+ \pst@dimg=\psk@href\pst@dimh
+ \advance\pst@dimg\pst@dimh
+ \divide\pst@dimg 2
+ \advance\pst@dimh-\pst@dimg
+ \ifdim\pst@dimg>\pst@dima \pst@dima=\pst@dimg\fi
+ \ifdim\pst@dimh>\pst@dimb \pst@dimb=\pst@dimh\fi
+ \pst@dimh=\psk@thistnsep\relax
+ \ifdim\pst@dimh<\z@ \pst@dimh=-\pst@dimh
+ \else\advance\pst@dimh#1\fi
+ \pssetlength\dimen@{#5}%
+ \ifdim\dimen@>#2\pst@hbox
+ \advance\pst@dimh\dimen@\relax
+ \else
+ \advance\pst@dimh#2\pst@hbox
+ \fi
+ \setbox\pstree@box=\hbox{%
+ \box\pstree@box
+ #4\pst@dimh\hbox to\z@{\kern-\pst@dimg\unhbox\pst@hbox\hss}}%
+ #1=#3\pstree@box
+ \dp\pstree@box=\z@
+ \ht\pstree@box=\z@}
+%
\@namedef{pstree@tnput@l}{%
-\pstree@tnput@@h\pst@dima{%
-\hss
-\lower\pst@dimg\box\pst@hbox
-\kern\pst@dimh
-\box\pstree@box}}
+ \pstree@tnput@@h\pst@dima{%
+ \hss
+ \lower\pst@dimg\box\pst@hbox
+ \kern\pst@dimh
+ \box\pstree@box}}
+%
\@namedef{pstree@tnput@r}{%
-\pstree@tnput@@h\pst@dimb{%
-\box\pstree@box
-\kern\pst@dimh
-\lower\pst@dimg\box\pst@hbox
-\hss}}%
+ \pstree@tnput@@h\pst@dimb{%
+ \box\pstree@box
+ \kern\pst@dimh
+ \lower\pst@dimg\box\pst@hbox
+ \hss}}%
+%
\def\pstree@tnput@@h#1#2{%
-\ifx\psk@thistnyref\@empty
-\pssetlength\pst@dimg\psk@vref
-\else
-\pst@dimg=\ht\pst@hbox
-\advance\pst@dimg\dp\pst@hbox
-\pst@dimg=\psk@thistnyref\pst@dimg
-\advance\pst@dimg-\dp\pst@hbox
-\fi
-\pst@dimh=\psk@thistnsep\relax
-\ifdim\pst@dimh<\z@
-\pst@dimh=-\pst@dimh
-\else
-\advance\pst@dimh#1%
-\fi
-#1=\pst@dimh
-\advance#1\wd\pst@hbox
-\setbox\pstree@box=\hbox to\z@{#2}%
-\ifdim\ht\pstree@box>\pst@dimc
-\pst@dimc=\ht\pstree@box
-\fi
-\ifdim\dp\pstree@box>\pst@dimd
-\pst@dimd=\dp\pstree@box
-\fi
-\dp\pstree@box=\z@
-\ht\pstree@box=\z@}
+ \ifx\psk@thistnyref\@empty
+ \pssetlength\pst@dimg\psk@vref
+ \else
+ \pst@dimg=\ht\pst@hbox
+ \advance\pst@dimg\dp\pst@hbox
+ \pst@dimg=\psk@thistnyref\pst@dimg
+ \advance\pst@dimg-\dp\pst@hbox
+ \fi
+ \pst@dimh=\psk@thistnsep\relax
+ \ifdim\pst@dimh<\z@ \pst@dimh=-\pst@dimh\else\advance\pst@dimh#1\fi
+ #1=\pst@dimh
+ \advance#1\wd\pst@hbox
+ \setbox\pstree@box=\hbox to\z@{#2}%
+ \ifdim\ht\pstree@box>\pst@dimc \pst@dimc=\ht\pstree@box\fi
+ \ifdim\dp\pstree@box>\pst@dimd \pst@dimd=\dp\pstree@box\fi
+ \dp\pstree@box=\z@
+ \ht\pstree@box=\z@}
+%
\newif\if@skiplevel
\def\skiplevel{\def\pst@par{}\pst@object{skiplevel}}
\def\skiplevel@i{\def\pstree@makebox{\pst@@makebox}\skiplevel@ii}
\def\skiplevel@ii{%
-\pst@@killglue
-\begingroup
-\let\pssucc\pspred
-\def\pst@tempa{0}%
-\def\pst@tempb{0}%
-\def\pst@tempc{0}%
-\def\pst@tempd{0}%
-\setbox\pstree@rootbox=\hbox{}%
-\pstree@savevalues
-\begingroup
-\pstree@initsuccvalues
-\pstree@setlevelpar
-\@skipleveltrue
-\pstree@do}
+ \pst@@killglue
+ \begingroup
+ \let\pssucc\pspred
+ \def\pst@tempa{0}%
+ \def\pst@tempb{0}%
+ \def\pst@tempc{0}%
+ \def\pst@tempd{0}%
+ \setbox\pstree@rootbox=\hbox{}%
+ \pstree@savevalues
+ \begingroup
+ \pstree@initsuccvalues
+ \pstree@setlevelpar
+ \@skipleveltrue
+ \pstree@do}
% DG/SR modification begin - Aug. 31, 1999 - Patch 4
%\def\pstree@gettop#1{\expandafter\pstree@@gettop#1\@nil}
%\def\pstree@@gettop#1,#2\@nil{#1}
@@ -1004,6 +1046,7 @@ tx@Dict begin \psline@iii pop end
\noexpand\def\noexpand\pst@tempd{\number\pst@dimd}}%
\endgroup
\pstree@next}
+%
\def\skiplevel@vertical{%
% DG/SR modification begin - Aug. 31, 1999 - Patch 4
%\pst@dima=\pstree@gettop\pstree@theleftprofile sp
@@ -1022,6 +1065,7 @@ tx@Dict begin \psline@iii pop end
\noexpand\def\noexpand\pst@tempb{\number\pst@dimb}}%
\endgroup
\pstree@next}
+%
\def\skiplevels{\def\pst@par{}\pst@object{skiplevels}}
\def\skiplevels@i#1{%
\pst@@killglue
@@ -1040,9 +1084,8 @@ tx@Dict begin \psline@iii pop end
\expandafter\def\expandafter\endskiplevels\expandafter{%
\endskiplevels\endgroup\ignorespaces}
\ignorespaces}
-
+%
\catcode`\@=\TheAtCode\relax
-
\endinput
%%
%% END: pst-tree.tex