summaryrefslogtreecommitdiff
path: root/info/translations/pst-jtree/de/10-incremental.tex
blob: cb10b3fd40dd265e84a91e2a287ca1a7f93634d4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153

\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