summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/generic/pstricks/PSTricks.bib17
-rw-r--r--Master/texmf-dist/doc/generic/pstricks/pst-news21.pdfbin43741 -> 529359 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pstricks/pst-news21.tex134
-rw-r--r--Master/texmf-dist/dvips/pstricks/pstricks.pro12
-rw-r--r--Master/texmf-dist/tex/generic/pstricks/pstricks-arrows.tex572
-rw-r--r--Master/texmf-dist/tex/generic/pstricks/pstricks.tex258
-rw-r--r--Master/texmf-dist/tex/generic/pstricks/pstricks.tex.neu4595
-rw-r--r--Master/texmf-dist/tex/latex/pstricks/pst-doc.cls107
8 files changed, 780 insertions, 4915 deletions
diff --git a/Master/texmf-dist/doc/generic/pstricks/PSTricks.bib b/Master/texmf-dist/doc/generic/pstricks/PSTricks.bib
index daaa78d4452..d49525facf5 100644
--- a/Master/texmf-dist/doc/generic/pstricks/PSTricks.bib
+++ b/Master/texmf-dist/doc/generic/pstricks/PSTricks.bib
@@ -1,4 +1,21 @@
@STRING{dtk = {{D}ie {\TeX}nische {K}om{\"o}die} }
+@STRING{beiprogramm = {{\TeX}-Beiprogramm}}
+@STRING{bretter = {Bretter, die die Welt bedeuten}}
+@STRING{dtk = {DTK}}
+@STRING{editorial = {Editorial}}
+@STRING{fremdebuehne = {Von fremden Bühnen}}
+@STRING{fundus = {Aus dem Fundus}}
+@STRING{grusswort = {Grußwort}}
+@STRING{hinterbuehne = {Hinter der Bühne}}
+@STRING{komascript = {\KOMAScript}}
+@STRING{leserbriefe = {Leserbriefe}}
+@STRING{magazin = {Magazin}}
+@STRING{rezensionen = {Bücher und Rezensionen}}
+@STRING{schonimmer = {Was Sie schon immer über {\TeX} wissen wollten, \dots}}
+@STRING{spielplan = {Spielplan}}
+@STRING{theaterkasse = {Von der Theaterkasse}}
+@STRING{theatertage = {{\TeX}-Theatertage}}
+@STRING{tippstricks = {Tipps und Tricks}}
@Book{PostScript,
Author = {Kollock, Nikolai G.},
diff --git a/Master/texmf-dist/doc/generic/pstricks/pst-news21.pdf b/Master/texmf-dist/doc/generic/pstricks/pst-news21.pdf
index 89442fefa8f..dc4cada65bb 100644
--- a/Master/texmf-dist/doc/generic/pstricks/pst-news21.pdf
+++ b/Master/texmf-dist/doc/generic/pstricks/pst-news21.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pstricks/pst-news21.tex b/Master/texmf-dist/doc/generic/pstricks/pst-news21.tex
index 9fbe4e2f348..facad54b557 100644
--- a/Master/texmf-dist/doc/generic/pstricks/pst-news21.tex
+++ b/Master/texmf-dist/doc/generic/pstricks/pst-news21.tex
@@ -1,18 +1,13 @@
-%% $Id: pst-news21.tex 157 2021-08-23 18:21:41Z herbert $
+%% $Id: pst-news21.tex 164 2021-08-25 19:26:42Z herbert $
\documentclass[11pt,english,BCOR=10mm,DIV=12,bibliography=totoc,parskip=false,headings=small,
- headinclude=false,footinclude=false,twoside]{scrartcl}
+ headinclude=false,footinclude=false,twoside]{pst-doc}
+
+\usepackage{libertinus}
\listfiles
-\usepackage[T1]{fontenc}
-\usepackage{listings}
-\lstset{basicstyle=\ttfamily\small}
-\usepackage{libertinus}
-\usepackage[scaled=0.88]{beramono}
-\usepackage{babel}
-\usepackage[svgnames,dvipsnames,x11names,pspdf=-dALLOWPSTRANSPARENCY]{pstricks-pdf}
-\usepackage{pstricks-add}
-\usepackage{showexpl}
-\lstset{explpreset={pos=l,width=-99pt,overhang=0pt,hsep=\columnsep,vsep=\bigskipamount,rframe={}},
+%\usepackage[svgnames,dvipsnames,x11names,pspdf=-dALLOWPSTRANSPARENCY]{pstricks-pdf}
+\usepackage{showexpl,pst-arrow}
+\lstset{explpreset={pos=l,width=-99pt,overhang=0pt,hsep=\columnsep,vsep=\bigskipamount,rframe={},extendedchars},
escapechar=?}
\usepackage{biblatex}
@@ -24,7 +19,7 @@
\author{Herbert Voß}
\date{\today}
-\maketitle
+\settitle
\tableofcontents
@@ -44,7 +39,8 @@ Otherwise the one from URW or the system is used, which is the default.
\subsection{Arrows}
-There are new arrow tyoes and a new optional argument \texttt{tipcolor}:
+
+There are new arrow types and a new optional argument \texttt{tipcolor}:
\begin{LTXexample}[width=5cm]
@@ -55,12 +51,60 @@ There are new arrow tyoes and a new optional argument \texttt{tipcolor}:
\end{pspicture}
\end{LTXexample}
+
+
+\LPack{pstricks} defines the following "`arrows"':
+
+ \def\myline#1{\psline[linecolor=red,linewidth=0.5pt,arrowscale=1.5]{#1}(0,1ex)(1.3,1ex)}%
+ \def\mylineA#1{\psline[linecolor=red,linewidth=0.5pt,arrowscale=4.5]{#1}(0,1ex)(2,1ex)}%
+ \psset{arrowscale=1.5}
+ \begin{longtable}{@{} c @{\qquad} p{3cm} l @{}}%
+ Value & Example & Name \\[2pt]\hline
+ \Lnotation{-} & \myline{-} & None\\
+ \Lnotation{<->} & \myline{<->} & Arrowheads.\\
+ \Lnotation{>-<} & \myline{>-<} & Reverse arrowheads.\\
+ \Lnotation{<{<}-{>}>} & \myline{<<->>} & Double arrowheads.\\
+ \Lnotation{{>}>-{<}<} & \myline{>>-<<} & Double reverse arrowheads.\\
+ \Lnotation{{|}-{|}} & \myline{|-|} & T-bars, flush to endpoints.\\
+ \Lnotation{{|}*-{|}*} & \myline{|*-|*} & T-bars, centered on endpoints.\\
+ \Lnotation{[-]} & \myline{[-]} & Square brackets.\\
+ \Lnotation{]-[} & \myline{]-[} & Reversed square brackets.\\
+ \Lnotation{(-)} & \myline{(-)} & Rounded brackets.\\
+ \Lnotation{)-(} & \myline{)-(} & Reversed rounded brackets.\\
+ \Lnotation{o-o} & \myline{o-o} & Circles, centered on endpoints.\\
+ \Lnotation{*-*} & \myline{*-*} & Disks, centered on endpoints.\\
+ \Lnotation{oo-oo} & \myline{oo-oo} & Circles, flush to endpoints.\\
+ \Lnotation{**-**} & \myline{**-**} & Disks, flush to endpoints.\\
+ \Lnotation{{|}<->{|}} & \myline{|<->|} & T-bars and arrows.\\
+ \Lnotation{{|}>-<{|}} & \myline{|>-<|} & T-bars and reverse arrows.\\
+ \Lnotation{h-h{}} & \myline{h-h} & left/right hook arrows.\\
+ \Lnotation{H-H{}} & \myline{H-H} & left/right hook arrows.\\
+ \Lnotation{v-v} & \myline{v-v} & left/right inside vee arrows.\\
+ \Lnotation{V-V} & \myline{V-V} & left/right outside vee arrows.\\
+ \Lnotation{f-f} & \myline{f-f} & left/right inside filled arrows.\\
+ \Lnotation{F-F} & \myline{F-F} & left/right outside filled arrows.\\
+ \Lnotation{t-t} & \myline{t-t} & left/right inside slash arrows.\\[5pt]
+ \Lnotation{T-T} & \myline{T-T} & left/right outside slash arrows.\\
+%
+ \Lnotation{<D-D>} & \mylineA{<D-D>} & curved arrows.\\
+ \Lnotation{<D<D-D>D>} & \mylineA{<D<D-D>D>} & curved doubled arrows.\\
+ \Lnotation{D>-<D} & \mylineA{D>-<D} & curved arrows, tip inside.\\
+ \Lnotation{<T-T>} & \myline{<T-T>} & curved lines.\\
+% \Lnotation{>T-T<} & \mylineA{>T-T<} & \TikZ\ like arrows.\\
+ \hline
+ \end{longtable}
+
+
+
+
%\@namedef{psas@T>}{ false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowT }% hv 20210531
%\@namedef{psas@<T}{ % hv 20071211
% true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowT
%}
+With version 3.04 all arrow specific base code is moved to the file \LPack{pstricks-arrows}, which
+is not of interest for the default user..
\subsection{Symbolfont}
@@ -83,6 +127,68 @@ the optional argument \texttt{gsfonts}:
\end{verbatim}
+\subsection{Fillstyle \texttt{penrose}}
+
+There was a bug if this fillstyle was used together with a line sequence.
+
+
+\psset{unit=1cm}
+\centering\vspace{5cm}
+\pspicture[showgrid=false](-0.5\linewidth,-4.5)(0.5\linewidth,5)
+\rput(0,0){\parbox{4.5cm}{%
+ \psclip{\psccurve[linestyle=none,fillstyle=penrose,psscale=.2](-3,-2)
+ (0.3,-1.5)(2.3,-2)(4.3,-1.5)(6.3,-2)(8,-1.5)(8,2)(-3,2)}
+ ``One of the best new plays I have seen all year: cool, poetic,
+ ironic \ldots'' proclaimed \emph{The Guardian} upon the London
+ premiere of this extraordinary play about a Czech director and
+ his actress wife, confronting exile in America.
+ \endpsclip}}%
+ \psline[linearc=0.5cm,showpoints=true,dotstyle=|]{<<->>}(-1,-2)(0,-4)(1,-2)
+\endpspicture
+
+
+\begin{lstlisting}
+\pspicture[showgrid=false](-0.5\linewidth,-4.5)(0.5\linewidth,5)
+\rput(0,0){\parbox{4.5cm}{%
+ \psclip{\psccurve[linestyle=none,fillstyle=penrose,psscale=.2](-3,-2)
+ (0.3,-1.5)(2.3,-2)(4.3,-1.5)(6.3,-2)(8,-1.5)(8,2)(-3,2)}
+ ``One of the best new plays I have seen all year: cool, poetic,
+ ironic \ldots'' proclaimed \emph{The Guardian} upon the London
+ premiere of this extraordinary play about a Czech director and
+ his actress wife, confronting exile in America.
+ \endpsclip}}%
+ \psline[linearc=0.5cm,showpoints=true,dotstyle=|]{<<->>}(-1,-2)(0,-4)(1,-2)
+\endpspicture
+\end{lstlisting}
+
+
+\pspicture[showgrid=false](-0.5\linewidth,-4.5)(0.5\linewidth,5)
+\rput(0,0){\parbox{4.5cm}{%
+ \psclip{\psccurve[linestyle=none,fillstyle=penroseA,psscale=.2](-3,-2)
+ (0.3,-1.5)(2.3,-2)(4.3,-1.5)(6.3,-2)(8,-1.5)(8,2)(-3,2)}\color{white}
+ ``One of the best new plays I have seen all year: cool, poetic,
+ ironic \ldots'' proclaimed \emph{The Guardian} upon the London
+ premiere of this extraordinary play about a Czech director and
+ his actress wife, confronting exile in America.
+ \endpsclip}}%
+ \psline[linearc=0.5cm,showpoints=true,dotstyle=|]{<<->>}(-1,-2)(0,-4)(1,-2)
+\endpspicture
+
+\begin{lstlisting}
+\pspicture[showgrid=false](-0.5\linewidth,-4.5)(0.5\linewidth,5)
+\rput(0,0){\parbox{4.5cm}{%
+ \psclip{\psccurve[linestyle=none,fillstyle=penrose,psscale=.2](-3,-2)
+ (0.3,-1.5)(2.3,-2)(4.3,-1.5)(6.3,-2)(8,-1.5)(8,2)(-3,2)}\color{white}
+ ``One of the best new plays I have seen all year: cool, poetic,
+ ironic \ldots'' proclaimed \emph{The Guardian} upon the London
+ premiere of this extraordinary play about a Czech director and
+ his actress wife, confronting exile in America.
+ \endpsclip}}%
+ \psline[linearc=0.5cm,showpoints=true,dotstyle=|]{<<->>}(-1,-2)(0,-4)(1,-2)
+\endpspicture\end{lstlisting}
+
+
+
\nocite{*}
\printbibliography
diff --git a/Master/texmf-dist/dvips/pstricks/pstricks.pro b/Master/texmf-dist/dvips/pstricks/pstricks.pro
index c351841e8cd..26e64b4e333 100644
--- a/Master/texmf-dist/dvips/pstricks/pstricks.pro
+++ b/Master/texmf-dist/dvips/pstricks/pstricks.pro
@@ -1,7 +1,7 @@
-% $Id: pstricks.pro 152 2021-08-19 11:24:26Z herbert $
+% $Id: pstricks.pro 164 2021-08-25 19:26:42Z herbert $
%
%% PostScript prologue for pstricks.tex.
-%% Version 1.35, 2021/05/21
+%% Version 1.36, 2021/08/25
%%
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN archives
@@ -306,6 +306,7 @@ tx@Dict begin
} def
%
/PenroseFill {% on stack: scaling factor
+ 20 dict begin
/Scale ED
% 1 exch div round /penroseFactor ED
% a 0 dtransform round exch round exch
@@ -318,20 +319,22 @@ tx@Dict begin
% a Div cvi /x1 ED /y2 y2 y1 sub def
clip
newpath
-gsave
+ gsave
220 150 translate
Scale dup scale
systemdict /setstrokeadjust known { true setstrokeadjust } if
/I/S/L/W/G/+/Z/F/E/D[/def/exch/for{E D}/add{s E get mul}
- { Z -36.2001 1 33 }{25 E S rlineto}{/q Z dup q G E q 1 + G}{Z 2 2}]{cvx def}forall
+ { Z -36.2001 1 33 }{25 E S rlineto}{/q Z dup q G E q 1 + G}{Z 2 2}]{cvx def}forall
[0 72 1008 {dup sin E cos }F ]1 setlinejoin/s W{/a W{/b I 10{/i I 4{/m I moveto
i m +/j I 10{/l Z b m l + G a l G sub s m get div .2 + floor .3 + 25
mul j l + S rmoveto}F i L j L stroke }F}F}F}F
grestore
% pop pop
+ end % userdict
} def
%
/PenroseFillA {% on stack: scaling factor, border color, kite color, dart color
+ 30 dict begin
/Scale ED
Scale dup scale
/border_colour ED
@@ -367,6 +370,7 @@ gsave
dup f exch neg exp dup scale
5 {kite 72 rotate } repeat stroke
grestore
+ end % userdict
} def
%
%
diff --git a/Master/texmf-dist/tex/generic/pstricks/pstricks-arrows.tex b/Master/texmf-dist/tex/generic/pstricks/pstricks-arrows.tex
new file mode 100644
index 00000000000..5684f3d7921
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/pstricks/pstricks-arrows.tex
@@ -0,0 +1,572 @@
+%% $Id: pstricks-arrows.tex 164 2021-08-25 19:26:42Z herbert $
+%%
+%% This is file `pstricks-arrows.tex',
+%%
+%% IMPORTANT NOTICE:
+%%
+%% 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 archives
+%% in directory macros/latex/base/lppl.txt.
+%%
+%% DESCRIPTION:
+%% `pstricks-arrows' base code for arrows
+%%
+%% fileversion and filedate see main file pstricks.tex
+%%
+\def\pst@getarrows#1{\@ifnextchar({#1}{\pst@@getarrows{#1}}}
+% ------------------------- hv 1.10 beg ------------------------
+%\def\pst@@getarrows#1#2{\addto@par{arrows=#2}#1}
+\def\pst@@getarrows#1#2{%
+ \def\pst@tempa{#2}% prevent empty arrow arguments, to allow \psline{}(...)(...)
+ \ifx\pst@tempa\@empty
+ \addto@par{arrows=-}%
+ \else
+ \addto@par{arrows=#2}%
+ \fi
+ #1%
+}
+% ------------------------- hv 1.10 end ------------------------
+\def\pst@arrowtype{%
+ \ifx\psk@arrowB\@empty 0 \else -2 \fi
+ \ifx\psk@arrowA\@empty 0 \else -1 \fi
+ add }
+%
+\def\pst@addarrowdef{%
+ \addto@pscode{%
+ /ArrowA {
+ \ifx\psk@arrowA\@empty
+ \pst@oplineto
+ \else
+ \pst@arrowdef{A}
+ moveto
+ \fi
+ } def
+ /ArrowB { \ifx\psk@arrowB\@empty \else \pst@arrowdef{B} \fi } def
+}}
+%
+\def\pst@arrowdef#1{%
+ \ifnum\pst@repeatarrowsflag>\z@
+ /Arrow#1c [ 6 2 roll ] cvx def Arrow#1c
+ \fi
+ \tx@BeginArrow
+ \psk@arrowscale
+ \@nameuse{psas@\@nameuse{psk@arrow#1}}
+ \tx@EndArrow
+}
+%
+\def\pst@repeatarrows{%
+ \addto@pscode{%
+ gsave
+ \ifx\psk@arrowA\@empty\else ArrowAc ArrowA pop pop \fi
+ \ifx\psk@arrowB\@empty\else ArrowBc ArrowB pop pop pop pop \fi
+ grestore
+}}
+
+\define@key[psset]{pstricks}{tipcolor}[black]{\def\pst@tipcolor{#1}}
+\psset[pstricks]{tipcolor=}
+
+\def\ps@check@tipcolor{%
+ \expandafter\if\expandafter$\pst@tipcolor$
+ \pst@usecolor\pslinecolor
+ \else
+ \pst@usecolor\pst@tipcolor
+ \fi
+}
+%
+\def\tx@EndDot{ \ps@check@tipcolor\space EndDot }
+%
+% v : Vee arrow (inside) v,V,f and F by Christophe FOUREY
+% V : Vee arrow (outside)
+% f : Filled vee arrow (inside)
+% F : Filled vee arrow (outside)
+
+\def\psk@arrowA{}
+\def\psk@arrowB{}
+\def\pst@arrowtable{,-,<->,<<->>,>-<,>>-<<,(-),[-],)-(,]-[,|>-<|,%
+ <D-D>,D>-<D,<D<D-D>D>,<T-T>,|<*->|*,|<->|,v-v,V-V,f-f,F-F,t-t,T-T}
+\begingroup
+ \catcode`\<=13
+ \catcode`\>=13
+ \catcode`\|=13
+ \gdef\pst@activearrows{\def<{\string<}\def>{\string>}\def|{\string|}}
+\endgroup
+\def\tx@BeginArrow{BeginArrow }
+\def\tx@EndArrow{EndArrow }
+%
+\def\tx@Arrow{ \tx@setStrokeTransparency Arrow }% hv 2008-01-13
+\def\tx@ArrowD{ \tx@setStrokeTransparency ArrowD }% hv 2008-01-13
+\def\tx@ArrowT{ \tx@setStrokeTransparency ArrowT }% hv 2021-05-31
+%
+\@namedef{psas@<|}{
+ \psk@tbarsize\space \tx@Tbar
+ 0 CLW 2 div T
+ newpath
+ true
+ \psk@arrowinset
+ \psk@arrowlength
+ \psk@arrowsize
+ \tx@Arrow
+}
+% ]-[ arrow
+\def\tx@BracketOut{BracketOut }
+\@namedef{psas@[}{%
+ /BracketOut {%
+ CLW mul add dup CLW sub 2 div
+%/x ED mul CLW add
+ /x ED mul neg
+ /y ED
+ /z CLW 2 div def
+ x neg y moveto
+ x neg CLW 2 div L x CLW 2 div L x y L stroke 0 CLW moveto } def
+ \psk@bracketlength\space \psk@tbarsize\space \tx@BracketOut
+}
+% )-( arrow
+\def\tx@RoundBracketOut{ \tx@setStrokeTransparency RoundBracketOut }% hv 2008-01-13
+\@namedef{psas@(}{%
+ /RoundBracketOut {%
+ CLW mul add dup 2 div
+%/x ED mul
+ /x ED mul neg
+ /y ED
+ /mtrx CM def
+ 0 CLW
+ 2 div T x y mul 0 ne { x y scale } if
+ 1 1 moveto
+ .85 .5 .35 0 0 0 curveto
+ -.35 0 -.85 .5 -1 1 curveto
+ mtrx setmatrix stroke 0 CLW moveto } def
+ \psk@rbracketlength\space \psk@tbarsize\space \tx@RoundBracketOut
+}
+% end of new definitions of the missing arrows ---- hv 1.12
+\@namedef{psas@>}{ false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow }
+\@namedef{psas@>>}{%
+ false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
+ 0 h T gsave newpath
+ false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
+ CP grestore CP newpath moveto 2 copy
+ CLW \pst@arrowscale\space div SLW % set the original line width
+ L stroke moveto
+}
+\@namedef{psas@<}{true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow}
+\@namedef{psas@<<}{
+ true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
+ CP newpath moveto 0 a neg
+ gsave
+ CLW \pst@arrowscale\space div SLW % set the original line width
+ L stroke
+ grestore
+ 0 h neg T
+ false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
+}
+\@namedef{psas@D>}{ false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowD }% hv 20071211
+\@namedef{psas@D>D>}{ % hv 20071211
+ false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowD
+ 0 h Inset sub T gsave newpath
+ false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowD
+ CP grestore moveto
+}
+\@namedef{psas@<D}{ % hv 20071211
+ true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowD
+}
+\@namedef{psas@<D<D}{ % hv 20071211
+ true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowD
+ CP newpath moveto 0 a neg L stroke 0 h neg T
+ true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowD
+}
+\@namedef{psas@T>}{ false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowT }% hv 20210531
+\@namedef{psas@<T}{ % hv 20071211
+ true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowT
+}
+
+\define@key[psset]{pstricks}{tbarsize}[2pt 5]{%
+ \pst@expandafter\pst@getdimnum{#1} 0 {} {}\@nil
+ \edef\psk@tbarsize{\pst@number\pst@dimg \pst@tempg}}
+\psset[pstricks]{tbarsize=2pt 5}
+%
+\def\tx@Tbar{Tbar }
+\@namedef{psas@|}{\psk@tbarsize \tx@Tbar}
+\@namedef{psas@|*}{0 CLW -2 div T \psk@tbarsize \tx@Tbar}
+\@namedef{psas@>|}{%
+ \psk@tbarsize \tx@Tbar
+ 0 CLW 2 div T
+ newpath
+ false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
+}
+\@namedef{psas@>|*}{%
+ 0 CLW -2 div T
+ \psk@tbarsize \tx@Tbar
+ 0 CLW 2 div T
+ newpath
+ false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
+}
+%
+\define@key[psset]{pstricks}{bracketlength}[0.15]{\pst@checknum{#1}\psk@bracketlength}
+\psset[pstricks]{bracketlength=.15}
+\def\tx@Bracket{Bracket }
+\@namedef{psas@]}{\psk@bracketlength \psk@tbarsize \tx@Bracket}
+\define@key[psset]{pstricks}{rbracketlength}[0.15]{\pst@checknum{#1}\psk@rbracketlength}
+\psset[pstricks]{rbracketlength=.15}
+\def\tx@RoundBracket{RoundBracket }
+\@namedef{psas@)}{\psk@rbracketlength \psk@tbarsize \tx@RoundBracket}
+%
+\def\psas@c{1 \psas@@c}
+\def\psas@cc{0 CLW 2 div T 1 \psas@@c}
+\def\psas@C{2 \psas@@c}
+\def\psas@@c{%
+ setlinecap
+ 0 0 moveto
+ 0 0.1 L % changed value from 0.5 to 0.1
+ stroke
+ 0 0 moveto }
+%
+\def\psas@{}
+%
+\define@key[psset]{pstricks}{arrowLW}{\pst@getlength{#1}\psk@arrowLW}
+\psset[pstricks]{arrowLW=0}
+% arrowLW as LineWidth for the circled line ends
+%
+\def\psas@o{\psk@arrowLW\space dup 0 eq { pop }{ SLW } ifelse
+ {\pst@usecolor\psfillcolor true} false \psk@dotsize \tx@EndDot }
+\def\psas@oo{\psk@arrowLW\space dup 0 eq { pop }{ SLW } ifelse
+ {\pst@usecolor\psfillcolor true} true \psk@dotsize \tx@EndDot }
+\@namedef{psas@*}{\psk@arrowLW\space dup 0 eq { pop }{ SLW } ifelse
+ {false} false \psk@dotsize \tx@EndDot }
+\@namedef{psas@**}{\psk@arrowLW\space dup 0 eq { pop }{ SLW } ifelse
+ {false} true \psk@dotsize \tx@EndDot }
+%
+\define@key[psset]{pstricks}{arrows}[-]{%
+ \begingroup
+ \pst@activearrows
+ \xdef\pst@tempg{#1}%
+ \endgroup
+ \expandafter\psset@@arrows\pst@tempg\@empty-\@empty\@nil
+ \if@pst\else\@pstrickserr{Bad arrows specification: #1}\@ehpa\fi}
+\def\psset@@arrows#1-#2\@empty#3\@nil{%
+ \@psttrue
+ \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}%
+ \@ifundefined{psas@#2}{\@pstfalse\def\psk@arrowB{}}{\def\psk@arrowB{#2}}}
+\psset[pstricks]{arrows=-}
+%
+\define@key[psset]{pstricks}{arrowscale}[1]{% hv --1.12
+ \pst@getscale{#1}\psk@arrowscale
+ \pst@@arrowscale@i#1 \@nil}% hv --1.12
+\def\pst@@arrowscale@i#1 #2\@nil{\edef\pst@arrowscale{#1}}% hv --1.12
+\psset[pstricks]{arrowscale=1}
+%
+\define@key[psset]{pstricks}{arrowsize}[1.5pt 2]{%
+ \pst@expandafter\pst@getdimnum{#1} 0 {} {}\@nil
+ \edef\psk@arrowsize{\pst@number\pst@dimg \pst@tempg}%
+}
+\psset[pstricks]{arrowsize=1.5pt 2}
+\define@key[psset]{pstricks}{arrowlength}[1.4]{\pst@checknum{#1}\psk@arrowlength}
+\psset[pstricks]{arrowlength=1.4}
+\define@key[psset]{pstricks}{arrowinset}[0.4]{\pst@checknum{#1}\psk@arrowinset}%
+\psset[pstricks]{arrowinset=0.4}
+% Vee arrow
+\define@key[psset]{pstricks}{veearrowlength}[3mm]{\pst@getlength{#1}\psk@veearrowlength}
+\psset[pstricks]{veearrowlength=3mm} % default projected length
+\define@key[psset]{pstricks}{veearrowangle}[30]{\pst@getangle{#1}\psk@veearrowangle}
+\psset[pstricks]{veearrowangle=30} % default angle
+\define@key[psset]{pstricks}{veearrowlinewidth}[0.35mm]{\pst@getlength{#1}\psk@veearrowlinewidth}
+\psset[pstricks]{veearrowlinewidth=0.35mm} % default vee arrow line width
+
+% Filled vee arrow
+\define@key[psset]{pstricks}{filledveearrowlength}[3mm]{\pst@getlength{#1}\psk@filledveearrowlength}
+\psset[pstricks]{filledveearrowlength=3mm} % default projected length
+\define@key[psset]{pstricks}{filledveearrowangle}[15]{\pst@getangle{#1}\psk@filledveearrowangle}
+\psset[pstricks]{filledveearrowangle=15} % default angle
+\define@key[psset]{pstricks}{filledveearrowlinewidth}[0.35mm]{\pst@getlength{#1}\psk@filledveearrowlinewidth}
+\psset[pstricks]{filledveearrowlinewidth=0.35mm} % default vee arrow line width
+\define@key[psset]{pstricks}{arrowlinestyle}[solid]{%
+ \@ifundefined{psls@#1}%
+ {\@pstrickserr{Line style `#1' not defined}\@eha}%
+ {\def\psarrowlinestyle{#1}}}
+\psset[pstricks]{arrowlinestyle=solid} % default
+\pst@def{VeeArrow}<%
+ 1 setlinecap % round caps
+ 1 setlinejoin % round join
+ setlinewidth % vee arrow line width
+ /y ED % projected length
+ 2 div /a ED % angle (divide by 2)
+ /t ED % false = inside, true = outside
+ a sin a cos div y mul /x ED % perpendicular length : x=tan(a).y
+ t { 1 -1 scale } if % if outside : symmetry
+ x neg y moveto % point #1
+ 0 0 L % point #2
+ x y L % point #3
+ { closepath gsave fill grestore } if % if filled : close and fill
+ \@nameuse{psls@\psarrowlinestyle}
+ \ps@check@tipcolor
+ stroke % draw line
+ 0 t { y 2 mul } { 0 } ifelse moveto> % if outside : twice longer line
+
+% VeeArrow : filled? outside? (total) angle (projected) length (arrow) line width
+
+\@namedef{psas@|}{\ps@check@tipcolor \psk@tbarsize \tx@Tbar}
+
+\@namedef{psas@v}{%
+ \ps@check@tipcolor
+ false false \psk@veearrowangle \psk@veearrowlength \psk@veearrowlinewidth \tx@VeeArrow}
+\@namedef{psas@V}{%
+ \ps@check@tipcolor
+ false true \psk@veearrowangle \psk@veearrowlength \psk@veearrowlinewidth \tx@VeeArrow}
+\@namedef{psas@f}{%
+ \ps@check@tipcolor
+ true false \psk@filledveearrowangle \psk@filledveearrowlength \psk@filledveearrowlinewidth \tx@VeeArrow}
+\@namedef{psas@F}{%
+ \ps@check@tipcolor
+ true true \psk@filledveearrowangle \psk@filledveearrowlength \psk@filledveearrowlinewidth \tx@VeeArrow}
+
+% And An another arrowhead
+% architectural tick / oblique arrow
+
+% Tick arrow
+\define@key[psset]{pstricks}{tickarrowlength}[1.5mm]{\pst@getlength{#1}\psk@tickarrowlength}
+\psset[pstricks]{tickarrowlength=1.5mm} % default projected length
+\define@key[psset]{pstricks}{tickarrowlinewidth}[0.35mm]{\pst@getlength{#1}\psk@tickarrowlinewidth}
+\psset[pstricks]{tickarrowlinewidth=0.35mm} % default tick arrow line width
+
+\pst@def{TickArrow}<%
+ 1 setlinecap % round caps
+ 1 setlinejoin % round join
+ setlinewidth % tick line width
+ /y ED % projected length
+ /t ED % false = normal, true = reversed
+ t { 1 -1 scale } if % if reversed : symmetry
+ y neg y moveto % point #1
+ y y neg L % point #2
+ \@nameuse{psls@\psarrowlinestyle}
+ \ps@check@tipcolor
+ stroke % draw line
+ 0 0 moveto> % origin
+
+
+\@namedef{psas@t}{ \ps@check@tipcolor\space false \psk@tickarrowlength \psk@tickarrowlinewidth \tx@TickArrow }
+\@namedef{psas@T}{ \ps@check@tipcolor\space true \psk@tickarrowlength \psk@tickarrowlinewidth \tx@TickArrow }
+
+\pst@def{ArrowD}< % the sides are drawn as curves (hv 20071211)
+ CLW mul add dup
+ 2 div /w ED
+ mul dup /h ED
+ mul /Inset ED
+ { 0 h T 1 -1 scale } if % changes the direction
+% we use y=w/h^2 * x^2 as equation for the control points
+% for the coordinates the arrow is seen from top to bottom
+% the bottom (tip) is (0;0)
+ w neg h moveto % lower left of >
+ w 9 div 4 mul neg h 3 div 2 mul
+ w 9 div neg h 3 div
+ 0 0 curveto % tip of >
+ w 9 div h 3 div
+ w 9 div 4 mul h 3 div 2 mul
+ w h curveto % upper left of >
+ w neg Inset neg rlineto % move to x=0 and inset
+ gsave
+ \ps@check@tipcolor
+ fill grestore >
+%
+\pst@def{ArrowT}< % like tikz
+ CLW mul add dup
+ 2 div /w ED
+ mul dup /h ED
+ mul /Inset ED
+ { 0 h T 1 -1 scale } if % changes the direction
+ w 2 mul /w exch def
+ w neg h moveto % lower left of >
+ w 9 div 4 mul neg h 3 div 2 mul
+ w 9 div neg h 3 div
+ 0 0 curveto % tip of >
+ w 9 div h 3 div
+ w 9 div 4 mul h 3 div 2 mul
+ w h curveto % upper left of >
+% w neg Inset neg rlineto % move to x=0 and inset
+% CLW SLW
+% 1 0 0 setrgbcolor
+ 2 setlinejoin
+ \ps@check@tipcolor
+ stroke
+ 0 0 moveto >
+%
+%
+% HookLeft/RightArrow
+\newdimen\pshooklength
+\newdimen\pshookwidth
+\define@key[psset]{pstricks}{hooklength}[3mm]{\pssetlength\pshooklength{#1}}
+\define@key[psset]{pstricks}{hookwidth}[1mm]{\pssetlength\pshookwidth{#1}}
+%\psset{hooklength=3mm,hookwidth=1mm}
+%
+\edef\pst@arrowtable{\pst@arrowtable,H-H,h-h} % add new arrow
+\def\tx@RHook{RHook } % PostScript name
+\def\tx@Rhook{Rhook } % PostScript name
+
+\@namedef{psas@H}{%
+ /RHook {
+ /x ED % hook width
+ /y ED % hook length
+ /z CLW 2 div def % save it
+ x y moveto % goto first point
+ x 0 0 0 0 y
+ curveto % draw Bezier
+ stroke
+ 0 y moveto % define current point
+ } def
+ \ps@check@tipcolor
+ \pst@number\pshooklength
+ \pst@number\pshookwidth
+ \tx@RHook
+}
+\@namedef{psas@h}{%
+ /Rhook {
+ CLW mul % size * CLW
+ add dup % +length size*CLW+length size*CLW+length
+ 2 div /w ED % (size*CLW+length)/2 -> w
+ mul dup /h ED mul % (size*CLW+length)
+ /a ED
+ w neg h abs moveto 0 0 L
+ gsave
+ \ps@check@tipcolor
+ stroke grestore
+ } def
+ 0 \psk@arrowlength \psk@arrowsize \tx@Rhook
+}
+% New parameter "arrowfill", with default as "true"
+\define@boolkey[psset]{pstricks}[ps]{ArrowFill}[true]{}
+%
+% Modification of the PostScript macro Arrow to choose to fill or not the arrow
+% (it require to restore the current linewidth, despite of the scaling)
+\pst@def{Arrow}<{%
+ CLW mul add dup 2 div
+ /w ED mul dup
+ /h ED mul
+ /a ED { 0 h T 1 -1 scale } if
+ gsave
+ \ifpsArrowFill\else\pst@number\pslinewidth \pst@arrowscale\space div SLW \fi
+ \ps@check@tipcolor
+ w neg h moveto
+ 0 0 L w h L w neg a neg rlineto
+ \ifpsArrowFill gsave
+ \tx@setStrokeTransparency
+ fill
+ grestore \else gsave closepath
+ \ps@check@tipcolor
+ stroke grestore \fi
+ grestore
+ 0 h a sub moveto
+}>
+%
+\define@key[psset]{pstricks}{nArrowsA}[2]{\def\psk@nArrowsA{#1}}
+\define@key[psset]{pstricks}{nArrowsB}[2]{\def\psk@nArrowsB{#1}}
+\define@key[psset]{pstricks}{nArrows}[2]{\def\psk@nArrowsA{#1}\def\psk@nArrowsB{#1}}
+\psset{nArrows=2}
+%
+\@namedef{psas@>>}{%
+ \psk@nArrowsA\space 1 sub {
+ false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
+ 0 h a sub T
+ } repeat
+ gsave
+ newpath
+ false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
+ CP
+ grestore
+ moveto
+}
+%
+\@namedef{psas@<<}{%
+ true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
+ 0 h neg a add T
+ \psk@nArrowsB\space 2 sub {
+ false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
+ 0 h neg a add T
+ } repeat
+ false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
+ 0 h a 5 mul 2 div sub moveto
+}
+%
+% DG addition begin - Dec. 18/19, 1997 and Oct. 11, 2002
+% Adapted from \psset@arrows
+\define@key[psset]{pstricks}{ArrowInside}{%
+ \def\pst@tempArrow{#1}%
+ \ifx\pst@tempArrow\@empty \def\psk@ArrowInside{} %
+ \else%
+ \begingroup%
+ \pst@activearrows%
+ \xdef\pst@tempg{<#1}%
+ \endgroup%
+ \expandafter\psset@@ArrowInside\pst@tempg\@empty-\@empty\@nil%
+ \if@pst\else\@pstrickserr{Bad intermediate arrow specification: #1}\@ehpa\fi%
+ \fi%
+}
+% Adapted from \psset@@arrows
+\def\psset@@ArrowInside#1-#2\@empty#3\@nil{%
+ \@psttrue
+ \def\next##1,#1-##2,##3\@nil{\def\pst@tempg{##2}}%
+ \expandafter\next\pst@arrowtable,#1-#1,\@nil
+ \@ifundefined{psas@#2}%
+ {\@pstfalse\def\psk@ArrowInside{}}%
+ {\def\psk@ArrowInside{#2}}%
+}
+% Default value empty
+\psset{ArrowInside={}}
+% Modified version of \pst@addarrowdef
+\def\pst@addarrowdef{%
+ \addto@pscode{%
+ /ArrowA {
+ \ifx\psk@arrowA\@empty
+ \pst@oplineto
+ \else
+ \pst@arrowdef{A}
+ moveto
+ \fi
+ } def
+ /ArrowB { \ifx\psk@arrowB\@empty \else \pst@arrowdef{B} \fi } def
+% DG addition
+ /ArrowInside {
+ \ifx\psk@ArrowInside\@empty \else \pst@arrowdefA{Inside} \fi
+ } def
+ }%
+}
+% Adapted from \pst@arrowdef
+\def\pst@arrowdefA#1{%
+ \ifnum\pst@repeatarrowsflag>\z@ /Arrow#1c [ 6 2 roll ] cvx def Arrow#1c\fi
+ \tx@BeginArrow
+ \psk@arrowscale
+ \@nameuse{psas@\@nameuse{psk@Arrow#1}}
+ \tx@EndArrow%
+}
+% ArrowInsidePos parameter (default value 0.5)
+\define@key[psset]{pstricks}{ArrowInsidePos}[0.5]{\pst@checknum{#1}\psk@ArrowInsidePos}%
+%\psset{ArrowInsidePos=0.5}
+
+\def\pst@repeatarrowsflag{\z@}
+\def\pst@setrepeatarrowsflag{%
+ \edef\pst@repeatarrowsflag{%
+ \ifdim\psk@border\p@>\z@ 1\else\ifpsdoubleline 1\else
+ \ifpsshadow 1\else \z@\fi\fi\fi}}%
+%
+% Redefinition of the PostScript /Line macro to print the intermediate
+% arrow on each segment of the line
+%
+\define@key[psset]{pstricks}{ArrowInsideNo}[1]{\pst@checknum{#1}\psk@ArrowInsideNo}% hv 20031001
+\define@key[psset]{pstricks}{ArrowInsideOffset}[0]{\pst@checknum{#1}\psk@ArrowInsideOffset}% hv 20031001
+%\psset{ArrowInsideNo=1,ArrowInsideOffset=0}
+%
+\def\arrowType@H{H}
+
+\def\resetArrowOptions{%
+ \def\pst@linetype{0}%
+ \psset[pstricks]{%
+ hooklength=3mm, hookwidth=1mm,
+ ArrowFill=true,
+ ArrowInside={}, ArrowInsidePos=0.5,
+ ArrowInsideNo=1, ArrowInsideOffset=0,
+}}
+%
+\resetArrowOptions
+%
+%% END: pstricks-arrows.tex
+\endinput
diff --git a/Master/texmf-dist/tex/generic/pstricks/pstricks.tex b/Master/texmf-dist/tex/generic/pstricks/pstricks.tex
index 8b1edd58e05..10cd89eba51 100644
--- a/Master/texmf-dist/tex/generic/pstricks/pstricks.tex
+++ b/Master/texmf-dist/tex/generic/pstricks/pstricks.tex
@@ -18,10 +18,11 @@
\csname PSTricksLoaded\endcsname
\let\PSTricksLoaded\endinput
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% !! loading additional TeX packages see line 38,39 and 72ff
-%% !! loading config file pstricks.con line 439
-%% !! loading pro files line 452ff
-%% !! fileversion and date see line 83
+%% !! loading additional TeX packages see line 43,44 and 77ff
+%% !! loading config file pstricks.con line 445
+%% !! loading pro files line 458ff
+%% !! fileversion and date see line 84f
+%% !! loaded arrow stuff line 1482
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\edef\PstAtCode{\the\catcode`\@}
@@ -80,8 +81,8 @@
\fi
\let\pgfforeach\foreach
%
-\def\fileversion{3.03}
-\def\filedate{2021/08/23}
+\def\fileversion{3.05}
+\def\filedate{2021/08/25}
\pst@addfams{pstricks}
%
%\define@boolkey[psset]{pstricks}[Pst@]{useURWfonts}[true]{}
@@ -1103,6 +1104,8 @@
\psset[pstricks]{doublesep=1.25\pslinewidth}
\define@key[psset]{pstricks}{doublecolor}[white]{\pst@getcolor{#1}\psdoublecolor}
\psset[pstricks]{doublecolor=white}
+
+\let\pst@setrepeatarrowsflag\relax
%
\define@boolkey[psset]{pstricks}[ps]{shadow}[true]{\pst@setrepeatarrowsflag}
\psset[pstricks]{shadow=false}
@@ -1113,12 +1116,6 @@
\define@key[psset]{pstricks}{shadowcolor}[darkgrey]{\pst@getcolor{#1}\psshadowcolor}
\psset[pstricks]{shadowcolor=darkgray}
%
-\def\pst@repeatarrowsflag{\z@}
-\def\pst@setrepeatarrowsflag{%
- \edef\pst@repeatarrowsflag{%
- \ifdim\psk@border\p@>\z@ 1\else\ifpsdoubleline 1\else
- \ifpsshadow 1\else \z@\fi\fi\fi}}
-%
\def\psls@none{}
\def\psls@solid{ \psk@linejoin\space setlinejoin \psk@linecap\space setlinecap stroke }
\def\psls@coloreddashed{ \psls@solid grestore gsave \pst@usecolor\psdashcolor \tx@setlinejoin \psls@dashed }
@@ -1482,192 +1479,9 @@
%
%--------------------------- A R R O W S ---------------------------
-%
-\def\psk@arrowA{}
-\def\psk@arrowB{}
-\def\pst@arrowtable{,-,<->,<<->>,>-<,>>-<<,(-),[-],)-(,]-[,|>-<|,<D-D>,D>-<D,<D<D-D>D>,<T-T>} % hv --1.16
-\edef\pst@arrowtable{\pst@arrowtable,|<*->|*,|<->|}
-\begingroup
- \catcode`\<=13
- \catcode`\>=13
- \catcode`\|=13
- \gdef\pst@activearrows{\def<{\string<}\def>{\string>}\def|{\string|}}
-\endgroup
-\def\tx@BeginArrow{BeginArrow }
-\def\tx@EndArrow{EndArrow }
-%
-\def\tx@Arrow{ \tx@setStrokeTransparency Arrow }% hv 2008-01-13
-\def\tx@ArrowD{ \tx@setStrokeTransparency ArrowD }% hv 2008-01-13
-\def\tx@ArrowT{ \tx@setStrokeTransparency ArrowT }% hv 2021-05-31
-%
-\@namedef{psas@<|}{
- \psk@tbarsize\space \tx@Tbar
- 0 CLW 2 div T
- newpath
- true
- \psk@arrowinset
- \psk@arrowlength
- \psk@arrowsize
- \tx@Arrow
-}
-% ]-[ arrow
-\def\tx@BracketOut{BracketOut }
-\@namedef{psas@[}{%
- /BracketOut {%
- CLW mul add dup CLW sub 2 div
-%/x ED mul CLW add
- /x ED mul neg
- /y ED
- /z CLW 2 div def
- x neg y moveto
- x neg CLW 2 div L x CLW 2 div L x y L stroke 0 CLW moveto } def
- \psk@bracketlength\space \psk@tbarsize\space \tx@BracketOut
-}
-% )-( arrow
-\def\tx@RoundBracketOut{ \tx@setStrokeTransparency RoundBracketOut }% hv 2008-01-13
-\@namedef{psas@(}{%
- /RoundBracketOut {%
- CLW mul add dup 2 div
-%/x ED mul
- /x ED mul neg
- /y ED
- /mtrx CM def
- 0 CLW
- 2 div T x y mul 0 ne { x y scale } if
- 1 1 moveto
- .85 .5 .35 0 0 0 curveto
- -.35 0 -.85 .5 -1 1 curveto
- mtrx setmatrix stroke 0 CLW moveto } def
- \psk@rbracketlength\space \psk@tbarsize\space \tx@RoundBracketOut
-}
-% end of new definitions of the missing arrows ---- hv 1.12
-\@namedef{psas@>}{ false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow }
-\@namedef{psas@>>}{%
- false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
- 0 h T gsave newpath
- false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
- CP grestore CP newpath moveto 2 copy
- CLW \pst@arrowscale\space div SLW % set the original line width
- L stroke moveto
-}
-\@namedef{psas@<}{true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow}
-\@namedef{psas@<<}{
- true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
- CP newpath moveto 0 a neg
- gsave
- CLW \pst@arrowscale\space div SLW % set the original line width
- L stroke
- grestore
- 0 h neg T
- false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
-}
-\@namedef{psas@D>}{ false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowD }% hv 20071211
-\@namedef{psas@D>D>}{ % hv 20071211
- false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowD
- 0 h Inset sub T gsave newpath
- false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowD
- CP grestore moveto
-}
-\@namedef{psas@<D}{ % hv 20071211
- true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowD
-}
-\@namedef{psas@<D<D}{ % hv 20071211
- true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowD
- CP newpath moveto 0 a neg L stroke 0 h neg T
- true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowD
-}
-\@namedef{psas@T>}{ false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowT }% hv 20210531
-\@namedef{psas@<T}{ % hv 20071211
- true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowT
-}
-\define@key[psset]{pstricks}{tbarsize}[2pt 5]{%
- \pst@expandafter\pst@getdimnum{#1} 0 {} {}\@nil
- \edef\psk@tbarsize{\pst@number\pst@dimg \pst@tempg}}
-\psset[pstricks]{tbarsize=2pt 5}
-%
-\def\tx@Tbar{Tbar }
-\@namedef{psas@|}{\psk@tbarsize \tx@Tbar}
-\@namedef{psas@|*}{0 CLW -2 div T \psk@tbarsize \tx@Tbar}
-\@namedef{psas@>|}{%
- \psk@tbarsize \tx@Tbar
- 0 CLW 2 div T
- newpath
- false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
-}
-\@namedef{psas@>|*}{%
- 0 CLW -2 div T
- \psk@tbarsize \tx@Tbar
- 0 CLW 2 div T
- newpath
- false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
-}
-%
-\define@key[psset]{pstricks}{bracketlength}[0.15]{\pst@checknum{#1}\psk@bracketlength}
-\psset[pstricks]{bracketlength=.15}
-\def\tx@Bracket{Bracket }
-\@namedef{psas@]}{\psk@bracketlength \psk@tbarsize \tx@Bracket}
-\define@key[psset]{pstricks}{rbracketlength}[0.15]{\pst@checknum{#1}\psk@rbracketlength}
-\psset[pstricks]{rbracketlength=.15}
-\def\tx@RoundBracket{RoundBracket }
-\@namedef{psas@)}{\psk@rbracketlength \psk@tbarsize \tx@RoundBracket}
-%
-\def\psas@c{1 \psas@@c}
-\def\psas@cc{0 CLW 2 div T 1 \psas@@c}
-\def\psas@C{2 \psas@@c}
-\def\psas@@c{%
- setlinecap
- 0 0 moveto
- 0 0.1 L % changed value from 0.5 to 0.1
- stroke
- 0 0 moveto }
-%
-\def\psas@{}
-%
-\define@key[psset]{pstricks}{arrowLW}{\pst@getlength{#1}\psk@arrowLW}
-\psset[pstricks]{arrowLW=0}
-% arrowLW as LineWidth for the circled line ends
-%
-\def\psas@o{\psk@arrowLW\space dup 0 eq { pop }{ SLW } ifelse
- {\pst@usecolor\psfillcolor true} false \psk@dotsize \tx@EndDot }
-\def\psas@oo{\psk@arrowLW\space dup 0 eq { pop }{ SLW } ifelse
- {\pst@usecolor\psfillcolor true} true \psk@dotsize \tx@EndDot }
-\@namedef{psas@*}{\psk@arrowLW\space dup 0 eq { pop }{ SLW } ifelse
- {false} false \psk@dotsize \tx@EndDot }
-\@namedef{psas@**}{\psk@arrowLW\space dup 0 eq { pop }{ SLW } ifelse
- {false} true \psk@dotsize \tx@EndDot }
-%
-\define@key[psset]{pstricks}{arrows}[-]{%
- \begingroup
- \pst@activearrows
- \xdef\pst@tempg{#1}%
- \endgroup
- \expandafter\psset@@arrows\pst@tempg\@empty-\@empty\@nil
- \if@pst\else\@pstrickserr{Bad arrows specification: #1}\@ehpa\fi}
-\def\psset@@arrows#1-#2\@empty#3\@nil{%
- \@psttrue
- \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}%
- \@ifundefined{psas@#2}{\@pstfalse\def\psk@arrowB{}}{\def\psk@arrowB{#2}}}
-\psset[pstricks]{arrows=-}
-%
-\define@key[psset]{pstricks}{arrowscale}[1]{% hv --1.12
- \pst@getscale{#1}\psk@arrowscale
- \pst@@arrowscale@i#1 \@nil}% hv --1.12
-\def\pst@@arrowscale@i#1 #2\@nil{\edef\pst@arrowscale{#1}}% hv --1.12
-\psset[pstricks]{arrowscale=1}
-%
-\define@key[psset]{pstricks}{arrowsize}[1.5pt 2]{%
- \pst@expandafter\pst@getdimnum{#1} 0 {} {}\@nil
- \edef\psk@arrowsize{\pst@number\pst@dimg \pst@tempg}%
-}
-\psset[pstricks]{arrowsize=1.5pt 2}
-\define@key[psset]{pstricks}{arrowlength}[1.4]{\pst@checknum{#1}\psk@arrowlength}
-\psset[pstricks]{arrowlength=1.4}
-\define@key[psset]{pstricks}{arrowinset}[0.4]{\pst@checknum{#1}\psk@arrowinset}%
-\psset[pstricks]{arrowinset=0.4}
-%
+\input pstricks-arrows
+
%% ---------------------- end arrow part ----------------------
%
\def\tx@SD{ \tx@setTransparency SD }
@@ -1718,20 +1532,6 @@
\@namedef{#1@i}{\addbefore@par{#3}\@nameuse{#2@i}}}%
\ignorespaces}
%
-\def\pst@getarrows#1{\@ifnextchar({#1}{\pst@@getarrows{#1}}}
-% ------------------------- hv 1.10 beg ------------------------
-%\def\pst@@getarrows#1#2{\addto@par{arrows=#2}#1}
-\def\pst@@getarrows#1#2{%
- \def\pst@tempa{#2}% prevent empty arrow arguments, to allow \psline{}(...)(...)
- \ifx\pst@tempa\@empty
- \addto@par{arrows=-}%
- \else
- \addto@par{arrows=#2}%
- \fi
- #1%
-}
-% ------------------------- hv 1.10 end ------------------------
-%
\def\begin@ClosedObj{%
\leavevmode
\pst@killglue
@@ -1913,42 +1713,6 @@
grestore
}}
%
-\def\pst@arrowtype{%
- \ifx\psk@arrowB\@empty 0 \else -2 \fi
- \ifx\psk@arrowA\@empty 0 \else -1 \fi
- add }
-%
-\def\pst@addarrowdef{%
- \addto@pscode{%
- /ArrowA {
- \ifx\psk@arrowA\@empty
- \pst@oplineto
- \else
- \pst@arrowdef{A}
- moveto
- \fi
- } def
- /ArrowB { \ifx\psk@arrowB\@empty \else \pst@arrowdef{B} \fi } def
-}}
-%
-\def\pst@arrowdef#1{%
- \ifnum\pst@repeatarrowsflag>\z@
- /Arrow#1c [ 6 2 roll ] cvx def Arrow#1c
- \fi
- \tx@BeginArrow
- \psk@arrowscale
- \@nameuse{psas@\@nameuse{psk@arrow#1}}
- \tx@EndArrow
-}
-%
-\def\pst@repeatarrows{%
- \addto@pscode{%
- gsave
- \ifx\psk@arrowA\@empty\else ArrowAc ArrowA pop pop \fi
- \ifx\psk@arrowB\@empty\else ArrowBc ArrowB pop pop pop pop \fi
- grestore
-}}
-%
\def\pst@OpenShowPoints{%
\addto@pscode{%
gsave
diff --git a/Master/texmf-dist/tex/generic/pstricks/pstricks.tex.neu b/Master/texmf-dist/tex/generic/pstricks/pstricks.tex.neu
deleted file mode 100644
index d28b2f529a3..00000000000
--- a/Master/texmf-dist/tex/generic/pstricks/pstricks.tex.neu
+++ /dev/null
@@ -1,4595 +0,0 @@
-%% pstricks.tex
-%% COPYRIGHT 1993, 1994, 1999 by Timothy Van Zandt
-%% COPYRIGHT 2000-2003 by Denis Girou.
-%% Copyright 2004-2019 Herbert Voss <hvoss@tug.org>
-%
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3
-% of this license or (at your option) any later version.
-% The latest version of this license is in
-% http://www.latex-project.org/lppl.txt
-% and version 1.3 or later is part of all distributions of LaTeX
-% version 2003/12/01 or later.
-%
-% This work has the LPPL maintenance status "maintained".
-%
-% This Current Maintainer of this work is Herbert Voss
-%
-\csname PSTricksLoaded\endcsname
-\let\PSTricksLoaded\endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% !! loading additional TeX packages see line 38,39 and 72ff
-%% !! loading config file pstricks.con line 439
-%% !! loading pro files line 452ff
-%% !! fileversion and date see line 83
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-\edef\PstAtCode{\the\catcode`\@}
-\catcode`\@=11\relax
-%
-%\if@check@engine
- \ifx\c@lor@to@ps\@undefined
- \def\c@lor@to@ps{\PSTricks_Not_Configured_For_This_Format}% message for a pdflatex run
- \fi
-%\fi
-\expandafter\ifx\csname @latexerr\endcsname\relax % do we have TeX? then @latexerr isn't defined
- \input pstricks-tex.def
-\fi
-
-\let\ifpstUndefined\@ifundefined
-
-%\catcode`\@=\PstAtCode\relax
-\ifx\PSTXKeyLoaded\endinput\else\input pst-xkey.tex \fi
-\ifx\PSTFPloaded\endinput\else\input pst-fp.tex\fi
-%
-%\catcode`\@=11\relax
-\def\XKV@ch@ckch@ice#1#2#3{% bugfix for xkeyval
- \def\XKV@tempa{#1}%
- \ifx\XKV@tempa\@nnil\let\XKV@tempa\@empty\else
- \def\XKV@tempa{\def#1{#2}}%
- \fi
-% \in@{,#2,}{,#3,}%
-\begingroup\edef\x{\endgroup\noexpand\in@{,#2,}}\x{,#3,}%
-%\expandafter\in@\expandafter{\expandafter,#2,}{,#3,}% --- hv 2012-04-27
- \ifin@
- \ifXKV@pl
- \XKV@addtomacro@n\XKV@tempa\@firstoftwo
- \else
- \XKV@addtomacro@n\XKV@tempa\@firstofone
- \fi
- \else
- \ifXKV@pl
- \XKV@addtomacro@n\XKV@tempa\@secondoftwo
- \else
- \XKV@toks{#2}%
- \XKV@err{value `\the\XKV@toks' is not allowed}%
- \XKV@addtomacro@n\XKV@tempa\@gobble
- \fi
- \fi
- \XKV@tempa
-}
-%
-\def\ProvidesPackageRCS#1{\typeout{Loading #1}}%
-%\@ifnextchar[\ProvidesPackageRCS@i{\ProvidesPackageRCS@i[] }}%$
-%\def\ProvidesPackageRCS@i[#1]#2{}
-
-\ifx\pgfkeysloaded\relax\else
- \input pgfutil-common.tex
- \input pgfkeys.code.tex
- \input pgffor.code.tex
-\fi
-\let\pgfforeach\foreach
-%
-\def\fileversion{3.0}
-\def\filedate{2020/04/01}
-\pst@addfams{pstricks}
-%
-%\define@boolkey[psset]{pstricks}[Pst@]{useURWfonts}[true]{}
-%\psset{useURWfonts}
-%
-% stolen from latex.ltx to make it TeX compatible
-\newcount\psLoopIndex
-\long\def\@fornoop#1\@@#2#3{}
-\long\def\@for#1:=#2\do#3{%
- \pst@cntm=0
- \expandafter\def\expandafter\@fortmp\expandafter{#2}%
- \ifx\@fortmp\@empty \else
- \expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}\fi}
-%
-\long\def\@forloop#1,#2,#3\@@#4#5{\def#4{#1}\ifx#4\@nnil \else
- #5\def#4{#2}\ifx#4\@nnil \else\global\advance\psLoopIndex by \@ne\relax
- #5\@iforloop #3\@@#4{#5}\fi\fi}
-%
-\long\def\@iforloop#1,#2\@@#3#4{\global\advance\psLoopIndex by \@ne\relax%
- \def#3{#1}\ifx #3\@nnil
- \expandafter\@fornoop \else
- #4\relax\expandafter\@iforloop\fi#2\@@#3{#4}}
-%
-\long\def\psforeach#1#2#3{%
- \global\psLoopIndex=0\relax
- \if$\ifnum9<1#2$\else\fi\psforeach@ii{#1}{#2}{#3}%
- \else \expandafter\psforeach@i#2,..,,..,\@nil{#1}{#3}\fi}
-\long\def\psforeach@i#1,#2,..,#3,..,#4\@nil#5#6{%
- \ifx\relax#3\relax\psforeach@ii{#5}{#1,#2}{#6}%
- \else\psforeach@iii{#5}{#1}{#2}{#3}{#6}\fi}
-\long\def\psforeach@ii#1#2#3{%
- \begingroup
- \edef\reserved@a{#2}%
- \@for#1:=\reserved@a\do{#3}%
- \endgroup}
-\long\def\psforeach@iii#1#2#3#4#5{%
- \pstFPsub\pst@tempA{#3}{#2}%
- \pst@dimm=\pst@tempA pt%
- \pstFPstripZeros{\pst@tempA}\pst@tempB%
- \def\pst@tempA{#2}%
- \def\pst@tempa{#2}%
- \pst@dimn=#4pt%
- \loop
- \pst@dimm=\pst@tempA pt
- \ifdim\pst@dimm<\pst@dimn
- \pstFPadd\pst@tempA{\pst@tempA}{\pst@tempB}%
- \pstFPstripZeros{\pst@tempA}\pst@tempA%
- \edef\pst@tempa{\pst@tempa,\pst@tempA}%
- \repeat%
- \psforeach@ii{#1}{\pst@tempa}{#5}}
-%
-\long\def\psForeach#1#2#3{% without grouping the contents
- \global\psLoopIndex=0\relax%
- \if$\ifnum9<1#2$\else\fi\psforeach@ii{#1}{#2}{#3}%
- \else \expandafter\psForeach@i#2,..,,..,\@nil{#1}{#3}\fi}
-\long\def\psForeach@i#1,#2,..,#3,..,#4\@nil#5#6{%
- \ifx\relax#3\relax\psForeach@ii{#5}{#1,#2}{#6}%
- \else\psForeach@iii{#5}{#1}{#2}{#3}{#6}\fi%
-}
-\long\def\psForeach@ii#1#2#3{%
- \edef\reserved@a{#2}%
- \@for#1:=\reserved@a\do{#3}}
-\long\def\psForeach@iii#1#2#3#4#5{%
- \pstFPsub\pst@tempA{#3}{#2}%
- \pst@dimm=\pst@tempA pt%
- \pstFPstripZeros{\pst@tempA}\pst@tempB%
- \def\pst@tempA{#2}%
- \def\pst@tempa{#2}%
- \pst@dimn=#4pt%
- \loop%
- \pst@dimm=\pst@tempA pt%
- \ifdim\pst@dimm<\pst@dimn%
- \pstFPadd\pst@tempA{\pst@tempA}{\pst@tempB}%
- \pstFPstripZeros{\pst@tempA}\pst@tempA
- \edef\pst@tempa{\pst@tempa,\pst@tempA}%
- \repeat%
- \psForeach@ii{#1}{\pst@tempa}{#5}
-}
-
-\def\psrecur@i#1{\csname ps@rn#1\psrecur@i}
-\long\def\ps@rnm#1{\endcsname{#1}#1\global\advance\psLoopIndex by \@ne}
-\long\def\ps@rn#1{}
-\def\psLoop#1{\global\psLoopIndex=0\relax%
- \csname ps@rn\expandafter\psrecur@i
- \romannumeral\number\number#1 000\endcsname\endcsname}
-
-%
-% hv 2007-10-16 to fix the bug in pst-node with \\[name=...]
-% hv fix bug with empty fnodes in psmatrix
-\def\ps@ifnextchar#1#2#3{%
- \let\reserved@d= #1%
- \def\reserved@a{#2}\def\reserved@b{#3}%
- \futurelet\@let@token\ps@ifnch}
-\def\ps@ifnch{%
- \ifx\@let@token\reserved@d \let\reserved@b\reserved@a \fi
- \reserved@b
-}
-\def\pshskip#1{\vrule \@width\z@\nobreak \hskip #1\hskip \z@skip}
-% end bugfix
-\typeout{`PSTricks' v\fileversion\space\space <\filedate> (tvz,hv)}
-\def\@pstrickserr#1#2{%
- \begingroup
- \newlinechar`\^^J
- \edef\pst@tempc{#2}%
- \expandafter\errhelp\expandafter{\pst@tempc}%
- \typeout{%
- PSTricks error. \space See User's Guide for further information.^^J
- \@spaces\@spaces\@spaces\@spaces
- Type \space H <return> \space for immediate help.}%
- \errmessage{#1}%
- \endgroup}
-\def\@ehpa{%
- Your command was ignored. Default value substituted.^^J
- Type \space <return> \space to procede.}
-\def\@ehpb{%
- Your command was ignored. Will recover best I can.^^J
- Type \space <return> \space to procede.}
-\def\@ehpc{%
- You better fix this before proceding.^^J
- See the PSTricks User's Guide or ask your system administrator for help.^^J
- Type \space X <return> \space to quit.}
-\def\@ehpd{%
- Not allowed optional argument.^^J
- Will proceed with the default setting.^^J
- Type \space X <return> \space to quit.}
-\def\pst@misplaced#1{\@pstrickserr{Misplaced \string#1 command}\@ehpb}
-\newdimen\pst@dima
-\newdimen\pst@dimb
-\newdimen\pst@dimc
-\newdimen\pst@dimd
-\newdimen\pst@dimg
-\newdimen\pst@dimh
-\newdimen\pst@dimm
-\newdimen\pst@dimn
-\newdimen\pst@dimo
-\newdimen\pst@dimp
-\chardef\f@ur=4
-%
-\newbox\pst@hbox
-\newbox\pst@ibox
-\newbox\pst@boxg
-\newcount\pst@cnta
-\newcount\pst@cntb
-\newcount\pst@cntc
-\newcount\pst@cntd
-\newcount\pst@cntg
-\newcount\pst@cnth
-\newcount\pst@cntm
-\newcount\pst@cntn
-\newcount\pst@cnto
-\newcount\pst@cntp
-\newcount\@zero\@zero=0\relax
-%
-\newif\ifPst@SpecialLength
-\Pst@SpecialLengthfalse
-%
-\newif\if@pst
-\newtoks\pst@toks
-\newif\if@star
-\def\pst@ifstar#1{%
- \@ifnextchar*{\@startrue\def\ps@next*{#1}\ps@next}{\@starfalse#1}}
-%
-\def\pst@expandafter#1#2{%
- \def\ps@next{#1}%
- \edef\@tempa{#2}%
- \ifx\@tempa\@empty
- \@pstrickserr{Unexpected empty argument!}\@ehpb
- \def\@tempa{\@empty}%
- \fi
- \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}}
-%
-\def\pst@getdimdim#1 #2 #3\@nil{%
- \def\pst@tempA{#2}%
- \ifx\pst@tempA\@empty
- \pssetlength\pst@dimn{#1}%
- \pst@dimm=\z@%
- \else%
- \pssetlength\pst@dimm{#1}%
- \pssetlength\pst@dimn{#2}%
- \fi%
-}
-\def\pst@getxdimdim#1 #2 #3\@nil{%
- \def\pst@tempA{#2}%
- \ifx\pst@tempA\@empty
- \pssetxlength\pst@dimn{#1}%
- \pst@dimm=\z@
- \else%
- \pssetxlength\pst@dimm{#1}%
- \pssetxlength\pst@dimn{#2}%
- \fi%
-}
-\def\pst@getydimdim#1 #2 #3\@nil{%
- \def\pst@tempA{#2}%
- \ifx\pst@tempA\@empty
- \pssetylength\pst@dimn{#1}%
- \pst@dimm=\z@%
- \else
- \pssetylength\pst@dimm{#1}%
- \pssetylength\pst@dimn{#2}%
- \fi}
-%
-% A modulo macro for integer values
-% \pst@mod{34}{6}\value ==> \value is 4
-%
-\def\pst@mod#1#2#3{%
- \begingroup%
- \pst@cntm=#1\pst@cntn=#2\relax%
- \pst@cnto=\pst@cntm%
- \divide\pst@cntm by \pst@cntn%
- \multiply\pst@cntn by \pst@cntm%
- \advance\pst@cnto by -\pst@cntn%
- \edef\value{\endgroup\def\noexpand#3{\number\pst@cnto}}\value%
-}
-\def\pst@max#1#2#3{%
- \begingroup%
- \pst@cntm=#1\pst@cntn=#2\relax%
- \ifnum\pst@cntm<\pst@cntn\pst@cntm=\pst@cntn\fi
- \global#3=\the\pst@cntm%
- \endgroup%
-}
-\def\pst@maxdim#1#2#3{%
- \begingroup%
- \pst@dimm=#1\pst@dimn=#2\relax%
- \ifdim\pst@dimm<\pst@dimn\pst@dimm=\pst@dimn\fi
- \global#3=\the\pst@dimm%
- \endgroup%
-}
-\def\pst@mindim#1#2#3{%
- \begingroup%
- \pst@dimm=#1\pst@dimn=#2\relax%
- \ifdim\pst@dimm>\pst@dimn\pst@dimm=\pst@dimn\fi
- \global#3=\the\pst@dimm%
- \endgroup%
-}
-\def\pst@abs#1#2{%
- \begingroup%
- \pst@cntm=#1\relax%
- \ifnum\pst@cntm<\z@\pst@cntm=-\pst@cntm\fi%
- \global#2=\the\pst@cntm
- \endgroup%
-}
-\def\pst@absdim#1#2{%
- \begingroup%
- \pst@dimm=#1\relax%
- \ifdim\pst@dimm<\z@\pst@dimm=-\pst@dimm\fi%
- \global#2=\the\pst@dimm%
- \endgroup%
-}
-%
-\def\pst@pyth#1#2#3{% from pst-3d
- \begingroup%
- \pst@dima=#1\relax%
- \ifnum\pst@dima<\z@\pst@dima=-\pst@dima\fi% dima=abs(x)
- \pst@dimb=#2\relax%
- \ifnum\pst@dimb<\z@\pst@dimb=-\pst@dimb\fi% dimb=abs(y)
- \advance\pst@dimb\pst@dima % dimb=s=abs(x)+abs(y)
- \ifnum\pst@dimb=\z@
- \global\pst@dimg=\z@ % dimg=z=sqrt(x^2+y^2)
- \else
- \multiply\pst@dima 8\relax % dima= 8abs(x)
- \pst@@divide\pst@dima\pst@dimb % dimg =8t=8abs(x)/s
- \advance\pst@dimg -4pt % dimg = 4tau = (8t-4)
- \multiply\pst@dimg 2
- \pst@dimtonum\pst@dimg\pst@tempa
- \pst@dima=\pst@tempa\pst@dimg % dima=(8tau)^2
- \advance\pst@dima 64pt % dima=u=[64+(8tau)^2]/2
- \divide\pst@dima 2\relax % =(8f)^2
- \pst@dimd=7pt % initial guess at sqrt(u)
- \pst@@pyth\pst@@pyth\pst@@pyth % dimd=sqrt(u)
- \pst@dimtonum\pst@dimd\pst@tempa
- \pst@dimg=\pst@tempa\pst@dimb
- \global\divide\pst@dimg 8 % dimg=z=(8f)*s/8
- \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
- \divide\pst@dimd 2\relax}
-%
-% ----- the old pst@pyth begin ----- did not use dimens
-\def\pst@Pyth#1#2#3{\ifdim#1>#2\pst@@Pyth#1#2#3\else\pst@@Pyth#2#1#3\fi}
-\def\pst@@Pyth#1#2#3{%
- \ifdim4#1>9#2\relax
- #3=#1\advance#3 .2122#2%
- \else
- #3=.8384#1\advance#3 .5758#2%
- \fi%
-}
-% ----- the old pst@pyth end -----
-%
-%------ new version \pst@divide ̣-------- by Michael Sharpe
-\def\pst@divide#1#2#3{%
- \pst@@divide{#1}{#2}%
- \advance\pst@dimg \pst@cnta pt%
- \pst@dimtonum\pst@dimg{#3}%
-}
-\def\pst@@divide#1#2{%
- \pst@dimg=#1\relax%
- \pst@dimh=#2\relax%
- \pst@cnth=\pst@dimh%
- \pst@cntg=\pst@dimg%
- \pst@cnta=\pst@cntg%
- \divide\pst@cnta\pst@cnth%
- \advance\pst@dimg -\pst@cnta\pst@dimh%
- \pst@cntm=67108863\relax %2^26 -1
- \pst@@@divide\pst@@@divide\pst@@@divide\pst@@@divide%
- \divide\pst@dimg\pst@cnth%
-}%
-\def\pst@@@divide{%
- \ifnum%
- \ifnum\pst@dimg<\z@-\fi\pst@dimg<\pst@cntm%
- \multiply\pst@dimg\sixt@@n%
- \else%
- \divide\pst@cnth\sixt@@n%
- \fi%
-}%
-%
-%-------------- the old version ----------
-\iffalse
-\def\pst@divide#1#2#3{%
- \pst@@divide{#1}{#2}%
- \pst@dimtonum\pst@dimg{#3}%
-}
-\def\pst@@divide#1#2{%
- \pst@dimg=#1\relax
- \pst@dimh=#2\relax
- \pst@cntg=\pst@dimh
- \pst@cnth=67108863
- \pst@@@divide\pst@@@divide\pst@@@divide\pst@@@divide
- \divide\pst@dimg\pst@cntg%
-}
-\def\pst@@@divide{%
- \ifnum
- \ifnum\pst@dimg<\z@-\fi\pst@dimg<\pst@cnth
- \multiply\pst@dimg\sixt@@n
- \else
- \divide\pst@cntg\sixt@@n
- \fi%
-}
-\fi
-%-------------- end old vesrion ---------------
-%
-\def\pst@configerr#1{\@pstrickserr{\string#1 not defined in pstricks.con}\@ehpc}
-%
-\def\pstVerb#1{\pst@configerr\pstVerb}
-\def\pstverb#1{\pst@configerr\pstverb}
-\def\pstverbscale{\pst@configerr\pstverbscale}
-\def\pstrotate{\pst@configerr\pstrotate}
-\def\pstheader#1{\pst@configerr\pstheader}
-\def\pstdriver{\pst@configerr\pstdriver}
-\@ifundefined{pstcustomize}%
- {\def\pstcustomize{\endinput\let\pstcustomize\relax}}{}
-%
-\input pstricks.con % local config file
-%
-\newif\ifPSTricks
-\PSTrickstrue
-\def\PSTricksOff{%
- \def\pstheader##1{}%
- \def\pstverb##1{}%
- \def\pstVerb##1{}%
- \PSTricksfalse%
-}
-\@ifundefined{pst@def}{\def\pst@def#1<#2>{\@namedef{tx@#1}{#2 }}}{}
-\@ifundefined{pst@ATH}{\def\pst@ATH<#1>{}}{}
-%
-\pstheader{pstricks.pro}
-%\pstheader{pstricks-fonts.pro}
-\pstheader{pst-algparser.pro}
-\pstheader{pst-tools.pro}
-%
-\def\pst@dict{tx@Dict begin }
-\def\pst@theheaders{pstricks.pro, pst-algparser.pro}
-\def\pst@Verb#1{\pstVerb{\pst@dict #1 end}}
-\def\tx@Atan{Atan }
-\def\tx@Div{Div }
-\def\tx@NET{NET }
-\def\tx@Pyth{Pyth }
-\def\tx@PtoC{PtoC }
-\def\tx@PathLength@{PathLength@ }
-\def\tx@PathLength{PathLength }
-\pst@dimg=\pstunit\relax
-\ifdim\pst@dimg=1bp
-\def\pst@stp{.996264 dup scale}
-\else
-\edef\pst@stp{1 \pst@@dimtonum\pst@dimg\space div dup scale}
-\fi
-\def\tx@STP{STP }
-\def\tx@STV{STV }
-%
-%--------------------------------------- PS stuff ---------------------------------
-% on stack x y
-\pst@def{UserCoor}< \pst@number\psyunit div exch \pst@number\psxunit div exch >
-\pst@def{ScreenCoor}< \pst@number\psyunit mul exch \pst@number\psxunit mul exch >
-%--------------------------------------- PS stuff end -----------------------------
-%
-\def\pst@number#1{\pst@@dimtonum#1\space}
-%
-%-----------------------% hv 20100413
-\def\pst@strip@dot#1{\expandafter\pst@strip@dot@i#1..\@nil}
-\def\pst@strip@dot@i#1.#2.#3\@nil{%
- \ifnum1#2>10\relax #1.#2\else#1\fi}
-%-----------------------% hv 20100413
-\def\pst@checknum#1#2{%
- \edef\ps@next{#1}%
- \ifx\ps@next\@empty
- \let\pst@num\z@
- \else
- \expandafter\pst@@checknum\ps@next..\@nil
- \fi
- \ifcase\pst@num\relax
- \@pstrickserr{Bad number: `#1'. 0 substituted.}\@ehpa
- \def#2{0 }%
- \or% 1
- \edef#2{\ifnum\pst@num=\tw@-\fi\the\pst@cntg.%
- \expandafter\@gobble\the\pst@cnth\space}%
- \or% 2
- \edef#2{\ifnum\pst@num=\tw@-\fi\the\pst@cntg.%
- \expandafter\@gobble\the\pst@cnth\space}%
- \or% 3
- \edef#2{\pst@tempA\space}%
- \fi}
-\def\pst@@checknum{%
- \@ifnextchar-%
- {\let\pst@num\tw@\expandafter\pst@@@checknum\@gobble}%
- {\@ifnextchar !%
- {\def\pst@num{3}\pst@@@@@checknum}
- {\let\pst@num\@ne\pst@@@checknum}}%
-}
-\def\pst@@@checknum#1.#2.#3\@nil{%
-\afterassignment\pst@@@@checknum\pst@cntg=0#1\relax\@nil%
-\afterassignment\pst@@@@checknum\pst@cnth=1#2\relax\@nil}
-\def\pst@@@@checknum#1\relax\@nil{\ifx\@nil#1\@nil\else\let\pst@num\z@\fi}
-%
-\def\pst@@@@@checknum#1#2.#3\@nil{\def\pst@tempA{#2}}% PostScript Notation with !<code>
-%
-\def\pst@getnumii#1 #2 #3\@nil{%
- \pst@checknum{#1}\pst@tempg%
- \ifx\relax#2\relax\let\pst@temph\pst@tempg\else\pst@checknum{#2}\pst@temph\fi}
-\def\pst@getnumiii#1 #2 #3 #4\@nil{%
-\pst@checknum{#1}\pst@tempg%
-\pst@checknum{#2}\pst@temph%
-\pst@checknum{#3}\pst@tempi}
-\def\pst@getnumiv#1 #2 #3 #4 #5\@nil{%
-\pst@checknum{#1}\pst@tempg%
-\pst@checknum{#2}\pst@temph%
-\pst@checknum{#3}\pst@tempi%
-\pst@checknum{#4}\pst@tempj}
-%
-\def\pst@getdimnum#1 #2 #3\@nil{%
- \pssetlength\pst@dimg{#1}%
- \pst@checknum{#2}\pst@tempg%
-}
-\def\pst@getscale#1#2{% read and check a scale input x [y]
- \edef\pst@tempg{#1}%
- \ifx\pst@tempg\@none
- \def#2{}%
- \else
- \pst@expandafter\pst@getnumii{#1 #1} {} {} {}\@nil
- \ifdim\pst@tempg\p@=\z@
- \@pstrickserr{Bad scaling argument `#1'}\@ehpa
- \def#2{}%
- \else
- \ifdim\pst@temph\p@=\z@
- \@pstrickserr{Bad scaling argument `#1'}\@ehpa
- \def#2{}%
- \else
- \edef#2{\pst@tempg\space \pst@temph\space scale }%
- \fi
- \fi
- \fi%
-}
-\def\pst@getint#1#2{% read and check an integer
- \pst@cntg=#1\relax
- \edef#2{\the\pst@cntg\space}%
-}
-\begingroup
-\catcode`\{=12
-\catcode`\}=12
-\catcode`\[=1
-\catcode`\]=2
-\gdef\pslbrace[{ ]
-\gdef\psrbrace[} ]
-\endgroup
-%
-\pstVerb{
- /pssetRGBcolor /setrgbcolor load def
- /pssetCMYKcolor /setcmykcolor load def
- /pssetGraycolor /setgray load def
-}
-\def\@newcolor#1#2{%
- \expandafter\edef\csname #1\endcsname{\noexpand\pst@color{#2}}%
- %\expandafter\edef\csname color@#1\endcsname{#2}%
- \expandafter\edef\csname\string\color@#1\endcsname{#2}% hv 1.14 2005-12-17
- \ignorespaces}
-%
-\def\pst@color#1{\def\pst@currentcolor{#1}\pstVerb{#1}\aftergroup\pst@endcolor}%
-\def\pst@endcolor{\pstVerb{\pst@currentcolor}}
-\def\pst@currentcolor{0 setgray}
-\def\altcolormode{%
-\def\pst@color##1{%
- \pstVerb{gsave ##1}\aftergroup\pst@endcolor}%
-\def\pst@endcolor{\pstVerb{\pst@grestore}}}
-\def\pssetMonochrome{%
- \pstVerb{
- /setrgbcolor { add add 0 gt {0}{1} ifelse setgray } def
- /setcmykcolor{ 4 dict begin
- /k ED /y ED /m ED /c ED
- 1 1 k sub c mul k add sub 0.29 mul
- 1 1 k sub m mul k add sub 0.587 mul add
- 1 1 k sub y mul k add sub 0.114 mul add
- end 0 gt {0}{1} ifelse setgray } def }}
-\def\pssetGrayscale{%
- \pstVerb{
- /setrgbcolor { 0.07 mul exch 0.71 mul add exch 0.21 mul add setgray } def
- /setcmykcolor{ 4 dict begin
- /k ED /y ED /m ED /c ED
- 1 1 k sub c mul k add sub 0.29 mul
- 1 1 k sub m mul k add sub 0.587 mul add
- 1 1 k sub y mul k add sub 0.114 mul add
- end setgray } def }}
-\def\psresetColor{\pstVerb{
- /setrgbcolor tx@Dict begin /pssetRGBcolor load end def
- /setcmykcolor tx@Dict begin /pssetCMYKcolor load end def }}
-
-\def\pst@grestore{
- currentpoint
- matrix currentmatrix
- currentfont
- grestore
- setfont
- setmatrix
- moveto
-}
-%\def\pst@usecolor#1{\csname color@#1\endcsname\space}% hv 1.14 2005--12-17
-\def\pst@usecolor#1{\csname\string\color@#1\endcsname\space}
-%
-\def\newgray#1#2{%
- \pst@checknum{#2}\pst@tempg
- \@newcolor{#1}{\pst@tempg setgray}}%
-\def\newrgbcolor#1#2{%
- \pst@expandafter\pst@getnumiii{#2} {} {} {} {}\@nil
- \@newcolor{#1}{\pst@tempg \pst@temph \pst@tempi setrgbcolor}}
-\def\newhsbcolor#1#2{%
- \pst@expandafter\pst@getnumiii{#2} {} {} {} {}\@nil
- \@newcolor{#1}{\pst@tempg \pst@temph \pst@tempi sethsbcolor}}
-\def\newcmykcolor#1#2{%
- \pst@expandafter\pst@getnumiv{#2} {} {} {} {} {}\@nil
- \@newcolor{#1}{\pst@tempg \pst@temph \pst@tempi \pst@tempj setcmykcolor}}
-\newgray{black}{0}
-\newgray{darkgray}{.25}
-\newgray{gray}{.5}
-\newgray{lightgray}{.75}
-\newgray{white}{1}
-\newrgbcolor{red}{1 0 0}
-\newrgbcolor{green}{0 1 0}
-\newrgbcolor{blue}{0 0 1}
-\newrgbcolor{yellow}{1 1 0}
-\newrgbcolor{cyan}{0 1 1}
-\newrgbcolor{magenta}{1 0 1}
-
-\@ifundefined{xglobal}% do we have xcolor loaded?
- {\@newcolor{randomgray}{tx@Dict begin Rand setgray end}%
- \@newcolor{randomrgb}{tx@Dict begin Rand Rand Rand setrgbcolor end}%
- \@newcolor{randomcmyk}{tx@Dict begin Rand Rand Rand Rand setcmykcolor end}%
- \@newcolor{randomhsb}{tx@Dict begin Rand Rand Rand sethsbcolor end}%
- }{%
- \definecolor[ps]{randomgray}{gray}{tx@Dict begin Rand end}%
- \definecolor[ps]{randomrgb}{rgb}{tx@Dict begin Rand Rand Rand end}%
- \definecolor[ps]{randomcmyk}{cmyk}{tx@Dict begin Rand Rand Rand Rand end}%
- \definecolor[ps]{randomhsb}{hsb}{tx@Dict begin Rand Rand Rand end}%
- }
-%
-\define@boolkey[psset]{pstricks}[Pst@]{draft}[true]{}
-\define@key[psset]{pstricks}{bgcolor}{\def\pst@bgcolor{#1}}% background for pspicture
-\psset[pstricks]{bgcolor={},draft=false}% \pst@bgcolor is \@empty
-
-\define@key[psset]{pstricks}{style}{%
- \@ifundefined{pscs@#1}%
- {\@pstrickserr{Custom style `#1' undefined}\@ehpa}%
- {\@nameuse{pscs@#1}}%
-}
-\def\newpsstyle{\@ifnextchar[\newpsstyle@ii{\newpsstyle@ii[]}}%% hv 2016-12-23
-%
-%\def\newpsstyle@i#1#2{\@namedef{pscs@#1}{%
-% \def\pst@tempA{#2}%
-% \ifx\pst@tempA\@empty\else\psset{#2}\fi}}
-%
-\def\newpsstyle@ii[#1]#2#3{%
- \@namedef{pscs@#2}{\if$#1$\psset{#3}\else\psset[#1]{#3}\fi}}%% end
-%
-\def\addto@psstyle#1#2{%
- \pst@toks=\expandafter{#1#2}%
- \edef#1{\the\pst@toks}}
-\def\addtopsstyle#1#2{%
- \def\pst@tempA{#2}%
- \ifx\pst@tempA\@empty\else
- \@ifundefined{pscs@#1}%
- {\newpsstyle{#1}{#2}}%
- {\expandafter\addto@psstyle\csname pscs@#1\endcsname{\psset{#2}}}%
- \fi\ignorespaces}
-%------------ hv 1.16 end -------------------
-%
-\def\@none{none}
-\def\pst@getcolor#1#2{%
-% \@ifundefined{color@#1}% hv 1.14 2005-12-17
- \@ifundefined{\string\color@#1}%
- {\@pstrickserr{Color `#1' not defined}\@eha}%
- {\edef#2{#1}}%
-}
-\newdimen\psunit \psunit 1cm
-\newdimen\psxunit \psxunit 1cm
-\newdimen\psyunit \psyunit 1cm
-\let\psrunit\psunit
-%
-\def\pstunit@off{\let\@psunit\ignorespaces\ignorespaces}
-%
-\def\pssetlength#1#2{%
- \let\@psunit\psunit
- \afterassignment\pstunit@off
- #1 #2\@psunit%
-}
-\def\psaddtolength#1#2{%
- \let\@psunit\psunit
- \afterassignment\pstunit@off
- \advance#1 #2\@psunit%
-}
-\def\pssetxlength#1#2{%
- \let\@psunit\psxunit
-% \ifpst@useCalc
-% \edef\@@temp{\pscalculate{#2}}%
-% \afterassignment\pstunit@off
-% #1 \@@temp\@psunit
-% \else
- \afterassignment\pstunit@off
- #1 #2\@psunit
-% \fi
-}
-\def\pssetylength#1#2{%
- \let\@psunit\psyunit
-% \ifpst@useCalc
-% \edef\@@temp{\pscalculate{#2}}%
-% \afterassignment\pstunit@off
-% #1 \@@temp\@psunit
-% \else
- \afterassignment\pstunit@off
- #1 #2\@psunit
-% \fi
-}
-\define@key[psset]{pstricks}{unit}[1cm]{%
- \pssetlength\psunit{#1}%
- \psxunit=\psunit%
- \psyunit=\psunit%
-}
-\define@key[psset]{pstricks}{runit}[1cm]{\pssetlength\psrunit{#1}}
-\define@key[psset]{pstricks}{xunit}[1cm]{\pssetxlength\psxunit{#1}}
-\define@key[psset]{pstricks}{yunit}[1cm]{\pssetylength\psyunit{#1}}
-%
-\define@key[psset]{pstricks}{PstDebug}[0]{\pst@getint{#1}\Pst@Debug}% hv 2004-06-22
-\psset[pstricks]{PstDebug=0}
-\def\psDEBUG{\@ifnextchar[\psDEBUG@i{\psDEBUG@i[PSTricks]}}%
-\def\psDEBUG@i[#1]#2{\ifnum\Pst@Debug>0 \expandafter\typeout{<#1>: #2}\fi}%
-%
-\def\pst@getlength#1#2{%
- \pssetlength\pst@dimg{#1}%
- \edef#2{\pst@number\pst@dimg}%
-}
-\def\pst@@getlength#1#2{%
- \pssetlength\pst@dimg{#1}%
- \edef#2{\number\pst@dimg sp}%
-}
-\def\pst@getcoor#1#2{\pst@@getcoor{#1}\let#2\pst@coor}
-\def\pst@coor{0 0 }
-%
-\def\pst@getcoors#1#2{%
- \def\pst@aftercoors{\addto@pscode{#1 \pst@coors }#2}%
- \def\pst@coors{}%
- \pst@@getcoors
-}
-\def\pst@@getcoors(#1){%
- \pst@@getcoor{#1}%
- \edef\pst@coors{\pst@coor\pst@coors}%
- \@ifnextchar({\pst@@getcoors}{\pst@aftercoors}%
-}
-%
-\newcount\pst@C@@rType% 0: default cartesian coordinates and angles
-%
-\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}%
- \edef\pst@coor{\pst@number\pst@dimg \pst@number\pst@dimh}%
-}
-\def\NormalCoor{%
- \def\pst@@getcoor##1{\pst@expandafter\cartesian@coor{##1},\relax,\@nil}%
- \def\pstCheckCoorType##1{\global\pst@C@@rType=0}%
- \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% set to normal read of coors, angles and lengths
-%
-\def\degrees{\@ifnextchar[{\@degrees}{\def\pst@angleunit{}}}
-\def\@degrees[#1]{%
- \pst@checknum{#1}\pst@tempg
- \edef\pst@angleunit{360 \pst@tempg div mul }%
- \pstVerb{tx@Dict begin startGlobal /pst@angleunit {\pst@angleunit} def endGlobal end}%
- \ignorespaces}
-%
-\def\radians{\def\pst@angleunit{57.2956 mul }%
- \pstVerb{tx@Dict begin startGlobal /pst@angleunit {\pst@angleunit} def endGlobal end}}%
-\def\pst@angleunit{}%
-
-%
-\def\SpecialCoor{%
- \def\pst@@getcoor##1{%
- \begingroup%
- \pst@activecoor
- \xdef\pst@tempg{##1}%
- \endgroup
- \expandafter\special@coor\pst@tempg||\@nil}%
- \def\pstCheckCoorType##1{%
- \begingroup
- \pst@activecoor
- \xdef\pst@tempg{##1}%
- \endgroup
- \psDEBUG[pstCheckCoorType]{:Checking coor \pst@tempg:}%
- \expandafter\pst@CheckCoorType\pst@tempg||\@nil%
- \psDEBUG[pstCheckCoorType]{::Coor type=\the\pst@C@@rType::}%
- }%
- \def\pssetlength##1##2{%
- \begingroup%
- \pst@activecoor%
- \xdef\pst@tempg{##2}%
- \endgroup%
- \expandafter\special@length\pst@tempg\@nil{##1}%
- \ignorespaces}%
- \def\pst@@getangle##1{%
- \begingroup%
- \pst@activecoor%
- \xdef\pst@tempg{##1}%
- \endgroup%
- \expandafter\special@angle\pst@tempg\@empty)\@nil%
- }%
- \def\psput@##1{\pst@@getcoor{##1}\leavevmode\psput@special}%
-}
-\SpecialCoor% set to special read of coors, angles and lengths
-%
-\define@key[psset]{}{precode}{\def\pst@prepscode{#1 }}
-\define@key[psset]{}{postcode}{\def\pst@postpscode{#1 }}
-\psset{precode={},postcode={}}% For use in other packages
-%
-%
-\begingroup
-\catcode`\|=13
-\catcode`\;=13
-\catcode`\!=13
-\catcode`\*=13
-\catcode`\>=13
-\catcode`\+=13
-\gdef\pst@activecoor{%
- \def|{\string|}%
- \def;{\string;}%
- \def!{\string!}%
- \def*{\string*}% algebraic expression hv 2007-11-17
- \def>{\string>}%
- \def+{\string+}% pure algebaric 2013-04-23
-}
-\endgroup
-% \pst@C@@rType = 0 cartesian (x,y)
-% = 1 polar (r;phi)
-% = 2 PS (! x y)
-% = 3 mixed ((x,y)|(x,y))
-% = 4 algebraic (*x f(x)) x in PostScript notation
-% = 5 node (A)
-% = 6 special node ([...]A)
-% = 7 node (>A)
-% = 8 algebraic (+x,f(x)) _both_ algebraic
-\def\pst@CheckCoorType#1|#2|#3\@nil{%
- \ifx#3|\relax
- \global\pst@C@@rType=3\relax
- \else
- \expandafter\pst@@CheckCoorType#1;;\@nil%
- \fi}
-%
-\def\pst@@CheckCoorType#1#2;#3;#4\@nil{%
-%\typeout{====1:#1}%
-%\typeout{====2:#2}%
-%\typeout{====3:#3}%
-%\typeout{====4:#4}%
- \ifx#1>\relax% node with special rotation for \uput
- \global\pst@C@@rType=7
- \else
- \ifcat#1a\relax% node names should start with a letter
- \global\pst@C@@rType=5
- \else
- \ifx#1[\relax% special node coor: [..]A
- \global\pst@C@@rType=6
- \else
- \ifx#1!\relax% PostScript code: x y
- \global\pst@C@@rType=2
- \else
- \ifx#1*\relax% algebraic PostScript code: x f(x)
- \global\pst@C@@rType=4
- \else
- \ifx#1+\relax% algebraic algebraic: x, f(x)
- \global\pst@C@@rType=8
- \else
- \ifx#4;\relax% polar coordinates
- \global\pst@C@@rType=1
- \else
- \global\pst@C@@rType=0
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \psDEBUG[pstCheckCoorType]{::\the\pst@C@@rType::}%
- }%
-%
-%
-\def\special@coor#1|#2|#3\@nil{%
- \ifx#3|\relax
- \mixed@coor{#1}{#2}%
- \else
- \special@@coor#1;;\@nil%
- \fi}
-%
-\def\special@@coor#1{%
- \ifcat#1a\relax% node names should start with a letter
- \def\ps@next{\node@coor#1}%
- \else
- \ifx#1[\relax% special node coor: [..]A
- \def\ps@next{\Node@coor[}%
- \else
- \ifx#1>\relax% PostScript code: x y
- \def\ps@next{\special@@@@coor}%
- \else
- \ifx#1!\relax% PostScript code: x y
- \def\ps@next{\raw@coor}%
- \else
- \ifx#1*\relax% PostScript/algebraic code: x f(x)
- \def\ps@next{\alg@coor}%
- \else
- \ifx#1+\relax% algebraic code: x,f(x)
- \def\ps@next{\algalg@coor}%
- \else%
- \def\ps@next{\special@@@coor#1}%
- \fi%
- \fi%
- \fi%
- \fi\fi%
- \fi%
- \ps@next%
-}
-\def\special@@@coor#1;#2;#3\@nil{%
- \ifx#3;\relax
- \polar@coor{#1}{#2}%
- \else
- \cartesian@coor#1,\relax,\@nil
- \fi%
-}
-\def\special@@@@coor#1#2;#3;#4\@nil{%
- \def\ps@A{A}\def\ps@B{#1}%
- \ifcat\ps@A\ps@B\relax%
- \node@coor#1#2;;\@nil%
- \else%
- \cartesian@coor#1#2,\relax,\@nil
- \fi%
-}
-\def\mixed@coor#1#2{%
- \begingroup%
-% DG/SR modification begin - Oct. 27, 1997 - Patch 6
-%\specialcoor@ii#1;;\@nil
-%\let\pst@tempa\pst@coor
-%\specialcoor@ii#2;;\@nil
- \special@@coor#1;;\@nil%
- \let\pst@tempa\pst@coor%
- \special@@coor#2;;\@nil%
-% DG/SR modification end
- \xdef\pst@tempg{\pst@tempa pop \pst@coor exch pop }%
- \endgroup%
- \let\pst@coor\pst@tempg%
-}
-%
-\def\polar@coor#1#2{%
-% \pssetlength\pst@dimg{#1}%
- \pssetlength\pst@dimb{#1}% hv 2007-10-16 g is already used in get@@angle
- \pst@@getangle{#2}%
-% \edef\pst@coor{\pst@number\pst@dimg \pst@angle \tx@PtoC}% dito
- \edef\pst@coor{\pst@number\pst@dimb \pst@angle \tx@PtoC }%
-}
-%
-\def\raw@coor{\@ifnextchar !\raw@@coor\raw@@@coor}
-\def\raw@@coor!#1;#2\@nil{% PostScript code without using \tx@ScreenCoor
- \edef\pst@coor{#1 }}
-\def\raw@@@coor#1;#2\@nil{% PostScript code
- \edef\pst@coor{ #1 \tx@ScreenCoor }}
-%
-\def\alg@coor{\@ifnextchar*{\alg@@coor}{\alg@@@@coor}}
-\def\alg@@coor*#1;#2\@nil{\expandafter\alg@@@coor#1\@nil}
-\def\alg@@@coor#1 #2\@nil{% algebraic PostScript code
-%\typeout{Nummer1: #1}%
-%\typeout{Nummer2: #2}%
- \edef\pst@coor{%
- /Func (#1) AlgParser cvx def
- /y #2 def
- y Func exch \tx@ScreenCoor }}
-%
-\def\alg@@@@coor#1;#2\@nil{\expandafter\alg@@@@@coor#1\@nil}
-\def\alg@@@@@coor#1 #2\@nil{% algebraic PostScript code
- \edef\pst@coor{%
- /x #1 def
- /Func (#2) AlgParser cvx def
- x Func \tx@ScreenCoor }}
-%
-\define@boolkey[psset]{}[Pst@]{exchange}[true]{}
-\psset{exchange=false}
-%
-\def\algalg@coor#1;#2\@nil{\expandafter\algalg@@@coor#1\@nil}
-\def\algalg@@@coor#1,#2\@nil{% algebraic algebraic code
- \edef\pst@coor{%
- /x (#1) AlgParser cvx def
- /Func (#2) AlgParser cvx def
- x Func \tx@ScreenCoor }}
-%
-\def\node@coor#1\@nil{%
- \@pstrickserr{You must load `pst-node.tex' to use node coordinates.}\@ehps
- \def\pst@coor{0 0 }%
-}
-\def\Node@coor{\node@coor}
-%
-\def\special@angle#1#2)#3\@nil{%
- \ifx !#1\relax
- \edef\pst@angle{#2\space \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{%
- \ifx !#1\relax
- \edef\pst@SpecialLength{ #2 \pst@number\psunit mul }%
- \Pst@SpecialLengthtrue
- \else
- \let\@psunit\psunit
- \afterassignment\pstunit@off
- #3 #1#2\@psunit
- \Pst@SpecialLengthfalse
- \fi
-}
-%
-\def\Cartesian{%
- \def\cartesian@coor##1,##2,##3\@nil{%
- \pssetxlength\pst@dimg{##1}%
- \pssetylength\pst@dimh{##2}%
- \edef\pst@coor{\pst@number\pst@dimg \pst@number\pst@dimh}%
- }%
- \@ifnextchar({\Cartesian@}{}%
-}
-\def\Cartesian@(#1,#2){%
- \pssetxlength\psxunit{#1}%
- \pssetylength\psyunit{#2}%
- \ignorespaces
-}
-\def\Polar{%
- \def\psput@cartesian{\psput@special}%
- \def\cartesian@coor##1,##2,##3\@nil{\polar@coor{##1}{##2}}%
-}%
-\define@key[psset]{pstricks}{origin}[]{%
- \pst@@getcoor{#1}%
- \edef\psk@origin{\pst@coor T }}
-\def\psk@origin{}
-%
-\define@boolkey[psset]{pstricks}[Pst@]{algebraic}[true]{}
-\psset{algebraic=false}
-%
-\define@boolkey[psset]{pstricks}[]{swapaxes}[true]{% \if@pst
- \@nameuse{@pst#1}%
- \if@pst\def\psk@swapaxes{-90 rotate -1 1 scale }%
- \else\def\psk@swapaxes{}%
- \fi
-}
-\psset[pstricks]{swapaxes=false}
-%
-\define@boolkey[psset]{pstricks}[]{showpoints}[true]{}
-\psset[pstricks]{showpoints=false}
-%
-\let\pst@setrepeatarrowsflag\relax
-%
-\define@key[psset]{pstricks}{border}[0pt]{\pst@getlength{#1}\psk@border \pst@setrepeatarrowsflag}
-\psset[pstricks]{border=0pt}
-\define@key[psset]{pstricks}{bordercolor}[white]{\pst@getcolor{#1}\psbordercolor}
-\psset[pstricks]{bordercolor=white}
-\define@boolkey[psset]{pstricks}[ps]{doubleline}[true]{\pst@setrepeatarrowsflag}
-\psset[pstricks]{doubleline=false}
-\define@key[psset]{pstricks}{doublesep}[1.25\pslinewidth]{\def\psdoublesep{#1}}
-\psset[pstricks]{doublesep=1.25\pslinewidth}
-\define@key[psset]{pstricks}{doublecolor}[white]{\pst@getcolor{#1}\psdoublecolor}
-\psset[pstricks]{doublecolor=white}
-%
-\define@boolkey[psset]{pstricks}[ps]{shadow}[true]{\pst@setrepeatarrowsflag}
-\psset[pstricks]{shadow=false}
-\define@key[psset]{pstricks}{shadowsize}[3pt]{\pst@getlength{#1}\psk@shadowsize}
-\psset[pstricks]{shadowsize=3pt}
-\define@key[psset]{pstricks}{shadowangle}[-45]{\pst@getangle{#1}\psk@shadowangle}
-\psset[pstricks]{shadowangle=-45}
-\define@key[psset]{pstricks}{shadowcolor}[darkgrey]{\pst@getcolor{#1}\psshadowcolor}
-\psset[pstricks]{shadowcolor=darkgray}
-%
-\def\pst@repeatarrowsflag{\z@}
-\def\pst@setrepeatarrowsflag{%
- \edef\pst@repeatarrowsflag{%
- \ifdim\psk@border\p@>\z@ 1\else\ifpsdoubleline 1\else
- \ifpsshadow 1\else \z@\fi\fi\fi}}
-%
-\def\psls@none{}
-\def\psls@solid{ \psk@linejoin\space setlinejoin \psk@linecap\space setlinecap stroke }
-\def\psls@coloreddashed{ \psls@solid grestore gsave \pst@usecolor\psdashcolor \tx@setlinejoin \psls@dashed }
-%
-\newdimen\pslinewidth
-\define@key[psset]{pstricks}{linewidth}[0.8pt]{\pssetlength\pslinewidth{#1}}
-\psset[pstricks]{linewidth=.8pt}
-\define@key[psset]{pstricks}{linecolor}[black]{\pst@getcolor{#1}\pslinecolor}
-\psset[pstricks]{linecolor=black}
-\define@key[psset]{pstricks}{kitecolor}[red]{\pst@getcolor{#1}\ps@kitecolor}
-\define@key[psset]{pstricks}{dartcolor}[blue]{\pst@getcolor{#1}\ps@dartcolor}
-\psset[pstricks]{kitecolor,dartcolor}
-%
-\newif\ifPst@coloreddashed
-\define@key[psset]{pstricks}{dashcolor}[white]{%
- \ifx\relax#1\relax\Pst@coloreddashedfalse%
- \else\Pst@coloreddashedtrue\pst@getcolor{#1}\psdashcolor
- \fi}
-\psset{dashcolor=\relax}
-%\define@key[psset]{pstricks}{linecap}[0]{\pst@getint{#1}\psk@linecap}% hv 2007-12-01
-%\psset[pstricks]{linecap=0} >>>>>>>>>>>>> siehe unten
-\define@key[psset]{pstricks}{linejoin}[0]{\pst@getint{#1}\psk@linejoin}% hv 2007-10-13
-\psset[pstricks]{linejoin=0}
-\def\tx@setlinejoin{\psk@linejoin\space setlinejoin }% hv 2007-10-13
-%
-\def\pst@missing{%
- \z@
- \@pstrickserr{Missing number or dimension. 0 substituted}\@ehpa}
-%
-%%------------------- begin patch 15 HV 2004-05-15 -------------
-\def\pst@empty{\z@}
-
-\define@key[psset]{pstricks}{dash}[5pt 3pt 0pt 0pt]{% defined in pstricks.tex
- \pst@expandafter\psset@@dash{#1}\@nil}% Error handling for empty argument.
-\define@key[psset]{pstricks}{maxdashes}[11]{\def\psk@maxdashes{#1}}
-\psset[pstricks]{maxdashes=11}
-%
-\def\psset@@dash#1\@nil{%
- \def\psk@dash{}%
- \pst@cntm0
- \def\next##1 ##2\relax{%
- \expandafter\ifnum\psk@maxdashes>\pst@cntm\relax % 04-08-07
- \edef\@tempa{##1}%
- \ifx\@tempa\@empty\else% gobble leading spaces
- \pssetlength\pst@dimc{##1}%
- \advance\pst@cntm by 1
- \edef\psk@dash{\psk@dash\space\pst@number\pst@dimc}%
- \fi%
- \edef\@tempa{##2}%
- \ifx\@tempa\@empty\else% detect end
- \ifx\@tempa\space\else% gobble trailing spaces
- \next##2\relax%
- \fi\fi%
- \else% 04-08-07
- \@pstrickserr{Number of dashes > \psk@maxdashes. Increasing
- 'maxdashes' might work.}\@ehpa% 04-08-07
- \fi% 04-08-07
- }%
- \expandafter\next#1 \relax}
-\psset[pstricks]{dash=5pt 3pt 0pt 0pt}% black white black white
-%%------------------- end patch 15 HV 2004-05-15 -------------
-\define@boolkey[psset]{pstricks}[ps]{dashadjust}[true]{}
-\psset[pstricks]{dashadjust}
-\def\tx@DashLine{DashLine }
-%
-\def\psls@dashed{
- \ifPst@coloreddashed \psls@solid grestore gsave \pst@usecolor\psdashcolor \tx@setlinejoin \fi
- \psk@linecap\space setlinecap
- \ifpsdashadjust
- [ \psk@dash ] \pst@linetype\space \tx@DashLine
- \else
- [ \psk@dash ] 0 setdash stroke
- \fi}
-%% End patch TN; Date (YY-MM-DD): 04-07-17; 2nd part
-%
-\define@key[psset]{pstricks}{dotsep}[3pt]{\pst@getlength{#1}\psk@dotsep}
-\psset[pstricks]{dotsep=3pt}
-\def\tx@DotLine{DotLine }
-\def\psls@dotted{
- \ifpsdashadjust
- \psk@dotsep \pst@linetype\space \tx@DotLine
- \else
- [ 0 \psk@dotsep CLW add ] 0 setdash 1 setlinecap stroke
- \fi
-}
-%
-\define@key[psset]{pstricks}{linestyle}[solid]{%
- \@ifundefined{psls@#1}%
- {\@pstrickserr{Line style `#1' not defined}\@eha}%
- {\def\pslinestyle{#1}}}
-\psset[pstricks]{linestyle=solid}
-%
-\define@key[psset]{pstricks}{linecap}[0]{%
- \def\psk@linecap{0}%
- \ifnum#1>-1
- \ifnum#1<3
- \pst@getint{#1}\psk@linecap%
- \fi\fi}
-\psset{linecap=0}
-%------------------------- Transparency modes ----------------------------
-\pst@def{setTransparency}< \psk@opacityalpha .setopacityalpha >
-\pst@def{setStrokeTransparency}< \psk@strokeopacityalpha .setstrokeopacityalpha >
-\pst@def{setBlendmode}<
- \ifcase\psk@blendmode
- /Normal \or
- /Compatible \or
- /Screen \or
- /Multiply \or
- /HardLight \or
- /Darken \or
- /Lighten \or
- /Difference\or
- /ColorDodge\or
- /ColorBurn\or
- /SoftLight\or
- /Hue\or
- /Saturation\or
- /Luminosity\or
- /Overlay\or
- /Exclusion\or
- /Color
- \else
- /Normal
- \fi
- .setblendmode \psk@shapealpha .setopacityalpha >
-%
-%--------------------------------- hv 2007-09-09 begin ---------------------
-% transparency needs a run through latex -> dvips -> ps2pdf14(!)
-%
-\def\e@fill@inverse{oefill}
-\define@key[psset]{pstricks}{fillcolor}[white]{%
- \ifx\psk@fillstylename\e@fill@inverse
- \pst@getcolor{#1}\psk@oefillcolor
- \pst@getcolor{white}\psfillcolor
- \else \pst@getcolor{white}\psk@oefillcolor
- \pst@getcolor{#1}\psfillcolor
- \fi}
-
-\psset[pstricks]{fillcolor=white}
-\define@key[psset]{pstricks}{strokeopacity}[1]{\pst@checknum{#1}\psk@strokeopacityalpha }% for lines
-\psset[pstricks]{strokeopacity=1}
-\define@key[psset]{pstricks}{opacity}[1]{\pst@checknum{#1}\psk@opacityalpha }% for filled areas
-\psset[pstricks]{opacity=1}
-\define@key[psset]{pstricks}{shapealpha}[0.6]{\pst@checknum{#1}\psk@shapealpha }
-\psset[pstricks]{shapealpha=0.6}
-\define@key[psset]{pstricks}{blendmode}[0]{\pst@getint{#1}\psk@blendmode }% must be one of
-% /Normal 0
-% /Compatible 1
-% /Screen 2
-% /Multiply 3
-% /HardLight 4
-\psset[pstricks]{blendmode=0}
-\define@key[psset]{pstricks}{fsAngle}[137.50775]{\pst@getangle{#1}\pst@fsAngle }
-\define@key[psset]{pstricks}{fsOrigin}[(0,0)]{%
- \pst@@getcoor{#1}\edef\pst@fsOrigin{\pst@coor T }}
-\psset[pstricks]{fsOrigin={0,0},fsAngle=137.50775}
-%
-\def\tx@LineFill{LineFill }
-\def\tx@DotFill{DotFill }
-\def\tx@PenroseFill{PenroseFill }
-\def\tx@PenroseFillA{PenroseFillA }
-\def\tx@TruchetFill{TruchetFill }
-%
-\def\psfs@none{}
-\def\psfs@solid{\pst@fill{\pst@usecolor\psfillcolor \tx@setTransparency fill }}
-\def\psfs@eofill{\pst@fill{\pst@usecolor\psfillcolor \tx@setTransparency eofill}}
-\def\psfs@oefill{\pst@fill{\pst@usecolor\psk@oefillcolor \tx@setTransparency fill }\psfs@eofill }
-\def\psfs@shape{\pst@fill{\pst@usecolor\psfillcolor \tx@setBlendmode fill }}
-\def\psfs@spiral{\pst@fill{\pst@fsOrigin \pst@usecolor\psfillcolor clip newpath
- 0 .1 500 { dup dup sqrt 4 div 0 360 arc fill \pst@fsAngle rotate } for }}
-%
-\define@key[psset]{pstricks}{hatchwidth}[0.8pt]{\pst@getlength{#1}\psk@hatchwidth}
-\psset[pstricks]{hatchwidth=.8pt}
-\define@key[psset]{pstricks}{hatchsep}[4pt]{\pst@getlength{#1}\psk@hatchsep}
-\psset[pstricks]{hatchsep=4pt}
-\define@key[psset]{pstricks}{hatchcolor}[black]{\pst@getcolor{#1}\pshatchcolor}
-\psset[pstricks]{hatchcolor=black}
-\define@key[psset]{pstricks}{hatchangle}[45]{\pst@getangle{#1}\psk@hatchangle}
-\psset[pstricks]{hatchangle=45}
-\define@key[psset]{pstricks}{hatchsepinc}[0pt]{\pst@getlength{#1}\psk@hatchsepinc}
-\define@key[psset]{pstricks}{hatchwidthinc}[0pt]{\pst@getlength{#1}\psk@hatchwidthinc}
-\psset[pstricks]{hatchwidthinc=0pt,hatchsepinc=0pt}
-%
-\def\pst@linefill#1{
- /clipType { \ifx\relax#1\relax clip \else#1\fi} def
- \psk@hatchangle rotate
- \psk@hatchwidth SLW
- \pst@usecolor\pshatchcolor
- \psk@hatchsep
- \psk@hatchsepinc
- \psk@hatchwidthinc
- \tx@LineFill }
-%
-\def\psfs@vlines{\pst@fill{\pst@linefill{}}}
-\def\psfs@eovlines{\pst@fill{\pst@linefill{eoclip}}}
-\@namedef{psfs@vlines*}{\psfs@solid \psfs@vlines}
-\@namedef{psfs@eovlines*}{\psfs@eofill \psfs@eovlines}
-\def\psfs@hlines{\pst@fill{90 rotate \pst@linefill{}}}
-\def\psfs@eohlines{\pst@fill{90 rotate \pst@linefill{eoclip}}}
-\@namedef{psfs@hlines*}{\psfs@solid \psfs@hlines}
-\@namedef{psfs@eohlines*}{\psfs@eofill \psfs@eohlines}
-\def\psfs@crosshatch{\psfs@vlines \psfs@hlines}
-\@namedef{psfs@crosshatch*}{\psfs@solid \psfs@vlines \psfs@hlines}
-\@namedef{psfs@eocrosshatch*}{\psfs@eofill \psfs@eovlines \psfs@eohlines}
-%
-\define@key[psset]{pstricks}{psscale}[1]{%
- \def\psk@@psscale{#1}% for use with \psscalebox
- \pst@checknum{#1}\psk@psscale}
-\psset[pstricks]{psscale=1}
-%
-\def\pst@dotFill[#1]{%
- /clipType { \ifx\relax#1\relax clip \else #1 \fi } def
- gsave
- \pst@number\pslinewidth SLW
- \pst@usecolor\pshatchcolor
-% /DotLineColor { \pst@usecolor\pslinecolor } def
- \psk@hatchsep
- \psk@hatchwidth
- \tx@DotFill }
-
-\def\psfs@dots{\pst@fill{ /SolidDot false def \pst@dotFill[] }}
-\def\psfs@eodots{\pst@fill{ /SolidDot false def \pst@dotFill[eoclip] }}
-\@namedef{psfs@dots*}{\pst@fill{ /SolidDot true def \pst@dotFill[] }}
-\@namedef{psfs@eodots*}{\pst@fill{ /SolidDot true def \pst@dotFill[eoclip] }}
-%
-\def\pst@penroseFill{%
-% gsave % restore in PenroseFill
- \pst@number\pslinewidth SLW
- \pst@usecolor\pshatchcolor
- \psk@psscale
- \tx@PenroseFill }
-\def\psfs@penrose{\pst@fill\pst@penroseFill}
-\@namedef{psfs@penrose*}{\psfs@solid \psfs@penrose}
-%
-\def\pst@penroseFillA{%
-% gsave % restore in PenroseFillA
- \pst@number\pslinewidth SLW
-% \pst@usecolor\pshatchcolor
-% on stack: scaling factor, border color, kite color, dart color
-% dup dup scale
-% /border_colour ED %
-% /kite_colour ED %
-% /dart_colour
- { \pst@usecolor\ps@dartcolor }
- { \pst@usecolor\ps@kitecolor }
- { \pst@usecolor\pshatchcolor }
- \psk@psscale
- \tx@PenroseFillA }
-\def\psfs@penroseA{\pst@fill\pst@penroseFillA}
-\@namedef{psfs@penroseA*}{\psfs@solid \psfs@penroseA}
-%
-\def\pst@truchetFill{%
- gsave % restore in PenroseFill
- \pst@number\pslinewidth SLW
- \pst@usecolor\pshatchcolor
- \psk@psscale
- \tx@TruchetFill }
-\def\psfs@truchet{ \pst@fill\pst@truchetFill }
-\@namedef{psfs@truchet*}{\psfs@solid \psfs@truchet}
-%
-\define@key[psset]{pstricks}{fillstyle}[none]{%
- \def\psk@fillstylename{#1}% needed for inverse eofill
- \edef\pst@tempg{#1}\def\pst@temph{none}%
- \ifx\pst@tempg\pst@temph
- \let\psk@fillstyle\relax
- \else
- \@ifundefined{psfs@#1}%
- {\@pstrickserr{Undefined fill style: `#1'}\@eha}%
- {\edef\psk@fillstyle{\expandafter\noexpand\csname psfs@#1\endcsname}}%
- \fi%
-}
-\define@key[psset]{pstricks}{addfillstyle}[]{%
- \@ifundefined{psfs@#1}%
- {\@pstrickserr{Undefined fill style: `#1'}\@eha}%
- {\edef\psk@fillstyle{%
- \expandafter\noexpand\psk@fillstyle
- \expandafter\noexpand\csname psfs@#1\endcsname}%
- }}
-\psset[pstricks]{fillstyle=none}
-%
-%--------------------------- continous linewidth -------------------
-\newdimen\psk@startLW
-\newdimen\psk@endLW
-\define@key[psset]{pstricks}{startLW}[\pslinewidth]{\pssetlength{\psk@startLW}{#1}}%
-\define@key[psset]{pstricks}{endLW}[\pslinewidth]{\pssetlength{\psk@endLW}{#1}}%
-\define@key[psset]{pstricks}{startWL}[380]{\pst@getint{#1}\psk@startWL}%
-\define@key[psset]{pstricks}{endWL}[780]{\pst@getint{#1}\psk@endWL}%
-\define@boolkey[psset]{pstricks}[Pst@]{variableLW}[true]{}
-\define@boolkey[psset]{pstricks}[Pst@]{variableColor}[true]{}
-\define@key[psset]{pstricks}{setflat}[0.1]{\pst@checknum{#1}\psk@setflat}%
-\psset[pstricks]{startLW=\pslinewidth,endLW=\pslinewidth,variableColor=false,
- variableLW=false,startWL=380,endWL=780,setflat=0.1}
-%
-\def\pst@flattenpath{
- /Coors [] def % the array of all points
- /lambda \psk@startWL\space def
- %
- /add2Values { Coors aload length 2 add array astore /Coors exch def } def
- /add6Values { Coors aload length 6 add array astore /Coors exch def } def
-%
- \psk@setflat\space setflat % the value for the line snippets
- flattenpath % flatten the existing path into line segments
-%
- { add2Values } % what to do with moveto
- { add2Values } % what to do with lineto
- { add6Values } % what to do with curveto (not needed here)
- { } % what to do with closepath
- pathforall % do it for the existing path
-%
- \pst@number\psk@startLW setlinewidth
- \tx@setlinejoin
- \psk@linecap\space setlinecap
- Coors aload length 2 sub 2 div cvi /N0 exch def % set number of points
- /NN 0 def
- /N N0 def
- { N 3 gt { N 3 sub /N ED }{ N 1 sub /N ED } ifelse
- NN 1 add /NN ED
- N 0 eq { exit } if
- } loop
- /dLW \pst@number\psk@endLW \pst@number\psk@startLW sub NN div def % the step for the linewidth
- \ifPst@variableColor
- /dColor \psk@endWL\space \psk@startWL\space sub NN div def
- lambda dColor add dup /lambda ED
- tx@addDict begin wavelengthToRGB Red Green Blue end setrgbcolor
- \else
- \pst@usecolor\pslinecolor
- \fi
- moveto % move to the first one
- /N N0 def
- {
- N 3 gt {
-% CP 6 2 roll
- \psk@curvature\space /c ED /b ED /a ED
- /ArrowA {} def
- /ArrowB {} def
- BOC NC EOC % curveto
- N 3 sub /N ED }{ lineto N 1 sub /N ED } ifelse
- currentlinewidth dLW add setlinewidth % increase line width
- \ifPst@variableColor
- lambda dColor add dup /lambda ED
- tx@addDict begin wavelengthToRGB Red Green Blue end setrgbcolor
- \else
- \pst@usecolor\pslinecolor
- \fi
- CP /Y ED /X ED % put coors of current point on the stack
- stroke % draw the line segment
- N 0 eq { exit }{ X Y moveto } ifelse
- } loop
-% N { % repeat for the other N coords
-% lineto % line to next point
-% currentlinewidth dLW add setlinewidth % increase line width
-% lambda dColor add dup /lambda ED
-% tx@addDict begin wavelengthToRGB Red Green Blue end setrgbcolor
-% currentpoint % put coors of current point on the stack
-% 0.4 .setopacityalpha
-% stroke % draw the line segment
-% moveto
-% } repeat
-}
-
-%
-%--------------------------- A R R O W S ---------------------------
-%
-\def\psk@arrowA{}
-\def\psk@arrowB{}
-\def\pst@arrowtable{,-,<->,<<->>,>-<,>>-<<,(-),[-],)-(,]-[,|>-<|,<D-D>,D>-<D,<D<D-D>D>} % hv --1.16
-\edef\pst@arrowtable{\pst@arrowtable,|<*->|*,|<->|}
-\begingroup
- \catcode`\<=13
- \catcode`\>=13
- \catcode`\|=13
- \gdef\pst@activearrows{\def<{\string<}\def>{\string>}\def|{\string|}}
-\endgroup
-\def\tx@BeginArrow{BeginArrow }
-\def\tx@EndArrow{EndArrow }
-%
-\def\tx@Arrow{ \tx@setStrokeTransparency Arrow }% hv 2008-01-13
-\def\tx@ArrowD{ \tx@setStrokeTransparency ArrowD }% hv 2008-01-13
-%
-\@namedef{psas@<|}{
- \psk@tbarsize\space \tx@Tbar
- 0 CLW 2 div T
- newpath
- true
- \psk@arrowinset
- \psk@arrowlength
- \psk@arrowsize
- \tx@Arrow
-}
-% ]-[ arrow
-\def\tx@BracketOut{BracketOut }
-\@namedef{psas@[}{%
- /BracketOut {%
- CLW mul add dup CLW sub 2 div
-%/x ED mul CLW add
- /x ED mul neg
- /y ED
- /z CLW 2 div def
- x neg y moveto
- x neg CLW 2 div L x CLW 2 div L x y L stroke 0 CLW moveto } def
- \psk@bracketlength\space \psk@tbarsize\space \tx@BracketOut
-}
-% )-( arrow
-\def\tx@RoundBracketOut{ \tx@setStrokeTransparency RoundBracketOut }% hv 2008-01-13
-\@namedef{psas@(}{%
- /RoundBracketOut {%
- CLW mul add dup 2 div
-%/x ED mul
- /x ED mul neg
- /y ED
- /mtrx CM def
- 0 CLW
- 2 div T x y mul 0 ne { x y scale } if
- 1 1 moveto
- .85 .5 .35 0 0 0 curveto
- -.35 0 -.85 .5 -1 1 curveto
- mtrx setmatrix stroke 0 CLW moveto } def
- \psk@rbracketlength\space \psk@tbarsize\space \tx@RoundBracketOut
-}
-% end of new definitions of the missing arrows ---- hv 1.12
-\@namedef{psas@>}{ false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow }
-\@namedef{psas@>>}{%
- false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
- 0 h T gsave newpath
- false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
- CP grestore CP newpath moveto 2 copy
- CLW \pst@arrowscale\space div SLW % set the original line width
- L stroke moveto
-}
-\@namedef{psas@<}{true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow}
-\@namedef{psas@<<}{
- true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
- CP newpath moveto 0 a neg
- gsave
- CLW \pst@arrowscale\space div SLW % set the original line width
- L stroke
- grestore
- 0 h neg T
- false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
-}
-\@namedef{psas@D>}{ false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowD }% hv 20071211
-\@namedef{psas@D>D>}{ % hv 20071211
- false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowD
- 0 h Inset sub T gsave newpath
- false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowD
- CP grestore moveto
-}
-\@namedef{psas@<D}{ % hv 20071211
- true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowD
-}
-\@namedef{psas@<D<D}{ % hv 20071211
- true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowD
- CP newpath moveto 0 a neg L stroke 0 h neg T
- true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@ArrowD
-}
-\define@key[psset]{pstricks}{tbarsize}[2pt 5]{%
- \pst@expandafter\pst@getdimnum{#1} 0 {} {}\@nil
- \edef\psk@tbarsize{\pst@number\pst@dimg \pst@tempg}}
-\psset[pstricks]{tbarsize=2pt 5}
-%
-\def\tx@Tbar{Tbar }
-\@namedef{psas@|}{\psk@tbarsize \tx@Tbar}
-\@namedef{psas@|*}{0 CLW -2 div T \psk@tbarsize \tx@Tbar}
-\@namedef{psas@>|}{%
- \psk@tbarsize \tx@Tbar
- 0 CLW 2 div T
- newpath
- false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
-}
-\@namedef{psas@>|*}{%
- 0 CLW -2 div T
- \psk@tbarsize \tx@Tbar
- 0 CLW 2 div T
- newpath
- false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
-}
-%
-\define@key[psset]{pstricks}{bracketlength}[0.15]{\pst@checknum{#1}\psk@bracketlength}
-\psset[pstricks]{bracketlength=.15}
-\def\tx@Bracket{Bracket }
-\@namedef{psas@]}{\psk@bracketlength \psk@tbarsize \tx@Bracket}
-\define@key[psset]{pstricks}{rbracketlength}[0.15]{\pst@checknum{#1}\psk@rbracketlength}
-\psset[pstricks]{rbracketlength=.15}
-\def\tx@RoundBracket{RoundBracket }
-\@namedef{psas@)}{\psk@rbracketlength \psk@tbarsize \tx@RoundBracket}
-%
-\def\psas@c{1 \psas@@c}
-\def\psas@cc{0 CLW 2 div T 1 \psas@@c}
-\def\psas@C{2 \psas@@c}
-\def\psas@@c{%
- setlinecap
- 0 0 moveto
- 0 0.1 L % changed value from 0.5 to 0.1
- stroke
- 0 0 moveto }
-%
-\def\psas@{}
-%
-\define@key[psset]{pstricks}{arrowLW}{\pst@getlength{#1}\psk@arrowLW}
-\psset[pstricks]{arrowLW=0}
-% arrowLW as LineWidth for the circled line ends
-%
-\def\psas@o{\psk@arrowLW\space dup 0 eq { pop }{ SLW } ifelse
- {\pst@usecolor\psfillcolor true} false \psk@dotsize \tx@EndDot }
-\def\psas@oo{\psk@arrowLW\space dup 0 eq { pop }{ SLW } ifelse
- {\pst@usecolor\psfillcolor true} true \psk@dotsize \tx@EndDot }
-\@namedef{psas@*}{\psk@arrowLW\space dup 0 eq { pop }{ SLW } ifelse
- {false} false \psk@dotsize \tx@EndDot }
-\@namedef{psas@**}{\psk@arrowLW\space dup 0 eq { pop }{ SLW } ifelse
- {false} true \psk@dotsize \tx@EndDot }
-%
-\define@key[psset]{pstricks}{arrows}[-]{%
- \begingroup
- \pst@activearrows
- \xdef\pst@tempg{#1}%
- \endgroup
- \expandafter\psset@@arrows\pst@tempg\@empty-\@empty\@nil
- \if@pst\else\@pstrickserr{Bad arrows specification: #1}\@ehpa\fi}
-\def\psset@@arrows#1-#2\@empty#3\@nil{%
- \@psttrue
- \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}%
- \@ifundefined{psas@#2}{\@pstfalse\def\psk@arrowB{}}{\def\psk@arrowB{#2}}}
-\psset[pstricks]{arrows=-}
-%
-\define@key[psset]{pstricks}{arrowscale}[1]{% hv --1.12
- \pst@getscale{#1}\psk@arrowscale
- \pst@@arrowscale@i#1 \@nil}% hv --1.12
-\def\pst@@arrowscale@i#1 #2\@nil{\edef\pst@arrowscale{#1}}% hv --1.12
-\psset[pstricks]{arrowscale=1}
-%
-\define@key[psset]{pstricks}{arrowsize}[1.5pt 2]{%
- \pst@expandafter\pst@getdimnum{#1} 0 {} {}\@nil
- \edef\psk@arrowsize{\pst@number\pst@dimg \pst@tempg}%
-}
-\psset[pstricks]{arrowsize=1.5pt 2}
-\define@key[psset]{pstricks}{arrowlength}[1.4]{\pst@checknum{#1}\psk@arrowlength}
-\psset[pstricks]{arrowlength=1.4}
-\define@key[psset]{pstricks}{arrowinset}[0.4]{\pst@checknum{#1}\psk@arrowinset}%
-\psset[pstricks]{arrowinset=0.4}
-%
-\def\tx@SD{ \tx@setTransparency SD }
-\def\tx@EndDot{EndDot }
-%
-\def\pst@par{}
-\def\addto@par#1{%
- \ifx\pst@par\@empty
- \def\pst@par{#1}%
- \else
- \expandafter\def\expandafter\pst@par\expandafter{\pst@par,#1}%
- \fi%
-}
-\def\addbefore@par#1{%
- \ifx\pst@par\@empty
- \def\pst@par{#1}%
- \else
- \toks@{#1}%
- \pst@toks\expandafter{\pst@par}%
- \edef\pst@par{\the\toks@,\the\pst@toks}%
- \fi%
-}
-\def\use@par{%
- \ifx\pst@par\@empty\else
- \expandafter\@psset\pst@par,\@nil
- \def\pst@par{}%
- \fi
-}
-\def\use@keep@par{% same as \use@par, but keeps the values
- \ifx\pst@par\@empty\else
- \expandafter\@psset\pst@par,\@nil
-% \def\pst@par{}%
- \fi}
-%
-\def\pst@object#1{%
- \def\pst@par{}%
- \pst@ifstar{%
- \@ifnextchar[{\pst@@object{#1}}{\@nameuse{#1@i}}}%
-}
-\def\pst@@object#1[#2]{%
- \def\pst@par{#2}%
- \@ifnextchar+{\@nameuse{#1@i}}{\@nameuse{#1@i}}%
-}
-\def\newpsobject#1#2#3{%
-\@ifundefined{#2@i}%
-{\@pstrickserr{Graphics object `#2' not defined}\@eha}{%
-\@namedef{#1}{\pst@object{#1}}%
-\@namedef{#1@i}{\addbefore@par{#3}\@nameuse{#2@i}}}%
-\ignorespaces}
-%
-\def\pst@getarrows#1{\@ifnextchar({#1}{\pst@@getarrows{#1}}}
-% ------------------------- hv 1.10 beg ------------------------
-%\def\pst@@getarrows#1#2{\addto@par{arrows=#2}#1}
-\def\pst@@getarrows#1#2{%
- \def\pst@tempa{#2}% prevent empty arrow arguments, to allow \psline{}(...)(...)
- \ifx\pst@tempa\@empty
- \addto@par{arrows=-}%
- \else
- \addto@par{arrows=#2}%
- \fi
- #1%
-}
-% ------------------------- hv 1.10 end ------------------------
-%
-\def\begin@ClosedObj{%
- \leavevmode
- \pst@killglue
- \begingroup
- \use@par
- \solid@star
- \ifpsdoubleline\pst@setdoublesep\fi
- \pst@addarrowdef% DG addition
- \init@pscode}
-%
-\def\end@ClosedObj{%
- \ifpsshadow \pst@closedshadow \fi
- \ifdim\psk@border\p@>\z@ \pst@addborder \fi
- \psk@fillstyle
- \pst@stroke
- \ifpsdoubleline \pst@doublestroke \fi
- \ifshowpoints
-% DG modification begin - Mar. 4, 1995
-%\addto@pscode{Points aload length 2 div cvi /N ED \psdots@iii}%
- \pst@OpenShowPoints
-% DG modification end
- \fi
- \use@pscode
- \endgroup
- \ignorespaces%
-}
-\def\begin@OpenObj{%
- \begin@ClosedObj%
- \let\pst@linetype\pst@arrowtype%
- \pst@addarrowdef%
-}
-\def\begin@AltOpenObj{%
- \begin@ClosedObj
- \def\pst@repeatarrowsflag{\z@}%
- \def\pst@linetype{0}}
-%
-\def\end@OpenObj{%
- \ifpsshadow \pst@openshadow \fi
- \ifdim\psk@border\p@>\z@ \pst@addborder \fi
- \psk@fillstyle
- \pst@stroke
- \ifpsdoubleline \pst@doublestroke \fi
- \ifnum\pst@repeatarrowsflag>\z@ \pst@repeatarrows \fi
- \ifshowpoints \pst@OpenShowPoints \fi
- \use@pscode
- \endgroup
- \ignorespaces}
-%
-\def\begin@SpecialObj{%
- \leavevmode
- \pst@killglue
- \begingroup
- \use@par
- \init@pscode}
-%
-\def\end@SpecialObj{%
- \use@pscode
- \endgroup
- \ignorespaces}
-%
-\def\pst@code{}%
-\def\init@pscode{%
- \addto@pscode{%
- \pst@number\pslinewidth SLW
- \pst@usecolor\pslinecolor}%
-}
-\def\addto@pscode#1{\xdef\pst@code{\pst@code#1\space}}
-\def\use@pscode{%
- \pstverb{
- \pst@dict
- \tx@STP
- \pst@newpath
- \psk@origin
- \psk@swapaxes
- \pst@code
- end
- }%
- \gdef\pst@code{}%
-}
-\def\use@psCode{%
- \pstVerb{
- \pst@dict
- \tx@STP
- \pst@newpath
- \psk@origin
- \psk@swapaxes
- \pst@code
- end
- }%
- \gdef\pst@code{}%
-}
-\def\pst@newpath{newpath }
-%
-\def\pst@@killglue{\unskip\ifdim\lastskip>\z@\expandafter\pst@@killglue\fi}
-\def\KillGlue{\let\pst@killglue\pst@@killglue}
-\def\DontKillGlue{\let\pst@killglue\relax}
-\DontKillGlue
-%
-\def\solid@star{%
- \if@star
- \pslinewidth=\z@
- \psdoublelinefalse
- \def\pslinestyle{none}%
- \def\psk@fillstyle{\psfs@solid}%
- \let\psfillcolor\pslinecolor
- \fi}
-%
-\def\pst@setdoublesep{%
-\pst@getlength\psdoublesep\psdoublesep
-\pslinewidth=2\pslinewidth
-\advance\pslinewidth\psdoublesep\p@
-\let\pst@setdoublesep\relax}
-\def\tx@Shadow{Shadow }
-\def\pst@closedshadow{%
- \addto@pscode{%
- gsave
- \psk@shadowsize \psk@shadowangle \tx@PtoC
- \tx@Shadow
- \pst@usecolor\psshadowcolor
- gsave fill grestore
- stroke
- grestore
- gsave
- \pst@usecolor\psfillcolor
- gsave fill grestore
- stroke
- grestore}}
-%
-\def\pst@openshadow{%
- \addto@pscode{%
- gsave
- \psk@shadowsize \psk@shadowangle \tx@PtoC
- \tx@Shadow
- \pst@usecolor\psshadowcolor
- \ifx\psk@fillstyle\relax\else
- gsave fill grestore
- \fi
- stroke}%
- \pst@repeatarrows%
- \addto@pscode{grestore}%
- \ifx\psk@fillstyle\relax\else
- \addto@pscode{%
- gsave
- \pst@usecolor\psfillcolor
- gsave fill grestore
- stroke
- grestore}%
- \fi}
-%
-\def\pst@addborder{%
- \addto@pscode{%
- gsave
- \psk@border 2 mul
- CLW add SLW
- \pst@usecolor\psbordercolor
- stroke
- grestore}}
-%
-\def\pst@stroke{%
- \ifx\pslinestyle\@none\else
- \addto@pscode{%
- gsave
- \pst@number\pslinewidth SLW
- \pst@usecolor\pslinecolor
- \tx@setStrokeTransparency % hv 2008-01-13
- \@nameuse{psls@\pslinestyle}
- grestore}%
- \fi}
-%
-\def\pst@fill#1{\addto@pscode{gsave #1 grestore}}%
-%
-\def\pst@doublestroke{%
- \addto@pscode{%
- gsave
- \psdoublesep SLW
- \pst@usecolor\psdoublecolor
- \tx@setStrokeTransparency % hv 2016-09-23
- stroke
- grestore
-}}
-%
-\def\pst@arrowtype{%
- \ifx\psk@arrowB\@empty 0 \else -2 \fi
- \ifx\psk@arrowA\@empty 0 \else -1 \fi
- add }
-%
-\def\pst@addarrowdef{%
- \addto@pscode{%
- /ArrowA {
- \ifx\psk@arrowA\@empty
- \pst@oplineto
- \else
- \pst@arrowdef{A}
- moveto
- \fi
- } def
- /ArrowB { \ifx\psk@arrowB\@empty \else \pst@arrowdef{B} \fi } def
-}}
-%
-\def\pst@arrowdef#1{%
- \ifnum\pst@repeatarrowsflag>\z@
- /Arrow#1c [ 6 2 roll ] cvx def Arrow#1c
- \fi
- \tx@BeginArrow
- \psk@arrowscale
- \@nameuse{psas@\@nameuse{psk@arrow#1}}
- \tx@EndArrow
-}
-%
-\def\pst@repeatarrows{%
- \addto@pscode{%
- gsave
- \ifx\psk@arrowA\@empty\else ArrowAc ArrowA pop pop \fi
- \ifx\psk@arrowB\@empty\else ArrowBc ArrowB pop pop pop pop \fi
- grestore
-}}
-%
-\def\pst@OpenShowPoints{%
- \addto@pscode{%
- gsave
- \psk@dotsize
- \@nameuse{psds@\psk@dotstyle}
- newpath
- Points aload length 2 div 2 sub cvi /N ED
- N 0 ge
- { \ifx\psk@arrowA\@empty Dot \else pop pop \fi
- N { Dot } repeat
- \ifx\psk@arrowB\@empty Dot \else pop pop \fi }
- { N 2 mul { pop } repeat } ifelse
- grestore
-}}
-%
-\newif\ifPst@custom\Pst@customfalse
-\define@boolkey[psset]{pstricks}[Pst@]{noCurrentPoint}[true]{}
-\psset[pstricks]{noCurrentPoint=false}
-%
-%
-\def\pscustom{\pst@object{pscustom}}
-\long\def\pscustom@i#1{%
- \begin@SpecialObj%
- \solid@star%
- \let\pst@ifcustom\iftrue%
- \Pst@customtrue%
- \let\begin@ClosedObj\begin@CustomObj%
- \let\end@ClosedObj\endgroup%
- \def\begin@OpenObj{\begin@CustomObj\pst@addarrowdef}%
- \let\end@OpenObj\endgroup%
- \let\begin@AltOpenObj\begin@CustomObj%
- \def\begin@SpecialObj{%
- \begingroup%
- \pst@misplaced{special graphics object}%
- \def\addto@pscode####1{}%
- \let\end@SpecialObj\endgroup}%
- \def\@multips(##1)(##2)##3##4{\pst@misplaced\multips}%
- \def\psclip##1{\pst@misplaced\psclip}%
- \def\pst@repeatarrowsflag{\z@}%
- \let\pst@setrepeatarrowsflag\relax%
- \showpointsfalse%
- \def\pst@linetype{\pslinetype}%
- \def\psk@liftpen{\z@}%
-% \psset{liftpen=0}%
- \def\pst@cp{/currentpoint load stopped pop }%
- \def\pst@oplineto{/lineto load stopped { moveto } if }%
- \def\pst@optcp##1##2{\ifnum##1=\z@\def##2{/currentpoint load stopped { 0 0 } if }\fi}%
- \let\caddto@pscode\addto@pscode%
- \def\cuse@par##1{{\use@par##1}}%
- \the\pst@customdefs%
- \setbox\pst@hbox=\hbox{#1}%
- \psk@fillstyle
- \pst@stroke
- \end@SpecialObj
- \let\pst@ifcustom\iffalse
- \ignorespaces
-}
-%
-\let\pst@ifcustom\iffalse
-%
-\def\begin@CustomObj{%
- \begingroup%
- \use@par%
- \addto@pscode{
- \pst@number\pslinewidth SLW
- \pst@usecolor\pslinecolor
- }%
-}
-\def\pst@oplineto{moveto }
-\def\pst@cp{}
-\def\pst@optcp#1#2{}
-\define@key[psset]{pstricks}{liftpen}[0]{%
- \ifPst@custom%
- \ifcase#1\relax%
- \def\psk@liftpen{\z@}%
- \def\pst@cp{/currentpoint load stopped pop }%
- \def\pst@oplineto{/lineto load stopped { moveto } if }%
- \or%
- \def\psk@liftpen{1}%
- \def\pst@cp{}%
- \def\pst@oplineto{/lineto load stopped { moveto } if }%
- \or%
- \def\psk@liftpen{2}%
- \def\pst@cp{}%
- \def\pst@oplineto{moveto }%
- \fi\fi%
-}
-\psset[pstricks]{liftpen=0}
-\def\psk@liftpen{-1}
-%
-\define@key[psset]{pstricks}{linetype}[2]{%
- \pst@getint{#1}\pslinetype
- \ifnum\pst@cntg<-3
- \@pstrickserr{linetype must be greater than -3}\@ehpa
- \def\pslinetype{2}%
- \fi}
-\psset[pstricks]{linetype=2}% otherwise there is a problem when using e.g.
-% \psaxes[axesstyle=frame,linestyle=dashed]{->}(3,-2)
-%
-\def\caddto@pscode#1{%
- \@pstrickserr{Command can only be used in \string\pscustom}\@ehpa}
-\let\cuse@par\caddto@pscode
-%
-\def\tx@MSave{%
- /msavematrx
- [ tx@Dict /msavematrx known % does msavematrix exists?
- { msavematrx aload pop } if
- CM % matrix currentmatrix
- ]
- def
-%----------------- hv begin 2004-05-07 ------------- patch 15
- msavematrx
-%----------------- hv end 2004-05-07 ------------- patch 15
-}
-\def\tx@MRestore{% a typo in pstricks with msavematrx
- tx@Dict /msavematrx known { length 0 gt } { false } ifelse
- { msavematrx aload pop setmatrix } if
-}
-%
-\newtoks\pst@customdefs
-\pst@customdefs{%
- \def\newpath{\addto@pscode{newpath}}%
- \def\reversepath{\addto@pscode{ reversepath }}% 20131209 hv
- \def\moveto(#1){\pst@@getcoor{#1}\addto@pscode{\pst@coor moveto}}%
- \def\rmoveto(#1){\pst@@getcoor{#1}\addto@pscode{\pst@coor rmoveto}}%
- \def\closepath{\addto@pscode{closepath}}%
- \def\gsave{\begingroup\addto@pscode{gsave}}%
- \def\grestore{\endgroup\addto@pscode{grestore}}%
- \def\translate(#1){\pst@@getcoor{#1}\addto@pscode{\pst@coor translate}}%
- \def\rotate#1{\pst@@getangle{#1}\addto@pscode{\pst@angle rotate}}%
- \def\scale#1{\pst@getscale{#1}\pst@tempg\addto@pscode{\pst@tempg}}%
- \def\msave{\addto@pscode{\tx@MSave}}%
- \def\mrestore{\addto@pscode{\tx@MRestore}}%
- \def\swapaxes{\addto@pscode{-90 rotate -1 1 scale}}%
- \def\stroke{\def\pst@par{}\pst@object{stroke}}%
- \def\fill{\def\pst@par{}\pst@object{fill}}%
- \def\openshadow{\def\pst@par{}\pst@object{openshadow}}%
- \def\closedshadow{\def\pst@par{}\pst@object{closedshadow}}%
- \def\movepath(#1){\pst@@getcoor{#1}\addto@pscode{\pst@coor \tx@Shadow}}%
- \def\lineto{\pst@onecoor{lineto}}%
- \def\rlineto{\pst@onecoor{rlineto}}%
- \def\curveto{\pst@threecoor{curveto}}%
- \def\rcurveto{\pst@threecoor{rcurveto}}%
- \def\code#1{\addto@pscode{#1}}%
- \def\coor(#1){\pst@@getcoor{#1}\addto@pscode\pst@coor\@ifnextchar({\coor}{}}%
- \def\rcoor{\pst@getcoors{}{}}%
- \def\dim#1{\pssetlength\pst@dimg{#1}\addto@pscode{\pst@number\pst@dimg}}%
- \def\setcolor#1{%
- \@ifundefined{\string\color@#1}{}{\addto@pscode{\pst@usecolor{#1}}}}% hv 1.14 2005-12-17
- \def\arrows#1{{\psset[pstricks]{arrows=#1}\pst@addarrowdef}}%
- \let\file\pst@rawfile%
-} % END \pst@customdefs
-%
-\def\closedshadow@i{\cuse@par\pst@closedshadow}
-\def\openshadow@i{\cuse@par\pst@openshadow}
-\def\stroke@i{\cuse@par\pst@stroke}%
-\def\fill@i{\cuse@par\psk@fillstyle}%
-\def\pst@onecoor#1(#2){%
-\pst@@getcoor{#2}%
-\addto@pscode{\pst@coor #1}}
-\def\pst@threecoor#1(#2)#3(#4)#5(#6){%
- \begingroup
- \pst@getcoor{#2}\pst@tempa
- \pst@getcoor{#4}\pst@tempb
-% DG/SR modification begin - Aug. 4, 1999 - Patch 11
-%\pst@getcoor{#6}\pst@tembc
- \pst@getcoor{#6}\pst@tempc
-% DG/SR modification end
- \addto@pscode{\pst@tempa \pst@tempb \pst@tempc #1}%
- \endgroup}
-%
-\def\pst@rawfile#1{%
- \begingroup
- \def\do##1{\catcode`##1=12\relax}"
- \dospecials
- \catcode`\%=14
- \pst@@rawfile{#1}%
- \endgroup}
-%
-\def\pst@@rawfile#1{%
- \immediate\openin1 #1
- \ifeof1
- \@pstrickserr{File `#1' not found}\@ehpa
- \else
- \immediate\read1 to \pst@tempg
- \loop
- \ifeof1 \@pstfalse\else\@psttrue\fi
- \if@pst
- \addto@pscode\pst@tempg
- \immediate\read1 to \pst@tempg
- \repeat
- \fi
- \immediate\closein1\relax}
-%
-\def\tx@NArray{NArray }
-\def\tx@Line{Line }
-\def\tx@Arcto{Arcto }
-\def\tx@CheckClosed{CheckClosed }
-\def\tx@Polygon{Polygon }
-\define@key[psset]{pstricks}{gangle}[0]{\pst@getangle{#1}\psk@gangle}
-\define@boolkey[psset]{pstricks}[Pst@]{trueAngle}[true]{}
-\psset[pstricks]{trueAngle=false,gangle=0}
-%
-\def\tx@Diamond{Diamond }
-\def\psdiamond{\def\pst@par{}\pst@object{psdiamond}}
-\def\psdiamond@i(#1){\@ifnextchar({\psdiamond@ii(#1)}{\psdiamond@ii(0,0)(#1)}}
-\def\psdiamond@ii(#1)(#2){%
- \begin@ClosedObj
- \pst@getcoor{#1}\pst@tempa
- \pst@getcoor{#2}\pst@tempb
- \addto@pscode{%
- \psline@iii
- pop
- \psk@dimen
- \pst@tempb
- \psk@gangle
- \pst@tempa
- \tx@Diamond
- }%
- \def\pst@linetype{4}%
- \end@ClosedObj}
-%
-\def\tx@Triangle{Triangle }
-\def\pstriangle{\def\pst@par{}\pst@object{pstriangle}}
-\def\pstriangle@i(#1){\@ifnextchar({\pstriangle@ii(#1)}{\pstriangle@ii(0,0)(#1)}}
-\def\pstriangle@ii(#1)(#2){%
- \begin@ClosedObj
- \pst@getcoor{#1}\pst@tempa% the center of the baseline
- \pst@getcoor{#2}\pst@tempb% the height of the triangle
- \addto@pscode{%
- \psline@iii
- pop % no showpoints option
- \psk@dimen % outer/inner/middle
- \pst@tempb
- \psk@gangle % rotating angle
- \pst@tempa
- \tx@Triangle
- }%
- \def\pst@linetype{2}%
- \end@ClosedObj}
-%
-\def\tx@CCA{CCA }
-\def\tx@CCA{CCA }
-\def\tx@CC{CC }
-\def\tx@IC{IC }
-\def\tx@BOC{BOC }
-\def\tx@NC{NC }
-\def\tx@EOC{EOC }
-\def\tx@BAC{BAC }
-\def\tx@NAC{NAC }
-\def\tx@EAC{EAC }
-\def\tx@OpenCurve{OpenCurve }
-\def\tx@AltCurve{AltCurve }
-\def\tx@ClosedCurve{ClosedCurve }
-%
-\define@key[psset]{pstricks}{curvature}[1 0.1 0]{%
- \edef\pst@tempg{#1 }%
- \expandafter\psset@@curvature\pst@tempg * * * \@nil}
-\def\psset@@curvature#1 #2 #3 #4\@nil{%
- \pst@checknum{#1}\pst@tempg
- \pst@checknum{#2}\pst@temph
- \pst@checknum{#3}\pst@tempi
- \edef\psk@curvature{\pst@tempg \pst@temph \pst@tempi}}
-%
-\psset[pstricks]{curvature=1 .1 0}
-%
-\def\pscurve{\pst@object{pscurve}}
-\def\pscurve@i{%
- \pst@getarrows{%
- \begin@OpenObj
- \pst@getcoors[\pscurve@ii%
- }%
-}
-\def\pscurve@ii{%
- \addto@pscode{
- \ifPst@noCurrentPoint\else\pst@cp\fi % current point
- \psk@curvature\space /c ED /b ED /a ED
- \ifshowpoints true \else false \fi
- \ifx\pslinestyle\psls@@symbol \psls@symbol OpenSymbolCurve \else \tx@OpenCurve \fi
- \ifPst@variableLW \pst@flattenpath \fi
- }%
- \ifx\pslinestyle\psls@@symbol\def\pslinestyle{none}\fi%
- \end@OpenObj%
-}
-\def\psecurve{\pst@object{psecurve}}
-\def\psecurve@i{\pst@getarrows{\begin@OpenObj\pst@getcoors[\psecurve@ii}}
-\def\psecurve@ii{%
- \addto@pscode{
- \psk@curvature\space /c ED /b ED /a ED
- \ifshowpoints true \else false \fi
- \ifx\pslinestyle\psls@@symbol \psls@symbol AltOpenSymbolCurve \else \tx@AltCurve \fi
- }%
- \ifx\pslinestyle\psls@@symbol\def\pslinestyle{none}\fi%
- \end@OpenObj}
-%
-\def\psccurve{\pst@object{psccurve}}
-\def\psccurve@i{\begin@ClosedObj\pst@getcoors[\psccurve@ii}
-\def\psccurve@ii{%
- \addto@pscode{%
- \psk@curvature\space /c ED /b ED /a ED
- \ifshowpoints true \else false \fi
- \ifx\pslinestyle\psls@@symbol \psls@symbol ClosedSymbolCurve \else \tx@ClosedCurve \fi
- }%
- \def\pst@linetype{1}%
- \ifx\pslinestyle\psls@@symbol\def\pslinestyle{none}\fi%
- \end@ClosedObj}
-%
-\def\pscspline{\pst@object{pscspline}}% Christoph Bersch
-\def\pscspline@i{%
- \pst@getarrows{%
- \begin@OpenObj
- \pst@getcoors[\pscspline@ii
- }%
-}
-\def\tx@Spline{Spline }
-\def\pscspline@ii{%
- \addto@pscode{
- \ifPst@noCurrentPoint\else\pst@cp\fi
- \tx@setlinejoin
- \ifshowpoints true \else false \fi
- \ifx\pslinestyle\psls@@symbol
- \psls@symbol OpenSymbolSpline
- \else
- \tx@Spline
- \fi
- }%
- \end@OpenObj
-}
-%
-\define@key[psset]{pstricks}{dotsize}[2pt 2]{%
- \pst@expandafter\pst@getdimnum{#1} 0 {} {}\@nil%
- \edef\psk@@dotsize{\pst@number\pst@dimg}%
- \let\psk@@@dotsize\pst@tempg%
- \edef\psk@dotsize{ /DS \psk@@dotsize \psk@@@dotsize CLW mul add 2 div def }}
-\psset[pstricks]{dotsize=2pt 2}
-%
-\define@key[psset]{pstricks}{dotscale}[1]{%
- \pst@getscale{#1}\psk@dotscale
- \ifx\psk@dotscale\@empty
- \def\psk@xdotscale{1 }%
- \def\psk@ydotscale{1 }%
- \else
- \let\psk@xdotscale\pst@tempg
- \let\psk@ydotscale\pst@temph
- \fi}
-%
-\def\pst@Getangle#1#2{%
- \pst@getangle{#1}\pst@tempg
- \def\pst@temph{0. }%
- \ifx\pst@tempg\pst@temph\def#2{}\else\edef#2{\pst@tempg\space rotate }\fi}
-%
-\define@key[psset]{pstricks}{dotangle}[0]{%
- \pst@getangle{#1}\psk@@dotangle
- \ifdim\psk@@dotangle\p@=\z@
- \let\psk@dotangle\@empty
- \else
- \edef\psk@dotangle{\psk@@dotangle rotate }%
- \fi}
-\psset[pstricks]{dotangle=0}
-%
-\def\pst@getdotsize{%
-\pst@dimg=\psk@@@dotsize\pslinewidth
-\advance\pst@dimg\psk@@dotsize\p@
-\pst@dimh=\psk@ydotscale\pst@dimg
-\pst@dimg=\psk@xdotscale\pst@dimg
-\divide\pst@dimh 2
-\divide\pst@dimg 2\relax}
-%
-\psset[pstricks]{dotscale=1}
-%
-\def\psdot{\pst@object{psdot}}
-\def\psdot@i{\@ifnextchar({\psdot@ii}{\psdot@ii(\z@,\z@)}}
-\def\psdot@ii(#1){%
- \begin@SpecialObj%
-% hv modification 1.13 2005-11-28
- \solid@star%
-% hv modification end
- \pst@@getcoor{#1}%
- \addto@pscode{
- \psk@dotsize
- \@nameuse{psds@\psk@dotstyle}
- \tx@setStrokeTransparency
- \pst@coor Dot}%
- \end@SpecialObj}
-%
-\def\psdots{\pst@object{psdots}}
-\def\psdots@i{%
- \begin@SpecialObj%
- \pst@getcoors[\psdots@ii}
-\def\psdots@ii{%
- \addto@pscode{ false \tx@NArray \psdots@iii }%
- \end@SpecialObj}
-\def\psdots@iii{%
- \psk@dotsize
- \@nameuse{psds@\psk@dotstyle}
- \tx@setStrokeTransparency
- newpath
- n { transform floor .5 add exch floor .5 add exch itransform Dot } repeat }
-%
-% DG: dead code (to suppress until \psset[pstricks]{dotstyle) ? - Aug. 4, 1997
-\def\tx@SQ{SQ }
-\def\tx@ST{ST }
-\def\tx@SP{SP }
-%
-\def\pst@gdot#1{ /Dot { gsave T \psk@dotangle \psk@dotscale #1 grestore } def }
-%
-\@namedef{psds@*}{\pst@gdot{ 0 0 DS \tx@SD }}
-\@namedef{psds@o}{%
- /r2 DS CLW sub def
- \pst@gdot{ 0 0 DS \tx@SD \pst@usecolor\psfillcolor SLW 0 0 r2 \tx@SD }}
-\@namedef{psds@square*}{ /r1 DS .886 mul def \pst@gdot{r1 \tx@SQ }}
-\@namedef{psds@square}{%
- /r1 DS .886 mul def /r2 r1 CLW sub def
- \pst@gdot{r1 \tx@SQ \pst@usecolor\psfillcolor r2 \tx@SQ}}
-\@namedef{psds@triangle*}{%
- /y1 DS .778 mul neg def /x1 y1 1.732 mul neg def
- \pst@gdot{x1 y1 \tx@ST}}
-\@namedef{psds@triangle}{%
- /y1 DS .778 mul neg def /x1 y1 1.732 mul neg def
- /y2 y1 CLW add def /x2 y2 1.732 mul neg def
- \pst@gdot{x1 y1 \tx@ST \pst@usecolor\psfillcolor x2 y2 \tx@ST}}
-\@namedef{psds@pentagon*}{%
- /r1 DS 1.149 mul def
- \pst@gdot{r1 \tx@SP}}
-\@namedef{psds@pentagon}{%
- DS .93 mul dup 1.236 mul /r1 ED CLW sub 1.236 mul /r2 ED
- \pst@gdot{r1 \tx@SP \pst@usecolor\psfillcolor r2 \tx@SP}}
-\@namedef{psds@+}{%
- /DS DS 1.253 mul def
- \pst@gdot{DS 0 moveto DS neg 0 L stroke 0 DS moveto 0 DS neg L stroke}}
-\@namedef{psds@|}{%
- \psk@tbarsize CLW mul add 2 div /DS ED
- \pst@gdot{0 DS moveto 0 DS neg L stroke}}
-% DG: end dead code?
-%
-\define@key[psset]{pstricks}{dotstyle}[*]{%
- \@ifundefined{psds@#1}%
- {\@pstrickserr{Dot style `#1' not defined}\@eha}%
- {\edef\psk@dotstyle{#1}}}
-\psset[pstricks]{dotstyle=*}
-%
-\def\tx@FontDot{FontDot }
-\def\newpsfontdot#1[#2]#3#4{%
- \@namedef{psds@#1}{%
- /#3 \psk@@dotangle [#2] \tx@FontDot
-% DG/SR modification begin - Dec. 12, 1999 - Patch 14
-%/Dot { moveto #4 show } bind def }}
- /Dot { moveto gsave \psk@dotscale #4 show grestore } bind def
-}}
-% DG/SR modification end
-\def\newpsfontdotH#1[#2]#3#4#5{% for filled objects
- \@namedef{psds@#1}{%
- /#3 \psk@@dotangle [#2] \tx@FontDot
- /Dot {
- moveto
-% \iftrue
-% DG/SR modification begin - Dec. 23, 1999 - Patch 14
-%gsave \pst@usecolor\psfillcolor #5 show grestore
-%\fi
-%#4 show
- gsave \psk@dotscale \pst@usecolor\psfillcolor #5 show grestore % fill first
-% \fi
- gsave \psk@dotscale #4 show grestore % show the unfilled one
-% DG/SR modification end
- } bind def
-}}
-%
-\pstheader{pst-dots.pro}
-\newpsfontdot{*}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(b)}
-\newpsfontdotH{o}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(c)}{(b)}
-\newpsfontdotH{Bo}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(C)}{(b)}
-\newpsfontdotH{triangle}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(t)}{(u)}
-\newpsfontdotH{Btriangle}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(T)}{(u)}
-\newpsfontdot{triangle*}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(u)}
-\newpsfontdotH{square}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(s)}{(r)}
-\newpsfontdotH{Bsquare}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(S)}{(r)}
-\newpsfontdot{square*}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(r)}
-\newpsfontdotH{pentagon}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(p)}{(q)}
-\newpsfontdotH{Bpentagon}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(P)}{(q)}
-\newpsfontdot{pentagon*}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(q)}
-% DG/SR modification begin - Mar. 18, 1997 and Dec. 16, 1999 - Patch 14
-%\newpsfontdot{diamond*}[1.9 0.0 0.0 1.9 -0.4598 -0.70775]{StandardSymL}{<E0>}
-%\newpsfontdot{diamond}[2.3 0.0 0.0 2.3 -0.8533 -0.5336]{StandardSymL}{<A8>}
-% D.G. modification begin - Jan. 17, 2000
-\newpsfontdotH{diamond}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(d)}{(l)}
-\newpsfontdotH{Bdiamond}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(D)}{(l)}
-\newpsfontdot{diamond*}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(l)}
-% DG/SR modification end
-\newpsfontdot{oplus}[1.44928 0.0 0.0 1.44928 -0.562319 -0.478261]{StandardSymL}{<C5>}
-\newpsfontdot{otimes}[1.44928 0.0 0.0 1.44928 -0.562319 -0.475362]{StandardSymL}{<C4>}
-\newpsfontdot{x}[1.8 0.0 0.0 1.8 -0.495 -0.4788]{StandardSymL}{<B4>}
-\newpsfontdot{+}[2.3 0.0 0.0 2.3 -0.6486 -0.5819]{NimbusRomNo9L-Regu}{<2B>}
-\newpsfontdot{asterisk}[2.43309 0.0 0.0 2.43309 -0.609489 -1.14477]{NimbusRomNo9L-Regu}{<2A>}
-\newpsfontdot{B+}[2.3 0.0 0.0 2.3 -0.6555 -0.5819]{NimbusRomNo9L-Bold}{<2B>}
-\newpsfontdot{Basterisk}[2.29358 0.0 0.0 2.29358 -0.576835 -1.08486]{NimbusRomNo9L-Bold}{<2A>}
-\newpsfontdot{|}[1.98413 0.0 0.0 1.38 -0.258929 -0.5]{NimbusSanL-Regu}{(|)}
-% DG/SR modification begin - Oct. 27, 1997 - Patch 7
-%[1.98413 0.0 0.0 1.98413 -0.258929 -0.712302]{NimbusSanL-Regu}{(|)}
-% DG/SR modification end
-\newpsfontdot{B|}[1.98413 0.0 0.0 1.38 -0.277778 -0.5]{NimbusSanL-Bold}{(|)}%
-% DG/SR modification begin - Oct. 27, 1997 - Patch 7
-%[1.98413 0.0 0.0 1.98413 -0.277778 -0.78302]{NimbusSanL-Bold}{(|)}
-
-% DG/SR modification end
-\iffalse
-\newpsfontdot{*}[2.77778 0.0 0.0 2.77778 -0.638889 -0.813889]{StandardSymL}{<B7>}
-\newpsfontdot{o}[3.33333 0.0 0.0 3.33333 -0.666667 -1.78167]{StandardSymL}{<B0>}
-\newpsfontdot{Bo}[4.69484 0.0 0.0 4.69484 -0.78169 -2.97418]{NimbusRomNo9L-Bold}{<CA>}
-\fi
-% Etienne Riga
-\newpsfontdot{Asterisk}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(k)}
-\newpsfontdot{BoldAsterisk}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(K)}
-\newpsfontdotH{SolidAsterisk}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(J)}{(b)}
-%
-\newpsfontdotH{Pentagon}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(p)}{(q)}
-\newpsfontdotH{BoldPentagon}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(P)}{(q)}
-\newpsfontdot{SolidPentagon}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(q)}
-\newpsfontdotH{Hexagon}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(h)}{(G)}
-\newpsfontdotH{BoldHexagon}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(H)}{(G)}
-\newpsfontdot{SolidHexagon}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(G)}
-\newpsfontdotH{Octogon}[1 0 0 1 0 0]{PSTricksDotFont}{(f)}{(g)}
-\newpsfontdotH{BoldOctogon}[1 0 0 1 0 0]{PSTricksDotFont}{(F)}{(g)}
-\newpsfontdot{SolidOctogon}[1 0 0 1 0 0]{PSTricksDotFont}{(g)}
-%
-\newpsfontdot{Bullet}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(b)}
-\newpsfontdotH{Circle}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(c)}{(b)}
-\newpsfontdotH{BoldCircle}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(C)}{(b)}
-%\newpsfontdot{SolidCircle}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(u)}
-\newpsfontdotH{Triangle}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(t)}{(u)}
-\newpsfontdotH{BoldTriangle}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(T)}{(u)}
-\newpsfontdot{SolidTriangle}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(u)}
-\newpsfontdotH{Square}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(s)}{(r)}
-\newpsfontdotH{BoldSquare}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(S)}{(r)}
-\newpsfontdot{SolidSquare}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(r)}
-\newpsfontdot{Add}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(a)}
-\newpsfontdot{BoldAdd}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(A)}
-\newpsfontdot{Mul}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(x)}
-\newpsfontdot{BoldMul}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(X)}
-\newpsfontdotH{Oplus}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(m)}{(b)}
-\newpsfontdotH{BoldOplus}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(M)}{(b)}
-\newpsfontdotH{SolidOplus}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(e)}{(b)}
-\newpsfontdotH{Otimes}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(n)}{(b)}
-\newpsfontdotH{BoldOtimes}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(N)}{(b)}
-\newpsfontdotH{SolidOtimes}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(E)}{(b)}
-\newpsfontdot{Bar}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(i)}
-\newpsfontdot{BoldBar}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(I)}
-\newpsfontdotH{Diamond}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(d)}{(l)}
-\newpsfontdotH{BoldDiamond}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(D)}{(l)}
-\newpsfontdot{SolidDiamond}[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(l)}
-%
-\newdimen\pslinearc
-\define@key[psset]{pstricks}{linearc}[0pt]{\pssetlength\pslinearc{#1}}
-\psset[pstricks]{linearc=0pt}
-%
-\def\psline{\begingroup\pst@object{psline}}
-\def\psline@i{%
- \pst@getarrows{%
- \begin@OpenObj
- \pst@getcoors[\psline@ii
- }%
-}
-\def\psline@ii{%
- \ifx\pslinestyle\psls@@symbol\addto@pscode{ \psls@symbol SymbolLine }%
- \else
- \addto@pscode{
- \ifPst@noCurrentPoint\else\pst@cp\fi % current point?
- \psline@iii % arc and lineto type
- \tx@Line % .pro function
- }%
- \fi
- \end@OpenObj
- \endgroup
-}
-\def\psline@iii{%
- \ifdim\pslinearc>\z@
- /r \pst@number\pslinearc def
- /Lineto { \tx@Arcto } def
- \else
- /Lineto /lineto load def
- \fi
- \tx@setlinejoin % hv 2007-10-13
- \ifshowpoints true \else false \fi
-}
-%
-\def\psLine{\pst@object{psLine}}
-\def\psLine@i{%
- \pst@getarrows{%
- \begin@OpenObj
- \psLine@ii}}
-\def\psLine@ii(#1){\@ifnextchar({\psLine@iii(#1)}{\psLine@iii(0,0)(#1)}}%
-\def\psLine@iii(#1)(#2){%
- \pst@getcoor{#1}\pst@tempA
- \pst@getcoor{#2}\pst@tempB
- \addto@pscode{
- \ifPst@noCurrentPoint\else\pst@cp\fi % current point?
- [ % start for coordinate array
- \pst@tempB
- \pst@tempA % order vice versa
- 4 copy Pyth2 \psk@arrowlength ge
- { \psline@iii \tx@Line }
- { pop pop pop pop pop } ifelse
- }%
- \end@OpenObj
- \ignorespaces
-}
-\def\psLineSegments{\leavevmode\pst@killglue\pst@object{psLineSegments}}
-\def\psLineSegments@i{\pst@getarrows{\psLineSegments@ii}}
-\def\psLineSegments@ii(#1)(#2){%
- \begingroup
- \use@keep@par
- \solid@star
- \ifpsdoubleline\pst@setdoublesep\fi
- \init@pscode
- \let\pst@linetype\pst@arrowtype
- \pst@addarrowdef
- \pst@getcoor{#1}\pst@tempA
- \pst@getcoor{#2}\pst@tempB
- \addto@pscode{
- \ifPst@noCurrentPoint\else\pst@cp\fi % current point?
- [ % start for coordinate array
- \pst@tempB
- \pst@tempA % order vice versa
- 4 copy Pyth2 \psk@arrowlength ge
- { \psline@iii \tx@Line }
- { pop pop pop pop pop } ifelse
- }%
- \end@OpenObj
- \ignorespaces
- \@ifnextchar(\psLineSegments@ii{}%
-}%
-\def\pst@isnum#1{\pst@isnum@i\zap@space#1 \@empty\@nil}%
-\def\pst@isnum@i#1\@nil{%
- \if!\ifnum9<1#1!\else_\fi%
- \expandafter\@firstoftwo%
- \else%
- \expandafter\@secondoftwo%
- \fi}
-%
-\def\psset@@symbol#1#2#3#4\@nil{%
- \ifx\relax#4\relax\def\psk@symbol{(#1)}%
- \else%
- \pst@isnum{#1#2#3}{%
- \pst@cnta='#1#2#3\relax%
- \ifnum\pst@cnta>'377\relax%
- \@pstrickserr{Number too large!}\@ehpb%
- \else%
- \def\psk@symbol{(\@backslashchar#1#2#3)}%
- \fi%
-}{\@pstrickserr{Not a number!}\@ehpb}%
- \fi}
-%
-\define@key[psset]{pstricks}{symbol}[a]{\expandafter\psset@@symbol#1!!\@nil}
-\psset[pstricks]{symbol=a}
-%
-\newdimen\pst@symbolStep
-\define@key[psset]{pstricks}{symbolStep}[20pt]{\pst@expandafter\pst@@symbolStep#1\@nil}
-\def\pst@@symbolStep#1#2\@nil{\if-#1\pssetlength\pst@symbolStep{-#2pt}\else\pssetlength\pst@symbolStep{#1#2}\fi}
-\psset[pstricks]{symbolStep=20pt}
-
-\newdimen\pst@symbolWidth
-\newdimen\pst@symbolLinewidth
-\define@key[psset]{pstricks}{symbolWidth}[10pt]{\pssetlength\pst@symbolWidth{#1}}
-\define@key[psset]{pstricks}{symbolLinewidth}[0.5pt]{\pssetlength\pst@symbolLinewidth{#1}}
-\psset[pstricks]{symbolWidth=10pt,symbolLinewidth=0.5pt}
-
-\define@key[psset]{pstricks}{symbolFont}[Dingbats]{\def\psk@symbolFont{/#1 }}
-\psset[pstricks]{symbolFont=Dingbats}
-\define@boolkey[psset]{pstricks}[Pst@]{rotateSymbol}[true]{}
-\psset[pstricks]{rotateSymbol=false}
-\define@key[psset]{pstricks}{startAngle}[0]{\pst@getangle{#1}\psk@startAngle}
-\define@key[psset]{pstricks}{tickAngle}[0]{\pst@getangle{#1}\psk@tickAngle}
-\psset[pstricks]{startAngle=0,tickAngle=0}
-\define@boolkey[psset]{pstricks}[Pst@]{curveticks}[true]{}
-\psset[pstricks]{curveticks=false}
-
-%
-\def\psls@symbol{
- /Symbol \psk@symbol def
- /SymbolWidth \pst@number\pst@symbolWidth def
- /SymbolLinewidth \pst@number\pst@symbolLinewidth def
- /SymStep \pst@number\pst@symbolStep def
- \psk@symbolFont findfont %0. [1.0 0.0 0.0 1.0 0.0 0.0]
- \pst@number\pst@symbolWidth scalefont %dup
- setfont
- /rotateSymbol \ifPst@rotateSymbol true \else false \fi def
- /tickAngle \psk@tickAngle\space def
- /startAngle \psk@startAngle\space def
- /CorrAngle \ifx\psk@rot\@empty 0 \else \psk@rot \fi def
- /curveticks \ifPst@curveticks true \else false \fi def
- \pst@number\pslinewidth SLW
-}
-\def\psls@@symbol{symbol}
-%
-\def\psPline{\def\pst@par{}\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
- \ifPst@noCurrentPoint\else\pst@cp\fi % current point
- \psline@iii % arc and lineto type
- \tx@Line % .pro function
- }%
- \end@OpenObj%
- \ignorespaces%
-}
-%
-\def\qline(#1)(#2){%
- \def\pst@par{}%
- \begin@SpecialObj
- \def\pst@linetype{0}%
- \pst@getcoor{#1}\pst@tempa
- \pst@@getcoor{#2}%
- \addto@pscode{%
- \pst@tempa moveto \pst@coor L
- \@nameuse{psls@\pslinestyle}%
- }%
- \end@SpecialObj}
-%
-\def\pspolygon{\pst@object{pspolygon}}
-\def\pspolygon@i{%
- \begin@ClosedObj%
- \def\pst@cp{}%
- \pst@getcoors[\pspolygon@ii%
-}
-\def\pspolygon@ii{%
- \ifx\pslinestyle\psls@@symbol\addto@pscode{ \psls@symbol SymbolPolygon }%
- \else \addto@pscode{\psline@iii \tx@Polygon}%
- \fi%
- \def\pst@linetype{1}%
- \end@ClosedObj}
-%
-\define@key[psset]{pstricks}{framearc}[0]{\pst@checknum{#1}\psk@framearc}
-\psset[pstricks]{framearc=0}
-%
-\define@key[psset]{pstricks}{cornersize}[relative]{\pst@expandafter\psset@@cornersize{#1}\@nil}
-\def\psset@@cornersize#1#2\@nil{%
- \if #1a\relax
- \def\psk@cornersize{\pst@number\pslinearc false }%
- \else\def\psk@cornersize{\psk@framearc true }%
- \fi}
-\psset[pstricks]{cornersize=relative}
-%
-\def\tx@Rect{Rect }
-\def\tx@OvalFrame{OvalFrame }
-\def\tx@Frame{Frame }
-%
-\define@key[psset]{pstricks}{dimen}[outer]{\pst@expandafter\psset@@dimen{#1}\@nil}
-\def\psset@@dimen#1#2\@nil{%
- \if #1o\relax% outer
- \def\psk@dimen{.5 }%
- \else
- \if #1m\relax% middle
- \def\psk@dimen{0 }%
- \else
- \if #1i\relax% inner
- \def\psk@dimen{-.5 }%
- \fi\fi\fi}
-\psset[pstricks]{dimen=outer}
-%
-\def\psframe{\pst@object{psframe}}
-\def\psframe@i(#1){%
- \@ifnextchar({\psframe@ii(#1)}{\psframe@ii(0,0)(#1)}}
-\def\psframe@ii(#1)(#2){%
- \begin@ClosedObj
- \pst@getcoor{#1}\pst@tempa
- \pst@@getcoor{#2}%
- \addto@pscode{ \psk@cornersize \pst@tempa \pst@coor \psk@dimen \tx@Frame }%
- \def\pst@linetype{2}%
- \showpointsfalse
- \end@ClosedObj
-}
-
-\iffalse
-\def\psSquare{\pst@object{psSquare}}
-\def\psSquare@i(#1)(#2){%
- \begin@ClosedObj
- \pst@getcoor{#1}\pst@tempa
- \pst@getcoor{#2}\pst@tempb
- \addto@pscode{ \psk@cornersize
- \pst@tempa /yA ED /xA ED
- \pst@tempb /yB ED /xB ED
- xA yA moveto xB yB L
- xA xB sub yA yB sub atan /Angle ED
- xA yA xB yB Pyth2 dup xA add exch yA add
- \psk@dimen
- \tx@Frame
-% grestore
- }%
- \def\pst@linetype{2}%
- \showpointsfalse
- \end@ClosedObj
-}
-\fi
-%
-\def\psTextFrame{\pst@object{psTextFrame}}
-\def\psTextFrame@i(#1)(#2)#3{%
- \addbefore@par{ref=c}% to prevent an empty value
- \leavevmode%
- \pst@killglue
- \begingroup
- \use@par
- \ifx\psk@yref\relax \def\psk@yref{0}\fi% no Baseline possible
- \SpecialCoor
- \pst@getcoor{#1}\pst@tempA
- \pst@getcoor{#2}\pst@tempB
- \if@star\psframe*(#1)(#2)\else\psframe(#1)(#2)\fi
- \rput(! \pst@tempA \pst@tempB % x1 y1 x2 y2
- exch 4 -1 roll % y1 y2 x2 x1
- dup /x1 ED % y1 y2 x2 x1
- sub /dx ED % y1 y2
- exch dup /y1 ED % y2 y1
- sub /dy ED
- x1 dx \psk@xref\space mul add \pst@number\psxunit div
- y1 dy \psk@yref\space mul add \pst@number\psyunit div ){#3}
- \endgroup
- \ignorespaces}
-%
-\def\tx@BezierNArray{ BezierNArray }
-\def\tx@OpenBezier{ OpenBezier }
-\def\tx@ClosedBezier{ ClosedBezier }
-\def\tx@BezierShowPoints{ BezierShowPoints }
-\def\tx@BezierCurve{ BezierCurve }
-\def\pst@BezierType{2 } % the default
-%
-\def\psbezier{\pst@object{psbezier}}
-\def\psbezier@i{%
- \pst@getarrows{%
- \begin@OpenObj
- \pst@getcoors[\psbezier@ii%
- }%
-}
-\def\psbezier@ii{%
- \addto@pscode{
- \ifPst@noCurrentPoint\else\pst@cp\fi
- \ifshowpoints true \else false \fi
- \ifx\pslinestyle\psls@@symbol \psls@symbol OpenSymbolBezier
- \else
- \tx@OpenBezier
- \ifshowpoints \tx@BezierShowPoints \fi
- \fi
- }%
- \def\pst@linetype{1}%
- \ifx\pslinestyle\psls@@symbol\def\pslinestyle{none}\fi%
- \end@OpenObj}
-%
-\def\pscbezier{\def\pst@par{}\pst@object{pscbezier}}
-\def\pscbezier@i{%
- \begin@ClosedObj
- \pst@getcoors[\pscbezier@ii}
-%
-\def\pscbezier@ii{%
- \addto@pscode{%
- \ifshowpoints true \else false \fi
- \ifx\pslinestyle\psls@@symbol \psls@symbol ClosedSymbolBezier
- \else
- \tx@ClosedBezier
- \ifshowpoints \tx@BezierShowPoints \fi
- \fi}%
-% \chardef\pst@linetype=1
- \def\pst@linetype{1}%
- \ifx\pslinestyle\psls@@symbol\def\pslinestyle{none}\fi%
- \end@ClosedObj}
-%
-\iffalse
-\define@key[psset]{pstricks}{epsilon}[0.005]{\pst@checknum{#1}\psk@epsilon}
-\psset[pstricks]{epsilon=0.005} % 200 steps for one curve
-%
-\def\psBezier#1{% % allowed order is 1 ... 9
- \ifnum#1>0 \ifnum#1<10 \def\pst@BezierType{#1 }\fi\fi%
- \def\pst@par{}\pst@object{psBezier}}
-\def\psBezier@i{%
- \pst@getarrows{%
- \begin@OpenObj
- \pst@getcoors[\psBezier@ii%
-}}
-\def\psBezier@ii{%
- \addto@pscode{%
- \psk@epsilon % step for Bezier T=0,0+epsilon,0+i*epsilon,...,1
- \pst@BezierType % type of the Bezier curve 2,3,4,...
- \tx@BezierCurve
- \ifshowpoints \tx@BezierShowPoints \fi
- }%
- \end@OpenObj}
-\fi
-%
-\define@key[psset]{pstricks}{pType}[0]{\pst@cntg=#1\relax\edef\psk@pType{\the\pst@cntg}}
-\psset[pstricks]{pType=0}
-\def\tx@Parab{Parab }% given by 1 point and the min/max
-\def\tx@Parabo{Parab1 }% given by 2 points for y-a=(x-b)^2
-%
-\def\psparabola{\pst@object{psparabola}}% 2009-05-19 (hv)
-\def\psparabola@i{\pst@getarrows\psparabola@ii}
-\def\psparabola@ii#1(#2)#3(#4){% #2 P #4 SP
- \begin@OpenObj
- \pst@getcoor{#2}\pst@tempa
- \pst@@getcoor{#4}%
- \addto@pscode{\pst@tempa \pst@coor
- \ifcase\psk@pType
- \tx@Parab \or
- \tx@Parabo
- \fi}%
- \end@OpenObj}
-\let\parabola\psparabola% compatibility (hv)
-%
-%
-\define@key[psset]{pstricks}{gridwidth}[0.8pt]{\pst@getlength{#1}\psk@gridwidth}
-\psset[pstricks]{gridwidth=.8pt}
-\define@key[psset]{pstricks}{griddots}[0]{%
- \pst@cntg=#1\relax
- \edef\psk@griddots{\the\pst@cntg}}
-\psset[pstricks]{griddots=0}
-\define@key[psset]{pstricks}{gridcolor}[black]{\pst@getcolor{#1}\psgridcolor}
-\psset[pstricks]{gridcolor=black}
-\define@key[psset]{pstricks}{subgridwidth}[0.4pt]{\pst@getlength{#1}\psk@subgridwidth}
-\psset[pstricks]{subgridwidth=0.4pt}
-\define@key[psset]{pstricks}{subgridcolor}[gray]{\pst@getcolor{#1}\pssubgridcolor}
-\psset[pstricks]{subgridcolor=gray}
-\define@key[psset]{pstricks}{subgriddots}[0]{%
- \pst@cntg=#1\relax\edef\psk@subgriddots{\the\pst@cntg}}
-\psset[pstricks]{subgriddots=0}
-\define@key[psset]{pstricks}{subgriddiv}[5]{%
- \pst@cntg=#1\relax\edef\psk@subgriddiv{\the\pst@cntg}}
-\psset[pstricks]{subgriddiv=5}
-%
-\define@key[psset]{pstricks}{gridfont}[NimbusSanL-Regu]{\def\psk@gridfont{/#1 }}% hv 2007-11-13
-\ifpst@psfonts
- \psset[pstricks]{gridfont=Helvetica}%
-\else
- \psset[pstricks]{gridfont=NimbusSanL-Regu}%
-\fi
-%
-\define@key[psset]{pstricks}{gridlabels}[10pt]{\pst@getlength{#1}\psk@gridlabels}
-\psset[pstricks]{gridlabels=10pt}
-\define@key[psset]{pstricks}{gridlabelcolor}[black]{\pst@getcolor{#1}\psgridlabelcolor}
-\psset[pstricks]{gridlabelcolor=black}
-\define@key[psset]{pstricks}{xgridoffset}[0]{\pst@getlength{#1}\psk@xgridoffset}
-\define@key[psset]{pstricks}{ygridoffset}[0]{\pst@getlength{#1}\psk@ygridoffset}
-\psset[pstricks]{xgridoffset=0,ygridoffset=0}
-
-\def\tx@Grid{Grid }
-
-\def\psgrid{\pst@object{psgrid}}
-\def\psgrid@i{\@ifnextchar({\psgrid@ii}{\expandafter\psgrid@iv\pic@coor}}
-\def\psgrid@ii(#1){\@ifnextchar({\psgrid@iii(#1)}{\psgrid@iv(0,0)(0,0)(#1)}}
-\def\psgrid@iii(#1)(#2){\@ifnextchar({\psgrid@iv(#1)(#2)}{\psgrid@iv(#1)(#1)(#2)}}
-\def\psgrid@iv(#1)(#2)(#3){%
- \begin@SpecialObj%
- \pst@getcoor{#1}\pst@tempA% hv 1.11
- \pst@getcoor{#2}\pst@tempB% hv 1.11
- \pst@@getcoor{#3}%
- \ifnum\psk@subgriddiv>1\relax
- \addto@pscode{
- /xGridOffset \psk@xgridoffset\space def
- /yGridOffset \psk@ygridoffset\space def
- gsave
- \tx@setStrokeTransparency
- \psk@subgridwidth SLW
- \pst@usecolor\pssubgridcolor
- \pst@tempB \pst@coor \pst@tempA % hv 1.11
-% \pst@number\psxunit \pst@number\psyunit % hv 1.11
- \pst@number\psxunit abs \pst@number\psyunit abs % hv 1.11
- \psk@subgriddiv\space \psk@subgriddots\space
- {} 0
- \psk@gridfont findfont 0 scalefont setfont % hv 1.16
- \tx@Grid
- grestore
- }%
- \fi%
- \addto@pscode{
- gsave
- /xGridOffset \psk@xgridoffset def
- /yGridOffset \psk@ygridoffset def
- \tx@setStrokeTransparency
- \psk@gridwidth SLW
- \pst@usecolor\psgridcolor
- \pst@tempB \pst@coor \pst@tempA % hv 1.11
- \pst@number\psxunit abs \pst@number\psyunit abs % hv 1.11
-% \pst@number\psxunit \pst@number\psyunit % hv 1.11
- 1 \psk@griddots\space { \pst@usecolor\psgridlabelcolor }
- \psk@gridlabels
- \psk@gridfont findfont \psk@gridlabels scalefont setfont % hv 1.16
- \tx@Grid
- grestore
- }%
- \end@SpecialObj}
-%
-\newif\ifpsmathbox
-\psmathboxtrue
-\def\pst@mathflag{\z@}
-\newtoks\everypsbox
-\let\pst@thisbox\relax
-%
-\long\def\pst@makenotverbbox#1#2{%
- \edef\pst@mathflag{%
- \ifpsmathbox\ifmmode\ifinner 1\else 2\fi\else\z@\fi\else\z@\fi}%
- \setbox\pst@hbox=\hbox{%
- \ifcase\pst@mathflag\or$\m@th\textstyle\or$\m@th\displaystyle\fi%
- {\pst@thisbox\the\everypsbox#2}%
- \ifnum\pst@mathflag>\z@$\fi% $
- }%
- #1}
-%
-\def\pst@makeverbbox#1{%
- \def\pst@afterbox{#1}%
- \edef\pst@mathflag{\ifpsmathbox\ifmmode\ifinner1\else2\fi\else\z@\fi\else\z@\fi}%
- \afterassignment\pst@beginbox%
- \setbox\pst@hbox\hbox%
-}
-\def\pst@beginbox{%
- \ifcase\pst@mathflag\or$\m@th\or$\m@th\displaystyle\fi%
- \bgroup\aftergroup\pst@endbox%
- \pst@thisbox%
- \the\everypsbox%
-}
-\def\pst@endbox{%
- \ifnum\pst@mathflag>\z@\relax$\fi% $
- \egroup%
- \pst@afterbox%
-}
-\def\pst@makebox{\pst@@makebox}
-\def\psverbboxtrue{\def\pst@@makebox{\pst@makeverbbox}}
-\def\psverbboxfalse{\def\pst@@makebox{\pst@makenotverbbox}}
-\psverbboxfalse
-\def\pst@longbox{%
- \def\pst@makebox{%
- \gdef\pst@makebox{\pst@@makebox}%
- \pst@makelongbox%
- }%
-}
-\def\pst@makelongbox#1{%
- \def\pst@afterbox{#1}%
- \edef\pst@mathflag{%
- \ifpsmathbox\ifmmode\ifinner 1\else 2\fi\else \z@\fi\else \z@\fi%
- }%
- \setbox\pst@hbox\hbox\bgroup
- \aftergroup\pst@afterbox
- \ifcase\pst@mathflag\or$\m@th\or$\m@th\displaystyle\fi
- \begingroup
- \pst@thisbox
- \the\everypsbox%
-}
-\def\pst@endlongbox{%
- \endgroup
- \ifnum\pst@mathflag>\z@$\fi %$
- \egroup%
-}
-\def\pslongbox#1#2{%
- \@namedef{#1}{\pst@longbox#2}%
- \@namedef{end#1}{\pst@endlongbox}}
-%
-\newdimen\psframesep
-\define@key[psset]{pstricks}{framesep}[3pt]{\pssetlength\psframesep{#1}}
-\psset[pstricks]{framesep=3pt}
-%
-\define@boolkey[psset]{pstricks}[ps]{boxsep}[true]{}
-\psset[pstricks]{boxsep}
-%
-\def\pst@useboxpar{%
- \use@par
- \if@star
- \let\pslinecolor\psfillcolor
- \solid@star
- \let\solid@star\relax
- \fi
- \ifpsdoubleline \pst@setdoublesep \fi}
-%
-\def\psframebox{\def\pst@par{}\pst@object{psframebox}}
-\def\psframebox@i{\pst@makebox\psframebox@ii}
-\def\psframebox@ii{%
- \begingroup
- \pst@useboxpar
- \pst@dima=\pslinewidth
- \advance\pst@dima by \psframesep
- \pst@dimc=\wd\pst@hbox\advance\pst@dimc by \pst@dima
- \pst@dimb=\dp\pst@hbox\advance\pst@dimb by \pst@dima
- \pst@dimd=\ht\pst@hbox\advance\pst@dimd by \pst@dima
- \setbox\pst@hbox=\hbox{%
- \ifpsboxsep\kern\pst@dima\fi
- \begin@ClosedObj
- \addto@pscode{%
- \psk@cornersize % arcradius boolean
- \pst@number\pst@dima neg
- \pst@number\pst@dimb neg
- \pst@number\pst@dimc
- \pst@number\pst@dimd
- .5
- \tx@Frame%
- }%
- \def\pst@linetype{2}%
- \showpointsfalse
- \end@ClosedObj
- \box\pst@hbox
- \ifpsboxsep\kern\pst@dima\fi%
- }%
- \ifpsboxsep\dp\pst@hbox=\pst@dimb\ht\pst@hbox=\pst@dimd\fi
- \leavevmode\box\pst@hbox
- \endgroup}
-%
-\def\psdblframebox{\def\pst@par{}\pst@object{psdblframebox}}
-\def\psdblframebox@i{\addto@par{doubleline=true}\psframebox@i}
-%
-\define@key[psset]{pstricks}{clipcommand}[clip]{\def\pst@clipcommand{#1 }}
-\psset[pstricks]{clipcommand=clip}% alternative is eoclip
-%
-\def\psclip{\@ifnextchar[\psclip@i{\psclip@i[]}}%
-\def\psclip@i[#1]#2{%
- \leavevmode%
- \begingroup%
- \ifx\relax#1\relax\else\psset{#1}\fi%
- \begin@psclip%
- \begingroup%
- \def\use@pscode{%
- \pstVerb{
- \pst@dict
- /mtrxc CM def
- CP CP T
- \tx@STV
- \psk@origin
- \psk@swapaxes
- newpath
- \pst@code
- \pst@clipcommand
- newpath
- mtrxc setmatrix
- moveto
- 0 setgray
- end
- }%
- \gdef\pst@code{}}%
- \def\@multips(##1)(##2)##3##4{\pst@misplaced\multips}%
- \def\nc@object##1##2##3##4{\pst@misplaced{node connection}}%
- \hbox to\z@{#2}%
- \endgroup%
- \def\endpsclip{%
- \end@psclip%
- \endgroup}%
- \ignorespaces}
-%
-\def\endpsclip{\pst@misplaced\endpsclip}
-\let\begin@psclip\relax
-\def\end@psclip{\pstVerb{currentpoint initclip moveto}}
-%
-\def\AltClipMode{%
- \def\end@psclip{\pstVerb{\pst@grestore}}%
- \def\begin@psclip{\pstVerb{gsave}}}
- \def\clipbox{\@ifnextchar[{\clipbox@}{\clipbox@[\z@]}}
-% DG modification begin - Apr. 3, 1997
-% From paulus@immd5.informatik.uni-erlangen.de (Dietrich Paulus)
-%\def\clipbox@[#1]{\pst@makebox\clipbox@@{#1}}
-\def\clipbox@[#1]{\pst@makebox{\clipbox@@{#1}}}
-% DG modification end
-\def\clipbox@@#1{%
- \pssetlength\pst@dimg{#1}%
- \leavevmode\hbox{%
- \begin@psclip%
- \pst@Verb{
- CM \tx@STV CP T newpath
- /a \pst@number\pst@dimg def
- /w \pst@number{\wd\pst@hbox}a add def
- /d \pst@number{\dp\pst@hbox}a add neg def
- /h \pst@number{\ht\pst@hbox}a add def
- a neg d moveto
- a neg h L
- w h L
- w d L
- closepath
- \pst@clipcommand
- newpath
- 0 0 moveto
- setmatrix}%
- \unhbox\pst@hbox%
- \end@psclip}}
-%
-\def\psshadowbox{\def\pst@par{}\pst@object{psshadowbox}}
-\def\psshadowbox@i{\pst@makebox\psshadowbox@ii}
-\def\psshadowbox@ii{%
-\begingroup
-\pst@useboxpar
-\psshadowtrue
-\psboxseptrue
-\def\psk@shadowangle{-45 }%
-\setbox\pst@hbox=\hbox{\psframebox@ii}%
-\pst@dimh=\psk@shadowsize\p@
-\pst@dimh=.7071\pst@dimh
-\pst@dimg=\dp\pst@hbox
-\advance\pst@dimg\pst@dimh
-\dp\pst@hbox=\pst@dimg
-\pst@dimg=\wd\pst@hbox
-\advance\pst@dimg\pst@dimh
-\wd\pst@hbox=\pst@dimg
-\leavevmode
-\box\pst@hbox
-\endgroup}
-%
-\def\pscirclebox{\pst@object{pscirclebox}}
-\def\pscirclebox@i{\pst@makebox\pscirclebox@ii}
-\def\pscirclebox@ii{%
- \begingroup
- \pst@useboxpar
- \setbox\pst@hbox=\hbox{%
- \pst@nodehook
- \pscirclebox@iii
- \box\pst@hbox}%
- \ifpsboxsep\pscirclebox@sep\fi
- \leavevmode
- \box\pst@hbox
- \endgroup
- \ignorespaces
-}
-\def\pscirclebox@iii{%
-\if@star
- \pslinewidth\z@
- \pstverb{\pst@dict \tx@STP \pst@usecolor\psfillcolor
- newpath \pscirclebox@iv \tx@SD end}%
-\else
- \begin@ClosedObj
- \def\pst@linetype{4}\showpointsfalse
- \addto@pscode{ \pscirclebox@iv\space CLW 2 div add 0 360 arc closepath}%
- \end@ClosedObj
-\fi
-}
-%
-\def\pscirclebox@iv{
- \pst@number{\wd\pst@hbox} 2 div
- \pst@number{\ht\pst@hbox} \pst@number{\dp\pst@hbox} add 2 div
- 2 copy \pst@number{\dp\pst@hbox} sub 4 2 roll
- \tx@Pyth \pst@number\psframesep add }
-%
-\def\pscirclebox@sep{%
- \pst@dimn=\ht\pst@hbox% % the height of the box
- \advance\pst@dimn by \dp\pst@hbox% % the depth of the box added to \pst@dimn
- \divide\pst@dimn by 2% % \pst@dimn/2
- \pst@dimm=0.5\wd\pst@hbox% % the half of the width
- \pst@Pyth\pst@dimm\pst@dimn\pst@dimo% % the diameter
- \advance\pst@dimo by \pslinewidth%
- \advance\pst@dimo by \psframesep%
- \advance\pst@dimn by -\pst@dimo%
- \setbox\pst@hbox=\hbox to 2\pst@dimo{\hss\vbox{\kern-\pst@dimn\box\pst@hbox}\hss}%
- \advance\pst@dimn by -\dp\pst@hbox%
- \dp\pst@hbox=-\pst@dimn}
-%
-\let\pst@nodehook\relax
-%
-\def\psCirclebox{\def\pst@par{}\pst@object{psCirclebox}}
-\def\psCirclebox@i{\pst@makebox\psCirclebox@ii}
-\def\psCirclebox@ii{%
- \begingroup
- \pst@useboxpar
- \pst@dima=\ht\pst@hbox
- \advance\pst@dima by -\dp\pst@hbox
- \divide\pst@dima\tw@
- \pssetlength\pst@dimb\psk@radius
- \setbox\pst@hbox=\hbox{%
- \pst@nodehook
- \pscircle(.5\wd\pst@hbox,\pst@dima){\pst@dimb}%
- \box\pst@hbox}%
- \ifpsboxsep \psCirclebox@sep \fi
- \leavevmode
- \box\pst@hbox
- \endgroup
-}
-%
-\def\psCirclebox@sep{%
- \pst@dimc=\pst@dimb
- \advance\pst@dimb-\pst@dima
- \advance\pst@dima\pst@dimc
- \setbox\pst@hbox=\hbox to\tw@\pst@dimc{%
- \hss\vrule width \z@ depth \pst@dimb height \pst@dima
- \box\pst@hbox\hss}}
-%
-\def\psovalbox{\def\pst@par{}\pst@object{psovalbox}}
-\def\psovalbox@i{\pst@makebox{\psovalbox@ii}}
-\def\psovalbox@ii{%
- \begingroup
- \pst@useboxpar
- \psovalbox@iii
- \ifpsboxsep\psovalbox@sep\fi
- \leavevmode
- \box\pst@hbox
- \endgroup}
-%
-\def\psovalbox@iii{%
- \psovalbox@iv
- \setbox\pst@hbox=\hbox{%
- \begin@ClosedObj
- \addto@pscode{%
- 0 360
- \pst@number\pst@dimc CLW 2 div sub
- \pst@number\pst@dimd CLW 2 div sub
- \pst@number\pst@dima
- \pst@number\pst@dimb
- \tx@Ellipse
- closepath }%
- \def\pst@linetype{2}%
- \end@ClosedObj
- \unhbox\pst@hbox}}
-%
-\def\psovalbox@iv{%
- \pst@dimc=\pslinewidth\advance\pst@dimc\psframesep
- \pst@dimd=\ht\pst@hbox\advance\pst@dimd\dp\pst@hbox
- \pst@dima=.5\wd\pst@hbox
- \pst@dimb=.5\pst@dimd\advance\pst@dimb-\dp\pst@hbox
- \pst@dimd=.707\pst@dimd
- \advance\pst@dimd\pst@dimc
- \advance\pst@dimc.707\wd\pst@hbox}
-%
-\def\psovalbox@sep{%
- \setbox\pst@hbox\hbox to 2\pst@dimc{\hss\unhbox\pst@hbox\hss}%
- \pst@dimg=\pst@dimd
- \advance\pst@dimg-\pst@dimb
- \dp\pst@hbox=\pst@dimg
- \advance\pst@dimd\pst@dimb
- \ht\pst@hbox=\pst@dimd}
-%
-\def\psdiabox{\def\pst@par{}\pst@object{psdiabox}}
-\def\psdiabox@i{\pst@makebox{\psdiabox@ii}}
-\def\psdiabox@ii{%
-\begingroup
-\pst@useboxpar
-\psdiabox@iii
-\ifpsboxsep\psdiabox@sep\fi
-\leavevmode
-\box\pst@hbox
-\endgroup}
-\def\psdiabox@iv{%
-\pst@dimg=.707\pslinewidth
-\advance\pst@dimg.707\psframesep
-\pst@dima=\wd\pst@hbox
-\divide\pst@dima 2
-\pst@dimc=\pst@dima
-\advance\pst@dimc\pst@dimg
-\pst@dimd=\ht\pst@hbox
-\advance\pst@dimd\dp\pst@hbox
-\divide\pst@dimd 2
-\pst@dimb=\pst@dimd
-\advance\pst@dimb-\dp\pst@hbox
-\advance\pst@dimd\pst@dimg}
-\def\psdiabox@iii{%
-\psdiabox@iv
-\setbox\pst@hbox=\hbox{%
-\begin@ClosedObj
-\addto@pscode{%
-\psline@iii
-pop
-.5
-\pst@number\pst@dimc 2 mul \pst@number\pst@dimd 2 mul
-0
-\pst@number\pst@dima \pst@number\pst@dimb
-\tx@Diamond}%
-\def\pst@linetype{4}%
-\end@ClosedObj
-\box\pst@hbox}}
-\def\psdiabox@sep{%
-\setbox\pst@hbox\hbox to 4\pst@dimc{\hss\unhbox\pst@hbox\hss}%
-\multiply\pst@dimd 2
-\advance\pst@dimd\pst@dimb
-\ht\pst@hbox\pst@dimd
-\advance\pst@dimd-2\pst@dimb
-\dp\pst@hbox\pst@dimd}
-%
-\define@key[psset]{pstricks}{trimode}[U]{\pst@expandafter\psset@@trimode{#1}\@empty\@empty\@nil}
-\def\psset@@trimode#1#2#3\@nil{%
- \let\pst@tempg#1\relax
- \ifx\pst@tempg*
- \let\psk@@trimode\@empty
- \let\pst@tempg#2\relax
- \else
- \let\psk@@trimode\relax
- \fi
- \edef\psk@trimode{%
- \ifx R\pst@tempg 1 % Right
- \else
- \ifx D\pst@tempg 2 % Down
- \else
- \ifx L\pst@tempg 3 % Left
- \else
- \ifx l\pst@tempg 4 % |_
- \else
- \ifx r\pst@tempg 5 % _|
- \else 0 \fi % Up
- \fi
- \fi
- \fi
- \fi}%
-}
-\psset[pstricks]{trimode=U}
-%
-\def\pstribox{\pst@object{pstribox}}
-\def\pstribox@i{\pst@makebox{\pstribox@ii}}
-\def\pstribox@ii{%
- \begingroup
- \pst@useboxpar
- \pstribox@iii
- \ifpsboxsep\pstribox@sep\fi
- \leavevmode
- \box\pst@hbox
- \endgroup}
-%
-\def\pstribox@iii{%
- \pstribox@iv
- \setbox\pst@hbox=\hbox{%
- \begin@ClosedObj
- \addto@pscode{
- \psline@iii
- pop
- 0.5
- \pst@number\pst@dimc % Width
- \pst@number\pst@dimd % Height
- \ifcase\psk@trimode
- \or %% 0
- exch \or %% 1
- \or %% 2
- exch \or %% 3
- \or %% 4
- \or %% 5
- \fi
- \psk@trimode -90 mul
- \pst@number\pst@dima % x coor for text
- \pst@number\pst@dimb % y coor for text
- \tx@Triangle}%
- \def\pst@linetype{2}%
- \end@ClosedObj
- \box\pst@hbox}%
-}
-%
-\def\pstribox@iv{%
- \pst@dimh=\pslinewidth
- \advance\pst@dimh\psframesep
- \pst@dimg=\ht\pst@hbox
- \advance\pst@dimg-\dp\pst@hbox % totalheight
- \divide\pst@dimg 2 % 0.5 totalheight
- \edef\pst@tempa{\number\pst@dimg sp}% % For use by nodes.
- \ifodd\psk@trimode %
- \pst@dimb\pst@dimg
- \else
- \pst@dima=\wd\pst@hbox
- \divide\pst@dima 2
- \fi
- \ifcase\psk@trimode
- \pst@dimb=-\dp\pst@hbox
- \advance\pst@dimb-\pst@dimh
- \or\pst@dima=-\pst@dimh
- \or\pst@dimb=\ht\pst@hbox
- \advance\pst@dimb\pst@dimh
- \or\pst@dima=\wd\pst@hbox
- \advance\pst@dima\pst@dimh
- \fi
- \pst@dimd=\dp\pst@hbox
- \advance\pst@dimd\ht\pst@hbox
- \ifx\psk@@trimode\relax% no star for trimode=
- \pst@dimc=\wd\pst@hbox
- \advance\pst@dimc\ifodd\psk@trimode 1.447\else 1.789\fi\pst@dimh
- \multiply\pst@dimc 2
- \advance\pst@dimd\ifodd\psk@trimode 1.789\else 1.447\fi\pst@dimh
- \multiply\pst@dimd 2
- \else% trimode=R*,L*,U*,D*
- \ifodd\psk@trimode
- \advance\pst@dimd 1.1547\wd\pst@hbox
- \advance\pst@dimd 3.4641\pst@dimh
- \pst@dimc=.866\pst@dimd
- \else
- \advance\pst@dimd .866\wd\pst@hbox %.866=(sqrt(3)/2)
- \advance\pst@dimd 3\pst@dimh
- \pst@dimc=1.1547\pst@dimd % 1.1547=(2/sqrt(3))
- \fi
- \fi}
-%
-\def\pstribox@sep{%
-\ifodd\psk@trimode
-\advance\pst@dimb.5\pst@dimd
-\ht\pst@hbox=\pst@dimb
-\advance\pst@dimd-\pst@dimb
-\dp\pst@hbox=\pst@dimd
-\else
-\setbox\pst@hbox\hbox to \pst@dimc{\hss\unhbox\pst@hbox\hss}%
-\global\pst@dimg=.5\pst@dimc
-\fi
-\ifcase\psk@trimode
-\dp\pst@hbox-\pst@dimb
-\advance\pst@dimd\pst@dimb
-\ht\pst@hbox\pst@dimd
-\or
-\pst@dimg=.5\wd\pst@hbox
-\global\advance\pst@dimg-\pst@dima
-\setbox\pst@hbox\hbox to \pst@dimc{\kern-\pst@dima\box\pst@hbox\hss}%
-\or
-\ht\pst@hbox\pst@dimb
-\advance\pst@dimd-\pst@dimb
-\dp\pst@hbox\pst@dimd
-\or
-\pst@dimg=\pst@dimc
-\advance\pst@dimg-\pst@dima
-\global\advance\pst@dimg.5\wd\pst@hbox
-\setbox\pst@hbox\hbox to \pst@dimc{%
-\hss\box\pst@hbox\kern\psframesep\kern\pslinewidth}%
-\fi}
-%
-\define@key[psset]{pstricks}{arcsepA}[0]{\pst@getlength{#1}\psk@arcsepA}
-\define@key[psset]{pstricks}{arcsepB}[0]{\pst@getlength{#1}\psk@arcsepB}
-\define@key[psset]{pstricks}{arcsep}[0]{%
- \pst@getlength{#1}\psk@arcsepA\let\psk@arcsepB\psk@arcsepA}
-\psset[pstricks]{arcsep=0}
-\def\tx@ArcArrow{ArcArrow }
-%
-\def\psarc{\pst@object{psarc}}
-\def\psarc@i{\@ifnextchar({\psarc@iii}{\psarc@ii}}
-\def\psarc@ii#1{\addto@par{arrows=#1}\@ifnextchar(\psarc@iii{\psarc@iii(0,0)}}
-\def\psarc@iii(#1)#2#3#4{%
- \pst@getangle{#3}\pst@tempa
- \pst@getangle{#4}\pst@tempb
- \ifx\pst@tempa\pst@tempb
- \else
- \begin@OpenObj
- \pst@@getcoor{#1}%
- \pssetlength\pst@dima{#2}%
- \addto@pscode{\psarc@iv \psarc@v
- \ifPst@variableLW \pst@flattenpath \fi
- }%
- \gdef\psarc@type{0}%
- \showpointsfalse
- \end@OpenObj
- \fi
-}
-%
-\def\psarcOA{\pst@object{psarcOA}}% \psarcOA[..](O)(A){angle1}{angle2}
-\def\psarcOA@i{\@ifnextchar({\psarcOA@iii}{\psarcOA@ii}}
-\def\psarcOA@ii#1{\addto@par{arrows=#1}\@ifnextchar(\psarcOA@iii{\psarcOA@iii(0,0)}}
-\def\psarcOA@iii(#1)(#2)#3#4{%
- \pst@getangle{#3}\pst@tempa
- \pst@getangle{#4}\pst@tempb
- \ifx\pst@tempa\pst@tempb
- \else
- \begin@OpenObj
- \pst@getcoor{#1}\pst@tempA
- \pst@getcoor{#2}\pst@tempB
- \addto@pscode{
- \pst@tempA 2 copy /y ED /x ED \pst@tempB Pyth2 /r ED
- x y translate
- /c 57.2957 r \tx@Div def
- /angleA
- \pst@tempa
- \psk@arcsepA c mul 2 div
- \ifcase\psarc@type add \or sub \fi def
- /angleB
- \pst@tempb
- \psk@arcsepB c mul 2 div
- \ifcase\psarc@type sub \or add \fi def
- \ifshowpoints\psarc@showpoints\fi
- \ifx\psk@arrowA\@empty
- \ifnum\psk@liftpen=2
- r angleA \tx@PtoC moveto
- \fi
- \fi
- /angleAtoB angleB angleA gt { true }{ false } ifelse def
- 0 0 r
- angleA
- \ifx\psk@arrowA\@empty\else
- { ArrowA CP }
- r 0 gt \pslbrace
- { \ifcase\psarc@type add \or sub \fi } \psrbrace\pslbrace
- { \ifcase\psarc@type sub \or add \fi } \psrbrace ifelse
-% { \ifcase\psarc@type add \or sub \fi }
- \tx@ArcArrow
-% dup AngleA gt AngleAtoB exor { neg } fi
- \fi
- angleB
- \ifx\psk@arrowB\@empty\else
- { ArrowB }
- r 0 gt \pslbrace
- { \ifcase\psarc@type sub \or add \fi } \psrbrace\pslbrace
- { \ifcase\psarc@type add \or sub \fi } \psrbrace ifelse
-% { \ifcase\psarc@type sub \or add \fi }
- \tx@ArcArrow
- dup angleA gt angleAtoB xor { pop angleA } if
- \fi
- \ifcase\psarc@type arc \or arcn \fi
- \ifPst@variableLW \pst@flattenpath \fi
- x neg y neg translate
- }%
- \gdef\psarc@type{0}%
- \showpointsfalse
- \end@OpenObj
- \fi
-}
-\def\psarc@iv{%
- \pst@coor /y ED /x ED
- /r \ifPst@SpecialLength \pst@SpecialLength \else \pst@number\pst@dima \fi def
- /c 57.2957 r \tx@Div def
- /angleA
- \pst@tempa
- \psk@arcsepA c mul 2 div
- \ifcase\psarc@type add \or sub \fi
- def
- /angleB
- \pst@tempb
- \psk@arcsepB c mul 2 div
- \ifcase\psarc@type sub \or add \fi
- def
- \ifshowpoints\psarc@showpoints\fi
- \ifx\psk@arrowA\@empty
- \ifnum\psk@liftpen=2
- r angleA \tx@PtoC
- y add exch x add exch moveto
- \fi
- \fi}
-% hv ---- 1.10 2005-05-05 ----------------------> hv begin
-\def\psarc@v{%
- /angleAtoB angleB angleA gt { true }{ false } ifelse def
- x y r
- angleA
- \ifx\psk@arrowA\@empty\else
- { ArrowA CP }
- r 0 gt \pslbrace
- { \ifcase\psarc@type add \or sub \fi } \psrbrace\pslbrace
- { \ifcase\psarc@type sub \or add \fi } \psrbrace ifelse
-% { \ifcase\psarc@type add \or sub \fi }
- \tx@ArcArrow
-% dup AngleA gt AngleAtoB exor { neg } fi
- \fi
- angleB
- \ifx\psk@arrowB\@empty\else
- { ArrowB }
- r 0 gt \pslbrace
- { \ifcase\psarc@type sub \or add \fi } \psrbrace\pslbrace
- { \ifcase\psarc@type add \or sub \fi } \psrbrace ifelse
-% { \ifcase\psarc@type sub \or add \fi }
- \tx@ArcArrow
- dup angleA gt angleAtoB xor { pop angleA } if
- \fi
- \ifcase\psarc@type arc \or arcn \fi
-}
-% hv ----- 1.10 2005-05-05 ------------------------> end
-%
-\def\psarc@type{0}
-\def\psarc@showpoints{%
- gsave
- newpath
- x y moveto
- x y r \pst@tempa \pst@tempb
- \ifcase\psarc@type arc \or arcn \fi
- closepath
- CLW 2 div SLW
- [ \psk@dash\space ] 0 setdash stroke
- grestore }
-\def\psarcn{\def\pst@par{}\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{\def\pst@par{}\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
-%
-% I - Definition of \psellipticwedge, a generalization of \pswedge for wedges
-% of ellipses (from the code of \pswedge and \psellipse)
-%
-\def\psellipticwedge{\pst@object{psellipticwedge}}
-\def\psellipticwedge@i(#1){%
- \@ifnextchar({\psellipticwedge@ii(#1)}{\psellipticwedge@ii(0,0)(#1)}}
-\def\psellipticwedge@ii(#1)(#2)#3#4{%
- \begin@ClosedObj
- \pst@getangle{#3}\pst@tempa
- \pst@getangle{#4}\pst@tempb
- \pst@getcoor{#1}\pst@tempc
- \pst@@getcoor{#2}%
- \def\pst@linetype{1}%
- \addto@pscode{%
- \pst@coor /ry ED /rx ED
- \ifx\psk@rot\@empty \else \psk@rot\space rotate \fi
- \pst@tempa
- \ifPst@correctAngle
- cvi 90 mod 0 eq { \pst@tempa }
- { rx abs ry abs sub cvi 0 eq { \pst@tempa }{ rx ry
- \tx@UserCoor exch \pst@tempa tan mul exch atan
- \pst@tempa 180 div 0.5 add floor
- 180 mul sub } ifelse } ifelse
- \fi
- \pst@tempb
- \ifPst@correctAngle
- cvi 90 mod 0 eq { \pst@tempb }
- { rx abs ry abs sub cvi 0 eq { \pst@tempb }{ rx ry
- \tx@UserCoor exch \pst@tempb tan mul exch atan
- \pst@tempb 180 div 0.5 add floor
- 180 mul sub } ifelse } ifelse
- \fi
- rx ry
- \pst@tempc moveto
- \ifdim\psk@dimen\p@=\z@\else
- \psk@dimen CLW mul dup 3 1 roll
- sub 3 1 roll sub exch
- \fi
- \pst@tempc
- \tx@Ellipse
- closepath
- }%
- \showpointsfalse
- \end@ClosedObj%
-}
-%
-% Code mainly from "pstricks.tex'' 0.94 beta (TvZ)
-%
-\def\psellipticarcn{\pst@object{psellipticarcn}}
-\def\psellipticarcn@i{\let\if@psarcn\iftrue\psellipticarc@ii}
-%
-\def\psellipticarc{\pst@object{psellipticarc}}
-\def\psellipticarc@i{\let\if@psarcn\iffalse\psellipticarc@ii}
-
-\define@boolkey[psset]{pstricks}[Pst@]{correctAngle}[true]{}
-\psset{correctAngle}
-
-\let\if@psarcn\iffalse
-
-\def\psellipticarc@ii{\pst@getarrows\psellipticarc@iii}
-\def\psellipticarc@iii(#1){%
- \@ifnextchar({\psellipticarc@iv(#1)}{\psellipticarc@iv(0,0)(#1)}}
-\def\psellipticarc@iv(#1)(#2)#3#4{%
-% \addbefore@par{correctAngle=false}
- \pst@getangle{#3}\pst@tempc % start angle
- \pst@getangle{#4}\pst@tempd % end angle
- \ifx\pst@tempc\pst@tempd
- \else % same angles? then do nothing
- \begin@OpenObj
- \pst@getcoor{#1}\pst@tempa % origin
- \pst@getcoor{#2}\pst@tempb % a b
- \addto@pscode{
- \psellipticarc@definearg \psellipticarc@draw
- \ifPst@variableLW \pst@flattenpath \fi
- \ifshowpoints{}
- gsave
- xOrig yOrig T % set origin to ellipse origin
- \ifx\psk@rot\@empty \else \psk@rot\space rotate \fi
- rx ry scale % now we draw a circle :-)
- 1 \pst@tempc % start angle
- \ifPst@correctAngle
- cvi 90 mod 0 eq { \pst@tempc }
- { rx abs ry abs sub cvi 0 eq { \pst@tempc }{ rx ry
- \tx@UserCoor exch \pst@tempc tan mul exch atan
- \pst@tempc 180 div 0.5 add floor
- 180 mul sub } ifelse } ifelse
- \fi
- PtoC moveto
- 0 0 lineto
- 1 \pst@tempd % end angle
- \ifPst@correctAngle
- cvi 90 mod 0 eq { \pst@tempd }
- { rx ry \tx@UserCoor exch \pst@tempd tan mul exch atan
- \pst@tempd 180 div .5 add floor 180 mul sub } ifelse
- \fi
- PtoC lineto 0 0 lineto
- closepath
- % \ifcase\psarc@type arc \or arcn \fi
- CLW 3 div \pst@number\psunit div SLW
- [ 1 1 \tx@UserCoor 2 mul ] 0 setdash
- stroke
- grestore
- \fi
- }%
- \showpointsfalse
- \end@OpenObj
- \fi
-}
-\def\psellipticarc@definearg{%
-% \ifx\psk@rot\@empty \else \psk@rot\space rotate \fi
- \pst@tempa /yOrig ED /xOrig ED % Origin
- \pst@tempb % radii. Now adjust:
- \ifdim\psk@dimen\p@=\z@\else
- \psk@dimen CLW mul dup 3 1 roll
- sub 3 1 roll sub exch
- \fi
- /ry ED /rx ED % a b
- /angleA
- /d { \if@psarcn sub \else add \fi } def
-% \pst@tempc
-% the angle in the parameter equation is not proportional to the real angle!
-% phi=atan(b*tan(angle)/a)+floor(angle/180+0.5)*180
- \pst@tempc
- \ifPst@correctAngle
- cvi 90 mod 0 eq { \pst@tempc }
- { rx ry \tx@UserCoor exch \pst@tempc tan mul exch atan
- \pst@tempc 180 div .5 add floor 180 mul sub } ifelse
- \fi
- \psk@arcsepA 2 div
- ArcAdjust
- def
- /angleB
- /d { \if@psarcn add \else sub \fi } def
-% \pst@tempd
- \pst@tempd
- \ifPst@correctAngle
- cvi 90 mod 0 eq { \pst@tempd }
- { rx ry \tx@UserCoor exch \pst@tempd tan mul exch atan
- \pst@tempd 180 div .5 add floor 180 mul sub } ifelse
- \fi
- \psk@arcsepB 2 div ArcAdjust def
-% \ifshowpoints\psellipticarc@showpoints\fi
- \ifx\psk@arrowA\@empty
- \ifnum\psk@liftpen=2
- angleA cos rx mul xOrig add
- angleA sin ry mul yOrig add
- moveto
- \fi%
- \fi%
-}
-\def\psellipticarc@draw{%
- 0 0 1
- angleA
- \ifx\psk@arrowA\@empty\else
- { ArrowA CP }
- { \if@psarcn sub \else add \fi }
- EllipticArcArrow
- \fi
- angleB
- \ifx\psk@arrowB\@empty\else
- { ArrowB }
- { \if@psarcn add \else sub \fi }
- EllipticArcArrow
- \fi
- /mtrx CM def
- xOrig yOrig T
- \ifx\psk@rot\@empty \else \psk@rot\space rotate \fi
- rx ry scale
- \pst@ifcustom\else
- 0 0 moveto
- exch dup dup % end start start start
- cos exch sin moveto % end start
- exch % start end
- \fi
-%% \if@star 0 0 moveto \fi % for filling
- \if@psarcn arcn \else arc \fi
-%% \if@star 0 0 moveto \fi
- mtrx setmatrix%
-}
-\def\psellipticarc@showpoints{%
- gsave
- /mtrx CM def
- xOrig yOrig T
- rx ry scale
- 0 0 moveto
- 0 0 1
- \pst@tempc % start angle
- \ifPst@correctAngle
- cvi 90 mod 0 eq { \pst@tempc }
- { rx abs ry abs sub cvi 0 eq { \pst@tempc }{ rx ry
- \tx@UserCoor exch \pst@tempc tan mul exch atan
- \pst@tempc 180 div 0.5 add floor
- 180 mul sub } ifelse } ifelse
- \fi
- \pst@tempd % end angle
- \ifPst@correctAngle
- cvi 90 mod 0 eq { \pst@tempd }
- { rx abs ry abs sub cvi 0 eq { \pst@tempd } { rx ry
- \tx@UserCoor exch \pst@tempd tan mul exch atan
- \pst@tempd 180 div 0.5 add floor
- 180 mul sub } ifelse } ifelse
- \fi
- \ifcase\psarc@type arc \or arcn \fi
- closepath
- mtrx setmatrix
- CLW 2 div SLW
- [ \psk@dash\space ] 0 setdash
- stroke
- grestore %
-}
-\def\pscircle{\def\pst@par{}\pst@object{pscircle}}
-\def\pscircle@i{\@ifnextchar({\pscircle@do}{\pscircle@do(0,0)}}
-\def\pscircle@do(#1)#2{%
- \if@star{\use@par\qdisk(#1){#2}}% qdisk does not allow
- \else% to use opacity option
- \addbefore@par{dimen=middle}%
- \begin@ClosedObj
- \pst@@getcoor{#1}%
- \pssetlength\pst@dimc{#2}%
- \def\pst@linetype{4}%
- \addto@pscode{
- \pst@coor 2 copy moveto
- \ifPst@SpecialLength \pst@SpecialLength \else \pst@number\pst@dimc \fi
- \psk@dimen CLW mul round % prevent rounding errors
- sub
- dup 0 rmoveto
- 0 360 arc
- \ifPst@variableLW \pst@flattenpath \fi
- closepath
- }%
- \showpointsfalse
- \end@ClosedObj
- \fi
- \ignorespaces}
-%
-\def\pscircleOA{\def\pst@par{}\pst@object{pscircleOA}}% hv 2008-04-14
-\def\pscircleOA@i(#1)(#2){%
- \addbefore@par{dimen=middle}%
- \begin@ClosedObj
- \pst@getcoor{#1}\pst@tempA
- \pst@@getcoor{#2}%
- \def\pst@linetype{4}%
- \addto@pscode{
- \pst@tempA % x0 y0
- 2 copy % xO yO xO yO
- \pst@coor % xO yO xO yO xA yA
- Pyth2 % xO yO radius
- \psk@dimen CLW mul sub
- \if@star \tx@SD \else
- 0 360 arc
- closepath
- \fi }%
- \showpointsfalse
- \end@ClosedObj
- \ignorespaces}
-%
-\def\qdisk(#1)#2{%
- \def\pst@par{}%
- \begin@SpecialObj
- \pst@@getcoor{#1}%
- \pssetlength\pst@dimg{#2}%
- \addto@pscode{
- \pst@coor
- \ifPst@SpecialLength \pst@SpecialLength \else \pst@number\pst@dimg \fi
-% \pst@number\pst@dimg
- \tx@SD }%
- \end@SpecialObj}
-%
-\define@key[psset]{pstricks}{radius}[0.25cm]{\pst@@getlength{#1}\psk@radius}
-\psset[pstricks]{radius=.25cm}
-%
-\def\psCircle{\pst@object{psCircle}}% same as \pscircle, but uses \psk@radius
-\def\psCircle@i{\@ifnextchar({\psCircle@ii}{\psCircle@ii(0,0)}}
-\def\psCircle@ii(#1){\pscircle@do(#1){\psk@radius}}
-%
-\def\psRing{\def\pst@par{}\pst@object{psRing}}%% hv 20130405
-\def\psRing@i{\@ifnextchar({\psRing@ii}{\psRing@ii(0,0)}}
-\def\psRing@ii(#1){%
- \pst@@getcoor{#1}%
- \@ifnextchar[{\psRing@iii}{\psRing@iii[0,360]}}
-\def\psRing@iii[#1,#2]#3#4{% origin, inner radius, outer radius
- \begin@ClosedObj
- \pssetlength\pst@dimc{#3}%
- \edef\pst@tempA{\ifPst@SpecialLength \pst@SpecialLength \else \pst@number\pst@dimc \fi}%
- \pssetlength\pst@dimd{#4}%
- \edef\pst@tempB{\ifPst@SpecialLength \pst@SpecialLength \else \pst@number\pst@dimd \fi}%
- \pst@getangle{#1}\pst@tempa
- \pst@getangle{#2}\pst@tempb
- \def\pst@linetype{4}%
- \addto@pscode{
- \pst@coor translate
-% \pst@number\pst@dimc \psk@dimen CLW mul sub /InnerRadius ED
-% \pst@number\pst@dimd \psk@dimen CLW mul sub /OuterRadius ED
- \pst@tempA\space \psk@dimen CLW mul sub /InnerRadius ED
- \pst@tempB\space \psk@dimen CLW mul sub /OuterRadius ED
- InnerRadius 0 moveto newpath
- 0 0 InnerRadius \pst@tempa\space \pst@tempb\space arc
- OuterRadius \pst@tempb\space PtoC
- \pst@tempb\space \pst@tempa\space sub abs 360 eq { moveto }{ lineto } ifelse % whole circle or not??
- 0 0 OuterRadius \pst@tempb\space \pst@tempa\space arcn
- closepath
- }%
- \showpointsfalse
- \end@ClosedObj
- \ignorespaces}
-%
-\def\pswedge{\def\pst@par{}\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
- \pst@@getcoor{#1}%
- \def\pst@linetype{1}%
- \addto@pscode{
- \ifx\psk@rot\@empty 0 \else \psk@rot \fi rotate
- \pst@coor
- 2 copy
- moveto
- \ifPst@SpecialLength \pst@SpecialLength \else \pst@number\pst@dimc \fi
- \psk@dimen CLW mul sub % Adjusted radius
- \pst@tempa \pst@tempb
- arc
- closepath}%
- \showpointsfalse
- \end@ClosedObj
-}
-\def\tx@ellipse#1{ \ifx\psk@rot\@empty 0 \else \psk@rot \fi #1 Ellipse }
-\def\tx@Ellipse{ \ifx\psk@rot\@empty 0 \else \psk@rot \fi Ellipse }
-%
-\def\psellipse{\def\pst@par{}\pst@object{psellipse}}
-\def\psellipse@i(#1){\@ifnextchar({\psellipse@ii(#1)}{\psellipse@ii(0,0)(#1)}}
-\def\psellipse@ii(#1)(#2){%
- \begin@ClosedObj
- \pst@getcoor{#1}\pst@tempa
- \pst@@getcoor{#2}%
- \addto@pscode{
- 0 360
- \pst@coor
- \ifdim\psk@dimen\p@=\z@\else
- \psk@dimen CLW mul
- dup 4 -1 roll sub neg 3 1 roll sub
- \fi
- \pst@tempa
- \tx@ellipse{true}
- \ifPst@variableLW \pst@flattenpath \fi
- closepath
- }%
- \def\pst@linetype{2}%
- \end@ClosedObj%
-}
-\def\psellipseAB{\def\pst@par{}\pst@object{psellipseAB}}
-\def\psellipseAB@i(#1)(#2)#3{%
- \begin@ClosedObj
- \pst@getcoor{#1}\pst@tempa
- \pst@getcoor{#2}\pst@tempb
- \addto@pscode{
- 0 360
- #3 \pst@number\psxunit mul
- \pst@tempa /yA ED /xA ED
- \pst@tempb /yB ED /xB ED
- xA xB sub dup mul
- yA yB sub dup mul add sqrt 2 div
- \ifdim\psk@dimen\p@=\z@\else
- \psk@dimen CLW mul
- dup 4 -1 roll sub neg 3 1 roll sub
- \fi
- xA xB add 2 div yA yB add 2 div
- translate 0 0
- xB xA sub yA yB sub atan
- Ellipse % on stack is rotate coordinates
- \ifPst@variableLW \pst@flattenpath \fi
- closepath
- }%
- \def\pst@linetype{2}%
- \end@ClosedObj
-}
-\def\multips{\@ifnextchar({\def\pst@par{}\multips@ii}{\multips@i}}
-\def\multips@i#1{\def\pst@par{rot=#1}\multips@ii}
-\def\multips@ii(#1){\@ifnextchar({\multips@iii(#1)}{\multips@iii(\z@,\z@)(#1)}}
-\long\def\multips@iii(#1)(#2)#3#4{%
- \begingroup
-%----------------- hv 1.10 ------------------
- \pst@killglue
-%----------------- hv 1.10 ------------------
- \use@par
- \pst@getcoor{#1}\pst@tempa
- \pst@@getcoor{#2}%
- \pst@cnta=#3\relax
- \init@pscode
- \addto@pscode{%
- \pst@tempa T \the\pst@cnta\space \pslbrace
- gsave \ifx\psk@rot\@empty\else\psk@rot rotate \fi}%
- \hbox to\z@{%
- \def\init@pscode{%
- \addto@pscode{%
- gsave
- \pst@number\pslinewidth SLW
- \pst@usecolor\pslinecolor}}%
- \def\use@pscode{\addto@pscode{grestore}}%
- \def\psclip##1{\pst@misplaced\psclip}%
- \def\nc@object##1##2##3##4{\pst@misplaced{node connection}}%
- #4%
- }%
- \addto@pscode{grestore \pst@coor T \psrbrace repeat}%
- \leavevmode
- \use@pscode
- \endgroup
- \ignorespaces}
-\def\psscalebox#1{\pst@makebox{\ps@scalebox{#1}}}
-\def\ps@scalebox#1{%
- \begingroup%
- \pst@getscale{#1}\pst@tempa%
- \let\pst@tempc\pst@tempg%
- \let\pst@tempd\pst@temph%
- \ps@@scalebox%
- \endgroup}
-\def\ps@@scalebox{%
- \leavevmode%
- \hbox{%
- \ifdim\pst@tempd\p@<\z@%
- \pst@dimg=\pst@tempd\ht\pst@hbox%
- \pst@dimh=\pst@tempd\dp\pst@hbox%
- \dp\pst@hbox=-\pst@dimg%
- \ht\pst@hbox=-\pst@dimh%
- \else%
- \ht\pst@hbox=\pst@tempd\ht\pst@hbox%
- \dp\pst@hbox=\pst@tempd\dp\pst@hbox%
- \fi%
- \pst@dima=\pst@tempc\wd\pst@hbox%
- \ifdim\pst@dima<\z@\kern-\pst@dima\fi%
- \pst@Verb{CP CP translate \pst@tempa \tx@NET}%
- \hbox to \z@{\box\pst@hbox\hss}%
- \pst@Verb{
- CP CP translate
- 1 \pst@tempc div 1 \pst@tempd div scale
- \tx@NET}%
- \ifdim\pst@dima>\z@\kern\pst@dima\fi%
- }%
-}
-\pslongbox{Scalebox}{\psscalebox}
-%
-\def\psscaleboxto(#1,#2){\pst@makebox{\ps@scaleboxto(#1,#2)}}
-\def\ps@scaleboxto(#1,#2){%
- \begingroup
- \pssetlength\pst@dima{#1}%
- \pssetlength\pst@dimb{#2}%
- \ifdim\pst@dima=\z@\else
- \pst@divide{\pst@dima}{\wd\pst@hbox}\pst@tempc
- \edef\pst@tempc{\pst@tempc\space}%
- \fi
- \ifdim\pst@dimb=\z@
- \ifdim\pst@dima=\z@
- \@pstrickserr{%
- \string\psscaleboxto\space dimensions cannot both be zero}\@ehpa
- \def\pst@tempa{}%
- \def\pst@tempc{1 }%
- \def\pst@tempd{1 }%
- \else
- \let\pst@tempd\pst@tempc
- \fi
- \else
- \pst@dimc=\ht\pst@hbox
- \advance\pst@dimc\dp\pst@hbox
- \pst@divide{\pst@dimb}{\pst@dimc}\pst@tempd
- \edef\pst@tempd{\pst@tempd\space}%
- \ifdim\pst@dima=\z@ \let\pst@tempc\pst@tempd \fi
- \fi
- \edef\pst@tempa{\pst@tempc \pst@tempd scale }%
- \ps@@scalebox
- \endgroup}
-\pslongbox{Scaleboxto}{\psscaleboxto}
-%
-\def\tx@Rot{Rot }
-\def\psrotateleft{\pst@makebox{\ps@rotateleft\pst@hbox}}
-\def\ps@rotateleft#1{%
-\leavevmode\hbox{\hskip\ht#1\hskip\dp#1\vbox{\vskip\wd#1%
-\pst@Verb{90 \tx@Rot}
-\vbox to \z@{\vss\hbox to \z@{\box#1\hss}\vskip\z@}%
-\pst@Verb{-90 \tx@Rot}}}}
-\def\psrotateright{\pst@makebox{\ps@rotateright\pst@hbox}}
-\def\ps@rotateright#1{%
-% ----------- hv begin 2004-05-07 ----------- patch 15
-% \hbox{%
- \leavevmode\hbox{%
-% ----------- hv end 2004-05-07 ----------- patch 15
- \hskip\ht#1\hskip\dp#1\vbox{\vskip\wd#1%
- \pst@Verb{-90 \tx@Rot}
- \vbox to \z@{\hbox to \z@{\hss\box#1}\vss}%
- \pst@Verb{90 \tx@Rot}}}}
-\def\psrotatedown{\pst@makebox{\ps@rotatedown\pst@hbox}}
-\def\ps@rotatedown#1{%
-\hbox{\hskip\wd#1\vbox{\vskip\ht#1\vskip\dp#1%
-\pst@Verb{180 \tx@Rot}%
-\vbox to \z@{\hbox to \z@{\box#1\hss}\vss}%
-\pst@Verb{-180 \tx@Rot}}}}
-\pslongbox{Rotateleft}{\psrotateleft}
-\pslongbox{Rotateright}{\psrotateright}
-\pslongbox{Rotatedown}{\psrotatedown}
-% ----------- hv begin 2004-09-23 ----------- 1.11
-% compatibility stuff
-\let\rotateleft\psrotateleft
-\let\rotateright\psrotateright
-\let\rotatedown\psrotatedown
-% ----------- hv end 2005-09-23 ----------- 1.11
-\def\pst@starbox{%
-\setbox\pst@hbox\hbox{\psframebox*[boxsep=false]{\unhbox\pst@hbox}}}
-\def\pst@@makesmall#1{%
-\setbox#1=\hbox to\z@{\hss\vbox to \z@{\vss\box#1\vss}\hss}}
-\def\pst@@@makesmall#1{%
-\pst@dimh=\psk@xref\wd#1%
-\ifx\psk@yref\relax
-\pst@dimg=\dp#1%
-\else
-\pst@dimg=\psk@yref\ht#1%
-\advance\pst@dimg\psk@yref\dp#1%
-\fi
-\setbox#1=\hbox to\z@{%
-\kern-\pst@dimh\vbox to\z@{\vss\box#1\kern-\pst@dimg}\hss}}
-%
-\define@key[psset]{pstricks}{ref}[c]{\pst@expandafter\psset@@ref{#1}\@empty,,\@nil}
-\def\psset@@ref#1#2,#3,#4\@nil{%
- \def\psk@xref{.5}%
- \def\psk@yref{.5}%
- \let\pst@makesmall\pst@@@makesmall
- \ifx\@empty#3\@empty
- \@nameuse{getref@#1}%
- \@nameuse{getref@#2}%
- \else
- \pst@checknum{#1#2}\psk@xref
- \pst@checknum{#3}\psk@yref
- \fi}
-%
-\def\getref@c{\let\pst@makesmall\pst@@makesmall}
-\def\getref@t{\def\psk@yref{1}}
-\def\getref@b{\def\psk@yref{0}}
-\def\getref@B{\let\psk@yref\relax}
-\def\getref@l{\def\psk@xref{0}}
-\def\getref@r{\def\psk@xref{1}}
-\psset[pstricks]{ref=c}
-%
-\def\pst@rotlist{ mark RAngle /ps@a ED cleartomark ps@a neg }
-\def\pst@rottable{%
-@0=%
-@U=%
-@L=90 %
-@D=180 %
-@R=-90 %
-@N=\pst@rotlist
-@W=\pst@rotlist 90 add %
-@S=\pst@rotlist 180 add %
-@E=\pst@rotlist 90 sub }
-%
-\define@key[psset]{pstricks}{rot}[0]{%
- \pst@expandafter{\@ifnextchar*{\psset@@@rot}{\psset@@rot}}{#1}\@nil}
-\def\psset@@rot#1\@nil{%
- \def\next##1@#1=##2@##3\@nil{%
- \ifx##2\relax\pst@getangle{#1}\psk@rot \else\def\psk@rot{##2}\fi%
- \pst@Verb{ gsave STV CP T /ps@rot \ifx\psk@rot\@empty 0 \else \psk@rot \fi def grestore }% (MJS)
- }%
- \expandafter\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\space ps@rot add \fi}%
- \pst@Verb{ gsave STV CP T /ps@rot \ifx\psk@rot\@empty 0 \else \psk@rot \fi def grestore }}% (MJS)
-%
-%\def\psset@@rot#1\@nil{%
-%\def\ps@next##1@#1=##2@##3\@nil{%
-%\ifx\relax##2\pst@getangle{#1}\psk@rot\else\def\psk@rot{##2}\fi}%
-%\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}}
-\psset[pstricks]{rot=0}
-%
-\def\tx@RotBegin{RotBegin }
-\def\tx@RotEnd{RotEnd }
-\def\pst@rotate#1#2{%
- \ifx#1\@empty\else
- \setbox#2=\hbox{\pst@Verb{#1 \tx@RotBegin}\box#2\pst@Verb{\tx@RotEnd}}%
- \fi%
-}
-\def\psput@cartesian#1{%
-\hbox to \z@{\kern\pst@dimg{\vbox to \z@{\vss\box#1\vskip\pst@dimh}\hss}}%
-}
-\def\psput@special#1{%
- \hbox{%
- \pst@Verb{{ \pst@coor \pstnodescale } \tx@PutCoor \tx@PutBegin }% 20150911 hv
- \box#1%
- \pst@Verb{ \tx@PutEnd }%
- }%
-}
-\def\tx@PutCoor{PutCoor }
-\def\tx@PutBegin{PutBegin }
-\def\tx@PutEnd{PutEnd }
-\def\rput{\def\pst@par{}\pst@ifstar{\@ifnextchar[{\rput@i}{\rput@ii}}}
-\def\rput@i[#1]{%
- \test@for@options#1=\@nil
- \ifnum\the\pst@cntm=\z@
- \addto@par{ref={#1}}%
- \else
- \expandafter\addto@par\expandafter{#1}%
- \fi
- \rput@ii
-}
-\def\test@for@options#1=#2\@nil{%
- \if$#2$% #2 is empty -> old syntax
- \pst@cntm=\z@
- \else % something like foo=bar
- \pst@cntm=\@ne
- \fi
-}
-
-\def\rput@ii{\@ifnextchar({\rput@iv}{\rput@iii}}
-\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
- \ifx\psk@rot\@empty\else\pst@rotate{ps@rot }\pst@hbox\fi% (MJS)
-% \pst@rotate\psk@rot\pst@hbox%
- \psput@{#1}\pst@hbox%
- \endgroup
- \ignorespaces}
-%
-\def\multirput{%
- \def\pst@par{}%
- \pst@ifstar{\@ifnextchar[{\multirput@i}{\multirput@ii}}}
-\def\multirput@i[#1]{\addto@par{ref={#1}}\multirput@ii}
-\def\multirput@ii{\@ifnextchar({\multirput@iv}{\multirput@iii}}
-\def\multirput@iii#1{\addto@par{rot={#1}}\multirput@iv}
-\def\multirput@iv(#1){%
- \@ifnextchar({\multirput@v(#1)}{\multirput@v(\z@,\z@)(#1)}}
-\def\multirput@v(#1,#2)(#3,#4)#5{%
- \pst@makebox{\multirput@vi(#1,#2)(#3,#4){#5}}}
-\def\multirput@vi(#1,#2)(#3,#4)#5{%
- \pst@killglue%
- \global\psLoopIndex=\@ne\relax
- \begingroup
- \use@par
- \if@star\pst@starbox\fi
- \pst@makesmall\pst@hbox
- \ifx\psk@rot\@empty\else\pst@rotate{ps@rot }\pst@hbox\fi% (MJS)
-% \pst@rotate\psk@rot\pst@hbox
- \pssetxlength\pst@dima{#1}%
- \pssetylength\pst@dimb{#2}%
- \pssetxlength\pst@dimc{#3}%
- \pssetylength\pst@dimd{#4}%
- \pst@cntg=#5\relax
- \leavevmode
- \loop
- \vbox to \z@{%
- \vss
- \hbox to \z@{\kern\pst@dima\copy\pst@hbox\hss}%
- \vskip\pst@dimb%
- }%
- \ifnum\pst@cntg>\psLoopIndex
- \advance\pst@dima\pst@dimc
- \advance\pst@dimb\pst@dimd
- \global\advance\psLoopIndex by \@ne
- \repeat
- \endgroup
- \ignorespaces%
-}
-%
-\newif\if@fixedradius
-\def\cput{\def\pst@par{}\pst@object{cput}}
-\def\cput@i{\@fixedradiusfalse\cput@ii}
-\def\cput@ii{\pst@killglue\@ifnextchar({\cput@iv}{\cput@iii}}
-\def\cput@iii#1{%
- \addto@par{rot={#1}}%
- \@ifnextchar({\cput@iv}{\cput@iv(\z@,\z@)}%
-}
-\def\cput@iv(#1){\pst@makebox{\cput@v{#1}}}
-\def\cput@v#1{%
- \begingroup
- \use@par
- \setbox\pst@hbox=\hbox{%
- \psboxsepfalse
- \if@fixedradius\psCirclebox@ii\else\pscirclebox@ii\fi%
- }%
- \pst@@makesmall\pst@hbox
- \ifx\psk@rot\@empty\else\pst@rotate{ps@rot }\pst@hbox\fi% (MJS)
-% \pst@rotate\psk@rot\pst@hbox
- \psput@{#1}\pst@hbox
- \endgroup
- \ignorespaces%
-}
-%
-\def\Cput{\def\pst@par{}\pst@object{Cput}}
-\def\Cput@i{\@fixedradiustrue\cput@ii}
-\newdimen\pslabelsep
-\define@key[psset]{pstricks}{labelsep}[5pt]{%
- \pssetlength\pslabelsep{#1}%
- \ifx\PSTplotLoaded\endinput% Set labels for pst-plot, if laoded
- \let\psxlabelsep\pslabelsep%
- \let\psylabelsep\pslabelsep%
- \fi}
-\psset[pstricks]{labelsep=5pt}
-%
-\define@key[psset]{pstricks}{refangle}[0]{\pst@expandafter\psset@@refangle{#1}\@nil}
-\def\psset@@refangle#1\@nil{%
- \def\next##1@#1=##2"##3@##4\@nil{%
- \ifx\relax##2%
- \pst@getangle{#1}\psk@refangle
- \def\psk@uputref{}%
- \else
- \def\psk@refangle{##2 }%
- \def\psk@uputref{##3}%
- \fi}%
- \expandafter\next\pst@refangletable @#1=\relax"@\@nil%
- \pst@Verb{ gsave STV CP T /ps@refangle \psk@refangle\space def grestore }%ADDED (MJS)
-}
-%
-\def\pst@refangletable{%
-@r=0"20%
-@u=90"02%
-@l=180"10%
-@d=-90"01%
-@ur=45"22%
-@ul=135"12%
-@dr=-135"21%
-@dl=-45"11}
-\psset[pstricks]{refangle=0}
-
-% DG/SR modification begin - Mar. 24, 1999 - Patch 10
-%\def\uput{\def\pst@par{}\@ifnextchar[{\uput@ii}{\uput@i}}
-\def\uput{\def\pst@par{}\pst@ifstar{\@ifnextchar[{\uput@ii}{\uput@i}}}
-% 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}}
-%
-\def\uput@iii#1{%
- \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
- \pstCheckCoorType{#1}% needed for \uput@vii
- \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}
-%
-\def\uput@vii#1#2{%
- \edef\pst@coor{%
- \ifPst@SpecialLength\pst@SpecialLength\else\pst@number\pslabelsep\fi
-% \pst@number\pslabelsep % \ifdim\pslabelsep<\z@ neg \fi
- #2%
- \pst@number{\wd\pst@hbox}%
- \pst@number{\ht\pst@hbox}%
- \pst@number{\dp\pst@hbox}%
- \ifnum\pst@C@@rType=7
- ps@refangle % CHANGED (MJS) FROM \psk@refangle\space
- \ifx\psk@rot\@empty\else ps@rot\space sub \fi
- \else
- \psk@refangle\space
- \ifx\psk@rot\@empty\else \psk@rot\space sub \fi
- \fi
- \tx@Uput #1}%
- %\show\pst@coor
- \setbox\pst@hbox=\hbox to\z@{\hss\vbox to\z@{\vss\box\pst@hbox\vss}\hss}%
- \setbox\pst@hbox=\psput@special\pst@hbox
- \ifnum\pst@C@@rType=7
- \ifx\psk@rot\@empty\else\pst@rotate{ps@rot }\pst@hbox\fi% CHANGED FROM \psk@rot (MJS)
- \else
- \ifx\psk@rot\@empty\else\pst@rotate{\psk@rot}\pst@hbox\fi%
- \fi}
-%
-%
-\def\uput@viii#1#2{%
- \ifnum#1>\z@\relax\ifnum#2>\z@\relax\pslabelsep=.707\pslabelsep\fi\fi
- \setbox\pst@hbox=\vbox to\z@{%
- \ifnum#2=1\relax\vskip\pslabelsep\else\vss\fi
- \hbox to\z@{%
- \ifnum#1=2\relax\hskip\pslabelsep \else\hss\fi
- \box\pst@hbox%
- \ifnum#1=1\relax\hskip\pslabelsep\else\hss\fi}%
- \ifnum#2=2\relax\vskip\pslabelsep\else\vss\fi}}
-%
-\def\tx@Uput{Uput }
-\def\tx@UUput{UUput }
-%
-\def\Rput{\def\pst@par{}\pst@ifstar{\@ifnextchar[{\Rput@ii}{\Rput@i}}}
-\def\Rput@i#1{\addto@par{labelsep=#1}\Rput@ii}
-\def\Rput@ii[#1]{\addto@par{ref={#1}}\@ifnextchar({\Rput@iv}{\Rput@iii}}
-\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
- \Rput@vi
- \pst@makesmall\pst@hbox
- \ifx\psk@rot\@empty\else\pst@rotate{ps@rot }\pst@hbox\fi% (MJS)
-% \pst@rotate\psk@rot\pst@hbox
- \psput@{#1}\pst@hbox
- \endgroup
- \ignorespaces}
-%
-\def\Rput@vi{%
- \pst@dimg=\dp\pst@hbox
- \advance\pst@dimg\pslabelsep
- \dp\pst@hbox=\pst@dimg
- \pst@dimg=\ht\pst@hbox
- \advance\pst@dimg\pslabelsep
- \ht\pst@hbox=\pst@dimg
- \setbox\pst@hbox\hbox{\kern\pslabelsep\box\pst@hbox\kern\pslabelsep}}%
-%
-\def\oldpsput{\def\pst@par{}\pst@ifstar{\@ifnextchar[{\oldpsput@i}{\oldpsput@ii}}}
-\def\oldpsput@i[#1]{\addto@par{ref={#1}}\oldpsput@ii}
-\def\oldpsput@ii{\@ifnextchar<{\oldpsput@iii}{\oldpsput@iv}}
-\def\oldpsput@iii<#1>{\rput@iii{#1}}
-\def\OldPsput{\let\psput\oldpsput}
-\def\NewPsput{\let\psput\rput}
-%
-% ----------- hv 20120219 -------------------
-\newpsstyle{gridstyle}{subgriddiv=0,gridcolor=lightgray,griddots=10,gridlabels=8pt}
-\newpsstyle{gridstyleA}{subgriddiv=5,gridcolor=red!30,subgridcolor=green!20!black!10,gridlabels=0pt}
-\newif\ifshowgrid
-\newdimen\sh@wgridXunit
-\newdimen\sh@wgridYunit
-
-\define@key[psset]{pstricks}{showgrid}[b]{\expandafter\pst@@showgrid#1!!\@nil}
-\def\pst@@showgrid#1#2#3\@nil{% hv 20130403
- \def\showgridp@s{0}%
- \ifx#1b\showgridtrue\else% bottom
- \ifx#1f\showgridfalse\else
- \ifx#1t
- \ifx#2r \showgridtrue\else% true->bottom
- \showgridtrue\def\showgridp@s{1}\fi% top
- \fi\fi\fi
- \ifnum\showgridp@s>0\relax
- \sh@wgridXunit=\psxunit
- \sh@wgridYunit=\psyunit
- \fi
-
-}
-\psset[pstricks]{showgrid=f}
-\define@boolkey[psset]{pstricks}[Pst@]{pgffunctions}[true]{}
-\psset[pstricks]{pgffunctions=false}
-%
-\newdimen\pst@shift
-\newif\ifPst@shift@star
-\define@key[psset]{pstricks}{shift}[0]{%
- \ifx#1*
- \global\Pst@shift@startrue
- \pst@shift=\p@
- \else
- \global\Pst@shift@starfalse
- \pssetlength\pst@dimg{#1}
- \global\pst@shift\pst@dimg% only the outer pspicture env can have a shift
- \fi}
-\psset[pstricks]{shift=0}
-%
-%------------------------------- pspicture ------------------------------
-%
-\def\pspicture{\begingroup\pst@ifstar\pst@picture}
-\def\pst@picture{\@ifnextchar[{\pst@@picture}{\pst@@picture[]}}
-\def\pst@@picture[#1]{\@ifnextchar({\pst@@picture@i[#1]}{\pst@@picture@i[#1](10,10)}}%
-\def\pst@@picture@i[#1]#2(#3,#4){\@ifnextchar(% ignore anything between [] and ()
- {\pst@@@picture[#1](#3,#4)}%
- {\pst@@@picture[#1](0,0)(#3,#4)}}
-%
-\def\pst@@@picture[#1](#2,#3)(#4,#5){%
- \pssetxlength\pst@dima{#2}%
- \pssetylength\pst@dimb{#3}%
- \pssetxlength\pst@dimc{#4}%
- \pssetylength\pst@dimd{#5}%
- \ifdim\pst@dima>\pst@dimc%
- \pst@dimg=\pst@dima%
- \pst@dima=\pst@dimc%
- \pst@dimc=\pst@dimg%
- \fi%
- \ifdim\pst@dimb>\pst@dimd%
- \pst@dimg=\pst@dimb%
- \pst@dimb=\pst@dimd%
- \pst@dimd=\pst@dimg%
- \fi%
- \setbox\pst@hbox=\hbox\bgroup
- \begingroup\KillGlue
- \@ifundefined{@latexerr}{}{\let\unitlength\psunit}%
- \edef\pic@coor{(#2,#3)(#2,#3)(#4,#5)}%
-% ----------- 1.10/12 beg hv -------------------
- \psset{showgrid=false}% % for nested pspicture environemnets
- \def\pst@tempA{#1}%
- \ifx\pst@tempA\@empty\else\psset{#1}\fi% sets the shift and grid option
- \ifx\pst@bgcolor\@empty\else\psframe*[linecolor=\pst@bgcolor](#2,#3)(#4,#5)\fi
- \ifshowgrid\ifnum\showgridp@s=0\psgrid[style=gridstyle]\fi\fi
-% ----------- 1.10/12 end hv -------------------
- \ignorespaces% % 2008-12-07
- \ifPst@pgffunctions\pstVerb{ pgffunctions }\fi% hv 2013-04-17
-}
-\def\pic@coor{(0,0)(0,0)(10,10)}
-\def\endpspicture{%
- \ifshowgrid\ifnum\showgridp@s>0
- \psgrid[xunit=\sh@wgridXunit,yunit=\sh@wgridYunit,style=gridstyle]\fi\fi
- \pst@killglue
- \endgroup
- \egroup
- \ht\pst@hbox=\pst@dimd
- \dp\pst@hbox=-\pst@dimb
- \setbox\pst@hbox=\hbox{%
- \kern-\pst@dima
- \ifPst@shift@star%\typeout{==pstricks== old behaviour of the shift option}% shift=*
- \advance\pst@dimd-\pst@dimb
- \pst@dimd=0.5\pst@dimd
- \else\pst@dimd-\pst@shift\fi
- \advance\pst@dimd\pst@dimb
- \lower\pst@dimd\box\pst@hbox
- \kern\pst@dimc}%
- \if@star\setbox\pst@hbox=\hbox{\clipbox@@\z@}\fi
- \leavevmode
- \ifPst@draft
- \expandafter\ifx\csname @latexerr\endcsname\relax
- \box\pst@hbox
- \else% do we have LaTeX?
- \fboxsep=0pt
- \fbox{\rule[-\pst@shift]{0pt}{\ht\pst@hbox}\rule{\wd\pst@hbox}{0pt}}%
- \fi
- \else
- \box\pst@hbox
- \fi
- \endgroup
- \psset[pstricks]{shift=0}% reset value
-}
-%
-\@namedef{pspicture*}{\pspicture*}
-\@namedef{endpspicture*}{\endpspicture}
-%
-\ifx\pstcustomize\relax \input pstricks.con \fi
-\catcode`\@=\PstAtCode\relax
-%
-\endinput
-%%
-%% END: pstricks.tex
diff --git a/Master/texmf-dist/tex/latex/pstricks/pst-doc.cls b/Master/texmf-dist/tex/latex/pstricks/pst-doc.cls
index fb5d75fb457..e54d5e9893a 100644
--- a/Master/texmf-dist/tex/latex/pstricks/pst-doc.cls
+++ b/Master/texmf-dist/tex/latex/pstricks/pst-doc.cls
@@ -16,13 +16,13 @@
%
\listfiles
\ProvidesClass{pst-doc}[2017/04/18 v 0.20 PSTricks documentation class (hv)]
-\DeclareOption*{\PassOptionsToClass{\CurrentOption,usegeometry}{scrartcl}}
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}}
\ProcessOptions\relax
%
\LoadClass{scrartcl}
%
\RequirePackage[dvipsnames,x11names,svgnames,table]{xcolor}
-\RequirePackage{ifxetex}
+\RequirePackage{iftex}
\RequirePackage{amsmath, amssymb}
\ifxetex
\usepackage{unicode-math}
@@ -115,7 +115,6 @@
\gdef\index@vals{#1}%
\def\FancyVerbFormatLine##1{\FV@ObeyTabs{##1}\use@index@vals}}
-\RequirePackage{filecontents}
%\singlespace
\RequirePackage{showexpl}
\renewcommand*\SX@Info{}%
@@ -451,64 +450,62 @@ xleftmargin=0pt,xrightmargin=0pt,
\providecommand\bgTitle{}
\providecommand\LenToUnit[1]{#1\@gobble}
-\iffalse
-\renewcommand\maketitle{%
-\thispagestyle{empty}%
-\begin{titlepage}
-\ifpdf
- \AddToShipoutPicture*{\includegraphics{pst-doc.pdf}}
- \vspace*{0.3\textheight}
- \parbox{17cm}{\sffamily\RaggedRight\bfseries\huge\@title}\\[5pt]
- \parbox{15cm}{\sffamily\Large\@subtitle}
+\def\settitle{%
+ \thispagestyle{empty}%
+ \begin{titlepage}
+ \ifpdf
+ \AddToShipoutPicture*{\includegraphics{pst-doc.pdf}}
+ \vspace*{0.3\textheight}
+ \parbox{17cm}{\sffamily\RaggedRight\bfseries\huge\@title}\\[5pt]
+ \parbox{15cm}{\sffamily\Large\@subtitle}
- \vspace{5cm}
- \parbox{10cm}{\sffamily\@date}
+ \vspace{5cm}
+ \parbox{10cm}{\sffamily\@date}
- \vfill
- ~\\
- \makebox[.5\textwidth]{\put(0,0){\bgImage}}\\
- ~
+ \vfill
+ ~\\
+ \makebox[.5\textwidth]{\put(0,0){\bgImage}}\\
+ ~
- \vfill
- \parbox[b]{19cm}{\sffamily\RaggedRight
- \ifx\@docauthor\empty~\else Documentation by\fi\hfill\makebox[7cm][l]{Package author(s):}\\
- \ifx\@docauthor\empty~\else{\bfseries\tabular[t]{@{}l@{}}\@docauthor\endtabular}\fi\hfill\makebox[7cm][l]{%
- \bfseries\tabular[t]{@{}l@{}}\@author\endtabular}}
-\else
- \psset{unit=1cm}
- \begin{pspicture}(1.6in,0)(23cm,21.7cm)
- \psframe[fillstyle=solid,linecolor=lightgray,fillcolor=lightgray,linestyle=solid](0,-5.75)(23,10)
- \psframe[fillstyle=solid,linecolor=Orange!85!Red,fillcolor=Orange!85!Red,linestyle=solid](0,10)(23,10.5)
- \psframe[fillstyle=solid,linecolor=Orange!85!Red,fillcolor=Orange!85!Red,linestyle=solid](0,21.1)(23,21.2)
- \rput[lb](3,22){\Huge\sffamily\color{Orange!65!Red}\psscalebox{2}{\textbf{PSTricks}}}
- \rput[lb](3,14.1){\parbox{17cm}{\sffamily\RaggedRight\bfseries\huge\@title}}
- \rput[lb](3,12.6){\parbox{15cm}{\sffamily\Large\@subtitle}}
- \rput[lb](3,7.6){\parbox{15cm}{\sffamily\@date}}
- \rput[lb](3,-2.6){\parbox[b]{19cm}{\sffamily\RaggedRight
+ \vfill
+ \parbox[b]{19cm}{\sffamily\RaggedRight
\ifx\@docauthor\empty~\else Documentation by\fi\hfill\makebox[7cm][l]{Package author(s):}\\
\ifx\@docauthor\empty~\else{\bfseries\tabular[t]{@{}l@{}}\@docauthor\endtabular}\fi\hfill\makebox[7cm][l]{%
- \bfseries\shortstack[l]{\@author}
- %\begin{tabular}[t]{@{}l@{}} \@author\end{tabular}%
-}}}
- \rput[C](11,4){\bgImage}%
- \end{pspicture}%
-\fi
-\end{titlepage}
-\setcounter{footnote}{0}%
-\global\let\thanks\relax%
-\global\let\maketitle\relax%
-\global\let\@thanks\@empty%
-\global\let\@author\@empty%
-\global\let\@docauthor\@empty%
-\global\let\@date\@empty%
-\global\let\@title\@empty%
-\global\let\@subtitle\@empty%
-\global\let\title\relax%
-\global\let\author\relax%
-\global\let\date\relax%
-\global\let\and\relax%
+ \bfseries\tabular[t]{@{}l@{}}\@author\endtabular}}
+ \else
+ \psset{unit=1cm}
+ \begin{pspicture}(1.6in,0)(23cm,21.7cm)
+ \psframe[fillstyle=solid,linecolor=lightgray,fillcolor=lightgray,linestyle=solid](0,-5.75)(23,10)
+ \psframe[fillstyle=solid,linecolor=Orange!85!Red,fillcolor=Orange!85!Red,linestyle=solid](0,10)(23,10.5)
+ \psframe[fillstyle=solid,linecolor=Orange!85!Red,fillcolor=Orange!85!Red,linestyle=solid](0,21.1)(23,21.2)
+ \rput[lb](3,22){\Huge\sffamily\color{Orange!65!Red}\psscalebox{2}{\textbf{PSTricks}}}
+ \rput[lb](3,14.1){\parbox{17cm}{\sffamily\RaggedRight\bfseries\huge\@title}}
+ \rput[lb](3,12.6){\parbox{15cm}{\sffamily\Large\@subtitle}}
+ \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{\bfseries\tabular[t]{@{}l@{}}\@docauthor\endtabular}\fi\hfill\makebox[7cm][l]{%
+ \bfseries\shortstack[l]{\@author}
+ %\begin{tabular}[t]{@{}l@{}} \@author\end{tabular}%
+ }}}
+ \rput[C](11,4){\bgImage}%
+ \end{pspicture}%
+ \fi
+ \end{titlepage}
+ \setcounter{footnote}{0}%
+ \global\let\thanks\relax%
+ \global\let\maketitle\relax%
+ \global\let\@thanks\@empty%
+ \global\let\@author\@empty%
+ \global\let\@docauthor\@empty%
+ \global\let\@date\@empty%
+ \global\let\@title\@empty%
+ \global\let\@subtitle\@empty%
+ \global\let\title\relax%
+ \global\let\author\relax%
+ \global\let\date\relax%
+ \global\let\and\relax%
}
-\fi
\newdimen\fullWidth
\fullWidth=\linewidth