diff options
Diffstat (limited to 'Master/texmf-dist/doc/generic')
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-eps/Changes | 7 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-eps/README | 11 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-eps/pst-eps-doc.bib | 78 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-eps/pst-eps-doc.pdf | bin | 0 -> 91735 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-eps/pst-eps-doc.tex | 255 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-eps/spirale.eps | 513 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-grad/Changes | 14 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-grad/README | 12 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-grad/pst-grad-doc.bib | 204 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-grad/pst-grad-doc.pdf | bin | 0 -> 250091 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-grad/pst-grad-doc.tex | 429 |
11 files changed, 1523 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 Binary files differnew file mode 100644 index 00000000000..18774d7d8ba --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-eps/pst-eps-doc.pdf 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 Binary files differnew file mode 100644 index 00000000000..c9a7b2111df --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-grad/pst-grad-doc.pdf 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} |