summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/graphics/pdftex.def
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/graphics/pdftex.def')
-rw-r--r--Master/texmf-dist/tex/latex/graphics/pdftex.def800
1 files changed, 800 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/graphics/pdftex.def b/Master/texmf-dist/tex/latex/graphics/pdftex.def
new file mode 100644
index 00000000000..0d90b03fb74
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/graphics/pdftex.def
@@ -0,0 +1,800 @@
+\ProvidesFile{pdftex.def}[2005/06/20 v0.03m graphics/color for pdftex]
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% LaTeX Colour and Graphics support for PDFTeX
+%%
+%% David Carlisle, Sebastian Rahtz, Hans Hagen and Heiko Oberdiek
+%%
+%% It may be used by specifying the pdftex option to any of the
+%% supported packages, for example:
+%%
+%% \usepackage[pdftex]{graphicx}
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% History
+% ...
+% 2000/04/20 v0.02s:
+% * gray color model directly supported (HO).
+% 2000/05/02 v0.02t:
+% * \pagecolor supported (HO).
+% 2000/05/12 v0.02u:
+% * support for multipage pdf files, option `page' added (HO).
+% 2000/05/31 v0.02v:
+% * Option `page' is defined at begin document,
+% if package `keyval' is loaded after `pdftex.def'.
+% 2000/06/16 v0.03a:
+% * Added Heiko to author list (DPC).
+% 2000/08/31 v0.03b:
+% * support for alternate print images: option `print' added (HO).
+% * This feature is not supported by Ghostscript, xpdf, or AR3.
+% * The images should have the same dimensions/resolution.
+% * Two experimental options added (HO):
+% * `quiet': log messages are suppressed.
+% * `resolution': sets \pdfimageresolution.
+% Because these options are not supported by graphicx,
+% they have to be set after \usepackage{graphicx}, eg.
+% \setkeys{Gin}{quiet,resolution=300}
+% Option `quiet' (for pdftex) can be make known to graphic{s,x}
+% with this line in graphics.cfg:
+% \DeclareOption{quiet}{\let\Gin@log\@gobble}
+% Caution: both options are experimental and can be
+% change in next versions!
+% * \pdfpage{width,height} are only set, if \paperwidth
+% is defined (HO).
+% 2000/09/04 v0.03c
+% * Redefinition of `natwidth' and `natheight' \AtBeginDocument (HO).
+% 2000/09/14 v0.03d
+% * Fixes for `viewport' and `trim' (HO).
+% * Clip support added for viewport and trim (HO).
+% 2000/09/14 v0.03e
+% * Options `bbllx', `bblly', `bburx', `bbury' disabled,
+% option `bb' redirected with a warning to `viewport' (HO).
+% 2000/11/10 v0.03f
+% * Bug, that produces an error message, if package `graphics'
+% is used (introduced in 0.03d), fixed: If \Gin@vllx is not
+% defined (graphics), then clipping and the moves of options
+% viewport/trim are silently disabled (HO).
+% 2001/05/25 v0.03g
+% * \pdfpagewidth and \pdfpageheight are not set to zero,
+% if \paperwidth and \paperheight are not set (HO).
+% 2001/09/01 v0.03h
+% * Compatibilty for miniltx.tex, problems fixed:
+% \@ifpackageloaded, \PackageWarning, \PackageWarningNoLine,
+% \@currname.
+% 2001/11/29 v0.03i
+% * Problem with \if@inlabel (plain format) fixed.
+% 2002/06/18 v0.03j
+% * Contribution by P\'etiard Fran\c{c}ois <petiard@math.univ-fcomte.fr>:
+% Improvement of \Ginclude@mps (support of viewport and clip).
+% 2002/06/19 v0.03k
+% * Correction by P\'etiard Fran\c{c}ois for \GPT@DoEndClip.
+% 2005/06/15 v0.03l
+% * \usebox patch fixed (\aftergroup part removed).
+% 2005/06/20 v0.03m
+% * .tif support is removed for pdfTeX >= 1.10a
+%
+% prefix of internal commands for this file `pdftex.def':
+% \GPT@ (Graphics bundle PdfTex driver)
+
+\ifx\pdftexversion\@undefined
+ \def\driver@release{1}%
+\else
+ \ifnum\pdftexversion<12
+ \def\driver@release{2}%
+ \else
+ \ifnum\pdftexversion<13
+ \ifnum \expandafter `\pdftexrevision < `n
+ \def\driver@release{3}%
+ \else
+ \def\driver@release{4}%
+ \fi
+ \else
+ \ifnum\pdftexversion=13
+ \def\driver@release{5}%
+ \else
+ \ifnum\pdftexversion=14
+ \def\driver@release{6}%
+ \else
+ \ifnum\pdftexversion<110
+ \def\driver@release{7}%
+ \else
+ % .tif support was dropped in pdfTeX 1.10a
+ \def\driver@release{8}%
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+\fi
+
+% miniltx.tex does not define \PackageWarning
+% or \PackageWarningNoLine.
+\@ifundefined{PackageWarning}{%
+ \def\PackageWarning#1#2{%
+ \begingroup
+ \newlinechar=10 %
+ \def\MessageBreak{%
+ ^^J(#1)\@spaces\@spaces\@spaces\@spaces
+ }%
+ \immediate\write16{^^JPackage #1 Warning: #2\on@line.^^J}%
+ \endgroup
+ }%
+}{}
+\@ifundefined{PackageWarningNoLine}{%
+ \def\PackageWarningNoLine#1#2{%
+ \PackageWarning{#1}{#2\@gobble}%
+ }%
+}{}
+\@ifundefined{on@line}{%
+ \def\on@line{ on input line \the\inputlineno}%
+}{}
+\@ifundefined{@spaces}{%
+ \def\@spaces{\space\space\space\space}%
+}{}
+\def\GPT@warn{\PackageWarning{pdftex.def}}%
+\ifx\Gin@log\@undefined
+ \def\Gin@log{\message}
+\fi
+
+% Colour Support. The following models may be used.
+% * cmyk supported directly.
+% * rgb supported directly.
+% * RGB converted to rgb by this file.
+% * gray supported directly.
+% * named 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@arg{#2}%
+ \edef#1{#2 g #2 G}%
+}
+\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{0 g 0 G}
+
+% v0.02t: support for \pagecolor
+\def\set@page@color{%
+ \global\let\current@page@color\current@color
+ \@ifundefined{GPTorg@shipout}{%
+ \global\let\GPTorg@shipout\shipout
+ \gdef\shipout{%
+ \afterassignment\GPT@shipout
+ \global\setbox\@cclv=%
+ }%
+ \gdef\GPT@shipout{%
+ \ifvoid\@cclv\relax
+ \aftergroup\GPT@@shipout
+ \GPT@pageliteral
+ \else
+ \GPTorg@shipout\vbox{%
+ \GPT@pageliteral
+ \box\@cclv
+ }%
+ \fi
+ }%
+ \gdef\GPT@@shipout{%
+ \GPTorg@shipout\box\@cclv\relax
+ }%
+ \gdef\GPT@pageliteral{%
+ \pdfliteral direct{%
+ q % gsave
+ \current@page@color\space
+ n % newpath
+ 0 0 \strip@pt\pdfpagewidth\space
+ \strip@pt\pdfpageheight\space re % rectangle
+ % there is no need to convert to bp
+ f % fill
+ Q% grestore
+ }%
+ }%
+ }{}%
+}
+
+% Need the `colorfix' modifications as no internal colour stack
+% is maintained
+%<*colorfix>
+\AtBeginDocument{%
+ \let\@ldc@l@r\color
+ \def\color{%
+ \@ifundefined{if@inlabel}{}{%
+ \csname if@inlabel\expandafter\endcsname
+ \expandafter\leavevmode\csname fi\endcsname
+ }%
+ \@ldc@l@r
+ }%
+ \let\@lduseb@x\usebox
+ \def\usebox#1{\@lduseb@x{#1}\reset@color}%
+}
+%</colorfix>
+
+%
+% Graphic inclusion. Currently supports .png, .jpg, .mps and .pdf inclusion;
+% .tif support is dropped since pdfTeX 1.10a.
+% .mps is MetaPost output.
+% .mps inclusion depends on loading a CONTEXT module by Hans Hagen;
+% .pdf also needs a Context module unless pdftex 0.12n or later.
+%
+% PNG bitmaps may be scaled/rotated as usual
+% by the graphics commands or keyword arguments.
+%
+% Note the magic in front of the file name after \pdfimage, to
+% prevent it fouling up with file names starting with "depth".
+\def\Gread@png#1{%
+ \setbox\@tempboxa\hbox{\pdfimage\noexpand\noexpand\noexpand\@empty#1\relax}%
+ \def\Gin@llx{0}\let\Gin@lly\Gin@llx
+ \Gin@defaultbp\Gin@urx{\wd\@tempboxa}%
+ \Gin@defaultbp\Gin@ury{\ht\@tempboxa}%
+}
+
+%
+% support for
+% * multipage pdf images (pdfTeX v0.14+)
+% * alternate print image (bitmaps only)
+% * driver version>=5 (0.14)
+% * printed image can be resused, but not the base image,
+% because it's dictionary contains the additional key /Alternates.
+% * not supported by Ghostscript or xpdf.
+% * option quiet
+%
+% \GPT@page: page number of pdf image or \@empty otherwise.
+\let\GPT@page\@empty
+% \GPT@print: file name for alternate image or \@empty otherwise.
+\let\GPT@print\@empty
+\begingroup
+ \toks@{%
+ \ifnum\driver@release>5
+ \define@key{Gin}{page}{%
+ \def\GPT@page{#1}%
+ }%
+ \define@key{Gin}{print}{%
+ \def\GPT@print{#1}%
+ }%
+ \else
+ \define@key{Gin}{page}{%
+ \GPT@warn{%
+ pdfTeX >= 0.14 required for option\MessageBreak `page'%
+ }%
+ }%
+ \define@key{Gin}{print}{%
+ \GPT@warn{%
+ pdfTeX >= 0.14 required for option\MessageBreak `print'%
+ }%
+ }%
+ \fi
+ \define@key{Gin}{quiet}[]{%
+ \let\Gin@log\@gobble
+ }%
+ \define@key{Gin}{resolution}{%
+ \pdfimageresolution#1\relax
+ }%
+ }%
+ \@ifundefined{define@key}{%
+ \edef\x{\endgroup
+ \noexpand\AtBeginDocument{%
+ \noexpand\@ifundefined{define@key}{}{\the\toks@}%
+ }%
+ }\x
+ }{%
+ \expandafter\endgroup\the\toks@
+ }
+
+% redefinitions of some graphicx options:
+\def\GPT@disable#1{%
+ \GPT@warn{%
+ Option `#1' is not supported, use\MessageBreak
+ option `viewport' instead%
+ }%
+}
+\def\GPT@fix{%
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname define@key\endcsname\relax
+ \else
+ \def\KV@Gin@bb{%
+ \GPT@warn{%
+ Option `bb' does not make sense,\MessageBreak
+ using `viewport' instead%
+ }%
+ \KV@Gin@viewport
+ }%
+ \define@key{Gin}{bbllx}{\GPT@disable{bbllx}}%
+ \define@key{Gin}{bblly}{\GPT@disable{bblly}}%
+ \define@key{Gin}{bburx}{\GPT@disable{bburx}}%
+ \define@key{Gin}{bbury}{\GPT@disable{bbury}}%
+ \fi
+}
+\AtBeginDocument{\GPT@fix}
+
+%
+% mechanism for re-use of objects also
+% allows us to get the size by deriving it from the initial storage;
+% this works for all graphics types.
+%
+\newcount\Gread@gobject
+\def\GPT@ReusedName#1{%
+ \ifx\GPT@print\@empty
+ #1%
+ \else
+ \GPT@print
+ \fi
+}
+\def\Gread@pdftex#1{%
+ % Ensure that option `print' works only on bitmap images.
+ \ifGPT@IsBitmap
+ \else
+ \ifx\GPT@print\@empty
+ \else
+ \GPT@warn{%
+ Option `print' can only be used\MessageBreak
+ for bitmap images%
+ }%
+ \let\GPT@print\@empty
+ \fi
+ \fi
+ % If option `print' is set, the screen image object
+ % will contain an additional /Alternate entry
+ % and will therefore not be reused.
+ \ifx\GPT@print\@empty
+ \else
+ \expandafter\expandafter\expandafter\@firstoftwo\expandafter\@gobbletwo
+ \fi
+ \@ifundefined{#1 image\GPT@page}{%
+ \ifnum\driver@release>4
+ \ifnum\driver@release>5
+ \ifx\GPT@print\@empty
+ \let\GPT@RuleAttr\@empty
+ \else
+ \@ifundefined{\GPT@print\space image\GPT@page}{%
+ \immediate\pdfximage{\GPT@print}%
+ \setbox\@tempboxa=\hbox{\pdfrefximage\pdflastximage}%
+ \edef\GPT@PrintObj{\the\pdflastximage}%
+ \expandafter\xdef\csname\GPT@print\space
+ image\GPT@page\endcsname{\pdfrefximage\GPT@PrintObj}%
+ \immediate\pdfobj{%
+ [<<%
+ /Image \GPT@PrintObj\space 0 R%
+ /DefaultForPrinting true%
+ >>]%
+ }%
+ \def\GPT@RuleAttr{%
+ width\wd\@tempboxa height\ht\@tempboxa
+ attr{/Alternates \the\pdflastobj\space 0 R}%
+ }%
+ }{%
+ \edef\GPT@PrintObj{%
+ \expandafter\expandafter\expandafter\@gobble
+ \csname\GPT@print\space image\GPT@page\endcsname
+ }%
+ \immediate\pdfobj{%
+ [<<%
+ /Image \GPT@PrintObj \space 0 R%
+ /DefaultForPrinting true%
+ >>]%
+ }%
+ \def\GPT@RuleAttr{%
+ width \csname\GPT@print\space width\GPT@page\endcsname
+ height \csname\GPT@print\space height\GPT@page\endcsname
+ attr{/Alternates \the\pdflastobj\space 0 R}%
+ }%
+ }%
+ \fi
+ \pdfximage \GPT@RuleAttr
+ \ifx\GPT@page\@empty
+ \else
+ page \GPT@page
+ \fi
+ {#1}%
+ \setbox\@tempboxa=\hbox{\pdfrefximage\pdflastximage}%
+ \else
+ \setbox\@tempboxa=\hbox{\pdfimage{#1}}%
+ \fi
+ \else
+ \setbox\@tempboxa=\hbox{%
+ \pdfimage\noexpand\noexpand\noexpand\@empty#1\relax
+ }%
+ \fi
+ \def\Gin@llx{0}\let\Gin@lly\Gin@llx
+ \Gin@defaultbp\Gin@urx{\wd\@tempboxa}%
+ \Gin@defaultbp\Gin@ury{\ht\@tempboxa}%
+ \expandafter\xdef\csname\GPT@ReusedName{#1} width\GPT@page\endcsname{%
+ \the\wd\@tempboxa
+ }%
+ \expandafter\xdef\csname\GPT@ReusedName{#1} height\GPT@page\endcsname{%
+ \the\ht\@tempboxa
+ }%
+ \ifnum\driver@release>5
+ \expandafter\xdef\csname #1 image\GPT@page
+ \ifx\GPT@print\@empty\else!\fi\endcsname{%
+ \pdfrefximage\the\pdflastximage
+ }%
+ \else
+ \pdfform\@tempboxa
+ \Gread@gobject=\pdflastform
+ \expandafter\xdef\csname#1 image\endcsname{%
+ \pdfrefform\the\Gread@gobject
+ }%
+ \fi
+ \Gin@log{%
+ <#1, id=%
+ \ifnum\driver@release>5
+ \the\pdflastximage
+ \ifx\GPT@page\@empty\else , page=\GPT@page\fi
+ \ifx\GPT@print\@empty
+ \else
+ , print=\GPT@print, id=\GPT@PrintObj
+ \fi
+ \else
+ \the\Gread@gobject
+ \fi
+ , \the\wd\@tempboxa\space x \the\ht\@tempboxa
+ >%
+ }%
+ }{%
+ \def\Gin@llx{0}\let\Gin@lly\Gin@llx
+ \Gin@defaultbp\Gin@urx{\csname#1 width\GPT@page\endcsname}%
+ \Gin@defaultbp\Gin@ury{\csname#1 height\GPT@page\endcsname}%
+ }%
+}
+\def\Ginclude@pdftex#1{%
+ \def\@tempa{!}%
+ \ifx\Gin@scaley\@tempa
+ \let\Gin@scaley\Gin@scalex
+ \else
+ \ifx\Gin@scalex\@tempa\let\Gin@scalex\Gin@scaley\fi
+ \fi
+ \Gin@log{%
+ <use #1%
+ \ifx\GPT@page\@empty\else, page \GPT@page\fi
+ >%
+ }%
+ \hbox{%
+ \Gscale@box{\Gin@scalex}[\Gin@scaley]{%
+ \@ifundefined{Gin@vllx}{%
+ \GPT@viewportfalse
+ % without viewport/trim clipping does not make sense
+ % for pdfTeX
+ \Gin@clipfalse
+ }{}%
+ \ifGin@clip
+ \ifnum\driver@release<6
+ \GPT@warn{No clipping support in pdfTeX < 0.14}%
+ \else
+ \if!\Gin@vllx\Gin@vlly\Gin@vurx\Gin@vury!%
+ \else
+ \let\GPT@clipend\GPT@DoClipEnd
+ \setbox\@tempboxa\hbox\bgroup
+ \fi
+ \fi
+ \fi
+ \ifGPT@viewport
+ \ifdim\Gin@vlly\p@=\z@
+ \else
+ \lower\Gin@vlly bp\hbox\bgroup
+ \fi
+ \ifdim\Gin@vllx\p@=\z@
+ \else
+ \hskip-\Gin@vllx bp\relax
+ \fi
+ \fi
+ \csname#1 image\GPT@page
+ \ifx\GPT@print\@empty\else!\fi
+ \endcsname
+ \ifGPT@viewport
+ \ifdim\Gin@vlly\p@=\z@
+ \else
+ \egroup
+ \fi
+ \GPT@clipend
+ \fi
+ }%
+ }%
+}
+\newif\ifGPT@viewport
+\GPT@viewporttrue
+\let\GPT@clipend\relax
+\def\GPT@DoClipEnd{%
+ \egroup
+ \dp\@tempboxa\z@
+ % \Gin@urx and \Gin@ury already contain the correct values,
+ % so both cases viewport and trim can be handled together:
+ \dimen@\Gin@urx\p@
+ % v0.03k \Gin@vllx replaced by \Gin@llx
+ \advance\dimen@ -\Gin@llx\p@
+ \wd\@tempboxa\strip@pt\dimen@ bp\relax
+ \dimen@\Gin@ury\p@
+ % v0.03k \Gin@vlly replaced by \Gin@lly
+ \advance\dimen@ -\Gin@lly\p@
+ \ht\@tempboxa\strip@pt\dimen@ bp\relax
+ \pdfxform\@tempboxa
+ \pdfrefxform\pdflastxform
+}
+\newif\ifGPT@IsBitmap
+\def\Gread@pdfbitmap#1{%
+ \GPT@IsBitmaptrue
+ \Gread@pdftex{#1}%
+ \GPT@IsBitmapfalse
+}
+
+\edef\Gread@MBox{/MediaBox}
+\def\Gread@pdf#1{%
+ \begingroup
+ \@tempcnta\z@
+ \loop
+ \ifnum\@tempcnta<\@xxxii
+ \catcode\@tempcnta14 %
+ \advance\@tempcnta\@ne
+ \repeat
+ \catcode127=14 %
+ \let\do\@makeother\dospecials\catcode`\ 10 %
+ \catcode\endlinechar5 %
+ \immediate\openin\@inputcheck#1 %
+ \ifeof\@inputcheck
+ \@latex@error{File `#1' not found}\@ehc
+ \else
+ \Gread@true
+ \let\@tempb\Gread@false
+ \loop
+% v0.02e: use \. not \@tempa so the space is preserved before [
+ \read\@inputcheck to\.%
+ \ifeof\@inputcheck
+ \Gread@false
+ \else
+ \expandafter\Gread@find@mbox\. []\\%
+ \fi
+ \ifGread@
+ \repeat
+ \immediate\closein\@inputcheck
+ \fi
+ \ifGin@bbox
+ \else
+ \@latex@error
+ {Cannot determine size of graphic in #1 (no BoundingBox)}%
+ \@ehc
+ \gdef\@gtempa{0 0 72 72 }%
+ \fi
+ \endgroup
+ \expandafter\Gread@parse@bb\@gtempa\\%
+}
+\long\def\Gread@find@mbox#1 [#2]#3\\{%
+ \def\@tempa{#1}%
+ \ifx\@tempa\Gread@MBox
+ \gdef\@gtempa{#2 }%
+ \@tempb
+ \Gin@bboxtrue
+ \fi
+}
+\def\Ginclude@png#1{%
+ \hbox{%
+% v0.02f add \@depth\z@ (from Sebastian)
+ \pdfimage
+ \@height\Gin@req@height \@width\Gin@req@width \@depth\z@
+ \noexpand\noexpand\noexpand\@empty#1\relax
+ }%
+}
+
+\def\Ginclude@mps#1{%
+ \def\@tempa{!}%
+ \ifx\Gin@scaley\@tempa
+ \let\Gin@scaley\Gin@scalex
+ \else
+ \ifx\Gin@scalex\@tempa\let\Gin@scalex\Gin@scaley\fi
+ \fi
+ \hbox{%
+ \Gscale@box{\Gin@scalex}[\Gin@scaley]{%
+ \@ifundefined{Gin@vllx}{%
+ \GPT@viewportfalse
+ % without viewport/trim clipping does not make sense
+ % for pdfTeX
+ \Gin@clipfalse
+ }{}%
+ \ifGin@clip
+ \ifnum\driver@release<6
+ \GPT@warn{No clipping support in pdfTeX < 0.14}%
+ \else
+ \if!\Gin@vllx\Gin@vlly\Gin@vurx\Gin@vury!%
+ \else
+ \let\GPT@clipend\GPT@DoClipEnd
+ \setbox\@tempboxa\hbox\bgroup
+ \fi
+ \fi
+ \fi
+ \ifGPT@viewport
+ \ifdim\Gin@vlly\p@=\z@
+ \else
+ \lower\Gin@vlly bp\hbox\bgroup
+ \fi
+ \ifdim\Gin@vllx\p@=\z@
+ \else
+ \hskip-\Gin@vllx bp\relax
+ \fi
+ \fi
+ \convertMPtoPDF{#1}{1}{1}%
+ \ifGPT@viewport
+ \ifdim\Gin@vlly\p@=\z@
+ \else
+ \egroup
+ \fi
+ \GPT@clipend
+ \fi
+ }%
+ }%
+}
+\def\Gread@mps{\Gread@eps}
+\ifnum\driver@release>5
+ \let\Gread@tif\Gread@pdfbitmap
+ \let\Ginclude@tif\Ginclude@pdftex
+\fi
+\ifnum\driver@release>3
+ \let\Ginclude@png\Ginclude@pdftex
+ \let\Ginclude@jpg\Ginclude@pdftex
+ \let\Ginclude@pdf\Ginclude@pdftex
+ \let\Gread@pdf\Gread@pdftex
+ \let\Gread@png\Gread@pdfbitmap
+ \let\Gread@jpg\Gread@pdfbitmap
+\else
+ \def\Ginclude@pdf#1{%
+ \def\@tempa{!}%
+ \ifx\Gin@scaley\@tempa
+ \let\Gin@scaley\Gin@scalex
+ \else
+ \ifx\Gin@scalex\@tempa\let\Gin@scalex\Gin@scaley\fi
+ \fi
+ \hbox{%
+ \convertPDFtoPDF{#1}{\Gin@scalex}{\Gin@scaley} {0bp} {0bp}%
+ {\Gin@req@width}{\Gin@req@height}%
+ }%
+ }
+\fi
+
+% v0.02e: restrict the rules to just the types that pdftex can currently
+% deal with.
+\ifnum\driver@release>3
+ \def\Gin@extensions{.png,.pdf,.jpg,.mps}
+ \@namedef{Gin@rule@.jpg}#1{{jpg}{.jpg}{#1}}
+ \ifnum\driver@release>5
+ \ifnum\driver@release<8
+ \def\Gin@extensions{.png,.pdf,.jpg,.mps,.tif}
+ \@namedef{Gin@rule@.tif}#1{{tif}{.tif}{#1}}
+ \fi
+ \fi
+\else
+ \def\Gin@extensions{.png,.pdf,.mps}
+\fi
+\@namedef{Gin@rule@.png}#1{{png}{.png}{#1}}
+\@namedef{Gin@rule@.mps}#1{{mps}{.mps}{#1}}
+\@namedef{Gin@rule@.pdf}#1{{pdf}{.pdf}{#1}}
+
+
+% Rotation
+% slightly hacky, but set width of box 0 to 0pt otherwise
+% the CTM gets restored in the wrong place.
+
+% Patrick Daly found an error here with doubled minus signs when \Grot@sin is
+% negative. Fixed.
+\def\Grot@start{%
+ \pdfliteral{ q
+ \Grot@cos\space\Grot@sin\space\if-\Grot@sin\else-\Grot@sin\fi\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{%
+ \@ifundefined{@currname}{pdftex.def}{\@currname}%
+ }{%
+ pdftex option does not work with standard TeX%
+ }%
+\else
+ \ifx\paperwidth\@undefined
+ \else
+ \ifdim\paperheight=0pt\relax
+ \else
+ \pdfpageheight\paperheight
+ \fi
+ \ifdim\paperwidth=0pt\relax
+ \else
+ \pdfpagewidth\paperwidth
+ \fi
+ \fi
+ \pdfoutput=1
+\fi
+
+
+% v0.02e: Restore catcodes of context letters.
+% Not needed with current version of supp-pdf
+% but protects against older versions.
+\AtBeginDocument{%
+ \edef\@tempa{%
+ \catcode`\noexpand\!\the\catcode`\!
+ \catcode`\noexpand\@\the\catcode`\@
+ \catcode`\noexpand\?\the\catcode`\? }%
+ \InputIfFileExists{supp-pdf}{}{}%
+ \@tempa
+}
+
+% these seem to upset pdftex. ignore them. SPQR 1999/08/02
+% allow for plain graphics, not graphicx.
+% pdftex.def is loaded before the definition in graphicx,
+% so do all the stuff \AtBeginDocument:
+\AtBeginDocument{%
+ \@ifundefined{define@key}{}{%
+ \define@key{Gin}{natwidth}{}%
+ \define@key{Gin}{natheight}{}%
+ }%
+}%
+\endinput