summaryrefslogtreecommitdiff
path: root/Master/texmf-dist
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-01-31 00:45:47 +0000
committerKarl Berry <karl@freefriends.org>2009-01-31 00:45:47 +0000
commitafa0ddded45d19c7c2c4883359e3a26e59ce7a8c (patch)
treed0b0a712067e8d3ab5b8e79a6f72bef247c1ba02 /Master/texmf-dist
parent9ed0613d8c7efda754589bc5eac54d7193651494 (diff)
pstricks 1.27 (30jan09)
git-svn-id: svn://tug.org/texlive/trunk@12021 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r--Master/texmf-dist/doc/generic/pstricks/Changes6
-rw-r--r--Master/texmf-dist/doc/generic/pstricks/Changes.dvips18
-rw-r--r--Master/texmf-dist/doc/generic/pstricks/Changes.generic24
-rw-r--r--Master/texmf-dist/doc/generic/pstricks/Changes.latex4
-rw-r--r--Master/texmf-dist/doc/generic/pstricks/pst-doc.cls17
-rw-r--r--Master/texmf-dist/doc/generic/pstricks/pst-news09.pdfbin0 -> 91475 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pstricks/pst-news09.tex297
-rw-r--r--Master/texmf-dist/dvips/pstricks/pst-node.pro349
-rw-r--r--Master/texmf-dist/dvips/pstricks/pstricks.pro155
-rw-r--r--Master/texmf-dist/tex/generic/pstricks/pst-node.tex141
-rw-r--r--Master/texmf-dist/tex/generic/pstricks/pst-plot.tex38
-rw-r--r--Master/texmf-dist/tex/generic/pstricks/pstricks.tex246
-rw-r--r--Master/texmf-dist/tex/latex/pstricks/pst-node.sty2
-rw-r--r--Master/texmf-dist/tex/latex/pstricks/pstricks.sty37
14 files changed, 1012 insertions, 322 deletions
diff --git a/Master/texmf-dist/doc/generic/pstricks/Changes b/Master/texmf-dist/doc/generic/pstricks/Changes
index 426a1491e0d..170b0482de0 100644
--- a/Master/texmf-dist/doc/generic/pstricks/Changes
+++ b/Master/texmf-dist/doc/generic/pstricks/Changes
@@ -1,4 +1,8 @@
-2008-05-23 new files pst-news08.tex|pdf
+2009-01-30 - update pst-doc.cls
+ - new file pst-doc.ist
+ - new file pst-news09.tex|pdf
+2008-11-14 new file pst-doc.cls
+2008-05-23 new files pst-news2008.tex|pdf
pst-news.sty for the doc
2005-12-22 new files pstnews1-14.tex|pdf
2006-12-19 new files pstnews1-15.tex|pdf
diff --git a/Master/texmf-dist/doc/generic/pstricks/Changes.dvips b/Master/texmf-dist/doc/generic/pstricks/Changes.dvips
index d2d1fd40f29..1ac3330529d 100644
--- a/Master/texmf-dist/doc/generic/pstricks/Changes.dvips
+++ b/Master/texmf-dist/doc/generic/pstricks/Changes.dvips
@@ -1,5 +1,6 @@
---- pstricks.pro
-1.05 2008-06-26 - added penrose fill style
+1.06 2009-01-30 - cosmetic changes to the code
+1.05 2008-08-02 - commented out empty lines
1.04 2008-05-11 - added Rand for a real random 0<=Rand<=1
1.03 2008-04-15 - only some cosmetics to the code
1.02 2008-01-01 - added the arrowtype D>, sides as curves (ArrowD)
@@ -20,15 +21,22 @@
97, patch 5 2005-03-08 bugfix for DashLine
----- pst-node.pro
-1.00 2005-11-29 initial CTAN version (hv)
-
-
---- pst-dots.pro
2.02 2008-04-19 add octogon symbol (hv)
2.01 2008-04-18 add some comments to the code (hv)
2.00 2006-12-19 add more dot symbols from Etienne Riga (hv)
+---- pst-node.pro
+1.02 2009-01-30 - cosmetic changes to the code
+1.01 2008-08-14 - commented out empty lines
+ - fix bug with \ncangle for npos=3
+1.00 2008-01-01 initial version (hv)
+
+
---- pst-alpparser.pro
+0.02 2008-08-02 - commented out empty lines
0.01 2008-01-01 initial version (hv)
+
+---- pstricks97.pro
+Version 97 patch 3, 98/06/01
diff --git a/Master/texmf-dist/doc/generic/pstricks/Changes.generic b/Master/texmf-dist/doc/generic/pstricks/Changes.generic
index e3e65c5f12f..23362149669 100644
--- a/Master/texmf-dist/doc/generic/pstricks/Changes.generic
+++ b/Master/texmf-dist/doc/generic/pstricks/Changes.generic
@@ -1,10 +1,17 @@
pstricks.tex --------
+1.27 2009-01-25 - updated \pssetlength to check for special coor
+ - renamed internal \next to \ps@next to prevent problems
+ with other packages
+ - added \psPline(p1)(p2)(p3) for the shortest distance
+ of P1 to the line p2p3
+ - added \psarcAB and \psarcnAB for arcs with a given
+ center and two points
1.26 2008-07-31 - fixed bug with double arrow and arrowscale
- fix bug with arrows longer than the arc/line ...
- fix bug with pst@theheaders
- fix bug with trailing spaces
-1.25 2008-06-17 - added fill style penrose
-1.24 2008-06-17 - added \psDEBUG[#1]#2 for better dubugging
+1.25 2008-06-17 added fill style penrose
+1.24 2008-06-17 added \psDEBUG[#1]#2 for better dubugging
1.23 2008-05-23 - add octogon symbol (hv)
- fix bug with D>-<D (hv)
1.22 2008-04-14 - added shift=* option to get vertically centered
@@ -61,6 +68,7 @@ pstricks.tex --------
pst-node.tex --------
+1.01 2008-11-26 - bugfix for \fnode
1.00 2007-08-18 - new option pcRef for the first node (hv)
- new option Circle for psmatrix (hv)
- fix bug with pst-node and \\[name=...]. It now uses
@@ -69,17 +77,15 @@ pst-node.tex --------
pst-plot.tex --------
-1.02 2008-03-21 - added an additional optional argument for \psaxes
- which allows to put labels at the end of the axes
- [Xtext,Xangle,Ytext,Yangle]
+1.02 2008-11-24 - add PostScript variable ps@Exit for exit the loop
+ for \psplot and \psparametricplot
+ - add new names \psparametricplot, \psdataplot,...
+ the old names still work
+ - add new option yMaxVal for plotting discontinued functions
1.01 2008-01-26 - make negative Dx/Dy work (hv)
1.00 2007-06-26 - added two new line style LineToXaxis/LineToYaxis (hv)
-pst-tree.tex --------
-1.00 2007-01-03 - fix bug with \endpsTree (hv)
-
-
xdvipdfmx.con ------
0.01 2007-03-11 - first CTAN version, must be renamed to pstricks.con
when used with XeTeX
diff --git a/Master/texmf-dist/doc/generic/pstricks/Changes.latex b/Master/texmf-dist/doc/generic/pstricks/Changes.latex
index 1678c7de19b..a1058f8bf38 100644
--- a/Master/texmf-dist/doc/generic/pstricks/Changes.latex
+++ b/Master/texmf-dist/doc/generic/pstricks/Changes.latex
@@ -1,4 +1,7 @@
pstricks.sty --------
+0.40 2009-01-30 - typeout an error message if the user named his
+ TeX source file pstricks.tex (rn)
+ - updated versions for the pro files
0.39 2008-10-31 - define \psDEBUG, if the old version is loaded
0.38 2008-10-19 - add new option for loading the old version from '97
0.37 2008-01-24 - add option distiller for transparent colors
@@ -20,6 +23,7 @@ pstricks.sty --------
0.21 2005-02-21 fix problem with \newrgbcolor (RN,hv)
pst-node.sty --------
+ 2009-01-30 updated pst-node.pro version number (hv)
2007-09-13 add message for loading pst-node.pro (hv)
2006-01-01 message for loading the pro file
diff --git a/Master/texmf-dist/doc/generic/pstricks/pst-doc.cls b/Master/texmf-dist/doc/generic/pstricks/pst-doc.cls
index 588b5262af9..40aba72eed2 100644
--- a/Master/texmf-dist/doc/generic/pstricks/pst-doc.cls
+++ b/Master/texmf-dist/doc/generic/pstricks/pst-doc.cls
@@ -1,4 +1,4 @@
-% $Id: pst-doc.cls 70 2008-12-22 13:03:24Z herbert $
+% $Id: pst-doc.cls 86 2009-01-29 10:34:00Z herbert $
%
%%
%% The PSTricks Project
@@ -15,7 +15,7 @@
%%
%
\listfiles
-\ProvidesClass{pst-doc}[2008/12/22 v 0.04 PSTricks documentation class (hv)]
+\ProvidesClass{pst-doc}[2009/01/20 v 0.05 PSTricks documentation class (hv)]
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}}
\ProcessOptions\relax
%
@@ -77,6 +77,8 @@
\RequirePackage{calc}
\RequirePackage{babel}
\RequirePackage[table,svgnames,dvipsnames]{pstricks}
+\let\pstricksFV\fileversion
+\let\pstricksFD\filedate
\RequirePackage{multido}
\RequirePackage{lscape}
\RequirePackage{graphicx}
@@ -122,7 +124,7 @@
\RequirePackage{xkvview}
\raggedbottom
-\definecolor{sectioncolor}{RGB}{0, 0, 0} % Schwarz
+\definecolor{sectioncolor}{RGB}{0, 0, 255} % Schwarz
\definecolor{textcolor}{RGB}{0, 0, 0} % Schwarz
\definecolor{shadecolor}{gray}{0.90}
\colorlet{pdflinkcolor}{DOrange}
@@ -190,8 +192,7 @@
\setcounter{tocdepth}{2} % Inhaltsverzeichnis mit groesserer Tiefe
%
% Inhalte von List of Figures
-\IfPackageLoaded{subfig}{
- \setcounter{lofdepth}{1} %1 = nur figures, 2 = figures + subfigures
+\IfPackageLoaded{subfig}{\setcounter{lofdepth}{1} %1 = nur figures, 2 = figures + subfigures
}
\RequirePackage[colorlinks=true,
urlcolor=pdfurlcolor,
@@ -230,7 +231,6 @@
\makeatletter
%%% ----------------------------------------------------------------
-
\DeclareRobustCommand\PST{\texttt{PSTricks\xspace}}
\DeclareRobustCommand\PS{\texttt{PostScript\xspace}}
\def\dt{\ensuremath{\,\mathrm{d}t}}
@@ -258,6 +258,8 @@
\def\Loption#1{\texttt{#1}\index{#1@\texttt{#1}}\index{Package option!#1@\texttt{#1}}}
\def\LPS#1{\texttt{#1}\index{#1@\texttt{#1}}\index{PostScript!#1@\texttt{#1}}}
\def\Lps#1{\texttt{#1}\index{#1@\texttt{#1}}\index{PostScript!#1@\texttt{#1}}}
+\def\LClass#1{\texttt{#1}\index{#1@\texttt{#1}}\index{Class!#1@\texttt{#1}}}
+\let\nxLClass\nxLPack
\newcommand\Lnotation [1]{\nxLnotation{#1}\xLnotation{#1}}
\newcommand\Lmnotation[1]{\nxLnotation{#1}\xLmnotation{#1}}
\newcommand\xLnotation[1]{\index{Syntax!#1@\nxLnotation{#1}}\index{#1@\nxLnotation{#1}}}
@@ -267,6 +269,7 @@
\index{#1@\texttt{#1}}\index{Keyword!#1@\texttt{#1}}
\index{#2@\texttt{#2}}\index{Value!#2@\texttt{#2}}}
\newcommand\Larg [1]{{\normalfont\itshape#1\/}}
+\newcommand\Larga[1]{$\langle$\Larg{#1}$\rangle$}% angles
\newcommand\Largb[1]{\lcb\Larg{#1}\rcb} % curly brace
\newcommand\Largs[1]{\lsb\Larg{#1}\rsb} % square brackets
\newcommand\Largr[1]{\lrb\Larg{#1}\rrb} % round brackets
@@ -383,7 +386,7 @@
\rput[lb](3,7.6){\parbox{15cm}{\sffamily\@date}}
\rput[lb](3,-2.6){\parbox[b]{19cm}{\sffamily\RaggedRight
\ifx\@docauthor\empty~\else Documentation by\fi\hfill\makebox[7cm][l]{Package author(s):}\\
- \ifx\@docauthor\empty~\else\textbf{\@docauthor}\fi\hfill\makebox[7cm][l]{%
+ \ifx\@docauthor\empty~\else{\bfseries\tabular[t]{@{}l@{}}\@docauthor\endtabular}\fi\hfill\makebox[7cm][l]{%
\bfseries\tabular[t]{@{}l@{}}\@author\endtabular}}}
\end{pspicture}%
\end{titlepage}
diff --git a/Master/texmf-dist/doc/generic/pstricks/pst-news09.pdf b/Master/texmf-dist/doc/generic/pstricks/pst-news09.pdf
new file mode 100644
index 00000000000..d870b01769e
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pstricks/pst-news09.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pstricks/pst-news09.tex b/Master/texmf-dist/doc/generic/pstricks/pst-news09.tex
new file mode 100644
index 00000000000..457308895fb
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pstricks/pst-news09.tex
@@ -0,0 +1,297 @@
+%% $Id: pst-news09.tex 62 2008-11-25 19:52:07Z herbert $
+\documentclass[11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false,smallheadings
+ headexclude,footexclude,oneside]{pst-doc}
+\listfiles
+\usepackage[utf8]{inputenc}
+\usepackage{pst-plot}
+\let\pstplotFV\fileversion
+\let\pstplotFD\filedate
+\usepackage{pst-node}
+\let\pstnodeFV\fileversion
+\let\pstnodeFD\filedate
+\usepackage{pst-tree}
+\let\psttreeFV\fileversion
+\let\psttreeFD\filedate
+\usepackage{pst-eucl}
+\begin{document}
+
+%\psset{PstDebug=1}
+\title{\texttt{News -- 2009}\\ \Large new macros and bugfixes for the
+basic packages \nxLFile{pstricks}, \nxLFile{pst-plot}, and \nxLFile{pst-node}}
+\author{Herbert Voß}
+\date{\today}
+
+\maketitle
+
+\clearpage
+\tableofcontents
+
+\clearpage
+\part{\texttt{pstricks} -- package}
+
+\section{General}
+There exists a new document class \LClass{pst-doc} for writing PSTricks documentations,
+like this news document. It depends on the KOMA-Script document class \LClass{scrartcl}.
+\LClass{pst-doc} defines a lot of special macros to create a good index. Take one of
+the already existing package documentation and look into the source file. Then it will be
+easy to understand, how all these macros have to be used.
+
+
+
+%--------------------------------------------------------------------------------------
+\section{\texttt{pstricks.sty}}
+%--------------------------------------------------------------------------------------
+
+\subsection{New optional argument}
+With the new optional argument \Lkeyval{97} \LPack{pstricks} has the old behaviour of the
+version of 1997. The \Lenv{pspicture} environment then has only a value as
+optional argument, which shifts the box in vertical direction. The new options
+\Lkeyword{shift} and \Lkeyword{showgrid} do not work in this case.
+The support of transparency colors is also disabled.
+
+
+%--------------------------------------------------------------------------------------
+\section{\texttt{pstricks.tex} (\pstricksFV -- \pstricksFD)}
+%--------------------------------------------------------------------------------------
+\subsection{Makro \nxLcs{next}}
+To prevent problems with other packages which also define a \Lcs{next}
+macro, it is now renamed to \Lcs{ps@next}. This should be not important
+for the user, because it is used only by the base system itself.
+
+\subsection{Makro \nxLcs{psDEBUG}}
+\LPack{pstricks} defines the option \texttt{PstDebug=0|1}, which can be used for
+debugging. The new macro \Lcs{psDEBUG} makes it easier to write some \Index{debugging}
+information into the package files. The macro is only valid, if \Lkeyword{PstDebug}=1
+is set, otherwise the macro does nothing.
+
+\begin{BDef}
+\Lcs{psDEBUG}\OptArgs\Largb{text}
+\end{BDef}
+
+\Lcs{psDEBUG} writes the argument \Larg{text} into the log file.
+Without an optional argument the word \Larg{pstricks} is used. The following output
+of the log file
+
+\begin{lstlisting}
+...
+<key:xticksize>: setting ticksize to max
+LaTeX Font Info: External font `cmex10' loaded for size
+(Font) <7> on input line 26.
+LaTeX Font Info: External font `cmex10' loaded for size
+(Font) <5> on input line 26.
+<pst@@hlabels>: xticksizeC=0.0pt
+...
+\end{lstlisting}
+
+was possible with \Lcs{psset}\Largb{\Lkeyword{PstDebug}}=1\footnote{Can also be used locally for a
+macro when used as optional argument
+in the usual way.}
+and inside of \LPack{pstricks-add} with
+(only the first for example):
+\begin{lstlisting}
+...
+ \psDEBUG[key:ticksize]{setting ticksize}
+...
+\end{lstlisting}
+
+\subsection{Special Coordinates}
+The macros \Lcs{SpecialCoor} and the corresponding \Lcs{NormalCoor} can now be used for
+the \Index{radius} of \Index{arc}s and \Index{circle}s. With a preceeding \Lnotation{!} character the length can
+be of any PostScript expression and will be taken with the unit pt in user coordinates:
+
+\begin{LTXexample}[width=6cm]
+\begin{pspicture}[showgrid=true](-3,-3)(3,3)
+\pscircle[linecolor=red](0,0){1cm}
+\SpecialCoor
+\pscircle[linecolor=blue](0,0){!3 sqrt}
+\NormalCoor
+\psarc[linewidth=2pt](0,0){2cm}{90}{270}
+\SpecialCoor
+\psarc[linecolor=green](0,0){! 60 sin dup add }{90}{270}
+\end{pspicture}
+\end{LTXexample}
+
+\SpecialCoor
+
+\subsection{\nxLcs{psarcAB} and \nxLcs{psarcnAB}}
+
+\begin{BDef}
+\Lcs{psarcAB}\OptArgs\OptArg*{\Largb{arrows}}\coord{C}\coord{A}\coord{B}\\
+\Lcs{psarcnAB}\OptArgs\OptArg*{\Largb{arrows}}\coord{C}\coord{A}\coord{B}
+\end{BDef}
+
+$(x_C, y_C)$ is the center and $(x_A, y_A)$ $(x_B, y_B)$ are two given points of the
+\Index{circle}. The angles for the \Index{arc} are calculated by \TeX. The arc is drawn from the first
+to the second point. The radius is the distance from the center to the first point.
+The second point can have another distance, it is only used for calculating the angle.
+The following examples needs the package \LPack{pst-eucl}.
+
+\begin{LTXexample}[width=6cm]
+\begin{pspicture}(-3,-3)(3,3)
+\pstTriangle[PosAngle={180,0,90}](-3,0){A}(3,0){B}(0,3){C}
+\pstCircleOA{I}{A}
+\pstMiddleAB{A}{B}{Iab}
+\pscustom[linestyle=none,fillstyle=solid,fillcolor=blue!50]{%
+ \psarcAB(C)(A)(B)
+ \psarcnAB(Iab)(B)(A)}
+\pstMiddleAB{A}{C}{Iac}
+\pscustom[linestyle=none,fillstyle=solid,fillcolor=red!50]{%
+ \psarcnAB(I)(A)(C)
+ \psarcAB(Iac)(C)(A)}
+\pstMiddleAB{B}{C}{Ibc}
+\pscustom[linestyle=none,fillstyle=solid,fillcolor=green!50]{%
+ \psarcAB(I)(B)(C)
+ \psarcnAB(Ibc)(C)(B)}
+\end{pspicture}
+\end{LTXexample}
+
+
+\subsection{Makro \nxLcs{psPline}}
+\begin{BDef}
+\Lcs{psPline}\OptArgs\coord1\coord2\coord3
+\end{BDef}
+
+The first point P1 is a projection onto the line of $\overline{P_2P_3}$
+and connected with drawing a line similiar to \Lcs{psline}. This macro
+has three mandatory arguments for the three points.
+
+\begin{LTXexample}[pos=t]
+\psset{unit=3}
+\begin{pspicture}[showgrid=true](3,2)
+\pspolygon(0,1)(3,2)(2.5,0)
+\psPline[linestyle=dashed,arrowscale=2]{->}(0,1)(3,2)(2.5,0)
+\psPline[linestyle=dashed,arrowscale=2]{->}(3,2)(2.5,0)(0,1)
+\psPline[linestyle=dashed,arrowscale=2]{->}(2.5,0)(0,1)(3,2)
+\end{pspicture}
+\end{LTXexample}
+
+
+
+%--------------------------------------------------------------------------------------
+\section{The PostScript header files}
+\subsection{\nxLFile{pstricks.pro}}
+Only cosemetic changes to the code to make it more readable.
+%--------------------------------------------------------------------------------------
+\subsection{\nxLFile{pst-node.pro}}
+Only cosemetic changes to the code to make it more readable.
+
+\part{\nxLPack{pst-node} -- package}
+
+\section{\nxLFile{pst-node.tex} (\pstnodeFV -- \pstnodeFD)}
+
+There was a bug in \Lcs{fnode}. It is now fixed.
+
+foo
+
+ z \quad
+ \pnode{testL1}
+ \fnode[linecolor=lightgray,framesize=6pt 50pt](0,.5ex){eqL}
+ \pnode(0,2ex){testL2}
+ \quad
+ =
+ \quad%
+ \pnode{testR1}
+ \fnode[linecolor=lightgray,framesize=6pt 50pt](0,.5ex){eqR}
+ \pnode(0,2ex){testR2}
+ \quad
+ z
+ \ncline[linecolor=red]{testL1}{testR1}
+ \ncline[linecolor=blue]{testL2}{testR2}
+
+bar
+
+\bigskip now with an aligned node
+\psset{nodealign=true}
+
+foo
+
+ z \quad
+ \pnode{testL1}
+ \fnode[linecolor=lightgray,framesize=6pt 50pt](0,.5ex){eqL}
+ \pnode(0,2ex){testL2}
+ \quad
+ =
+ \quad%
+ \pnode{testR1}
+ \fnode[linecolor=lightgray,framesize=6pt 50pt](0,.5ex){eqR}
+ \pnode(0,2ex){testR2}
+ \quad
+ z
+ \ncline[linecolor=red]{testL1}{testR1}
+ \ncline[linecolor=blue]{testL2}{testR2}
+
+bar
+
+
+\begin{lstlisting}
+foo
+
+ z \quad
+ \pnode{testL1}
+ \fnode[linecolor=lightgray,framesize=6pt 50pt](0,.5ex){eqL}
+ \pnode(0,2ex){testL2}
+ \quad
+ =
+ \quad%
+ \pnode{testR1}
+ \fnode[linecolor=lightgray,framesize=6pt 50pt](0,.5ex){eqR}
+ \pnode(0,2ex){testR2}
+ \quad
+ z
+ \ncline[linecolor=red]{testL1}{testR1}
+ \ncline[linecolor=blue]{testL2}{testR2}
+
+bar
+
+\bigskip now with an aligned node
+\psset{nodealign=true}
+
+foo
+
+ z \quad
+ \pnode{testL1}
+ \fnode[linecolor=lightgray,framesize=6pt 50pt](0,.5ex){eqL}
+ \pnode(0,2ex){testL2}
+ \quad
+ =
+ \quad%
+ \pnode{testR1}
+ \fnode[linecolor=lightgray,framesize=6pt 50pt](0,.5ex){eqR}
+ \pnode(0,2ex){testR2}
+ \quad
+ z
+ \ncline[linecolor=red]{testL1}{testR1}
+ \ncline[linecolor=blue]{testL2}{testR2}
+
+bar
+\end{lstlisting}
+
+
+\part{\nxLPack{pst-plot} -- package}
+
+\section{\nxLFile{pst-plot.tex} (\pstplotFV -- \pstplotFD)}
+
+To be more consistent to other macro names there are now the names
+\Lcs{psparametricplot}, \Lcs{psfileplot}, \Lcs{pslistplot}, and
+\Lcs{psdataplot}. The old macros without the preceeding \verb+ps+
+still work!
+
+There is now a new \PS boolean variable which can control loops.
+With setting \texttt{/\Lps{ps@Exit} true def} you can leave a loop
+for plotting a function with \Lcs{psplot} and \Lcs{psparametricplot}.
+
+
+\part{\nxLPack{pst-tree} -- package}
+\section{\nxLFile{pst-tree.tex} (\psttreeFV -- \psttreeFD)}
+
+The package \LPack{pst-tree} now uses the advanced key handling from \LPack{xkeyval}. The reason
+why it moved from the base into the contrib sections, where all packages uses \LPack{xkeyval}.
+
+\nocite{*}
+\bibliographystyle{plain}
+\bibliography{PSTricks}
+
+\printindex
+
+
+\end{document}
diff --git a/Master/texmf-dist/dvips/pstricks/pst-node.pro b/Master/texmf-dist/dvips/pstricks/pst-node.pro
index 5916c637eb1..72e43440fd9 100644
--- a/Master/texmf-dist/dvips/pstricks/pst-node.pro
+++ b/Master/texmf-dist/dvips/pstricks/pst-node.pro
@@ -1,7 +1,7 @@
-% $Id: pst-node.pro 26 2008-06-14 11:50:02Z herbert $
+% $Id: pst-node.pro 90 2009-01-30 10:58:51Z herbert $
%%
%% PostScript prologue for pst-node.tex.
-%% Version 1.00, 2008/01/01.
+%% Version 1.02, 2009/01/30.
%%
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN archives
@@ -54,40 +54,105 @@ end
Cos mul exch Sin mul
} def
%
-/TriNodePos { Sin s lt { d NodeSep sub dup Cos mul Sin Div exch } { w h
-mul w Sin mul h Cos abs mul add Div NodeSep add dup Cos mul exch Sin mul
-} ifelse } def
-/InitTriNode { sub 2 div exch 2 div exch 2 copy T 2 copy 4 index index /d
-ED pop pop pop pop -90 mul rotate /NodeMtrx CM def /X 0 def /Y 0 def d
-sub abs neg /d ED d add /h ED 2 div h mul h d sub Div /w ED /s d w Atan
-sin def /NodePos { TriNodePos } def } def
-/OvalNodePos { /ww w NodeSep add def /hh h NodeSep add def Sin ww mul Cos
-hh mul Atan dup cos ww mul exch sin hh mul } def
+/TriNodePos {
+ Sin s lt
+ { d NodeSep sub dup Cos mul Sin Div exch }
+ { w h mul w Sin mul h Cos abs mul add Div
+ NodeSep add dup Cos mul exch Sin mul
+ } ifelse
+} def
+%
+/InitTriNode {
+ sub 2 div exch
+ 2 div exch
+ 2 copy T
+ 2 copy 4 index index /d ED
+ pop pop pop pop
+ -90 mul rotate
+ /NodeMtrx CM def
+ /X 0 def /Y 0 def
+ d sub abs neg /d ED
+ d add /h ED
+ 2 div h mul h d sub Div /w ED
+ /s d w Atan sin def
+ /NodePos { TriNodePos } def
+} def
+%
+/OvalNodePos {
+ /ww w NodeSep add def
+ /hh h NodeSep add def
+ Sin ww mul Cos hh mul Atan dup cos ww mul exch sin hh mul
+} def
+%
/GetCenter { begin X Y NodeMtrx transform CM itransform end } def
%
-/XYPos { dup sin exch cos Do /Cos ED /Sin ED /Dist ED Cos 0 gt { Dist
- Dist Sin mul Cos div } { Cos 0 lt { Dist neg Dist Sin mul Cos div neg }
- { 0 Dist Sin mul } ifelse } ifelse Do
-} def
-/GetEdge { dup 0 eq { pop begin 1 0 NodeMtrx dtransform CM idtransform
- exch atan sub dup sin /Sin ED cos /Cos ED /NodeSep ED NodePos NodeMtrx
- dtransform CM idtransform end } { 1 eq {{exch}} {{}} ifelse /Do ED pop
- XYPos } ifelse
-} def
-/AddOffset { 1 index 0 eq { pop pop } { 2 copy 5 2 roll cos mul add 4 1
-roll sin mul sub exch } ifelse } def
-/GetEdgeA { NodeSepA AngleA NodeA NodeSepTypeA GetEdge OffsetA AngleA
-AddOffset yA add /yA1 ED xA add /xA1 ED } def
-/GetEdgeB { NodeSepB AngleB NodeB NodeSepTypeB GetEdge OffsetB AngleB
-AddOffset yB add /yB1 ED xB add /xB1 ED } def
-/GetArmA { ArmTypeA 0 eq { /xA2 ArmA AngleA cos mul xA1 add def /yA2 ArmA
-AngleA sin mul yA1 add def } { ArmTypeA 1 eq {{exch}} {{}} ifelse /Do ED
-ArmA AngleA XYPos OffsetA AngleA AddOffset yA add /yA2 ED xA add /xA2 ED
-} ifelse } def
-/GetArmB { ArmTypeB 0 eq { /xB2 ArmB AngleB cos mul xB1 add def /yB2 ArmB
-AngleB sin mul yB1 add def } { ArmTypeB 1 eq {{exch}} {{}} ifelse /Do ED
-ArmB AngleB XYPos OffsetB AngleB AddOffset yB add /yB2 ED xB add /xB2 ED
-} ifelse } def
+/XYPos {
+ dup sin exch cos Do
+ /Cos ED /Sin ED /Dist ED
+ Cos 0 gt
+ { Dist Dist Sin mul Cos div }
+ { Cos 0 lt
+ { Dist neg Dist Sin mul Cos div neg }
+ { 0 Dist Sin mul } ifelse
+ } ifelse
+ Do
+} def
+%
+/GetEdge {
+ dup 0 eq
+ { pop begin 1 0 NodeMtrx dtransform
+ CM idtransform
+ exch atan sub
+ dup
+ sin /Sin ED
+ cos /Cos ED
+ /NodeSep ED
+ NodePos NodeMtrx dtransform CM idtransform end }
+ { 1 eq {{exch}} {{}} ifelse /Do ED pop XYPos } ifelse
+} def
+%
+/AddOffset {
+ 1 index 0 eq
+ { pop pop }
+ { 2 copy 5 2 roll cos mul add 4 1 roll sin mul sub exch } ifelse
+} def
+%
+/GetEdgeA {
+ NodeSepA AngleA NodeA NodeSepTypeA GetEdge
+ OffsetA AngleA AddOffset
+ yA add /yA1 ED
+ xA add /xA1 ED
+} def
+%
+/GetEdgeB {
+ NodeSepB AngleB NodeB NodeSepTypeB GetEdge
+ OffsetB AngleB AddOffset
+ yB add /yB1 ED
+ xB add /xB1 ED
+} def
+%
+/GetArmA {
+ ArmTypeA 0 eq
+ { /xA2 ArmA AngleA cos mul xA1 add def
+ /yA2 ArmA AngleA sin mul yA1 add def }
+ { ArmTypeA 1 eq {{exch}} {{}} ifelse
+ /Do ED
+ ArmA AngleA XYPos OffsetA AngleA AddOffset
+ yA add /yA2 ED
+ xA add /xA2 ED } ifelse
+} def
+%
+/GetArmB {
+ ArmTypeB 0 eq
+ { /xB2 ArmB AngleB cos mul xB1 add def
+ /yB2 ArmB AngleB sin mul yB1 add def }
+ { ArmTypeB 1 eq {{exch}} {{}} ifelse
+ /Do ED
+ ArmB AngleB XYPos OffsetB AngleB AddOffset
+ yB add /yB2 ED
+ xB add /xB2 ED } ifelse
+} def
+%
/InitNC {
/b ED /a ED % second and first node
/NodeSepTypeB ED /NodeSepTypeA ED
@@ -100,11 +165,25 @@ ArmB AngleB XYPos OffsetB AngleB AddOffset yB add /yB2 ED xB add /xB2 ED
NodeB GetCenter /yB ED /xB ED } if
} def
%
-/LPutLine { 4 copy 3 -1 roll sub neg 3 1 roll sub Atan /NAngle ED 1 t sub
-mul 3 1 roll 1 t sub mul 4 1 roll t mul add /Y ED t mul add /X ED } def
-/LPutLines { mark LPutVar counttomark 2 div 1 sub /n ED t floor dup n gt
-{ pop n 1 sub /t 1 def } { dup t sub neg /t ED } ifelse cvi 2 mul { pop
-} repeat LPutLine cleartomark } def
+/LPutLine {
+ 4 copy
+ 3 -1 roll sub neg 3 1 roll sub Atan /NAngle ED
+ 1 t sub mul
+ 3 1 roll 1 t sub mul
+ 4 1 roll t mul add /Y ED
+ t mul add /X ED
+} def
+%
+/LPutLines {
+ mark LPutVar counttomark 2 div 1 sub /n ED
+% t floor dup n gt
+ t floor dup n ge % to allow npos<= hv 2008-08-14
+ { pop n 1 sub /t 1 def } { dup t sub neg /t ED } ifelse
+ cvi 2 mul { pop } repeat
+ LPutLine
+ cleartomark
+} def
+%
/BezierMidpoint { /y3 ED /x3 ED /y2 ED /x2 ED /y1 ED /x1 ED /y0 ED /x0 ED
/t ED /cx x1 x0 sub 3 mul def /cy y1 y0 sub 3 mul def /bx x2 x1 sub 3
mul cx sub def /by y2 y1 sub 3 mul cy sub def /ax x3 x0 sub cx sub bx
@@ -168,51 +247,110 @@ cvx def /LPutPos { t LPutVar BezierMidpoint } def /HPutPos { { HPutLines
/HPutPos { HPutLines } def
/VPutPos { VPutLines } def } def
%
-/NCAngle { GetEdgeA GetEdgeB GetArmB /mtrx AngleA matrix rotate def xB2
-yB2 mtrx itransform pop xA1 yA1 mtrx itransform exch pop mtrx transform
-/y0 ED /x0 ED mark ArmB 0 ne { xB1 yB1 } if xB2 yB2 x0 y0 xA1 yA1
-tx@Dict begin false Line end /LPutVar [ xB1 yB1 xB2 yB2 x0 y0 xA1 yA1 ]
-cvx def /LPutPos { LPutLines } def /HPutPos { HPutLines } def /VPutPos {
-VPutLines } def } def
-/NCBar { GetEdgeA GetEdgeB GetArmA GetArmB /mtrx AngleA matrix rotate def
-xA2 yA2 mtrx itransform pop xB2 yB2 mtrx itransform pop sub dup 0 mtrx
-transform 3 -1 roll 0 gt { /yB2 exch yB2 add def /xB2 exch xB2 add def }
-{ /yA2 exch neg yA2 add def /xA2 exch neg xA2 add def } ifelse mark ArmB
-0 ne { xB1 yB1 } if xB2 yB2 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict
-begin false Line end /LPutVar [ xB1 yB1 xB2 yB2 xA2 yA2 xA1 yA1 ] cvx
-def /LPutPos { LPutLines } def /HPutPos { HPutLines } def /VPutPos {
-VPutLines } def } def
-/NCDiag { GetEdgeA GetEdgeB GetArmA GetArmB mark ArmB 0 ne { xB1 yB1 } if
-xB2 yB2 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin false Line end
-/LPutVar [ xB1 yB1 xB2 yB2 xA2 yA2 xA1 yA1 ] cvx def /LPutPos {
-LPutLines } def /HPutPos { HPutLines } def /VPutPos { VPutLines } def }
-def
-/NCDiagg { GetEdgeA GetArmA yB yA2 sub xB xA2 sub Atan 180 add /AngleB ED
-GetEdgeB mark xB1 yB1 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin
-false Line end /LPutVar [ xB1 yB1 xA2 yA2 xA1 yA1 ] cvx def /LPutPos {
-LPutLines } def /HPutPos { HPutLines } def /VPutPos { VPutLines } def }
-def
-/NCLoop { GetEdgeA GetEdgeB GetArmA GetArmB /mtrx AngleA matrix rotate
-def xA2 yA2 mtrx transform loopsize add /yA3 ED /xA3 ED /xB3 xB2 yB2
-mtrx transform pop def xB3 yA3 mtrx itransform /yB3 ED /xB3 ED xA3 yA3
-mtrx itransform /yA3 ED /xA3 ED mark ArmB 0 ne { xB1 yB1 } if xB2 yB2
-xB3 yB3 xA3 yA3 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin false
-Line end /LPutVar [ xB1 yB1 xB2 yB2 xB3 yB3 xA3 yA3 xA2 yA2 xA1 yA1 ]
-cvx def /LPutPos { LPutLines } def /HPutPos { HPutLines } def /VPutPos {
-VPutLines } def } def
+/NCAngle {
+ GetEdgeA GetEdgeB GetArmB
+ /mtrx AngleA matrix rotate def
+ xB2 yB2 mtrx itransform pop xA1 yA1 mtrx itransform exch pop mtrx transform
+ /y0 ED /x0 ED
+ mark
+ ArmB 0 ne { xB1 yB1 } if
+ xB2 yB2 x0 y0 xA1 yA1
+ tx@Dict begin false Line end
+ /LPutVar [ xB1 yB1 xB2 yB2 x0 y0 xA1 yA1 ] cvx def
+ /LPutPos { LPutLines } def
+ /HPutPos { HPutLines } def
+ /VPutPos { VPutLines } def
+} def
+%
+/NCBar {
+ GetEdgeA GetEdgeB GetArmA GetArmB
+ /mtrx AngleA matrix rotate def
+ xA2 yA2 mtrx itransform pop
+ xB2 yB2 mtrx itransform pop
+ sub dup 0 mtrx transform
+ 3 -1 roll 0 gt
+ { /yB2 exch yB2 add def /xB2 exch xB2 add def }
+ { /yA2 exch neg yA2 add def /xA2 exch neg xA2 add def } ifelse
+ mark
+ ArmB 0 ne { xB1 yB1 } if
+ xB2 yB2 xA2 yA2 ArmA 0 ne { xA1 yA1 } if
+ tx@Dict begin false Line end
+ /LPutVar [ xB1 yB1 xB2 yB2 xA2 yA2 xA1 yA1 ] cvx def
+ /LPutPos { LPutLines } def
+ /HPutPos { HPutLines } def
+ /VPutPos { VPutLines } def
+} def
+%
+/NCDiag {
+ GetEdgeA GetEdgeB GetArmA GetArmB mark
+ ArmB 0 ne { xB1 yB1 } if
+ xB2 yB2 xA2 yA2
+ ArmA 0 ne { xA1 yA1 } if
+ tx@Dict begin false Line end
+ /LPutVar [ xB1 yB1 xB2 yB2 xA2 yA2 xA1 yA1 ] cvx def
+ /LPutPos { LPutLines } def
+ /HPutPos { HPutLines } def
+ /VPutPos { VPutLines } def
+} def
+%
+/NCDiagg {
+ GetEdgeA GetArmA
+ yB yA2 sub xB xA2 sub Atan 180 add /AngleB ED
+ GetEdgeB
+ mark
+ xB1 yB1 xA2 yA2
+ ArmA 0 ne { xA1 yA1 } if
+ tx@Dict begin false Line end
+ /LPutVar [ xB1 yB1 xA2 yA2 xA1 yA1 ] cvx def
+ /LPutPos { LPutLines } def
+ /HPutPos { HPutLines } def
+ /VPutPos { VPutLines } def
+} def
+%
+/NCLoop {
+ GetEdgeA GetEdgeB GetArmA GetArmB
+ /mtrx AngleA matrix rotate def
+ xA2 yA2 mtrx transform loopsize add /yA3 ED /xA3 ED
+ /xB3 xB2 yB2 mtrx transform pop def
+ xB3 yA3 mtrx itransform /yB3 ED /xB3 ED
+ xA3 yA3 mtrx itransform /yA3 ED /xA3 ED
+ mark ArmB 0 ne { xB1 yB1 } if
+ xB2 yB2 xB3 yB3 xA3 yA3 xA2 yA2 ArmA 0 ne { xA1 yA1 } if
+ tx@Dict begin false Line end
+ /LPutVar [ xB1 yB1 xB2 yB2 xB3 yB3 xA3 yA3 xA2 yA2 xA1 yA1 ] cvx def
+ /LPutPos { LPutLines } def
+ /HPutPos { HPutLines } def
+ /VPutPos { VPutLines } def
+} def
+%
% DG/SR modification begin - May 9, 1997 - Patch 1
%/NCCircle { 0 0 NodesepA nodeA \tx@GetEdge pop xA sub 2 div dup 2 exp r
%r mul sub abs sqrt atan 2 mul /a ED r AngleA 90 add PtoC yA add exch xA add
%exch 2 copy /LPutVar [ 4 2 roll r AngleA ] cvx def /LPutPos { LPutVar t 360
%mul add dup 5 1 roll 90 sub \tx@PtoC 3 -1 roll add /Y ED add /X ED /NAngle ED
-/NCCircle { NodeSepA 0 NodeA 0 GetEdge pop 2 div dup 2 exp r
-r mul sub abs sqrt atan 2 mul /a ED r AngleA 90 add PtoC yA add exch xA add
-exch 2 copy /LPutVar [ 4 2 roll r AngleA ] cvx def /LPutPos { LPutVar t 360
-mul add dup 5 1 roll 90 sub PtoC 3 -1 roll add /Y ED add /X ED /NAngle ED
+%
+/NCCircle {
+ NodeSepA 0 NodeA 0 GetEdge pop
+ 2 div dup 2 exp r r mul sub abs sqrt
+ atan 2 mul /a ED
+ r AngleA 90 add PtoC yA add exch xA add
+ exch 2 copy
+ /LPutVar [ 4 2 roll r AngleA ] cvx def
+ /LPutPos {
+ LPutVar t 360 mul add dup 5 1 roll 90 sub PtoC
+ 3 -1 roll add
+ /Y ED add /X ED /NAngle ED
% DG/SR modification end
-} def /HPutPos { LPutPos } def /VPutPos { LPutPos } def r AngleA 90 sub a add
-AngleA 270 add a sub tx@Dict begin /angleB ED /angleA ED /r ED /c 57.2957 r
-Div def /y ED /x ED } def
+ } def
+ /HPutPos { LPutPos } def
+ /VPutPos { LPutPos } def
+ r AngleA 90 sub a add AngleA 270 add a sub
+ tx@Dict begin
+ /angleB ED /angleA ED /r ED
+ /c 57.2957 r Div def
+ /y ED /x ED
+} def
+%
/NCBox { /d ED /h ED /AngleB yB yA sub xB xA sub Atan def /AngleA AngleB
180 add def GetEdgeA GetEdgeB /dx d AngleB sin mul def /dy d AngleB cos
mul neg def /hx h AngleB sin mul neg def /hy h AngleB cos mul def
@@ -250,19 +388,46 @@ w sub yB } { xB yB w sub xB yB w add } ifelse xA1 yA1 ] cvx def /LPutPos
{ pop pop pop pop 4 2 roll } ifelse } def /VPutPos { VPutPos@ VPutLine }
def /HPutPos { VPutPos@ HPutLine } def mark LPutVar tx@Dict begin
/ArrowA { moveto } def /ArrowB { } def false Line closepath end } def
-
-/LPutCoor { NAngle tx@Dict begin /NAngle ED end gsave CM STV CP Y sub neg
-exch X sub neg exch moveto setmatrix CP grestore } def
-
-/LPut { tx@NodeDict /LPutPos known { LPutPos } { CP /Y ED /X ED /NAngle 0
-def } ifelse LPutCoor } def
-/HPutAdjust { Sin Cos mul 0 eq { 0 } { d Cos mul Sin div flag not { neg }
-if h Cos mul Sin div flag { neg } if 2 copy gt { pop } { exch pop }
-ifelse } ifelse s add flag { r add neg } { l add } ifelse X add /X ED }
-def
-/VPutAdjust { Sin Cos mul 0 eq { 0 } { l Sin mul Cos div flag { neg } if
-r Sin mul Cos div flag not { neg } if 2 copy gt { pop } { exch pop }
-ifelse } ifelse s add flag { d add } { h add neg } ifelse Y add /Y ED }
-def
+%
+/LPutCoor {
+ NAngle
+ tx@Dict begin /NAngle ED end
+ gsave
+ CM STV
+ CP Y sub neg exch X sub neg exch moveto
+ setmatrix CP
+ grestore
+} def
+%
+/LPut {
+ tx@NodeDict /LPutPos known
+ { LPutPos } { CP /Y ED /X ED /NAngle 0 def } ifelse
+ LPutCoor
+} def
+%
+/HPutAdjust {
+ Sin Cos mul 0 eq
+ { 0 }
+ { d Cos mul Sin div flag not { neg } if
+ h Cos mul Sin div flag { neg } if
+ 2 copy gt { pop } { exch pop } ifelse
+ } ifelse
+ s add flag { r add neg }{ l add } ifelse
+ X add /X ED
+} def
+%
+/VPutAdjust {
+ Sin Cos mul
+ 0 eq
+ { 0 }
+ { l Sin mul Cos div flag { neg } if
+ r Sin mul Cos div flag not { neg } if
+ 2 copy gt { pop } { exch pop } ifelse
+ } ifelse
+ s add flag { d add } { h add neg } ifelse
+ Y add /Y ED
+} def
+%
end
+%
% END pst-node.pro
diff --git a/Master/texmf-dist/dvips/pstricks/pstricks.pro b/Master/texmf-dist/dvips/pstricks/pstricks.pro
index 7701af23def..fa156bb7488 100644
--- a/Master/texmf-dist/dvips/pstricks/pstricks.pro
+++ b/Master/texmf-dist/dvips/pstricks/pstricks.pro
@@ -1,7 +1,7 @@
-% $Id: pstricks.pro 34 2008-06-25 17:20:01Z herbert $
+% $Id: pstricks.pro 90 2009-01-30 10:58:51Z herbert $
%
%% PostScript prologue for pstricks.tex.
-%% Version 1.05, 2008/06/25
+%% Version 1.06, 2009/01/30
%%
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN archives
@@ -53,10 +53,12 @@ tx@Dict begin
/TwoPi 6.28318530718 def
/Euler 2.71828182846 def
%/e Euler bind def
+%
/RadtoDeg { 180 mul Pi div } bind def % convert from radian to degrees
/DegtoRad { Pi mul 180 div } bind def % viceversa
%----------------- hv end---------------------------
/PathLength@ { /z z y y1 sub x x1 sub Pyth add def /y1 y def /x1 x def } def
+%
/PathLength {
flattenpath /z 0 def
{ /y1 ED /x1 ED /y2 y1 def /x2 x1 def }
@@ -314,13 +316,26 @@ tx@Dict begin
%div dup cos exch sin Div mul sub def } ifelse mark 0 d w neg d 0 h w d 0
%d /ArrowA { moveto } def /ArrowB { } def false Line closepath mtrx
%setmatrix } def
-/Triangle { /mtrx CM def translate rotate /h ED 2 div /w ED dup
-CLW mul /d ED /h h d w h Atan sin Div sub def /w w d h w Atan 2
-div dup cos exch sin Div mul sub def mark 0 d w neg d 0 h w d 0
-d /ArrowA { moveto } def /ArrowB { } def false Line closepath mtrx
+%
+/Triangle {
+ /mtrx CM def
+ translate
+ rotate /h ED 2 div /w ED
+ dup CLW mul /d ED
+ /h h d w h Atan sin Div sub def
+ /w w d h w Atan 2 div dup cos exch sin Div mul sub def
+ mark
+ 0 d w neg d 0 h w d 0 d
+ /ArrowA { moveto } def
+ /ArrowB { } def
+ false
+ Line
+ closepath
+ mtrx
% DG/SR modification begin - Jun. 1, 1998 - Patch 3 (from Michael Vulis)
% setmatrix } def
-setmatrix pop } def
+ setmatrix pop
+} def
% DG/SR modification end
%
/CCA {
@@ -389,21 +404,53 @@ setmatrix pop } def
%
/SQ { /r ED r r moveto r r neg L r neg r neg L r neg r L fill } def
/ST { /y ED /x ED x y moveto x neg y L 0 x L fill } def
-/SP { /r ED gsave 0 r moveto 4 { 72 rotate 0 r L } repeat fill grestore }
-def
-/FontDot { DS 2 mul dup matrix scale matrix concatmatrix exch matrix
-rotate matrix concatmatrix exch findfont exch makefont setfont } def
-/Rect { x1 y1 y2 add 2 div moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto
-x1 y1 lineto closepath } def
-/OvalFrame { x1 x2 eq y1 y2 eq or { pop pop x1 y1 moveto x2 y2 L } { y1
-y2 sub abs x1 x2 sub abs 2 copy gt { exch pop } { pop } ifelse 2 div
-exch { dup 3 1 roll mul exch } if 2 copy lt { pop } { exch pop } ifelse
-/b ED x1 y1 y2 add 2 div moveto x1 y2 x2 y2 b arcto x2 y2 x2 y1 b arcto
-x2 y1 x1 y1 b arcto x1 y1 x1 y2 b arcto 16 { pop } repeat closepath }
-ifelse } def
-/Frame { CLW mul /a ED 3 -1 roll 2 copy gt { exch } if a sub /y2 ED a add
-/y1 ED 2 copy gt { exch } if a sub /x2 ED a add /x1 ED 1 index 0 eq {
-pop pop Rect } { OvalFrame } ifelse } def
+/SP { /r ED gsave 0 r moveto 4 { 72 rotate 0 r L } repeat fill grestore } def
+%
+/FontDot {
+ DS 2 mul dup
+ matrix scale matrix concatmatrix exch matrix
+ rotate matrix concatmatrix exch
+ findfont exch makefont setfont
+} def
+%
+/Rect {
+ x1 y1 y2 add 2 div moveto
+ x1 y2 lineto
+ x2 y2 lineto
+ x2 y1 lineto
+ x1 y1 lineto
+ closepath
+} def
+%
+/OvalFrame {
+ x1 x2 eq y1 y2 eq or
+ { pop pop x1 y1 moveto x2 y2 L }
+ { y1 y2 sub abs x1 x2 sub abs 2 copy gt
+ { exch pop } { pop } ifelse
+ 2 div exch { dup 3 1 roll mul exch } if
+ 2 copy lt { pop } { exch pop } ifelse
+ /b ED
+ x1 y1 y2 add 2 div moveto
+ x1 y2 x2 y2 b arcto
+ x2 y2 x2 y1 b arcto
+ x2 y1 x1 y1 b arcto
+ x1 y1 x1 y2 b arcto
+ 16 { pop } repeat
+ closepath
+ } ifelse
+} def
+%
+/Frame {
+ CLW mul /a ED
+ 3 -1 roll
+ 2 copy gt { exch } if
+ a sub /y2 ED
+ a add /y1 ED
+ 2 copy gt { exch } if
+ a sub /x2 ED
+ a add /x1 ED
+ 1 index 0 eq { pop pop Rect } { OvalFrame } ifelse
+} def
%
/BezierNArray {
/f ED
@@ -640,27 +687,57 @@ dup angle0 sub dup abs 180 gt { 180 add 360 div floor 360 mul sub } { pop } ifel
a Rot /RAngle [ RAngle dup a add ] cvx def
} def
%
-/RotEnd { /TMatrix [ TMatrix setmatrix ] cvx def /RAngle [ RAngle pop ] cvx def } def
+/RotEnd {
+ /TMatrix [ TMatrix setmatrix ] cvx def
+ /RAngle [ RAngle pop ] cvx def
+} def
%
/PutCoor { gsave CP T CM STV exch exec moveto setmatrix CP grestore } def
/PutBegin { /TMatrix [ TMatrix CM ] cvx def CP 4 2 roll T moveto } def
/PutEnd { CP /TMatrix [ TMatrix setmatrix ] cvx def moveto } def
-/Uput { /a ED add 2 div /h ED 2 div /w ED /s a sin def /c a cos def /b s
-abs c abs 2 copy gt dup /q ED { pop } { exch pop } ifelse def /w1 c b
-div w mul def /h1 s b div h mul def q { w1 abs w sub dup c mul abs } {
-h1 abs h sub dup s mul abs } ifelse } def
-/UUput { /z ED abs /y ED /x ED q { x s div c mul abs y gt } { x c div s
-mul abs y gt } ifelse { x x mul y y mul sub z z mul add sqrt z add } { q
-{ x s div } { x c div } ifelse abs } ifelse a PtoC h1 add exch w1 add
-exch } def
-/BeginOL { dup (all) eq exch TheOL eq or { IfVisible not { Visible
-/IfVisible true def } if } { IfVisible { Invisible /IfVisible false def
-} if } ifelse } def
-/InitOL { /OLUnit [ 3000 3000 matrix defaultmatrix dtransform ] cvx def
-/Visible { CP OLUnit idtransform T moveto } def /Invisible { CP OLUnit
-neg exch neg exch idtransform T moveto } def /BOL { BeginOL } def
-/IfVisible true def } def
+%
+/Uput {
+ /a ED
+ add 2 div /h ED 2
+ div /w ED
+ /s a sin def
+ /c a cos def
+ /b s abs c abs 2 copy gt dup
+ /q ED
+ { pop } { exch pop } ifelse def
+ /w1 c b div w mul def
+ /h1 s b div h mul def
+ q { w1 abs w sub dup c mul abs }{ h1 abs h sub dup s mul abs } ifelse
+} def
+%
+/UUput {
+ /z ED
+ abs /y ED
+ /x ED
+ q { x s div c mul abs y gt }{ x c div s mul abs y gt } ifelse
+ { x x mul y y mul sub z z mul add sqrt z add }
+ { q { x s div } { x c div } ifelse abs
+ } ifelse
+ a PtoC
+ h1 add exch
+ w1 add exch
+} def
+%
+/BeginOL {
+ dup (all) eq exch TheOL eq or
+ { IfVisible not { Visible /IfVisible true def } if }
+ { IfVisible { Invisible /IfVisible false def } if } ifelse
+} def
+%
+/InitOL {
+ /OLUnit [ 3000 3000 matrix defaultmatrix dtransform ] cvx def
+ /Visible { CP OLUnit idtransform T moveto } def
+ /Invisible { CP OLUnit neg exch neg exch idtransform T moveto } def
+ /BOL { BeginOL } def
+ /IfVisible true def
+} def
+%
end
%-----------------------------------------------------------------------------%
-
+%
% END pstricks.pro
diff --git a/Master/texmf-dist/tex/generic/pstricks/pst-node.tex b/Master/texmf-dist/tex/generic/pstricks/pst-node.tex
index 36d61daba0e..ab6a512ef1b 100644
--- a/Master/texmf-dist/tex/generic/pstricks/pst-node.tex
+++ b/Master/texmf-dist/tex/generic/pstricks/pst-node.tex
@@ -4,11 +4,11 @@
%% See the betadoc documentation for usage.
%% This uses the header file `pst-node.pro'.
%%
-\def\fileversion{1.00}
-\def\filedate{2007/10/16}
+\def\fileversion{1.01}
+\def\filedate{2008/11/26}
%%
%% COPYRIGHT 1993, 1994, 1999 by Timothy Van Zandt, tvz@nwu.edu.
-%% COPYRIGHT by Herbert Voss, hvoss@tug.org.
+%% COPYRIGHT 2009- by Herbert Voss, hvoss@tug.org.
%%
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN
@@ -301,29 +301,31 @@ exch
\ifnodealign\lower\pst@dimb\fi
\box\pst@hbox
\endgroup}
+%
\def\dotnode{\pst@object{dotnode}}
\def\dotnode@i{\@ifnextchar({\dotnode@ii}{\dotnode@ii(\z@,\z@)}}
\def\dotnode@ii(#1)#2{%
-\leavevmode
-\hbox{%
-\use@par
-\pst@@getcoor{#1}%
-\pst@getdotsize
-\pstree@nodehook
-\ifnodealign
-\pst@dima=\pst@dimg
-\kern\pst@dima
-\vrule width\z@ height \pst@dimh depth \pst@dimh
-\fi
-\pst@newnode{#2}{14}{}{%
-\pst@coor
-/Y ED /X ED
-/w \pst@number\pst@dimg def
-/h \pst@number\pst@dimh def
-/NodePos { \tx@OvalNodePos } def}%
-\psdot@ii(#1)%
-\ifnodealign\kern\pst@dima\fi}%
-\ignorespaces}
+ \leavevmode%
+ \hbox{%
+ \use@par%
+ \pst@@getcoor{#1}%
+ \pst@getdotsize%
+ \pstree@nodehook%
+ \ifnodealign%
+ \pst@dima=\pst@dimg%
+ \kern\pst@dima%
+ \vrule width\z@ height \pst@dimh depth \pst@dimh%
+ \fi%
+ \pst@newnode{#2}{14}{}{
+ \pst@coor
+ /Y ED /X ED
+ /w \pst@number\pst@dimg def
+ /h \pst@number\pst@dimh def
+ /NodePos { \tx@OvalNodePos } def}%
+ \psdot@ii(#1)%
+ \ifnodealign\kern\pst@dima\fi}%
+ \ignorespaces}
+%
\def\psset@framesize#1{\pst@expandafter\psset@@framesize{#1} \@nil}
\def\psset@@framesize#1 #2\@nil{%
\pssetlength\pst@dimg{#1}%
@@ -336,46 +338,47 @@ exch
\divide\pst@dimg2
\edef\psk@frameheight{\pst@number\pst@dimg}%
\fi}
+%
\psset@framesize{10pt}
+%
\def\fnode{\pst@object{fnode}}
\def\fnode@i{\@ifnextchar({\fnode@ii}{\fnode@ii(\z@,\z@)}}
\def\fnode@ii(#1)#2{%
-\leavevmode
-\pst@killglue
-\hbox{%
-\use@par
-\begin@ClosedObj
-\ifnodealign
-\kern\psk@framewidth\p@
-\vrule width\z@ height \psk@frameheight\p@ depth \psk@frameheight\p@
-\edef\pst@coor{0 0 }%
-\else
-\pst@@getcoor{#1}%
-\fi
-\pst@newnode{#2}{14}{}{%
-\pst@coor
-/Y ED /X ED
-/d \psk@dimen .5 sub CLW mul neg def
-/r \psk@framewidth d add def
-/l r neg def
-/u \psk@frameheight d add def
-/d u neg def
-/NodePos { \tx@GetRnodePos } def}%
-\addto@pscode{%
-/x2 \psk@framewidth CLW \psk@dimen mul sub def
-/y2 \psk@frameheight CLW \psk@dimen mul sub def
-\pst@coor 2 copy
-y2 sub /y1 ED
-x2 sub /x1 ED
-y2 add /y2 ED
-x2 add /x2 ED
-\psk@cornersize
-1 index 0 eq { pop pop \tx@Rect } { \tx@OvalFrame } ifelse}%
-\def\pst@linetype{2}%
-\showpointsfalse
-\end@ClosedObj
-\ifnodealign\kern\psk@framewidth\p@\fi}%
-\ignorespaces}
+ \leavevmode
+ \pst@killglue
+ \hbox{%
+ \use@par%
+ \begin@ClosedObj%
+ \ifnodealign
+ \kern\psk@framewidth\p@
+ \vrule width\z@ height \psk@frameheight\p@ depth \psk@frameheight\p@
+ \edef\pst@coor{0 0 }%
+ \else\pst@@getcoor{#1}\fi
+ \pst@newnode{#2}{14}{}{
+ \pst@coor
+ /Y ED /X ED
+ /d \psk@dimen .5 sub CLW mul neg def
+ /r \psk@framewidth d add def
+ /l r neg def
+ /u \psk@frameheight d add def
+ /d u neg def
+ /NodePos { \tx@GetRnodePos } def}%
+ \addto@pscode{
+ /x2 \psk@framewidth CLW \psk@dimen mul sub def
+ /y2 \psk@frameheight CLW \psk@dimen mul sub def
+ \pst@coor 2 copy
+ y2 sub /y1 ED
+ x2 sub /x1 ED
+ y2 add /y2 ED
+ x2 add /x2 ED
+ \psk@cornersize
+ 1 index 0 eq { pop pop \tx@Rect } { \tx@OvalFrame } ifelse}%
+ \def\pst@linetype{2}%
+ \showpointsfalse%
+ \end@ClosedObj%
+ \ifnodealign\kern\psk@framewidth\p@\fi}% end of \hbox
+ \ignorespaces}
+%
\def\psset@nodesepA#1{%
\pst@getlength{#1}\psk@nodesepA
\def\psk@nodeseptypeA{0 }}
@@ -704,24 +707,24 @@ tx@Dict begin \psline@iii pop end
\def\ncput{\pst@object{ncput}}
\def\ncput@i{\pst@killglue\pst@makebox{\ncput@ii}}
\def\ncput@ii{%
- \begingroup
- \use@par
- \if@star\pst@starbox\fi
- \pst@makesmall\pst@hbox
- \pst@rotate\psk@nrot\pst@hbox
- \ncput@iii
- \endgroup
+ \begingroup%
+ \use@par%
+ \if@star\pst@starbox\fi%
+ \pst@makesmall\pst@hbox%
+ \pst@rotate\psk@nrot\pst@hbox%
+ \ncput@iii%
+ \endgroup%
\pst@shortput}
\def\ncput@iii{%
- \leavevmode
+ \leavevmode%
\hbox{%
- \pst@Verb{%
+ \pst@Verb{
\pst@nodedict
/t \psk@npos def
\tx@LPut
end
\tx@PutBegin}%
- \box\pst@hbox
+ \box\pst@hbox%
\pst@Verb{\tx@PutEnd}}}
\def\naput{\pst@object{naput}}
\def\naput@i{\pst@killglue\pst@makebox{\naput@ii{NAngle 90 add}}}
diff --git a/Master/texmf-dist/tex/generic/pstricks/pst-plot.tex b/Master/texmf-dist/tex/generic/pstricks/pst-plot.tex
index d2fff22ed98..0c0bd221216 100644
--- a/Master/texmf-dist/tex/generic/pstricks/pst-plot.tex
+++ b/Master/texmf-dist/tex/generic/pstricks/pst-plot.tex
@@ -4,8 +4,8 @@
%% See the PSTricks User's Guide for documentation.
%%
%%
-%% COPYRIGHT 1993, 1994, 1999 by Timothy Van Zandt, tvz@nwu.edu.
-%% COPYRIGHT 2007-2008 by Herbert Voss, hvoss@tug.org
+%% COPYRIGHT 1993-2006 by Timothy Van Zandt, tvz@nwu.edu.
+%% COPYRIGHT 2007-2009 by Herbert Voss, hvoss@tug.org
%%
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN
@@ -24,8 +24,8 @@
\expandafter\next
\fi
-\def\fileversion{1.01}
-\def\filedate{2008/01/26}
+\def\fileversion{1.03}
+\def\filedate{2008/11/24}
\message{ v\fileversion, \filedate}
@@ -172,7 +172,7 @@ D\space##1%
\edef\psk@plotpoints{\the\pst@cntg\space}%
\fi}
\psset@plotpoints{50}
-
+%
% For quick plots, define:
% \beginqp@<foo> : What to do to first point (PS code only).
% \doqp@<foo> : What to do to subsequent points (PS code only).
@@ -275,7 +275,9 @@ n 0 eq not
L
pop pop } if}>
% end (hv) --------------------------------------------------------------
+
%
+\def\psdataplot{\def\pst@par{}\pst@object{dataplot}}
\def\dataplot{\def\pst@par{}\pst@object{dataplot}}
\def\dataplot@i#1{%
\pst@killglue
@@ -305,6 +307,7 @@ n 0 eq not
\addto@pscode{ D }%
\@nameuse{endqp@\psplotstyle}}
+\def\psfileplot{\def\pst@par{}\pst@object{fileplot}}
\def\fileplot{\def\pst@par{}\pst@object{fileplot}}
\def\fileplot@i#1{%
\pst@killglue%
@@ -322,6 +325,7 @@ n 0 eq not
/m exch def /n m 2 div cvi def
n { y mul m 1 roll x mul m 1 roll /m m 2 sub def } repeat>
+\def\pslistplot{\def\pst@par{}\pst@object{listplot}}
\def\listplot{\def\pst@par{}\pst@object{listplot}}
\def\listplot@i#1{\listplot@ii{\addto@pscode{#1}}}
\def\listplot@ii#1{%
@@ -363,13 +367,17 @@ n 0 eq not
\ignorespaces}
\def\psplot@ii{%
\addto@pscode{%
+ /ps@Exit false def % hv 2008-11-22
xy \@nameuse{beginqp@\psplotstyle}
\psk@plotpoints 1 sub {
/x x dx add def
xy \@nameuse{doqp@\psplotstyle}
+ ps@Exit { exit } if % hv 2008-11-22
} repeat
- /x x1 def
- xy \@nameuse{doqp@\psplotstyle}}%
+ ps@Exit not { % hv 2008-11-22
+ /x x1 def
+ xy \@nameuse{doqp@\psplotstyle}
+ } if }%
\@nameuse{endqp@\psplotstyle}}
\def\psplot@iii{%
\addto@pscode{%
@@ -386,6 +394,7 @@ n 0 eq not
n 2 roll}%
\@nameuse{endplot@\psplotstyle}}
+\def\psparametricplot{\def\pst@par{}\pst@object{parametricplot}}% hv 2008-11-22
\def\parametricplot{\def\pst@par{}\pst@object{parametricplot}}
\def\parametricplot@i#1#2#3{%
\pst@killglue
@@ -414,13 +423,17 @@ n 0 eq not
\ignorespaces}
\def\parametricplot@ii{%
\addto@pscode{%
+ /ps@Exit false def % hv 2008-11-22
xy \@nameuse{beginqp@\psplotstyle}
\psk@plotpoints 1 sub {
/t t dt add def
xy \@nameuse{doqp@\psplotstyle}
+ ps@Exit { exit } if % hv 2008-11-22
} repeat
- /t t1 def
- xy \@nameuse{doqp@\psplotstyle}}%
+ ps@Exit not {
+ /t t1 def
+ xy \@nameuse{doqp@\psplotstyle}
+ } if }%
\@nameuse{endqp@\psplotstyle}}
\def\parametricplot@iii{%
\addto@pscode{%
@@ -541,12 +554,13 @@ n 0 eq not
\ifdim\pst@dimb=\z@\else\showoriginfalse\fi
\ifnum\psk@dx=\z@
\pst@dimg=\psk@Dx\psxunit
- \psDEBUG[psaxes@iv]{\textbackslash pst@dimg=\the\pst@dimg}% v.1.01
+ \psDEBUG[psaxes@iv]{local:\textbackslash pst@dimg=\the\pst@dimg}% v.1.01
\ifdim\pst@dimg<\p@ \pst@cnta=\psk@Dx \edef\psk@Dx{-\the\pst@cnta} % v.1.01
- \ifnum\Pst@Debug>0 \typeout{==DEBUG== pst-plot(psaxes@iv): Dx -> -Dx (was negative)}\fi % v.1.01
+ \psDEBUG[psaxes@iv]{Dx -> -Dx (was negative)}% v.1.01
\fi % v.1.01
\edef\psk@dx{\number\pst@dimg}%
- \psDEBUG[psaxes@iv]{\textbackslash psk@dx=\psk@dx}% v.1.01
+ \psDEBUG[psaxes@iv]{local: \textbackslash psk@dx=\psk@dx}% v.1.01
+ \else\psDEBUG[psaxes@iv]{global: \textbackslash psk@dx=\psk@dx}%
\fi
\ifnum\psk@ticks<\tw@
\ifnum\psk@tickstyle>\z@ \else\advance\pslabelsep\psk@ticksize\p@\fi
diff --git a/Master/texmf-dist/tex/generic/pstricks/pstricks.tex b/Master/texmf-dist/tex/generic/pstricks/pstricks.tex
index d1faa16d836..5b28c6a631b 100644
--- a/Master/texmf-dist/tex/generic/pstricks/pstricks.tex
+++ b/Master/texmf-dist/tex/generic/pstricks/pstricks.tex
@@ -1,7 +1,7 @@
%% pstricks.tex
%% COPYRIGHT 1993, 1994, 1999 by Timothy Van Zandt, tvz@nwu.edu.
%% COPYRIGHT 2000-2003 by Denis Girou.
-%% Copyright 2004-2008 Herbert Voss
+%% Copyright 2004-2009 Herbert Voss
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -20,8 +20,8 @@
% See the PSTricks User's Guide for description.
% This uses the header file `pstricks.pro'.
%
-\def\fileversion{1.26}
-\def\filedate{2008/07/31}
+\def\fileversion{1.27}
+\def\filedate{2009/01/25}
%
\csname PSTricksLoaded\endcsname
\let\PSTricksLoaded\endinput
@@ -107,19 +107,23 @@
\newcount\pst@cntd
\newcount\pst@cntg
\newcount\pst@cnth
+%
+\newif\ifPst@SpecialLength
+\Pst@SpecialLengthfalse
+%
\newif\if@pst
\newtoks\pst@toks
\newif\if@star
\def\pst@ifstar#1{%
- \@ifnextchar*{\@startrue\def\next*{#1}\next}{\@starfalse#1}}
+ \@ifnextchar*{\@startrue\def\ps@next*{#1}\ps@next}{\@starfalse#1}}
\def\pst@expandafter#1#2{%
- \def\next{#1}%
+ \def\ps@next{#1}%
\edef\@tempa{#2}%
\ifx\@tempa\@empty
\@pstrickserr{Unexpected empty argument!}\@ehpb
\def\@tempa{\@empty}%
\fi
- \expandafter\next\@tempa}
+ \expandafter\ps@next\@tempa}
\def\pst@dimtonum#1#2{\edef#2{\pst@@dimtonum#1}}
\def\pst@@dimtonum#1{\expandafter\pst@@@dimtonum\the#1}
{\catcode`\p=12 \catcode`\t=12 \global\@namedef{pst@@@dimtonum}#1pt{#1}}
@@ -150,6 +154,7 @@
\fi
\endgroup
#3=\pst@dimg}
+%
\def\pst@@pyth{% dimd = g <-- (g + u/g)/2
\pst@@divide\pst@dima\pst@dimd
\advance\pst@dimd\pst@dimg
@@ -243,11 +248,11 @@
%
\def\pst@number#1{\pst@@dimtonum#1\space}
\def\pst@checknum#1#2{%
- \edef\next{#1}%
- \ifx\next\@empty
+ \edef\ps@next{#1}%
+ \ifx\ps@next\@empty
\let\pst@num\z@
\else
- \expandafter\pst@@checknum\next..\@nil
+ \expandafter\pst@@checknum\ps@next..\@nil
\fi
\ifnum\pst@num=\z@
\@pstrickserr{Bad number: `#1'. 0 substituted.}\@ehpa
@@ -485,6 +490,7 @@
}
\def\pst@getangle#1#2{\pst@@getangle{#1}\let#2\pst@angle}
\def\pst@angle{0 }
+%
\def\cartesian@coor#1,#2,#3\@nil{%
\pssetxlength\pst@dimg{#1}%
\pssetylength\pst@dimh{#2}%
@@ -492,13 +498,20 @@
}
\def\NormalCoor{%
\def\pst@@getcoor##1{\pst@expandafter\cartesian@coor{##1},\relax,\@nil}%
+ \Pst@SpecialLengthfalse
+ \def\pssetlength##1##2{%
+ \let\@psunit\psunit
+ \afterassignment\pstunit@off
+ ##1 ##2\@psunit%
+ }
\def\pst@@getangle##1{%
\pst@checknum{##1}\pst@angle%
\edef\pst@angle{\pst@angle \pst@angleunit}%
}%
\def\psput@##1{\pst@@getcoor{##1}\leavevmode\psput@cartesian}%
}
-\NormalCoor
+\NormalCoor% set to normal read of coors, angles and lengths
+%
\def\degrees{\@ifnextchar[{\@degrees}{\def\pst@angleunit{}}}
\def\@degrees[#1]{%
\pst@checknum{#1}\pst@tempg
@@ -506,6 +519,7 @@
\ignorespaces}
\def\radians{\def\pst@angleunit{57.2956 mul }}
\def\pst@angleunit{}
+%
\def\SpecialCoor{%
\def\pst@@getcoor##1{%
\begingroup%
@@ -514,7 +528,14 @@
\endgroup%
\expandafter\special@coor\pst@tempg||\@nil%
}%
-\def\pst@@getangle##1{%
+ \def\pssetlength##1##2{%
+ \begingroup
+ \pst@activecoor%
+ \xdef\pst@tempg{##2}%
+ \endgroup%
+ \expandafter\special@length\pst@tempg\@nil{##1}%
+ }
+ \def\pst@@getangle##1{%
\begingroup%
\pst@activecoor%
\xdef\pst@tempg{##1}%
@@ -542,25 +563,26 @@
\special@@coor#1;;\@nil
\fi%
}
+%
\def\special@@coor#1{%
\ifcat#1a\relax% node names should start with a letter
- \def\next{\node@coor#1}%
+ \def\ps@next{\node@coor#1}%
\else
\ifx#1[\relax% special node coor: [..]A
- \def\next{\Node@coor[}%
+ \def\ps@next{\Node@coor[}%
\else
\ifx#1!\relax% PostScript code: x y
- \def\next{\raw@coor}%
+ \def\ps@next{\raw@coor}%
\else
\ifx#1*\relax% algebraic PostScript code: x f(x)
- \def\next{\alg@coor}%
+ \def\ps@next{\alg@coor}%
\else
- \def\next{\special@@@coor#1}%
+ \def\ps@next{\special@@@coor#1}%
\fi
\fi
\fi
\fi
- \next%
+ \ps@next%
}
\def\special@@@coor#1;#2;#3\@nil{%
\ifx#3;\relax
@@ -611,18 +633,32 @@
\def\pst@coor{0 0 }%
}
\def\Node@coor{\node@coor}
+%
\def\special@angle#1#2)#3\@nil{%
-\ifx!#1\relax
-\edef\pst@angle{#2 \pst@angleunit}%
-\else
-\ifx(#1\relax
-\pst@@getcoor{#2}%
-\edef\pst@angle{\pst@coor exch \tx@Atan}%
-\else
-\pst@checknum{#1#2}\pst@angle
-\edef\pst@angle{\pst@angle \pst@angleunit}%
-\fi
-\fi}
+ \ifx!#1\relax
+ \edef\pst@angle{#2 \pst@angleunit}%
+ \else\ifx(#1\relax
+ \pst@@getcoor{#2}%
+ \edef\pst@angle{\pst@coor exch \tx@Atan}%
+ \else
+ \pst@checknum{#1#2}\pst@angle
+ \edef\pst@angle{\pst@angle \pst@angleunit}%
+ \fi\fi}
+%
+\def\special@length#1#2\@nil#3{%
+ \psDEBUG[special@length]{ #1|#2|#3 }%
+ \ifx!#1\relax
+ \edef\pst@SpecialLength{ #2 \pst@number\psunit mul }%
+ \Pst@SpecialLengthtrue%
+ \psDEBUG[special@length]{ Special length: \pst@SpecialLength}%
+ \else
+ \let\@psunit\psunit
+ \afterassignment\pstunit@off
+ #3 #1#2\@psunit%
+ \Pst@SpecialLengthfalse%
+ \psDEBUG[special@length]{ Normal length: \the#3 }%
+ \fi}
+%
\def\Cartesian{%
\def\cartesian@coor##1,##2,##3\@nil{%
\pssetxlength\pst@dimg{##1}%
@@ -898,8 +934,8 @@
}
\def\psset@@arrows#1-#2\@empty#3\@nil{%
\@psttrue
- \def\next##1,#1-##2,##3\@nil{\def\pst@tempg{##2}}%
- \expandafter\next\pst@arrowtable,#1-#1,\@nil
+ \def\ps@next##1,#1-##2,##3\@nil{\def\pst@tempg{##2}}%
+ \expandafter\ps@next\pst@arrowtable,#1-#1,\@nil
\@ifundefined{psas@\pst@tempg}%
{\@pstfalse\def\psk@arrowA{}}%
{\let\psk@arrowA\pst@tempg}%
@@ -1884,6 +1920,30 @@
\ifshowpoints true \else false \fi
\tx@setlinejoin % hv 2007-10-13
}
+%
+\def\psPline{\pst@object{psPline}}% perpendicular to another line B-C
+\def\psPline@i{%
+ \pst@getarrows{%
+ \begin@OpenObj
+ \pst@getcoors[\psPline@ii}% \pst@coors on stack
+}
+\def\psPline@ii{%
+ \addto@pscode{ % [ pC pB pA is on stack
+ /yA ED /xA ED
+ /yB ED /xB ED
+ yB sub exch xB sub div /mBC ED % the slope
+ /mA 1 mBC neg div def % orthogonal
+ /xS yA yB sub mBC xB mul add mA xA mul sub mBC mA sub div def
+ /yS mBC xS xB sub mul yB add def
+ xS yS xA yA
+ \pst@cp % current point
+ \psline@iii % arc and lineto type
+ \tx@Line % .pro function
+ }%
+ \end@OpenObj%
+ \ignorespaces%
+}
+%
\def\qline(#1)(#2){%
\def\pst@par{}%
\begin@SpecialObj
@@ -2611,7 +2671,7 @@ pop
}
\def\psarc@iv{%
\pst@coor /y ED /x ED
- /r \pst@number\pst@dima def
+ /r \ifPst@SpecialLength \pst@SpecialLength \else \pst@number\pst@dima \fi def
/c 57.2957 r \tx@Div def
/angleA
\pst@tempa
@@ -2671,6 +2731,44 @@ pop
\def\psarcn{\pst@object{psarcn}}
\def\psarcn@i{\def\psarc@type{1}\psarc@i}
%
+\def\psarcAB{\pst@object{psarcAB}}% hv 2008-11-26
+\def\psarcAB@i{%
+ \addbefore@par{psscale=1}% be sure, that it is defined
+ \pst@getarrows{%
+ \begin@OpenObj
+ \pst@getcoors{}\psarcAB@ii%
+ }%
+}
+\def\psarcAB@ii{%
+ \addto@pscode{%
+ /y ED /x ED /yA ED /xA ED /yB ED /xB ED
+ /r xB yB x y Pyth2 \psk@psscale\space mul def
+ /c 57.2957 r \tx@Div def
+ /angleA
+ yA y sub xA x sub atan
+ \psk@arcsepA c mul 2 div
+ \ifcase\psarc@type add \else sub \fi
+ def
+ /angleB
+ yB y sub xB x sub atan
+ \psk@arcsepB c mul 2 div
+ \ifcase\psarc@type sub \else add \fi
+ def
+ \ifx\psk@arrowA\@empty
+ \ifnum\psk@liftpen=2
+ r angleA \tx@PtoC
+ y add exch x add exch moveto
+ \fi
+ \fi
+ \psarc@v
+ }
+ \gdef\psarc@type{0}%
+ \showpointsfalse
+ \end@OpenObj%
+}
+\def\psarcnAB{\pst@object{psarcnAB}}
+\def\psarcnAB@i{\def\psarc@type{1}\psarcAB@i}
+%
%------------------ tvz/DG/hv (2004-05-10) begin -------------------%%
% from Denis Giroux: http://www.tug.org/pipermail/pstricks/2001/000507.html
%
@@ -2796,7 +2894,8 @@ pop
\def\pst@linetype{4}%
\addto@pscode{
\pst@coor
- \pst@number\pst@dimc
+ \ifPst@SpecialLength \pst@SpecialLength \else \pst@number\pst@dimc \fi
+% \pst@number\pst@dimc
\psk@dimen CLW mul sub
0 360 arc
closepath }%
@@ -2830,7 +2929,11 @@ pop
\begin@SpecialObj
\pst@@getcoor{#1}%
\pssetlength\pst@dimg{#2}%
- \addto@pscode{ \pst@coor \pst@number\pst@dimg \tx@SD }%
+ \addto@pscode{
+ \pst@coor
+ \ifPst@SpecialLength \pst@SpecialLength \else \pst@number\pst@dimg \fi
+% \pst@number\pst@dimg
+ \tx@SD }%
\end@SpecialObj}
%
\def\psset@radius#1{\pst@@getlength{#1}\psk@radius}
@@ -2843,21 +2946,23 @@ pop
\def\pswedge{\pst@object{pswedge}}
\def\pswedge@i{\@ifnextchar({\pswedge@ii}{\pswedge@ii(0,0)}}
\def\pswedge@ii(#1)#2#3#4{%
- \begin@ClosedObj
- \pssetlength\pst@dimc{#2}
- \pst@getangle{#3}\pst@tempa
- \pst@getangle{#4}\pst@tempb
+ \begin@ClosedObj%
+ \pssetlength\pst@dimc{#2}%
+ \pst@getangle{#3}\pst@tempa%
+ \pst@getangle{#4}\pst@tempb%
\pst@@getcoor{#1}%
\def\pst@linetype{1}%
- \addto@pscode{%
+ \addto@pscode{
\pst@coor
2 copy
moveto
- \pst@number\pst@dimc \psk@dimen CLW mul sub % Adjusted radius
+ \ifPst@SpecialLength \pst@SpecialLength \else \pst@number\pst@dimc \fi
+% \pst@number\pst@dimc
+ \psk@dimen CLW mul sub % Adjusted radius
\pst@tempa \pst@tempb
arc
closepath}%
- \showpointsfalse
+ \showpointsfalse%
\end@ClosedObj%
}
\def\tx@Ellipse{Ellipse }
@@ -3046,13 +3151,13 @@ pop
\def\psset@rot#1{%
\pst@expandafter{\@ifnextchar*{\psset@@@rot}{\psset@@rot}}{#1}\@nil}
\def\psset@@rot#1\@nil{%
-\def\next##1@#1=##2@##3\@nil{%
+\def\ps@next##1@#1=##2@##3\@nil{%
\ifx\relax##2%
\pst@getangle{#1}\psk@rot
\else
\def\psk@rot{##2}%
\fi}%
-\expandafter\next\pst@rottable @#1=\relax @\@nil}
+\expandafter\ps@next\pst@rottable @#1=\relax @\@nil}
\def\psset@@@rot#1#2\@nil{%
\psset@@rot#2\@nil
\edef\psk@rot{\pst@rotlist \ifx\psk@rot\@empty\else\psk@rot add \fi}}
@@ -3094,13 +3199,13 @@ pop
\def\rput@iii#1{\addto@par{rot={#1}}\@ifnextchar({\rput@iv}{\rput@iv(\z@,\z@)}}
\def\rput@iv(#1){\pst@killglue\pst@makebox{\rput@v{#1}}}
\def\rput@v#1{%
- \begingroup
- \use@par
- \if@star\pst@starbox\fi
- \pst@makesmall\pst@hbox
- \pst@rotate\psk@rot\pst@hbox
- \psput@{#1}\pst@hbox
- \endgroup
+ \begingroup%
+ \use@par%
+ \if@star\pst@starbox\fi%
+ \pst@makesmall\pst@hbox%
+ \pst@rotate\psk@rot\pst@hbox%
+ \psput@{#1}\pst@hbox%
+ \endgroup%
\ignorespaces%
}
\def\multirput{%
@@ -3173,7 +3278,7 @@ pop
\psset@labelsep{5pt}
\def\psset@refangle#1{\pst@expandafter\psset@@refangle{#1}\@nil}
\def\psset@@refangle#1\@nil{%
-\def\next##1@#1=##2"##3@##4\@nil{%
+\def\ps@next##1@#1=##2"##3@##4\@nil{%
\ifx\relax##2%
\pst@getangle{#1}\psk@refangle
\def\psk@uputref{}%
@@ -3181,7 +3286,7 @@ pop
\def\psk@refangle{##2 }%
\def\psk@uputref{##3}%
\fi}%
-\expandafter\next\pst@refangletable @#1=\relax"@\@nil}
+\expandafter\ps@next\pst@refangletable @#1=\relax"@\@nil}
\def\pst@refangletable{%
@r=0"20%
@u=90"02%
@@ -3198,30 +3303,26 @@ pop
% DG/SR modification end
\def\uput@i#1{\addto@par{labelsep=#1}\uput@ii}
\def\uput@ii[#1]{%
-\addto@par{refangle={#1}}%
-\@ifnextchar({\uput@iv}{\uput@iii}}
+ \addto@par{refangle={#1}}%
+ \@ifnextchar({\uput@iv}{\uput@iii}}
\def\uput@iii#1{%
-\addto@par{rot={#1}}%
-\@ifnextchar({\uput@iv}{\uput@iv(\z@,\z@)}}
+ \addto@par{rot={#1}}%
+ \@ifnextchar({\uput@iv}{\uput@iv(\z@,\z@)}}
\def\uput@iv(#1){\pst@killglue\pst@makebox{\uput@v{#1}}}
\def\uput@v#1{%
-\begingroup
-\use@par
-\if@star\pst@starbox\fi
-\uput@vi
-\psput@{#1}\pst@hbox
-\endgroup
-\ignorespaces}
+ \begingroup
+ \use@par
+ \if@star\pst@starbox\fi
+ \uput@vi
+ \psput@{#1}\pst@hbox
+ \endgroup
+ \ignorespaces}
\def\uput@vi{%
-\ifx\psk@uputref\@empty
-\uput@vii\tx@UUput{}%
-\else
-\ifx\psk@rot\@empty
-\expandafter\uput@viii\psk@uputref
-\else
-\uput@vii\tx@UUput{}%
-\fi
-\fi}
+ \ifx\psk@uputref\@empty\uput@vii\tx@UUput{}%
+ \else
+ \ifx\psk@rot\@empty\expandafter\uput@viii\psk@uputref
+ \else\uput@vii\tx@UUput{}\fi
+ \fi}
\def\uput@vii#1#2{%
\edef\pst@coor{%
\pst@number\pslabelsep
@@ -3299,7 +3400,6 @@ pop
\psset@shift{0}
% ----------- 1.10/12 end hv -------------------
%
-%
%------------------------------- pspicture ------------------------------
%
\def\pspicture{\begingroup\pst@ifstar\pst@picture}
@@ -3333,7 +3433,7 @@ pop
\ifx\pst@tempA\@empty\else\psset{#1}\fi% sets the shift and grid option
\ifshowgrid\psgrid[style=gridstyle]\fi%
% ----------- 1.10/12 end hv -------------------
-% \ignorespaces%
+ \ignorespaces% % 2008-12-07
}
\def\pic@coor{(0,0)(0,0)(10,10)}
%\newdimen\pst@shift
diff --git a/Master/texmf-dist/tex/latex/pstricks/pst-node.sty b/Master/texmf-dist/tex/latex/pstricks/pst-node.sty
index e930966dc41..7c937c4b74b 100644
--- a/Master/texmf-dist/tex/latex/pstricks/pst-node.sty
+++ b/Master/texmf-dist/tex/latex/pstricks/pst-node.sty
@@ -5,6 +5,6 @@
[\filedate\space \fileversion\space `pst-node' (tvz)]
\IfFileExists{pst-node.pro}{%
\ProvidesFile{pst-node.pro}
- [2008/01/01 v. 1.00, PostScript prologue file (hv)]
+ [2009/01/30 v. 1.02, PostScript prologue file (hv)]
\@addtofilelist{pst-node.pro}}{}%
\endinput
diff --git a/Master/texmf-dist/tex/latex/pstricks/pstricks.sty b/Master/texmf-dist/tex/latex/pstricks/pstricks.sty
index cde96b0b08f..e58cadb4825 100644
--- a/Master/texmf-dist/tex/latex/pstricks/pstricks.sty
+++ b/Master/texmf-dist/tex/latex/pstricks/pstricks.sty
@@ -16,7 +16,7 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{pstricks}
- [2008/10/31 v0.39 LaTeX wrapper for `PSTricks' (RN,HV)]
+ [2008/11/26 v0.40 LaTeX wrapper for `PSTricks' (RN,HV)]
%
\def\documentclass{
\edef\@tempa{\jobname.tex }%
@@ -38,14 +38,17 @@
%------------------------------------ PLAIN --------------------------------
\DeclareOption{plain}{%
\ifpst@OldVersion
- \def\psDEBUG[#1]#2{}
- \input{pstricks97.tex}
- \else\input{pstricks.tex}
+ \def\psDEBUG[#1]#2{}%
+ \def\pst@tempa{pstricks97.tex}%
+ \else
+ \def\pst@tempa{pstricks.tex}%
\fi
- \ProvidesFile{pstricks.tex}
- [\filedate\space v\fileversion\space `PSTricks' (tvz)]
+ \input{\pst@tempa}%
+ \ProvidesFile{\pst@tempa}%
+ [\filedate\space v\fileversion\space `PSTricks' (tvz)]%
\endinput
}
+
\DeclareOption*{\OptionNotUsed}
\ProcessOptions\relax
@@ -55,13 +58,16 @@
\let\saved@scalebox\scalebox
\ifpst@OldVersion
\def\psDEBUG[#1]#2{}
- \input{pstricks97.tex}
- \else\input{pstricks.tex}\fi
- \ProvidesFile{pstricks.tex}
- [\filedate\space v\fileversion\space `PSTricks' (tvz)]
+ \def\pst@tempa{pstricks97.tex}%
+ \else
+ \def\pst@tempa{pstricks.tex}
+ \fi
+ \input{\pst@tempa}%
+ \ProvidesFile{\pst@tempa}
+ [\filedate\space v\fileversion\space `PSTricks' (tvz,hv)]
\IfFileExists{pstricks.pro}{%
\ProvidesFile{pstricks.pro}
- [2008/01/01 v. 1.03, PostScript prologue file (hv)]
+ [2009/01/30 v. 1.06, PostScript prologue file (hv)]
\@addtofilelist{pstricks.pro}}{}%
\IfFileExists{pst-dots.pro}{%
\ProvidesFile{pst-dots.pro}
@@ -72,25 +78,28 @@
[2008/01/01 v. 0.01, PostScript prologue file (hv)]
\@addtofilelist{pst-algparser.pro}}{}%
{%
- \let\psscalebox=\scalebox
- \let\psscaleboxto=\scaleboxto
+ \let\psscalebox\scalebox
+ \let\psscaleboxto\scaleboxto
}{}
\let\scalebox\saved@scalebox
}{}
\IfFileExists{xcolor.sty}{%
\def\pst@ColorPackage{xcolor}
- \PassOptionsToPackage{override}{xcolor}
+% \PassOptionsToPackage{override}{xcolor}
}{\def\pst@ColorPackage{color}}%
%------------------------------------ DIA --------------------------------
\newif\ifpst@DIA\pst@DIAfalse
\DeclareOption{DIA}{\pst@DIAtrue}
+%------------------------------ color or xcolor --------------------------
\DeclareOption{noxcolor}{\def\pst@ColorPackage{color}}
+%------------------------------------ VTeX --------------------------------
\DeclareOption{vtex}{%
\pst@def{setTransparency}< >
\pst@def{setStrokeTransparency}< >
\pst@def{setBlendmode}< >%
+ \PassOptionsToPackage{vtex}{\pst@ColorPackage}%
}
%---------------------------------DISTILLER --------------------------------
\DeclareOption{distiller}{%