%
% \iffalse
%
%% drivers.dtx Copyright (C) 1994 David Carlisle Sebastian Rahtz
%
%\ProvidesFile{dvips.def}
%\ProvidesFile{oztex.def}
%\ProvidesFile{textures.def}
%\ProvidesFile{dvitps.def}
%\ProvidesFile{dvialw.def}
%\ProvidesFile{emtex.def}
%\ProvidesFile{dvilaser.def}
%\ProvidesFile{psprint.def}
%\ProvidesFile{dvipsone.def}
%\ProvidesFile{dviwindo.def}
%\ProvidesFile{dvitops.def}
%\ProvidesFile{dvi2ps.def}
%\ProvidesFile{pubps.def}
%\ProvidesFile{dviwin.def}
%\ProvidesFile{xdvi.def}
%\ProvidesFile{dvitops.def}
%
%<*driver>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{drivers.dtx}
%
[1994/06/08 v1.6 Driver-dependant file (DPC,SPQR)]
%
%<*driver>
\documentclass{ltxdoc}
\GetFileInfo{drivers.dtx}
\begin{document}
\DeleteShortVerb{\|}
\MakeShortVerb{\"}
\title{Graphics drivers for \LaTeXe\thanks
{Version \fileversion, revised \filedate}}
\author{Sebastian Rahtz and David Carlisle}
\date{\filedate}
\maketitle
\DocInput{drivers.dtx}
\end{document}
%
% \fi
%
% \section{Driver files}
%
% \def\A{$\bullet$}
% \def\B{$\circ$}
% \def\C{$?$}
% \def\D{$\times$}
% \def\nstack#1{\shortstack{^^A
% \vrule height \ht\strutbox width 0pt#1^^A
% \vrule depth \dp\strutbox width 0pt}}
%
% \begin{tabular}[b]{|*{2}{l|}*{4}{c|}}
% \hline
% \em Name &\em OS &
% \nstack{g\\r\\a\\p\\h\\i\\c\\s}%
% \nstack{i\\n\\c\\l\\s\\i\\o\\n}&
% \nstack{r\\o\\t\\a\\t\\i\\o\\n}&
% \nstack{s\\c\\a\\l\\i\\n\\g}&
% \nstack{c\\o\\l\\o\\u\\r}\\
% \hline
% dvi2ps & Unix & \B&? &? &? \\
% dvialw & Unix & \B&? &? &? \\
% dvilaser & DOS & \B &? &? &? \\
% dvips & Unix, DOS etc &\A &\A &\A &\A \\
% dvipsone & DOS &\A &\A &\A &\A \\
% dvitops & Unix, DOS etc &\A &? &? &? \\
% dvitps & Unix & ?&? &? &? \\
% dviwin & Windows &\A &\D&\D&\D \\
% dviwindo & Windows &\A &\D &\D &\A \\
% emtex & DOS &\A &\D &\D &\D \\
% oztex & Mac &\A &\D &\D &\D \\
% psprint & VMS &\B &? &? &? \\
% pubps & Unix &\B &? &? &? \\
% textures & Mac &\A &\A &? &\A \\
% \hline
% \end{tabular}
% \hspace{\fill}
% \begin{minipage}[b]{1.5in}\raggedright
% \textbf{Notes}
% \begin{description}
% \item[\A] Available and tested
% \item[\B] Code written but not tested
% \item[\C] May be possible to write code
% \item[\D] Almost certainly impossible to implement
% \end{description}
% \end{minipage}
%
% \section{dvips}
% A \LaTeXe\ graphics driver file for Tom Rokicki's \emph{dvips}
% driver; tested with version 5.518 of July 1993. Note that
% the rotation angle has to be negated.
% \begin{macrocode}
%<*dvips>
\expandafter\ifx\csname ver@dvips.def\endcsname\relax\endinput\fi
% \end{macrocode}
% \subsection{Colour}
% \begin{macrocode}
\def\set@color{%
\special{color push \current@color}\aftergroup\reset@color}
\def\reset@color{\special{color pop}}
\def\set@page@color{\special{background \current@color}}
\def\color@named#1{%
\expandafter\ifx\csname col@#1\endcsname\color@check
\color@named@{#1}%
\else
\UndefinedColor
\fi}
\def\color@check{\color@check}
\let\col@GreenYellow\color@check
\let\col@Yellow\color@check
\let\col@Goldenrod\color@check
\let\col@Dandelion\color@check
\let\col@Apricot\color@check
\let\col@Peach\color@check
\let\col@Melon\color@check
\let\col@YellowOrange\color@check
\let\col@Orange\color@check
\let\col@BurntOrange\color@check
\let\col@Bittersweet\color@check
\let\col@RedOrange\color@check
\let\col@Mahogany\color@check
\let\col@Maroon\color@check
\let\col@BrickRed\color@check
\let\col@Red\color@check
\let\col@OrangeRed\color@check
\let\col@RubineRed\color@check
\let\col@WildStrawberry\color@check
\let\col@Salmon\color@check
\let\col@CarnationPink\color@check
\let\col@Magenta\color@check
\let\col@VioletRed\color@check
\let\col@Rhodamine\color@check
\let\col@Mulberry\color@check
\let\col@RedViolet\color@check
\let\col@Fuchsia\color@check
\let\col@Lavender\color@check
\let\col@Thistle\color@check
\let\col@Orchid\color@check
\let\col@DarkOrchid\color@check
\let\col@Purple\color@check
\let\col@Plum\color@check
\let\col@Violet\color@check
\let\col@RoyalPurple\color@check
\let\col@BlueViolet\color@check
\let\col@Periwinkle\color@check
\let\col@CadetBlue\color@check
\let\col@CornflowerBlue\color@check
\let\col@MidnightBlue\color@check
\let\col@NavyBlue\color@check
\let\col@RoyalBlue\color@check
\let\col@Blue\color@check
\let\col@Cerulean\color@check
\let\col@Cyan\color@check
\let\col@ProcessBlue\color@check
\let\col@SkyBlue\color@check
\let\col@Turquoise\color@check
\let\col@TealBlue\color@check
\let\col@Aquamarine\color@check
\let\col@BlueGreen\color@check
\let\col@Emerald\color@check
\let\col@JungleGreen\color@check
\let\col@SeaGreen\color@check
\let\col@Green\color@check
\let\col@ForestGreen\color@check
\let\col@PineGreen\color@check
\let\col@LimeGreen\color@check
\let\col@YellowGreen\color@check
\let\col@SpringGreen\color@check
\let\col@OliveGreen\color@check
\let\col@RawSienna\color@check
\let\col@Sepia\color@check
\let\col@Brown\color@check
\let\col@Tan\color@check
\let\col@Gray\color@check
\let\col@Black\color@check
\let\col@White\color@check
\def\color@@#1{%
\def\current@color{#1}%
\set@color}
\def\color@named@#1{%
\def\current@ps@color{/TeXDict begin #1 end}%
\color@@{#1}}
\def\color@gray#1{%
\color@arg{#1}%
\color@gray@{#1}}
\def\color@gray@#1{%
\def\current@ps@color{#1 setgray}%
\color@@{gray #1}}
\def\color@rgb@#1{%
\def\current@ps@color{#1 setrgbcolor}%
\color@@{rgb #1}}
\def\color@cmyk@#1{%
\def\current@ps@color{#1 setcmycolor}%
\color@@{cmyk #1}}
\def\definecolor@named#1#2{%
\expandafter\ifx\csname col@#2\endcsname\color@check
\expandafter\def\csname\string\color @#1\endcsname{%
\color@named@{#2}}%
\else
\UndefinedColor
\fi}
\def\current@color{Black}
% \end{macrocode}
% \subsection{File inclusion}
% \begin{macro}{\Ginclude@eps}
% "#1" input file (or command)
% \begin{macrocode}
\def\Ginclude@eps#1{%
\message{<#1>}%
\bgroup
% \end{macrocode}
% \emph{dvips} likes to work with its own pixel resolution, so
% mangle the sizes slightly.
% \begin{macrocode}
\def\@tempa{!}%
\dimen@=10\Gin@req@width
\dimen@ii1bp%
\divide\dimen@\dimen@ii
\@tempdima=10\Gin@req@height
\divide\@tempdima\dimen@ii
\special{PSfile="#1"\space
llx=\strip@pt\Gin@llx\space
lly=\strip@pt\Gin@lly\space
urx=\strip@pt\Gin@urx\space
ury=\strip@pt\Gin@ury\space
\ifx\Gin@scalex\@tempa\else rwi=\number\dimen@\space\fi
\ifx\Gin@scaley\@tempa\else rhi=\number\@tempdima\space\fi
\ifGin@clip clip\fi}%
\egroup}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\Ginclude@bmp}
% "#1" input file; if zero size is requested, the graphic will
% come at `natural' size.
% \begin{macrocode}
\def\Ginclude@bmp#1{%
\message{<#1>}%
\dimen@\Gin@req@height
\advance\dimen@ by-\Gin@lly
\kern-\Gin@llx\raise\Gin@req@height\hbox{%
\ifdim\Gin@urx=\z@
\ifdim\Gin@ury=\z@
\special{em: graph #1}%
\else
\special{em: graph #1,\the\Gin@urx}%
\fi
\else
\special{em: graph #1,\the\Gin@urx,\the\Gin@ury}%
\fi
}%
}
% \end{macrocode}
% \end{macro}
% \subsection{Rotation}
% \begin{macrocode}
\def\Grot@start{%
\special{ps: gsave currentpoint
currentpoint translate \Grot@angle\space neg
rotate neg exch neg exch translate}}
\def\Grot@end{\special{ps: currentpoint grestore moveto}}
% \end{macrocode}
% \subsection{Scaling}
% \begin{macrocode}
\def\Gscale@start{\special{ps: currentpoint currentpoint translate
\Gscale@x\space \Gscale@y\space scale neg exch neg exch translate}}
\def\Gscale@end{\special{ps: currentpoint currentpoint translate
1 \Gscale@x\space div 1 \Gscale@y\space div scale
neg exch neg exch translate}}
%
% \end{macrocode}
% \section{OzTeX}
% A \LaTeXe\ graphics driver file for OzTeX (versions 1.42 and later),
% by Andrew Trevorrow.
% \begin{macrocode}
%<*oztex>
\expandafter\ifx\csname ver@oztex.def\endcsname\relax\endinput\fi
% \end{macrocode}
%\subsection{Graphics inclusion}
% \begin{macrocode}
\def\Ginclude@eps{\Oztex@Include{epsf}}
\def\Ginclude@pntg{\Oztex@Include{pntg}}
\def\Ginclude@pict{\Oztex@Include{pict}}
\def\Oztex@Include#1#2{%
\ifGin@clip
\typeout{No clipping support in OzTeX}%
\fi
\divide\Gin@req@width by 65781% convert sp to bp
\divide\Gin@req@height by 65781%
\special{#1=#2\space
width=\number\Gin@req@width \space
height=\number\Gin@req@height
}%
}
%
% \end{macrocode}
%\section{Textures}
% A \LaTeXe\ graphics driver file for Blue Sky's Textures
% \begin{macrocode}
%<*textures>
\expandafter\ifx\csname ver@textures.def\endcsname\relax\endinput\fi
% \end{macrocode}
% \subsection{Graphics inclusion}
% \begin{macrocode}
\def\Ginclude@eps{\Textures@Include{illustration}}
\def\Ginclude@pict{\Textures@Include{pictfile}}
\def\Textures@Include#1#2{%
\def\@tempa{!}%
\ifx\Gin@scaley\@tempa
\let\Gin@scaley\Gin@scalex
\else
\ifx\Gin@scalex\@tempa\let\Gin@scalex\Gin@scaley\fi
\fi
\setlength\@tempdima{\Gin@scalex pt}%
\setlength\@tempdimb{\Gin@scaley pt}%
\ifdim\@tempdima>\@tempdimb
\let\Gin@scalex\Gin@scaley
\fi
\ifGin@clip
\typeout{no clipping support in TeXtures}%
\fi
\special{#1 #2\space scaled \Gin@scalex}%
}
% \end{macrocode}
% \subsection{Rotation}
% This code was written when no unprotected postscript code was allowed;
% it could almost certainly be rewritten now with `rawpostscript'.
% \begin{macrocode}
\def\Grot@start{\special{postscript
0 0 transform
grestore
matrix currentmatrix
3 1 roll
itransform
dup 3 -1 roll
dup 4 1 roll exch
translate
\Grot@angle\space rotate
neg exch neg exch translate
gsave}}
\def\Grot@end{\special{postscript grestore setmatrix gsave}}
% \end{macrocode}
% \subsection{Colour}
% This will only work for versions 1.6 and later.
% \begin{macrocode}
\def\Raw@PS#1{\special{rawpostscript #1}}
%
% \end{macrocode}
% \section{dvitps}
% A \LaTeXe\ graphics driver file for dvitps, by Stephan v
% Bechtolsheim
% \begin{macrocode}
%<*dvitps>
\expandafter\ifx\csname ver@dvitps.def\endcsname\relax\endinput\fi
% \end{macrocode}
% \begin{macrocode}
\typeout{WARNING: dvitps driver is not yet supported!!}%
%
% \end{macrocode}
% \section{dvialw}
% A \LaTeXe\ graphics driver file for dvialw, by Nelson Beebe
% \begin{macrocode}
%<*dvialw>
\expandafter\ifx\csname ver@dvialw.def\endcsname\relax\endinput\fi
% \end{macrocode}
% \subsection{Rotation}
% \begin{macrocode}
\def\Ginclude@eps#1{%
\def\@tempa{!}%
\ifx\Gin@scaley\@tempa
\let\Gin@scaley\Gin@scalex
\else
\ifx\Gin@scalex\@tempa\let\Gin@scalex\Gin@scaley\fi
\fi
\ifGin@clip
\typeout{no clipping support in dvialw}%
\fi
\special{language "PS",
literal "\Gin@scalex\space
\Gin@scaley\space scale",
position = "bottom left",
include "#1\space"}%
}
%
% \end{macrocode}
% \section{emtex}
% A \LaTeXe\ graphics driver file for Eberhard Mattes' emTeX
% \begin{macrocode}
%<*emtex>
\expandafter\ifx\csname ver@emtex.def\endcsname\relax\endinput\fi
% \end{macrocode}
% \subsection{Graphics file inclusion}
% \begin{macrocode}
\def\Ginclude@bmp#1{%
\raise\Gin@req@height\hbox{\special{em:graph #1}}%
\typeout{WARNING: emtex does not permit graphics to be scaled}%
}
%
% \end{macrocode}
% \section{dvilaser/ps}
% A \LaTeXe\ graphics driver file for Arbortext's dvilaser/ps
% \begin{macrocode}
%<*dvilaser>
\expandafter\ifx\csname ver@dvilaser.def\endcsname\relax\endinput\fi
% \end{macrocode}
%\subsection{Graphic file inclusion}
% \begin{macrocode}
\def\Ginclude@eps#1{%
\ifGin@clip
\typeout{no clipping support in dvilaser/ps}%
\fi
\special{ps: epsfile #1\space \the\Gin@req@width}%
}
%
% \end{macrocode}
% \section{psprint}
% A \LaTeXe\ graphics driver file for Trevorrow's psprint
% \begin{macrocode}
%<*psprint>
\expandafter\ifx\csname ver@psprint.def\endcsname\relax\endinput\fi
% \end{macrocode}
%\section{Graphic file inclusion}
% \begin{macrocode}
\def\Ginclude@eps#1{%
\def\@tempa{!}%
\ifx\Gin@scaley\@tempa
\let\Gin@scaley\Gin@scalex
\else
\ifx\Gin@scalex\@tempa\let\Gin@scalex\Gin@scaley\fi
\fi
\ifGin@clip
\typeout{no clipping support in psprint}%
\fi
\special{#1\space
\Gin@scalex\space \Gin@scaley\space scale
\TG@rem@pt\Gin@llx\space neg
\TG@rem@pt\Gin@lly \space neg translate
}%
}
%
% \end{macrocode}
% \section{dvipsone}
% A \LaTeXe\ graphics driver file for Y\&Y's dvipsone
% \begin{macrocode}
%<*dvipsone>
\expandafter\ifx\csname ver@dvipsone.def\endcsname\relax\endinput\fi
% \end{macrocode}
% \section{Graphic file inclusion}
% \begin{macrocode}
\def\Ginclude@eps#1{%
\message{<#1>}%
\raise\Gin@req@height\hbox{%
\special{ps::[begin]
\number\Gin@req@width\space
\number\Gin@req@height\space
\number\Gin@llx\space
\number\Gin@lly\space
\number\Gin@urx\space
\number\Gin@ury\space startTexFig}%
\special{ps: plotfile #1}%
\ifGin@clip\special{ps:: doclip}\fi
\special{ps::[end] endTexFig}%
}%
}
\def\Ginclude@tiff#1{%
\message{<#1>}%
\special{insertimage: #1 \number\Gin@req@width\space
\number\Gin@req@height}%
}
\def\Raw@PS#1{\special{ps: #1}}
\def\Grot@start{%
\special{ps: gsave currentpoint
currentpoint translate \Grot@angle\space
rotate neg exch neg exch translate}}
\def\Grot@end{\special{ps: currentpoint grestore moveto}}
\def\Gscale@start{\special{ps: currentpoint currentpoint translate
\Gscale@x\space \Gscale@y\space scale neg exch neg exch translate}}
\def\Gscale@end{\special{ps: currentpoint currentpoint translate
1 \Gscale@x\space div 1 \Gscale@y\space div scale
neg exch neg exch translate}}
%
% \end{macrocode}
% \section{dviwindo}
% A \LaTeXe\ graphics driver file for Y\&Y's dviwindo
% \begin{macrocode}
%<*dviwindo>
\expandafter\ifx\csname ver@dviwindo.def\endcsname\relax\endinput\fi
% \end{macrocode}
% \subsection{Graphic file inclusion}
% \begin{macrocode}
\def\Ginclude@eps#1{%
\message{<#1>}%
\raise\Gin@req@height\hbox{%
\special{ps::[begin]
\number\Gin@req@width\space
\number\Gin@req@height\space
\number\Gin@llx\space
\number\Gin@lly\space
\number\Gin@urx\space
\number\Gin@ury\space startTexFig}%
\special{ps: plotfile #1}%
\ifGin@clip\special{ps:: doclip}\fi
\special{ps::[end] endTexFig}%
}%
}
\def\Ginclude@tiff#1{%
\message{<#1>}%
\special{insertimage: #1 \number\Gin@req@width\space
\number\Gin@req@height}%
}
\def\set@color{%
\special{textcolor: \current@color}%
\special{rulecolor: \current@color}%
\aftergroup\reset@color
}
\def\reset@color{%
\special{textcolor: \current@color}%
\special{rulecolor: \current@color}%
}
\def\set@page@color{%
\write\sixt@@n{background color ignored: \current@color}}
\def\color@RGB#1{\color@RGB@#1\@@}
\def\color@RGB@#1,#2,#3\@@{%
\edef\current@color{#1 #2 #3}%
\set@color}
\def\color@rgb@RGB#1{%
\dimen@#1\p@
\dimen@255\dimen@
\@settopoint\dimen@
\edef\@tempa{\@tempa,\strip@pt\dimen@}}
\def\color@rgb#1{\color@rgb@#1\@@}
\def\color@rgb@#1,#2,#3\@@{%
\def\a{#1,#2,#3}
\let\@tempa\@gobble
\color@rgb@RGB{#1}%
\color@rgb@RGB{#2}%
\color@rgb@RGB{#3}%
\expandafter\color@RGB\expandafter{\@tempa}}
\def\cmyk@rgb#1{%
\dimen@#1\p@
\advance\dimen@\@tempdima
\ifdim\dimen@>\p@
\dimen@\z@
\else
\advance\dimen@-\p@
\dimen@-\dimen@
\fi
\edef\@tempa{\@tempa,\strip@pt\dimen@}}
\def\color@cmyk#1{\color@cmyk@#1\@@}
\def\color@cmyk@#1,#2,#3,#4\@@{%
\@tempdima#4\p@
\let\@tempa\@gobble
\cmyk@rgb{#1}%
\cmyk@rgb{#2}%
\cmyk@rgb{#3}%
\expandafter\color@rgb\expandafter{\@tempa}}
\def\definecolor@gray#1#2{%
\expandafter\def\csname\string\color @#1\endcsname{\color@gray{#2}}}
\def\definecolor@RGB#1#2{%
\expandafter\def\csname\string\color @#1\endcsname{\color@RGB{#2}}}
\def\definecolor@rgb#1#2{%
\expandafter\def\csname\string\color @#1\endcsname{\color@rgb{#2}}}
\def\definecolor@cmyk#1#2{%
\definecolor@cmyk@{#1}#2\@@}
\def\definecolor@cmyk@#1#2,#3,#4,#5\@@{%
\@tempdima#5\p@
\let\@tempa\@gobble
\cmyk@rgb{#2}%
\cmyk@rgb{#3}%
\cmyk@rgb{#4}%
\edef\@tempa{\noexpand\definecolor@rgb{#1}{\@tempa}}%
\@tempa}
\def\current@color{0 0 0 }
%
% \end{macrocode}
% \section{dvitops}
% A \LaTeXe\ graphics driver file for James Clark's dvitops
% \begin{macrocode}
%<*dvitops>
\expandafter\ifx\csname ver@dvitops.def\endcsname\relax\endinput\fi
% \end{macrocode}
% \subsection{Rotation}
% \begin{macrocode}
\newcount\Grot@count
\Grot@count=\@ne
\def\Grot@start{\special{dvitops: origin
rot\the\@tempdima}%
\special{dvitops: begin rot\the\Grot@count}}%
\def\Grot@end{\special{dvitops: end}%
\special{dvitops: rotate rot\the\Grot@count \space
\Grot@angle}%
\global\advance\Grot@count by\@ne}%
% \end{macrocode}
% \subsection{Graphic file inclusion}
% \begin{macrocode}
\def\Ginclude@eps#1{%
\multiply\Gin@req@width by \@m
\multiply\Gin@req@height by \@m
\ifGin@clip
\typeout{no clipping support in dvitops}%
\fi
\special{import #1\space \Gin@req@width\space
\the\Gin@req@height\space fill}%
}
% \end{macrocode}
%
%\section{dvi2ps}
% A \LaTeXe\ graphics driver file for original dvi2ps
% \begin{macrocode}
%<*dvi2ps>
\expandafter\ifx\csname ver@dvi2ps.def\endcsname\relax\endinput\fi
% \end{macrocode}
% \subsection{Graphic file inclusion}
% \begin{macrocode}
\def\Ginclude@eps#1{%
\def\@tempa{!}%
\ifx\Gin@scaley\@tempa
\let\Gin@scaley\Gin@scalex
\else
\ifx\Gin@scalex\@tempa\let\Gin@scalex\Gin@scaley\fi
\fi
\ifGin@clip
\typeout{no clipping support in dvi2ps}%
\fi
\special{psfile=#1\space
hscale=\Gin@scalex\space 1000 mul
vscale=\Gin@scaley\space 1000 mul}%
}
%
% \end{macrocode}
% \section{pubps}
% A \LaTeXe\ graphics driver file for Arbortext's PUBps;
% information from Peter R Wilson
% \begin{macrocode}
%<*pubps>
\expandafter\ifx\csname ver@pubps.def\endcsname\relax\endinput\fi
% \end{macrocode}
% \subsection{Rotation}
% \begin{macrocode}
\def\Grot@start{\special{ps: gsave currentpoint
currentpoint translate \Grot@angle\space
rotate neg exch neg exch translate}}
\def\Grot@end{\special{ps: currentpoint grestore moveto}}
% \end{macrocode}
%
% A \LaTeXe\ graphics driver file for Hippocrates Sendoukas' dviwin
% \begin{macrocode}
%<*dviwin>
\expandafter\ifx\csname ver@dviwin.def\endcsname\relax\endinput\fi
\@namedef{Gin@rule@wmf}#1{{bmp}{}{#1}}
\def\Ginclude@bmp#1{%
\raise\Gin@req@height\hbox{%
\special{anisoscale #1,
\the\Gin@req@width\space \the\Gin@req@height}%
}}
% \end{macrocode}%
%
% \begin{macrocode}
%
%<*pscolor>
\def\color@arg#1{%
\dimen@#1\p@
\ifdim\dimen@<\z@\out@of@range
\else\ifdim\dimen@>\p@\out@of@range
\fi\fi}
\def\color@rgb#1{\color@@rgb#1\@@}
\def\color@@rgb#1,#2,#3\@@{%
\color@arg{#1}%
\color@arg{#2}%
\color@arg{#3}%
\color@rgb@{ #1 #2 #3}}
\def\color@cmyk#1{\color@@cmyk#1\@@}
\def\color@@cmyk#1,#2,#3,#4\@@{%
\color@arg{#1}%
\color@arg{#2}%
\color@arg{#3}%
\color@arg{#4}%
\color@cmyk@{#1 #2 #3 #4}}
\def\definecolor@gray#1#2{%
\color@arg{#2}%
\expandafter\def\csname\string\color @#1\endcsname{%
\color@gray@{#2}}}
\def\definecolor@rgb#1#2{\definecolor@rgb@{#1}#2\@@}
\def\definecolor@rgb@#1#2,#3,#4\@@{%
\color@arg{#2}%
\color@arg{#3}%
\color@arg{#4}%
\expandafter\def\csname\string\color @#1\endcsname{%
\color@rgb@{#2 #3 #4}}}
\def\definecolor@cmyk#1#2{\definecolor@cmyk@{#1}#2\@@}
\def\definecolor@cmyk@#1#2,#3,#4,#5\@@{%
\color@arg{#2}%
\color@arg{#3}%
\color@arg{#4}%
\color@arg{#5}%
\expandafter\def\csname\string\color @#1\endcsname{%
\color@cmyk@{#2 #3 #4 #5}}}
%
%<*pscolorsimple>
\def\current@ps@color{\current@color}
\def\set@color{%
\Raw@PS{\current@color}\aftergroup\reset@color}
\def\reset@color{\Raw@PS{\current@color}}
\def\set@page@color{%
\write\sixt@@n{background color ignored: \current@color}}
\def\color@named#1{%
\edef\@tempa{\noexpand\color@rgb{\csname named@#1\endcsname}}%
\@tempa}
\def\color@cmyk@#1{%
\edef\current@color{#1 setcmykcolor}%
\set@color}
\def\color@rgb@#1{%
\edef\current@color{#1 setrgbcolor}%
\set@color}
\def\named@Black{0,0,0}
\def\named@White{1,1,1}
\def\named@Red {1,0,0}
\def\named@Green{0,1,0}
\def\named@Blue {0,0,1}
\def\color@gray#1{%
\edef\current@color{#1 setgray}%
\set@color}
\def\definecolor@named#1#2{%
\@ifundefined{named@#1}{\typeout{WARNING cannot define colour #1}}{%
\expandafter\def\csname\string\color @#1\endcsname{\color@named{#2}}}%
}
\def\current@color{0 setgray}
%
%<*colfix>
\let\@ldc@l@r\color
\def\color{\if@inlabel\leavevmode\fi\@ldc@l@r}%
\let\@ldtextc@l@r\textcolor
\def\textcolor{\if@inlabel\leavevmode\fi\@ldtextc@l@r}%
\let\@lduseb@x\usebox
\def\usebox#1{\@lduseb@x{#1}\set@color}
%
%<*psrules>
\def\Gin@extensions{eps,ps}
\def\Gin@sepdefault{.}%
\@namedef{Gin@rule@ps}#1{{eps}{ps}{#1}}
\@namedef{Gin@rule@eps}#1{{eps}{eps}{#1}}
%
%<*psrulesZ>
\def\Gin@extensions{eps,ps,eps.gz,ps.gz,eps.Z}
\def\Gin@sepdefault{.}%
\@namedef{Gin@rule@ps}#1{{eps}{ps}{#1}}
\@namedef{Gin@rule@eps}#1{{eps}{eps}{#1}}
\@namedef{Gin@rule@pz}#1{{eps}{bb}{`gunzip -c #1}}
\@namedef{Gin@rule@eps.Z}#1{{eps}{eps.bb}{`gunzip -c #1}}
\@namedef{Gin@rule@ps.Z}#1{{eps}{ps.bb}{`gunzip -c #1}}
\@namedef{Gin@rule@ps.gz}#1{{eps}{ps.bb}{`gunzip -c #1}}
\@namedef{Gin@rule@eps.gz}#1{{eps}{eps.bb}{`gunzip -c #1}}
%
%<*dosrules>
%\def\Gin@extensions{eps,ps,pcx,bmp}
%\def\Gin@sepdefault{.}%
\@namedef{Gin@rule@pcx}#1{{bmp}{}{#1}}
\@namedef{Gin@rule@bmp}#1{{bmp}{}{#1}}
\@namedef{Gin@rule@msp}#1{{bmp}{}{#1}}
%
%<*macrules>
\def\Gin@extensions{{},eps}
\def\Gin@sepdefault{.}
\@namedef{Gin@rule@ps}#1{{eps}{ps}{#1}}
\@namedef{Gin@rule@eps}#1{{eps}{eps}{#1}}
\@namedef{Gin@rule@pict}#1{{pict}{}{#1}}
\@namedef{Gin@rule@pntg}#1{{pntg}{}{#1}}
\@namedef{Gin@rule@}#1{{pict}{\relax}{#1}}
%
%<*tiffrules>
\@namedef{Gin@rule@tif}#1{{tiff}{}{#1}}
%
% \end{macrocode}
\endinput
%