From 5ad7dc311f361321a959e40505240a7d1b5e5cd2 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 18 Sep 2013 22:21:57 +0000 Subject: pst-node (18sep13) git-svn-id: svn://tug.org/texlive/trunk@31694 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/generic/pst-node/Changes | 2 + .../doc/generic/pst-node/more_docs/Makefile | 53 - .../generic/pst-node/more_docs/psmatrix-docDE.bib | 35 - .../generic/pst-node/more_docs/psmatrix-docDE.pdf | Bin 207607 -> 0 bytes .../generic/pst-node/more_docs/psmatrix-docDE.tex | 1154 -------------------- .../doc/generic/pst-node/psmatrix-docDE.bib | 35 + .../doc/generic/pst-node/psmatrix-docDE.pdf | Bin 0 -> 207607 bytes .../doc/generic/pst-node/psmatrix-docDE.tex | 1154 ++++++++++++++++++++ .../doc/generic/pst-node/pst-node-doc.pdf | Bin 548107 -> 548122 bytes .../texmf-dist/doc/generic/pst-node/pst-node97.tex | 390 ------- Master/texmf-dist/source/generic/pst-node/Makefile | 99 -- .../texmf-dist/tex/generic/pst-node/pst-node.tex | 8 +- .../texmf-dist/tex/generic/pst-node/pst-node97.tex | 390 +++++++ Master/tlpkg/libexec/ctan2tds | 63 +- 14 files changed, 1618 insertions(+), 1765 deletions(-) delete mode 100644 Master/texmf-dist/doc/generic/pst-node/more_docs/Makefile delete mode 100644 Master/texmf-dist/doc/generic/pst-node/more_docs/psmatrix-docDE.bib delete mode 100644 Master/texmf-dist/doc/generic/pst-node/more_docs/psmatrix-docDE.pdf delete mode 100644 Master/texmf-dist/doc/generic/pst-node/more_docs/psmatrix-docDE.tex create mode 100644 Master/texmf-dist/doc/generic/pst-node/psmatrix-docDE.bib create mode 100644 Master/texmf-dist/doc/generic/pst-node/psmatrix-docDE.pdf create mode 100644 Master/texmf-dist/doc/generic/pst-node/psmatrix-docDE.tex delete mode 100644 Master/texmf-dist/doc/generic/pst-node/pst-node97.tex delete mode 100644 Master/texmf-dist/source/generic/pst-node/Makefile create mode 100644 Master/texmf-dist/tex/generic/pst-node/pst-node97.tex (limited to 'Master') diff --git a/Master/texmf-dist/doc/generic/pst-node/Changes b/Master/texmf-dist/doc/generic/pst-node/Changes index 2e391b1bf39..ee5be9abfb3 100644 --- a/Master/texmf-dist/doc/generic/pst-node/Changes +++ b/Master/texmf-dist/doc/generic/pst-node/Changes @@ -1,7 +1,9 @@ ----- pst-node.tex +1.30 2013-09-17 - use \expandafter with \nodexn for the first argument 1.29 2013-07-13 - fix bug with missing angle in special node coordinates - fix for fnpnodes (argument must be in {}) + - fix typo in the documentation 1.28 2013-07-10 - added \pnodes (plural) for multiple node definition 1.27 2013-04-12 - added macro \Cnodeput which takes radius=... into account diff --git a/Master/texmf-dist/doc/generic/pst-node/more_docs/Makefile b/Master/texmf-dist/doc/generic/pst-node/more_docs/Makefile deleted file mode 100644 index 54dff4a12f4..00000000000 --- a/Master/texmf-dist/doc/generic/pst-node/more_docs/Makefile +++ /dev/null @@ -1,53 +0,0 @@ - -# `Makefile' for `pst-node-doc.pdf', hv, 2010/01/22 - -.SUFFIXES : .tex .ltx .dvi .ps .pdf .eps - -PACKAGE = psmatrix - -MAIN = $(PACKAGE)-docDE - -LATEX = latex - -ARCHNAME = $(MAIN)-$(shell date +%y%m%d) - -ARCHFILES = $(PACKAGE).sty $(PACKAGE).tex $(PACKAGE).pro $(MAIN).tex README Changes Makefile - -TDS = ~/PSTricks/PSTricks-TDS - -all : doc clean -# clean -doc: $(MAIN).pdf - -$(MAIN).pdf : $(MAIN).ps - GS_OPTIONS=-dAutoRotatePages=/None ps2pdf $< - -$(MAIN).ps : $(MAIN).dvi - dvips $< - -$(MAIN).dvi : $(MAIN).tex - $(LATEX) $< - $(LATEX) $< - if ! test -f $(basename $<).glo ; then touch $(basename $<).glo; fi - if ! test -f $(basename $<).idx ; then touch $(basename $<).idx; fi - makeindex -s gglo.ist -t $(basename $<).glg -o $(basename $<).gls \ - $(basename $<).glo - makeindex -s pst-doc.ist -t $(basename $<).ilg -o $(basename $<).ind \ - $(basename $<).idx - bibtex $(basename $<) - $(LATEX) $< - $(LATEX) $< - -clean : - $(RM) $(addprefix $(MAIN), .log .aux .glg .glo .gls .ilg .idx .ind .tmp .toc .out ) - $(RM) $(addprefix $(MAIN), .dvi .ps .blg .bbl) - rm temp* - -veryclean : clean - $(RM) $(addprefix $(MAIN), .pdf .bbl .blg) - -arch : - zip $(ARCHNAME).zip $(ARCHFILES) - - -# EOF diff --git a/Master/texmf-dist/doc/generic/pst-node/more_docs/psmatrix-docDE.bib b/Master/texmf-dist/doc/generic/pst-node/more_docs/psmatrix-docDE.bib deleted file mode 100644 index f2a5d82e847..00000000000 --- a/Master/texmf-dist/doc/generic/pst-node/more_docs/psmatrix-docDE.bib +++ /dev/null @@ -1,35 +0,0 @@ -@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/more_docs/psmatrix-docDE.pdf b/Master/texmf-dist/doc/generic/pst-node/more_docs/psmatrix-docDE.pdf deleted file mode 100644 index bef4b6ce1f2..00000000000 Binary files a/Master/texmf-dist/doc/generic/pst-node/more_docs/psmatrix-docDE.pdf and /dev/null differ diff --git a/Master/texmf-dist/doc/generic/pst-node/more_docs/psmatrix-docDE.tex b/Master/texmf-dist/doc/generic/pst-node/more_docs/psmatrix-docDE.tex deleted file mode 100644 index 8317ba5f809..00000000000 --- a/Master/texmf-dist/doc/generic/pst-node/more_docs/psmatrix-docDE.tex +++ /dev/null @@ -1,1154 +0,0 @@ -%% $Id: pstmatrix-doc.tex ch. roemer $ -\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} - -\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=} 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} & \OptEinh\ & 0.8pt \\ -\texttt{linecolor} & & black \\ -\texttt{linestyle} & none|solid|dotted|dashed & solid \\ -\texttt{shadow} & & false \\ -\texttt{shadowsize} & \OptEinh\ & 3pt \\ -\texttt{shadowangle} & & $-$45 \\ -\texttt{shadowcolor} & & darkgray \\ -\texttt{arrows} & & -- \\ -\texttt{doubleline} & & 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] - & & & & & \\ - & & & [mnode=oval] 18 & &\\ - & & & & & \\ - & & & &[mnode=tri] 12 &\\ - & & & & & \\ - & & [mnode=C,linestyle=dashed,radius=0.5,mcol=l] & & &\\ - \fbox{12} & & & \fbox{51} & & \\ - & \fbox{36} & & & &\\ - & & & & & -\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] - & & & & & \\ - & & & [mnode=oval] 18 & &\\ - & & & & & \\ - & & & &[mnode=tri] 12 &\\ - & & & & & \\ - & & [mnode=C,linestyle=dashed,radius=0.5,mcol=l] & & &\\ - \fbox{12} & & & \fbox{51} & & \\ - & \fbox{36} & & & &\\ - & & & & & -\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{PSTricks2} -\nocite{pstricks2007} -\raggedright -\bibliographystyle{gerplain} - -\bibliography{psmatrix-docDE} -\egroup -\clearpage -\addcontentsline{toc}{section}{Index} -\printindex - - -\end{document} - - 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 new file mode 100644 index 00000000000..bef4b6ce1f2 Binary files /dev/null and b/Master/texmf-dist/doc/generic/pst-node/psmatrix-docDE.pdf differ 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..8317ba5f809 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-node/psmatrix-docDE.tex @@ -0,0 +1,1154 @@ +%% $Id: pstmatrix-doc.tex ch. roemer $ +\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} + +\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=} 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} & \OptEinh\ & 0.8pt \\ +\texttt{linecolor} & & black \\ +\texttt{linestyle} & none|solid|dotted|dashed & solid \\ +\texttt{shadow} & & false \\ +\texttt{shadowsize} & \OptEinh\ & 3pt \\ +\texttt{shadowangle} & & $-$45 \\ +\texttt{shadowcolor} & & darkgray \\ +\texttt{arrows} & & -- \\ +\texttt{doubleline} & & 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] + & & & & & \\ + & & & [mnode=oval] 18 & &\\ + & & & & & \\ + & & & &[mnode=tri] 12 &\\ + & & & & & \\ + & & [mnode=C,linestyle=dashed,radius=0.5,mcol=l] & & &\\ + \fbox{12} & & & \fbox{51} & & \\ + & \fbox{36} & & & &\\ + & & & & & +\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] + & & & & & \\ + & & & [mnode=oval] 18 & &\\ + & & & & & \\ + & & & &[mnode=tri] 12 &\\ + & & & & & \\ + & & [mnode=C,linestyle=dashed,radius=0.5,mcol=l] & & &\\ + \fbox{12} & & & \fbox{51} & & \\ + & \fbox{36} & & & &\\ + & & & & & +\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{PSTricks2} +\nocite{pstricks2007} +\raggedright +\bibliographystyle{gerplain} + +\bibliography{psmatrix-docDE} +\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 index 7e3bf7948ef..81b855418b8 100644 Binary files a/Master/texmf-dist/doc/generic/pst-node/pst-node-doc.pdf and b/Master/texmf-dist/doc/generic/pst-node/pst-node-doc.pdf differ diff --git a/Master/texmf-dist/doc/generic/pst-node/pst-node97.tex b/Master/texmf-dist/doc/generic/pst-node/pst-node97.tex deleted file mode 100644 index 5df456f3d0b..00000000000 --- a/Master/texmf-dist/doc/generic/pst-node/pst-node97.tex +++ /dev/null @@ -1,390 +0,0 @@ -%% BEGIN: pst-node.tex -%% Generated on <1993/3/12> from `pst-node.doc'. -%% For use with the PostScript header file `pst-node.pro'. -%% -\def\fileversion{0.93a} -\def\filedate{93/03/12} -%% -%% pst-node.tex: Node macros for PSTricks. -%% See the PSTricks read-me file and the User's Guide for documentation. -%% -%% COPYRIGHT 1993, by Timothy Van Zandt, tvz@Princeton.EDU -%% -%% Copying of part or all of any file in the pstricks.tex package -%% is allowed under the following conditions only: -%% (1) You may freely distribute unchanged copies of the files. Please -%% include the documentation when you do so. -%% (2) You may modify a renamed copy of any file, but only for personal -%% use or use within an organization. -%% (3) You may copy fragments from the files, for personal use or for use -%% in a macro package for distribution, as long as credit is given -%% where credit is due. -%% -%% You are NOT ALLOWED to take money for the distribution or use of -%% these files or modified versions or fragments thereof, except for -%% a nominal charge for copying etc. -%% -\csname PSTnodesLoaded\endcsname -\let\PSTnodesLoaded\endinput -\ifx\PSTricksLoaded\endinput\else -\def\next{\input pstricks.tex}\expandafter\next -\fi -\edef\TheAtCode{\the\catcode`\@} -\catcode`\@=11 -\pstheader{pst-node.pro} -\def\pst@nodedict{tx@NodeDict begin } -\def\pst@getnode#1#2{% -\pst@expandafter\pst@@getnode{#1} * \@nil{#1}#2} -\def\pst@@getnode#1#2 #3\@nil#4#5{% -\ifcat#1a\relax -\def#5{/TheNode#1#2 }% -\else -\def#5{/BadNode }% -\@pstrickserr{Bad node name: `#4'}\@ehpa -\fi} -\def\tx@NewNode{NewNode } -\def\pst@newnode#1#2#3#4{% -\leavevmode -\pst@getnode{#1}\pst@thenode -\pst@Verb{% -\pst@nodedict -{ #3 } \pst@thenode #2 { #4 } \tx@NewNode -end}} -\def\tx@InitPnode{InitPnode } -\def\pnode{\@ifnextchar({\pnode@}{\pnode@(0,0)}} -\def\pnode@(#1)#2{% -\pst@@getcoor{#1}% -\pst@newnode{#2}{10}{\pst@coor}{\tx@InitPnode}% -\ignorespaces} -\def\tx@InitCnode{InitCnode } -\def\cnode{\def\pst@par{}\pst@object{cnode}} -\def\cnode@i{\@ifnextchar({\cnode@ii}{\cnode@ii(0,0)}} -\def\cnode@ii(#1)#2#3{% -\begingroup -\use@par -\pscircle@do(#1){#2}% -\pst@@getcoor{#1}% -\pssetlength\pst@dimc{#2}% -\pst@newnode{#3}{11}{% -\pst@coor -\pst@number\pst@dimc -\pst@number\pslinewidth -\psk@dimen .5 sub mul sub}% -{\tx@InitCnode}% -\endgroup -\ignorespaces} -\def\cnodeput{\def\pst@par{}\pst@object{cnodeput}} -\def\cnodeput@i{% -\begingroup -\pst@killglue -\leavevmode -\pst@getrputrot -\cnodeput@ii} -\def\cnodeput@ii(#1)#2{% -\pst@makebox{\cput@iii{\cnodeput@iii{#2}}(#1)}} -\def\cnodeput@iii#1{% -\pst@newnode{#1}{11}{\pscirclebox@iv \pst@number\pslinewidth add}% -{\tx@InitCnode}} -\def\circlenode{\def\pst@par{}\pst@object{circlenode}} -\def\circlenode@i#1{\pst@makebox{\pscirclebox@ii{\cnodeput@iii{#1}}}} -\def\tx@GetRnodePos{GetRnodePos } -\def\tx@InitRnode{InitRnode } -\def\rnode{\begingroup\pst@getref\rnode@} -\def\rnode@#1{\pst@makebox{\rnode@@{#1}}} -\def\rnode@@#1{% -\ifx\refpoint@x\relax -\def\refpoint@y{.5}% -\def\refpoint@x{.5}% -\fi -\pst@newnode{#1}{16}{}{% -\ifx\refpoint@x\relax .5 \else \refpoint@y\space \fi -\pst@number{\ht\pst@hbox}% -\pst@number{\dp\pst@hbox}% -\ifx\refpoint@y\@empty true \else false \fi -\refpoint@x\space -\pst@number{\wd\pst@hbox}% -\tx@InitRnode}% -\box\pst@hbox -\endgroup} -\def\tx@InitRNode{InitRNode } -\def\Rnode{\@ifnextchar({\Rnode@}{\Rnode@(\RnodeRef)}} -\def\Rnode@(#1)#2{\pst@makebox{\Rnode@@(#1){#2}}} -\def\Rnode@@(#1)#2{% -\begingroup -\pst@@getcoor{#1}% -\pst@newnode{#2}{16}{% -\pst@number{\ht\pst@hbox}\pst@number{\dp\pst@hbox}% -\pst@number{\wd\pst@hbox}\pst@coor}{\tx@InitRNode}% -\box\pst@hbox -\endgroup} -\def\RnodeRef{0,.7ex} -\def\tx@GetOnodePos{GetOnodePos } -\def\ovalnode{\def\pst@par{}\pst@object{ovalnode}} -\def\ovalnode@i#1{\pst@makebox{\psovalbox@ii{\ovalnode@ii{#1}}}} -\def\ovalnode@ii#1{% -\pst@newnode{#1}{14}{}{% -/X \pst@number{\wd\pst@hbox}2 div def -/Y \pst@number\pst@dimg 2 div \pst@number{\dp\pst@hbox}sub def -/w \pst@number\pst@dima def -/h \pst@number\pst@dimb def -/NodePos { \tx@GetOnodePos } def}} -\def\tx@GetCenter{GetCenter } -\def\tx@GetAngle{GetAngle } -\def\tx@GetEdge{GetEdge } -\def\tx@GetPos{GetPos } -\def\check@arrow#1#2{% -\check@@arrow#2-\@nil -\if@pst -\addto@par{arrows=#2}% -\def\next{#1}% -\else -\def\next{#1{#2}}% -\fi -\next} -\def\check@@arrow#1-#2\@nil{% -\ifx\@nil#2\@nil\@pstfalse\else\@psttrue\fi} -\def\tx@InitNC{InitNC } -\def\nc@object#1#2#3#4{% -\begin@OpenObj -\showpointsfalse -\pst@getnode{#1}\pst@tempa -\pst@getnode{#2}\pst@tempb -\gdef\lputpos@default{#3}% -\addto@pscode{% -\pst@nodedict -\psk@offsetA -\psk@offsetB neg -\psk@nodesepA -\psk@nodesepB -\pst@tempa -\pst@tempb -\tx@InitNC { #4 } if -end}% -\def\use@pscode{% -\pst@Verb{gsave \tx@STV newpath \pst@code\space grestore}% -\gdef\pst@code{}}% -\end@OpenObj} -\def\lputpos@default{.5} -\def\pc@object#1{% -\@ifnextchar({\pc@@object#1}{\pst@getarrows{\pc@@object#1}}} -\def\pc@@object#1(#2)(#3){% -\pnode(#2){@@A}\pnode(#3){@@B}% -#1{@@A}{@@B}} -\def\psset@nodesepA#1{\pst@getlength{#1}\psk@nodesepA} -\def\psset@nodesepB#1{\pst@getlength{#1}\psk@nodesepB} -\def\psset@nodesep#1{% -\psset@nodesepA{#1}\let\psk@nodesepB\psk@nodesepA} -\psset@nodesep{0} -\def\psset@offsetA#1{\pst@getlength{#1}\psk@offsetA} -\def\psset@offsetB#1{\pst@getlength{#1}\psk@offsetA} -\def\psset@offset#1{% -\psset@offsetA{#1}\let\psk@offsetB\psk@offsetA} -\psset@offset{0} -\def\psset@armA#1{\pst@getlength{#1}\psk@armA} -\def\psset@armB#1{\pst@getlength{#1}\psk@armB} -\def\psset@arm#1{\psset@armA{#1}\let\psk@armB\psk@armA} -\psset@arm{10pt} -\def\psset@angleA#1{\pst@getangle{#1}\psk@angleA} -\def\psset@angleB#1{\pst@getangle{#1}\psk@angleB}% -\def\psset@angle#1{\pst@getangle{#1}\psk@angleA -\let\psk@angleB\psk@angleA} -\psset@angle{0} -\def\psset@arcangleA#1{\pst@getangle{#1}\psk@arcangleA} -\def\psset@arcangleB#1{\pst@getangle{#1}\psk@arcangleB}% -\def\psset@arcangle#1{\pst@getangle{#1}\psk@arcangleA -\let\psk@arcangleB\psk@arcangleA} -\psset@arcangle{8} -\def\psset@ncurvA#1{\pst@checknum{#1}\psk@ncurvA} -\def\psset@ncurvB#1{\pst@checknum{#1}\psk@ncurvB}% -\def\psset@ncurv#1{\psset@ncurvA{#1}\let\psk@ncurvB\psk@ncurvA} -\psset@ncurv{.67} -\def\tx@LineMP{LineMP } -\def\tx@NCCoor{NCCoor } -\def\tx@NCLine{NCLine } -\def\ncline{\def\pst@par{}\pst@object{ncline}} -\def\ncline@i{\check@arrow{\ncline@ii}} -\def\ncline@ii#1#2{\nc@object{#1}{#2}{.5}{\tx@NCLine}} -\def\pcline{\def\pst@par{}\pst@object{pcline}} -\def\pcline@i{\pc@object\ncline@ii} -\def\ncLine{\def\pst@par{}\pst@object{ncLine}} -\def\ncLine@i{\check@arrow{\ncLine@ii}} -\def\ncLine@ii#1#2{\nc@object{#1}{#2}{.5}% -{\tx@NCLine -/LPutVar [ -nodeA \tx@GetCenter -nodeB \tx@GetCenter -3 1 roll 4 1 roll -] cvx def }} -\def\tx@BezierMidpoint{BezierMidpoint } -\def\tx@GetArms{GetArms } -\def\tx@NCCurve{NCCurve } -\def\nccurve{\def\pst@par{}\pst@object{nccurve}} -\def\nccurve@i{\check@arrow{\nccurve@ii}} -\def\nccurve@ii#1#2{\nc@object{#1}{#2}{.5}{% -/AngleA \psk@angleA\space def /AngleB \psk@angleB\space def -\psk@ncurvB\space \psk@ncurvA\space -\tx@NCCurve}} -\def\pccurve{\def\pst@par{}\pst@object{pccurve}} -\def\pccurve@i{\pc@object\nccurve@ii} -\def\ncarc{\def\pst@par{}\pst@object{ncarc}} -\def\ncarc@i{\check@arrow{\ncarc@ii}} -\def\ncarc@ii#1#2{\nc@object{#1}{#2}{.5}{% -\tx@GetAngle dup -\psk@arcangleA\space add /AngleA ED -\psk@arcangleB\space sub 180 add /AngleB ED -\psk@ncurvB\space \psk@ncurvA\space -\tx@NCCurve}} -\def\pcarc{\def\pst@par{}\pst@object{pcarc}} -\def\pcarc@i{\pc@object\ncarc@ii} -\def\tx@AnglesMP{AnglesMP } -\def\tx@NCAngles{NCAngles } -\def\ncangles{\def\pst@par{}\pst@object{ncangles}} -\def\ncangles@i{\check@arrow{\ncangles@ii}} -\def\ncangles@ii#1#2{% -\nc@object{#1}{#2}{1.5}{\ncangles@iii \tx@NCAngles}} -\def\ncangles@iii{% -tx@Dict begin -\ifdim\pslinearc>\z@ -/r \pst@number\pslinearc def -/Lineto { \tx@Arcto } def -\else -/Lineto { L } def -\fi -end -/AngleA \psk@angleA\space def /AngleB \psk@angleB\space def -/armA \psk@armA\space def /armB \psk@armB\space def } -\def\pcangles{\def\pst@par{}\pst@object{pcangles}} -\def\pcangles@i{\pc@object\ncangles@ii} -\def\tx@NCAngle{NCAngle } -\def\ncangle{\def\pst@par{}\pst@object{ncangle}} -\def\ncangle@i{\check@arrow{\ncangle@ii}} -\def\ncangle@ii#1#2{% -\nc@object{#1}{#2}{1.5}{\ncangles@iii \tx@NCAngle}} -\def\pcangle{\def\pst@par{}\pst@object{pcangle}} -\def\pcangle@i{\pc@object\ncangle@ii} -\def\tx@NCBar{NCBar } -\def\ncbar{\def\pst@par{}\pst@object{ncbar}} -\def\ncbar@i{\check@arrow{\ncbar@ii}} -\def\ncbar@ii#1#2{\nc@object{#1}{#2}{1.5}{% -\ncangles@iii /AngleB \psk@angleA def \tx@NCBar}} -\def\pcbar{\def\pst@par{}\pst@object{pcbar}} -\def\pcbar@i{\pc@object\ncbar@ii} -\def\tx@NCDiag{NCDiag } -\def\ncdiag{\def\pst@par{}\pst@object{ncdiag}} -\def\ncdiag@i{\check@arrow{\ncdiag@ii}} -\def\ncdiag@ii#1#2{% -\nc@object{#1}{#2}{1.5}{\ncangles@iii \tx@NCDiag}} -\def\pcdiag{\def\pst@par{}\pst@object{pcdiag}} -\def\pcdiag@i{\pc@object\ncdiag@ii} -\def\tx@NCDiagg{NCDiagg } -\def\ncdiagg{\def\pst@par{}\pst@object{ncdiagg}} -\def\ncdiagg@i{\check@arrow{\ncdiagg@ii}} -\def\ncdiagg@ii#1#2{% -\nc@object{#1}{#2}{.5}{\ncangles@iii \tx@NCDiagg}} -\def\pcdiagg{\def\pst@par{}\pst@object{pcdiagg}} -\def\pcdiagg@i{\pc@object\ncdiagg@ii} -\def\tx@LoopMP{LoopMP } -\def\tx@NCLoop{NCLoop } -\def\psset@loopsize#1{\pst@getlength{#1}\psk@loopsize} -\psset@loopsize{1cm} -\def\ncloop{\def\pst@par{}\pst@object{ncloop}} -\def\ncloop@i{\check@arrow{\ncloop@ii}} -\def\ncloop@ii#1#2{% -\nc@object{#1}{#2}{2.5}% -{\ncangles@iii /loopsize \psk@loopsize\space def \tx@NCLoop}} -\def\pcloop{\def\pst@par{}\pst@object{pcloop}} -\def\pcloop@i{\pc@object\ncloop@ii} -\def\tx@NCCircle{NCCircle } -\def\nccircle{\def\pst@par{}\pst@object{nccircle}} -\def\nccircle@i{\check@arrow{\nccircle@ii}} -\def\nccircle@ii#1#2{% -\pssetlength\pst@dima{#2}% -\nc@object{#1}{#1}{.5}{% -/AngleA \psk@angleA def -/r \pst@number\pst@dima def -\tx@NCCircle \psarc@v end}} -\def\pst@getlputrot#1{% -\@ifnextchar(% -{\def\pst@rot{}#1}% -{\pst@@getlputrot{\@ifnextchar({#1}{#1(\lputpos@default)}}}} -\def\pst@@getlputrot#1#2{% -\pst@expandafter{\@ifnextchar:{\pst@@@getlputrot}% -{\@ifstar{\pst@@@getrot}{\pst@@getrot}}}{#2}\@nil -\ifx\pst@rotlist\@empty\else -\edef\pst@rotlist{\pst@rotlist \pst@rot add }% -\fi -#1} -\def\pst@@@getlputrot#1#2\@nil{% -\pst@@getrot#2\@nil -\edef\pst@rot{langle \ifx\pst@rot\@empty\else\pst@rot add \fi}}% -\def\tx@LPutCoor{LPutCoor } -\def\psput@lput#1#2{% -\pst@checknum{#1}\pst@tempa -\hbox{% -\pst@Verb{% -\pst@nodedict -/t \pst@tempa\space def -\tx@LPutCoor -end -\tx@PutBegin}% -\box#2% -\pst@Verb{\tx@PutEnd}}} -\def\lput{\begin@psput{\pst@getref{\pst@getlputrot{\end@psput\lput@i}}}} -\def\lput@i(#1){% -\pst@makesmall\pst@hbox -\ifx\pst@rot\@empty\else\pst@rotate\pst@hbox\fi -\psput@lput{#1}\pst@hbox} -\def\mput{% -\begin@psput{\def\pst@rot{}\pst@getref{\end@psput\lput@i(\lputpos@default)}}} -\def\aput@#1{\begin@psput{% -\def\pst@refangle{#1 }% -\@ifnextchar[{\aput@i}{\pst@getlputrot{\end@psput\aput@ii}}}} -\def\aput@i[#1]{% -\pssetlength\pslabelsep{#1}\pst@getlputrot{\end@psput\aput@ii}} -\def\aput@ii(#1){% -\uput@iv\aput@iii -\psput@lput{#1}\pst@hbox} -\def\aput@iii{exch pop add a \tx@PtoC h1 add exch w1 add exch } -\def\aput{\aput@{langle 90 add}} -\def\bput{\aput@{langle 90 sub}} -\def\Aput@#1{\begin@psput{% -\def\pst@refangle{#1 }% -\def\pst@rot{}% -\@ifnextchar[{\Aput@i}{\end@psput\aput@ii(\lputpos@default)}}} -\def\Aput@i[#1]{% -\pssetlength\pslabelsep{#1}% -\end@psput\aput@ii(\lputpos@default)} -\def\Aput{\Aput@{langle 90 add}} -\def\Bput{\Aput@{langle 90 sub}} -\def\Lput{% -\begin@psput{\pst@getlabelsep{\pst@getlputrot{\end@psput{\Rput@i\lput@i}}}}} -\def\Mput{% -\begin@psput{% -\def\pst@rot{}% -\pst@getlabelsep{\end@psput{\Rput@i\lput@i}(\lputpos@default)}}} -\def\node@coor#1;#2\@nil{% -\pst@getnode{#1}\pst@tempg -\edef\pst@coor{% -\pst@nodedict -tx@NodeDict \pst@tempg known -{ \pst@tempg load \tx@GetCenter } -{ 0 0 } -ifelse -end }} -\def\Node@coor[#1]#2;#3\@nil{% -\begingroup -\psset{#1}% -\pst@getnode{#2}\pst@tempg -\xdef\pst@tempg{% -\pst@nodedict -tx@NodeDict \pst@tempg known -{ \psk@offsetA \psk@angleA \psk@nodesepA \pst@tempg load \tx@GetEdge } -{ 0 0 } -ifelse -end }% -\endgroup -\let\pst@coor\pst@tempg} -\catcode`\@=\TheAtCode\relax -\endinput -%% -%% END: pst-node.tex diff --git a/Master/texmf-dist/source/generic/pst-node/Makefile b/Master/texmf-dist/source/generic/pst-node/Makefile deleted file mode 100644 index 6eefe58c02d..00000000000 --- a/Master/texmf-dist/source/generic/pst-node/Makefile +++ /dev/null @@ -1,99 +0,0 @@ - -# `Makefile' for `pst-node-doc.pdf', hv, 2010/01/22 - -.SUFFIXES : .tex .ltx .dvi .ps .pdf .eps - -PACKAGE = pst-node - -MAIN = $(PACKAGE)-doc - -LATEX = latex - -ARCHNAME = $(MAIN)-$(shell date +%y%m%d) - -ARCHFILES = $(PACKAGE).sty $(PACKAGE).tex $(PACKAGE).pro $(MAIN).tex README Changes Makefile - -TDS = ~/PSTricks/PSTricks-TDS - -all : doc ctan clean - -doc: $(MAIN).pdf - -$(MAIN).pdf : $(MAIN).ps - GS_OPTIONS=-dAutoRotatePages=/None ps2pdf $< -# echo "\documentclass[a4paper]{article}" > temp.tex -# echo "\usepackage{pdfpages}" >> temp.tex -# echo "\begin{document}" >> temp.tex -# echo "\includepdf[pages=1-4]{pst-node-doc}" >> temp.tex -# echo "\includepdf[pages=6-32]{pst-docfull}" >> temp.tex -# echo "\includepdf[pages=5-]{pst-node-doc}" >> temp.tex -# echo "\end{document}" >> temp.tex -# pdflatex temp -# mv temp.pdf pst-node-doc.pdf - -$(MAIN).ps : $(MAIN).dvi - dvips $< - -$(MAIN).dvi : $(MAIN).tex - $(LATEX) $< - $(LATEX) $< - if ! test -f $(basename $<).glo ; then touch $(basename $<).glo; fi - if ! test -f $(basename $<).idx ; then touch $(basename $<).idx; fi - makeindex -s gglo.ist -t $(basename $<).glg -o $(basename $<).gls \ - $(basename $<).glo - makeindex -s pst-doc.ist -t $(basename $<).ilg -o $(basename $<).ind \ - $(basename $<).idx - bibtex $(basename $<) - $(LATEX) $< - $(LATEX) $< - -clean : - $(RM) $(addprefix $(MAIN), .log .aux .glg .glo .gls .ilg .idx .ind .tmp .toc .out ) - $(RM) $(addprefix $(MAIN), .dvi .ps .blg .bbl) -# rm temp* - -veryclean : clean - $(RM) $(addprefix $(MAIN), .pdf .bbl .blg) - -arch : - zip $(ARCHNAME).zip $(ARCHFILES) - -ctan: - cp -u *.sty .ctan/$(PACKAGE)/ - cp -u *.tex .ctan/$(PACKAGE)/ - cp -u *.pro .ctan/$(PACKAGE)/ - cp -u more_docs/* .ctan/$(PACKAGE)/more_docs/ -# rm -fr .ctan/$(PACKAGE)/.svn -# - cp -u Changes .ctan/$(PACKAGE)/ - cp -u README .ctan/$(PACKAGE)/ - cp -u $(MAIN).pdf .ctan/$(PACKAGE)/ - cp -u $(MAIN).bib .ctan/$(PACKAGE)/ - cp -u Makefile .ctan/$(PACKAGE)/ - -tds: - cp -u *.sty ~/Links/texmf-local-latex/$(PACKAGE)/ - cp -u *.pro ~/Links/dvips-local/ -# - cp -u Changes $(TDS)/doc/generic/$(PACKAGE)/ - cp -u README $(TDS)/doc/generic/$(PACKAGE)/ - cp -u $(MAIN).pdf $(TDS)/doc/generic/$(PACKAGE)/ -# - cp -u Changes $(TDS)/tex/latex/$(PACKAGE)/ - cp -u $(PACKAGE).sty $(TDS)/tex/latex/$(PACKAGE)/ -# - cp -u Changes $(TDS)/tex/generic/$(PACKAGE)/ - cp -u $(PACKAGE).tex $(TDS)/tex/generic/$(PACKAGE)/ - cp -u $(PACKAGE)97.tex $(TDS)/tex/generic/$(PACKAGE)/ -# - cp -u Changes $(TDS)/dvips/$(PACKAGE)/ - cp -u $(PACKAGE).pro $(TDS)/dvips/$(PACKAGE)/ - cp -u $(PACKAGE)97.pro $(TDS)/dvips/$(PACKAGE)/ -# - cp -u Changes $(TDS)/source/$(PACKAGE)/ - cp -u $(MAIN).tex $(TDS)/source/$(PACKAGE)/ - cp -u $(MAIN).bib $(TDS)/source/$(PACKAGE)/ - cp -u Makefile $(TDS)/source/$(PACKAGE)/ - - -# EOF 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 fe30a091034..51118e48a61 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 807 2013-07-13 11:27:34Z herbert $ +% $Id: pst-node.tex 824 2013-09-17 18:19:38Z herbert $ %% BEGIN pst-node.tex %% %% Nodes with PSTricks. @@ -18,8 +18,8 @@ \ifx\PSTricksLoaded\endinput\else\input pstricks.tex \fi\relax \ifx\PSTXKeyLoaded\endinput\else \input pst-xkey \fi % -\def\fileversion{1.29} -\def\filedate{2013/07/13} +\def\fileversion{1.30} +\def\filedate{2013/09/17} \message{ v\fileversion, \filedate} % \edef\TheAtCode{\the\catcode`\@} @@ -1479,7 +1479,7 @@ tx@NodeDict \pst@tempg known % \def\nodexn#1#2{% %#1=node expression | #2=node name -\hasparen#1(\@nil% +\expandafter\hasparen#1(\@nil%%% hv 20130917 use \expandafter \if@paren%it's an expression \pnode(0,0){@TMP0}% \pst@argcnt=0% diff --git a/Master/texmf-dist/tex/generic/pst-node/pst-node97.tex b/Master/texmf-dist/tex/generic/pst-node/pst-node97.tex new file mode 100644 index 00000000000..5df456f3d0b --- /dev/null +++ b/Master/texmf-dist/tex/generic/pst-node/pst-node97.tex @@ -0,0 +1,390 @@ +%% BEGIN: pst-node.tex +%% Generated on <1993/3/12> from `pst-node.doc'. +%% For use with the PostScript header file `pst-node.pro'. +%% +\def\fileversion{0.93a} +\def\filedate{93/03/12} +%% +%% pst-node.tex: Node macros for PSTricks. +%% See the PSTricks read-me file and the User's Guide for documentation. +%% +%% COPYRIGHT 1993, by Timothy Van Zandt, tvz@Princeton.EDU +%% +%% Copying of part or all of any file in the pstricks.tex package +%% is allowed under the following conditions only: +%% (1) You may freely distribute unchanged copies of the files. Please +%% include the documentation when you do so. +%% (2) You may modify a renamed copy of any file, but only for personal +%% use or use within an organization. +%% (3) You may copy fragments from the files, for personal use or for use +%% in a macro package for distribution, as long as credit is given +%% where credit is due. +%% +%% You are NOT ALLOWED to take money for the distribution or use of +%% these files or modified versions or fragments thereof, except for +%% a nominal charge for copying etc. +%% +\csname PSTnodesLoaded\endcsname +\let\PSTnodesLoaded\endinput +\ifx\PSTricksLoaded\endinput\else +\def\next{\input pstricks.tex}\expandafter\next +\fi +\edef\TheAtCode{\the\catcode`\@} +\catcode`\@=11 +\pstheader{pst-node.pro} +\def\pst@nodedict{tx@NodeDict begin } +\def\pst@getnode#1#2{% +\pst@expandafter\pst@@getnode{#1} * \@nil{#1}#2} +\def\pst@@getnode#1#2 #3\@nil#4#5{% +\ifcat#1a\relax +\def#5{/TheNode#1#2 }% +\else +\def#5{/BadNode }% +\@pstrickserr{Bad node name: `#4'}\@ehpa +\fi} +\def\tx@NewNode{NewNode } +\def\pst@newnode#1#2#3#4{% +\leavevmode +\pst@getnode{#1}\pst@thenode +\pst@Verb{% +\pst@nodedict +{ #3 } \pst@thenode #2 { #4 } \tx@NewNode +end}} +\def\tx@InitPnode{InitPnode } +\def\pnode{\@ifnextchar({\pnode@}{\pnode@(0,0)}} +\def\pnode@(#1)#2{% +\pst@@getcoor{#1}% +\pst@newnode{#2}{10}{\pst@coor}{\tx@InitPnode}% +\ignorespaces} +\def\tx@InitCnode{InitCnode } +\def\cnode{\def\pst@par{}\pst@object{cnode}} +\def\cnode@i{\@ifnextchar({\cnode@ii}{\cnode@ii(0,0)}} +\def\cnode@ii(#1)#2#3{% +\begingroup +\use@par +\pscircle@do(#1){#2}% +\pst@@getcoor{#1}% +\pssetlength\pst@dimc{#2}% +\pst@newnode{#3}{11}{% +\pst@coor +\pst@number\pst@dimc +\pst@number\pslinewidth +\psk@dimen .5 sub mul sub}% +{\tx@InitCnode}% +\endgroup +\ignorespaces} +\def\cnodeput{\def\pst@par{}\pst@object{cnodeput}} +\def\cnodeput@i{% +\begingroup +\pst@killglue +\leavevmode +\pst@getrputrot +\cnodeput@ii} +\def\cnodeput@ii(#1)#2{% +\pst@makebox{\cput@iii{\cnodeput@iii{#2}}(#1)}} +\def\cnodeput@iii#1{% +\pst@newnode{#1}{11}{\pscirclebox@iv \pst@number\pslinewidth add}% +{\tx@InitCnode}} +\def\circlenode{\def\pst@par{}\pst@object{circlenode}} +\def\circlenode@i#1{\pst@makebox{\pscirclebox@ii{\cnodeput@iii{#1}}}} +\def\tx@GetRnodePos{GetRnodePos } +\def\tx@InitRnode{InitRnode } +\def\rnode{\begingroup\pst@getref\rnode@} +\def\rnode@#1{\pst@makebox{\rnode@@{#1}}} +\def\rnode@@#1{% +\ifx\refpoint@x\relax +\def\refpoint@y{.5}% +\def\refpoint@x{.5}% +\fi +\pst@newnode{#1}{16}{}{% +\ifx\refpoint@x\relax .5 \else \refpoint@y\space \fi +\pst@number{\ht\pst@hbox}% +\pst@number{\dp\pst@hbox}% +\ifx\refpoint@y\@empty true \else false \fi +\refpoint@x\space +\pst@number{\wd\pst@hbox}% +\tx@InitRnode}% +\box\pst@hbox +\endgroup} +\def\tx@InitRNode{InitRNode } +\def\Rnode{\@ifnextchar({\Rnode@}{\Rnode@(\RnodeRef)}} +\def\Rnode@(#1)#2{\pst@makebox{\Rnode@@(#1){#2}}} +\def\Rnode@@(#1)#2{% +\begingroup +\pst@@getcoor{#1}% +\pst@newnode{#2}{16}{% +\pst@number{\ht\pst@hbox}\pst@number{\dp\pst@hbox}% +\pst@number{\wd\pst@hbox}\pst@coor}{\tx@InitRNode}% +\box\pst@hbox +\endgroup} +\def\RnodeRef{0,.7ex} +\def\tx@GetOnodePos{GetOnodePos } +\def\ovalnode{\def\pst@par{}\pst@object{ovalnode}} +\def\ovalnode@i#1{\pst@makebox{\psovalbox@ii{\ovalnode@ii{#1}}}} +\def\ovalnode@ii#1{% +\pst@newnode{#1}{14}{}{% +/X \pst@number{\wd\pst@hbox}2 div def +/Y \pst@number\pst@dimg 2 div \pst@number{\dp\pst@hbox}sub def +/w \pst@number\pst@dima def +/h \pst@number\pst@dimb def +/NodePos { \tx@GetOnodePos } def}} +\def\tx@GetCenter{GetCenter } +\def\tx@GetAngle{GetAngle } +\def\tx@GetEdge{GetEdge } +\def\tx@GetPos{GetPos } +\def\check@arrow#1#2{% +\check@@arrow#2-\@nil +\if@pst +\addto@par{arrows=#2}% +\def\next{#1}% +\else +\def\next{#1{#2}}% +\fi +\next} +\def\check@@arrow#1-#2\@nil{% +\ifx\@nil#2\@nil\@pstfalse\else\@psttrue\fi} +\def\tx@InitNC{InitNC } +\def\nc@object#1#2#3#4{% +\begin@OpenObj +\showpointsfalse +\pst@getnode{#1}\pst@tempa +\pst@getnode{#2}\pst@tempb +\gdef\lputpos@default{#3}% +\addto@pscode{% +\pst@nodedict +\psk@offsetA +\psk@offsetB neg +\psk@nodesepA +\psk@nodesepB +\pst@tempa +\pst@tempb +\tx@InitNC { #4 } if +end}% +\def\use@pscode{% +\pst@Verb{gsave \tx@STV newpath \pst@code\space grestore}% +\gdef\pst@code{}}% +\end@OpenObj} +\def\lputpos@default{.5} +\def\pc@object#1{% +\@ifnextchar({\pc@@object#1}{\pst@getarrows{\pc@@object#1}}} +\def\pc@@object#1(#2)(#3){% +\pnode(#2){@@A}\pnode(#3){@@B}% +#1{@@A}{@@B}} +\def\psset@nodesepA#1{\pst@getlength{#1}\psk@nodesepA} +\def\psset@nodesepB#1{\pst@getlength{#1}\psk@nodesepB} +\def\psset@nodesep#1{% +\psset@nodesepA{#1}\let\psk@nodesepB\psk@nodesepA} +\psset@nodesep{0} +\def\psset@offsetA#1{\pst@getlength{#1}\psk@offsetA} +\def\psset@offsetB#1{\pst@getlength{#1}\psk@offsetA} +\def\psset@offset#1{% +\psset@offsetA{#1}\let\psk@offsetB\psk@offsetA} +\psset@offset{0} +\def\psset@armA#1{\pst@getlength{#1}\psk@armA} +\def\psset@armB#1{\pst@getlength{#1}\psk@armB} +\def\psset@arm#1{\psset@armA{#1}\let\psk@armB\psk@armA} +\psset@arm{10pt} +\def\psset@angleA#1{\pst@getangle{#1}\psk@angleA} +\def\psset@angleB#1{\pst@getangle{#1}\psk@angleB}% +\def\psset@angle#1{\pst@getangle{#1}\psk@angleA +\let\psk@angleB\psk@angleA} +\psset@angle{0} +\def\psset@arcangleA#1{\pst@getangle{#1}\psk@arcangleA} +\def\psset@arcangleB#1{\pst@getangle{#1}\psk@arcangleB}% +\def\psset@arcangle#1{\pst@getangle{#1}\psk@arcangleA +\let\psk@arcangleB\psk@arcangleA} +\psset@arcangle{8} +\def\psset@ncurvA#1{\pst@checknum{#1}\psk@ncurvA} +\def\psset@ncurvB#1{\pst@checknum{#1}\psk@ncurvB}% +\def\psset@ncurv#1{\psset@ncurvA{#1}\let\psk@ncurvB\psk@ncurvA} +\psset@ncurv{.67} +\def\tx@LineMP{LineMP } +\def\tx@NCCoor{NCCoor } +\def\tx@NCLine{NCLine } +\def\ncline{\def\pst@par{}\pst@object{ncline}} +\def\ncline@i{\check@arrow{\ncline@ii}} +\def\ncline@ii#1#2{\nc@object{#1}{#2}{.5}{\tx@NCLine}} +\def\pcline{\def\pst@par{}\pst@object{pcline}} +\def\pcline@i{\pc@object\ncline@ii} +\def\ncLine{\def\pst@par{}\pst@object{ncLine}} +\def\ncLine@i{\check@arrow{\ncLine@ii}} +\def\ncLine@ii#1#2{\nc@object{#1}{#2}{.5}% +{\tx@NCLine +/LPutVar [ +nodeA \tx@GetCenter +nodeB \tx@GetCenter +3 1 roll 4 1 roll +] cvx def }} +\def\tx@BezierMidpoint{BezierMidpoint } +\def\tx@GetArms{GetArms } +\def\tx@NCCurve{NCCurve } +\def\nccurve{\def\pst@par{}\pst@object{nccurve}} +\def\nccurve@i{\check@arrow{\nccurve@ii}} +\def\nccurve@ii#1#2{\nc@object{#1}{#2}{.5}{% +/AngleA \psk@angleA\space def /AngleB \psk@angleB\space def +\psk@ncurvB\space \psk@ncurvA\space +\tx@NCCurve}} +\def\pccurve{\def\pst@par{}\pst@object{pccurve}} +\def\pccurve@i{\pc@object\nccurve@ii} +\def\ncarc{\def\pst@par{}\pst@object{ncarc}} +\def\ncarc@i{\check@arrow{\ncarc@ii}} +\def\ncarc@ii#1#2{\nc@object{#1}{#2}{.5}{% +\tx@GetAngle dup +\psk@arcangleA\space add /AngleA ED +\psk@arcangleB\space sub 180 add /AngleB ED +\psk@ncurvB\space \psk@ncurvA\space +\tx@NCCurve}} +\def\pcarc{\def\pst@par{}\pst@object{pcarc}} +\def\pcarc@i{\pc@object\ncarc@ii} +\def\tx@AnglesMP{AnglesMP } +\def\tx@NCAngles{NCAngles } +\def\ncangles{\def\pst@par{}\pst@object{ncangles}} +\def\ncangles@i{\check@arrow{\ncangles@ii}} +\def\ncangles@ii#1#2{% +\nc@object{#1}{#2}{1.5}{\ncangles@iii \tx@NCAngles}} +\def\ncangles@iii{% +tx@Dict begin +\ifdim\pslinearc>\z@ +/r \pst@number\pslinearc def +/Lineto { \tx@Arcto } def +\else +/Lineto { L } def +\fi +end +/AngleA \psk@angleA\space def /AngleB \psk@angleB\space def +/armA \psk@armA\space def /armB \psk@armB\space def } +\def\pcangles{\def\pst@par{}\pst@object{pcangles}} +\def\pcangles@i{\pc@object\ncangles@ii} +\def\tx@NCAngle{NCAngle } +\def\ncangle{\def\pst@par{}\pst@object{ncangle}} +\def\ncangle@i{\check@arrow{\ncangle@ii}} +\def\ncangle@ii#1#2{% +\nc@object{#1}{#2}{1.5}{\ncangles@iii \tx@NCAngle}} +\def\pcangle{\def\pst@par{}\pst@object{pcangle}} +\def\pcangle@i{\pc@object\ncangle@ii} +\def\tx@NCBar{NCBar } +\def\ncbar{\def\pst@par{}\pst@object{ncbar}} +\def\ncbar@i{\check@arrow{\ncbar@ii}} +\def\ncbar@ii#1#2{\nc@object{#1}{#2}{1.5}{% +\ncangles@iii /AngleB \psk@angleA def \tx@NCBar}} +\def\pcbar{\def\pst@par{}\pst@object{pcbar}} +\def\pcbar@i{\pc@object\ncbar@ii} +\def\tx@NCDiag{NCDiag } +\def\ncdiag{\def\pst@par{}\pst@object{ncdiag}} +\def\ncdiag@i{\check@arrow{\ncdiag@ii}} +\def\ncdiag@ii#1#2{% +\nc@object{#1}{#2}{1.5}{\ncangles@iii \tx@NCDiag}} +\def\pcdiag{\def\pst@par{}\pst@object{pcdiag}} +\def\pcdiag@i{\pc@object\ncdiag@ii} +\def\tx@NCDiagg{NCDiagg } +\def\ncdiagg{\def\pst@par{}\pst@object{ncdiagg}} +\def\ncdiagg@i{\check@arrow{\ncdiagg@ii}} +\def\ncdiagg@ii#1#2{% +\nc@object{#1}{#2}{.5}{\ncangles@iii \tx@NCDiagg}} +\def\pcdiagg{\def\pst@par{}\pst@object{pcdiagg}} +\def\pcdiagg@i{\pc@object\ncdiagg@ii} +\def\tx@LoopMP{LoopMP } +\def\tx@NCLoop{NCLoop } +\def\psset@loopsize#1{\pst@getlength{#1}\psk@loopsize} +\psset@loopsize{1cm} +\def\ncloop{\def\pst@par{}\pst@object{ncloop}} +\def\ncloop@i{\check@arrow{\ncloop@ii}} +\def\ncloop@ii#1#2{% +\nc@object{#1}{#2}{2.5}% +{\ncangles@iii /loopsize \psk@loopsize\space def \tx@NCLoop}} +\def\pcloop{\def\pst@par{}\pst@object{pcloop}} +\def\pcloop@i{\pc@object\ncloop@ii} +\def\tx@NCCircle{NCCircle } +\def\nccircle{\def\pst@par{}\pst@object{nccircle}} +\def\nccircle@i{\check@arrow{\nccircle@ii}} +\def\nccircle@ii#1#2{% +\pssetlength\pst@dima{#2}% +\nc@object{#1}{#1}{.5}{% +/AngleA \psk@angleA def +/r \pst@number\pst@dima def +\tx@NCCircle \psarc@v end}} +\def\pst@getlputrot#1{% +\@ifnextchar(% +{\def\pst@rot{}#1}% +{\pst@@getlputrot{\@ifnextchar({#1}{#1(\lputpos@default)}}}} +\def\pst@@getlputrot#1#2{% +\pst@expandafter{\@ifnextchar:{\pst@@@getlputrot}% +{\@ifstar{\pst@@@getrot}{\pst@@getrot}}}{#2}\@nil +\ifx\pst@rotlist\@empty\else +\edef\pst@rotlist{\pst@rotlist \pst@rot add }% +\fi +#1} +\def\pst@@@getlputrot#1#2\@nil{% +\pst@@getrot#2\@nil +\edef\pst@rot{langle \ifx\pst@rot\@empty\else\pst@rot add \fi}}% +\def\tx@LPutCoor{LPutCoor } +\def\psput@lput#1#2{% +\pst@checknum{#1}\pst@tempa +\hbox{% +\pst@Verb{% +\pst@nodedict +/t \pst@tempa\space def +\tx@LPutCoor +end +\tx@PutBegin}% +\box#2% +\pst@Verb{\tx@PutEnd}}} +\def\lput{\begin@psput{\pst@getref{\pst@getlputrot{\end@psput\lput@i}}}} +\def\lput@i(#1){% +\pst@makesmall\pst@hbox +\ifx\pst@rot\@empty\else\pst@rotate\pst@hbox\fi +\psput@lput{#1}\pst@hbox} +\def\mput{% +\begin@psput{\def\pst@rot{}\pst@getref{\end@psput\lput@i(\lputpos@default)}}} +\def\aput@#1{\begin@psput{% +\def\pst@refangle{#1 }% +\@ifnextchar[{\aput@i}{\pst@getlputrot{\end@psput\aput@ii}}}} +\def\aput@i[#1]{% +\pssetlength\pslabelsep{#1}\pst@getlputrot{\end@psput\aput@ii}} +\def\aput@ii(#1){% +\uput@iv\aput@iii +\psput@lput{#1}\pst@hbox} +\def\aput@iii{exch pop add a \tx@PtoC h1 add exch w1 add exch } +\def\aput{\aput@{langle 90 add}} +\def\bput{\aput@{langle 90 sub}} +\def\Aput@#1{\begin@psput{% +\def\pst@refangle{#1 }% +\def\pst@rot{}% +\@ifnextchar[{\Aput@i}{\end@psput\aput@ii(\lputpos@default)}}} +\def\Aput@i[#1]{% +\pssetlength\pslabelsep{#1}% +\end@psput\aput@ii(\lputpos@default)} +\def\Aput{\Aput@{langle 90 add}} +\def\Bput{\Aput@{langle 90 sub}} +\def\Lput{% +\begin@psput{\pst@getlabelsep{\pst@getlputrot{\end@psput{\Rput@i\lput@i}}}}} +\def\Mput{% +\begin@psput{% +\def\pst@rot{}% +\pst@getlabelsep{\end@psput{\Rput@i\lput@i}(\lputpos@default)}}} +\def\node@coor#1;#2\@nil{% +\pst@getnode{#1}\pst@tempg +\edef\pst@coor{% +\pst@nodedict +tx@NodeDict \pst@tempg known +{ \pst@tempg load \tx@GetCenter } +{ 0 0 } +ifelse +end }} +\def\Node@coor[#1]#2;#3\@nil{% +\begingroup +\psset{#1}% +\pst@getnode{#2}\pst@tempg +\xdef\pst@tempg{% +\pst@nodedict +tx@NodeDict \pst@tempg known +{ \psk@offsetA \psk@angleA \psk@nodesepA \pst@tempg load \tx@GetEdge } +{ 0 0 } +ifelse +end }% +\endgroup +\let\pst@coor\pst@tempg} +\catcode`\@=\TheAtCode\relax +\endinput +%% +%% END: pst-node.tex diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds index 200c67226e8..2fe1dfe19a6 100755 --- a/Master/tlpkg/libexec/ctan2tds +++ b/Master/tlpkg/libexec/ctan2tds @@ -4514,39 +4514,42 @@ sub MAKEbeebe { # pstricks packages usually support both plain and latex. # sub MAKEpst { - print "\t SPECIAL pst $package starts\n"; - # pst-laboObj.tex and pst-fp.sty need special cases: - $standardtex = qq!^(($package(Obj)?)|pst-fp)\.(tex|sty)!; - $whichformat='generic'; - $whichdocformat='generic'; - $specialsourcefmt{$package}='generic'; - $specialsource{$package} = "Makefile|$standardsource"; - &setup; - &xchdir("$DEST/doc/$whichdocformat/$package"); - &buildfilelist; + print "\t SPECIAL pst $package starts\n"; + # pst-laboObj.tex and pst-fp.sty need special cases: + $standardtex = qq!^(($package(Obj)?)|pst-fp)\.(tex|sty)!; + $whichformat='generic'; + $whichdocformat='generic'; + $specialsourcefmt{$package}='generic'; + $specialsource{$package} = "Makefile|$standardsource"; + &setup; + &xchdir("$DEST/doc/$whichdocformat/$package"); + &buildfilelist; - $inspatt=$standardins if ! $inspatt; - &runins($inspatt); - &buildfilelist; - &dosource; - &dotex; - &dotype1; - &killfiles ($standardclean); - &killfiles ($moreclean{$package}, "more") if $moreclean{$package}; + $inspatt=$standardins if ! $inspatt; + &runins($inspatt); + &buildfilelist; + &dosource; + &dotex; + &dotype1; + &killfiles ($standardclean); + &killfiles ($moreclean{$package}, "more") if $moreclean{$package}; - &xmkdir ("$DEST/tex/latex/$package"); - - my @plain = glob ("tex/*"); - &SYSTEM("$MV @plain $DEST/tex/generic/$package") if @plain; - - my @sty = glob ("$DEST/tex/generic/$package/*sty"); - push (@sty, "latex/*"); # in case the source has a subdir - &SYSTEM("$MV @sty $DEST/tex/latex/$package") if @sty; - - my @cfg = glob ("$DEST/doc/generic/$package/*cfg"); - @cfg = () if $package eq "pst-pad"; # its showexpl.cfg is for the doc - &SYSTEM("$MV @cfg $DEST/tex/latex/$package") if @cfg; + my @cfg = glob ("$DEST/doc/generic/$package/*cfg"); + @cfg = () if $package eq "pst-pad"; # its showexpl.cfg is for the doc + &mv_with_mkdir (@cfg, "$DEST/tex/latex/$package") if @cfg; + my @dvips = glob ("dvips/*"); + &mv_with_mkdir (@dvips, "$DEST/dvips/$package") if @dvips; + + my @plain = glob ("tex/*"); + &mv_with_mkdir (@plain, "$DEST/tex/generic/$package") if @plain; + + my @sty = glob ("$DEST/tex/generic/$package/*sty"); + push (@sty, "latex/*"); # in case the source has a subdir + &mv_with_mkdir (@sty, "$DEST/tex/latex/$package") if @sty; + + &SYSTEM("$MV doc/* .") if -d "doc"; + my $postaction = $posthook{$package}; eval ($postaction) if $postaction; } -- cgit v1.2.3