4 %% drivers.dtx Copyright (C) 1994 David Carlisle Sebastian Rahtz
5 %% Copyright (C) 1995 1996 1997 1998 1999 David Carlisle
6 %% Copyright (C) 2000--2016 David Carlisle, LaTeX3 Project
8 %% This file is part of the Standard LaTeX `Graphics Bundle'.
9 %% It may be distributed under the terms of the LaTeX Project Public
10 %% License, as described in lppl.txt in the base LaTeX distribution.
11 %% Either version 1.3 or, at your option, any later version.
13 %<template, >\ProvidesFile{template.def}
14 %<dvips, >\ProvidesFile{dvips.def}
15 %<dvipsnames>\ProvidesFile{dvipsnam.def}
16 %<dvipdf, >\ProvidesFile{dvipdf.def}
17 %<emtex, >\ProvidesFile{emtex.def}
18 %<dviwin, >\ProvidesFile{dviwin.def}
19 %<dvipsone, >\ProvidesFile{dvipsone.def}
20 %<pctexps, >\ProvidesFile{pctexps.def}
21 %<pctex32, >\ProvidesFile{pctex32.def}
22 %<pctexwin, >\ProvidesFile{pctexwin.def}
23 %<pctexhp, >\ProvidesFile{pctexhp.def}
24 %<truetex, >\ProvidesFile{truetex.def}
25 %<tcidvi, >\ProvidesFile{tcidvi.def}
26 %<oztex, >\ProvidesFile{oztex.def}
27 %<textures, >\ProvidesFile{textures.def}
28 %<dvialw, >\ProvidesFile{dvialw.def}
29 %<dvilaser, >\ProvidesFile{dvilaser.def}
30 %<psprint, >\ProvidesFile{psprint.def}
31 %<dvi2ps, >\ProvidesFile{dvi2ps.def}
32 %<pubps, >\ProvidesFile{pubps.def}
33 %<dvitops, >\ProvidesFile{dvitops.def}
34 %<ln, >\ProvidesFile{ln.def}
37 \NeedsTeXFormat{LaTeX2e}
38 \ProvidesFile{drivers.dtx}
40 [2016/06/17 v3.0m Driver-dependent file (DPC,SPQR)]
43 \documentclass{ltxdoc}
44 \GetFileInfo{drivers.dtx}
46 \title{Graphics drivers for \LaTeXe\thanks
47 {Version \fileversion, revised \filedate}}
48 \author{Sebastian Rahtz and David Carlisle}
50 \MaintainedByLaTeXTeam{graphics}
52 \DocInput{drivers.dtx}
59 % \providecommand\OzTeX{O\kern-.03em z\kern-.15em\TeX}
61 % \section{Driver files}
63 % This file implements some of the currently supported drivers.
64 % If the driver you use is not in this list then a `.def' file
65 % may be distributed with This graphics bundle,
66 % or may be distributed with your driver.
68 % If not, send us some details of the driver's |\special| syntax, and
69 % we will try to produce a suitable file.
71 % Note that some of these files are for drivers to which we have no
72 % access, so they are untested. Please send any corrections to the
83 % Most of the drivers that support colour use one of three methods.
85 % \item color1: `dvips' style colour specials.
86 % \item color2: `textures' style colour specials.
87 % \item color3: Colour implemented via literal PostScript specials.
88 % \item color4: Colour implemented by specials that only support RGB,
89 % i.e., Red Green Blue specified as integers in the range
90 % 0--255. Other models converted to this within \TeX.
92 % Some drivers do not use any of these modules and have their own code.
93 % Note that drivers using the `color3' code can not fully support the
94 % \LaTeX\ colour commands.
96 %<*color1|color2|color3|color4>
102 \ifdim\dimen@<\z@\dimen@\maxdimen\fi
104 \PackageError{color}{Argument `#1' not in range [0,1]}\@ehd
108 % Need to make sure of a trailing .0 for textures. Apparently it
109 % is OK to always add a . as 1.3. is accepted by textures.
110 % textures gray special is reversed, so just use rgb instead.
113 \def\color@gray#1#2{%
115 %<color4> \c@lor@rgb@RGB\@tempa
116 %<color1> \edef#1{gray #2}%
117 %<color2> \edef#1{rgb #2. #2. #2.}%
118 %<color3> \edef#1{#2 setgray}%
119 %<color4> \edef#1{\@tempa\@tempa\@tempa}%
124 \def\color@cmyk#1#2{\c@lor@@cmyk#2\@@#1}
125 \def\c@lor@@cmyk#1,#2,#3,#4\@@#5{%
127 %<color4> \dimen@ii#4\p@
129 %<color4> \c@lor@cmyk@RGB\@tempa
131 %<color4> \c@lor@cmyk@RGB\@tempb
133 %<color4> \c@lor@cmyk@RGB\@tempc
134 %<color1> \edef#5{cmyk #1 #2 #3 #4}%
135 %<color2> \edef#5{cmyk #1. #2. #3. #4.}%
136 %<color3> \edef#5{#1 #2 #3 #4 setcmykcolor}%
137 %<color4> \edef#5{\@tempa\@tempb\@tempc}%
141 % A 0--1 range value will have been left in |\dimen@| by |\c@lor@arg|.
142 % The black value (0--1) will be stored in |\dimen@ii|.
143 % Covert to 0--255 integer, and leave in |#1|.
146 \def\c@lor@cmyk@RGB#1{%
148 \advance\dimen@\dimen@ii
149 \dimen@-\@cclv\dimen@
151 \count@\ifdim\dimen@<\z@\z@\else\dimen@\fi
152 \edef#1{\the\count@\space}}
157 \def\color@rgb#1#2{\c@lor@@rgb#2\@@#1}
158 \def\c@lor@@rgb#1,#2,#3\@@#4{%
160 %<color4> \c@lor@rgb@RGB\@tempa
162 %<color4> \c@lor@rgb@RGB\@tempb
164 %<color4> \c@lor@rgb@RGB\@tempc
165 %<color1> \edef#4{rgb #1 #2 #3}%
166 %<color2> \edef#4{rgb #1. #2. #3.}%
167 %<color3> \edef#4{#1 #2 #3 setrgbcolor}%
168 %<color4> \edef#4{\@tempa\@tempb\@tempc}%
172 % A 0--1 range value will have been left in |\dimen@| by |\c@lor@arg|.
173 % Convert to 0--255 integer, and leave in |#1|.
176 \def\c@lor@rgb@RGB#1{%
180 \edef#1{\the\count@\space}}
185 \def\color@RGB#1#2{\c@lor@@RGB#2\@@#1}
189 \def\c@lor@@RGB#1,#2,#3\@@#4{%
190 %<!color4> \c@lor@RGB@rgb{#1}\@tempa
191 %<!color4> \c@lor@RGB@rgb{#2}\@tempb
192 %<!color4> \c@lor@RGB@rgb{#3}\@tempc
193 %<!color4> \c@lor@@rgb\@tempa,\@tempb,\@tempc\@@#4%
194 %<color4> \edef#4{#1 #2 #3}%
197 % % Convert 0--255 integer, |#1|, to 0--1 real, and leave in |#2|.
200 \def\c@lor@RGB@rgb#1#2{%
203 \edef#2{\strip@pt\dimen@}}
209 \def\color@hsb#1#2{\c@lor@@hsb#2\@@#1}
213 \def\c@lor@@hsb#1,#2,#3\@@#4{%
217 %<color1> \edef#4{hsb #1 #2 #3}%
218 %<color3> \edef#4{#1 #2 #3 sethsbcolor}%
224 \def\color@named#1#2{\c@lor@@named#2,,\@@#1}
228 \def\c@lor@@named#1,#2,#3\@@#4{%
229 \@ifundefined{col@#1}%
230 {\PackageError{color}{Undefined color `#1'}\@ehd}%
231 %<color1&!dvipsone> {\edef#4{ #1}}%
232 %<color2> {\edef#4{ #1 \if!#2!\else #2.\fi}}%
233 %<color3|dvipsone|color4> {\edef#4{\csname col@#1\endcsname}}%
237 % Conversion from |\special| syntax to PostScript (for PSTricks).
240 \def\c@lor@to@ps#1 #2\@@{\csname c@lor@ps@#1\endcsname#2 \@@}
243 \def\c@lor@to@ps#1\@@{#1}
246 \def\c@lor@to@ps#1#2 #3 #4\@@{%
247 #1#2 255 div #3 255 div #4 255 div setrgbcolor}
253 \def\c@lor@ps@#1 #2\@@{TeXDict begin #1 end}
254 \def\c@lor@ps@rgb#1\@@{#1 setrgbcolor}
255 \def\c@lor@ps@hsb#1\@@{#1 sethsbcolor}
256 \def\c@lor@ps@cmyk#1\@@{#1 setcmykcolor}
257 \def\c@lor@ps@gray#1\@@{#1 setgray}
260 \def\c@lor@to@ps@#1 #2\@@{\csname c@lor@ps@#1@\endcsname#2 \@@}
261 \def\c@lor@ps@#1 #2\@@{%
262 \expandafter\expandafter\expandafter
263 \c@lor@to@ps@\csname col@#1\expandafter\endcsname\space#2. \@@{#1}}
264 \def\c@lor@ps@rgb#1. #2. #3. #4\@@{#1 #2 #3 setrgbcolor}
265 \def\c@lor@ps@rgb@#1. #2. #3. #4. #5\@@#6{#1 #2 #3 setrgbcolor}
266 \def\c@lor@ps@cmyk#1. #2. #3. #4. #5. #6\@@{#1 #2 #3 #4 setcmykcolor}
267 \def\c@lor@ps@cmyk@#1. #2. #3. #4. #5. #6\@@#7{%
268 #1 #2 #3 #4 (#7) findcustomcmykcolor
269 \if!\@firstofone#5!1 \else#5 \fi setcustomcolor}
274 %<color1&!dvipsone>\def\current@color{ Black}
275 %<color1&dvipsone>\def\current@color{gray 0}
276 %<color2>\def\current@color{rgb 0. 0. 0.}
277 %<color3>\def\current@color{0 setgray}
278 %<color4>\def\current@color{0 0 0}
281 % \changes{v3.0j}{2014/04/23}
282 % {add \cs{nopagecolor} for dvips graphics/3873}
286 %<!dvipsone&!dvipdf> \special{color push \current@color
287 %<dvipsone> \special{color push}\special{color \current@color
288 %<dvipdf> \special{pdf: /C \current@color\space<<
289 }\aftergroup\reset@color}
290 \def\reset@color{\special{%
291 %<!dvipdf> color pop}}
292 %<dvipdf> pdf: /C >> }}
293 \def\set@page@color{\special{%
294 %<!dvipdf> background \current@color}}
295 %<dvipdf> pdf: /BG \current@color}}
296 \def\define@color@named#1#2{%
297 %<!dvipsone> \expandafter\let\csname col@#1\endcsname\@nnil}
298 %<dvipsone> \expandafter\edef\csname col@#1\endcsname{#2}}
299 %<dvips> \def\no@page@color{\special{background \string"newpath clip}}
303 \special{color push}%
304 \special{color \current@color}%
305 \aftergroup\reset@color}
306 \def\reset@color{\special{color pop}}
307 \def\set@page@color{\c@lor@special\sixt@@n{background \current@color}}
308 \def\define@color@named#1#2{%
309 \AtBeginDvi{\special{color define #1 #2}}%
310 \expandafter\edef\csname col@#1\endcsname{#2}}
314 \Gin@PS@raw{\current@color}\aftergroup\reset@color}
315 \def\reset@color{\Gin@PS@raw{\current@color}}
319 \special{textcolor: \current@color}\aftergroup\reset@color}
320 \def\reset@color{\special{textcolor: \current@color}}
323 \def\set@page@color{%
324 \c@lor@special\sixt@@n{background color ignored: \current@color}}
325 \def\define@color@named#1#2{%
326 \expandafter\edef\csname col@#1\endcsname{#2}}
331 %</color1|color2|color3|color4>
338 \def\color{\if@inlabel\leavevmode\fi\@ldc@l@r}%
339 \let\@lduseb@x\usebox
340 \def\usebox#1{\@lduseb@x{#1}\set@color}}
346 \DefineNamedColor{named}{GreenYellow} {cmyk}{0.15,0,0.69,0}
347 \DefineNamedColor{named}{Yellow} {cmyk}{0,0,1,0}
348 \DefineNamedColor{named}{Goldenrod} {cmyk}{0,0.10,0.84,0}
349 \DefineNamedColor{named}{Dandelion} {cmyk}{0,0.29,0.84,0}
350 \DefineNamedColor{named}{Apricot} {cmyk}{0,0.32,0.52,0}
351 \DefineNamedColor{named}{Peach} {cmyk}{0,0.50,0.70,0}
352 \DefineNamedColor{named}{Melon} {cmyk}{0,0.46,0.50,0}
353 \DefineNamedColor{named}{YellowOrange} {cmyk}{0,0.42,1,0}
354 \DefineNamedColor{named}{Orange} {cmyk}{0,0.61,0.87,0}
355 \DefineNamedColor{named}{BurntOrange} {cmyk}{0,0.51,1,0}
356 \DefineNamedColor{named}{Bittersweet} {cmyk}{0,0.75,1,0.24}
357 \DefineNamedColor{named}{RedOrange} {cmyk}{0,0.77,0.87,0}
358 \DefineNamedColor{named}{Mahogany} {cmyk}{0,0.85,0.87,0.35}
359 \DefineNamedColor{named}{Maroon} {cmyk}{0,0.87,0.68,0.32}
360 \DefineNamedColor{named}{BrickRed} {cmyk}{0,0.89,0.94,0.28}
361 \DefineNamedColor{named}{Red} {cmyk}{0,1,1,0}
362 \DefineNamedColor{named}{OrangeRed} {cmyk}{0,1,0.50,0}
363 \DefineNamedColor{named}{RubineRed} {cmyk}{0,1,0.13,0}
364 \DefineNamedColor{named}{WildStrawberry}{cmyk}{0,0.96,0.39,0}
365 \DefineNamedColor{named}{Salmon} {cmyk}{0,0.53,0.38,0}
366 \DefineNamedColor{named}{CarnationPink} {cmyk}{0,0.63,0,0}
367 \DefineNamedColor{named}{Magenta} {cmyk}{0,1,0,0}
368 \DefineNamedColor{named}{VioletRed} {cmyk}{0,0.81,0,0}
369 \DefineNamedColor{named}{Rhodamine} {cmyk}{0,0.82,0,0}
370 \DefineNamedColor{named}{Mulberry} {cmyk}{0.34,0.90,0,0.02}
371 \DefineNamedColor{named}{RedViolet} {cmyk}{0.07,0.90,0,0.34}
372 \DefineNamedColor{named}{Fuchsia} {cmyk}{0.47,0.91,0,0.08}
373 \DefineNamedColor{named}{Lavender} {cmyk}{0,0.48,0,0}
374 \DefineNamedColor{named}{Thistle} {cmyk}{0.12,0.59,0,0}
375 \DefineNamedColor{named}{Orchid} {cmyk}{0.32,0.64,0,0}
376 \DefineNamedColor{named}{DarkOrchid} {cmyk}{0.40,0.80,0.20,0}
377 \DefineNamedColor{named}{Purple} {cmyk}{0.45,0.86,0,0}
378 \DefineNamedColor{named}{Plum} {cmyk}{0.50,1,0,0}
379 \DefineNamedColor{named}{Violet} {cmyk}{0.79,0.88,0,0}
380 \DefineNamedColor{named}{RoyalPurple} {cmyk}{0.75,0.90,0,0}
381 \DefineNamedColor{named}{BlueViolet} {cmyk}{0.86,0.91,0,0.04}
382 \DefineNamedColor{named}{Periwinkle} {cmyk}{0.57,0.55,0,0}
383 \DefineNamedColor{named}{CadetBlue} {cmyk}{0.62,0.57,0.23,0}
384 \DefineNamedColor{named}{CornflowerBlue}{cmyk}{0.65,0.13,0,0}
385 \DefineNamedColor{named}{MidnightBlue} {cmyk}{0.98,0.13,0,0.43}
386 \DefineNamedColor{named}{NavyBlue} {cmyk}{0.94,0.54,0,0}
387 \DefineNamedColor{named}{RoyalBlue} {cmyk}{1,0.50,0,0}
388 \DefineNamedColor{named}{Blue} {cmyk}{1,1,0,0}
389 \DefineNamedColor{named}{Cerulean} {cmyk}{0.94,0.11,0,0}
390 \DefineNamedColor{named}{Cyan} {cmyk}{1,0,0,0}
391 \DefineNamedColor{named}{ProcessBlue} {cmyk}{0.96,0,0,0}
392 \DefineNamedColor{named}{SkyBlue} {cmyk}{0.62,0,0.12,0}
393 \DefineNamedColor{named}{Turquoise} {cmyk}{0.85,0,0.20,0}
394 \DefineNamedColor{named}{TealBlue} {cmyk}{0.86,0,0.34,0.02}
395 \DefineNamedColor{named}{Aquamarine} {cmyk}{0.82,0,0.30,0}
396 \DefineNamedColor{named}{BlueGreen} {cmyk}{0.85,0,0.33,0}
397 \DefineNamedColor{named}{Emerald} {cmyk}{1,0,0.50,0}
398 \DefineNamedColor{named}{JungleGreen} {cmyk}{0.99,0,0.52,0}
399 \DefineNamedColor{named}{SeaGreen} {cmyk}{0.69,0,0.50,0}
400 \DefineNamedColor{named}{Green} {cmyk}{1,0,1,0}
401 \DefineNamedColor{named}{ForestGreen} {cmyk}{0.91,0,0.88,0.12}
402 \DefineNamedColor{named}{PineGreen} {cmyk}{0.92,0,0.59,0.25}
403 \DefineNamedColor{named}{LimeGreen} {cmyk}{0.50,0,1,0}
404 \DefineNamedColor{named}{YellowGreen} {cmyk}{0.44,0,0.74,0}
405 \DefineNamedColor{named}{SpringGreen} {cmyk}{0.26,0,0.76,0}
406 \DefineNamedColor{named}{OliveGreen} {cmyk}{0.64,0,0.95,0.40}
407 \DefineNamedColor{named}{RawSienna} {cmyk}{0,0.72,1,0.45}
408 \DefineNamedColor{named}{Sepia} {cmyk}{0,0.83,1,0.70}
409 \DefineNamedColor{named}{Brown} {cmyk}{0,0.81,1,0.60}
410 \DefineNamedColor{named}{Tan} {cmyk}{0.14,0.42,0.56,0}
411 \DefineNamedColor{named}{Gray} {cmyk}{0,0,0,0.50}
412 \DefineNamedColor{named}{Black} {cmyk}{0,0,0,1}
413 \DefineNamedColor{named}{White} {cmyk}{0,0,0,0}
418 % A \LaTeXe\ graphics driver file for Tom Rokicki's \emph{dvips}
419 % driver; tested with version 5.58f.
425 % \subsection{Colour}
426 % Uses the generic `color1' code.
428 % \subsection{File inclusion}
430 % \begin{macro}{\Ginclude@eps}
431 % |#1| input file (or command)
433 \def\Ginclude@eps#1{%
437 % \emph{dvips} likes to work with its own pixel resolution, so
438 % mangle the sizes slightly.
441 \dimen@\Gin@req@width
443 \divide\dimen@\dimen@ii
444 \@tempdima\Gin@req@height
445 \divide\@tempdima\dimen@ii
446 \special{PSfile="#1"\space
451 \ifx\Gin@scalex\@tempa\else rwi=\number\dimen@\space\fi
452 \ifx\Gin@scaley\@tempa\else rhi=\number\@tempdima\space\fi
453 \ifGin@clip clip\fi}%
458 % \begin{macro}{\Ginclude@bmp}
459 % |#1| input file; if zero size is requested, the graphic will
460 % come at `natural' size.
462 \def\Ginclude@bmp#1{%
464 \dimen@\Gin@req@height
465 \advance\dimen@ by-\Gin@lly bp
466 \kern-\Gin@llx bp\raise\Gin@req@height\hbox{%
467 \ifdim\Gin@urx bp=\z@
468 \ifdim\Gin@ury bp=\z@
469 \special{em: graph #1}%
471 \special{em: graph #1,\Gin@urx bp}%
474 \special{em: graph #1,\Gin@urx bp,\Gin@ury bp}%
481 % \begin{macro}{\Ginclude@pict}
482 % \begin{macro}{\Ginclude@pntg}
483 % \begin{macro}{\oztex@include}
484 % PICT/PNTG format from the Mac. Actually only currently supported by
485 % the version of dvips distributed with \OzTeX, and with the built in
486 % \OzTeX\ drivers, but put here anyway as it is not much code and
487 % increases portability between the systems as now |[dvips]| and
488 % |[oztex]| share the same back end.
490 \def\oztex@include#1#2{%
492 \divide\Gin@req@width\dimen@
493 \divide\Gin@req@height\dimen@
495 \@width=\number\Gin@req@width \space
496 \@height=\number\Gin@req@height}}
500 \def\Ginclude@pntg{\oztex@include{pntg}}
501 \def\Ginclude@pict{\oztex@include{pict}}
507 % \subsection{Rotation}
510 \special{ps: gsave currentpoint
511 currentpoint translate \Grot@angle\space neg
512 rotate neg exch neg exch translate}}
513 \def\Grot@end{\special{ps: currentpoint grestore moveto}}
515 % \subsection{Scaling}
517 \def\Gscale@start{\special{ps: currentpoint currentpoint translate
518 \Gscale@x\space \Gscale@y\space scale neg exch neg exch translate}}
519 \def\Gscale@end{\special{ps: currentpoint currentpoint translate
520 1 \Gscale@x\space div 1 \Gscale@y\space div scale
521 neg exch neg exch translate}}
524 % \section{Literal Postscript}
526 % Raw PostScript code, no save/restore.
528 \def\Gin@PS@raw#1{\special{ps: #1}}
531 % PostScript code, to be surrounded by save/restore by the driver.
532 % Coordinate system standard PostScript, but with origin
533 % at current (\TeX) position.
535 \def\Gin@PS@restored#1{\special{" #1}}
538 % PostScript code to be inserted in the Header section of the final
539 % PostScript. Must be issued on the first page of a document.
541 \def\Gin@PS@literal@header#1{\AtBeginDvi{\special{! #1}}}
544 % Name of external file, the contents of which are to be inserted in
545 % the Header section of the final PostScript. Must be issued on the
546 % first page of a document.
548 \def\Gin@PS@file@header#1{\AtBeginDvi{\special{header=#1}}}
551 % \section{Page Size}
553 % \changes{v3.0l}{2016/06/02}{page size special added to patch pdftex.def}
554 % \changes{v3.0m}{2016/06/17}{guards for contributed packages and plain TeX}
556 \@ifundefined{ifGin@setpagesize}
557 {\expandafter\let\csname ifGin@setpagesize\expandafter\endcsname
558 \csname iftrue\endcsname}
564 \ifx\paperwidth\@undefined\else
565 \AtBeginDocument{\AtBeginDvi{%
567 \ifx\stockwidth\@undefined\else
568 \paperwidth\stockwidth
569 \paperheight\stockheight
571 \ifdim\paperwidth>\z@
572 \ifdim\paperheight>\z@
573 \special{papersize=\the\paperwidth,\the\paperheight}%
587 % A \LaTeXe\ graphics driver file for \emph{dvipdf} driver.
593 % \subsection{Colour}
594 % Uses the generic `color1' code.
596 % \subsection{File inclusion}
598 % \begin{macro}{\Ginclude@eps}
599 % |#1| input file (or command)
601 \def\Ginclude@eps#1{%
605 % \emph{dvips} likes to work with its own pixel resolution, so
606 % mangle the sizes slightly.
609 \dimen@\Gin@req@width
611 \divide\dimen@\dimen@ii
612 \@tempdima\Gin@req@height
613 \divide\@tempdima\dimen@ii
614 \special{PSfile="#1"\space
619 \ifx\Gin@scalex\@tempa\else rwi=\number\dimen@\space\fi
620 \ifx\Gin@scaley\@tempa\else rhi=\number\@tempdima\space\fi
621 \ifGin@clip clip\fi}%
626 % \begin{macro}{\Ginclude@bmp}
627 % |#1| input file; if zero size is requested, the graphic will
628 % come at `natural' size.
630 \def\Ginclude@bmp#1{%
632 \dimen@\Gin@req@height
633 \advance\dimen@ by-\Gin@lly bp
634 \kern-\Gin@llx bp\raise\Gin@req@height\hbox{%
635 \ifdim\Gin@urx bp=\z@
636 \ifdim\Gin@ury bp=\z@
637 \special{pdf: /GRAPH #1}%
639 \special{pdf: /GRAPH #1 \number\Gin@req@width sp}%
642 \special{pdf: /GRAPH #1 \number\Gin@req@width sp
643 \number\Gin@req@height sp}%
648 % \subsection{Rotation}
651 \special{pdf: /ROT \Grot@angle\space << }}
652 \def\Grot@end{\special{pdf: /ROT >> }}
655 % \subsection{Scaling}
657 \def\Gscale@start{\special{pdf: /S \Gscale@x\space \Gscale@y\space << }}
658 \def\Gscale@end{\special{pdf: /S \space >> }}
661 % \section{Literal Postscript}
663 % Raw PostScript code, no save/restore.
665 \def\Gin@PS@raw#1{\special{ps: #1}}
668 % PostScript code, to be surrounded by save/restore by the driver.
669 % Coordinate system standard PostScript, but with origin
670 % at current (\TeX) position.
672 \def\Gin@PS@restored#1{\special{" #1}}
675 % PostScript code to be inserted in the Header section of the final
676 % PostScript. Must be issued on the first page of a document.
678 \def\Gin@PS@literal@header#1{\AtBeginDvi{\special{! #1}}}
681 % Name of external file, the contents of which are to be inserted in
682 % the Header section of the final PostScript. Must be issued on the
683 % first page of a document.
685 \def\Gin@PS@file@header#1{\AtBeginDvi{\special{header=#1}}}
688 % \subsection{File extensions}
691 \@namedef{Gin@rule@.msp}#1{{bmp}{.bb}{#1}}
692 \@namedef{Gin@rule@.jpg}#1{{bmp}{.bb}{#1}}
693 \@namedef{Gin@rule@.bmp}#1{{bmp}{.bb}{#1}}
702 % A \LaTeXe\ graphics driver file for \OzTeX\
703 % (versions 1.42 and later),
704 % by Andrew Trevorrow.
708 %\subsection{Graphics inclusion}
710 \def\Ginclude@eps{\Oztex@Include{epsf}}
711 \def\Ginclude@pntg{\Oztex@Include{pntg}}
712 \def\Ginclude@pict{\Oztex@Include{pict}}
713 \def\Oztex@Include#1#2{%
715 \typeout{No clipping support in OzTeX}%
717 \divide\Gin@req@width by 65781% convert sp to bp
718 \divide\Gin@req@height by 65781%
720 width=\number\Gin@req@width \space
721 height=\number\Gin@req@height
727 % A \LaTeXe\ graphics driver file for Blue Sky's Textures
729 % \textbf{WARNING! There is ongoing work to produce a new version of
730 % the textures support. Do not rely on anything in this file being in
737 % \subsection{Graphics inclusion}
741 \PackageInfo{graphics/color}
742 {This file uses the advanced color support\MessageBreak
743 available in textures1.7\MessageBreak
744 If you are using color with an earlier version\MessageBreak
745 of textures, edit graphics.ins where marked,\MessageBreak
746 and re-latex graphics.ins.\MessageBreak\MessageBreak
747 If you are using textures1.7\MessageBreak
748 you may want to delete this warning\MessageBreak
749 from textures.def.\MessageBreak\MessageBreak
750 The code for scaling/rotation and file inclusion\MessageBreak
751 in this file is still rudimentary, and does not\MessageBreak
752 use textures' full capabilities.\MessageBreak\MessageBreak
753 A new textures.def is currently being developed\@gobble}
758 \def\Ginclude@eps{\Textures@Include{illustration}}
759 \def\Ginclude@pict{\Textures@Include{pictfile}}
760 \def\Textures@Include#1#2{%
762 \ifx\Gin@scaley\@tempa
763 \let\Gin@scaley\Gin@scalex
765 \ifx\Gin@scalex\@tempa\let\Gin@scalex\Gin@scaley\fi
767 \setlength\@tempdima{\Gin@scalex pt}%
768 \setlength\@tempdimb{\Gin@scaley pt}%
769 \ifdim\@tempdima>\@tempdimb
770 \let\Gin@scalex\Gin@scaley
773 \typeout{no clipping support in Textures}%
776 \setlength\@tempdima{\Gin@scalex\@tempdimb}%
777 \special{#1 #2\space scaled \number\@tempdima}%
780 % \subsection{Rotation}
781 % This code was written when no unprotected postscript code was allowed;
782 % it could almost certainly be rewritten now with `rawpostscript'.
784 \def\Grot@start{\special{postscript
793 \Grot@angle\space neg rotate
794 neg exch neg exch translate
796 \def\Grot@end{\special{postscript grestore setmatrix gsave}}
798 % \subsection{Colour}
799 % This will only work for versions 1.6 and Version 1.7 uses `color2'.
801 %<color3>\def\Gin@PS@raw#1{\special{rawpostscript #1}}
806 % A \LaTeXe\ graphics driver file for dvialw, by Nelson Beebe
810 % \subsection{Rotation}
812 \def\Ginclude@eps#1{%
814 \ifx\Gin@scaley\@tempa
815 \let\Gin@scaley\Gin@scalex
817 \ifx\Gin@scalex\@tempa\let\Gin@scalex\Gin@scaley\fi
820 \typeout{no clipping support in dvialw}%
822 \special{language "PS",
823 literal "\Gin@scalex\space
824 \Gin@scaley\space scale",
825 position = "bottom left",
831 % A \LaTeXe\ graphics driver file for Eberhard Mattes' emTeX
835 % \subsection{Graphics file inclusion}
837 \def\Ginclude@bmp#1{%
838 \raise\Gin@req@height\hbox{\special{em:graph #1}}%
839 \typeout{WARNING: emtex does not permit graphics to be scaled}%
843 % \section{dvilaser/ps}
844 % A \LaTeXe\ graphics driver file for Arbortext's dvilaser/ps
848 %\subsection{Graphic file inclusion}
850 \def\Ginclude@eps#1{%
852 \typeout{no clipping support in dvilaser/ps}%
854 \special{ps: epsfile #1\space \the\Gin@req@width}%
859 % A \LaTeXe\ graphics driver file for Trevorrow's psprint
863 %\subsection{Graphic file inclusion}
865 \def\Ginclude@eps#1{%
867 \ifx\Gin@scaley\@tempa
868 \let\Gin@scaley\Gin@scalex
870 \ifx\Gin@scalex\@tempa\let\Gin@scalex\Gin@scaley\fi
873 \typeout{no clipping support in psprint}%
876 \Gin@scalex\space \Gin@scaley\space scale
878 \Gin@lly \space neg translate
885 % A \LaTeXe\ graphics driver file for Y\&Y's dvipsone
890 % \subsection{Graphic file inclusion}
894 \def\Ginclude@eps#1{%
898 \dimen@\Gin@req@width
900 \divide\dimen@\dimen@ii
901 \@tempdima\Gin@req@height
902 \divide\@tempdima\dimen@ii
903 \special{PSfile="#1"\space
908 \ifx\Gin@scalex\@tempa\else rwi=\number\dimen@\space\fi
909 \ifx\Gin@scaley\@tempa\else rhi=\number\@tempdima\space\fi
910 \ifGin@clip clip\fi}%
916 \def\Ginclude@tiff#1{%
918 \special{insertimage: #1 \number\Gin@req@width\space
919 \number\Gin@req@height}}
924 \def\Ginclude@wmf#1{%
926 \special{insertmf: #1 0 0 \number\Gin@req@width\space
927 \number\Gin@req@height}}
934 \def\Gin@PS@raw#1{\special{ps: #1}}
937 % \subsection{Rotation}
940 \special{ps: gsave currentpoint
941 currentpoint translate \Grot@angle\space
942 rotate neg exch neg exch translate}}
944 \special{ps: currentfont currentpoint grestore moveto setfont}}
947 % \subsection{Scaling}
949 \def\Gscale@start{\special{ps: currentpoint currentpoint translate
950 \Gscale@x\space \Gscale@y\space scale neg exch neg exch translate}}
951 \def\Gscale@end{\special{ps: currentpoint currentpoint translate
952 1 \Gscale@x\space div 1 \Gscale@y\space div scale
953 neg exch neg exch translate}}
956 % \subsection{File Extensions}
959 \@namedef{Gin@rule@.wmf}#1{{wmf}{}{#1}}
960 \@namedef{Gin@rule@.clp}#1{{wmf}{}{#1}}
963 % \section{Literal Postscript}
965 % Raw PostScript code, no save/restore.
967 \def\Gin@PS@raw#1{\special{ps: #1}}
970 % PostScript code, to be surrounded by save/restore by the driver.
971 % Coordinate system standard PostScript, but with origin
972 % at current (\TeX) position.
974 \def\Gin@PS@restored#1{\special{" #1}}
977 % PostScript code to be inserted in the Header section of the final
978 % PostScript. Must be issued on the first page of a document.
980 \def\Gin@PS@literal@header#1{\AtBeginDvi{\special{headertext=#1}}}
983 % Name of external file, the contents of which are to be inserted in
984 % the Header section of the final PostScript. Must be issued on the
985 % first page of a document.
987 \def\Gin@PS@file@header#1{\AtBeginDvi{\special{header=#1}}}
995 % A \LaTeXe\ graphics driver file for Y\&Y's dviwindo.
997 % This driver now uses the same file as |dvipsone|.
1000 % A \LaTeXe\ graphics driver file for James Clark's dvitops
1004 % \subsection{Rotation}
1006 \newcount\Grot@count
1008 \def\Grot@start{\special{dvitops: origin
1010 \special{dvitops: begin rot\the\Grot@count}}%
1011 \def\Grot@end{\special{dvitops: end}%
1012 \special{dvitops: rotate rot\the\Grot@count \space
1014 \global\advance\Grot@count by\@ne}%
1016 % \subsection{Graphic file inclusion}
1018 \def\Ginclude@eps#1{%
1019 % These cause an arithmetic overflow, so I've commented them
1020 % out. Presumably they were there for some reason.
1021 % Any dvitops users out there??
1022 % \multiply\Gin@req@width by \@m
1023 % \multiply\Gin@req@height by \@m
1025 \typeout{no clipping support in dvitops}%
1027 \special{import #1\space \the\Gin@req@width\space
1028 \the\Gin@req@height\space fill}}
1036 % A \LaTeXe\ graphics driver file for original dvi2ps
1041 % \subsection{Graphic file inclusion}
1043 \def\Ginclude@eps#1{%
1045 \ifx\Gin@scaley\@tempa
1046 \let\Gin@scaley\Gin@scalex
1048 \ifx\Gin@scalex\@tempa\let\Gin@scalex\Gin@scaley\fi
1051 \typeout{no clipping support in dvi2ps}%
1053 \special{psfile=#1\space
1054 hscale=\Gin@scalex\space 1000 mul
1055 vscale=\Gin@scaley\space 1000 mul}}
1063 % A \LaTeXe\ graphics driver file for Personal TeX's PTI Laser/PS;
1064 % from information supplied by Lance Carnes and Tao Wang
1070 % \subsection{Graphic file inclusion}
1073 \def\Ginclude@eps#1{%
1076 \typeout{no clipping support in pctexps}%
1078 \Gin@req@width.03515\Gin@req@width
1079 \Gin@req@height.03515\Gin@req@height
1080 \special{ps:#1\space x=\strip@pt\Gin@req@width cm,
1081 y=\strip@pt\Gin@req@height cm}}
1085 \def\Ginclude@ps#1{%
1088 \typeout{no clipping support in pctexps}%
1090 \hbox{\kern-\Gin@llx bp\raise-\Gin@lly bp\hbox{\special{ps:#1}}}%
1092 ---------------------------------------------------------^^J%
1093 .ps graphics without bounding box information cannot be^^J%
1094 scaled. If the file actually contains the information,^^J%
1095 please rename the file to .eps file extension.^^J%
1096 ---------------------------------------------------------^^J}}
1100 \def\Gin@extensions{.eps,.ps}
1101 \@namedef{Gin@rule@.ps}#1{{ps}{.ps}{#1}}
1102 \@namedef{Gin@rule@.eps}#1{{eps}{.eps}{#1}}
1106 \def\Gin@PS@raw#1{\special{ps::#1}}
1108 \special{ps::gsave currentpoint
1109 currentpoint translate \Grot@angle\space
1110 rotate neg exch neg exch translate}}
1111 \def\Grot@end{\special{ps:: currentpoint grestore moveto}}
1115 \def\Gscale@start{\special{ps:: currentpoint currentpoint translate
1116 \Gscale@x\space \Gscale@y\space scale neg exch neg exch translate}}
1117 \def\Gscale@end{\special{ps:: currentpoint currentpoint translate
1118 1 \Gscale@x\space div 1 \Gscale@y\space div scale
1119 neg exch neg exch translate}}
1127 % A \LaTeXe\ graphics driver file for Personal TeX's PC TeX for 32 bit
1128 % Windows; Code supplied by Tao Wang |<pti@crl.com>|.
1130 % \subsection{Colour}
1131 % Uses the generic `color1' code.
1137 % \subsection{Graphic file inclusion}%
1139 % including PostScript graphics
1140 \def\Ginclude@eps#1{%
1144 \dimen@\Gin@req@width
1146 \divide\dimen@\dimen@ii
1147 \@tempdima\Gin@req@height
1148 \divide\@tempdima\dimen@ii
1149 \special{PSfile="#1"\space
1154 \ifx\Gin@scalex\@tempa\else rwi=\number\dimen@\space\fi
1155 \ifx\Gin@scaley\@tempa\else rhi=\number\@tempdima\space\fi
1156 \ifGin@clip clip\fi}%
1160 % including BMP graphics
1162 \def\Ginclude@bmp#1{%
1165 \typeout{no clipping support for BMP graphics in PCTeX32}%
1167 \Gin@req@width.03515\Gin@req@width
1168 \Gin@req@height.03515\Gin@req@height
1169 \special{bmp:#1\space x=\strip@pt\Gin@req@width cm,
1170 y=\strip@pt\Gin@req@height cm}}
1173 % including WMF graphics
1175 \def\Ginclude@wmf#1{%
1178 \typeout{no clipping support for WMF graphics in PCTeX32}%
1180 \Gin@req@width.03515\Gin@req@width
1181 \Gin@req@height.03515\Gin@req@height
1182 \special{wmf:#1\space x=\strip@pt\Gin@req@width cm,
1183 y=\strip@pt\Gin@req@height cm}}
1186 % \subsection{Scaling and Rotating}
1187 % PostScript rotation and scaling
1190 \special{ps:: gsave currentpoint
1191 currentpoint translate \Grot@angle\space neg
1192 rotate neg exch neg exch translate}}
1193 \def\Grot@end{\special{ps:: currentpoint grestore moveto}}
1194 \def\Gscale@start{\special{ps:: currentpoint currentpoint translate
1195 \Gscale@x\space \Gscale@y\space scale neg exch neg exch translate}}
1196 \def\Gscale@end{\special{ps:: currentpoint currentpoint translate
1197 1 \Gscale@x\space div 1 \Gscale@y\space div scale
1198 neg exch neg exch translate}}
1202 \def\Gin@PS@raw#1{\special{ps:: #1}}
1203 \def\Gin@PS@restored#1{\special{" #1}}
1206 % \subsection{Default Extensions}
1209 \def\Gin@extensions{.eps,.ps,.wmf,.bmp}
1210 \@namedef{Gin@rule@.ps}#1{{eps}{.ps}{#1}}
1211 \@namedef{Gin@rule@.eps}#1{{eps}{.eps}{#1}}
1212 \@namedef{Gin@rule@.bmp}#1{{bmp}{}{#1}}
1213 \@namedef{Gin@rule@.wmf}#1{{wmf}{}{#1}}
1220 % \section{pctexwin}
1221 % A \LaTeXe\ graphics driver file for Personal TeX's PC TeX for Windows;
1222 % from information supplied by Lance Carnes and Tao Wang
1228 % \subsection{Graphic file inclusion}
1231 \def\Ginclude@eps#1{%
1234 \typeout{no clipping support in pctexwin}%
1236 \Gin@req@width.03515\Gin@req@width
1237 \Gin@req@height.03515\Gin@req@height
1238 \special{eps:#1\space x=\strip@pt\Gin@req@width cm,
1239 y=\strip@pt\Gin@req@height cm}}
1243 \def\Ginclude@ps#1{%
1246 \typeout{no clipping support in pctexwin}%
1248 \hbox{\kern-\Gin@llx bp\raise-\Gin@lly bp\hbox{\special{ps:#1}}}%
1250 ---------------------------------------------------------^^J%
1251 .ps graphics without bounding box information cannot be^^J%
1252 scaled. If the file actually contains the information,^^J%
1253 please rename the file to .eps file extension.^^J%
1254 ---------------------------------------------------------^^J%
1259 \def\Ginclude@bmp#1{%
1262 \typeout{no clipping support in pctexwin}%
1264 \Gin@req@width.03515\Gin@req@width
1265 \Gin@req@height.03515\Gin@req@height
1266 \special{bmp:#1\space x=\strip@pt\Gin@req@width cm,
1267 y=\strip@pt\Gin@req@height cm}}
1271 \def\Ginclude@wmf#1{%
1274 \typeout{no clipping support in pctexwin}%
1276 \Gin@req@width.03515\Gin@req@width
1277 \Gin@req@height.03515\Gin@req@height
1278 \special{wmf:#1\space x=\strip@pt\Gin@req@width cm,
1279 y=\strip@pt\Gin@req@height cm}}
1283 \def\Gin@extensions{.eps,.ps,.wmf,.bmp}
1284 \@namedef{Gin@rule@.bmp}#1{{bmp}{}{#1}}
1285 \@namedef{Gin@rule@.wmf}#1{{wmf}{}{#1}}
1286 \@namedef{Gin@rule@.ps}#1{{ps}{.ps}{#1}}
1287 \@namedef{Gin@rule@.eps}#1{{eps}{.eps}{#1}}
1295 % A \LaTeXe\ graphics driver file for Personal TeX's PTI Laser/HP;
1296 % from information supplied by Lance Carnes and Tao Wang
1301 % \subsection{Graphic file inclusion}
1303 \def\Ginclude@pcl#1{%
1306 \typeout{no clipping support in pctexhp}%
1308 \hbox{\kern-\Gin@llx bp\raise-\Gin@lly bp\hbox{\special{pcl:#1}}}%
1309 \typeout{WARNING: pctexhp does not permit graphics to be scaled}}
1310 \@namedef{Gin@rule@.pcl}#1{{pcl}{}{#1}}
1311 \def\Gin@extensions{.pcl}
1316 % A \LaTeXe\ graphics driver file for Arbortext's PUBps;
1317 % information from Peter R Wilson |pwilson@rdrc.rpi.edu|.
1321 % \subsection{Rotation}
1323 \def\Grot@start{\special{ps: gsave currentpoint
1324 currentpoint translate \Grot@angle\space
1325 rotate neg exch neg exch translate}}
1326 \def\Grot@end{\special{ps: currentpoint grestore moveto}}
1331 % A \LaTeXe\ graphics driver file for Hippocrates Sendoukas' dviwin
1335 % \subsection{Graphic file inclusion}
1336 % Dviwin sorts out the graphics type itself based on extension.
1337 % They all use the same |\special|, so as far as graphics.sty is
1338 % concerned they are all the same `type'. Use `bmp' for the type
1339 % as that is as good a name as any. Make this the default.
1341 \@namedef{Gin@rule@*}#1{{bmp}{}{#1}}
1342 \def\Ginclude@bmp#1{%
1343 \raise\Gin@req@height\hbox{%
1344 \special{anisoscale #1,
1345 \the\Gin@req@width\space \the\Gin@req@height}}}
1347 % The only exception is EPS files, as they may be read for BoundingBox
1349 \@namedef{Gin@rule@.ps}#1{{eps}{.ps}{#1}}
1350 \@namedef{Gin@rule@.eps}#1{{eps}{.eps}{#1}}
1351 \let\Ginclude@eps\Ginclude@bmp
1353 % Add a few default extensions so |\includegraphics{a}|
1354 % will pick up |a.eps| or |a.wmf|.
1355 % This list can be reset with |\DeclareGraphicsExtensions|.
1356 % Other extensions not in the list may be used explicitly, eg
1357 % |\includegraphics{a.gif}| should work as long as dviwin has access
1358 % to a gif filter. If |.gif| is added using |\DeclareGraphicsExtensions|
1359 % then |\includegraphics{a}| would also find |a.gif|.
1361 \def\Gin@extensions{.eps,.ps,.wmf,.tif}
1369 % A \LaTeXe\ graphics driver file for B Hamilton Kelly's ln03 driver.
1370 % Untested, but based on the graphics macros distributed with the
1375 % \subsection{Graphic file inclusion}
1377 \def\Ginclude@sixel#1{\special{ln03:sixel #1}}
1382 % A \LaTeXe\ graphics driver file for Kinch `truetex' driver.
1387 % \subsection{Colour}
1388 % Uses the `color4' colour code.
1390 % \subsection{Graphic file inclusion}
1392 % EPS File inclusion: DVIPS style.
1394 \def\Ginclude@eps#1{%
1398 \dimen@\Gin@req@width
1400 \divide\dimen@\dimen@ii
1401 \@tempdima\Gin@req@height
1402 \divide\@tempdima\dimen@ii
1403 \special{PSfile="#1"\space
1408 \ifx\Gin@scalex\@tempa\else rwi=\number\dimen@\space\fi
1409 \ifx\Gin@scaley\@tempa\else rhi=\number\@tempdima\space\fi
1410 \ifGin@clip clip\fi}%
1414 % bmp File Inclusion.
1416 \def\Ginclude@bmp#1{%
1418 \special{bmpfile #1}}
1421 % tif(f) File inclusion
1423 \def\Ginclude@tiff#1{%
1425 \special{tifffile #1}}
1428 % \subsection{Literal PostScript}
1429 % This is not supported, so uses `nops' code.
1431 % \subsection{Default Rules}
1432 % Support (e)ps, tif and bmp, default to eps.
1434 \def\Gin@extensions{.eps,.ps}
1435 \@namedef{Gin@rule@.ps}#1{{eps}{.ps}{#1}}
1436 \@namedef{Gin@rule@.eps}#1{{eps}{.eps}{#1}}
1437 \@namedef{Gin@rule@.tif}#1{{tiff}{}{#1}}
1438 \@namedef{Gin@rule@.bmp}#1{{bmp}{}{#1}}
1442 \@namedef{Gin@rule@*}#1{{eps}{\Gin@ext}{#1}}
1450 % A \LaTeXe\ graphics driver file for Scientific Word/Workplace.
1451 % Actually for the Kinch truetex driver, augmented with extra
1452 % |\special| handling with the DLL supplied with SW.
1457 % \subsection{Colour}
1458 % Uses the `color4' colour code.
1460 % The above colours are handled by the Kinch-supplied dll
1461 % The TCI dll adds support for |\colorbox|, but only grey scale
1462 % The code below accepts any color model, but only the red
1463 % component is used.
1465 \AtBeginDocument{\def\color@block#1#2#3{%
1467 \@defaultunits\count@\current@color\@nnil
1469 \divide\dimen@\@cclv
1471 \advance\dimen@ii#3%
1473 \special{language "Scientific Word";%
1475 greyscale \strip@pt\dimen@;%
1476 height \the\dimen@ii;%
1482 % \subsection{Graphic file inclusion}
1484 % EPS File inclusion.
1486 \def\Ginclude@eps#1{%
1488 \raise\Gin@req@height\hbox{%
1491 % If the bounding box has been changed by a trim or viewport
1492 % key then need to calculate the crop ratios based on the original
1493 % bb coordinates. (This assumes that clip key is also used).
1495 \ifx\Gin@ollx\@undefined
1497 \@tempdimb \Gin@ourx bp%
1498 \advance\@tempdimb-\Gin@ollx bp%
1499 \@tempdima\Gin@llx bp%
1500 \advance\@tempdima-\Gin@ollx bp%
1501 \Gscale@div\TCI@cropleft\@tempdima\@tempdimb
1502 \@tempdima\Gin@urx bp%
1503 \advance\@tempdima-\Gin@ollx bp%
1504 \Gscale@div\TCI@cropright\@tempdima\@tempdimb
1505 \@tempdimb \Gin@oury bp%
1506 \advance\@tempdimb-\Gin@olly bp%
1507 \@tempdima\Gin@lly bp%
1508 \advance\@tempdima-\Gin@olly bp%
1509 \Gscale@div\TCI@cropbottom\@tempdima\@tempdimb
1510 \@tempdima\Gin@ury bp%
1511 \advance\@tempdima-\Gin@olly bp%
1512 \Gscale@div\TCI@croptop\@tempdima\@tempdimb
1518 language \TCI@language;%
1520 valid_file \TCI@validfile;%
1521 width \the\Gin@req@width;%
1522 height \the\Gin@req@height;%
1524 original-width \the\Gin@nat@width;%
1525 original-height \the\Gin@nat@height;%
1526 cropleft "\TCI@cropleft";%
1527 croptop "\TCI@croptop";%
1528 cropright "\TCI@cropright";%
1529 cropbottom "\TCI@cropbottom";%
1531 \ifx\TCI@temp\@empty\else tempfilename \TCI@temp;\fi
1535 % Default values so documents produced elsewhere should work
1537 \def\TCI@language{"Scientific Word"}
1538 \def\TCI@type{"GRAPHIC"}
1539 \def\TCI@validfile{'F'}
1540 \def\TCI@cropleft{0}
1542 \def\TCI@cropright{1}
1543 \def\TCI@cropbottom{0}
1544 \let\TCI@temp\@empty
1547 % Non PS Graphic files.
1549 % File inclusion macro is always the same. Use a different name though
1550 % as LaTeX thinks it can read eps files for BoundingBox.
1552 \let\Ginclude@bmp\Ginclude@eps
1555 % \subsection{Literal PostScript}
1556 % This is not supported, so uses `nops' code.
1558 % \subsection{Default Rules}
1559 % SW always gives the full name with extension.
1560 % So leave this list empty.
1562 \def\Gin@extensions{}
1565 % .ps .PS .eps .EPS are (E)PS
1566 % rest are `bmp' which is a catch all type for anything
1567 % that the import filter can handle.
1569 \@namedef{Gin@rule@.ps}#1{{eps}{.ps}{#1}}
1570 \@namedef{Gin@rule@.eps}#1{{eps}{.eps}{#1}}
1571 \@namedef{Gin@rule@.PS}#1{{eps}{.PS}{#1}}
1572 \@namedef{Gin@rule@.EPS}#1{{eps}{.EPS}{#1}}
1576 \@namedef{Gin@rule@*}#1{{bmp}{\Gin@ext}{#1}}
1583 % \section{Literal Postscript}
1584 % Most drivers writing to PostScript allow some form of `literal'
1585 % PostScript |\special| that inserts code into the final PostScript
1586 % output. However Non-PS drivers can not support this (and some PS
1587 % one's can't either). The code here makes all these commands no ops.
1588 % Individual driver sections may define the commands to do something
1595 % Raw PostScript code, no save/restore. Coordinate system unspecified.
1600 % PostScript code, to be surrounded by save/restore by the driver.
1601 % Coordinate system standard PostScript, but with origin
1602 % at current (\TeX) position.
1604 \def\Gin@PS@restored#1{}
1607 % PostScript code to be inserted in the Header section of the final
1608 % PostScript. Must be issued on the first page of a document.
1610 \def\Gin@PS@literal@header#1{}
1613 % Name of external file, the contents of which are to be inserted in
1614 % the Header section of the final PostScript. Must be issued on the
1615 % first page of a document.
1617 \def\Gin@PS@file@header#1{}
1624 % \section{Graphics Inclusion Rules}
1630 \def\Gin@extensions{.eps,.ps}
1634 \@namedef{Gin@rule@.ps}#1{{eps}{.ps}{#1}}
1635 \@namedef{Gin@rule@.eps}#1{{eps}{.eps}{#1}}
1639 \@namedef{Gin@rule@*}#1{{eps}{\Gin@ext}{#1}}
1647 % \changes{v3.0j}{2014/04/23}
1648 % {add .mps for metapost generated postscript to match pdftex graphics/4050}
1650 \def\Gin@extensions{.eps,.ps,.eps.gz,.ps.gz,.eps.Z,.mps}
1653 % \changes{v3.0k}{2015/12/30}
1654 % {compressed files don't require gunzip for dvips/xdvi}
1656 \@namedef{Gin@rule@.ps}#1{{eps}{.ps}{#1}}
1657 \@namedef{Gin@rule@.eps}#1{{eps}{.eps}{#1}}
1658 \@namedef{Gin@rule@.mps}#1{{eps}{.mps}{#1}}
1659 \@namedef{Gin@rule@.pz}#1{{eps}{.bb}{#1}}
1660 \@namedef{Gin@rule@.eps.Z}#1{{eps}{.eps.bb}{#1}}
1661 \@namedef{Gin@rule@.ps.Z}#1{{eps}{.ps.bb}{#1}}
1662 \@namedef{Gin@rule@.ps.gz}#1{{eps}{.ps.bb}{#1}}
1663 \@namedef{Gin@rule@.eps.gz}#1{{eps}{.eps.bb}{#1}}
1667 \@namedef{Gin@rule@*}#1{{eps}{\Gin@ext}{#1}}
1676 %<!psrulesZ>\def\Gin@extensions{.eps,.ps,.pcx,.bmp}
1680 \@namedef{Gin@rule@.pcx}#1{{bmp}{}{#1}}
1681 \@namedef{Gin@rule@.bmp}#1{{bmp}{}{#1}}
1682 \@namedef{Gin@rule@.msp}#1{{bmp}{}{#1}}
1688 %\def\Gin@extensions{{},.ps,.eps,.pict}
1689 %\@namedef{Gin@rule@.ps}#1{{eps}{.ps}{#1}}
1690 %\@namedef{Gin@rule@.eps}#1{{eps}{.eps}{#1}}
1691 \@namedef{Gin@rule@.pict}#1{{pict}{}{#1}}
1692 \@namedef{Gin@rule@.pntg}#1{{pntg}{}{#1}}
1693 %\@namedef{Gin@rule@}#1{{pict}{\relax}{#1}}
1696 \@namedef{Gin@rule@.tif}#1{{tiff}{}{#1}}