2 %% This is file `graphicx.sty',
\r
3 %% generated with the docstrip utility.
\r
5 %% The original source files were:
\r
7 %% graphicx.dtx (with options: `package')
\r
9 %% graphicx.dtx Copyright (C) 1994 David Carlisle Sebastian Rahtz
\r
10 %% Copyright (C) 1995 1996 1997 1999 David Carlisle
\r
12 %% This file is part of the Standard LaTeX `Graphics Bundle'.
\r
13 %% It may be distributed under the terms of the LaTeX Project Public
\r
14 %% License, as described in lppl.txt in the base LaTeX distribution.
\r
15 %% Either version 1.0 or, at your option, any later version.
\r
17 \NeedsTeXFormat{LaTeX2e}[1995/12/01]
\r
18 \ProvidesPackage{graphicx}
\r
19 [1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR)]
\r
20 \DeclareOption{unknownkeysallowed}
\r
21 {\PassOptionsToPackage\CurrentOption{keyval}}
\r
22 \DeclareOption*{\PassOptionsToPackage\CurrentOption{graphics}}
\r
24 \RequirePackage{keyval,graphics}
\r
25 \define@key{Gin}{bb}
\r
26 {\Gin@bboxtrue\Gread@parse@bb#1 \\}
\r
27 \define@key{Gin}{bbllx}
\r
28 {\Gin@bboxtrue\Gin@defaultbp\Gin@llx{#1}}
\r
29 \define@key{Gin}{bblly}
\r
30 {\Gin@bboxtrue\Gin@defaultbp\Gin@lly{#1}}
\r
31 \define@key{Gin}{bburx}
\r
32 {\Gin@bboxtrue\Gin@defaultbp\Gin@urx{#1}}
\r
33 \define@key{Gin}{bbury}
\r
34 {\Gin@bboxtrue\Gin@defaultbp\Gin@ury{#1}}
\r
35 \define@key{Gin}{hiresbb}[true]{%
\r
37 \@percentchar\@percentchar
\r
38 \csname if#1\endcsname HiRes\fi
\r
40 \let\KV@Gin@natwidth\KV@Gin@bburx
\r
41 \let\KV@Gin@natheight\KV@Gin@bbury
\r
42 \define@key{Gin}{viewport}
\r
43 {\let\Gin@viewport@code\Gin@viewport\Gread@parse@vp#1 \\}
\r
44 \define@key{Gin}{trim}
\r
45 {\let\Gin@viewport@code\Gin@trim\Gread@parse@vp#1 \\}
\r
46 \def\Gread@parse@vp#1 #2 #3 #4 #5\\{%
\r
47 \Gin@defaultbp\Gin@vllx{#1}%
\r
48 \Gin@defaultbp\Gin@vlly{#2}%
\r
49 \Gin@defaultbp\Gin@vurx{#3}%
\r
50 \Gin@defaultbp\Gin@vury{#4}}%
\r
52 \let\Gin@ollx\Gin@llx
\r
53 \let\Gin@olly\Gin@lly
\r
54 \let\Gin@ourx\Gin@urx
\r
55 \let\Gin@oury\Gin@ury
\r
56 \dimen@\Gin@llx\p@\advance\dimen@ \Gin@vurx\p@
\r
57 \edef\Gin@urx{\strip@pt\dimen@}%
\r
58 \dimen@\Gin@lly\p@\advance\dimen@ \Gin@vury\p@
\r
59 \edef\Gin@ury{\strip@pt\dimen@}%
\r
60 \dimen@\Gin@llx\p@\advance\dimen@ \Gin@vllx\p@
\r
61 \edef\Gin@llx{\strip@pt\dimen@}%
\r
62 \dimen@\Gin@lly\p@\advance\dimen@ \Gin@vlly\p@
\r
63 \edef\Gin@lly{\strip@pt\dimen@}}
\r
65 \let\Gin@ollx\Gin@llx
\r
66 \let\Gin@olly\Gin@lly
\r
67 \let\Gin@ourx\Gin@urx
\r
68 \let\Gin@oury\Gin@ury
\r
69 \dimen@\Gin@llx\p@\advance\dimen@ \Gin@vllx\p@
\r
70 \edef\Gin@llx{\strip@pt\dimen@}%
\r
71 \dimen@\Gin@lly\p@\advance\dimen@ \Gin@vlly\p@
\r
72 \edef\Gin@lly{\strip@pt\dimen@}%
\r
73 \dimen@\Gin@urx\p@\advance\dimen@ -\Gin@vurx\p@
\r
74 \edef\Gin@urx{\strip@pt\dimen@}%
\r
75 \dimen@\Gin@ury\p@\advance\dimen@ -\Gin@vury\p@
\r
76 \edef\Gin@ury{\strip@pt\dimen@}}
\r
77 \let\Gin@vllx\Gin@llx\let\Gin@vlly\Gin@llx
\r
78 \let\Gin@vurx\Gin@llx\let\Gin@vury\Gin@llx
\r
79 \define@key{Gin}{angle}
\r
82 \edef\@tempa{\toks@{\noexpand\Gin@erotate{#1}{\the\toks@}}}%
\r
84 \define@key{Gin}{origin}[c]{%
\r
85 \def\Gin@erotate{\Grot@box@kv[origin=#1]}}
\r
86 \define@key{Gin}{width}{\def\Gin@ewidth{#1}}
\r
87 \define@key{Gin}{height}{\def\Gin@eheight{#1}}
\r
88 \define@key{Gin}{totalheight}{%
\r
89 \def\Gin@eresize{\totalheight}\def\Gin@eheight{#1}}
\r
90 \define@key{Gin}{keepaspectratio}[true]{%
\r
91 \lowercase{\Gin@boolkey{#1}}{iso}}
\r
92 \define@key{Gin}{scale}{%
\r
94 \edef\@tempa{\toks@{\noexpand\Gscale@box{#1}[#1]{\the\toks@}}}%
\r
97 \def\Gin@req@sizes{%
\r
98 \def\Gin@scalex{#1}\let\Gin@scaley\Gin@exclamation
\r
99 \Gin@req@height\Gin@scalex\Gin@nat@height
\r
100 \Gin@req@width\Gin@scalex\Gin@nat@width}%
\r
103 \define@key{Gin}{draft}[true]{%
\r
104 \lowercase{\Gin@boolkey{#1}}{draft}}
\r
105 \define@key{Gin}{clip}[true]{%
\r
106 \lowercase{\Gin@boolkey{#1}}{clip}}
\r
107 \define@key{Gin}{type}{%
\r
108 \def\Ginclude@graphics##1{%
\r
110 \def\Gin@base{##1}%
\r
111 \edef\@tempa{{#1}{\Gin@eread}{\Gin@ecom{##1\Gin@eext}}}%
\r
112 \expandafter\Gin@setfile\@tempa
\r
114 \define@key{Gin}{ext}{\def\Gin@eext{#1}}
\r
115 \let\Gin@eext\@empty
\r
116 \define@key{Gin}{read}{%
\r
117 \def\Gin@eread{#1}%
\r
118 \def\@tempa{*}\ifx\@tempa\Gin@eread\def\Gin@eread{\Gin@eext}\fi}
\r
119 \let\Gin@eread\@empty
\r
120 \define@key{Gin}{command}{\def\Gin@ecom##1{#1}}
\r
121 \let\Gin@ecom\@firstofone
\r
122 \def\Gin@boolkey#1#2{%
\r
123 \csname Gin@#2\ifx\relax#1\relax true\else#1\fi\endcsname}
\r
124 \def\Gin@eresize{\height}
\r
125 \def\Gin@esetsize{%
\r
126 \let\@tempa\Gin@exclamation
\r
128 \edef\@tempa{\toks@{\noexpand
\r
129 \Gscale@@box\noexpand\Gin@eresize
\r
130 {\Gin@ewidth}{\Gin@eheight}{\the\toks@}}}%
\r
133 \ifx\Gin@ewidth\@tempa
\r
134 \ifx\Gin@eheight\@tempa
\r
136 \let\Gin@@eheight\Gin@eheight
\r
137 \def\Gin@req@sizes{%
\r
138 \Gscale@div\Gin@scaley\Gin@@eheight\Gin@nat@height
\r
139 \let\Gin@scalex\Gin@exclamation
\r
140 \setlength\Gin@req@height\Gin@@eheight
\r
141 \Gin@req@width\Gin@scaley\Gin@nat@width}%
\r
144 \ifx\Gin@eheight\@tempa
\r
145 \let\Gin@@ewidth\Gin@ewidth
\r
146 \def\Gin@req@sizes{%
\r
147 \Gscale@div\Gin@scalex\Gin@@ewidth\Gin@nat@width
\r
148 \let\Gin@scaley\Gin@exclamation
\r
149 \setlength\Gin@req@width\Gin@@ewidth
\r
150 \Gin@req@height\Gin@scalex\Gin@nat@height}%
\r
152 \let\Gin@@ewidth\Gin@ewidth
\r
153 \let\Gin@@eheight\Gin@eheight
\r
154 \def\Gin@nosize##1{%
\r
155 \KV@Gin@natwidth\Gin@@ewidth
\r
156 \KV@Gin@natheight\Gin@@eheight}%
\r
157 \def\Gin@req@sizes{%
\r
158 \Gscale@div\Gin@scalex\Gin@@ewidth\Gin@nat@width
\r
159 \Gscale@div\Gin@scaley\Gin@@eheight\Gin@nat@height
\r
161 \ifdim\Gin@scaley\p@>\Gin@scalex\p@
\r
162 \let\Gin@scaley\Gin@scalex
\r
164 \let\Gin@scalex\Gin@scaley
\r
167 \Gin@req@width\Gin@scalex\Gin@nat@width
\r
168 \Gin@req@height\Gin@scaley\Gin@nat@height}%
\r
172 \let\Gin@ewidth\Gin@exclamation
\r
173 \let\Gin@eheight\Gin@ewidth}
\r
174 \newdimen\Gin@req@height
\r
175 \newdimen\Gin@req@width
\r
176 \let\Gin@outer@scalex\relax
\r
177 \let\Gin@outer@scaley\relax
\r
178 \let\Gin@angle\relax
\r
179 \let\Gin@ewidth\Gin@exclamation
\r
180 \let\Gin@eheight\Gin@ewidth
\r
182 \let\Gin@scaley\Gin@exclamation
\r
184 \def\Gin@req@sizes{%
\r
185 \Gin@req@height\Gin@nat@height
\r
186 \Gin@req@width\Gin@nat@width}%
\r
187 \@ifnextchar[\Gin@ii{\Gin@ii[]}}
\r
188 \def\Gin@ii[#1]#2{%
\r
189 \def\@tempa{[}\def\@tempb{#2}%
\r
191 \def\@tempa{\Gin@iii[#1][}%
\r
192 \expandafter\@tempa
\r
196 \toks@{\Ginclude@graphics{#2}}%
\r
203 \@ifnextchar[\Grot@box@kv\Grot@box@std}
\r
204 \def\Grot@box@std#1#2{%
\r
205 \Grot@setangle{#1}%
\r
206 \setbox\z@\hbox{{#2}}%
\r
210 \def\Grot@box@kv[#1]#2#3{%
\r
211 \@begin@tempboxa\hbox{#3}%
\r
212 \Grot@x\width \divide\Grot@x\tw@
\r
213 \Grot@y\height \advance\Grot@y-\depth \divide\Grot@y\tw@
\r
214 \setkeys{Grot}{#1}%
\r
215 \setbox\z@\box\@tempboxa
\r
216 \Grot@setangle{#2}%
\r
219 \define@key{Grot}{origin}[c]{%
\r
220 \@tfor\@tempa:=#1\do{%
\r
221 \if l\@tempa \Grot@x\z@\else
\r
222 \if r\@tempa \Grot@x\width\else
\r
223 \if t\@tempa \Grot@y\height\else
\r
224 \if b\@tempa \Grot@y-\depth\else
\r
225 \if B\@tempa \Grot@y\z@\fi\fi\fi\fi\fi}}
\r
226 \define@key{Grot}{x}{\setlength\Grot@x{#1}}
\r
227 \define@key{Grot}{y}{\setlength\Grot@y{#1}}
\r
228 \define@key{Grot}{units}{%
\r
229 \def\Grot@setangle##1{%
\r
232 \divide\dimen@ii360\relax
\r
233 \divide\dimen@\dimen@ii
\r
234 \edef\Grot@angle{\number\dimen@}}}
\r
235 \let\Gin@erotate\Grot@box@std
\r
238 %% End of file `graphicx.sty'.
\r