summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-11-30 22:00:11 +0000
committerKarl Berry <karl@freefriends.org>2006-11-30 22:00:11 +0000
commit8f3c66451e590adc3ce6c15dd5c11d89e399f9a7 (patch)
tree3df45c0d19a1e702576b0e91cf7c5f1f1f97ac5f
parent50b457db9ae8c77bdad87ef2bb4a246769a36c91 (diff)
pst-grad/eps
git-svn-id: svn://tug.org/texlive/trunk@2565 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/generic/pst-eps/Changes7
-rw-r--r--Master/texmf-dist/doc/generic/pst-eps/README11
-rw-r--r--Master/texmf-dist/doc/generic/pst-eps/pst-eps-doc.bib78
-rw-r--r--Master/texmf-dist/doc/generic/pst-eps/pst-eps-doc.pdfbin0 -> 91735 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pst-eps/pst-eps-doc.tex255
-rw-r--r--Master/texmf-dist/doc/generic/pst-eps/spirale.eps513
-rw-r--r--Master/texmf-dist/doc/generic/pst-grad/Changes14
-rw-r--r--Master/texmf-dist/doc/generic/pst-grad/README12
-rw-r--r--Master/texmf-dist/doc/generic/pst-grad/pst-grad-doc.bib204
-rw-r--r--Master/texmf-dist/doc/generic/pst-grad/pst-grad-doc.pdfbin0 -> 250091 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pst-grad/pst-grad-doc.tex429
-rw-r--r--Master/texmf-dist/dvips/pst-grad/pst-grad.pro176
-rw-r--r--Master/texmf-dist/source/generic/pst-eps/Makefile49
-rw-r--r--Master/texmf-dist/source/generic/pst-grad/Makefile49
-rw-r--r--Master/texmf-dist/tex/generic/pst-eps/pst-eps.tex241
-rw-r--r--Master/texmf-dist/tex/generic/pst-grad/pst-grad.tex119
-rw-r--r--Master/texmf-dist/tex/latex/pst-eps/pst-eps.sty6
-rw-r--r--Master/texmf-dist/tex/latex/pst-grad/pst-grad.sty7
18 files changed, 2170 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-eps/Changes b/Master/texmf-dist/doc/generic/pst-eps/Changes
new file mode 100644
index 00000000000..a1f83ef7fb7
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-eps/Changes
@@ -0,0 +1,7 @@
+pst-eps.sty --------
+
+pst-eps.tex --------
+v 1.00 2006/08/13 use pst-xkey for the keyhandling (hv)
+
+
+pst-eps-doc.tex --------
diff --git a/Master/texmf-dist/doc/generic/pst-eps/README b/Master/texmf-dist/doc/generic/pst-eps/README
new file mode 100644
index 00000000000..5b29e1ced19
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-eps/README
@@ -0,0 +1,11 @@
+pst-eps: exporting eps figures
+
+pst-eps.sty - The LaTeX file
+pst-eps.tex - The TeX file
+pst-eps-doc.pdf - The documentation
+pst-eps-doc.tex - The documentation source
+pst-eps-doc.bib - The documentation bib
+
+
+--
+Herbert Voss 2006-11-05
diff --git a/Master/texmf-dist/doc/generic/pst-eps/pst-eps-doc.bib b/Master/texmf-dist/doc/generic/pst-eps/pst-eps-doc.bib
new file mode 100644
index 00000000000..95dd5f1cf9d
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-eps/pst-eps-doc.bib
@@ -0,0 +1,78 @@
+%% -*-bibtex-*-
+@STRING{tugboat = {TUGboat} }
+@STRING{dtk = {{D}ie {\TeX}nische {K}om{\"o}die} }
+
+@Book{companion,
+ author = {Michel Goosens and Frank Mittelbach and Alexander
+ Samarin},
+ title = {The {\LaTeX} {G}raphics {C}ompanion},
+ publisher = {{Addison-Wesley Publishing Company}},
+ year = {1997},
+ address = {Reading, Mass.}
+}
+
+@Article{girou:01:,
+ author = {Denis Girou},
+ title = {Pr\'esentation de {PST}ricks},
+ journal = {Cahier {GUT}enberg},
+ year = 1994,
+ volume = {16},
+ month = apr,
+ pages = {21-70}
+}
+
+@Article{girou:02:,
+ author = {{Timothy Van} Zandt and Denis Girou},
+ title = {Inside {PST}ricks},
+ journal = TUGboat,
+ year = 1994,
+ volume = {15},
+ month = sep,
+ pages = {239-246}
+}
+
+@Book{PostScript,
+ Author = {Kollock, Nikolai G.},
+ Title = {Post{S}cript richtig eingesetzt: vom {K}onzept zum
+ praktischen {E}insatz},
+ Publisher = {IWT},
+ Address = {Vaterstetten},
+ year = 1989,
+}
+
+@Manual{pstricks,
+ Title = {PSTricks - {\PS} macros for generic {\TeX}},
+ Author = {{Timothy Van} Zandt},
+ Organization = {},
+ Address = {\url{http://www.tug.org/application/PSTricks}},
+ Note = {},
+ year = 1993
+}
+
+@Manual{pst-eps,
+ Title = {\texttt{pst-eps}: Exporting eps images},
+ Author = {{Timothy Van} Zandt},
+ Organization = {},
+ Address = {\url{CTAN:graphics/pstricks/generic/}},
+ Note = {},
+ year = 1999
+}
+
+@Manual{multido,
+ Title = {\texttt{multido.tex} - a loop macro, that supports fixed-point addition},
+ Author = {{Timothy Van} Zandt},
+ Organization = {},
+ Address = {\url{CTAN:/graphics/pstricks/generic/multido.tex}},
+ Note = {},
+ year = 1997
+}
+
+@Book{PSTricks2,
+ author = {Herbert Vo\ss{}},
+ title = {\texttt{PSTricks} -- {G}rafik f\"ur \TeX{} und \LaTeX},
+ edition = {third},
+ publisher = {DANTE -- Lehmanns},
+ year = {2006},
+ address = {Heidelberg/Hamburg}
+}
+
diff --git a/Master/texmf-dist/doc/generic/pst-eps/pst-eps-doc.pdf b/Master/texmf-dist/doc/generic/pst-eps/pst-eps-doc.pdf
new file mode 100644
index 00000000000..18774d7d8ba
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-eps/pst-eps-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pst-eps/pst-eps-doc.tex b/Master/texmf-dist/doc/generic/pst-eps/pst-eps-doc.tex
new file mode 100644
index 00000000000..4baf0abb07f
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-eps/pst-eps-doc.tex
@@ -0,0 +1,255 @@
+\documentclass[english]{article}
+%
+\usepackage[T1]{fontenc}
+\usepackage[latin9]{inputenc}
+\listfiles
+\usepackage[scaled]{luximono}
+\usepackage{lmodern}
+\usepackage{xspace,setspace}
+\usepackage[bottom]{footmisc}
+\usepackage{tabularx}
+\usepackage{longtable}
+\usepackage[NewCommands,NewParameters]{ragged2e}
+\usepackage[dvipsnames]{pstricks}
+\usepackage{pst-plot,pst-eps}
+\usepackage{graphicx,multido}
+\definecolor{hellgelb}{rgb}{1,1,0.8}
+%
+\def\PST{{\texttt{PSTricks}}\xspace}
+\def\PDF{{\texttt{PDF}}\xspace}
+\def\pst{{\texttt{pstricks}}\xspace}
+\def\PS{PostScript\xspace}
+\newcommand*\CMD[1]{{\UrlFont\texttt{\textbackslash #1}}}
+%
+\def\tIndex#1{\index{#1@{\UrlFont\texttt{#1}}}}
+\def\cIndex#1{\index{#1@\CMD{#1}}}
+\def\pIndex#1{\index{Parameter@\textbf{Parameter}!{\UrlFont\texttt{#1}}}}
+\def\ppIndex#1{\index{Parameter@\textbf{Parameter}!{#1}}}
+\def\sIndex#1{\index{Syntax@\textbf{Syntax}!\CMD{#1}}}
+\def\csIndex#1{\sIndex{#1}\cIndex{#1}}
+\def\PIndex#1{\index{Paket@\textbf{Paket}!\texttt{#1}}}
+\def\mIndex#1{\texttt{#1}\tIndex{#1}\pIndex{#1}}
+%
+\pretolerance=500
+\tolerance=1000
+\hbadness=3000
+\vbadness=3000
+\hyphenpenalty=400
+
+\usepackage{showexpl}% not a real PSTricks package
+\usepackage{babel}
+\usepackage{makeidx}
+\makeindex
+\usepackage[dvips,colorlinks,linktocpage]{hyperref} % PDF-support
+%
+\renewcommand{\ttdefault}{ul9}% Luxi Mono
+\lstset{keywordstyle=\small\ttfamily\bfseries}
+\lstset{language=PSTricks,moredelim=**[is][\bf\color{blue}]{§}{§}}% oder andere Begrenzer
+%
+
+\begin{document}
+%
+\title{\texttt{pst-eps}:\newline Export of \PST environments}
+\author{Herbert Voß%\thanks{Thanks to Lars Kotthoff and Geoff Mercer for translating this documentation!}
+}
+\maketitle
+
+\begin{abstract}
+It is relatively easy to save single \PST graphics as \PS files.
+Important is that one
+\begin{itemize}
+\item puts a frame using \verb+\fbox+ around the \PST object,
+\item sets the line color to \verb+white+,
+\item sets \verb+\fboxsep+ to \verb+0pt+ to avoid getting any additional space,
+\item chooses \verb+\pagestyle{empty}+, to suppress the page number.
+\end{itemize}
+\end{abstract}
+
+\tableofcontents
+
+\clearpage
+
+
+\section{introduction}
+Creating a \verb+EPS+\tIndex{EPS} file from the dvi output is possible with
+%
+\begin{verbatim}
+dvips spirale.dvi -E -o spirale.eps
+\end{verbatim}
+%
+which has the correct bounding box\index{bounding box} (for
+figures~\ref{fig:psteps:-E} \verb+%%BoundingBox: 148 456 364 668+) on one hand
+and on the other can be included as normal a graphic in the document without
+problems thereafter. Figure~\ref{fig:psteps:-E} shows a graphic created this
+way and listing~\ref{lst:psteps:-E} the according source code.
+
+\begin{figure}[htb]
+\centering
+\includegraphics[scale=0.75]{spirale}
+\caption{With the ``\texttt{-E}''{}- option created \texttt{EPS} file}\label{fig:psteps:-E}
+\end{figure}
+
+\begin{lstlisting}[caption={Source code for figure~\ref{fig:psteps:-E}},label={lst:psteps:-E}]
+\documentclass{article}
+\usepackage{pstricks}% automatically loads xcolor
+\usepackage{pst-plot}
+\pagestyle{empty}
+\begin{document}
+
+\color{white}% fbox invisible
+\fboxsep=0pt
+\fbox{%
+ \begin{pspicture}(-4,-4)(4,4)
+ \parametricplot[plotpoints=1000]{0}{3600}{t dup cos 1000 div mul t dup sin 1000 div mul}
+\end{pspicture}
+}
+\end{document}
+\end{lstlisting}
+
+With this method, one is forced to work with \verb+\fbox+, since \verb+dvips+ is
+unable to determine a correct bounding box otherwise, because \verb+dvips+ does
+not regard graphical elements as boundaries. As an example for this, simply
+convert the above example without using \verb+\fbox+. Since \verb+\fbox+ as a
+text element represents a clear boundary on text layer, \verb+dvips+ has no
+problems to definitely determine the bounding box. For converting single
+graphics this method is surely very efficient, but very time-consuming for a
+larger number. This is where the package \verb+pst-eps+ comes in, which tries to
+automate this process.
+
+% ---------------------------------------------------------------------------------------
+\section{\CMD{TeXtoEPS}}\label{sec:psteps:textoeps}
+% ---------------------------------------------------------------------------------------
+This macro has the task of rendering the trick with \verb+\fbox+ shown above
+superfluous, and therefore give \verb+dvips+ a possiblity to correctly determine
+the bounding box.
+
+\begin{verbatim}
+\TeXtoEPS% TeX
+ ...
+\endTeXtoEPS
+\begin{TeXtoEPS}% LaTeX
+ ...
+\end{TeXtoEPS}
+\end{verbatim}
+\csIndex{TeXtoEPS}
+The same example as in listing~\ref{lst:psteps:-E} is picked up again, yielding
+the source code in listing~\ref{lst:psteps:TeXtoEPS}.
+
+\begin{lstlisting}[caption={Alternative source code to figure~\ref{fig:psteps:-E}},label={lst:psteps:TeXtoEPS}]
+\documentclass{article}
+\usepackage{pst-eps}
+\usepackage{pst-plot}
+\pagestyle{empty}
+\begin{document}
+
+\begin{TeXtoEPS}
+ \begin{pspicture}(-3.7,-3.7)(3.7,3.7)
+ \parametricplot[plotpoints=1000]{0}{3600}{t dup cos 1000 div mul t dup sin 1000 div mul}
+ \end{pspicture}
+\end{TeXtoEPS}
+
+\end{document}
+\end{lstlisting}
+
+Again the \verb+DVI+ file is converted with \verb+dvips+ as described above,
+whereas this time a correct bounding box is yielded: \verb+%%BoundingBox: 71 509 286 721+,
+which differs only in absolute, but not in relative values from the values given
+above.
+
+
+
+% ---------------------------------------------------------------------------------------
+\section{\CMD{PSTtoEPS}}\label{sec:psteps:pstoeps}
+% ---------------------------------------------------------------------------------------
+With \verb+PSTtoEPS+\csIndex{PSTtoEPS} the \PST environment can be saved in an
+external file without detours.
+
+\begin{verbatim}
+\PSTtoEPS[<parameters>]{<filename>}{<graphic object>}
+\end{verbatim}
+
+With this macro the problem of the bounding box not being determined correctly
+arises again. It can be specified with according parameters (table~\ref{tab:pst-eps:parameter})
+The file is created immediately, so that it can be read direcly afterwards as
+\verb+EPS+ file, as in the following example.
+
+
+\begin{center}
+\PSTtoEPS[bbllx=-0.5,bblly=-0.5,bburx=5.3,bbury=3.4,
+ checkfile,headers=all,makeeps=all*]{frame.eps}{%
+ \psgrid[subgriddiv=0](5,3)
+ \psframe[linecolor=blue,linewidth=0.1](1,1)(4,2)%
+}
+\includegraphics[scale=0.5]{frame}
+\end{center}
+
+\begin{lstlisting}
+\psset{checkfile=true}
+\PSTtoEPS[bbllx=-0.5,bblly=-0.5,bburx=5.3,bbury=3.4,
+ checkfile,headers=all,makeeps=all*]{frame.eps}{%
+ \psgrid[subgriddiv=0](5,3)
+ \psframe[linecolor=blue,linewidth=0.1](1,1)(4,2)%
+}
+\includegraphics[scale=0.5]{frame}
+\end{lstlisting}
+
+
+
+% ---------------------------------------------------------------------------------------
+\section{Parameters}\label{sec:psteps:parameter}
+% ---------------------------------------------------------------------------------------
+Table~\ref{tab:pst-eps:parameter} shows a compilation of all special parameters
+valid for \verb+pst-eps+.
+
+\begin{figure}[!t]
+\caption{Summary of all parameters for \texttt{pst-eps}}\label{tab:pst-eps:parameter}
+\begin{tabularx}{\linewidth}{@{}>{\ttfamily}l>{\ttfamily}l>{\ttfamily}lX@{}}
+\textrm{name} & \textrm{values} & \textrm{default} & meaning\\\hline
+bbllx & <value[unit]> & 0pt & bounding box lower left x\\
+bblly & <value[unit]> & 0pt & lower left y\\
+bburx & <value[unit]> & 0pt & upper right x\\
+bburx & <value[unit]> & 0pt & upper right y\\
+makeeps & none|new|all|all* & new & none: do nothing\newline
+ new: create, when non exists\newline
+ all: create allways\newline
+ all*: ask before overwriting\tabularnewline
+checkfile & <true|false> & false & check before overwriting\\
+headerfile & <filename> & \{\} & filename of header to include\\
+headers & none|all|user & none & none: no headers\newline
+ all: include all PSTricks header files\newline
+ user: include only the header \texttt{headerfile}\\
+GraphicsRef & <{x,y}> & \{\} & reference point\\
+Translation & <{x,y}> & \{\} & set another origin\\
+Rotation & <value> & \{\} & rotation angle\\
+Scale & <value1 value2> & \{\} & scaling\\
+\end{tabularx}
+\end{figure}
+\tIndex{bbllx}\tIndex{bblly}\tIndex{bburx}\tIndex{bbury}%
+\tIndex{makeeps}\tIndex{headerfile}\tIndex{headers}\tIndex{GraphicsRef}%
+\tIndex{Rotation}\tIndex{Scale}
+\pIndex{bbllx}\pIndex{bblly}\pIndex{bburx}\pIndex{bbury}%
+\pIndex{makeeps}\pIndex{headerfile}\pIndex{headers}\pIndex{GraphicsRef}%
+\pIndex{Rotation}\pIndex{Scale}
+
+
+The parameters shall not be discussed in detail here, since the package
+\verb+pst-eps+ can be substituted by other possiblities meanwhile.
+
+A practical use of \verb+pst-eps+ arises, when the calculation of single objects
+requires intense processor time, for instance three dimensional objects, like
+cylinders or spheres. Instead of conducting those calculation at every compile
+of the document again, one could create the graphic as \verb+EPS+ file in the
+first place and only read it in consequent \LaTeX{} runs.
+
+
+\nocite{*}
+\bgroup
+\raggedright
+\bibliographystyle{plain}
+\bibliography{\jobname}
+\egroup
+
+\printindex
+
+
+\end{document}
diff --git a/Master/texmf-dist/doc/generic/pst-eps/spirale.eps b/Master/texmf-dist/doc/generic/pst-eps/spirale.eps
new file mode 100644
index 00000000000..0ccf1a989f4
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-eps/spirale.eps
@@ -0,0 +1,513 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Creator: dvips(k) 5.94a Copyright 2003 Radical Eye Software
+%%Title: test.dvi
+%%BoundingBox: 148 456 364 668
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: dvips test.dvi -E -o spirale.eps
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.04.15:1356
+%%BeginProcSet: texc.pro 0 0
+%!
+/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
+N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
+mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
+0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
+landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
+mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
+matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
+exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
+statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
+N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
+/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
+/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
+array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
+df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
+definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
+}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
+B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
+1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
+1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
+0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
+sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
+rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
+gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
+/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
+/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
+A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
+get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
+ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
+fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
+{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
+chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
+1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
+forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
+/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
+}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
+bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
+mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
+SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
+userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
+1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
+/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
+(LaserWriter 16/600)]{A length product length le{A length product exch 0
+exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
+end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
+grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
+imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
+exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
+fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
+delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
+B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
+p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
+rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
+
+%%EndProcSet
+%%BeginProcSet: pstricks.pro 0 0
+%!
+% PostScript prologue for pstricks.tex.
+% Version 97 patch 3, 98/06/01
+% For distribution, see pstricks.tex.
+%
+/tx@Dict 200 dict def tx@Dict begin
+/ADict 25 dict def
+/CM { matrix currentmatrix } bind def
+/SLW /setlinewidth load def
+/CLW /currentlinewidth load def
+/CP /currentpoint load def
+/ED { exch def } bind def
+/L /lineto load def
+/T /translate load def
+/TMatrix { } def
+/RAngle { 0 } def
+/Atan { /atan load stopped { pop pop 0 } if } def
+/Div { dup 0 eq { pop } { div } ifelse } def
+/NET { neg exch neg exch T } def
+/Pyth { dup mul exch dup mul add sqrt } def
+/PtoC { 2 copy cos mul 3 1 roll sin mul } def
+/PathLength@ { /z z y y1 sub x x1 sub Pyth add def /y1 y def /x1 x def }
+def
+/PathLength { flattenpath /z 0 def { /y1 ED /x1 ED /y2 y1 def /x2 x1 def
+} { /y ED /x ED PathLength@ } {} { /y y2 def /x x2 def PathLength@ }
+/pathforall load stopped { pop pop pop pop } if z } def
+/STP { .996264 dup scale } def
+/STV { SDict begin normalscale end STP } def
+/DashLine { dup 0 gt { /a .5 def PathLength exch div } { pop /a 1 def
+PathLength } ifelse /b ED /x ED /y ED /z y x add def b a .5 sub 2 mul y
+mul sub z Div round z mul a .5 sub 2 mul y mul add b exch Div dup y mul
+/y ED x mul /x ED x 0 gt y 0 gt and { [ y x ] 1 a sub y mul } { [ 1 0 ]
+0 } ifelse setdash stroke } def
+/DotLine { /b PathLength def /a ED /z ED /y CLW def /z y z add def a 0 gt
+{ /b b a div def } { a 0 eq { /b b y sub def } { a -3 eq { /b b y add
+def } if } ifelse } ifelse [ 0 b b z Div round Div dup 0 le { pop 1 } if
+] a 0 gt { 0 } { y 2 div a -2 gt { neg } if } ifelse setdash 1
+setlinecap stroke } def
+/LineFill { gsave abs CLW add /a ED a 0 dtransform round exch round exch
+2 copy idtransform exch Atan rotate idtransform pop /a ED .25 .25
+% DG/SR modification begin - Dec. 12, 1997 - Patch 2
+%itransform translate pathbbox /y2 ED a Div ceiling cvi /x2 ED /y1 ED a
+itransform pathbbox /y2 ED a Div ceiling cvi /x2 ED /y1 ED a
+% DG/SR modification end
+Div cvi /x1 ED /y2 y2 y1 sub def clip newpath 2 setlinecap systemdict
+/setstrokeadjust known { true setstrokeadjust } if x2 x1 sub 1 add { x1
+% DG/SR modification begin - Jun. 1, 1998 - Patch 3 (from Michael Vulis)
+% a mul y1 moveto 0 y2 rlineto stroke /x1 x1 1 add def } repeat grestore }
+% def
+a mul y1 moveto 0 y2 rlineto stroke /x1 x1 1 add def } repeat grestore
+pop pop } def
+% DG/SR modification end
+/BeginArrow { ADict begin /@mtrx CM def gsave 2 copy T 2 index sub neg
+exch 3 index sub exch Atan rotate newpath } def
+/EndArrow { @mtrx setmatrix CP grestore end } def
+/Arrow { CLW mul add dup 2 div /w ED mul dup /h ED mul /a ED { 0 h T 1 -1
+scale } if w neg h moveto 0 0 L w h L w neg a neg rlineto gsave fill
+grestore } def
+/Tbar { CLW mul add /z ED z -2 div CLW 2 div moveto z 0 rlineto stroke 0
+CLW moveto } def
+/Bracket { CLW mul add dup CLW sub 2 div /x ED mul CLW add /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
+/RoundBracket { CLW mul add dup 2 div /x ED mul /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
+/SD { 0 360 arc fill } def
+/EndDot { { /z DS def } { /z 0 def } ifelse /b ED 0 z DS SD b { 0 z DS
+CLW sub SD } if 0 DS z add CLW 4 div sub moveto } def
+/Shadow { [ { /moveto load } { /lineto load } { /curveto load } {
+/closepath load } /pathforall load stopped { pop pop pop pop CP /moveto
+load } if ] cvx newpath 3 1 roll T exec } def
+/NArray { aload length 2 div dup dup cvi eq not { exch pop } if /n exch
+cvi def } def
+/NArray { /f ED counttomark 2 div dup cvi /n ED n eq not { exch pop } if
+f { ] aload /Points ED } { n 2 mul 1 add -1 roll pop } ifelse } def
+/Line { NArray n 0 eq not { n 1 eq { 0 0 /n 2 def } if ArrowA /n n 2 sub
+def n { Lineto } repeat CP 4 2 roll ArrowB L pop pop } if } def
+/Arcto { /a [ 6 -2 roll ] cvx def a r /arcto load stopped { 5 } { 4 }
+ifelse { pop } repeat a } def
+/CheckClosed { dup n 2 mul 1 sub index eq 2 index n 2 mul 1 add index eq
+and { pop pop /n n 1 sub def } if } def
+/Polygon { NArray n 2 eq { 0 0 /n 3 def } if n 3 lt { n { pop pop }
+repeat } { n 3 gt { CheckClosed } if n 2 mul -2 roll /y0 ED /x0 ED /y1
+ED /x1 ED x1 y1 /x1 x0 x1 add 2 div def /y1 y0 y1 add 2 div def x1 y1
+moveto /n n 2 sub def n { Lineto } repeat x1 y1 x0 y0 6 4 roll Lineto
+Lineto pop pop closepath } ifelse } def
+/Diamond { /mtrx CM def T rotate /h ED /w ED dup 0 eq { pop } { CLW mul
+neg /d ED /a w h Atan def /h d a sin Div h add def /w d a cos Div w add
+def } ifelse mark w 2 div h 2 div w 0 0 h neg w neg 0 0 h w 2 div h 2
+div /ArrowA { moveto } def /ArrowB { } def false Line closepath mtrx
+setmatrix } def
+% DG modification begin - Jan. 15, 1997
+%/Triangle { /mtrx CM def translate rotate /h ED 2 div /w ED dup 0 eq {
+%pop } { CLW mul /d ED /h h d w h Atan sin Div sub def /w w d h w Atan 2
+%div dup cos exch sin Div mul sub def } ifelse mark 0 d w neg d 0 h w d 0
+%d /ArrowA { moveto } def /ArrowB { } def false Line closepath mtrx
+%setmatrix } def
+/Triangle { /mtrx CM def translate rotate /h ED 2 div /w ED dup
+CLW mul /d ED /h h d w h Atan sin Div sub def /w w d h w Atan 2
+div dup cos exch sin Div mul sub def mark 0 d w neg d 0 h w d 0
+d /ArrowA { moveto } def /ArrowB { } def false Line closepath mtrx
+% DG/SR modification begin - Jun. 1, 1998 - Patch 3 (from Michael Vulis)
+% setmatrix } def
+setmatrix pop } def
+% DG/SR modification end
+/CCA { /y ED /x ED 2 copy y sub /dy1 ED x sub /dx1 ED /l1 dx1 dy1 Pyth
+def } def
+/CCA { /y ED /x ED 2 copy y sub /dy1 ED x sub /dx1 ED /l1 dx1 dy1 Pyth
+def } def
+/CC { /l0 l1 def /x1 x dx sub def /y1 y dy sub def /dx0 dx1 def /dy0 dy1
+def CCA /dx dx0 l1 c exp mul dx1 l0 c exp mul add def /dy dy0 l1 c exp
+mul dy1 l0 c exp mul add def /m dx0 dy0 Atan dx1 dy1 Atan sub 2 div cos
+abs b exp a mul dx dy Pyth Div 2 div def /x2 x l0 dx mul m mul sub def
+/y2 y l0 dy mul m mul sub def /dx l1 dx mul m mul neg def /dy l1 dy mul
+m mul neg def } def
+/IC { /c c 1 add def c 0 lt { /c 0 def } { c 3 gt { /c 3 def } if }
+ifelse /a a 2 mul 3 div 45 cos b exp div def CCA /dx 0 def /dy 0 def }
+def
+/BOC { IC CC x2 y2 x1 y1 ArrowA CP 4 2 roll x y curveto } def
+/NC { CC x1 y1 x2 y2 x y curveto } def
+/EOC { x dx sub y dy sub 4 2 roll ArrowB 2 copy curveto } def
+/BAC { IC CC x y moveto CC x1 y1 CP ArrowA } def
+/NAC { x2 y2 x y curveto CC x1 y1 } def
+/EAC { x2 y2 x y ArrowB curveto pop pop } def
+/OpenCurve { NArray n 3 lt { n { pop pop } repeat } { BOC /n n 3 sub def
+ n { NC } repeat EOC } ifelse } def
+/AltCurve { { false NArray n 2 mul 2 roll [ n 2 mul 3 sub 1 roll ] aload
+/Points ED n 2 mul -2 roll } { false NArray } ifelse n 4 lt { n { pop
+pop } repeat } { BAC /n n 4 sub def n { NAC } repeat EAC } ifelse } def
+/ClosedCurve { NArray n 3 lt { n { pop pop } repeat } { n 3 gt {
+CheckClosed } if 6 copy n 2 mul 6 add 6 roll IC CC x y moveto n { NC }
+repeat closepath pop pop } ifelse } def
+/SQ { /r ED r r moveto r r neg L r neg r neg L r neg r L fill } def
+/ST { /y ED /x ED x y moveto x neg y L 0 x L fill } def
+/SP { /r ED gsave 0 r moveto 4 { 72 rotate 0 r L } repeat fill grestore }
+def
+/FontDot { DS 2 mul dup matrix scale matrix concatmatrix exch matrix
+rotate matrix concatmatrix exch findfont exch makefont setfont } def
+/Rect { x1 y1 y2 add 2 div moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto
+x1 y1 lineto closepath } def
+/OvalFrame { x1 x2 eq y1 y2 eq or { pop pop x1 y1 moveto x2 y2 L } { y1
+y2 sub abs x1 x2 sub abs 2 copy gt { exch pop } { pop } ifelse 2 div
+exch { dup 3 1 roll mul exch } if 2 copy lt { pop } { exch pop } ifelse
+/b ED x1 y1 y2 add 2 div moveto x1 y2 x2 y2 b arcto x2 y2 x2 y1 b arcto
+x2 y1 x1 y1 b arcto x1 y1 x1 y2 b arcto 16 { pop } repeat closepath }
+ifelse } def
+/Frame { CLW mul /a ED 3 -1 roll 2 copy gt { exch } if a sub /y2 ED a add
+/y1 ED 2 copy gt { exch } if a sub /x2 ED a add /x1 ED 1 index 0 eq {
+pop pop Rect } { OvalFrame } ifelse } def
+/BezierNArray { /f ED counttomark 2 div dup cvi /n ED n eq not { exch pop
+} if n 1 sub neg 3 mod 3 add 3 mod { 0 0 /n n 1 add def } repeat f { ]
+aload /Points ED } { n 2 mul 1 add -1 roll pop } ifelse } def
+/OpenBezier { BezierNArray n 1 eq { pop pop } { ArrowA n 4 sub 3 idiv { 6
+2 roll 4 2 roll curveto } repeat 6 2 roll 4 2 roll ArrowB curveto }
+ifelse } def
+/ClosedBezier { BezierNArray n 1 eq { pop pop } { moveto n 1 sub 3 idiv {
+6 2 roll 4 2 roll curveto } repeat closepath } ifelse } def
+/BezierShowPoints { gsave Points aload length 2 div cvi /n ED moveto n 1
+sub { lineto } repeat CLW 2 div SLW [ 4 4 ] 0 setdash stroke grestore }
+def
+/Parab { /y0 exch def /x0 exch def /y1 exch def /x1 exch def /dx x0 x1
+sub 3 div def /dy y0 y1 sub 3 div def x0 dx sub y0 dy add x1 y1 ArrowA
+x0 dx add y0 dy add x0 2 mul x1 sub y1 ArrowB curveto /Points [ x1 y1 x0
+y0 x0 2 mul x1 sub y1 ] def } def
+/Grid { newpath /a 4 string def /b ED /c ED /n ED cvi dup 1 lt { pop 1 }
+if /s ED s div dup 0 eq { pop 1 } if /dy ED s div dup 0 eq { pop 1 } if
+/dx ED dy div round dy mul /y0 ED dx div round dx mul /x0 ED dy div
+round cvi /y2 ED dx div round cvi /x2 ED dy div round cvi /y1 ED dx div
+round cvi /x1 ED /h y2 y1 sub 0 gt { 1 } { -1 } ifelse def /w x2 x1 sub
+0 gt { 1 } { -1 } ifelse def b 0 gt { /z1 b 4 div CLW 2 div add def
+/Helvetica findfont b scalefont setfont /b b .95 mul CLW 2 div add def }
+if systemdict /setstrokeadjust known { true setstrokeadjust /t { } def }
+{ /t { transform 0.25 sub round 0.25 add exch 0.25 sub round 0.25 add
+exch itransform } bind def } ifelse gsave n 0 gt { 1 setlinecap [ 0 dy n
+div ] dy n div 2 div setdash } { 2 setlinecap } ifelse /i x1 def /f y1
+dy mul n 0 gt { dy n div 2 div h mul sub } if def /g y2 dy mul n 0 gt {
+dy n div 2 div h mul add } if def x2 x1 sub w mul 1 add dup 1000 gt {
+pop 1000 } if { i dx mul dup y0 moveto b 0 gt { gsave c i a cvs dup
+stringwidth pop /z2 ED w 0 gt {z1} {z1 z2 add neg} ifelse h 0 gt {b neg}
+{z1} ifelse rmoveto show grestore } if dup t f moveto g t L stroke /i i
+w add def } repeat grestore gsave n 0 gt
+% DG/SR modification begin - Nov. 7, 1997 - Patch 1
+%{ 1 setlinecap [ 0 dx n div ] dy n div 2 div setdash }
+{ 1 setlinecap [ 0 dx n div ] dx n div 2 div setdash }
+% DG/SR modification end
+{ 2 setlinecap } ifelse /i y1 def /f x1 dx mul
+n 0 gt { dx n div 2 div w mul sub } if def /g x2 dx mul n 0 gt { dx n
+div 2 div w mul add } if def y2 y1 sub h mul 1 add dup 1000 gt { pop
+1000 } if { newpath i dy mul dup x0 exch moveto b 0 gt { gsave c i a cvs
+dup stringwidth pop /z2 ED w 0 gt {z1 z2 add neg} {z1} ifelse h 0 gt
+{z1} {b neg} ifelse rmoveto show grestore } if dup f exch t moveto g
+exch t L stroke /i i h add def } repeat grestore } def
+/ArcArrow { /d ED /b ED /a ED gsave newpath 0 -1000 moveto clip newpath 0
+1 0 0 b grestore c mul /e ED pop pop pop r a e d PtoC y add exch x add
+exch r a PtoC y add exch x add exch b pop pop pop pop a e d CLW 8 div c
+mul neg d } def
+/Ellipse { /mtrx CM def T scale 0 0 1 5 3 roll arc mtrx setmatrix } def
+/Rot { CP CP translate 3 -1 roll neg rotate NET } def
+/RotBegin { tx@Dict /TMatrix known not { /TMatrix { } def /RAngle { 0 }
+def } if /TMatrix [ TMatrix CM ] cvx def /a ED a Rot /RAngle [ RAngle
+dup a add ] cvx def } def
+/RotEnd { /TMatrix [ TMatrix setmatrix ] cvx def /RAngle [ RAngle pop ]
+cvx def } def
+/PutCoor { gsave CP T CM STV exch exec moveto setmatrix CP grestore } def
+/PutBegin { /TMatrix [ TMatrix CM ] cvx def CP 4 2 roll T moveto } def
+/PutEnd { CP /TMatrix [ TMatrix setmatrix ] cvx def moveto } def
+/Uput { /a ED add 2 div /h ED 2 div /w ED /s a sin def /c a cos def /b s
+abs c abs 2 copy gt dup /q ED { pop } { exch pop } ifelse def /w1 c b
+div w mul def /h1 s b div h mul def q { w1 abs w sub dup c mul abs } {
+h1 abs h sub dup s mul abs } ifelse } def
+/UUput { /z ED abs /y ED /x ED q { x s div c mul abs y gt } { x c div s
+mul abs y gt } ifelse { x x mul y y mul sub z z mul add sqrt z add } { q
+{ x s div } { x c div } ifelse abs } ifelse a PtoC h1 add exch w1 add
+exch } def
+/BeginOL { dup (all) eq exch TheOL eq or { IfVisible not { Visible
+/IfVisible true def } if } { IfVisible { Invisible /IfVisible false def
+} if } ifelse } def
+/InitOL { /OLUnit [ 3000 3000 matrix defaultmatrix dtransform ] cvx def
+/Visible { CP OLUnit idtransform T moveto } def /Invisible { CP OLUnit
+neg exch neg exch idtransform T moveto } def /BOL { BeginOL } def
+/IfVisible true def } def
+end
+% END pstricks.pro
+
+%%EndProcSet
+%%BeginProcSet: pst-dots.pro 0 0
+%!PS-Adobe-2.0
+%%Title: Dot Font for PSTricks
+%%Creator: Timothy Van Zandt <tvz@Princeton.EDU>
+%%Creation Date: May 7, 1993
+%% Version 97 patch 1, 99/12/16
+%% Modified by Etienne Riga <etienne.riga@skynet.be> - Dec. 16, 1999
+%% to add /Diamond, /SolidDiamond and /BoldDiamond
+10 dict dup begin
+ /FontType 3 def
+ /FontMatrix [ .001 0 0 .001 0 0 ] def
+ /FontBBox [ 0 0 0 0 ] def
+ /Encoding 256 array def
+ 0 1 255 { Encoding exch /.notdef put } for
+ Encoding
+ dup (b) 0 get /Bullet put
+ dup (c) 0 get /Circle put
+ dup (C) 0 get /BoldCircle put
+ dup (u) 0 get /SolidTriangle put
+ dup (t) 0 get /Triangle put
+ dup (T) 0 get /BoldTriangle put
+ dup (r) 0 get /SolidSquare put
+ dup (s) 0 get /Square put
+ dup (S) 0 get /BoldSquare put
+ dup (q) 0 get /SolidPentagon put
+ dup (p) 0 get /Pentagon put
+ dup (P) 0 get /BoldPentagon put
+% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga
+ dup (l) 0 get /SolidDiamond put
+ dup (d) 0 get /Diamond put
+ (D) 0 get /BoldDiamond put
+% DG/SR modification end
+ /Metrics 13 dict def
+ Metrics begin
+ /Bullet 1000 def
+ /Circle 1000 def
+ /BoldCircle 1000 def
+ /SolidTriangle 1344 def
+ /Triangle 1344 def
+ /BoldTriangle 1344 def
+ /SolidSquare 886 def
+ /Square 886 def
+ /BoldSquare 886 def
+ /SolidPentagon 1093.2 def
+ /Pentagon 1093.2 def
+ /BoldPentagon 1093.2 def
+% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga
+ /SolidDiamond 1008 def
+ /Diamond 1008 def
+ /BoldDiamond 1008 def
+% DG/SR modification end
+ /.notdef 0 def
+ end
+ /BBoxes 13 dict def
+ BBoxes begin
+ /Circle { -550 -550 550 550 } def
+ /BoldCircle /Circle load def
+ /Bullet /Circle load def
+ /Triangle { -571.5 -330 571.5 660 } def
+ /BoldTriangle /Triangle load def
+ /SolidTriangle /Triangle load def
+ /Square { -450 -450 450 450 } def
+ /BoldSquare /Square load def
+ /SolidSquare /Square load def
+ /Pentagon { -546.6 -465 546.6 574.7 } def
+ /BoldPentagon /Pentagon load def
+ /SolidPentagon /Pentagon load def
+% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga
+ /Diamond { -428.5 -742.5 428.5 742.5 } def
+ /BoldDiamond /Diamond load def
+ /SolidDiamond /Diamond load def
+% DG/SR modification end
+ /.notdef { 0 0 0 0 } def
+ end
+ /CharProcs 20 dict def
+ CharProcs begin
+ /Adjust {
+ 2 copy dtransform floor .5 add exch floor .5 add exch idtransform
+ 3 -1 roll div 3 1 roll exch div exch scale
+ } def
+ /CirclePath { 0 0 500 0 360 arc closepath } def
+ /Bullet { 500 500 Adjust CirclePath fill } def
+ /Circle { 500 500 Adjust CirclePath .9 .9 scale CirclePath
+ eofill } def
+ /BoldCircle { 500 500 Adjust CirclePath .8 .8 scale CirclePath
+ eofill } def
+ /BoldCircle { CirclePath .8 .8 scale CirclePath eofill } def
+ /TrianglePath { 0 660 moveto -571.5 -330 lineto 571.5 -330 lineto
+ closepath } def
+ /SolidTriangle { TrianglePath fill } def
+ /Triangle { TrianglePath .85 .85 scale TrianglePath eofill } def
+ /BoldTriangle { TrianglePath .7 .7 scale TrianglePath eofill } def
+ /SquarePath { -450 450 moveto 450 450 lineto 450 -450 lineto
+ -450 -450 lineto closepath } def
+ /SolidSquare { SquarePath fill } def
+ /Square { SquarePath .89 .89 scale SquarePath eofill } def
+ /BoldSquare { SquarePath .78 .78 scale SquarePath eofill } def
+ /PentagonPath {
+ -337.8 -465 moveto
+ 337.8 -465 lineto
+ 546.6 177.6 lineto
+ 0 574.7 lineto
+ -546.6 177.6 lineto
+ closepath
+ } def
+ /SolidPentagon { PentagonPath fill } def
+ /Pentagon { PentagonPath .89 .89 scale PentagonPath eofill } def
+ /BoldPentagon { PentagonPath .78 .78 scale PentagonPath eofill } def
+% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga
+ /DiamondPath { 0 742.5 moveto -428.5 0 lineto 0 -742.5 lineto
+ 428.5 0 lineto closepath } def
+ /SolidDiamond { DiamondPath fill } def
+ /Diamond { DiamondPath .85 .85 scale DiamondPath eofill } def
+ /BoldDiamond { DiamondPath .7 .7 scale DiamondPath eofill } def
+% DG/SR modification end
+ /.notdef { } def
+ end
+ /BuildGlyph {
+ exch
+ begin
+ Metrics 1 index get exec 0
+ BBoxes 3 index get exec
+ setcachedevice
+ CharProcs begin load exec end
+ end
+ } def
+ /BuildChar {
+ 1 index /Encoding get exch get
+ 1 index /BuildGlyph get exec
+ } bind def
+end
+/PSTricksDotFont exch definefont pop
+%END pst-dots.pro
+
+%%EndProcSet
+%%BeginProcSet: special.pro 0 0
+%!
+TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N
+/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N
+/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N
+/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{
+/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho
+X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B
+/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{
+/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known
+{userdict/md get type/dicttype eq{userdict begin md length 10 add md
+maxlength ge{/md md dup length 20 add dict copy def}if end md begin
+/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S
+atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{
+itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll
+transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll
+curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf
+pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}
+if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1
+-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3
+get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip
+yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub
+neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{
+noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop
+90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get
+neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr
+1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr
+2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4
+-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S
+TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{
+Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale
+}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState
+save N userdict maxlength dict begin/magscale true def normalscale
+currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts
+/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x
+psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx
+psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub
+TR/showpage{}N/erasepage{}N/setpagedevice{pop}N/copypage{}N/p 3 def
+@MacSetUp}N/doclip{psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll
+newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto
+closepath clip newpath moveto}N/endTexFig{end psf$SavedState restore}N
+/@beginspecial{SDict begin/SpecialSave save N gsave normalscale
+currentpoint TR @SpecialDefaults count/ocount X/dcount countdictstack N}
+N/@setspecial{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs
+neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate
+rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse
+scale llx neg lly neg TR}{rhiSeen{rhi ury lly sub div dup scale llx neg
+lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx
+ury lineto llx ury lineto closepath clip}if/showpage{}N/erasepage{}N
+/setpagedevice{pop}N/copypage{}N newpath}N/@endspecial{count ocount sub{
+pop}repeat countdictstack dcount sub{end}repeat grestore SpecialSave
+restore end}N/@defspecial{SDict begin}N/@fedspecial{end}B/li{lineto}B
+/rl{rlineto}B/rc{rcurveto}B/np{/SaveX currentpoint/SaveY X N 1
+setlinecap newpath}N/st{stroke SaveX SaveY moveto}N/fil{fill SaveX SaveY
+moveto}N/ellipse{/endangle X/startangle X/yrad X/xrad X/savematrix
+matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc
+savematrix setmatrix}N end
+
+%%EndProcSet
+TeXDict begin 40258437 52099154 1000 600 600 (test.dvi)
+@start end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+ end
+%%EndSetup
+TeXDict begin 1 0 bop 0 setgray 0 setgray 1 setgray 639
+443 1783 4 v 639 2191 4 1749 v 1517 1317 a @beginspecial
+@setspecial
+ tx@Dict begin STP newpath 0.8 SLW 0. setgray /ArrowA { moveto } def
+/ArrowB { } def /t 0 def /t1 3600 def /dt t1 t sub 999 div def /xy
+{ t dup cos 1000 div mul t dup sin 1000 div mul 28.45274 mul exch 28.45274
+mul exch } def xy moveto 999 1 sub { /t t dt add def xy L } repeat
+/t t1 def xy L gsave 0.8 SLW 0. setgray 0 setlinecap stroke grestore
+end
+
+@endspecial 2418 2191 V 639 2194 1783 4
+v 0 setgray 1 setgray eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/Master/texmf-dist/doc/generic/pst-grad/Changes b/Master/texmf-dist/doc/generic/pst-grad/Changes
new file mode 100644
index 00000000000..4d49656c304
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-grad/Changes
@@ -0,0 +1,14 @@
+pst-grad.sty --------
+ 2006-08-01 message for loading the pro file
+
+pst-grad.tex --------
+v 1.05 2006/11/04 integrate the GradientHSB from package
+ pst-ghsb, which is now obsolete (hv)
+v 1.00 2006/08/13 use pst-xkey for key handling (hv)
+
+pst-grad.pro --------
+v 1.05 2006/11/04 integrate the GradientHSB from package
+ pst-ghsb, which is now obsolete (hv)
+
+pst-grad-doc.tex --------
+2006-11-04 updated \ No newline at end of file
diff --git a/Master/texmf-dist/doc/generic/pst-grad/README b/Master/texmf-dist/doc/generic/pst-grad/README
new file mode 100644
index 00000000000..c6f9ec9c72f
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-grad/README
@@ -0,0 +1,12 @@
+pst-grad: gradient color fillings
+
+pst-grad.sty - The LaTeX file
+pst-grad.tex - The TeX file
+pst-grad.pro - The dvips header file
+pst-grad-doc.tex - The documentation, source file
+pst-grad-doc.bib - The documentation, bibtex data file
+pst-grad-doc.pdf - The documentation, pdf
+
+
+--
+Herbert Voss 2006-11-01
diff --git a/Master/texmf-dist/doc/generic/pst-grad/pst-grad-doc.bib b/Master/texmf-dist/doc/generic/pst-grad/pst-grad-doc.bib
new file mode 100644
index 00000000000..574da56412a
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-grad/pst-grad-doc.bib
@@ -0,0 +1,204 @@
+%% -*-bibtex-*-
+@STRING{tugboat = {TUGboat} }
+@STRING{dtk = {{D}ie {\TeX}nische {K}om{\"o}die} }
+
+@Book{companion,
+ author = {Michel Goosens and Frank Mittelbach and Alexander
+ Samarin},
+ title = {The {\LaTeX} {G}raphics {C}ompanion},
+ publisher = {{Addison-Wesley Publishing Company}},
+ year = {1997},
+ address = {Reading, Mass.}
+}
+
+@Article{girou:01:,
+ author = {Denis Girou},
+ title = {Pr\'esentation de {PST}ricks},
+ journal = {Cahier {GUT}enberg},
+ year = 1994,
+ volume = {16},
+ month = apr,
+ pages = {21-70}
+}
+
+@Article{girou:02:,
+ author = {{Timothy van} Zandt and Denis Girou},
+ title = {Inside {PST}ricks},
+ journal = TUGboat,
+ year = 1994,
+ volume = {15},
+ month = sep,
+ pages = {239-246}
+}
+
+@Book{PostScript,
+ Author = {Kollock, Nikolai G.},
+ Title = {Post{S}cript richtig eingesetzt: vom {K}onzept zum
+ praktischen {E}insatz},
+ Publisher = {IWT},
+ Address = {Vaterstetten},
+ year = 1989,
+}
+
+@Manual{pstricks,
+ Title = {PSTricks - {\PS} macros for generic {\TeX}},
+ Author = {{Timothy van} Zandt},
+ Organization = {},
+ Address = {\url{http://www.tug.org/application/PSTricks}},
+ Note = {},
+ year = 1993
+}
+
+@Manual{pst-eps,
+ Title = {\texttt{pst-eps}: Exporting eps images},
+ Author = {{Timothy van} Zandt},
+ Organization = {},
+ Address = {\url{CTAN:graphics/pstricks/generic/}},
+ Note = {},
+ year = 1999
+}
+
+@Manual{multido,
+ Title = {\texttt{multido.tex} - a loop macro, that supports fixed-point addition},
+ Author = {{Timothy van} Zandt},
+ Organization = {},
+ Address = {\url{CTAN:/graphics/pstricks/generic/multido.tex}},
+ Note = {},
+ year = 1997
+}
+
+@Book{PSTricks2,
+ author = {Herbert Vo\ss{}},
+ title = {\texttt{PSTricks} -- {G}rafik f\"ur \TeX{} und \LaTeX},
+ edition = {third},
+ publisher = {DANTE -- Lehmanns},
+ year = {2006},
+ address = {Heidelberg/Hamburg}
+}
+
+@Manual{pst-code,
+ Title = {{PST}ricks - {\PS} macros for {G}eneric \TeX, {D}ocumented {Code}},
+ Author = {Timothy {V}an Zandt},
+ Organization = {},
+ Address = {\url{CTAN:/graphics/pstricks/obsolete/doc/src/pst-code.tex}},
+ Note = {},
+ year = 1997,
+}
+
+@Manual{references,
+ Title = {References for {\TeX{}} and {F}riends},
+ Author = {Michael Wiedmann},
+ Organization = {},
+ Address = {\url{http://www.miwie.org/tex-refs/}},
+ Note = {},
+ year = 2004,
+}
+
+@Manual{keyval,
+ Title = {The \texttt{keyval} - package},
+ Author = {D. P. Carlisle and S. P. Q. Rahtz},
+ Organization = {},
+ Address = {\url{CTAN:/macros/latex/required/graphics/keyval.dtx}},
+ Note = {},
+ year = 2001,
+}
+
+@Manual{xkeyval,
+ Title = {The \texttt{xkeyval} - package},
+ Author = {Hendri Adriaens},
+ Organization = {},
+ Address = {\url{CTAN:/macros/latex/contrib/xkeyval/}},
+ Note = {},
+ year = 2004,
+}
+
+@Manual{darmstadt,
+ Title = {{\PST} - mehr als nur ein alter Hut},
+ Author = {Rolf Niepraschk and Herbert Vo{\ss}},
+ Organization = {{DANTE} 2004 in {D}armstadt},
+ Address = {\url{http://PSTricks.de/docs/Darmstadt2004.pdf}},
+ Note = {},
+ year = 2004,
+}
+
+@Manual{pst-node,
+ Title = {The \texttt{pst-plot} - package},
+ Author = {{Timothy Van} Zandt},
+ Organization = {},
+ Address = {\url{CTAN: /graphics/pstricks/generic/}},
+ Note = {},
+ year = 2004,
+}
+
+@Manual{pstricks-add,
+ Title = {The \texttt{pstricks-add} - package},
+ Author = {Herbert Vo{\ss}},
+ Organization = {},
+ Address = {\url{CTAN: /graphics/pstricks/contrib/pstricks-add/}},
+ Note = {},
+ year = 2004,
+}
+
+@Article{dtk02.2:jackson.voss,
+ author = {Laura E. Jackson and Herbert Vo{\ss}},
+ title = {Die Plot-Funktionen von {\texttt{pst-plot}}},
+ journal = dtk,
+ year = 2002,
+ volume = {2/02},
+ altvolume = 2,
+ altnumber = 14,
+ month = jun,
+ pages = {27--34},
+ annote = bretter,
+ keywords = {},
+ abstract = { Im letzten Heft wurden die mathematischen Funktionen von
+ \PS~im Zusammenhang mit dem {\LaTeX}-Paket
+ \texttt{pst-plot} zum Zeichnen von Funktionen beschrieben
+ und durch Beispiele erl{\"a}utert. In diesem Teil werden
+ die bislang nur erw{\"a}hnten Plot-Funktionen f{\"u}r
+ externe Daten behandelt. }
+}
+
+@Article{tugboat:vossjh:01,
+ author = {Herbert Vo{\ss} and Jana Vo\ss},
+ title = {The plot functions of \texttt{pst-plot}},
+ journal = {TUGboat},
+ year = {2001},
+ volume = {22-4},
+ month = dec,
+ pages = {314-318}
+}
+
+@Article{tugboat:voss:01,
+ author = {Herbert Vo\ss},
+ title = {Three dimensional plots with \texttt{pst-3dplot}},
+ journal = {TUGboat},
+ year = {2001},
+ volume = {22-4},
+ month = dec,
+ pages = {319}
+}
+
+@Article{rahtz:96-1,
+ author = {Sebastian Rahtz},
+ title = {An introduction to {PST}ricks, part {I}},
+ journal = {Baskerville},
+ address = {\url{CTAN: /usergrps/uktug/baskervi/}},
+ year = 1996,
+ volume = 6,
+ number = 1,
+ month = feb,
+ pages = {22-34}
+}
+@Article{rahtz:96-2,
+ author = {Sebastian Rahtz},
+ title = {An introduction to {PST}ricks, part {II}},
+ journal = {Baskerville},
+ address = {\url{CTAN: /usergrps/uktug/baskervi/}},
+ year = 1996,
+ volume = 6,
+ number = 2,
+ month = apr,
+ pages = {23-33}
+}
+
diff --git a/Master/texmf-dist/doc/generic/pst-grad/pst-grad-doc.pdf b/Master/texmf-dist/doc/generic/pst-grad/pst-grad-doc.pdf
new file mode 100644
index 00000000000..c9a7b2111df
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-grad/pst-grad-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pst-grad/pst-grad-doc.tex b/Master/texmf-dist/doc/generic/pst-grad/pst-grad-doc.tex
new file mode 100644
index 00000000000..8eb17bb9aca
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-grad/pst-grad-doc.tex
@@ -0,0 +1,429 @@
+\documentclass[english]{article}
+%
+\usepackage[T1]{fontenc}
+\usepackage[latin9]{inputenc}
+\listfiles
+\usepackage[scaled]{luximono}
+\usepackage{lmodern}
+\usepackage{xspace,setspace,caption}
+\usepackage[bottom]{footmisc}
+\usepackage{tabularx,amsmath,eurosym}
+\usepackage{longtable}
+\usepackage[NewCommands,NewParameters]{ragged2e}
+\usepackage[dvipsnames]{pstricks}
+\usepackage{pst-text,pst-grad}
+\let\GRADfileversion\fileversion
+\let\GRADfiledate\filedate
+\usepackage{graphicx,multido,framed}
+\definecolor{hellgelb}{rgb}{1,1,0.8}
+\makeatletter
+\newcount\pst@cntm%
+\newcount\pst@cntn%
+\newcount\pst@cnto%
+\newcount\pst@cntp%
+\def\modulo#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%
+}
+\makeatother
+%
+\def\PST{{\texttt{PSTricks}}\xspace}
+\def\PDF{{\texttt{PDF}}\xspace}
+\def\pst{{\texttt{pstricks}}\xspace}
+\def\PS{PostScript\xspace}
+\newcommand*\CMD[1]{{\UrlFont\texttt{\textbackslash #1}}}
+%
+\def\tIndex#1{\index{#1@{\UrlFont\texttt{#1}}}}
+\def\cIndex#1{\index{#1@\CMD{#1}}}
+\def\pIndex#1{\index{Parameter@\textbf{Parameter}!{\UrlFont\texttt{#1}}}}
+\def\ppIndex#1{\index{Parameter@\textbf{Parameter}!{#1}}}
+\def\sIndex#1{\index{Syntax@\textbf{Syntax}!\CMD{#1}}}
+\def\csIndex#1{\sIndex{#1}\cIndex{#1}}
+\def\PIndex#1{\index{Paket@\textbf{Paket}!\texttt{#1}}}
+\def\mIndex#1{\texttt{#1}\tIndex{#1}\pIndex{#1}}
+%
+\pretolerance=500
+\tolerance=1000
+\hbadness=3000
+\vbadness=3000
+\hyphenpenalty=400
+
+\usepackage{showexpl}% not a real PSTricks package
+\usepackage{babel}
+\usepackage{makeidx}
+\makeindex
+\usepackage[dvips,colorlinks,linktocpage]{hyperref} % PDF-support
+%
+\renewcommand{\ttdefault}{ul9}% Luxi Mono
+\lstset{keywordstyle=\small\ttfamily\bfseries,preset=\raggedright}
+\lstset{language=PSTricks,moredelim=**[is][\bf\color{blue}]{§}{§}}%
+%
+
+\begin{document}
+%
+\title{\texttt{pst-grad}:Gradients \\[10pt]\footnotesize v. \GRADfileversion\ -- \GRADfiledate}
+\author{Herbert Voß\thanks{Thanks to Lars Kotthoff and Angelo Rossi for translating this documentation!}
+}
+\maketitle
+
+\begin{abstract}
+\PIndex{pst-grad}\tIndex{pst-grad}\verb+pst-grad+
+is also one of the older and smaller
+packages. It provides only one fill style. A
+gradient could be created with the macros known from \PST, too, the use of
+\verb+pst-grad+ offers advantages though, since one does not need to take care
+of the calculation of the intermediate colour values.
+
+This version of \verb+pst-grad+ integrates the function of the
+\verb+pst-ghsb+ package, which supports the HSB color model.
+
+\end{abstract}
+
+\tableofcontents
+
+\clearpage
+
+\section{Introduction}
+
+
+All parameters are only available when \textbf{gradient} is used as
+ fill style.
+There are further packages which support such fill styles, especially for
+circular gradients (\verb+pst-slpe+\PIndex{pst-slpe}).
+
+
+% ---------------------------------------------------------------------------------------
+\section{Parameters}\label{sec:pstgrad:parameter}
+% ---------------------------------------------------------------------------------------
+Table~\ref{tab:pst-grad:parameter} shows a compilation of the special parameters
+valid for \verb+pst-grad+.
+
+\begin{longtable}{>{\ttfamily}l>{\ttfamily}l>{\ttfamily}l}
+\caption{Summary of all parameters for \texttt{pst-grad} and
+\texttt{pst-ghsb}}\label{tab:pst-grad:parameter}\\[-5pt]
+\textrm{name} & \textrm{values} & \textrm{default}\\\hline
+\endfirsthead
+\textrm{name} & \textrm{values} & \textrm{default}\\\hline
+\endhead
+gradbegin & <colour> & gradbegin\\
+gradend & <colour> & gradend\\
+gradlines & <value> & 500\\
+gradmidpoint & <value> & 0.9\\
+gradangle & <angle> & 0\\
+gradientHSB & false|true & false\\
+GradientCircle& false|true & false\\
+GradientScale & <value> & 1.0\\
+GradientPos & <(x,y)> & (0,0)\\
+\end{longtable}
+\tIndex{gradbegin}\tIndex{gradend}\tIndex{gradlines}\tIndex{gradmidpoint}\tIndex{gradangle}
+\pIndex{gradbegin}\pIndex{gradend}\pIndex{gradlines}\pIndex{gradmidpoint}\pIndex{gradangle}
+\tIndex{gradientHSB}\pIndex{gradientHSB}%
+\tIndex{GradientCircle}\pIndex{GradientCircle}%
+\tIndex{GradientPos}\pIndex{GradientPos}%
+\tIndex{GradientScale}\pIndex{GradientScale}
+
+
+% ---------------------------------------------------------------------------------------
+\subsection{\texttt{gradbegin}}\label{subsec:pstgrad:gradbegin}
+% ---------------------------------------------------------------------------------------
+\tIndex{gradbegin}\verb+gradbegin+ denotes the parameter as well as the starting
+colour, which is a little bit confusing here.
+\begin{verbatim}
+\newrgbcolor{gradbegin}{0 .1 .95} % default
+\end{verbatim}
+
+Consequently this starting colour can be changed by redefining the colour or by
+an assignment through the parameter.
+\begin{verbatim}
+\newrgbcolor{gradbegin}{0 0 1}
+\definecolor{rgb}{gradbegin}{0 0 1} % requires color/xcolor package
+\psset{gradbegin=blue}
+\end{verbatim}
+
+
+\medskip\noindent
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}(5,3.5)
+\psframe[fillstyle=gradient,gradbegin=white](5,1.5)
+\newrgbcolor{gradbegin}{0 1 1}
+\psframe[fillstyle=gradient](0,2)(5,3.5)
+\end{pspicture}
+\end{LTXexample}
+
+
+\medskip
+%\begin{shaded}
+\begin{itemize}
+ \item \verb+gradbegin+ should be defined as \verb+RGB+ colour\tIndex{RGB},
+ since a faultless function for \verb+CMYK+ or gray scales is not
+ warranted in every case.
+\item Con\TeX{}t users change the colour with\\
+ \verb+\definecolor{rgb}{gradbegin}{r=0,g=0,b=1}+
+\end{itemize}
+%\end{shaded}
+
+
+
+% ---------------------------------------------------------------------------------------
+\subsection{\texttt{gradend}}\label{subsec:pstgrad:gradend}
+% ---------------------------------------------------------------------------------------
+\tIndex{gradend}\verb+gradend+ is \textbf{not} the counterpart to
+\verb+gradbegin+, for it is the colour which is reached at the relative point
+\verb+gridmidpoint+. In every case it is ambiguous as \verb+gradbegin+ again.
+\begin{verbatim}
+\newrgbcolor{gradend}{0 1 1} % default
+\end{verbatim}
+
+
+Changes can be made differently again.
+\begin{verbatim}
+\newrgbcolor{gradend}{1 0 0}
+\definecolor{rgb}{gradend}{1 0 0} % requires color/xcolor package
+\psset{gradend=red}
+\end{verbatim}
+
+
+\medskip\noindent
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}(5,3.5)
+\psframe[fillstyle=gradient,gradend=white](5,1.5)
+\newrgbcolor{gradend}{1 0 0}
+\psframe[fillstyle=gradient](0,2)(5,3.5)
+\end{pspicture}
+\end{LTXexample}
+
+
+\medskip
+%\begin{shaded}
+\begin{itemize}
+ \item \verb+gradend+ should be defined as \verb+RGB+ colour\tIndex{RGB},
+ since a faultless function for \verb+CMYK+ or gray scales is not
+ warranted in every case.
+\item Con\TeX{}t users change the colour with\\
+\verb+\definecolor{rgb}{gradend}{r=1,g=1,b=0}+
+\end{itemize}
+%\end{shaded}
+
+
+
+% ---------------------------------------------------------------------------------------
+\subsection{\texttt{gradlines}}\label{subsec:pstgrad:gradlines}
+% ---------------------------------------------------------------------------------------
+\tIndex{gradlines}A gradient is nothing but a string of coloured lines. The
+width of those depends only on the resolution of the monitor resp. the printer
+in the end. But since this is very user-specific, \verb+pst-grad+ allows any
+number of lines, which can be changed through \verb+gradlines+.
+
+
+
+\medskip\noindent
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}(5,4)
+\psset{fillstyle=gradient,linestyle=none}
+\psframe[gradlines=5](5,1)
+\psframe(0,1.5)(5,2.5)
+\psframe[gradlines=1000](0,3)(5,4)
+\end{pspicture}
+\end{LTXexample}
+
+
+
+
+% ---------------------------------------------------------------------------------------
+\subsection{\texttt{gradmidpoint}}\label{subsec:pstgrad:gradmidpoint}
+% ---------------------------------------------------------------------------------------
+\tIndex{gradmidpoint}Denotes the relative point where the colour \verb+gradend+
+is reached. Then it is proceeded in reverse order.
+
+
+\medskip\noindent
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}(5,4)
+\psset{fillstyle=gradient,linestyle=none}
+\psframe[gradmidpoint=0](5,1)
+\psframe[gradmidpoint=0.5](0,1.5)(5,2.5)
+\psframe[gradmidpoint=1](0,3)(5,4)
+\end{pspicture}
+\end{LTXexample}
+
+
+
+% ---------------------------------------------------------------------------------------
+\subsection{\texttt{gradangle}}\label{subsec:pstgrad:gradangle}
+% ---------------------------------------------------------------------------------------
+\tIndex{gradangle}\verb+gradangle+ determines the gradient angle of the straight
+line.
+
+\medskip\noindent
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}(5,4)
+\psset{fillstyle=gradient,linestyle=none,gradmidpoint=0.5}
+\psframe[gradangle=0](5,1)
+\psframe[gradangle=45](0,1.5)(5,2.5)
+\psframe[gradangle=90](0,3)(5,4)
+\end{pspicture}
+\end{LTXexample}
+
+% ---------------------------------------------------------------------------------------
+\subsection{\texttt{GradientCircle}, \texttt{GradientScale} and \texttt{GradientPos} }\label{subsec:pstgrad:GradientCircle}
+% ---------------------------------------------------------------------------------------
+\tIndex{GradientCircle}\tIndex{GradientScale}\tIndex{GradientPos}With the option
+\verb+GradientCircle+ circular gradients can be created. The radius can be
+influenced through \verb+GradientScale+ and the centre with \verb+GradientPos+.
+The specification of the coordinates refers to the based coordinate system,
+which is given by the \verb+pspicture+ environment as a rule.
+
+\medskip\noindent
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}(5,4)
+\psset{fillstyle=gradient,linestyle=none}
+\psframe[GradientCircle=true](5,1)%
+\psframe[GradientCircle=true,GradientScale=3](0,1.5)(5,2.5)%
+\psframe[GradientCircle=true,GradientScale=2,%
+ GradientPos={(4,3.5)}](0,3)(5,4)%
+\end{pspicture}
+\end{LTXexample}
+
+\vspace{1cm}
+\begin{center}
+\bgroup
+\DeclareFixedFont{\RM}{T1}{ptm}{b}{n}{3cm}
+\DeclareFixedFont{\Rm}{T1}{ptm}{m}{n}{2mm}
+
+\psset{fillstyle=gradient,gradbegin=red,gradend=white}
+\begin{pspicture}(\linewidth,3cm)
+\resizebox{\linewidth}{!}{\pscharpath[gradangle=90]{\RM PostScript}}
+\end{pspicture}\\
+\begin{pspicture}(\linewidth,3cm)
+\resizebox{\linewidth}{!}{\pscharpath[gradangle=0]{\RM PostScript}}
+\end{pspicture}\\
+\begin{pspicture}(\linewidth,3cm)
+\resizebox{\linewidth}{!}{\pscharpath[gradmidpoint=0,gradangle=90]{\RM PostScript}}
+\end{pspicture}
+\egroup
+\captionof{figure}{Shadow games\ldots}
+\end{center}
+
+
+\clearpage
+\subsection{\texttt{GradientHSB}}\label{subsec:pstgrad:gradientHSB}
+
+\medskip\noindent
+\begin{LTXexample}[width=5.5cm]
+\newcommand{\Fig}[1][]{%
+\begin{pspicture}(5.5,5.5)
+ \psframe[#1](5,5)
+\end{pspicture}}
+\newhsbcolor{ColorA}{0 0 0.7}
+\newhsbcolor{ColorB}{0 1 0.7}
+\newhsbcolor{ColorC}{.5 0.8 0}
+\newhsbcolor{ColorD}{.5 0.8 1}
+\psset{fillstyle=gradient,gradientHSB=true}
+\Fig[gradmidpoint=1,gradbegin=ColorA,gradend=ColorB]
+\Fig[gradmidpoint=0.5,gradbegin=ColorC,gradend=ColorD]
+\end{LTXexample}
+
+
+\newcommand{\Fig}[1][]{%
+\begin{pspicture}(5.5,5.5)
+ \psframe[#1](5,5)
+\end{pspicture}}
+\definecolor{ColorA}{hsb}{0.7, 0.1, 0.8}
+\definecolor{ColorB}{hsb}{0.7, 0.9, 0.8}
+\definecolor{ColorC}{hsb}{0, 0, 0}
+\definecolor{ColorD}{hsb}{0, 0, 1}
+\definecolor{ColorE}{hsb}{0, 0, 0.5}
+\definecolor{ColorF}{hsb}{0, 1, 0.5}
+\definecolor{ColorG}{hsb}{0, 0, 0.5}
+\definecolor{ColorH}{hsb}{0.99999, 0, 0.5} % As it's cycliç 1=0 !
+\definecolor{ColorI}{hsb}{1, 1, 1}
+\definecolor{ColorJ}{hsb}{1, 0, 0}
+\definecolor{ColorK}{hsb}{0.99999, 1, 1} % As it's cyclic 1=0 !
+\definecolor{ColorL}{hsb}{0, 1, 0}
+\definecolor{ColorM}{hsb}{0.99999, 1, 1} % As it's cyclic 1=0 !
+\definecolor{ColorN}{hsb}{0, 0, 1}
+\definecolor{ColorO}{hsb}{0, 0.6, 0.7}
+\definecolor{ColorP}{hsb}{0.99999, 0.7, 0.7} % As it's cyclic 1=0 !
+\definecolor{ColorQ}{hsb}{0.3, 0, 0.8}
+\definecolor{ColorR}{hsb}{0.3, 1, 0.8}
+\definecolor{ColorS}{hsb}{0.6, 0.3, 0}
+\definecolor{ColorT}{hsb}{0.6, 0.3, 1}
+\psset{fillstyle=gradient,gradmidpoint=1}
+\Fig[gradbegin=yellow,gradend=green]
+\Fig[gradientHSB=true,gradbegin=ColorA,gradend=ColorB]
+
+\Fig[gradbegin=green,gradend=yellow]
+\psset{gradientHSB=true}
+\Fig[gradbegin=ColorC,gradend=ColorD]
+
+\Fig[gradbegin=ColorE,gradend=ColorF]
+\Fig[gradbegin=ColorG,gradend=ColorH]
+
+\Fig[gradbegin=ColorI,gradend=ColorJ]
+\Fig[gradbegin=ColorK,gradend=ColorL]
+
+\Fig[gradbegin=ColorM,gradend=ColorN]
+\Fig[gradbegin=ColorO,gradend=ColorP]
+
+\Fig[gradbegin=ColorQ,gradend=ColorR]
+\Fig[gradbegin=ColorS,gradend=ColorT]
+
+\begin{lstlisting}
+\definecolor{ColorA}{hsb}{0.7, 0.1, 0.8}
+\definecolor{ColorB}{hsb}{0.7, 0.9, 0.8}
+\definecolor{ColorC}{hsb}{0, 0, 0}
+\definecolor{ColorD}{hsb}{0, 0, 1}
+\definecolor{ColorE}{hsb}{0, 0, 0.5}
+\definecolor{ColorF}{hsb}{0, 1, 0.5}
+\definecolor{ColorG}{hsb}{0, 0, 0.5}
+\definecolor{ColorH}{hsb}{0.99999, 0, 0.5} % As it's cycliç 1=0 !
+\definecolor{ColorI}{hsb}{1, 1, 1}
+\definecolor{ColorJ}{hsb}{1, 0, 0}
+\definecolor{ColorK}{hsb}{0.99999, 1, 1} % As it's cyclic 1=0 !
+\definecolor{ColorL}{hsb}{0, 1, 0}
+\definecolor{ColorM}{hsb}{0.99999, 1, 1} % As it's cyclic 1=0 !
+\definecolor{ColorN}{hsb}{0, 0, 1}
+\definecolor{ColorO}{hsb}{0, 0.6, 0.7}
+\definecolor{ColorP}{hsb}{0.99999, 0.7, 0.7} % As it's cyclic 1=0 !
+\definecolor{ColorQ}{hsb}{0.3, 0, 0.8}
+\definecolor{ColorR}{hsb}{0.3, 1, 0.8}
+\definecolor{ColorS}{hsb}{0.6, 0.3, 0}
+\definecolor{ColorT}{hsb}{0.6, 0.3, 1}
+\psset{fillstyle=gradient,gradmidpoint=1}
+\Fig[gradbegin=yellow,gradend=green]
+\Fig[gradientHSB=true,gradbegin=ColorA,gradend=ColorB]
+
+\Fig[gradbegin=green,gradend=yellow]
+\psset{gradientHSB=true}
+\Fig[gradbegin=ColorC,gradend=ColorD]
+
+\Fig[gradbegin=ColorE,gradend=ColorF]
+\Fig[gradbegin=ColorG,gradend=ColorH]
+
+\Fig[gradbegin=ColorI,gradend=ColorJ]
+\Fig[gradbegin=ColorK,gradend=ColorL]
+
+\Fig[gradbegin=ColorM,gradend=ColorN]
+\Fig[gradbegin=ColorO,gradend=ColorP]
+
+\Fig[gradbegin=ColorQ,gradend=ColorR]
+\Fig[gradbegin=ColorS,gradend=ColorT]
+\end{lstlisting}
+
+
+\nocite{*}
+\bgroup
+\raggedright
+\bibliographystyle{plain}
+\bibliography{\jobname}
+\egroup
+
+\printindex
+
+
+\end{document}
diff --git a/Master/texmf-dist/dvips/pst-grad/pst-grad.pro b/Master/texmf-dist/dvips/pst-grad/pst-grad.pro
new file mode 100644
index 00000000000..e3d87c1bfd0
--- /dev/null
+++ b/Master/texmf-dist/dvips/pst-grad/pst-grad.pro
@@ -0,0 +1,176 @@
+%!
+% PostScript prologue for pst-grad.tex.
+% Version 1.05, 2006/11/04
+% prepared by Herbert Voss
+% For copying restrictions, see pstricks.tex.
+%
+% For the PSTricks gradient fillstyle.%
+% Based on some EPS files by leeweyr!bill@nuchat.sccsi.com (W. R. Lee).%
+% Syntax:% D.G. modification begin - Apr. 9, %1998
+%%%%%% R0 G0 B0 R1 G1 B1 NumLines MidPoint Angle GradientFill
+% ifGradientCircle GradientScale %GradientPosX GradientPosY
+% R0 G0 B0 R1 G1 B1 NumLines MidPoint %Angle GradientFill
+% D.G. modification end
+%
+/tx@GradientDict 40 dict def
+tx@GradientDict begin
+/GradientFill {
+ rotate
+ /MidPoint ED
+ /NumLines ED
+ /LastBlue ED
+ /LastGreen ED
+ /LastRed ED
+ /FirstBlue ED
+ /FirstGreen ED
+/FirstRed ED
+% D.G. modification begin - Apr. 9, 1998
+/GradientPosY ED
+/GradientPosX ED
+ /GradientScale ED
+ /ifGradientCircle ED
+% D.G. modification end
+ % This avoids gaps due to rounding errors:
+ clip
+ pathbbox %leave llx,lly,urx,ury on stack
+% D.G. modification begin - Apr. 10, 1998
+ 4 copy /ury ED /urx ED /lly ED /llx ED
+% D.G. modification end
+ /y ED /x ED
+% D.G. modification begin - Apr. 10, 1998
+ifGradientCircle
+ {0 GradientPosX eq
+ {0 GradientPosX eq {2 copy translate} if} if}
+ {2 copy translate} ifelse
+% D.G. modification end
+ y sub neg /y ED
+ x sub neg /x ED % This avoids gaps due to rounding errors:
+ LastRed FirstRed add 2 div
+ LastGreen FirstGreen add 2 div
+ LastBlue FirstBlue add 2 div
+ setrgbcolor
+% D.G. modification begin - Jul. 23, 1997 / Apr. 9, 1998
+ ifGradientCircle
+ {/YSizePerLine y NumLines div def
+ /CurrentY y 2 div def
+ /MidLine NumLines 2 div 1 MidPoint sub mul abs cvi def}
+ {fill
+ /YSizePerLine y NumLines div def
+ /CurrentY 0 def
+ /MidLine NumLines 1 MidPoint sub mul abs cvi def} ifelse
+% DG modification end
+ MidLine NumLines 2 sub gt
+ { /MidLine NumLines def }
+ { MidLine 2 lt { /MidLine 0 def } if }
+ ifelse
+ MidLine 0 gt
+ {
+ /Red FirstRed def
+ /Green FirstGreen def
+ /Blue FirstBlue def
+ /RedIncrement LastRed FirstRed sub MidLine 1 sub div def
+ /GreenIncrement LastGreen FirstGreen sub MidLine 1 sub div def
+ /BlueIncrement LastBlue FirstBlue sub MidLine 1 sub div def
+ MidLine { GradientLoop } repeat
+ } if
+ MidLine NumLines lt
+ {
+ /Red LastRed def
+ /Green LastGreen def
+ /Blue LastBlue def
+ /RedIncrement FirstRed LastRed sub NumLines MidLine sub 1 sub div def
+ /GreenIncrement FirstGreen LastGreen sub NumLines MidLine sub 1 sub div def
+ /BlueIncrement FirstBlue LastBlue sub NumLines MidLine sub 1 sub div def
+ NumLines MidLine sub { GradientLoop } repeat }
+ if
+ } def/GradientLoop {
+% D.G. modification begin - Jul. 23, 1997 / Apr. 9, 1998
+ ifGradientCircle
+ {CurrentY 0 gt {
+% The default center used is the center of the bounding box of the object
+ 0 GradientPosX eq {0 GradientPosX eq
+ {/GradientPosX urx llx sub 2 div def
+ /GradientPosY ury lly sub 2 div def} if} if
+ GradientPosX GradientPosY CurrentY GradientScale mul 0 360 arc
+ Red Green Blue setrgbcolor fill
+ /CurrentY CurrentY YSizePerLine sub def
+ /Blue Blue BlueIncrement add def
+ /Green Green GreenIncrement add def
+ /Red Red RedIncrement add def} if} {0 CurrentY moveto x 0 rlineto
+ 0 YSizePerLine rlineto x neg 0 rlineto closepath
+ Red Green Blue setrgbcolor fill /CurrentY CurrentY YSizePerLine add def
+ /Blue Blue BlueIncrement add def /Green Green GreenIncrement add def
+ /Red Red RedIncrement add def} ifelse% D.G. modification end
+ }def
+%
+/GradientFillHSB { % hv 2006-11-04
+ rotate
+ /MidPoint ED
+ /NumLines ED
+ /LastBrightness ED
+ /LastSaturation ED
+ /LastHue ED
+ /FirstBrightness ED
+ /FirstSaturation ED
+ /FirstHue ED
+ % This avoids gaps due to rounding errors:
+ clip
+ pathbbox %leave llx,lly,urx,ury on stack
+ /y ED /x ED
+ 2 copy translate
+ y sub neg /y ED
+ x sub neg /x ED
+ % This avoids gaps due to rounding errors:
+ LastHue FirstHue add 2 div
+ LastSaturation FirstSaturation add 2 div
+ LastBrightness FirstBrightness add 2 div
+ sethsbcolor
+ fill
+ /YSizePerLine y NumLines div def
+ /CurrentY 0 def
+ /MidLine NumLines 1 MidPoint sub mul abs cvi def
+ MidLine NumLines 2 sub gt
+ { /MidLine NumLines def }
+ { MidLine 2 lt { /MidLine 0 def } if }
+ ifelse
+ MidLine 0 gt
+ {
+ /Hue FirstHue def
+ /Saturation FirstSaturation def
+ /Brightness FirstBrightness def
+ /HueIncrement LastHue FirstHue sub MidLine 1 sub div def
+ /SaturationIncrement LastSaturation FirstSaturation sub MidLine 1 sub
+ div def
+ /BrightnessIncrement LastBrightness FirstBrightness sub MidLine 1 sub
+ div def
+ MidLine { GradientLoopHSB } repeat
+ } if
+ MidLine NumLines lt
+ {
+ /Hue LastHue def
+ /Saturation LastSaturation def
+ /Brightness LastBrightness def
+ /HueIncrement FirstHue LastHue sub NumLines MidLine sub 1 sub div def
+ /SaturationIncrement FirstSaturation LastSaturation sub
+ NumLines MidLine sub 1 sub div def
+ /BrightnessIncrement FirstBrightness LastBrightness sub
+ NumLines MidLine sub 1 sub div def
+ NumLines MidLine sub { GradientLoopHSB } repeat
+ } if
+} def
+/GradientLoopHSB {
+ 0 CurrentY moveto
+ x 0 rlineto
+ 0 YSizePerLine rlineto
+ x neg 0 rlineto
+ closepath
+ Hue Saturation Brightness sethsbcolor fill
+ /CurrentY CurrentY YSizePerLine add def
+ /Brightness Brightness BrightnessIncrement add def
+ /Saturation Saturation SaturationIncrement add def
+ /Hue Hue HueIncrement add def
+} def
+%
+end
+%
+% END pst-grad.pro
diff --git a/Master/texmf-dist/source/generic/pst-eps/Makefile b/Master/texmf-dist/source/generic/pst-eps/Makefile
new file mode 100644
index 00000000000..1d0c3f9c815
--- /dev/null
+++ b/Master/texmf-dist/source/generic/pst-eps/Makefile
@@ -0,0 +1,49 @@
+
+# `Makefile' for `pst-coil.pdf', hv, 2006/08/11
+
+.SUFFIXES : .tex .ltx .dvi .ps .pdf .eps
+
+PACKAGE = pst-eps
+
+MAIN = pst-eps-doc
+
+LATEX = latex
+
+ARCHNAME = $(MAIN)-$(shell date +%y%m%d)
+
+ARCHFILES = $(PACKAGE).sty $(PACKAGE).tex $(PACKAGE).pro $(MAIN).tex README Changes Makefile
+
+all : doc
+# clean
+doc: $(MAIN).pdf
+
+$(MAIN).pdf : $(MAIN).ps
+ GS_OPTIONS=-dAutoRotatePages=/None ps2pdf $<
+
+$(MAIN).ps : $(MAIN).dvi
+ dvips $<
+
+$(MAIN).dvi : $(MAIN).tex
+ $(LATEX) $<
+ $(LATEX) $<
+ if ! test -f $(basename $<).glo ; then touch $(basename $<).glo; fi
+ if ! test -f $(basename $<).idx ; then touch $(basename $<).idx; fi
+ makeindex -s gglo.ist -t $(basename $<).glg -o $(basename $<).gls \
+ $(basename $<).glo
+ makeindex -t $(basename $<).ilg -o $(basename $<).ind \
+ $(basename $<).idx
+ bibtex $(basename $<)
+ $(LATEX) $<
+ $(LATEX) $<
+
+clean :
+ $(RM) $(addprefix $(MAIN), .log .aux .glg .glo .gls .ilg .idx .ind .tmp .toc .out )
+ $(RM) $(addprefix $(MAIN), .dvi .ps)
+
+veryclean : clean
+ $(RM) $(addprefix $(MAIN), .pdf .bbl .blg)
+
+arch :
+ zip $(ARCHNAME).zip $(ARCHFILES)
+
+# EOF
diff --git a/Master/texmf-dist/source/generic/pst-grad/Makefile b/Master/texmf-dist/source/generic/pst-grad/Makefile
new file mode 100644
index 00000000000..284fec50de7
--- /dev/null
+++ b/Master/texmf-dist/source/generic/pst-grad/Makefile
@@ -0,0 +1,49 @@
+
+# `Makefile' for `pst-coil.pdf', hv, 2006/08/11
+
+.SUFFIXES : .tex .ltx .dvi .ps .pdf .eps
+
+PACKAGE = pst-grad
+
+MAIN = pst-grad-doc
+
+LATEX = latex
+
+ARCHNAME = $(MAIN)-$(shell date +%y%m%d)
+
+ARCHFILES = $(PACKAGE).sty $(PACKAGE).tex $(PACKAGE).pro $(MAIN).tex README Changes Makefile
+
+all : doc
+# clean
+doc: $(MAIN).pdf
+
+$(MAIN).pdf : $(MAIN).ps
+ GS_OPTIONS=-dAutoRotatePages=/None ps2pdf $<
+
+$(MAIN).ps : $(MAIN).dvi
+ dvips $<
+
+$(MAIN).dvi : $(MAIN).tex
+ $(LATEX) $<
+ $(LATEX) $<
+ if ! test -f $(basename $<).glo ; then touch $(basename $<).glo; fi
+ if ! test -f $(basename $<).idx ; then touch $(basename $<).idx; fi
+ makeindex -s gglo.ist -t $(basename $<).glg -o $(basename $<).gls \
+ $(basename $<).glo
+ makeindex -t $(basename $<).ilg -o $(basename $<).ind \
+ $(basename $<).idx
+ bibtex $(basename $<)
+ $(LATEX) $<
+ $(LATEX) $<
+
+clean :
+ $(RM) $(addprefix $(MAIN), .log .aux .glg .glo .gls .ilg .idx .ind .tmp .toc .out )
+ $(RM) $(addprefix $(MAIN), .dvi .ps)
+
+veryclean : clean
+ $(RM) $(addprefix $(MAIN), .pdf .bbl .blg)
+
+arch :
+ zip $(ARCHNAME).zip $(ARCHFILES)
+
+# EOF
diff --git a/Master/texmf-dist/tex/generic/pst-eps/pst-eps.tex b/Master/texmf-dist/tex/generic/pst-eps/pst-eps.tex
new file mode 100644
index 00000000000..5450e814c66
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/pst-eps/pst-eps.tex
@@ -0,0 +1,241 @@
+%% BEGIN pst-eps.tex
+%%
+%% Writing EPS files with PSTricks 97.
+%% See the PSTricks User's Guide for description.
+%%
+%%
+%% COPYRIGHT 1993, 1994, 1999 by Timothy Van Zandt, tvz@nwu.edu.
+%% COPYRIGHT 2006 by Herbert Voss, hvoss@tug.org.
+%%
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+
+\csname PSTfilesLoaded\endcsname
+\let\PSTfilesLoaded\endinput
+\ifx\PSTricksLoaded\endinput\else
+ \def\next{\input pstricks.tex}
+ \expandafter\next
+\fi
+\ifx\PSTXKeyLoaded\endinput\else\input pst-xkey\fi
+%
+\def\fileversion{1.00}
+\def\filedate{2006/11/04}
+\message{ v\fileversion, \filedate}
+%
+\edef\TheAtCode{\the\catcode`\@}
+\catcode`\@=11
+\pst@addfams{pst-eps}
+
+% Exporting PostScript files
+
+% DG/SR modification begin - May 5, 1997 - Patch 1
+% With LaTeX 2e, we must force now inclusion of header files
+%\def\TeXtoEPS{\begingroup\pst@makebox{}\bgroup\ignorespaces}
+\def\TeXtoEPS{%
+ \ifx\documentclass\@undefined\else\@begindvi\fi
+ \begingroup\pst@makebox{}\bgroup\ignorespaces}
+% DG/SR modification end
+\def\endTeXtoEPS{%
+ \egroup
+% Get contents of page, in case it contains special's:
+ \begingroup
+ \global\setbox\pst@boxg\box\voidb@x
+ \output{\global\setbox\pst@boxg\box\@cclv}%
+ \par\hbox{}\penalty-10000
+ \endgroup
+ \dp\pst@boxg\z@
+ \ht\pst@boxg\z@
+ \wd\pst@boxg\z@
+ \pst@dimg=3pt
+ \shipout\hbox{%
+ \box\pst@boxg
+ \pst@Verb{gsave CM \tx@STV CP newpath moveto
+ \pst@number\pst@dimg neg 0 rmoveto clip setmatrix}%
+ \vrule width \wd\pst@hbox height \ht\pst@hbox depth \dp\pst@hbox
+ \pstVerb{currentpoint grestore moveto}%
+ \kern -\wd\pst@hbox
+ \unhbox\pst@hbox}%
+ \endgroup
+ \typeout{PSTricks: Converting TeX box to EPS.}%
+ \typeout{\@spaces\@spaces\space\space With dvips, use -E option.}}
+
+% Writing PSTricks graphics to EPS files
+
+\newwrite\pst@epsout
+\newwrite\pst@tempout
+
+\def\pst@getbp#1#2#3{%
+ \csname psset#1length\endcsname\pst@dimg{#2}%
+ \advance\pst@dimg .49bp
+ \pst@cntg=\pst@dimg
+ \multiply\pst@cntg 5
+ \divide\pst@cntg 328909
+ \edef#3{\the\pst@cntg}}
+
+\define@key[psset]{pst-eps}{bbllx}{\pst@getbp{x}{#1}\psk@bbllx}
+\define@key[psset]{pst-eps}{bblly}{\pst@getbp{y}{#1}\psk@bblly}
+\define@key[psset]{pst-eps}{bburx}{\pst@getbp{x}{#1}\psk@bburx}
+\define@key[psset]{pst-eps}{bbury}{\pst@getbp{y}{#1}\psk@bbury}
+\psset[pst-eps]{bbllx=-1pt,bblly=-1pt,bburx=1pt,bbury=1pt}
+
+\define@key[psset]{pst-eps}{headers}{%
+ \def\pst@tempg{#1}
+ \ifx\pst@tempg\@none
+ \def\psk@headers{\z@}% 0 -> none
+ \else
+ \def\pst@temph{all}%
+ \ifx\pst@tempg\pst@temph
+ \def\psk@headers{2\relax}% 2 -> all
+ \else
+ \def\psk@headers{1\relax}% 1 -> user
+ \fi
+ \fi}
+%
+\define@key[psset]{pst-eps}{headerfile}{\def\psk@headerfile{#1}}
+\define@boolkey[psset]{pst-eps}[Pst@]{checkfile}[true]{}
+\psset[pst-eps]{headers=none,checkfile=true,headerfile={}}
+
+\define@key[psset]{pst-eps}{makeeps}{%
+ \def\pst@tempg{#1}%
+ \ifx\pst@tempg\@none
+ \def\psk@makeeps{\z@}% 0 -> none
+ \else
+ \def\pst@temph{all}%
+ \ifx\pst@tempg\pst@temph
+ \def\psk@makeeps{3\relax}% 3 -> all
+ \else
+ \def\pst@temph{all*}% 2 -> all*
+ \ifx\pst@tempg\pst@temph
+ \def\psk@makeeps{2\relax}%
+ \else
+ \def\psk@makeeps{1\relax}% 1 -> new
+ \fi
+ \fi
+ \fi}
+\psset[pst-eps]{makeeps=new}
+%
+\def\pst@checkfile#1{%
+ \typeout{pst-eps: check for file #1}
+ \ifcase\psk@makeeps
+ \@pstfalse
+ \or
+ \immediate\openin1=#1
+ \ifeof1\relax\@psttrue\else\@pstfalse\fi
+ \immediate\closein1
+ \or
+ \immediate\openin1=#1
+ \ifeof1
+ \@psttrue
+ \else
+ \ifPst@checkfile
+ \typeout{^^J
+ PSTricks warning:^^J
+ !! File `#1' exists and will be erased if in current directory!^^J
+ !! Make `#1'? (y=yes; n=no)}
+ \read16 to \pst@tempg
+ \if y\pst@tempg\relax \@psttrue\else\@pstfalse\fi
+ \else\@psttrue\fi
+ \fi
+ \immediate\closein1
+ \or\@psttrue
+ \fi}
+%
+\def\PSTtoEPS{\def\pst@par{}\pst@object{PSTtoEPS}}
+\begingroup
+\catcode`\%=12
+\catcode`\"=14
+\long\gdef\PSTtoEPS@i#1#2{"
+ \begingroup
+ \use@par
+ \newlinechar`\^^J"
+ \pst@checkfile{#1}"
+ \if@pst
+ \immediate\openout\pst@epsout=#1
+ \def\write@eps##1{\immediate\write\pst@epsout{##1}}"
+ \def\addto@pscode##1{"
+ \begingroup
+ \newlinechar`\ "
+ \write@eps{##1}"
+ \endgroup}
+ \write@eps{"
+ %!PS-Adobe-3.0 EPSF-3.0^^J"
+ %%Creator: PSTricks^^J"
+ %%Title: #1^^J"
+ %%CreationDate: \the\year/\the\month/\the\day^^J"
+ %%BoundingBox:
+ \psk@bbllx\space\psk@bblly\space\psk@bburx\space\psk@bbury^^J"
+ %%EndComments}"
+ \ifcase\psk@headers
+ \def\pst@tempg{}"
+ \or
+ \let\pst@tempg\psk@headerfile
+ \or
+ \edef\pst@tempg{\pst@theheaders,\psk@headerfile}"
+ \fi
+ \ifx\pst@tempg\@empty\else
+ \expandafter\pst@writeheaders\pst@tempg,\@nil
+ \fi
+ \write@eps{%%BeginSetup}"
+ \addto@pscode\pst@dict
+ \write@eps{%%EndSetup}"
+ \ifdim\pstunit=1bp\else
+ \pst@dimg=\pstunit\relax
+ \write@eps{\number\pst@dimg\space 65781.8 div dup scale}"
+ \fi
+ \addto@pscode{"
+ \tx@STP
+ 0 setlinecap
+ 0 setlinejoin
+ 10 setmiterlimit
+ [] 0 setdash
+ newpath}"
+ \setbox\pst@hbox=\hbox{"
+ \def\init@pscode{"
+ \write@eps{"
+ gsave
+ \psk@origin
+ \psk@swapaxes
+ \pst@number\pslinewidth SLW
+ \pst@usecolor\pslinecolor}}"
+ \def\use@pscode{\write@eps{grestore}}"
+ \let\pst@rawfile\pst@filetoeps
+ \def\psclip#1{\pst@misplaced\psclip}"
+ \let\endpsclip\relax
+ \def\pstextpath@@@[##1](##2,##3)##4{\pst@misplaced\pstextpath}"
+ \def\nc@object##1##2##3##4{\pst@misplaced{node connection}}"
+ \def\PSTtoEPS@i##1##2{\pst@misplaced\PSTtoEPS}"
+ #2}"
+ \write@eps{"
+ %%Trailer^^J"
+ end^^J"
+ %%EOF}"
+ \immediate\closeout\pst@epsout
+ \fi
+ \endgroup
+ \ignorespaces}
+
+\gdef\pst@writeheaders#1,{"
+ \def\pst@tempg{#1}"
+ \ifx\pst@tempg\@empty\else
+ \write@eps{%%BeginProcSet: #1}"
+ \pst@filetoeps{#1}"
+ \write@eps{%%EndProcSet}"
+ \fi
+ \@ifnextchar\@nil{\let\pst@tempg}{\pst@writeheaders}}
+\endgroup
+
+\def\pst@filetoeps#1{%
+ \begingroup
+ \def\do##1{\catcode`##1=12\relax}%
+ \dospecials
+ \def\addto@pscode##1{\write@eps{##1}}%
+ \pst@@rawfile{#1}%
+ \endgroup}
+
+\catcode`\@=\TheAtCode\relax
+
+\endinput
+%%
+%% END pst-eps.tex
diff --git a/Master/texmf-dist/tex/generic/pst-grad/pst-grad.tex b/Master/texmf-dist/tex/generic/pst-grad/pst-grad.tex
new file mode 100644
index 00000000000..79eb3732ae5
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/pst-grad/pst-grad.tex
@@ -0,0 +1,119 @@
+%% BEGIN pst-grad.tex
+%%
+%% Gradient fillstyle with PSTricks.
+%% See the PSTricks User's Guide for description.
+%% This uses the header file `pst-grad.pro'.
+%%
+%% Based on some EPS files by leeweyr!bill@nuchat.sccsi.com (W. R. Lee).
+%%
+%%
+%% COPYRIGHT 1993, 1994, 1999 by Timothy Van Zandt, tvz@nwu.edu.
+%% 2006 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.
+%%
+%% This defines a new fill style, "gradient", for use with PSTricks,
+%% which has gradiated color. The following parameters are used:
+%%
+%% gradbegin=color : Beginning color.
+%% gradend=color : Final color.
+%% gradlines=int : Number of lines to use. The higher the number,
+%% the slower the rendering.
+%% gradmidpoint=num : Gradient color goes from gradbegin to gradend,
+%% and then back to beginning. Midpoint (point
+%% where "gradend" color appears, is gradmidpoint
+%% from the top. (0 <= Gmidpoint <= 1).
+%% gradangle=angle : Rotate image by angle.
+%% GradientCircle=true : Instead of a linear a circled gradient is build.
+%% (version 1.04)
+%% GradientPos=(x,y) : the center of the circled gradient
+%% (version 1.04)
+%% GradientScale=float : scaling factor of the circled gradient
+%% (version 1.04)
+%% GradientHSB : Use HSB color model
+%%
+\csname GradientLoaded\endcsname
+\let\GradientLoaded\endinput
+\ifx\PSTricksLoaded\endinput\else
+ \def\next{\input pstricks.tex }\expandafter\next
+\fi
+\ifx\PSTXKeyLoaded\endinput\else\input pst-xkey \fi
+
+\def\fileversion{1.05}
+\def\filedate{2006/11/04}
+\message{`pst-plot' v\fileversion, \filedate\space (tvz,dg,hv)}
+
+\edef\TheAtCode{\the\catcode`\@}
+\catcode`\@=11
+\pst@addfams{pst-grad}
+
+\pstheader{pst-grad.pro}
+
+\newrgbcolor{gradbegin}{0 .1 .95}
+\newrgbcolor{gradend}{0 1 1}
+\define@key[psset]{pst-grad}{gradbegin}{\pst@getcolor{#1}\psgradbegin}
+\define@key[psset]{pst-grad}{gradend}{\pst@getcolor{#1}\psgradend}
+\define@key[psset]{pst-grad}{gradlines}{%
+ \pst@getint{#1}\psgradlines
+ \ifnum\psgradlines<2
+ \@pstrickserr{gradlines must be at least 2}\@epha
+ \def\psgradlines{2 }%
+ \fi}
+\define@key[psset]{pst-grad}{gradmidpoint}{\pst@checknum{#1}\psgradmidpoint}
+\define@key[psset]{pst-grad}{gradangle}{\pst@getangle{#1}\psk@gradangle}
+\psset[pst-grad]{gradangle=0,gradlines=300,gradend=gradend,gradbegin=gradbegin,
+ gradmidpoint=0.9}
+
+% Denis Girou - April 1998 ------- patch 2 (hv)
+% To define the gradient as linear or as circle
+\define@boolkey[psset]{pst-grad}[Pst@]{GradientCircle}[true]{}
+% Position of the center of the gradient
+\define@key[psset]{pst-grad}{GradientPos}{\psset@@GradientPos#1}%
+ \def\psset@@GradientPos(#1){\edef\ps@GradientPos{#1}}
+% Scale factor
+\define@key[psset]{pst-grad}{GradientScale}{\def\ps@GradientScale{#1}}
+\psset[pst-grad]{GradientScale=1,GradientPos={(0,0)},GradientCircle=false}
+%
+\define@boolkey[psset]{pst-grad}[Pst@]{gradientHSB}[true]{}
+\psset[pst-grad]{gradientHSB=false}
+%
+\def\psfs@gradient{%
+ \ifPst@gradientHSB
+ \addto@pscode{%
+ gsave
+ gsave \pst@usecolor\psgradbegin currenthsbcolor grestore
+ gsave \pst@usecolor\psgradend currenthsbcolor grestore
+ \psgradlines
+ \psgradmidpoint
+ \psk@gradangle
+% hv 2004-05-05 begin fixed a spurious blank
+ tx@GradientDict begin GradientFillHSB end grestore%
+ }%
+% tx@GradientHSBDict begin GradientFillHSB end grestore}
+% hv 2004-05-05 end
+ \else%
+% hv 2004-06-25 begin fixed a spurious blank
+ \pst@getcoor{\ps@GradientPos}{\pst@tempa}% <- "%" hv 2004-06-23
+% hv end
+ \addto@pscode{%
+ gsave
+ \ifPst@GradientCircle true \else false \fi
+ \ps@GradientScale\space
+ \pst@tempa\space
+ gsave \pst@usecolor\psgradbegin currentrgbcolor grestore
+ gsave \pst@usecolor\psgradend currentrgbcolor grestore
+ \psgradlines
+ \psgradmidpoint
+ \psk@gradangle
+ tx@GradientDict begin GradientFill end grestore%
+ }%
+ \fi%
+}
+%
+\catcode`\@=\TheAtCode\relax
+%
+\endinput
+%%
+%% END pst-grad.tex
diff --git a/Master/texmf-dist/tex/latex/pst-eps/pst-eps.sty b/Master/texmf-dist/tex/latex/pst-eps/pst-eps.sty
new file mode 100644
index 00000000000..e41a884b663
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pst-eps/pst-eps.sty
@@ -0,0 +1,6 @@
+\RequirePackage{pstricks}
+\ProvidesPackage{pst-eps}[2005/05/20 package wrapper for pst-eps.tex (hv)]
+\input{pst-eps.tex}
+\ProvidesFile{pst-eps.tex}
+ [\filedate\space \fileversion\space `pst-eps' (tvz)]
+\endinput
diff --git a/Master/texmf-dist/tex/latex/pst-grad/pst-grad.sty b/Master/texmf-dist/tex/latex/pst-grad/pst-grad.sty
new file mode 100644
index 00000000000..1e48f52bf7d
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pst-grad/pst-grad.sty
@@ -0,0 +1,7 @@
+\RequirePackage{pstricks}
+\ProvidesPackage{pst-grad}[2004/07/15 package wrapper for pst-grad.tex (hv)]
+\input{pst-grad.tex}
+\ProvidesFile{pst-grad.tex}
+ [\filedate\space \fileversion\space `pst-grad' (tvz)]
+\IfFileExists{pst-grad.pro}{\@addtofilelist{pst-grad.pro}}{}%
+\endinput