diff options
author | Karl Berry <karl@freefriends.org> | 2009-01-31 00:45:47 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-01-31 00:45:47 +0000 |
commit | afa0ddded45d19c7c2c4883359e3a26e59ce7a8c (patch) | |
tree | d0b0a712067e8d3ab5b8e79a6f72bef247c1ba02 | |
parent | 9ed0613d8c7efda754589bc5eac54d7193651494 (diff) |
pstricks 1.27 (30jan09)
git-svn-id: svn://tug.org/texlive/trunk@12021 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r-- | Master/texmf-dist/doc/generic/pstricks/Changes | 6 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pstricks/Changes.dvips | 18 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pstricks/Changes.generic | 24 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pstricks/Changes.latex | 4 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pstricks/pst-doc.cls | 17 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pstricks/pst-news09.pdf | bin | 0 -> 91475 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/generic/pstricks/pst-news09.tex | 297 | ||||
-rw-r--r-- | Master/texmf-dist/dvips/pstricks/pst-node.pro | 349 | ||||
-rw-r--r-- | Master/texmf-dist/dvips/pstricks/pstricks.pro | 155 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/pstricks/pst-node.tex | 141 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/pstricks/pst-plot.tex | 38 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/pstricks/pstricks.tex | 246 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/pstricks/pst-node.sty | 2 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/pstricks/pstricks.sty | 37 |
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 Binary files differnew file mode 100644 index 00000000000..d870b01769e --- /dev/null +++ b/Master/texmf-dist/doc/generic/pstricks/pst-news09.pdf 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}{% |