
\section Wie man komplexe B\"aume erstellt

\ftag{\the\secno}[incremental]%
\jTree\ hat einige Features, die es leicht machen, B\"aume schrittweise zu erstellen.
Das ist ein gro\ss\/er Vorteil bei komplexen B\"aumen, da die Software es einem nicht einfach macht, den genauen Ursprung eines Fehlers zu lokalisieren. Sehen wir uns z.B. den Baum an, der zur Illustrierung der Eigenschaften von |qtree| (ein beliebtes Makropaket zum Zeichnen von B\"aumen, verf\"ugbar auf CTAN) verwendet wurde.

\ex
\def\GO#1#2#3{$\rm GO\bigl({#1},[_{Path}\,
   FROM({#2}),TO({#3})]\bigr)$}%
\jtree[xunit=3em,yunit=1em]
\defstuff[a]{\multiline
   \it The cup slid from John to Mary\cr
   \GO{\bf cup}{\bf John}{\bf Mary}\cr
   IP\endmultiline}
\defstuff[b]{\multiline
   \it The cup\cr
   \bf cup\cr
   NP\endmultiline}
\defstuff[c]{\multiline
   \it slid from John to Mary\cr
   \GO{\mit x}{\bf John}{\bf Mary}\cr
   IP\endmultiline}
\defstuff[d]{\multiline
   \it The\cr
   $\perp$\cr
  \quad N$\rm _{SPEC}$\endmultiline}
\defstuff[e]{\multiline
   \it cup\cr
   \bf cup\cr
   N\endmultiline}
\def\Fracture{<vert>{\omit\psframebox[boxsep=.4ex]
   {Fracture$\vphantom j$}}}%
\! = {\stuff[a]}
   \Fracture
   :\jtbig{\stuff[b]}!a \jtbig{\stuff[c]}
   \Fracture
   :{$\vdots$} {$\vdots$}.
\!a = \Fracture
   :{\stuff[d]} {\stuff[e]}.
\endjtree
\xe
\ftagex[qtree]

Wir fangen wie \"ublich mit dem rechten teil des Baumes an und f\"ugen 
Verbindungs-\hfil punkte f\"ur das komplexe Material hinzu, das auf der linken Seite gebraucht wird. \"Ahnlich den Adjunktionspunkten erlaubt es \jTree\/, Labels zu verwenden, um sp\"ater Sachen einzuf\"ugen. Die Makros |\stuff| und |\defstuff| sind in \pstjtree\/ definiert und werden wie unten benutzt:\index*{+stuff}\index*{+defstuff}

\excentered
\CLboxed
\jtree
\def\fracture{\psframebox{Fracture}}
\! = {\stuff[a]}
   <vert>{\fracture}
   :\jtbig{\stuff[b]}!a
      \jtbig{\stuff[c]}
   <vert>{\fracture}
   :{$\vdots$} {$\vdots$}.
\endjtree
|endCLboxed
\hfil
\jtree
\def\fracture{\psframebox{Fracture}}
\! = {\stuff[a]}
   <vert>{\fracture}
   :\jtbig{\stuff[b]}!a \jtbig{\stuff[c]}
   <vert>{\fracture}
   :{$\vdots$} {$\vdots$}.
\endjtree
\xe

Wir vervollst\"andigen dann die Struktur an den markierten Stellen, f\"ugen das fehlende ein und nehmen alle anderen \"Anderungen vor die n\"otig sind um einen gut aussehenden Baum zu erhalten. Einige Sachen sind schon offensichtlich: da ist zu viel Platz unter ``Fracture'' in der Box; die \"Aste des Baumes treffen nicht auf die ``fracture box'' und der Baum muss entlang der x-achse gestreckt werden. Wir warten noch mit dem Auff\"ullen der fehlenden Sachen bis zum Ende und konzentrieren uns auf die Problembehebung und darauf, die Struktur zu korrigieren. Das produziert: 

\excentered
\CLboxed
\jtree[xunit=3em,yunit=1em]
\def\Fracture{<vert>{\omit\psframebox[boxsep=.4ex]
   {Fracture$\vphantom j$}}}%
\! = {\stuff[a]}
   \Fracture
   :\jtbig{\stuff[b]}!a
      \jtbig{\stuff[c]}
   \Fracture
   :{$\vdots$}
      {$\vdots$}.
\!a = \Fracture
   :{\stuff[d]}
      {\stuff[e]}.
\endjtree
|endCLboxed
\hfill \kern-30em
\jtree[xunit=3em,yunit=1em,treevshift=-3.5em]
\def\Fracture{<vert>{\omit\psframebox[boxsep=.4ex]
   {Fracture$\vphantom j$}}}%
\! = {\stuff[a]}
   \Fracture
   :\jtbig{\stuff[b]}!a
      \jtbig{\stuff[c]}
   \Fracture
   :{$\vdots$}
      {$\vdots$}.
\!a = \Fracture
   :{\stuff[d]}
      {\stuff[e]}.
\endjtree
\kern1ex
\xe

Jetzt sind wir bereit, die fehlende Sachen einzuf\"ugen. Da die "go-path" Konstruktion kompliziert ist, zweimal erscheint und m\"oglicherweise n\"utzlich f\"ur diese Art von Arbeit ist, wurde es zu einem Makro zusammengefasst. \pstjtree\/ beinhaltet |\multiline| \index*{+multiline} und |\endmultiline| \index*{+endmultiline} Makros um komplexe multiline-labels zu konstruieren. |\multiline| \"offnet eine vbox und |\halign{\hfil#\hfil\cr|. |\endmultiline| schlie\ss\/t alles wieder. Der vertikale Abstand bekam einige Ber\"ucksichtigung. Der komplette Code f\"ur (\lastx) ist: 

\medskip

\goodbreak
\CL
\def\GO#1#2#3{$\rm GO\bigl({#1},[_{Path}\,
   FROM({#2}),TO({#3})]\bigr)$}
|endCL

\def\Goodbreak#1{\goodbreak}
\medskip
\CL
\jtree[xunit=3em,yunit=1em]
\defstuff[a]{\multiline
   \it The cup slid from John to Mary\cr
   \GO{\bf cup}{\bf John}{\bf Mary}\cr
   IP\endmultiline}|Goodbreak|
\defstuff[b]{\multiline
   \it The cup\cr
   \bf cup\cr
   NP\endmultiline}
\defstuff[c]{\multiline
   \it slid from John to Mary\cr
   \GO{\mit x}{\bf John}{\bf Mary}\cr
   IP\endmultiline}
\defstuff[d]{\multiline
   \it The\cr
   $\perp$\cr
  \quad N$\rm _{SPEC}$\endmultiline}|Goodbreak|
\defstuff[e]{\multiline
   \it cup\cr
   \bf cup\cr
   N\endmultiline}
\def\Fracture{<vert>{\omit\psframebox[boxsep=.4ex]
   {Fracture$\vphantom j$}}}%
\! = {\stuff[a]}
   \Fracture
   :\jtbig{\stuff[b]}!a \jtbig{\stuff[c]}
   \Fracture
   :{$\vdots$} {$\vdots$}.
\!a = \Fracture
   :{\stuff[d]} {\stuff[e]}.
\endjtree
|endCL

