texlive[71724] Master/texmf-dist: pst-node (6jul24)

commits+karl at tug.org commits+karl at tug.org
Sat Jul 6 22:29:33 CEST 2024


Revision: 71724
          https://tug.org/svn/texlive?view=revision&revision=71724
Author:   karl
Date:     2024-07-06 22:29:33 +0200 (Sat, 06 Jul 2024)
Log Message:
-----------
pst-node (6jul24)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/generic/pst-node/Changes
    trunk/Master/texmf-dist/doc/generic/pst-node/README
    trunk/Master/texmf-dist/doc/generic/pst-node/pst-node-doc.pdf
    trunk/Master/texmf-dist/doc/generic/pst-node/pst-node-doc.tex
    trunk/Master/texmf-dist/tex/generic/pst-node/pst-node.tex
    trunk/Master/texmf-dist/tex/latex/pst-node/pst-node.sty

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/generic/pst-node/psmatrix-docDE.bib
    trunk/Master/texmf-dist/doc/generic/pst-node/psmatrix-docDE.pdf
    trunk/Master/texmf-dist/doc/generic/pst-node/psmatrix-docDE.tex

Modified: trunk/Master/texmf-dist/doc/generic/pst-node/Changes
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-node/Changes	2024-07-06 20:29:19 UTC (rev 71723)
+++ trunk/Master/texmf-dist/doc/generic/pst-node/Changes	2024-07-06 20:29:33 UTC (rev 71724)
@@ -1,5 +1,6 @@
 ----- pst-node.tex
-1.43  2021-09-15 - fix for lualatex and empty value in \psk at nrot 
+1.44  2024-07-04 - modified \psparnode and \algparnode (Erich Schmidt) 
+1.43  2022-10-31 - fix for lualatex and empty value in \psk at nrot 
 1.42a 2020-04-01 - fix typo in the documentation
 1.42  2019-03-03 - bugfix for \rnode inside \psframebox*
 1.41  2017-12-30 - added \psnpolygon

Modified: trunk/Master/texmf-dist/doc/generic/pst-node/README
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-node/README	2024-07-06 20:29:19 UTC (rev 71723)
+++ trunk/Master/texmf-dist/doc/generic/pst-node/README	2024-07-06 20:29:33 UTC (rev 71724)
@@ -1,6 +1,3 @@
-This version of pst-node uses the xkeyval package, the extended
-version of keyval.
-
 Save the files pst-node.sty|.tex|.pro in a directory, which is part of your 
 local TeX node. Then do not forget to run texhash to update this node
 if these packages are new to your TeX distribution.

Added: trunk/Master/texmf-dist/doc/generic/pst-node/psmatrix-docDE.bib
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-node/psmatrix-docDE.bib	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/generic/pst-node/psmatrix-docDE.bib	2024-07-06 20:29:33 UTC (rev 71724)
@@ -0,0 +1,35 @@
+ at Manual{pstricks2007,
+  Title          = {PSTricks - {\PS} macros for Generic TeX. Version 1.5},
+  Author         = {Timothy Van Zandt},
+  Organization   = {},
+  Address        =
+  {\url{http://www.tug.org/tex-archive/graphics/pstricks/base/doc/pst-user.pdf}},
+    Note           = {},
+  year           = 2007,
+}
+
+
+ at Manual{siart,
+  Title          = {Befehls\"ubersicht f\"ur \texttt{PSTricks} (Version
+  0.93},
+  Author         = {Uwe Siart},
+  Organization   = {},
+  Address        =
+  {\url{http://www.siart.de/typografie/pstricks-referenz.pdf}},
+  Note           = {},
+  year           = 2009,
+}
+
+
+
+
+ at Book{PSTricks2,
+  author	= {Herbert Vo\ss},
+  title		= {\texttt{PSTricks} -- {G}rafik f\"ur \TeX{} und \LaTeX},
+  edition	= {fünfte},
+  publisher	= {DANTE -- Lehmanns},
+  year		= {2008},
+  address	= {Heidelberg/Hamburg}
+}
+
+


Property changes on: trunk/Master/texmf-dist/doc/generic/pst-node/psmatrix-docDE.bib
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/generic/pst-node/psmatrix-docDE.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/generic/pst-node/psmatrix-docDE.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-node/psmatrix-docDE.pdf	2024-07-06 20:29:19 UTC (rev 71723)
+++ trunk/Master/texmf-dist/doc/generic/pst-node/psmatrix-docDE.pdf	2024-07-06 20:29:33 UTC (rev 71724)

Property changes on: trunk/Master/texmf-dist/doc/generic/pst-node/psmatrix-docDE.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/generic/pst-node/psmatrix-docDE.tex
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-node/psmatrix-docDE.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/generic/pst-node/psmatrix-docDE.tex	2024-07-06 20:29:33 UTC (rev 71724)
@@ -0,0 +1,1155 @@
+%% $Id: psmatrix-docDE.tex 696 2017-12-30 19:01:07Z herbert $
+\listfiles
+\documentclass[11pt,ngerman,a4paper,BCOR10mm,DIV12,bibliography=totoc,parskip,smallheadings,
+    headexclude,footexclude,oneside]{pst-doc}
+\usepackage[utf8]{inputenc}
+\usepackage{babel}
+
+%\setlength{\parindent}{0pt}
+%\setlength{\parskip}{1ex plus 0.2ex minus 0.1ex}
+
+\usepackage{pst-node,pst-grad,pstricks-add,pst-blur,float}
+\def\tab#1{\tabular{@{}l@{}}#1\endtabular}
+\def\OptEinh{\psframebox[framesep=2pt,fillstyle=solid,fillcolor=black!20,linecolor=black!20]{\texttt{Einheit}}\kern1pt}
+
+\let\myFV\fileversion
+
+\usepackage{tabularx}
+\usepackage{longtable}
+
+\addbibresource{\jobname.bib}
+
+
+\lstset{explpreset={pos=l,rframe=},frame=,backgroundcolor=\color{white},literate={ä}{{\"a}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
+  {Ä}{{\"A}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
+  {ß}{\ss}1} 
+
+
+\usepackage{bibgerm}
+
+%\psset{subgriddiv=0,gridlabels=7pt,gridcolor=black!15}
+%\hypersetup{pdfauthor={Christine Roemer},pdftitle={psmatrix}}
+%
+\def\bgImage{\hspace*{1cm}%
+\begin{psmatrix}[colsep=0.8cm,rowsep=0.4cm,mcol=c,emnode=r]
+    &  & semantische Ebene &  &
+    \psshadowbox[framearc=0.25]{Bedeutung}\\
+    &  & morphologische Ebene & & \\
+[name=A]\tab{pragmatische\\Ebene} & [name=B]& & & \\
+    &  & syntaktische Ebene & & \\
+    &  & \tab{phonetisch-phonologische Ebene\\graphische Ebene}
+   & & \psshadowbox[framearc=0.25]{Formativ}
+\end{psmatrix}
+\psset{nodesep=3pt,arrowscale=1.5,arrows=->,
+  armA=6mm,angleB=180}
+\ncline{A}{B}
+\ncangles{A}{1,3} \ncangles{A}{2,3}
+\ncangles{A}{4,3} \ncangles{A}{5,3}
+\ncline{1,3}{1,5} \ncline{5,3}{5,5}
+\ncline{<->}{1,5}{5,5}%
+}
+
+\lstset{basicstyle=\ttfamily\footnotesize}
+
+\begin{document}
+\author{Timothy van Zandt\\Herbert Vo\ss}
+\docauthor{Christine R\"omer}
+\date{\today}
+\title{Schematische \"Ubersichten mit \texttt{psmatrix}}
+
+\maketitle%
+
+\tableofcontents
+
+\clearpage
+\begin{abstract}
+Mit der
+\texttt{psmatrix}-Umgebung\index{psmatrix@\texttt{psmatrix}-Umgebung} k\"onnen  au{\ss}erhalb 
+einer mathematischen 
+Umgebung vielfältige schematische \"Ubersichten gesetzt werden. Das Makro \texttt{psmatrix}
+wird nicht extra geladen. Es ist in verschiedene Pakete des
+PSTricks-Verbundes\index{PSTricks-Verbund}
+(\texttt{pstricks,\\pst-node,pst-grad})\index{pstricks@\texttt{pstricks}}
+\index{pst-node@\texttt{pst-node}} \index{pst-grad@\texttt{pst-grad}} integriert
+ und wird mit ihnen aufgerufen.
+
+\vfill\noindent
+Danke f\"ur die Unterst\"utzung bei der Erstellung dieser Dokumentation an Herbert Vo\ss.
+\end{abstract}
+
+
+\section{Einf\"uhrung}
+
+Mit der
+\texttt{psmatrix}-Umgebung\index{psmatrix@\texttt{psmatrix}-Umgebung} k\"onnen  
+au{\ss}erhalb einer mathematischen 
+Umgebung schematische \"Ubersichten gesetzt werden. Sie basiert auf dem
+Tabellenmakro \texttt{array}\index{array@\texttt{array}} und gleicht ihm deshalb in der 
+Syntax. Es hat jedoch nicht dessen 
+Einschr\"ankungen bez\"uglich Verbindungen über die Zellen und Zeilen hinweg. Das Makro 
+\texttt{psmatrix}
+wird nicht extra geladen. Es ist in verschiedene Pakete des
+PSTricks-Verbundes\index{PSTricks-Verbund}
+(\texttt{pstricks,\\pst-node,pst-grad})\index{pstricks@\texttt{pstricks}}
+\index{pst-node@\texttt{pst-node}} \index{pst-grad@\texttt{pst-grad}} integriert und 
+wird mit ihnen aufgerufen.
+
+\section{Erstellen einer Matrix}
+\subsection{Einordnung}
+
+Das Makro \bs{\texttt{psmatrix}} arbeitet sowohl in einer \TeX - als auch
+\LaTeX-Umgebung:
+
+\begin{BDef}
+\Lcs{psmatrix}\OptArgs \ldots\ \Lcs{endpsmatrix} &  \% TeX-Version\\
+\LBEG{psmatrix}\OptArgs \ldots \ \LEND{psmatrix} &  \% LaTeX-Version
+\end{BDef}
+
+Da mit der \TeX-Version einige Einschr\"ankungen verbunden sind, wird nur auf
+die \LaTeX-Variante eingegangen. Das Grundprinzip des Strukturaufbaus
+stellt eine Knoten- und Knotenverbindungszuordnung dar. Diese kann mehrfach
+geschachtelt und sowohl bei der Knotenbelegung als auch
+Verbindungsdarstellung in verschiedener Weise ausgestalltet werden. Dazu
+stellt der PSTricksverbund zahlreiche Makros bereit.
+
+\subsection{Matrixgrundstruktur}\index{Matrixgrundstruktur}
+
+Die Knoten werden in der Art einer Tabelle innerhalb der
+\texttt{psmatrix}-Umgebung\index{psmatrix@\texttt{psmatrix}-Umgebung} angeordnet.
+
+\begin{LTXexample}[width=.3\linewidth]
+\begin{psmatrix}[rowsep=0.2cm]
+1 & 2 & 3 \\
+X & Y & Z
+\end{psmatrix}
+\end{LTXexample}
+
+
+\section{Zuordnung Knoten zu Verbindungen}
+
+Die Matrix entsteht durch die Zuordnung von Knoten zu Verbindungen. Die
+Knoten werden in die Zellen in der \texttt{psmatrix}-Umgebung eingetragen
+(siehe obiges Beispiel). Nach \bs{\texttt{end}}\{\texttt{psmatrix}\} werden die gew\"unschten
+Linien definiert. Grunds\"atzlich geschieht dies nach dem Schema
+
+\psframebox{\bs
+nc\psframebox[framesep=2pt,fillstyle=solid,fillcolor=black!20,linecolor=black!20]{\texttt{Verbindung}}
+[\psframebox[framesep=2pt,fillstyle=solid,fillcolor=black!20,linecolor=black!20]{\texttt{Optionen}}]
+\{Koordinaten ZelleA\}\{Koordinaten ZelleB\}}
+
+Die Koordinaten\index{Zellen-Koordinaten} werden, wenn den Zellen keine
+Namen gegeben werden (siehe
+Parameter \texttt{name}),
+durch abz\"ahlen gewonnen: jeweils erst die Zeile und danach durch Komma abgetrennt
+die Zelle.
+
+\vspace{4mm}
+\begin{LTXexample}[width=.3\linewidth]
+\begin{psmatrix}[rowsep=0.2cm]
+1 & 2 & 3 \\
+X & Y & Z
+\end{psmatrix}
+\ncline[linecolor=red]{1,1}{2,2} 
+\ncline[linecolor=green]{1,3}{2,2}
+\ncline[linestyle=dotted]{<-}{1,2}{2,1} 
+\ncline[linestyle=dashed]{->}{1,2}{2,3}
+\end{LTXexample}
+
+
+\section{Knotenparameter}
+\subsection{mnode}\index{mnode@\texttt{mnode}}
+
+Der Parameter \texttt{mnode=<Knotenart>} legt die Knotenart fest. Das kann lokal für
+einzelne Knoten oder global für die ganze Matrix erfolgen (siehe folgende
+Beispiele). Dazu muss neben
+dem Paket \texttt{pstricks}\index{pstricks@\texttt{pstricks}} auch
+\texttt{pst-node}\index{pst-node@\texttt{pst-node}} geladen werden.
+
+\begin{LTXexample}[width=.2\linewidth]
+\begin{psmatrix}[mnode=circle,rowsep=0.2cm,colsep=1cm]
+1 & 2 \\
+X & Y 
+\end{psmatrix}
+\end{LTXexample}
+
+\begin{LTXexample}[width=.2\linewidth]
+\begin{psmatrix}[mnode=circle,rowsep=0.2cm,colsep=1cm]
+1 & 2 \\
+[mnode=dia] X & Y 
+\end{psmatrix}
+\end{LTXexample}
+
+Folgende \textbf{Knotenarten}\index{Knotenarten} stehen zur Verf\"ugung. Ihr Aufruf erfolgt mit
+\texttt{mnode=} über die in Klammern angegebenen K\"urzel.
+
+\begin{compactitem}
+  \item \texttt{Rnode} (R):\index{Rnode@\texttt{Rnode} (R)}
+  Es wird damit das Eingetragene zur Basislinie
+  positioniert. Mittels Optionen kann dies variiert werden.
+\vspace{2mm}
+\begin{LTXexample}[width=.2\linewidth]
+\begin{psmatrix}[rowsep=0.2cm,linecolor=blue,radius=0.5]
+X & [mnode=R,vref=0pt] Y
+\end{psmatrix}
+\ncline{1,1}{1,2}
+\end{LTXexample}
+
+\item \texttt{Cnode} (C):\index{Cnode@\texttt{Cnode} (C)}  Ungef\"ullte Kreise werden gesetzt. 
+Deren Radius mit   dem Parameter \texttt{radius}\index{radius@\texttt{radius}} modifiziert
+werden kann. Es muss irgendetwas eingetragen werden, was dann aber nicht erscheint.
+\vspace{2mm}
+\begin{LTXexample}[width=.3\linewidth]
+\begin{psmatrix}[mnode=C,rowsep=0.2cm,linecolor=blue,radius=0.5]
+       X & Y
+\end{psmatrix}
+\end{LTXexample}
+\vspace{2mm}
+
+\item \texttt{pnode} (p):\index{pnode@\texttt{pnode} (p)}  Ein Knoten mit dem Radius Null, ein 
+leerer Knoten (siehe folgendes Beispiel, wo der Knoten 1 leer gesetzt wird).
+
+\item \texttt{Circlenode}
+(Circle):\index{Circlenode@\texttt{Circlenode} (Circle)}  Ein Knoten, der von einem Kreis 
+umschlossen
+wird, dessen Umfang richtet sich nach dem Inhalt. Er kann mit der Option
+\texttt{radius} modifiziert werden (siehe obiges Beispiel).
+
+\vspace{2mm}
+\begin{LTXexample}[width=.42\linewidth]
+\begin{psmatrix}[mnode=Circle,radius=1cm,rowsep=0.2cm]
+             X &  Y \\
+[mnode=p] 1 &  2 
+\end{psmatrix}
+\end{LTXexample}
+\vspace{2mm}
+
+\item \texttt{dianode} (dia):\index{dianode@\texttt{dianode} (dia)}  Ein Knoten, der von 
+einer Raute umschlossen
+wird, deren Umfang richtet sich nach dem Inhalt 
+
+\vspace{2mm}
+\begin{LTXexample}[width=.2\linewidth]
+\begin{psmatrix}[mnode=dia,rowsep=0.2cm,colsep=0.7cm]
+             X &  Y \\
+             1 &  2 
+\end{psmatrix}
+\end{LTXexample}
+\vspace{2mm}
+
+\item \texttt{dotnode} (dot):\index{Rnode@\texttt{dotnode}  (dot)}  Es wird im unmarkierten 
+Fall ein gef\"ullter Kreisknoten gesetzt, der
+u.\,a. \"uber den Parameter \texttt{dotscale} gesteuert
+werden kann.
+
+\vspace{2mm}
+\begin{LTXexample}[width=.2\linewidth]
+\begin{psmatrix}[mnode=dot,rowsep=0.2cm]
+[mnode=dot,dotscale=3] X &  Y \\
+[mnode=dot,dotscale=2,dotstyle=triangle]1&2 
+\end{psmatrix}
+\end{LTXexample}
+\vspace{2mm}
+
+\item \texttt{rnode} (r):\index{Rnode@\texttt{rnode} (r)}
+Unterscheidet sich von \bs{rnode} (R) in der
+Festlegung des Knotenzentrums, das ohne optionale Parameter das Zentrum
+der umgebenden Box ist. Eingesetzter "`Text"' erscheint pur.
+
+\vspace{2mm}
+\begin{LTXexample}[width=.2\linewidth]
+\begin{psmatrix}[mnode=r,rowsep=0.2cm]
+             X &  Y \\
+             1 &  2 
+\end{psmatrix}
+\end{LTXexample}
+\vspace{2mm}
+
+
+
+\item \texttt{fnode} (f):\index{fnode@\texttt{fnode} (f)}  Ein leerer
+Rahmen, dessen Gr\"o{"s}e \"uber
+\texttt{framesize=} und
+Koordinatenfestlegungen beeinflusst werden kann.%\footnote{Diese Funktion
+%ist bisher nur eingeschr\"ankt nutzbar, die K\"astchen einer Zeile werden nicht getrennt. 
+%Mit "`Text"' gef\"ullte K\"astchen k\"onnen einfach mit \bs{\texttt{fbox}\{
+%\}} oder \bs{\texttt{psframebox}\{ \}} gesetzt werden.}
+
+\vspace{2mm}
+\begin{LTXexample}[width=.2\linewidth]
+\begin{psmatrix}[mnode=f,rowsep=0.2cm]
+             X &  Y \\
+             1 &  2 
+\end{psmatrix}
+\end{LTXexample}
+\vspace{2mm}
+
+
+\item \texttt{circlenode}
+(circle):\index{circlenode@\texttt{circlenode} (circle)}  Entspricht
+weitgehend \texttt{Circlenode}. Es
+kann aber nicht der Radius ge\"andert werden.
+
+\vspace{2mm}
+\begin{LTXexample}[width=.2\linewidth]
+\begin{psmatrix}[mnode=circle,rowsep=0.2cm,colsep=1cm]
+             X &  Y \\
+             1 &  2 
+\end{psmatrix}
+\end{LTXexample}
+\vspace{2mm}
+  
+\item \texttt{ovalnode} (oval):\index{ovalnode@\texttt{ovalnode} (oval)}  Ovaler Knoten, 
+dessen Gr\"o"se aus dem Inhalt resultiert.
+
+\vspace{2mm}
+\begin{LTXexample}[width=.2\linewidth]
+\begin{psmatrix}[mnode=oval,rowsep=0.2cm,colsep=0.7cm]
+             XX &  YY \\
+             1 &  2 
+\end{psmatrix}
+\end{LTXexample}
+\vspace{2mm}
+  
+
+\item \texttt{trinode} (tri):\index{trinode@\texttt{trinode} (tri)}
+Dreieck, dessen Gr\"o"se aus dem Inhalt resultiert.
+
+\vspace{2mm}
+\begin{LTXexample}[width=.2\linewidth]
+\begin{psmatrix}[mnode=tri,rowsep=0.2cm,colsep=0.7cm]
+             X &  Y \\
+             1 &  2 
+\end{psmatrix}
+\end{LTXexample}
+\vspace{2mm}
+
+Mit der Option \texttt{trimode}\index{trimode@\texttt{trimode}} kann die Lage der Dreiecke verändert
+werden. Die Sternversion verkleinert die Basis und erzeugt aus
+stumpfwinkligen (Winkel zwischen 90 und 180 Grad) spitzwinkelige (kleiner
+als 90 Grad) Dreiecke.
+\vspace{2mm}
+\begin{table}[H]
+\centering
+\caption{Ver\"anderung der Dreieckslage}
+\begin{tabular}{@{}ll@{}}
+Befehl & Lage des Dreiecks \\ \hline
+\texttt{trimode=U} & Spitze oben \\
+\texttt{trimode=D} & Spitze unten \\
+\texttt{trimode=R} & Spitze rechts \\
+\texttt{trimode=L} & Spitze links 
+\end{tabular}
+\end{table} 
+
+\vspace{2mm}
+\begin{LTXexample}[width=.25\linewidth]
+\begin{pspicture}(0,-2)(3,2)
+\begin{psmatrix}[mnode=tri,rowsep=0.2cm,colsep=0.7cm]
+  [trimode=U] Dreieck \\
+  [trimode=*D]Dreieck 
+\end{psmatrix}
+\end{pspicture}
+\end{LTXexample}
+\vspace{2mm}
+
+
+  \item \texttt{no node} (none):\index{no node@\texttt{no node} (none)}  Ohne Knoten, was für das 
+  Einf\"ugen von Verbindungslinien sinnvoll sein kann.
+
+ 
+\end{compactitem}
+
+
+
+\subsection{emnode}\index{emnode@\texttt{emnode}}
+
+Mit \texttt{emnode} k\"onnen verschiedene Arten (Parameter wie bei
+\texttt{mnode} von Knoten für "`leere"' Zellen gesetzt
+werden. Es muss also nichts in die Zellen eingetragen werden. Wie
+nachfolgendes Beispiel auch belegt, kann es dabei auf der rechten Seite zu
+fehlerhaften Ausgaben kommen, weil
+\bs{pst-node}\index{pst-node@\texttt{pst-node}} da noch nicht v\"ollig korrekt
+arbeitet.
+
+
+\vspace{2mm}
+\begin{LTXexample}[width=.2\linewidth]
+\begin{psmatrix}[emnode=circle,rowsep=0.2cm,colsep=2cm]
+              &  \\
+              &   
+\end{psmatrix}
+\end{LTXexample}
+\vspace{2mm}
+
+\subsection{nodealign}\index{nodealign@\texttt{nodealign}}
+
+Der Parameter \texttt{nodealign} kann in [\texttt{nodealign=true}]
+abge\"andert werden, um das Zentrum des Knotens auf die Basisebene zu
+verschieben (vgl. \cite[S.\,259]{PSTricks2}).
+
+\section{Parameter zu Zellen und Zeilen}
+
+\subsection{name}\index{name@\texttt{name}}
+
+Der Parameter \texttt{name} erm\"oglicht es, jeder Zelle einen
+selbstgew\"ahlten Namen zu geben, der am Anfang einer Zelle eingef\"ugt werden
+muss. Dies kann beim Setzen von Linien die
+Arbeit erleichtern, man muss dann nicht die Positionen ausz\"ahlen.
+
+\vspace{2mm}
+\begin{LTXexample}[width=.4\linewidth]
+\begin{psmatrix}[emnode=r,colsep=0.4cm,
+                          rowsep=0.4cm]
+        & [name=A] Buch    &  \\
+[name=B]Fachbuch & [name=C]Lehrbuch & [name=D]Roman
+\end{psmatrix}
+\psset{nodesep=3pt,arrows=->}
+\ncline{A}{B} \ncline{A}{C} \ncline{A}{D} 
+\end{LTXexample}
+\vspace{2mm}
+
+
+Au"serdem ist es \"uber diese Zellenfestlegung m\"oglich, auch \Lcs{pcline} und
+\Lcs{psline} in einer Matrixumgebung zu benutzen. Diese nehmen die
+Koordinatenargumente (hier gleich Zellennamen) aber in runden Klammern, wie
+in dem folgenden Beispiel zu sehen ist. 
+
+\vspace{2mm}
+\begin{LTXexample}[width=.45\linewidth]
+\begin{psmatrix}[emnode=r,colsep=1cm,
+                          rowsep=0.4cm]
+[name=A]Buch  \psspan{3}  &  \\[1cm]
+[name=B]Fachbuch & [name=C]Lehrbuch & 
+[name=D]Roman
+\end{psmatrix}
+\psset{nodesep=3pt,arrows=->,linecolor=red}
+\psline(A)(C)
+\pcline(A)(B) 
+\nbput*[nrot=:D]{\footnotesize \texttt{pcline}}
+\ncline{A}{D} 
+\naput*[nrot=:U]{\footnotesize \texttt{ncline}}
+\end{LTXexample}
+
+\Lcs{pcline} geht immer vom Zentrum aus und kann nicht an einer
+Umgebungsbox beginnen oder aufh\"oren. Sie kann deshalb von
+\texttt{nodesep} nicht beeinflusst werden. Andere Parameter --
+beispielsweise \texttt{offset=},\index{offset@\texttt{offset}} der eine vertikale Verschiebung
+erm\"oglicht, -- k\"onnen das aber schon. \Lcs{psline}
+reagiert wiederum darauf nicht.
+
+\vspace{2mm}
+\begin{LTXexample}[width=.3\linewidth]
+\begin{psmatrix}[emnode=r,colsep=1cm,rowsep=0.4cm]
+[name=A]Fachbuch &  \\[1cm]
+                 & [name=C]Roman 
+\end{psmatrix}
+\psset{nodesep=3pt,arrows=<-,linecolor=red,offset=0.3cm}
+\pcline(A)(C)
+\pcline(C)(A)
+\end{LTXexample}
+
+\begin{LTXexample}[width=.3\linewidth]
+\begin{psmatrix}[emnode=r,colsep=1cm,rowsep=0.4cm]
+        [name=A] Fachbuch   &  \\[1cm]
+             & [name=C] Roman 
+\end{psmatrix}
+\psset{nodesep=3pt,arrows=->,linecolor=red,offset=1cm}
+\psline(A)(C)
+\psline(C)(A)
+\end{LTXexample}
+
+
+
+\subsection{mcol}\index{mcol@\texttt{mcol}}
+
+Mit \texttt{mcol} kann lokal und global der horizontale
+Zellenabstand\index{Zellenabstand!horizontal}
+mit den Optionen \texttt{l,r,c} modifiziert werden.
+
+\vspace{2mm}
+\begin{LTXexample}[width=.4\linewidth]
+\begin{psmatrix}[emnode=r,colsep=0.4cm,
+                  rowsep=0.4cm,mcol=r]
+        & [name=A] Buch    &  \\
+[name=B]Fachbuch & [name=C]Lehrbuch & [name=D]Roman
+\end{psmatrix}
+\psset{nodesep=3pt,arrows=->}
+\ncline{A}{B} \ncline{A}{C} \ncline{A}{D} 
+\end{LTXexample}
+\vspace{2mm}
+
+\begin{LTXexample}[width=.4\linewidth]
+\begin{psmatrix}[emnode=r,colsep=0.4cm,
+                 rowsep=0.4cm,mcol=l]
+ & [name=A]Buch &  \\
+[name=B]Fachbuch & [name=C]Lehrbuch & [name=D]Roman
+\end{psmatrix}
+\psset{nodesep=3pt,arrows=->}
+\ncline{A}{B} \ncline{A}{C} \ncline{A}{D} 
+\end{LTXexample}
+
+\subsection{rowsep und colsep}\index{Abstand!Zellen und Zeilen}
+
+Mit \texttt{rowsep}\index{rowsep@\texttt{rowsep}} kann man den
+vertikalen und mit \texttt{colsep}\index{colsep@\texttt{colsep}}
+den horizontalen Abstand zwischen
+den Zeilen bzw. Zellen regulieren; welchen hinzuf\"ugen oder mit einem
+negativen Wert reduzieren (siehe Beispiele bei \texttt{name}).
+
+\subsection{mnodesize}\index{mnodesize@\texttt{mnodesize}}
+
+Im Defaultfall wird die Breite der Zellen\index{Zelle!Breite} von deren Inhalt bestimmt;
+innerhalb einer Zellenspalte von der mit dem gr\"o"sten Umfang. Mit
+\texttt{mnodesize=} kann allen Spalten dieselbe Breite gegeben werden.
+Dabei ist zu beachten, dass kein automatischen
+Zeilenumbruch\index{Zelle!Zeilenumbruch} in den Zellen
+erfolgt. Man kann in eine Zelle jedoch mehrere Zeilen über eine Tabelle
+einbringen.
+
+\begin{LTXexample}[width=.52\linewidth]
+\begin{psmatrix}[emnode=r,
+colsep=-0.4cm,rowsep=0.6cm,
+mnodesize=3cm]
+& [name=A] 
+  \begin{tabular}{c}Grafische\\Grundelemente\end{tabular} &  \\
+[name=B]Linien & [name=C]Polygone & 
+[name=D]Rahmen
+\end{psmatrix}
+\psset{nodesep=3pt,arrows=->}
+\ncline{A}{B} \ncline{A}{C} 
+\ncline{A}{D} 
+\end{LTXexample}
+
+Wenn der von \texttt{mnodesize=} festgelegte Raum nicht ausreichend ist
+erweitert sich einfach die Zelle.
+
+\subsection{psspan}\index{psspan@\texttt{psspan}}
+
+Mit \texttt{psspan\{n\}} k\"onnen Zellen analog zu
+\bs{multicolumn}\index{multicolumn@\texttt{\textbackslash{multicolumn}}} mehrere
+Zellen\index{Zellen!zusammenfassen} zusammengefasst werden.
+
+\begin{LTXexample}[width=.4\linewidth]
+\begin{psmatrix}[emnode=r,colsep=0.4cm,
+rowsep=0.4cm]
+[name=A]Buch  \psspan{3}  &  \\
+[name=B]Fachbuch  & [name=C]Lehrbuch & [name=D]Roman
+\end{psmatrix}
+\psset{nodesep=3pt,arrows=->}
+\ncline{A}{B} \ncline{A}{C} \ncline{A}{D} 
+\end{LTXexample}
+
+
+\section{Knotenverbindungen}\index{Knotenverbindung}
+
+Die Knotenverbindungen beginnen in der Regel mit \texttt{nc} und haben die Syntax:
+
+\begin{BDef}
+\bs{Knotenverbindung}\OptArgs\{Pfeile\}\{KnotenA\}\{KnotenB\}
+\end{BDef}
+
+Sie gehen von einem Knoten zu einem anderen, wenn es nicht anders festgelegt
+wurde, ist die Zielorientierung die Knotenmitte.
+
+Die Knotenverbindungen können über eine Reihe von Parametern geändert
+werden (vgl. \cite[S.\,43\,f]{PSTricks2} und \cite{siart}). Einige, die für das Zeichnen von
+Strukturen besonders relevant sind, werden in der nachfolgenden Tabelle 
+aufgelistet:\index{Knotenverbindung!Parameter}
+
+\begin{table}[H]
+\centering
+\caption{Parameter f\"ur Knotenverbindungen}
+\begin{tabular}{@{}lll@{}}
+Name & Werte & Vorgabe \\ \hline
+\texttt{linewidth} & <Wert>\OptEinh\ & 0.8pt \\
+\texttt{linecolor} & <Farbe>         & black \\
+\texttt{linestyle} & none|solid|dotted|dashed & solid \\
+\texttt{shadow}    & <an (true)/aus (false)> & false \\
+\texttt{shadowsize} & <Wert>\OptEinh\ & 3pt \\
+\texttt{shadowangle} & <Winkel>  & $-$45 \\
+\texttt{shadowcolor} & <Farbe> & darkgray \\
+\texttt{arrows} & <Pfeiltyp> & -- \\
+\texttt{doubleline} & <true/false> & false
+\end{tabular}
+\end{table}
+
+\subsection{ncline}
+
+Mit \Lcs{ncline} wird eine direkte Linie von einem Knoten zum anderen
+gezogen\footnote{Wenn Sie das nächste Beispiel mit den
+folgenden Beispielen vergleichen, können Sie auch sehen, dass eine bessere
+Positionierung in einer einfachen Box über die Umgebung
+\bs{\texttt{pspicture}}
+m\"oglich ist. Zumal ohne diese Umgebung die Kurvenlinien \"uber die Box
+hinausragen w\"urden, wie dies im ersten Beispiel zu \texttt{ncdiag} der
+Fall ist.}.
+
+\begin{LTXexample}[width=.35\linewidth]
+\begin{psmatrix}[emnode=r,colsep=2cm]
+ KnotenX   &  KnotenY
+\end{psmatrix}
+\ncline[linecolor=red]{1,1}{1,2}  
+\end{LTXexample}
+
+
+\subsection{ncarc}\xLcs{ncarc}
+
+Eine Kurve verbindet die Knoten. 
+
+\begin{LTXexample}[width=.35\linewidth]
+\begin{pspicture}(0,-0.5)(4,1)
+\begin{psmatrix}[emnode=r,colsep=2cm]
+        KnotenX   &  KnotenY
+\end{psmatrix}
+\ncarc[linecolor=red]{<->}{1,1}{1,2} 
+\end{pspicture}
+\end{LTXexample}
+
+Mit der Option \texttt{arcangle=}\index{arcangle@\texttt{arcangle}} kann der
+Steigungswinkel\index{Steigungswinkel} erh\"oht werden.
+
+\begin{LTXexample}[width=.35\linewidth]
+\begin{pspicture}(0,-0.5)(4,1)
+\begin{psmatrix}[emnode=r,colsep=2cm]
+        KnotenX   &  KnotenY
+\end{psmatrix}
+\ncarc[arcangle=60,linecolor=red]{<->}{1,1}{1,2}  
+\end{pspicture}
+\end{LTXexample}
+
+In der Sternchenversion wird der von der Kurve eingeschlossenen Raum mit
+der Linienfarbe ausgefüllt.
+
+\begin{LTXexample}[width=.4\linewidth]
+\begin{pspicture}(0,-0.5)(4,1)
+\begin{psmatrix}[emnode=r,colsep=2cm]
+        KnotenX   &  KnotenY
+\end{psmatrix}
+\ncarc*[arcangle=60,linecolor=red]{<->}{1,1}{1,2}  
+\end{pspicture}
+\end{LTXexample}
+
+
+\subsection{ncdiag}
+
+Mit \Lcs{ncdiag} wird eine Linie in drei Segmente "`zerlegt"'. Man kann
+diese Zerlegung über die Winkelfestlegungen (siehe folgendes Beispiel)
+steuern.
+
+\begin{LTXexample}[width=.4\linewidth]
+\begin{psmatrix}[emnode=r,colsep=2cm]
+        KnotenX   &  KnotenY
+\end{psmatrix}
+\ncdiag[angleA=90,angleB=-90,linecolor=red]{<->}{1,1}{1,2}  
+\end{LTXexample}
+
+Die Angabe \texttt{arm=0}\index{arm@\texttt{arm}} erzwingt eine gerade Linie.
+
+\begin{LTXexample}[width=.4\linewidth]
+\begin{psmatrix}[emnode=r,colsep=2cm]
+        KnotenX   &  KnotenY
+\end{psmatrix}
+\ncdiag[angleA=-90,angleB=90,arm=0,linecolor=red]{<->}{1,1}{1,2}  
+\end{LTXexample}
+
+\subsection{ncdiagg}
+
+\Lcs{ncdiagg} ist \Lcs{ncdiag} \"ahnlich. Für den Ausgangsknoten wird aber
+nur eine Verbindung gezeichnet.
+
+\begin{LTXexample}[width=.3\linewidth]
+\usepackage{pstricks-add}
+\begin{pspicture}(-1,-1)(4,6)
+  \circlenode{A}{A}\quad\circlenode{C}{C}
+  \rput(0,4){\circlenode{B}{B}}
+  \rput(1,5){\circlenode{D}{D}}
+  {\psset{arrowscale=2,linearc=0.2,
+    linecolor=red,armA=0.5,angleA=90}
+  \ncdiagg[lineAngle=-160]{->}{A}{B}
+  \ncput*[nrot=:U]{Linie I}
+  \ncdiagg[lineAngle=-160]{->}{C}{D}
+  \ncput*[nrot=:U]{Linie II}}
+\end{pspicture}
+\end{LTXexample}
+
+\subsection{ncbar}
+
+\Lcs{ncbar} arbeitet ähnlich wie \Lcs{ncdiag}. Zwei Knoten werden
+durch drei Linienteile verbunden.
+
+\begin{LTXexample}[width=.4\linewidth]
+\begin{pspicture}(0,1)(4,-2)
+\begin{psmatrix}[emnode=r]
+\psset{arrowscale=2}
+Verbinde {\rnode{A}{KnotenX}} mit 
+{\rnode{B}{KnotenY}}!
+\end{psmatrix}
+\ncbar[nodesep=3pt,angleA=-90,angleB=90,linecolor=red,arrows=<->,arrowscale=2,
+arm=0.8]{A}{B}
+\end{pspicture}
+\end{LTXexample}
+
+
+\subsection{ncbarr}
+
+\Lcs{ncbarr} verwendet f\"unf Liniensegmente und erstellt damit eine
+S-f\"ormige Verbindung.
+
+\begin{LTXexample}[width=.3\linewidth]
+\begin{psmatrix} 
+ & \circlenode{X}{X}\\[1cm]
+ & \circlenode{Y}{Y}
+\end{psmatrix}
+\ncbarr[angleA=0,linecolor=red]{X}{Y}
+\end{LTXexample}
+
+
+\subsection{ncangle}
+
+\Lcs{ncangle} erm\"oglich genauer berechnete dreiteilige Linien. Es
+arbeitet analog zu \Lcs{ncdiag}.
+
+\begin{LTXexample}[width=.37\linewidth]
+\begin{pspicture}(0,1)(4,-1)
+\begin{psmatrix}[emnode=r,colsep=2cm,
+                 rowsep=0.5cm]
+KnotenX &  KnotenY \\
+\end{psmatrix}
+\ncdiag[angleA=-90,angleB=135,armA=1cm,armB=1cm,
+linearc=.5,linecolor=red]{->}{1,1}{1,2}
+\end{pspicture}
+\end{LTXexample}
+
+\subsection{ncangles}
+
+\Lcs{ncangles} produziert viergliedrige Linien.
+
+\begin{LTXexample}[width=.4\linewidth]
+\begin{pspicture}(0,1)(4,-2.3)
+\begin{psmatrix}[emnode=r,colsep=2cm,
+                 rowsep=0.5cm]
+\psframebox{\emph{KnotenX}} & 
+\psframebox{\emph{KnotenY}}
+\end{psmatrix}
+\ncangles[angleA=-90,angleB=135,armA=1cm,
+          armB=1cm,
+linearc=.15,linecolor=red]{->}{1,1}{1,2}  
+\rput[bl](-5,-0.7){armA}
+\rput[rB](-0.4,0.5){armB}
+\end{pspicture}
+\end{LTXexample}
+
+\subsection{ncloop}
+
+\Lcs{ncloop} setzt f\"unfgliedrige Linien. Gegenüber \Lcs{ncangles}
+kommt noch die Option \texttt{loopsize}\index{loopsize@\texttt{loopsize}} hinzu, die die 
+H\"ohe für einen Loop (eine Schlinge) vorgibt.
+
+
+\begin{LTXexample}[width=.45\linewidth]
+\begin{pspicture}(-1.5,-1)(4,2)
+\rnode[lB]{A}{\psframebox{Knoten mit Schlinge}}
+\ncloop[angleB=180,loopsize=1,arm=.5,
+  linearc=.2,linecolor=red]{->}{A}{A}
+\ncput[npos=3.5,nrot=:U]{\psline{|<->|}%
+  (0.5,-0.2)(-0.5,-0.2)}
+\nbput[npos=3.5,nrot=:D,labelsep=.35cm]{%
+  {\small\texttt{loopsize}}}
+\end{pspicture} 
+\end{LTXexample}
+
+\subsection{nccurve}
+
+\Lcs{nccurve} setzt eine B\`ezierkurve zwischen zwei Knoten, die über
+die Winkel \texttt{angleA} und \texttt{angleB} sowie den
+Kurvenparameter\index{Kurvenparameter}
+\texttt{ncurv}\index{nccurv@\texttt{nccurv}} gesteuert werden kann.
+
+\begin{LTXexample}[width=.4\linewidth]
+\begin{psmatrix}[emnode=r,colsep=2cm,
+rowsep=0.5cm]
+{\rnode{A}{\psframebox{KnotenX}}} & \\
+& {\rnode{B}{\psframebox{KnotenY}}}
+\end{psmatrix}
+\nccurve[angleB=180,ncurv=0.9,
+linecolor=red]{A}{B}
+\end{LTXexample}
+
+\subsection{nccircle}
+
+\Lcs{nccircle} erzeugt \"uber einem Knoten einen ungef\"ullten oder gef\"ullten
+(Sternchenversion) Kreis.
+
+\vspace{2mm}
+\begin{LTXexample}[width=.25\linewidth]
+\begin{pspicture}(-1,-1)(3,2)
+\begin{psmatrix}[emnode=r]
+\rnode{A}{herum}
+\end{psmatrix}
+\nccircle[nodesep=3pt,linecolor=red]{->}{A}{.8cm}
+\kern 5pt
+\end{pspicture}
+\end{LTXexample}
+
+\vspace{2mm}
+\begin{LTXexample}[width=.25\linewidth]
+\begin{pspicture}(-1,-1)(3,2)
+\begin{psmatrix}[emnode=r]
+\rnode{A}{dar\"uber}
+\end{psmatrix}
+\nccircle*[nodesep=3pt,linecolor=lightgray]{->}{A}{1cm}
+\kern 5pt
+\end{pspicture}
+\end{LTXexample}
+
+\subsection{offset}
+
+Die Option \texttt{offset}\index{offset@\texttt{offset}} verschiebt, wie
+schon bei den Erl\"auterungen zu dem Parameter \texttt{name} angesprochen,
+die Verbindungslinie parallel zum eigentlich festgelegten Verlauf. Dies ist
+besonders bei zwei Linien sinnvoll und effektiv.
+Wenn man jede Linien einzeln modifizieren m\"ochte, kann dies mit
+\texttt{offsetA}\index{offsetA@\texttt{offsetA}}  und
+\texttt{offsetB}\index{offsetB@\texttt{offsetB}} 
+geschehen. Beispielsweise, wenn von
+einem Knoten zwei Verbindungen ausgehen sollen.
+
+\vspace{2mm}
+\begin{LTXexample}[width=.2\linewidth]
+\begin{psmatrix}[emnode=r,colsep=1cm,rowsep=0.4cm]
+[name=A]Buch  \\
+[name=B]Fachbuch \\
+[name=C]\LaTeX buch 
+\end{psmatrix}
+\psset{nodesep=3pt,arrows=->,linecolor=red,offset=0.3cm}
+\pcline[offsetA=0.3cm](A)(B)
+\pcline[offsetB=-0.3cm](A)(C)
+\end{LTXexample}
+
+
+\section{Linien beschriften}\index{Linienbeschriftung}
+
+\subsection{Beschriftung einf\"ugen}
+
+\psframebox{\parbox{0.65\textwidth}{
+\bs ncput\psframebox[framesep=2pt,fillstyle=solid,fillcolor=black!20,linecolor=black!20]{*}
+[\psframebox[framesep=2pt,fillstyle=solid,fillcolor=black!20,linecolor=black!20]{\texttt{Optionen}}]
+\{Beschriftung auf der Linie\}\\
+\bs naput\psframebox[framesep=2pt,fillstyle=solid,fillcolor=black!20,linecolor=black!20]{*}
+[\psframebox[framesep=2pt,fillstyle=solid,fillcolor=black!20,linecolor=black!20]{\texttt{Optionen}}]
+\{Beschriftung \"uber der Linie\}\\
+\bs nbput\psframebox[framesep=2pt,fillstyle=solid,fillcolor=black!20,linecolor=black!20]{*}
+[\psframebox[framesep=2pt,fillstyle=solid,fillcolor=black!20,linecolor=black!20]{\texttt{Optionen}}]
+\{Beschriftung unter der Linie\}
+}}
+
+\begin{LTXexample}[width=.4\linewidth]
+\begin{pspicture}(0,1)(4,-2)
+\begin{psmatrix}[emnode=r]
+\psset{arrowscale=2}
+Verbinde {\rnode{A}{KnotenX}} mit 
+{\rnode{B}{KnotenY}}!
+\end{psmatrix}
+\ncbar[nodesep=3pt,angleA=-90,angleB=90,
+linecolor=red,arrows=<->,arrowscale=2,arm=0.8]
+{A}{B}
+\ncput*{auf}
+\naput*{\"uber}
+\nbput*{unter}
+\end{pspicture}
+\end{LTXexample}
+
+Die angegebene Sternchenversion ist besser geeignet, da sie die Linien
+überschreibt und damit die Beschriftungen besser sichtbar sind (vgl. mit
+der nachfolgenden Beispielversion ohne Sternchen). Das betrifft besonders
+die \texttt{naput}-Version.
+
+\begin{LTXexample}[width=.4\linewidth]
+\begin{pspicture}(0,1)(4,-2)
+\begin{psmatrix}[emnode=r]
+\psset{arrowscale=2}
+Verbinde {\rnode{A}{KnotenX}} mit 
+{\rnode{B}{KnotenY}}!
+\end{psmatrix}
+\ncbar[nodesep=3pt,angleA=-90,angleB=90,
+linecolor=red,arrows=<->,arrowscale=2,arm=0.8]
+{A}{B}
+\ncput{auf}
+\naput{\"uber}
+\nbput{unter}
+\end{pspicture}
+\end{LTXexample}
+
+Ohne die Angabe von Optionen wird die Beschriftung auf den sichtbaren
+Linienteil geschrieben. Sie orientiert sich dabei an der Linienmitte.
+Mit \texttt{npos=}\index{npos@\texttt{npos}} und
+\text{nrot=}\index{nrot@\texttt{nrot}} kann diese Orientierung ge\"andert werden.
+
+Mit \Lcs{psset}\{labelset=\} kann der Abstand zwischen Label und Linie
+reguliert werden. Wenn der Wert auf 0pt gesetzt wird (also direkt über oder
+unter der Linie, sollte f\"ur \Lcs{naput} bzw. \Lcs{nbput}  nicht die
+Sternchenversion gew\"ahlt werden, die wahrscheinlich ohnehin nur f\"ur
+\Lcs{ncput} sinnvoll scheint. Die Nullversion ist immer dann zu nehmen,
+wenn es Probleme mit dem Sichtbarmachen des Labels gibt.
+
+\subsection{npos}
+
+\texttt{npos} ermöglicht die Platzierung der Beschriftung auf den
+verschiedenen Segmenten des entsprechenden Linientyps. Die Zahl gibt vor
+dem Punkt die Segmentnummer (0,1,2,\ldots) und nach dem Punkt den Abstand
+zum Segmentanfang an. Im folgenden Beispiel bekommt die Beschriftung den
+Wert 1.2 und steht damit auf dem zweiten Liniensegment 20\% vom
+Segmentanfang.
+
+\begin{table}[H]
+\centering
+\caption{Zusammenstellung der Kurzformen für die Drehwinkel}\label{tab:wind}
+  \begin{tabular}{@{}l|*{8}{>{\ttfamily}c}@{}}
+  \emph{Buchstabe} & U & L & D & R & N & W & S & E \\\hline
+  \emph{Bedeutung} & Up& Left&Down&Right&North&West&South&East\\
+  \emph{Enstprechung} &0&90&180&270&*0&*90&*180&*270
+%
+%    \begin{tabular}{@{}>{\ttfamily}llr@{}}
+%      \textrm{Buchstabe} & Bedeutung & Winkel\\\hline
+%      U & Up & 0\\
+%      L & Left & 90\\
+%      D & Down & 180\\
+%      R & Right & 270\\
+%      N & North & *0\\
+%      W & West & *90\\
+%      S & South & *180\\
+%      E & East & *270
+    \end{tabular}
+\end{table}
+
+\begin{LTXexample}[width=.4\linewidth]
+\begin{pspicture}(0,1)(4,-2)
+\begin{psmatrix}[emnode=r]
+\psset{arrowscale=2}
+Verbinde {\rnode{A}{KnotenX}} mit 
+{\rnode{B}{KnotenY}}!
+\end{psmatrix}
+\ncbar[nodesep=3pt,angleA=-90,angleB=90,
+linecolor=red,arrows=<->,arrowscale=2,arm=0.8]
+{A}{B}
+\ncput*[npos=1.2]{auf}
+\end{pspicture}
+\end{LTXexample}
+
+
+\subsection{nrot}
+
+\texttt{nrot=:Winkel/K\"urzel} erm\"oglicht es die Beschriftung zu
+drehen:
+
+\begin{table}[htb]
+\centering\tabcolsep=3pt
+\caption{Vergleich der verschiedenen Knotenverbindungen bez\"uglich ihrer
+Segmentanzahl}\label{tab:segmente}
+\hspace*{-1em}
+\begin{tabular}{@{} lccc | lccc @{}}
+\emph{Verbindung} & \emph{Segm.} & \emph{Bereich} & \emph{Vorgabe} &
+\emph{Verbindung} & \emph{Segm.} & \emph{Bereich} & \emph{Vorgabe}\\\hline
+ \Lcs{ncline}    & $1$ & $0\leq npos\leq 1$ & $0.5$ &
+ \Lcs{nccurve}   & $1$ & $0\leq npos\leq 1$ & $0.5$\\
+ \Lcs{ncarc}     & $1$ & $0\leq npos\leq 1$ & $0.5$ &
+ \Lcs{ncbar}     & $3$ & $0\leq npos\leq 3$ & $1.5$\\
+ \Lcs{ncdiag}    & $3$ & $0\leq npos\leq 3$ & $1.5$ &
+ \Lcs{ncdiagg}   & $2$ & $0\leq npos\leq 2$ & $0.5$\\
+ \Lcs{ncangle}   & $3$ & $0\leq npos\leq 3$ & $1.5$ &
+ \Lcs{ncangles}   & $4$ & $0\leq npos\leq 4$ & $1.5$\\
+ \Lcs{ncloop}    & $5$ & $0\leq npos\leq 5$ & $2.5$ &
+ \Lcs{nccircle}  & $1$ & $0\leq npos\leq 1$ & $0.5$\\
+\end{tabular}
+\end{table}
+
+
+\begin{LTXexample}[width=.4\linewidth]
+\begin{pspicture}(0,1)(4,-2)
+\begin{psmatrix}[emnode=r]
+\psset{arrowscale=2}
+Verbinde {\rnode{A}{KnotenX}} mit 
+{\rnode{B}{KnotenY}}!
+\end{psmatrix}
+\ncbar[nodesep=3pt,angleA=-90,angleB=90,
+linecolor=red,arrows=<->,arrowscale=2,arm=0.8]
+{A}{B}
+\ncput*[nrot=:L]{auf}
+\end{pspicture}
+\end{LTXexample}
+
+\section{Strukturbeispiele}
+
+
+
+Jetzt sollen noch einige wenige Beispiele von Struktur\"ubersichten
+vorgestellt werden, die von mir in der \texttt{pstmatrix}-Umgebung gesetzt wurden.
+
+\begin{figure}[H]\centering
+\begin{psmatrix}[colsep=0.8,rowsep=0.8]
+\psframebox[fillcolor=red!40,fillstyle=solid,doubleline=true]
+{$\left[\tabular{c}GF: /Pinguin/\\ WA: +N\endtabular\right]$}
+  & \psframebox[fillcolor=yellow!40,fillstyle=solid]{Vogel} \\
+\psframebox[fillcolor=blue!40,fillstyle=solid,doubleline=true]{\tabular{l}aufrecht\\ gehend\endtabular}
+  & \psshadowbox[fillcolor=red,fillstyle=solid,shadow=true,blur=true,shadowsize=5pt]{\textbf{Pinguin}} & 
+  \psframebox[fillcolor=blue!40,fillstyle=solid,doubleline=true]{flugunfähig}\\
+  & \psframebox[fillcolor=green!40,fillstyle=solid]{Felsenpinguin}
+\end{psmatrix}
+\ncline{1,1}{2,2} \naput{s}
+\ncline{1,2}{2,2} \naput{ob}
+\ncline{2,1}{2,2} \naput{a}  
+\ncline{2,2}{2,3} \naput{a}
+\ncline{2,2}{3,2} \naput{ub}
+\caption{Ein Frame}
+\end{figure}
+
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle=\rmfamily\small,backgroundcolor={\color{yellow!20}},frame=single]
+\usepackage{pst-node,pst-blur}
+\begin{psmatrix}[colsep=0.8,rowsep=0.8]
+\psframebox[fillcolor=red!40,fillstyle=solid,doubleline=true]
+{$\left[\tabular{c}GF: /Pinguin/\\ WA: +N\endtabular\right]$}
+  & \psframebox[fillcolor=yellow!40,fillstyle=solid]{Vogel} \\
+\psframebox[fillcolor=blue!40,fillstyle=solid,doubleline=true]{\tabular{l}aufrecht\\ gehend\endtabular}
+  & \psshadowbox[fillcolor=red,fillstyle=solid,shadow=true,blur=true,shadowsize=5pt]{\textbf{Pinguin}} & 
+  \psframebox[fillcolor=blue!40,fillstyle=solid,doubleline=true]{flugunfähig}\\
+  & \psframebox[fillcolor=green!40,fillstyle=solid]{Felsenpinguin}
+\end{psmatrix}
+\ncline{1,1}{2,2} \naput{s}
+\ncline{1,2}{2,2} \naput{ob}
+\ncline{2,1}{2,2} \naput{a}  
+\ncline{2,2}{2,3} \naput{a}
+\ncline{2,2}{3,2} \naput{ub}
+\end{lstlisting}
+
+
+\begin{figure}[H]\centering
+\begin{psmatrix}[colsep=0.8,rowsep=0.8]
+\psset{shortput=nab,framesep=10pt}
+  \psshadowbox[framearc=0.25,fillcolor=blue!20,fillstyle=solid,doubleline=true]{Lebewesen} &
+  \psframebox[fillcolor=yellow!40,fillstyle=solid]{allgemeine Kategorisierung}\\
+  \psshadowbox[framearc=0.25,fillcolor=red!40,fillstyle=solid,doubleline=true]{\textbf{Löwe}} 
+& \psframebox[fillcolor=red!40,fillstyle=solid,doubleline=true]{Basisebene}\\
+  \psshadowbox[framearc=0.25,fillcolor=blue!20,fillstyle=solid,doubleline=true]{Höhlenlöwe} 
+& \psframebox[fillcolor=green!30,fillstyle=solid]{spezielle Kategorisierung}
+\end{psmatrix}
+\psset{nodesep=2pt,arrows=->}
+\ncline[arrowscale=2]{1,1}{2,1}
+\ncline[arrowscale=2]{2,1}{3,1}
+\caption{Eine konzeptuelle Kategorisierung}
+\end{figure}
+
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle=\rmfamily\small,backgroundcolor={\color{yellow!20}},frame=single]
+\begin{psmatrix}[colsep=0.8,rowsep=0.8]
+\psset{shortput=nab,framesep=10pt}
+  \psshadowbox[framearc=0.25,fillcolor=blue!20,fillstyle=solid,doubleline=true]{Lebewesen} &
+  \psframebox[fillcolor=yellow!40,fillstyle=solid]{allgemeine Kategorisierung}\\
+  \psshadowbox[framearc=0.25,fillcolor=red!40,fillstyle=solid,doubleline=true]{\textbf{Löwe}} 
+& \psframebox[fillcolor=red!40,fillstyle=solid,doubleline=true]{Basisebene}\\
+  \psshadowbox[framearc=0.25,fillcolor=blue!20,fillstyle=solid,doubleline=true]{Höhlenlöwe} 
+& \psframebox[fillcolor=green!30,fillstyle=solid]{spezielle Kategorisierung}
+\end{psmatrix}
+\psset{nodesep=2pt,arrows=->}
+\ncline[arrowscale=2]{1,1}{2,1}
+\ncline[arrowscale=2]{2,1}{3,1}
+\end{lstlisting}
+
+\begin{figure}[H]\centering
+\psset{framearc=0.2,shadow=true,fillstyle=solid,shadowcolor=black!55}
+\begin{psmatrix}[colsep=0,rowsep=0.9]
+ & & \psframebox[fillcolor=blue!30]{Synchronie}\\
+ & \psframebox[fillcolor=red!30]{Sprache} & \\
+ & & \psframebox[fillcolor=blue!30]{Diachronie} \\
+\psframebox[fillcolor=red!30]{Menschliche Rede} & & \\
+ & \psframebox[fillcolor=red!30]{Sprechen} &
+ \end{psmatrix}
+ \psset{shadow=false}
+\ncline[arrows=->,arrowscale=2]{2,2}{1,3}
+\ncline[arrows=->,arrowscale=2]{2,2}{3,3}
+\ncline[arrows=->,arrowscale=2]{4,1}{2,2}
+\ncline[arrows=->,arrowscale=2]{4,1}{5,2}
+\caption{F. de Saussure zu Sprache}
+\end{figure}
+
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle=\rmfamily\small,backgroundcolor={\color{yellow!20}},frame=single]
+\psset{framearc=0.2,shadow=true,fillstyle=solid,shadowcolor=black!55}
+\begin{psmatrix}[colsep=0,rowsep=0.9]
+ & & \psframebox[fillcolor=blue!30]{Synchronie}\\
+ & \psframebox[fillcolor=red!30]{Sprache} & \\
+ & & \psframebox[fillcolor=blue!30]{Diachronie} \\
+\psframebox[fillcolor=red!30]{Menschliche Rede} & & \\
+ & \psframebox[fillcolor=red!30]{Sprechen} &
+ \end{psmatrix}
+ \psset{shadow=false}
+\ncline[arrows=->,arrowscale=2]{2,2}{1,3}
+\ncline[arrows=->,arrowscale=2]{2,2}{3,3}
+\ncline[arrows=->,arrowscale=2]{4,1}{2,2}
+\ncline[arrows=->,arrowscale=2]{4,1}{5,2}
+\end{lstlisting}
+
+\begin{figure}[H] \centering
+\begin{psmatrix}[emnode=r,colsep=0.5cm,rowsep=0.5cm,mcol=c]
+ &   &   &  &  <Metall> & \\
+ &   &   & [mnode=oval] 18 & &\\
+ <WERKZEUG> & & & & & \\
+ &   &    &  &[mnode=tri] 12 &\\
+ &   &    &    & & <arbeiten> \\
+ &   & [mnode=C,linestyle=dashed,radius=0.5,mcol=l] & & &\\
+ \fbox{12} & & & \fbox{51} &  & \\
+ & \fbox{36} & & & <Hammer> &\\
+ <Feile> & & <Zange> & & &
+\end{psmatrix}
+\psset{arrowscale=2,labelsep=0pt}
+\ncline{->}{1,5}{2,4}
+\ncarc{->}{4,5}{2,4}\naput[npos=0.4]{OBJ}
+\ncarc{->}{6,3}{4,5}\naput[npos=0.4]{INSTR}
+\ncline{<->}{6,3}{3,1}
+\ncarc{->}{6,3}{7,1}\naput[npos=0.4]{UB}
+\ncarc{->}{6,3}{7,4}\naput[npos=0.4]{UB}
+\ncarc{->}{6,3}{8,2}\naput[npos=0.4]{UB}
+\ncarc{->}{9,1}{7,1} \ncarc{->}{9,3}{8,2} 
+\ncarc{->}{8,5}{7,4} \ncline{->}{5,6}{4,5}
+\caption{Begriffliches Merkmalsnetz nach Hoffmann}
+\end{figure}
+
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle=\rmfamily\small,backgroundcolor={\color{yellow!20}},frame=single]
+\begin{psmatrix}[emnode=r,colsep=0.5cm,rowsep=0.5cm,mcol=c]
+ &   &   &  &  <Metall> & \\
+ &   &   & [mnode=oval] 18 & &\\
+ <WERKZEUG> & & & & & \\
+ &   &    &  &[mnode=tri] 12 &\\
+ &   &    &    & & <arbeiten> \\
+ &   & [mnode=C,linestyle=dashed,radius=0.5,mcol=l] & & &\\
+ \fbox{12} & & & \fbox{51} &  & \\
+ & \fbox{36} & & & <Hammer> &\\
+ <Feile> & & <Zange> & & &
+\end{psmatrix}
+\psset{arrowscale=2,labelsep=0pt}
+\ncline{->}{1,5}{2,4}
+\ncarc{->}{4,5}{2,4}\naput[npos=0.4]{OBJ}
+\ncarc{->}{6,3}{4,5}\naput[npos=0.4]{INSTR}
+\ncline{<->}{6,3}{3,1}
+\ncarc{->}{6,3}{7,1}\naput[npos=0.4]{UB}
+\ncarc{->}{6,3}{7,4}\naput[npos=0.4]{UB}
+\ncarc{->}{6,3}{8,2}\naput[npos=0.4]{UB}
+\ncarc{->}{9,1}{7,1} \ncarc{->}{9,3}{8,2} 
+\ncarc{->}{8,5}{7,4} \ncline{->}{5,6}{4,5}
+\end{lstlisting}
+
+\newpage
+\bgroup
+\appendix
+
+%\addcontentsline{toc}{section}{Literaturverzeichnis}
+
+\nocite{*}
+\raggedright
+
+\printbibliography
+\egroup
+\clearpage
+\addcontentsline{toc}{section}{Index}
+\printindex
+
+
+\end{document}
+
+


Property changes on: trunk/Master/texmf-dist/doc/generic/pst-node/psmatrix-docDE.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/generic/pst-node/pst-node-doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/generic/pst-node/pst-node-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pst-node/pst-node-doc.tex	2024-07-06 20:29:19 UTC (rev 71723)
+++ trunk/Master/texmf-dist/doc/generic/pst-node/pst-node-doc.tex	2024-07-06 20:29:33 UTC (rev 71724)
@@ -1,5 +1,5 @@
-\RequirePackage{pdfmanagement-testphase}
-\DeclareDocumentMetadata{}
+%\RequirePackage{pdfmanagement-testphase}
+\DocumentMetadata{}
 %% $Id: pst-node-doc.tex 438 2022-01-31 17:45:26Z herbert $
 \documentclass[fontsize=11pt,english,BCOR=10mm,DIV=12,bibliography=totoc,parskip=false,headings=small,
     headinclude=false,footinclude=false,oneside]{pst-doc}
@@ -75,7 +75,8 @@
 
 \vfill
 \noindent
-Thanks to:  Marco Daniel; Denis Girou; Thomas Iyer; Rolf Niepraschk; Sebastian Rahtz; Andi Setiawan;
+Thanks to:  Marco Daniel; Denis Girou; Thomas Iyer; Rolf Niepraschk; Sebastian Rahtz; 
+Erich Schmidt; Andi Setiawan;
 \end{abstract}
 
 \clearpage
@@ -2489,13 +2490,12 @@
 \end{pspicture} 
 \end{LTXexample}
 
-
  
 \begin{BDef}
 \Lcs{fnpnode}\Largb{xval}\Largb{expression in x}\Largb{nodename}
 \end{BDef}
 
- sets a single node on the graph. Eg, 
+ sets a single node on the graph, eg: 
 
 \begin{verbatim}
 \fnpnode{.5}{x x 1 add mul 2 div}{P}

Modified: trunk/Master/texmf-dist/tex/generic/pst-node/pst-node.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/pst-node/pst-node.tex	2024-07-06 20:29:19 UTC (rev 71723)
+++ trunk/Master/texmf-dist/tex/generic/pst-node/pst-node.tex	2024-07-06 20:29:33 UTC (rev 71724)
@@ -1,4 +1,4 @@
-% $Id: pst-node.tex 438 2022-01-31 17:45:26Z herbert $
+% $Id: pst-node.tex 654 2022-11-21 06:19:14Z herbert $
 %%
 %% BEGIN pst-node.tex
 %%
@@ -18,8 +18,8 @@
 \ifx\PSTricksLoaded\endinput\else\input pstricks.tex \fi\relax
 \ifx\PSTXKeyLoaded\endinput\else \input pst-xkey \fi
 %
-\def\fileversion{1.43}
-\def\filedate{2022/01/31}
+\def\fileversion{1.44}
+\def\filedate{2024/07/04}
 \message{ v\fileversion, \filedate}
 %
 \edef\TheAtCode{\the\catcode`\@}
@@ -1402,10 +1402,10 @@
     /AlphaStrich \psk at angleA\space def
     /unit \pst at number\psyunit \pst at number\psxunit div def % yunit/xunit
 %            
-    /dx XB XA sub  def
-    /dy YB YA sub \ifPst at trueAngle\space unit mul \fi\space def
-    /laenge dy dup mul dx dup mul add sqrt #3 mul def
-    /Alpha dy dx atan def 
+    /dx__ XB XA sub  def
+    /dy__ YB YA sub \ifPst at trueAngle\space unit mul \fi\space def
+    /laenge dy__ dup mul dx__ dup mul add sqrt #3 mul def
+    /Alpha dy__ dx__ atan def 
     /beta Alpha AlphaStrich add def
     laenge beta cos mul XA add
     laenge beta sin mul \ifPst at trueAngle\space unit div \fi\space YA add ){#4}%
@@ -1578,22 +1578,23 @@
 %
 \def\psparnode#1#2#3{%
 % #1=t value, #2=x(t) y(t) in PS form,#3=node name,
-  \pnode(!/t #1 def #2){#3}%
-  \pnode(!/t #1 .001 sub def #2 
-          /t #1 .001 add def 
-           #2 3 -1 roll sub 3 1 roll sub neg 
-           2 copy Pyth dup 3 1 roll div 3 1 roll div ){#3tang}}%unit tangent vector at t
-%
+  \pnode(! /t #1 def #2){#3}%
+  \pnode(! /t #1 dup abs 1 lt {0.001 sub}{dup 0 gt {0.999} {1.001} ifelse mul} ifelse def 
+           #2
+           /t #1 dup abs 1 lt {0.001 add}{dup 0 lt {0.999} {1.001} ifelse mul} ifelse def 
+           #2 3 -1 roll sub 3 1 roll exch sub 2 copy exch dup mul exch dup mul add sqrt 
+           dup 3 1 roll div 3 1 roll div){#3tang}%  unit tangent vector at t
+}% 
+
 \def\algparnode#1#2#3{%
 % #1=t value, #2=x(t) | y(t) in alg form,#3=node name,
-%\pstVerb{tx at Dict begin /t #1 def /Func (#2) AlgParser cvx def end}
-%\pnode(!Func){#3}}%
   \pstVerb{tx at Dict begin /Func (#2) AlgParser cvx def end }
   \pnode(!/t #1 def Func){#3}
-  \pnode(!/t #1 .001 sub def Func 
-          /t #1 .001 add def 
-          Func 3 -1 roll sub 3 1 roll sub neg 
-          2 copy Pyth dup 3 1 roll div 3 1 roll div ){#3tang}%unit tangent vector at t
+  \pnode(!/t #1 .001 sub def 
+          Func 
+          /t #1 dup abs 1 lt {0.001 add}{dup 0 lt {0.999} {1.001} ifelse mul } ifelse def 
+          Func 3 -1 roll sub 3 1 roll exch sub 2 copy exch dup mul exch dup mul add sqrt 
+           dup 3 1 roll div 3 1 roll div){#3tang}%  unit tangent vector at t
 }%
 %
 \def\nodex#1{%

Modified: trunk/Master/texmf-dist/tex/latex/pst-node/pst-node.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/pst-node/pst-node.sty	2024-07-06 20:29:19 UTC (rev 71723)
+++ trunk/Master/texmf-dist/tex/latex/pst-node/pst-node.sty	2024-07-06 20:29:33 UTC (rev 71724)
@@ -38,7 +38,7 @@
   [\filedate\space \fileversion\space `pst-node' (tvz,hv)]
 \IfFileExists{pst-node.pro}{%
     \ProvidesFile{pst-node.pro}
-      [2011/09/18 v. 1.14,  PostScript prologue file (hv)]
+      [2014/01/27 v. 1.15,  PostScript prologue file (hv)]
       \@addtofilelist{pst-node.pro}}{}%
 \fi
 \endinput



More information about the tex-live-commits mailing list.