diff options
author | Karl Berry <karl@freefriends.org> | 2024-07-06 20:29:33 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2024-07-06 20:29:33 +0000 |
commit | e424d9fc5a40de4eb88279ebd7cc052440c4c8c9 (patch) | |
tree | 9bd6ba3fbb5e5faf49593b30dd518f697b385223 | |
parent | d67153de15761383b090f2f3b8ea647ba6bb1cf8 (diff) |
pst-node (6jul24)
git-svn-id: svn://tug.org/texlive/trunk@71724 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-node/Changes | 3 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-node/README | 3 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-node/psmatrix-docDE.bib | 35 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-node/psmatrix-docDE.pdf | bin | 0 -> 229201 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-node/psmatrix-docDE.tex | 1155 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-node/pst-node-doc.pdf | bin | 513402 -> 527479 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-node/pst-node-doc.tex | 10 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/pst-node/pst-node.tex | 39 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/pst-node/pst-node.sty | 2 |
9 files changed, 1218 insertions, 29 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-node/Changes b/Master/texmf-dist/doc/generic/pst-node/Changes index cac34e69124..25e9da74cc9 100644 --- a/Master/texmf-dist/doc/generic/pst-node/Changes +++ b/Master/texmf-dist/doc/generic/pst-node/Changes @@ -1,5 +1,6 @@ ----- pst-node.tex -1.43 2021-09-15 - fix for lualatex and empty value in \psk@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@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 diff --git a/Master/texmf-dist/doc/generic/pst-node/README b/Master/texmf-dist/doc/generic/pst-node/README index 3f4fd08e595..8e820c85580 100644 --- a/Master/texmf-dist/doc/generic/pst-node/README +++ b/Master/texmf-dist/doc/generic/pst-node/README @@ -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. diff --git a/Master/texmf-dist/doc/generic/pst-node/psmatrix-docDE.bib b/Master/texmf-dist/doc/generic/pst-node/psmatrix-docDE.bib new file mode 100644 index 00000000000..f2a5d82e847 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-node/psmatrix-docDE.bib @@ -0,0 +1,35 @@ +@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, +} + + +@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, +} + + + + +@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} +} + + diff --git a/Master/texmf-dist/doc/generic/pst-node/psmatrix-docDE.pdf b/Master/texmf-dist/doc/generic/pst-node/psmatrix-docDE.pdf Binary files differnew file mode 100644 index 00000000000..cb72a62b43e --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-node/psmatrix-docDE.pdf diff --git a/Master/texmf-dist/doc/generic/pst-node/psmatrix-docDE.tex b/Master/texmf-dist/doc/generic/pst-node/psmatrix-docDE.tex new file mode 100644 index 00000000000..8ca96eab4e7 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-node/psmatrix-docDE.tex @@ -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} + + diff --git a/Master/texmf-dist/doc/generic/pst-node/pst-node-doc.pdf b/Master/texmf-dist/doc/generic/pst-node/pst-node-doc.pdf Binary files differindex 8be7b3ec525..5f6e785518e 100644 --- a/Master/texmf-dist/doc/generic/pst-node/pst-node-doc.pdf +++ b/Master/texmf-dist/doc/generic/pst-node/pst-node-doc.pdf diff --git a/Master/texmf-dist/doc/generic/pst-node/pst-node-doc.tex b/Master/texmf-dist/doc/generic/pst-node/pst-node-doc.tex index 5ff16cb6cf5..5b231894462 100644 --- a/Master/texmf-dist/doc/generic/pst-node/pst-node-doc.tex +++ b/Master/texmf-dist/doc/generic/pst-node/pst-node-doc.tex @@ -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 @@ when also running the main package \LPack{pstricks} with this option. \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 @@ For example, \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} diff --git a/Master/texmf-dist/tex/generic/pst-node/pst-node.tex b/Master/texmf-dist/tex/generic/pst-node/pst-node.tex index ed3ef60a4b5..8e618ef2208 100644 --- a/Master/texmf-dist/tex/generic/pst-node/pst-node.tex +++ b/Master/texmf-dist/tex/generic/pst-node/pst-node.tex @@ -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 @@ tx@NodeDict \pst@tempg known /AlphaStrich \psk@angleA\space def /unit \pst@number\psyunit \pst@number\psxunit div def % yunit/xunit % - /dx XB XA sub def - /dy YB YA sub \ifPst@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@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@trueAngle\space unit div \fi\space YA add ){#4}% @@ -1578,22 +1578,23 @@ tx@NodeDict \pst@tempg known % \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@Dict begin /t #1 def /Func (#2) AlgParser cvx def end} -%\pnode(!Func){#3}}% \pstVerb{tx@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{% diff --git a/Master/texmf-dist/tex/latex/pst-node/pst-node.sty b/Master/texmf-dist/tex/latex/pst-node/pst-node.sty index 43edb5aa2b0..a7f494f0312 100644 --- a/Master/texmf-dist/tex/latex/pst-node/pst-node.sty +++ b/Master/texmf-dist/tex/latex/pst-node/pst-node.sty @@ -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 |