%
% \iffalse
%
%% drivers.dtx Copyright (C) 1994 David Carlisle Sebastian Rahtz
%
%<dvips,    >\ProvidesFile{dvips.def}
%<oztex,    >\ProvidesFile{oztex.def}
%<textures, >\ProvidesFile{textures.def}
%<dvitps,   >\ProvidesFile{dvitps.def}
%<dvialw,   >\ProvidesFile{dvialw.def}
%<emtex,    >\ProvidesFile{emtex.def}
%<dvilaser, >\ProvidesFile{dvilaser.def}
%<psprint,  >\ProvidesFile{psprint.def}
%<dvipsone, >\ProvidesFile{dvipsone.def}
%<dviwindo, >\ProvidesFile{dviwindo.def}
%<dvitops,  >\ProvidesFile{dvitops.def}
%<dvi2ps,   >\ProvidesFile{dvi2ps.def}
%<pubps,    >\ProvidesFile{pubps.def}
%<dviwin,   >\ProvidesFile{dviwin.def}
%<xdvi,     >\ProvidesFile{xdvi.def}
%<dvitops,  >\ProvidesFile{dvitops.def}
%
%<*driver>
    \NeedsTeXFormat{LaTeX2e}
    \ProvidesFile{drivers.dtx}
%</driver>
        [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}
%</driver>
% \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}}
%</dvips>
%    \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
 }%
}
%</oztex>
%    \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}}
%</textures>
%    \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!!}%
%</dvitps>
%    \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"}%
}
%</dvialw>
%    \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}%
}
%</emtex>
%    \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}%
}
%</dvilaser>
%    \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
}%
}
%</psprint>
%    \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}}
%</dvipsone>
%    \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 }
%</dviwindo>
%    \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}
%</dvitops>
%\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}%
}
%</dvi2ps>
%    \end{macrocode}
% \section{pubps}
% A \LaTeXe\ graphics driver file for Arbortext's PUBps;
% information from Peter R Wilson <pwilson@rdrc.rpi.edu>
%    \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}
%</pubps>
% 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}
%</dviwin>
%<*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}}}
%</pscolor>
%<*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}
%</pscolorsimple>
%<*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}
%</colfix>
%<*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}}
%</psrules>
%<*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}}
%</psrulesZ>
%<*dosrules>
%<!psrulesZ>\def\Gin@extensions{eps,ps,pcx,bmp}
%<!psrulesZ>\def\Gin@sepdefault{.}%
\@namedef{Gin@rule@pcx}#1{{bmp}{}{#1}}
\@namedef{Gin@rule@bmp}#1{{bmp}{}{#1}}
\@namedef{Gin@rule@msp}#1{{bmp}{}{#1}}
%</dosrules>
%<*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}}
%</macrules>
%<*tiffrules>
 \@namedef{Gin@rule@tif}#1{{tiff}{}{#1}}
%</tiffrules>
%    \end{macrocode}
\endinput
%
