\ProvidesFile{pdftex.def}[1997/03/19 v0.01b graphics/color for pdftex] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% LaTeX Colour and Graphics support for PDFTeX %% %% David Carlisle & Sebastian Rahtz %% %% To use this file you must add a pdftex option to the graphics %% and color packages by adding the following line (without %%) %% %% \DeclareOption{pdftex}{\def\Gin@driver{pdftex.def}} %% %% to your existing graphics.cfg and color.cfg files. %% If you also want to make this your default driver then edit the call %% to \ExecuteOptions so that it says \ExecuteOptions{pdftex}. %% %% It may then be used by specifying the pdftex option to any of the %% supported packages, for example: %% %% \usepackage[pdftex]{graphicx} %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Colour Support. The following models may be used. % cmyk and rgb are supported directly. % RGB and gray are converted to rgb by this file. % named is converted to cmyk by this file. \def\c@lor@arg#1{% \dimen@#1\p@ \ifdim\dimen@<\z@\dimen@\maxdimen\fi \ifdim\dimen@>\p@ \PackageError{color}{Argument `#1' not in range [0,1]}\@ehd \fi} \def\color@cmyk#1#2{\c@lor@@cmyk#2\@@#1} \def\c@lor@@cmyk#1,#2,#3,#4\@@#5{% \c@lor@arg{#4}% \c@lor@arg{#1}% \c@lor@arg{#2}% \c@lor@arg{#3}% \edef#5{#1 #2 #3 #4 k #1 #2 #3 #4 K}% } \def\color@gray#1#2{\c@lor@@rgb#2,#2,#2\@@#1} \def\color@rgb#1#2{\c@lor@@rgb#2\@@#1} \def\c@lor@@rgb#1,#2,#3\@@#4{% \c@lor@arg{#1}% \c@lor@arg{#2}% \c@lor@arg{#3}% \edef#4{#1 #2 #3 rg #1 #2 #3 RG}% } \def\color@RGB#1#2{\c@lor@@RGB#2\@@#1} \def\c@lor@@RGB#1,#2,#3\@@#4{% \c@lor@RGB@rgb{#1}\@tempa \c@lor@RGB@rgb{#2}\@tempb \c@lor@RGB@rgb{#3}\@tempc \c@lor@@rgb\@tempa,\@tempb,\@tempc\@@#4% } \def\c@lor@RGB@rgb#1#2{% \dimen@#1\p@ \divide\dimen@\@cclv \edef#2{\strip@pt\dimen@}} \def\color@named#1#2{\c@lor@@named#2,,\@@#1} \def\c@lor@@named#1,#2,#3\@@#4{% \@ifundefined{col@#1}% {\PackageError{color}{Undefined color `#1'}\@ehd}% {\edef#4{\csname col@#1\endcsname}}% } \def\set@color{\pdfliteral{\current@color}\aftergroup\reset@color} \def\reset@color{\pdfliteral{\current@color}} \def\define@color@named#1#2{% \expandafter\edef\csname col@#1\endcsname{#2}} \def\current@color{1 1 1 1 k 1 1 1 1 K} % Need the `colorfix' modifications as no internal colour stack % is maintained %<*colorfix> \AtBeginDocument{% \let\@ldc@l@r\color \def\color{\if@inlabel\leavevmode\fi\@ldc@l@r}% \let\@lduseb@x\usebox \def\usebox#1{\@lduseb@x{#1}\set@color}} % % Graphic inclusion. % Currently only PNG bitmaps, but they may be scaled/rotated as usual % by the graphics commands or keyword arguments. \def\Gread@png#1{% \setbox\@tempboxa\hbox{\pdfimage#1\relax}% \def\Gin@llx{0}\let\Gin@lly\Gin@llx \Gin@defaultbp\Gin@urx{\wd\@tempboxa}% \Gin@defaultbp\Gin@ury{\ht\@tempboxa}} \def\Ginclude@png#1{% \hbox{% \pdfimage \@height\Gin@req@height \@width\Gin@req@width #1\relax}} \def\Gin@extensions{.png} \@namedef{Gin@rule@.png}#1{{png}{.png}{#1}} % Rotation % slightly hacky, but set width of box 0 to 0pt otherwise % the CTM gets restored in the wrong place. \def\Grot@start{% \pdfliteral{ q \Grot@cos\space\Grot@sin\space-\Grot@sin\space\Grot@cos\space 0 0 cm}% \wd\z@\z@} \def\Grot@end{\pdfliteral{ Q}} % Scaling is OK, as graphics package does it right here. \def\Gscale@start{% \pdfliteral{ q \Gscale@x\space0 0 \Gscale@y\space 0 0 cm}} \let\Gscale@end\Grot@end % undo the trig.sty `optimisation' so that these 0 1 and -1 values % get written out as digits, not unexpandable TeX primitives. \AtBeginDocument{% \expandafter\def\csname sin(0)\endcsname{0}% \expandafter\def\csname cos(0)\endcsname{1}% \expandafter\def\csname sin(90)\endcsname{1}% \expandafter\def\csname cos(90)\endcsname{0}% \expandafter\def\csname sin(-90)\endcsname{-1}% \expandafter\def\csname cos(-90)\endcsname{0}% \expandafter\def\csname sin(180)\endcsname{0}% \expandafter\def\csname cos(180)\endcsname{-1}} % Are we running under PDFTeX? \ifx\pdfpageheight\@undefined \PackageWarningNoLine\@currname {pdftex option does not work with standard TeX} \else \pdfpageheight\paperheight \pdfpagewidth\paperwidth \pdfoutput=1 \fi \endinput