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
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
|
\section Triangeln und varTriangeln
Triangeln k\"onnen durch folgende Syntax definiert werden:
\medskip\index*{+deftriangle}
\qquad|\deftriangle<«Name\/»>(«H\"ohe\/»)(«\sl NeigungA\/»)(«NeigungB\/»)|
\medskip
Eine Triangel wird bereits vordefiniert.
\CLframed \deftriangle<tri>(1)(1)(-1)
|endCLframed
|<tri>| kann wie jeder andere Zweig gebraucht werden.
\excentered
\CLboxed
\jtree
\! = :{a} <tri>{b} <vert>{c}.
\endjtree
|endCLboxed \hfil
\jtree
\! = :{a} <tri>{b} <vert>{c}.
\endjtree
\xe
\pstjtree\/ definiert den Parameter |triratio|\index*{triratio (für
Triangln)}, der daf\"ur verwendet werden kann, die Position des neuen aktuellen Punktes entlang der Unterkante der Triangel festzulegen. Wenn $\sl width$ die Breite der Triangel ist, dann befindet sich der Punkt gem\"a\ss\ der Formel $\sl x=triratio\times width$ rechts von der linken Ecke der Triangel. Die oberhalb dargestellte Struktur wird durch |triratio=.5| gesetzt, dem Vorgabewert, der auch den derzeitigen Punkt in die Mitte der Unterkante festlegt.
\excentered
\CLboxed
\jtree
\! = :{a} <tri>[triratio=.8]{b} <vert>{c}.
\endjtree
|endCLboxed \hfil
\jtree
\! = :{a} <tri>[triratio=.8]{b} <vert>{c}.
\endjtree
\xe
Wenn eine Triangel festgesetzt wird, wird die Weite berechnet und das Makro |\triwd| \index*{+triwd} wird definiert, welches in Abh\"angigkeit zur Weite errechnet wird. {\sl
pst-jtree\/} beinhaltet:\par\nobreak
\medskip
\index*{+triline}%
\CLframed \def\triline#1{\hbox to\triwd{#1}}|endCLframed
Die folgende Darstellung kann sich manchmal als n\"utzlich erweisen:\par\nobreak
\excentered
\CLboxed
\jtree
\! = :{a} <tri>{\triline{e\hfil f}}.
\endjtree
|endCLboxed
\hfil
\jtree
\! = :{a} <tri>{\triline{e\hfil f}}.
\endjtree
\xe
Bedenken Sie au\ss erdem, dass Zweige auch \"uberschrieben werden k\"onnen. Etwas analoges zu dem folgenden ist manchmal brauchbar:\par\nobreak
\excentered
\CLboxed
\jtree
\! = :{a} <tri> ^:{e} {f} <vert>{c}.
\endjtree
|endCLboxed
\hfil
\jtree
\! = :{a} <tri> ^:{e} {f} <vert>{c}.
\endjtree
\xe
\subsection Die variable Triangel (varTriangel)
varTriangeln passen ihre Werte dem label entsprechend an, auf das sie zeigen. Eine varTriangel wird durch die Angabe der H\"ohe spezifiziert. Die Syntax lautet folgenderma\ss en:
\medskip
\qquad|\defvartriangle<«Name\/»>(«H\"ohe\/»)|
\medskip\index*{+defvartriangle}
\jTree\ definiert eine varTriangel schon vorher.
\medskip
\quad |\defvartriangle<vartri>(1)|
\excentered
\CLboxed
\jtree
\! = :{a} <vartri>{whatever width}.
\endjtree
|endCLboxed
\hfil
\jtree
\! = :{a} <vartri>{whatever width}.
\endjtree
\xe
Der Parameter |triratio|\index*{triratio (für varTriangln)} hat f\"ur varTriangeln eine andere Bedeutung als f\"ur gew\"ohnliche Triangeln. Er ermittelt, wo sich die Mitte der Grundlinie einer Triangel hinsichtlich des obersten Scheitelpunktes befindet. Die Entfernung des Grundlinienmittelpunktes ist gem\"a\ss\ der Formel $\sl triratio\times width$ entsprechend weit rechts vom linken Punkt der Grundlinie entfernt. Es ist einfacher die Formalien (wie unten) zu illustrieren, anstatt sie nur zu nennen.
\excentered
\CLboxed
\jtree
\! = :{a} <vartri>
[triratio=.3]{whatever width}.
\endjtree
|endCLboxed \hfill
\jtree
\! = :{a} <vartri>
[triratio=.3]{whatever width}.
\endjtree
\kern1ex
\bigskip
\CLboxed
\jtree
\! = :{a}
<vartri>[triratio=0]{whatever width}.
\endjtree
|endCLboxed \hfill
\jtree
\! = :{a}
<vartri>[triratio=0]{whatever width}.
\endjtree
\kern1ex
\bigskip
\CLboxed
\jtree
\! = :{a}
<vartri>[triratio=-.1,scaleby=2]
{whatever width}.
\endjtree
|endCLboxed \hfill
\jtree
\! = :{a}
<vartri>[triratio=-.1,scaleby=2]
{whatever width}.
\endjtree
\kern1ex
\xe
Im Allgemeinen besteht keine Verzweigung des Labels, das der varTriangel folgt, also gibt es auch keine Erstellung eines Anschlusspunktes f\"ur das Label – er befindet sich in der Mitte der Basis.\par\nobreak
\excentered
\CLboxed
\jtree
\! = :{a} <vartri>
[triratio=.1]{whatever width}
<vert>{b}.
\endjtree
|endCLboxed
\quad \hfil
\jtree
\! = :{a} <vartri>
[triratio=.1]{whatever width}
<vert>{b}.
\endjtree
\xe
Ein Zweig kann einem anderen folgen, aber seit die Weite einer varTriangel von der Weite des folgenden Labels abh\"angt, muss eine varTriangel (mit optionalen Parametern) direkt von einem Label gefolgt werden. Ist dies nicht der Fall, wird ein Fehler angezeigt.
|