From 8f3c66451e590adc3ce6c15dd5c11d89e399f9a7 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 30 Nov 2006 22:00:11 +0000 Subject: pst-grad/eps git-svn-id: svn://tug.org/texlive/trunk@2565 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/generic/pst-eps/Changes | 7 + Master/texmf-dist/doc/generic/pst-eps/README | 11 + .../texmf-dist/doc/generic/pst-eps/pst-eps-doc.bib | 78 ++++ .../texmf-dist/doc/generic/pst-eps/pst-eps-doc.pdf | Bin 0 -> 91735 bytes .../texmf-dist/doc/generic/pst-eps/pst-eps-doc.tex | 255 ++++++++++ Master/texmf-dist/doc/generic/pst-eps/spirale.eps | 513 +++++++++++++++++++++ Master/texmf-dist/doc/generic/pst-grad/Changes | 14 + Master/texmf-dist/doc/generic/pst-grad/README | 12 + .../doc/generic/pst-grad/pst-grad-doc.bib | 204 ++++++++ .../doc/generic/pst-grad/pst-grad-doc.pdf | Bin 0 -> 250091 bytes .../doc/generic/pst-grad/pst-grad-doc.tex | 429 +++++++++++++++++ Master/texmf-dist/dvips/pst-grad/pst-grad.pro | 176 +++++++ Master/texmf-dist/source/generic/pst-eps/Makefile | 49 ++ Master/texmf-dist/source/generic/pst-grad/Makefile | 49 ++ Master/texmf-dist/tex/generic/pst-eps/pst-eps.tex | 241 ++++++++++ .../texmf-dist/tex/generic/pst-grad/pst-grad.tex | 119 +++++ Master/texmf-dist/tex/latex/pst-eps/pst-eps.sty | 6 + Master/texmf-dist/tex/latex/pst-grad/pst-grad.sty | 7 + 18 files changed, 2170 insertions(+) create mode 100644 Master/texmf-dist/doc/generic/pst-eps/Changes create mode 100644 Master/texmf-dist/doc/generic/pst-eps/README create mode 100644 Master/texmf-dist/doc/generic/pst-eps/pst-eps-doc.bib create mode 100644 Master/texmf-dist/doc/generic/pst-eps/pst-eps-doc.pdf create mode 100644 Master/texmf-dist/doc/generic/pst-eps/pst-eps-doc.tex create mode 100644 Master/texmf-dist/doc/generic/pst-eps/spirale.eps create mode 100644 Master/texmf-dist/doc/generic/pst-grad/Changes create mode 100644 Master/texmf-dist/doc/generic/pst-grad/README create mode 100644 Master/texmf-dist/doc/generic/pst-grad/pst-grad-doc.bib create mode 100644 Master/texmf-dist/doc/generic/pst-grad/pst-grad-doc.pdf create mode 100644 Master/texmf-dist/doc/generic/pst-grad/pst-grad-doc.tex create mode 100644 Master/texmf-dist/dvips/pst-grad/pst-grad.pro create mode 100644 Master/texmf-dist/source/generic/pst-eps/Makefile create mode 100644 Master/texmf-dist/source/generic/pst-grad/Makefile create mode 100644 Master/texmf-dist/tex/generic/pst-eps/pst-eps.tex create mode 100644 Master/texmf-dist/tex/generic/pst-grad/pst-grad.tex create mode 100644 Master/texmf-dist/tex/latex/pst-eps/pst-eps.sty create mode 100644 Master/texmf-dist/tex/latex/pst-grad/pst-grad.sty (limited to 'Master') 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 Binary files /dev/null and b/Master/texmf-dist/doc/generic/pst-eps/pst-eps-doc.pdf 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[]{}{} +\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 & & 0pt & bounding box lower left x\\ +bblly & & 0pt & lower left y\\ +bburx & & 0pt & upper right x\\ +bburx & & 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 & & false & check before overwriting\\ +headerfile & & \{\} & 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 & & \{\} & rotation angle\\ +Scale & & \{\} & 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 +%%Creation Date: May 7, 1993 +%% Version 97 patch 1, 99/12/16 +%% Modified by Etienne Riga - 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 Binary files /dev/null and b/Master/texmf-dist/doc/generic/pst-grad/pst-grad-doc.pdf 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 & & gradbegin\\ +gradend & & gradend\\ +gradlines & & 500\\ +gradmidpoint & & 0.9\\ +gradangle & & 0\\ +gradientHSB & false|true & false\\ +GradientCircle& false|true & false\\ +GradientScale & & 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 -- cgit v1.2.3