<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">
\section Triangeln und varTriangeln

Triangeln k\"onnen durch folgende Syntax definiert werden:

\medskip\index*{+deftriangle}

\qquad|\deftriangle&lt;Â«Name\/Â»&gt;(Â«H\"ohe\/Â»)(Â«\sl NeigungA\/Â»)(Â«NeigungB\/Â»)|
   
\medskip
Eine Triangel wird bereits vordefiniert.

\CLframed \deftriangle&lt;tri&gt;(1)(1)(-1)
|endCLframed

|&lt;tri&gt;| kann wie jeder andere Zweig gebraucht werden.

\excentered
\CLboxed
\jtree
\! = :{a} &lt;tri&gt;{b} &lt;vert&gt;{c}.
\endjtree
|endCLboxed \hfil
\jtree
\! = :{a} &lt;tri&gt;{b} &lt;vert&gt;{c}.
\endjtree
\xe

\pstjtree\/ definiert den Parameter |triratio|\index*{triratio (for
triangles)}, 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} &lt;tri&gt;[triratio=.8]{b} &lt;vert&gt;{c}.
\endjtree
|endCLboxed \hfil
\jtree
\! = :{a} &lt;tri&gt;[triratio=.8]{b} &lt;vert&gt;{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} &lt;tri&gt;{\triline{e\hfil f}}.
\endjtree
|endCLboxed
\hfil
\jtree
\! = :{a} &lt;tri&gt;{\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} &lt;tri&gt; ^:{e} {f} &lt;vert&gt;{c}.
\endjtree
|endCLboxed
\hfil
\jtree
\! = :{a} &lt;tri&gt; ^:{e} {f} &lt;vert&gt;{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 ist lautet folgenderma\ss en:

\medskip
\qquad|\defvartriangle&lt;Â«Name\/Â»&gt;(Â«H\"ohe\/Â»)|

\medskip\index*{+defvartriangle}

\jTree\ definiert eine varTriangel schon vorher.

\medskip
\quad |\defvartriangle&lt;vartri&gt;(1)|

\excentered
\CLboxed
\jtree
\! = :{a} &lt;vartri&gt;{whatever width}.
\endjtree
|endCLboxed
\hfil
\jtree
\! = :{a} &lt;vartri&gt;{whatever width}.
\endjtree
\xe

Der Parameter |triratio|\index*{triratio (for vartriangles)} hat f\"ur varTriangeln eine andere Bedeutung als f\"ur gew\"ohnliche Triangel. 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} &lt;vartri&gt;
   [triratio=.3]{whatever width}.
\endjtree
|endCLboxed \hfill
\jtree
\! = :{a} &lt;vartri&gt;
   [triratio=.3]{whatever width}.
\endjtree
\kern1ex

\bigskip

\CLboxed
\jtree
\! = :{a}
   &lt;vartri&gt;[triratio=0]{whatever width}.
\endjtree
|endCLboxed \hfill
\jtree
\! = :{a}
   &lt;vartri&gt;[triratio=0]{whatever width}.
\endjtree
\kern1ex

\bigskip

\CLboxed
\jtree
\! = :{a}
   &lt;vartri&gt;[triratio=-.1,scaleby=2]
      {whatever width}.
\endjtree
|endCLboxed \hfill
\jtree
\! = :{a}
   &lt;vartri&gt;[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} &lt;vartri&gt;
      [triratio=.1]{whatever width}
   &lt;vert&gt;{b}.
\endjtree
|endCLboxed
\quad \hfil
\jtree
\! = :{a} &lt;vartri&gt;
      [triratio=.1]{whatever width}
   &lt;vert&gt;{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.


</pre></body></html>