summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/graphics-def/pdftex.def
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/graphics-def/pdftex.def')
-rw-r--r--Master/texmf-dist/tex/latex/graphics-def/pdftex.def1923
1 files changed, 266 insertions, 1657 deletions
diff --git a/Master/texmf-dist/tex/latex/graphics-def/pdftex.def b/Master/texmf-dist/tex/latex/graphics-def/pdftex.def
index 76ebd378a2e..fcfafd06c3d 100644
--- a/Master/texmf-dist/tex/latex/graphics-def/pdftex.def
+++ b/Master/texmf-dist/tex/latex/graphics-def/pdftex.def
@@ -1,17 +1,7 @@
-\ProvidesFile{pdftex.def}[2017/01/12 v0.06k Graphics/color for pdfTeX]
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-%% LaTeX Colour and Graphics support for PDFTeX
-%%
-%% License
-%% =======
-%%
-%% Copyright (C) 2000-2015
-%% David Carlisle, Sebastian Rahtz, Hans Hagen,
-%% Heiko Oberdiek and Martin Schr\"oder
-%%
-%% 2016-2017 LaTeX3 project and Heiko Oberdiek
-%% https://github.com/latex3/graphics-def/issues
+%% pdftex.def Copyright (C) 2000-2015 David Carlisle, Sebastian Rahtz,
+%% Hans Hagen, Heiko Oberdiek and
+%% Martin Schr\"oder
+%% Copyright (C) 2016-2017 LaTeX3 project and Heiko Oberdiek
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
@@ -23,481 +13,22 @@
%%
%% This work has the LPPL maintenance status `maintained'.
%%
-%% The Current Maintainers of this work are
-%% LaTeX3 project and Heiko Oberdiek
-%%
-%% This work consists of the file pdftex.def.
-%%
-%% Usage
-%% =====
-%%
-%% It may be used by specifying the pdftex option to any of the
-%% supported packages, for example:
+%% The Current Maintainer of this work is the LaTeX3 Project.
%%
-%% \usepackage[pdftex]{graphicx}
+%% https://github.com/latex3/graphics-def/issues
%%
-%% * pdfTeX determines the bounding box of the images by means of
-%% itself. Therefore the bounding box options should not be used.
-%% In this cases a warning is issued and viewport is used instead.
-%% * Option "page" (graphicx) for selecting a page of a multipage
-%% PDF document.
-%% * \pagecolor is supported. \nopagecolor disables the page color.
-%% * Option "quiet" (graphicx/experimental): log messages are suppressed.
-%% * Option "resolution" (graphicx/experimental): this sets
-%% \pdfimageresolution, see pdfTeX documentation.
-%% * Option "print" (graphicx/experimental): specifies an alternate
-%% print image (bitmaps only), see PDF specification.
-%% * pdftex.def can be used under plain-TeX with miniltx support.
-%%
-%% "Experimental" means that these features can change or vanish
-%% in later versions.
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% 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) (HO).
-% 2005/06/20 v0.03m
-% * .tif support is removed for pdfTeX >= 1.10a (HO).
-% 2006/02/23 v0.03n
-% * Compatibility for plain-TeX: file can be loaded multiple times;
-% colorfix is not applied for undefined macros (HO).
-% 2006/02/24 v0.03o
-% * Catcode protections mainly because of babel's shorthands (HO).
-% 2006/03/02 v0.03p
-% * \pagecolor support for plain-TeX fixed (HO).
-% 2006/05/17 v0.03q
-% * Error message if ConTeXt's supp-pdf.tex is missing and
-% support of MPS files is not available (Markus Kohm = MK, HO).
-% 2006/06/06 v0.03r
-% * \nopagecolor/\no@page@color added (HO).
-% 2006/07/16 v0.03s (HO)
-% * LPPL 1.3c.
-% * A little usage.
-% * Test for \MessageBreak changed (comp.text.tex,
-% message id: <44baca88$0$10529$9b4e6d93@newsread4.arcor-online.net>).
-% 2006/08/14 v0.03t (HO)
-% * Extensions added: .jpeg, .JPG, .JPEG, .PNG, .PDF
-% No variants for .tif, because TIFF support is no longer available.
-% No need for uppercase variant of .mps.
-% 2007/01/01 v0.04a (HO)
-% * Support of color stack, introduced in pdfTeX 1.40.0.
-% * Support of transform matrix commands of pdfTeX 1.40.0.
-% * The argument for option `page' can be a register.
-% 2007/01/02 v0.04b (HO)
-% * Internal change: Switching of color stacks is easier by using
-% \@pdfcolorstack for the stack number. Thus this command
-% should be redefined, if someone wants to use another color stack
-% (e.g. for footnotes). \main@pdfcolorstack should not be changed
-% for this purpose.
-% 2007/01/06 v0.04c (HO)
-% * Support for JBIG2 added (pdfTeX 1.40.0).
-% 2007/01/08 v0.04d (HO)
-% * Bug fix: .mps forgotten for extension list if pdfTeX >= 1.40.0
-% * .jbig2 and .jb2 are not listed in the extension list
-% if \pdfminorversion < 4. Thus \pdfminorversion should have
-% the correct value, if pdftex.def is loaded.
-% 2007/03/15 v0.04e (HO)
-% * Missing comma in \Gin@extensions added (found by Reinhard Kotucha).
-% 2007/04/06 v0.04f (HO)
-% * Fix for \pagecolor, text before page color can lead to an invalid
-% page stream. Therefore "page" is now used instead of "direct"
-% as modifier for \pdfliteral.
-% * Boolean option `resetcolor' added (pdfTeX >= 0.12n).
-% The current color is used for PDF or MPS images, unless
-% the images contain their own color settings.
-% If option `resetcolor' is set to `true', then the current color
-% is reset to \normalcolor during image inclusion.
-% 2007/04/17 v0.04g (HO)
-% * Small improvement of robustness of \pagecolor
-% and using e-TeX if available.
-% 2007/06/12 v0.04h (HO)
-% * Fix for \pagecolor: v0.04f uses keyword `page' for \pdfliteral,
-% but this keyword is not available before pdfTeX 1.30.0.
-% 2007/12/04 v0.04i (HO)
-% * Fatal error is avoided if image file does not exists.
-% 2007/12/06 v0.04j (HO)
-% * Option xmpfile added for adding metadata (experimental).
-% 2008/07/16 v0.04k (HO)
-% * \LoadMetaPostSpecialExtensions
-% loads additional support for MetaPost images (transparency)
-% by loading supp-mpe.tex and supp-mis.tex
-% (method posted in comp.text.tex by Jeremy Lea).
-% As side effect MetaPost images are put in separate objects
-% and are not inlined in the page stream.
-% Status: experimental.
-% 2008/09/08 v0.04l (HO)
-% * Adds an error message, if pdfTeX is called in DVI mode.
-% * Aborts loading of the package with an error message,
-% if pdfTeX is missing.
-% 2009/08/25 v0.04m (HO)
-% * Catcodes are preserved and initialized for loading of
-% pdftex.def and ConTeXt's support files.
-% * ConTeXt's support files have now the extension `.mkii' instead
-% of `.tex'.
-% 2010/02/14 v0.04n (HO)
-% * \GPT@catcodes extended for xmlTeX (pdftex.def loads
-% supp-pdf.mkii at begin document where xmlTeX's catcodes
-% are already active).
-% 2010/03/11 v0.04o (HO)
-% * Ensure that \undefined is undefined during loading of
-% ConTeXt files.
-% 2010/03/12 v0.04p (HO)
-% * \undefined is also undefined during conversion of MPS.
-% 2010/04/14 v0.04q (HO)
-% * Optimizations for rotating and scaling:
-% * remove unnecessary identity transformations
-% * numbers are normalized
-% 2010/04/15 v0.04r (HO)
-% * Fix for scale values without integer part.
-% 2010/09/09 v0.05a (HO)
-% * Option `pagebox' added for specifying the pdf page box
-% of the included image. Values are `mediabox', `cropbox',
-% `bleedbox', `trimbox' and `artbox'. Default is `cropbox'. (MS/HO)
-% * Option `interpolate' added for bitmaps, see PDF specification.
-% Values are `true' or `false', default is `false'.
-% * Option `decodearray' added for bitmaps, see PDF specification,
-% key /Decode of image dictionaries. The value for option
-% `decodearray' is the value for /Decode without `[' and ']'.
-% * Option `maskarray' added for bitmaps, see PDF specification,
-% key /Mask of image dictionaries with array as value.
-% The value of `maskarray' is the array value for /Mask
-% without `[' and ']'.
-% * Option `intent' added for the rendering intent of bitmap
-% images, see PDF specification, key /Intent of image
-% dictionaries. The value is a name without a leading slash,
-% the standard names of the PDF specification:
-% `AbsoluteColorimetric', `RelativeColorimetric',
-% `Saturation', `Perceptual'.
-% * Options `ocobjnum' and `ocobjref' are hooks for those who wants
-% to work with optional content. The options can be used for both
-% bitmap and PDF images and are unsupported for MPS.
-% The optional content dictionary is given by an external
-% object. Option `ocobjnum' expects the number of that object
-% (e.g. \pdflastobj). It's a positive integer (greater than zero).
-% Option `ocobjref' takes the full object reference
-% (positive integer, followed by ` 0 R' in case of pdfTeX).
-% Other drivers might support `ocobjref' as well, in case of
-% PostScript/pdfmark drivers, the object is usually referenced by
-% a name in curly braces.
-% * Tiff support removed for driver versions between 1.10a and 1.30.
-% 2010/09/14 v0.05b (HO)
-% * Fix, \pagecolor got broken accidentally (in v0.05a).
-% 2010/11/26 v0.05c (HO)
-% * \stockwidth and \stockheight of class `memoir' respected.
-% 2011/01/28 v0.05d (HO)
-% * Patching trig.sty is improved by doing it earlier in some
-% cases, e.g. if one of class `memoir', package `scrlfile' or
-% package `filehook' is loaded.
-% 2011/04/21 v0.06a (HO)
-% * The use info on the screen goes with an information
-% entry in the .log file that also tells the requested
-% width (feature request of Axel Berger).
-% * Use of packages `infwarerr' and `ltxcmds'.
-% 2011/04/25 v0.06b (HO)
-% * Fix in \GPT@NormalizeNumber.
-% * Date fixed in \ProvidesFile.
-% 2011/05/18 v0.06c (HO)
-% * The ConTeXt support files `supp-pdf.*' and `supp-mpe.*' do
-% not prevent reloading. Therefore `pdftex.def' only tries to load
-% them if \convertMPtoPDF and \assignMPStransparency are not
-% available. This fixes a compatibilty issue with class `combine'.
-% 2011/05/27 v0.06d (HO)
-% * Fix for v0.06a, package `ltxcmds' was not loaded in plain TeX.
-% 2016/01/23 v0.6e (DPC)
-% * Move EPS handler here from graphics.cfg
-% 2016/06/04 v0.6f (DPC)
-% * support graphcs/color option (no)setpagesize
-% 2016/06/15 v0.6g (DPC)
-% * typo
-% 2016/06/17 v0.6h (DPC)
-% * guards for contributed packages and plain TeX
-% 2016/07/10 v0.6j (DPC)
-% * don't set page size for non standard \mag
-% 2017/01/12 v0.6k (DPC)
-% * graphics options as viewport for graphics/4499
-%
-
-
-% Prefix of internal commands for this file `pdftex.def':
-% \GPT@ (Graphics bundle PdfTex driver)
-
-\expandafter\edef\csname GPT@AtEnd\endcsname{%
- \expandafter\noexpand\csname GPT@restore@\endcsname
- \catcode35 \the\catcode35\relax % #
- \catcode64 \the\catcode64\relax % @
- \noexpand\endinput
-}
-\catcode35 6 % #
-\catcode64 11 % @
-\def\GPT@catcodes#1{%
- \expandafter\edef\csname GPT@restore@#1\endcsname{%
- \let\noexpand\undefined
- \expandafter\noexpand\csname GPTorg@#1@undefined\endcsname
- \let\expandafter\noexpand\csname GPTorg@#1@undefined\endcsname
- \noexpand\@undefined
- \endlinechar \the\endlinechar
- \catcode9 \the\catcode9 % tab
- \catcode13 \the\catcode13 % ^^M
- \catcode32 \the\catcode32 % space
- \catcode33 \the\catcode33 % !
- \catcode34 \the\catcode34 % "
- \catcode35 \the\catcode35 % #
- \catcode36 \the\catcode36 % $
- \catcode37 \the\catcode37 % %
- \catcode38 \the\catcode38 % &
- \catcode39 \the\catcode39 % '
- \catcode40 \the\catcode40 % (
- \catcode41 \the\catcode41 % )
- \catcode42 \the\catcode42 % *
- \catcode43 \the\catcode43 % +
- \catcode44 \the\catcode44 % ,
- \catcode45 \the\catcode45 % -
- \catcode46 \the\catcode46 % .
- \catcode47 \the\catcode47 % /
- \catcode58 \the\catcode58 % :
- \catcode59 \the\catcode59 % ;
- \catcode60 \the\catcode60 % <
- \catcode61 \the\catcode61 % =
- \catcode62 \the\catcode62 % >
- \catcode63 \the\catcode63 % ?
- \catcode64 \the\catcode64 % @
- \catcode91 \the\catcode91 % [
- \catcode92 \the\catcode92 % \
- \catcode93 \the\catcode93 % ]
- \catcode94 \the\catcode94 % ^
- \catcode95 \the\catcode95 % _
- \catcode96 \the\catcode96 % `
- \catcode123 \the\catcode123 % {
- \catcode124 \the\catcode124 % |
- \catcode125 \the\catcode125 % }
- \catcode126 \the\catcode126 % ~
- }%
- \endlinechar 13 %
- \catcode9 10 % tab
- \catcode13 5 % ^^M (end of line)
- \catcode64 11 %
- \catcode61 12 % =
- \catcode32 10 % space
- \catcode33 12 % !
- \catcode34 12 % "
- \catcode35 6 % #
- \catcode36 3 % $
- \catcode37 14 % %
- \catcode38 4 % &
- \catcode39 12 % '
- \catcode40 12 % (
- \catcode41 12 % )
- \catcode42 12 % *
- \catcode43 12 % +
- \catcode44 12 % ,
- \catcode45 12 % -
- \catcode46 12 % .
- \catcode47 12 % /
- \catcode58 12 % :
- \catcode59 12 % ;
- \catcode60 12 % <
- \catcode61 12 % =
- \catcode62 12 % >
- \catcode63 12 % ?
- \catcode64 11 % @
- \catcode91 12 % [
- \catcode92 0 % \
- \catcode93 12 % ]
- \catcode94 7 % ^
- \catcode95 8 % _
- \catcode96 12 % `
- \catcode123 1 % {
- \catcode124 12 % |
- \catcode125 2 % }
- \catcode126 13 % ~
- \expandafter\let\csname GPTorg@#1@undefined\endcsname\undefined
- \let\undefined\@undefined
-}
-\GPT@catcodes{}
-
-% 1.10a: .tif support was dropped
-% 1.10a: keywords mediabox|cropbox|... for \pdfximage
-% 1.30.0: keyword `page' for \pdfliteral added.
-% 1.40.0: JBIG2 support added in pdfTeX 1.40.0
-
-\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
- \ifnum\pdftexversion<130 %
- \def\driver@release{8}%
- \else
- \ifnum\pdftexversion<140 %
- \def\driver@release{9}%
- \else
- \def\driver@release{10}%
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
-\fi
-
-\begingroup\expandafter\expandafter\expandafter\endgroup
-\expandafter\ifx\csname RequirePackage\endcsname\relax
- \input infwarerr.sty\relax
- \input ltxcmds.sty\relax
-\else
- \RequirePackage{infwarerr}[2007/09/09]%
- \RequirePackage{ltxcmds}[2010/12/07]%
-\fi
-
-\def\GPT@error{\@PackageError{pdftex.def}}%
-\def\GPT@warn{\@PackageWarning{pdftex.def}}%
-\ifx\Gin@log\@undefined
- \def\Gin@log{\message}%
-\fi
-\def\GPT@info{\@PackageInfoNoLine{pdftex.def}}%
-
-% Are we running under PDFTeX?
-\ltx@IfUndefined{pdftexversion}{%
- \GPT@error{%
- Option `pdftex' requires pdfTeX,\MessageBreak
- but pdfTeX features are missing.\MessageBreak
- Loading of this driver file is aborted%
- }\@ehc
- \expandafter\GPT@AtEnd
-}{}
-
-% Ensure PDF mode
-\ifnum\pdfoutput<1 %
- \GPT@error{%
- PDF mode expected, but DVI mode detected!\MessageBreak
- If you are using `latex', then call `pdflatex'.\MessageBreak
- Otherwise check and correct the driver options.\MessageBreak
- Error recovery by switching to PDF mode%
- }\@ehc
- \pdfoutput=1 %
-\fi
-\@ifundefined{ifGin@setpagesize}
- {\expandafter\let\csname ifGin@setpagesize\expandafter\endcsname
- \csname iftrue\endcsname}
- {}
-\ifGin@setpagesize
-\ifx\paperwidth\@undefined\else
-\AtBeginDocument{%
-% If a package has changed \mag, assume it knows what it is doing
-% and leave page size alone
-\ifnum\mag=\@m
- \ltx@IfUndefined{stockwidth}{%
- \ltx@IfUndefined{paperwidth}{%
- }{%
- \ifdim\paperwidth>0pt\relax
- \ifdim\paperheight>0pt\relax
- \pdfpagewidth=\paperwidth
- \pdfpageheight=\paperheight
- \fi
- \fi
- }%
-}{%
- \ifdim\stockwidth>0pt\relax
- \ifdim\stockheight>0pt\relax
- \pdfpagewidth=\stockwidth
- \pdfpageheight=\stockheight
- \fi
- \fi
-}%
-\fi
-}
-\fi
-\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.
-%
+\ProvidesFile{pdftex.def}
+ [2017/06/01 v1.0a Graphics/color driver for pdftex]
\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
-}
+ \fi}
+\def\color@gray#1#2{%
+ \c@lor@arg{#2}%
+ \edef#1{#2 g #2 G}%
+ }
\def\color@cmyk#1#2{\c@lor@@cmyk#2\@@#1}
\def\c@lor@@cmyk#1,#2,#3,#4\@@#5{%
\c@lor@arg{#4}%
@@ -505,78 +36,40 @@
\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%
-}
+ \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@}%
-}
-
+ \edef#2{\strip@pt\dimen@}}
\def\color@named#1#2{\c@lor@@named#2,,\@@#1}
\def\c@lor@@named#1,#2,#3\@@#4{%
- \ltx@IfUndefined{col@#1}{%
- \PackageError{color}{Undefined color `#1'}\@ehd
- }{%
- \edef#4{\csname col@#1\endcsname}%
- }%
-}
-
-\ltx@IfUndefined{pdfcolorstack}{%
- \def\set@color{%
- \pdfliteral{\current@color}%
- \aftergroup\reset@color
- }%
- \def\reset@color{%
- \pdfliteral{\current@color}%
- }%
-}{%
- \chardef\main@pdfcolorstack=0 %
- \ltx@ifundefined{@pdfcolorstack}{%
- \def\@pdfcolorstack{\main@pdfcolorstack}%
- }{}%
- \def\set@color{%
- \pdfcolorstack\@pdfcolorstack push{\current@color}%
- \aftergroup\reset@color
- }%
- \def\reset@color{%
- \pdfcolorstack\@pdfcolorstack pop\relax
- }%
-}
-\def\define@color@named#1#2{%
- \expandafter\edef\csname col@#1\endcsname{#2}%
-}
+ \@ifundefined{col@#1}%
+ {\PackageError{color}{Undefined color `#1'}\@ehd}%
+ {\edef#4{\csname col@#1\endcsname}}%
+ }
+\chardef\main@pdfcolorstack=0 %
+\@ifundefined{@pdfcolorstack}
+ {\def\@pdfcolorstack{\main@pdfcolorstack}}{}
\def\current@color{0 g 0 G}
-
-% v0.02t: support for \pagecolor
-% fixed in v0.02p by using a box register, see
-% http://tug.org/pipermail/pdftex/2005-August/005916.html
-%
-% v0.03r: \nopagecolor/\no@page@color added.
-\ltx@newglobalif\ifGPT@pagecolor
-\ltx@ifundefined{nopagecolor}{%
- \def\nopagecolor{\no@page@color}%
-}{}
-\def\no@page@color{%
- \GPT@pagecolorfalse
-}
+\def\set@color{%
+ \pdfcolorstack\@pdfcolorstack push{\current@color}%
+ \aftergroup\reset@color}
+\def\reset@color{\pdfcolorstack\@pdfcolorstack pop\relax}
+\newif\ifGPT@pagecolor
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname currentgrouplevel\endcsname\relax
\catcode`X=9 % ignore
@@ -588,11 +81,11 @@
\def\set@page@color{%
\GPT@pagecolortrue
\global\let\current@page@color\current@color
- \ltx@ifundefined{GPT@outputbox}{%
+ \ifundefined{GPT@outputbox}{%
% \newbox is outer in plain
\csname newbox\endcsname\GPT@outputbox
}{}%
- \ltx@ifundefined{GPTorg@shipout}{%
+ \@ifundefined{GPTorg@shipout}{%
\global\let\GPTorg@shipout\shipout
\gdef\shipout{%
X % ensure \GPT@outputbox is really void
@@ -613,7 +106,7 @@ E \else
}%
\gdef\GPT@@shipout{%
\ifvoid\GPT@outputbox\relax
- \GPT@warn{Ignoring void output box}%
+ \PackageInfo{pdftex.def}{Ignoring void output box}%
\else
\setbox\GPT@outputbox=\vbox{%
\GPT@pageliteral
@@ -624,12 +117,12 @@ E \else
}%
\gdef\GPT@pageliteral{%
\ifGPT@pagecolor
- \pdfliteral\ifnum\driver@release>8 page\else direct\fi{%
+ \pdfliteral page{%
q % gsave
- \current@page@color\ltx@space
+ \current@page@color\space
n % newpath
- 0 0 \strip@pt\pdfpagewidth\ltx@space
- \strip@pt\pdfpageheight\ltx@space re % rectangle
+ 0 0 \strip@pt\pdfpagewidth\space
+ \strip@pt\pdfpageheight\space re % rectangle
% there is no need to convert to bp
f % fill
Q% grestore
@@ -640,726 +133,144 @@ E \else
}
\catcode`\X=11 %
\catcode`\E=11 %
-
-% Need the `colorfix' modifications as no internal colour stack
-% is maintained
-%<*colorfix>
-\begingroup\expandafter\expandafter\expandafter\endgroup
-\expandafter\ifx\csname pdfcolorstack\endcsname\relax
- \AtBeginDocument{%
- \begingroup\expandafter\expandafter\expandafter\endgroup
- \expandafter\ifx\csname color\endcsname\relax
- % Without color we don't need any fixes.
- \else
- \ltx@ifundefined{@ldc@l@r}{%
- \let\@ldc@l@r\color
- \def\color{%
- \ltx@IfUndefined{if@inlabel}{}{%
- \csname if@inlabel\expandafter\endcsname
- \expandafter\leavevmode\csname fi\endcsname
- }%
- \@ldc@l@r
- }%
- }{}%
- \ltx@ifundefined{@lduseb@x}{%
- \ltx@IfUndefined{usebox}{}{%
- \let\@lduseb@x\usebox
- \def\usebox#1{\@lduseb@x{#1}\reset@color}%
- }%
- }{}%
- \fi
- }%
-\fi
-%</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{%
- \GPT@read\Gread@@png
-}
-\def\Gread@@png#1{%
- \setbox\@tempboxa\hbox{%
- \pdfimage\noexpand\noexpand\noexpand\ltx@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
-% * option resetcolor
-% * option xmpfile
-%
-% \GPT@page: page number of pdf image or \ltx@empty otherwise.
-\let\GPT@page\ltx@empty
-% \GPT@print: file name for alternate image or \ltx@empty otherwise.
-\let\GPT@print\ltx@empty
-\let\GPT@xmpfile\ltx@empty
-\let\GPT@pagebox\ltx@empty
-\let\GPT@pagebox@\ltx@empty
-\let\GPT@interpolate\ltx@empty
-\let\GPT@decodearray\ltx@empty
-\let\GPT@mask\ltx@empty
-\let\GPT@intent\ltx@empty
-\let\GPT@ocobjnum\ltx@empty
-\ltx@newif\ifGPT@ResetColor
-\let\GPT@ResetColorEnd\relax
-\def\GPT@ResetColorBegin{%
- \ifGPT@ResetColor
- \ifGPT@IsBitmap
- \else
- \begingroup
- \normalcolor
- \let\GPT@ResetColorEnd\endgroup
- \fi
- \fi
-}
-\begingroup\expandafter\expandafter\expandafter\endgroup
-\expandafter\ifx\csname pdfmatch\endcsname\relax
- \def\GPT@match#1#2#3#4{}%
- \def\GPT@pat@real/{}%
-\else
- \def\GPT@match#1#2{%
- \ifnum\pdfmatch{#2}{#1}=1 %
- \expandafter\ltx@firstoftwo
- \else
- \expandafter\ltx@secondoftwo
- \fi
- }%
- \def\GPT@pat@real/{%
- (%
- 0(\ltx@backslashchar.[0-9]*)?|%
- \ltx@backslashchar.[0-9]+|%
- 1(\ltx@backslashchar.0*)?%
- )%
- }%
-\fi
-\begingroup
- \toks@{%
- \define@key{Gin}{resetcolor}[true]{%
- \csname GPT@ResetColor%
- \expandafter\ifx\csname iftrue\expandafter\endcsname
- \csname if#1\endcsname
- true%
- \else
- false%
- \fi
- \endcsname
- }%
- \ifnum\driver@release>5 %
- \define@key{Gin}{page}{%
- \def\GPT@page{#1}%
- \ifx\GPT@page\ltx@empty
- \else
- \edef\GPT@page{\number\GPT@page}%
- \fi
- }%
- \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
- \ifnum\driver@release>7 %
- % option pagebox
- \define@key{Gin}{pagebox}{%
- \expandafter\let\expandafter\GPT@pagebox
- \csname GPT@pagebox@#1\endcsname
- \ifx\GPT@pagebox\relax
- \let\GPT@pagebox\ltx@empty
- \GPT@warn{%
- Unknown value `#1' for `pagebox'.\MessageBreak
- Supported values:\MessageBreak
- mediabox, cropbox, bleedbox, trimbox, artbox%
- }%
- \fi
- }%
- \def\GPT@pagebox@mediabox{mediabox}%
- \let\GPT@pagebox@cropbox\ltx@empty
- \def\GPT@pagebox@bleedbox{bleedbox}%
- \def\GPT@pagebox@trimbox{trimbox}%
- \def\GPT@pagebox@artbox{artbox}%
- % option interpolate
- \define@key{Gin}{interpolate}[true]{%
- \expandafter\let\expandafter\GPT@interpolate
- \csname GPT@interpolate@#1\endcsname
- \ifx\GPT@interpolate\relax
- \let\GPT@interpolate\ltx@empty
- \GPT@warn{%
- Unknown value `#1' for `interpolate'.\MessageBreak
- Supported values: true, false%
- }%
- \fi
- }%
- \let\GPT@interpolate@false\ltx@empty
- \def\GPT@interpolate@true{1}% non-empty, value does not matter
- % option decodearray
- \define@key{Gin}{decodearray}{%
- \def\GPT@decodearray{#1}%
- \ifx\GPT@decodearray\ltx@empty
- \else
- \GPT@match\GPT@decodearray{%
- ((^| )\GPT@pat@real/ \GPT@pat@real/)+$%
- }{}{%
- \GPT@warn{%
- Invalid value (\GPT@decodearray)\MessageBreak
- for `decodearray' is ignored%
- }%
- \let\GPT@decodearray\ltx@empty
- }%
- \fi
- }%
- % option maskarray
- \define@key{Gin}{maskarray}{%
- \def\GPT@mask{#1}%
- \ifx\GPT@mask\ltx@empty
- \else
- \GPT@match\GPT@mask{%
- ((^| )[0-9]+ [0-9]+)+$%
- }{}{%
- \GPT@warn{%
- Invalid value (\GPT@mask)\MessageBreak
- for `maskarray' is ignored%
- }%
- \let\GPT@mask\ltx@empty
- }%
- \ifx\GPT@mask\ltx@empty
- \else
- \edef\GPT@mask{[\GPT@mask]}%
- \fi
- \fi
- }%
- % option intent
- \define@key{Gin}{intent}{%
- \def\GPT@intent{#1}%
- \ifx\GPT@intent\ltx@empty
- \else
- \GPT@match\GPT@intent{%
- ^((Absolute|Relative)Colorimetric|Saturation|Perceptual)$%
- }{}{%
- \GPT@match\GPT@intent{%
- ^[A-Za-z0-9_]+$%
- }{%
- \GPT@warn{%
- Rendering intent `\GPT@intent'\MessageBreak
- is not a standard name of the PDF specification%
- }%
- }{%
- \GPT@warn{%
- Ignoring intent `\GPT@intent'\MessageBreak
- with unusual characters%
- }%
- \let\GPT@intent\ltx@empty
- }%
- }%
- \fi
- }%
- % option ocobjnum
- \define@key{Gin}{ocobjnum}{%
- \edef\GPT@ocobjnum{#1}%
- \ifx\GPT@ocobjnum\ltx@empty
- \else
- \edef\GPT@ocobjnum{\number\GPT@ocobjnum}%
- \GPT@match\GPT@ocobjnum{^[1-9]+[0-9]*$}{%
- }{%
- \GPT@warn{%
- Invalid value (\GPT@ocobjnum)\MessageBreak
- for `ocobjnum' is ignored%
- }%
- \let\GPT@ocobjnum\ltx@empty
- }%
- \ifx\GPT@ocobjnum\ltx@empty
- \else
- \edef\GPT@ocobjnum{\number\GPT@ocobjnum}%
- \fi
- \fi
- }%
- % option ocobjref
- \define@key{Gin}{ocobjref}{%
- \edef\GPT@ocobjnum{#1}%
- \ifx\GPT@ocobjnum\ltx@empty
- \else
- \edef\GPT@ocobjnum{%
- \expandafter\strip@prefix\meaning\GPT@ocobjnum
- }%
- \GPT@match\GPT@ocobjnum{^[1-9]+[0-9]* 0 R$}{%
- }{%
- \GPT@warn{%
- Invalid value (\GPT@ocobjnum)\MessageBreak
- for `ocobjref' is ignored%
- }%
- \let\GPT@ocobjnum\ltx@empty
- }%
- \ifx\GPT@ocobjnum\ltx@empty
- \else
- \begingroup
- \def\GPT@temp##1 ##2\@nil{\endgroup
- \def\GPT@ocobjnum{##1}%
- }%
- \expandafter\GPT@temp\GPT@ocobjnum\@nil
- \edef\GPT@ocobjnum{\number\GPT@ocobjnum}%
- \fi
- \fi
- }%
- \else
- \def\GPT@temp#1{%
- \define@key{Gin}{#1}{%
- \GPT@warn{%
- pdfTeX >= 1.10a required for option `#1'%
- }%
- }%
- }%
- \GPT@temp{pagebox}%
- \GPT@temp{interpolate}%
- \GPT@temp{decodearray}%
- \GPT@temp{maskarray}%
- \GPT@temp{intent}%
- \GPT@temp{ocobjnum}%
- \GPT@temp{ocobjref}%
- \fi
- \define@key{Gin}{quiet}[]{%
- \let\Gin@log\ltx@gobble
- }%
- \define@key{Gin}{resolution}{%
- \pdfimageresolution#1\relax
- }%
- \define@key{Gin}{xmpfile}[\Gin@base.xmp]{%
- \def\GPT@xmpfile{#1}%
- }%
- }%
- \ltx@IfUndefined{define@key}{%
- \edef\x{\endgroup
- \noexpand\AtBeginDocument{%
- \noexpand\ltx@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\define@color@named#1#2{%
+ \expandafter\edef\csname col@#1\endcsname{#2}}
+\def\no@page@color{%
+ \GPT@pagecolorfalse
}
-\def\GPT@fix{%
- \begingroup\expandafter\expandafter\expandafter\endgroup
- \expandafter\ifx\csname define@key\endcsname\relax
+\def\Gread@pdftex#1{%
+ \expandafter\ifx\expandafter\relax\pdffilesize{#1}\relax
+ \expandafter\@secondoftwo
\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}}%
+ \expandafter\@firstoftwo
\fi
-}
-\AtBeginDocument{\GPT@fix}
-
-%
-% Check for image file existence
-%
-\begingroup\expandafter\expandafter\expandafter\endgroup
-\expandafter\ifx\csname pdffilesize\endcsname\relax
- \ifnum\driver@release>9 %
- \RequirePackage{pdftexcmds}\relax
- \fi
- \begingroup\expandafter\expandafter\expandafter\endgroup
- \expandafter\ifx\csname pdf@filesize\endcsname\relax
- \def\GPT@IfFileExists#1{%
- \IfFileExists{#1}%
- }%
- \else
- \def\GPT@IfFileExists#1{%
- \expandafter\expandafter\expandafter\ifx
- \expandafter\expandafter\expandafter\relax\pdf@filesize{#1}\relax
- \expandafter\ltx@secondoftwo
+ {\Gread@@pdftex{#1}}%
+ {%
+ \def\Gin@llx{0}%
+ \let\Gin@lly\Gin@llx
+ \def\Gin@urx{72}%
+ \let\Gin@ury\Gin@urx
+ \ifGin@draft
\else
- \expandafter\ltx@firstoftwo
+ \PackageError{pdftex.def}{File `#1' not found: using draft setting}%
+ \@ehc
+ \Gin@drafttrue
\fi
}%
- \fi
-\else
- \def\GPT@IfFileExists#1{%
- \expandafter\ifx\expandafter\relax\pdffilesize{#1}\relax
- \expandafter\ltx@secondoftwo
- \else
- \expandafter\ltx@firstoftwo
- \fi
- }%
-\fi
-
-%
-% Wrapper for \Gread@... that checks image existence first.
-%
-\def\GPT@read#1#2{%
- \GPT@IfFileExists{#2}%
- {%
- #1{#2}%
- }{%
- \def\Gin@llx{0}%
- \let\Gin@lly\Gin@llx
- \def\Gin@urx{72}%
- \let\Gin@ury\Gin@urx
- \ifGin@draft
- \else
- \GPT@error{File `#2' not found}{%
- Using draft setting for this image.\MessageBreak
- \@ehc
- }%
- \Gin@drafttrue
- \fi
- }%
-}
-
-%
-% 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.
-%
-\ltx@ifundefined{Gread@gobject}{%
- \csname newcount\endcsname\Gread@gobject
-}{}
-\def\GPT@ReusedName#1{%
- \ifx\GPT@print\ltx@empty
- #1%
- \else
- \GPT@print
- \fi
-}
-\def\GPT@objref{ 0 R}
-\def\Gread@pdftex{%
- \GPT@read\Gread@@pdftex
}
+\let\Gin@attr@hash\@empty
+\@ifundefined{Gin@log}
+ {\let\Gin@log\wlog}
+ {}
+\@ifundefined{Gin@page}
+ {\let\Gin@page\@empty}
+ {}
+\@ifundefined{Gin@pagebox}
+ {\def\Gin@page{cropbox}}
+ {}
+\@ifundefined{Gin@interpolate}
+ {\csname newif\endcsname\ifGin@interpolate}
+ {}
\def\Gread@@pdftex#1{%
- % Ensure that option `print' works only on bitmap images.
- \let\GPT@Attr\ltx@empty
- \let\GPT@AttrShort\ltx@empty
- \ifnum\driver@release>7 %
- \ifx\GPT@ocobjnum\ltx@empty
+ \edef\Gin@attr@hash{%
+ \ifx\Gin@pagebox\@empty
\else
- \edef\GPT@AttrShort{\GPT@AttrShort
- :OC\GPT@ocobjnum
- }%
- \edef\GPT@Attr{\GPT@Attr
- /OC \GPT@ocobjnum\GPT@objref
- }%
+ :\Gin@pagebox
\fi
- \fi
- \ifGPT@IsBitmap
- \let\GPT@page\ltx@empty
- \let\GPT@pagebox\ltx@empty
- \ifnum\driver@release>7 %
- \ifx\GPT@xmpfile\ltx@empty
- \else
- \ltx@IfUndefined{GPT@XMP@\GPT@xmpfile}{%
- \GPT@IfFileExists{\GPT@xmpfile}{%
- \begingroup
- \pdfcompresslevel=0 %
- \immediate\pdfobj stream attr{%
- /Type/Metadata%
- /Subtype/XML%
- }file{\GPT@xmpfile}%
- \expandafter\xdef\csname GPT@XMP@\GPT@xmpfile\endcsname{%
- \the\pdflastobj
- }%
- \endgroup
- }{%
- \GPT@warn{Missing XMP file (\GPT@xmpfile)}%
- }%
- }{}%
- \ltx@IfUndefined{GPT@XMP@\GPT@xmpfile}{}{%
- \edef\GPT@Attr{\GPT@Attr
- /Metadata \@nameuse{GPT@XMP@\GPT@xmpfile}\GPT@objref
- }%
- \edef\GPT@AttrShort{\GPT@AttrShort
- :MD\@nameuse{GPT@XMP@\GPT@xmpfile}%
- }%
- }%
- \fi
- \ifx\GPT@interpolate\ltx@empty
- \else
- \edef\GPT@Attr{\GPT@Attr
- /Interpolate true%
- }%
- \edef\GPT@AttrShort{\GPT@AttrShort
- :I%
- }%
- \fi
- \ifx\GPT@decodearray\ltx@empty
- \else
- \edef\GPT@Attr{\GPT@Attr
- /Decode[\GPT@decodearray]%
- }%
- \edef\GPT@AttrShort{\GPT@AttrShort
- :D[\GPT@decodearray]%
- }%
- \fi
- \ifx\GPT@mask\ltx@empty
- \else
- \edef\GPT@Attr{\GPT@Attr
- /Mask\GPT@mask
- }%
- \edef\GPT@AttrShort{\GPT@AttrShort
- :M\GPT@mask
- }%
- \fi
- \ifx\GPT@intent\ltx@empty
- \else
- \edef\GPT@AttrShort{\GPT@AttrShort
- :RI\GPT@intent
- }%
- \expandafter\ifx\csname pdfescapename\endcsname\relax
- \expandafter\ifx\csname pdf@escapename\endcsname\relax
- \else
- \edef\GPT@intent{\pdf@escapename{\GPT@intent}}%
- \fi
- \else
- \edef\GPT@intent{\pdfescapename{\GPT@intent}}%
- \fi
- \edef\GPT@Attr{\GPT@Attr
- /Intent/\GPT@intent
- }%
- \fi
- \fi
- \else
- \let\GPT@interpolate\ltx@empty
- \let\GPT@decodearray\ltx@empty
- \let\GPT@mask\ltx@empty
- \let\GPT@intent\ltx@empty
- \ifx\GPT@page\ltx@empty
+ \ifx\Gin@page\@empty
\else
- \edef\GPT@AttrShort{\GPT@AttrShort
- :P\GPT@page
- }%
+ :P\Gin@page
\fi
- \ifx\GPT@pagebox\ltx@empty
- \else
- \edef\GPT@AttrShort{%
- \GPT@AttrShort
- :\expandafter\ltx@car\GPT@pagebox{}\@nil b%
- }%
+ \ifGin@interpolate
+ :I%
\fi
- \ifx\GPT@print\ltx@empty
- \else
- \GPT@warn{%
- Option `print' can only be used\MessageBreak
- for bitmap images%
- }%
- \let\GPT@print\ltx@empty
- \fi
- \fi
- % Check if print image exists.
- \ifx\GPT@print\ltx@empty
- \else
- \GPT@IfFileExists{\GPT@print}{%
- }{%
- \GPT@error{Print image `\GPT@print' not found}{%
- The print version of the image is ignored.\MessageBreak
- \@ehc
- }%
- \let\GPT@print\ltx@empty
- }%
- \fi
- % If option `print' is set, the screen image object
- % will contain an additional /Alternate entry
- % and will not be reused.
- \ifx\GPT@print\ltx@empty
- \else
- \expandafter\expandafter\expandafter\ltx@firstoftwo\expandafter\ltx@gobbletwo
- \fi
- \ltx@ifundefined{#1 image\GPT@AttrShort}{%
- \ifnum\driver@release>4 %
- \ifnum\driver@release>5 %
- \ifx\GPT@print\ltx@empty
- \ifx\GPT@Attr\ltx@empty
- \let\GPT@RuleAttr\ltx@empty
- \else
- \edef\GPT@RuleAttr{attr{\GPT@Attr}}%
- \fi
- \else
- \ltx@ifundefined{\GPT@print\ltx@space image\GPT@AttrShort}{%
- \immediate\pdfximage{\GPT@print}%
- \setbox\@tempboxa=\hbox{\pdfrefximage\pdflastximage}%
- \edef\GPT@PrintObj{\the\pdflastximage}%
- \expandafter\xdef\csname\GPT@print\ltx@space
- image\GPT@AttrShort\endcsname{%
- \pdfrefximage\GPT@PrintObj\relax
- }%
- \immediate\pdfobj{%
- [<<%
- /Image \GPT@PrintObj\GPT@objref
- /DefaultForPrinting true%
- >>]%
- }%
- \def\GPT@RuleAttr{%
- width\wd\@tempboxa height\ht\@tempboxa
- attr{%
- \GPT@Attr
- /Alternates \the\pdflastobj\GPT@objref
- }%
- }%
- }{%
- \edef\GPT@PrintObj{%
- \expandafter\expandafter\expandafter\ltx@gobble
- \csname\GPT@print\ltx@space image\GPT@AttrShort\endcsname
- }%
- \immediate\pdfobj{%
- [<<%
- /Image \GPT@PrintObj\GPT@objref
- /DefaultForPrinting true%
- >>]%
- }%
- \def\GPT@RuleAttr{%
- width \csname\GPT@print\ltx@space width\GPT@AttrShort\endcsname
- height \csname\GPT@print\ltx@space height\GPT@AttrShort\endcsname
- attr{%
- \GPT@Attr
- /Alternates \the\pdflastobj\GPT@objref
- }%
- }%
- }%
- \fi
- \pdfximage\GPT@RuleAttr
- \ifx\GPT@page\ltx@empty
- \else
- page \GPT@page
- \fi
- \GPT@pagebox
+ }%
+ \@ifundefined{#1 image\Gin@attr@hash}%
+ {%
+ \pdfximage
+ \ifGin@interpolate attr{/Interpolate true}\fi
+ \ifx\Gin@page\@empty\else page \Gin@page\fi
+ \Gin@pagebox
{#1}%
- \setbox\@tempboxa=\hbox{\pdfrefximage\pdflastximage}%
- \else
- \setbox\@tempboxa=\hbox{\pdfimage{#1}}%
- \fi
- \else
- \setbox\@tempboxa=\hbox{%
- \pdfimage\noexpand\noexpand\noexpand\ltx@empty#1\relax
+ \setbox\@tempboxa=\hbox{\pdfrefximage\pdflastximage}%
+ \def\Gin@llx{0}\let\Gin@lly\Gin@llx
+ \Gin@defaultbp\Gin@urx{\wd\@tempboxa}%
+ \Gin@defaultbp\Gin@ury{\ht\@tempboxa}%
+ \expandafter\xdef\csname #1 image\Gin@attr@hash\endcsname
+ {\pdfrefximage\the\pdflastximage}%
+ \expandafter\xdef\csname #1 height\Gin@attr@hash\endcsname
+ {\the\ht\@tempboxa}%
+ \expandafter\xdef\csname #1 width\Gin@attr@hash\endcsname
+ {\the\wd\@tempboxa}%
+ \Gin@log{%
+ <#1, %
+ id=\the\pdflastximage, %
+ \ifx\Gin@page\@empty\else page=\Gin@page , \fi
+ \ifx\Gin@pagebox\@empty\else pagebox=\Gin@pagebox , \fi
+ \ifGin@interpolate interpolate=true, \fi
+ \the\wd\@tempboxa\space x \the\ht\@tempboxa
+ >%
}%
- \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@AttrShort\endcsname{%
- \the\wd\@tempboxa
- }%
- \expandafter\xdef\csname\GPT@ReusedName{#1} height\GPT@AttrShort\endcsname{%
- \the\ht\@tempboxa
+ }{%
+ \def\Gin@llx{0}\let\Gin@lly\Gin@llx
+ \Gin@defaultbp\Gin@urx{\csname #1 width\Gin@attr@hash\endcsname}%
+ \Gin@defaultbp\Gin@ury{\csname #1 height\Gin@attr@hash\endcsname}%
}%
- \ifnum\driver@release>5 %
- \expandafter\xdef\csname #1 image\GPT@AttrShort
- \ifx\GPT@print\ltx@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\ltx@empty\else , page=\GPT@page\fi
- \ifx\GPT@pagebox\ltx@empty\else, pagebox=\GPT@pagebox\fi
- \ifx\GPT@interpolate\ltx@empty\else, interpolate=true\fi
- \ifx\GPT@print\ltx@empty
- \else
- , print=\GPT@print, id=\GPT@PrintObj
- \fi
- \else
- \the\Gread@gobject
- \fi
- , \the\wd\@tempboxa\ltx@space x \the\ht\@tempboxa
- >%
- }%
- }{%
- \def\Gin@llx{0}\let\Gin@lly\Gin@llx
- \Gin@defaultbp\Gin@urx{\csname#1 width\GPT@AttrShort\endcsname}%
- \Gin@defaultbp\Gin@ury{\csname#1 height\GPT@AttrShort\endcsname}%
- }%
}
-\def\Ginclude@pdftex#1{%
- % basic faking of viewport settings so graphic-s- interface
- % does something sensible
- \ifx\GPT@AttrShort\@undefined
- \GPT@info{Interpreting graphics options as viewport}%
- \let\GPT@AttrShort\@empty
- \let\Gin@vllx\Gin@llx
- \let\Gin@vlly\Gin@lly
- \let\Gin@vurx\Gin@urx
- \let\Gin@vury\Gin@ury
- \fi
+\def\Gread@png#1{%
+ \let\Gin@page\@empty
+ \let\Gin@pagebox\@empty
+ \Gread@pdftex{#1}%
+}
+\let\Gread@jpg\Gread@png
+\expandafter\let\csname Gread@jbig2\endcsname\Gread@png
+\def\Gread@pdf#1{%
+ \Gin@interpolatefalse
+ \Gread@pdftex{#1}%
+}
+\let\Gread@mps\Gread@eps
+\def\GPT@setup@scale{%
\def\@tempa{!}%
\ifx\Gin@scaley\@tempa
\let\Gin@scaley\Gin@scalex
\else
\ifx\Gin@scalex\@tempa\let\Gin@scalex\Gin@scaley\fi
\fi
+}
+\def\Ginclude@pdftex#1{%
+ \GPT@setup@scale
\Gin@log{%
<use #1%
- \ifx\GPT@page\ltx@empty\else, page \GPT@page\fi
+ \ifx\Gin@page\@empty\else, page \Gin@page\fi
>%
}%
- \GPT@info{%
- #1\ifx\GPT@page\ltx@empty\else, page\GPT@page\fi
- \ltx@space used\on@line.\MessageBreak
+ \PackageInfo{pdftex.def}{%
+ #1 \ifx\Gin@page\@empty\else, page\Gin@page\fi
+ \space used\ifx\on@line\@undefined\else\on@line\fi.}%
+ \PackageInfo{pdftex.def}{%
Requested size: %
- \the\Gin@req@width\ltx@space x \the\Gin@req@height
+ \the\Gin@req@width\space x \the\Gin@req@height
}%
+ \Ginclude@@pdftex{\@nameuse{#1 image\Gin@attr@hash}}%
+}
+\def\Ginclude@mps#1{%
+ \GPT@setup@scale
+ \Ginclude@@pdftex{\convertMPtoPDF{#1}{1}{1}}%
+}
+\def\Ginclude@@pdftex#1{%
\hbox{%
- \GPT@ResetColorBegin
\Gscale@box{\Gin@scalex}[\Gin@scaley]{%
- \ltx@IfUndefined{Gin@vllx}{%
+ \@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}%
+ \if!\Gin@vllx\Gin@vlly\Gin@vurx\Gin@vury!%
\else
- \if!\Gin@vllx\Gin@vlly\Gin@vurx\Gin@vury!%
- \else
- \let\GPT@clipend\GPT@DoClipEnd
- \setbox\@tempboxa\hbox\bgroup
- \fi
+ \let\GPT@clipend\GPT@DoClipEnd
+ \setbox\@tempboxa\hbox\bgroup
\fi
\fi
\ifGPT@viewport
@@ -1372,9 +283,7 @@ E \else
\hskip-\Gin@vllx bp\relax
\fi
\fi
- \csname#1 image\GPT@AttrShort
- \ifx\GPT@print\ltx@empty\else!\fi
- \endcsname
+ #1%
\ifGPT@viewport
\ifdim\Gin@vlly\p@=\z@
\else
@@ -1383,10 +292,9 @@ E \else
\GPT@clipend
\fi
}%
- \GPT@ResetColorEnd
}%
}
-\ltx@newif\ifGPT@viewport
+\newif\ifGPT@viewport
\GPT@viewporttrue
\let\GPT@clipend\relax
\def\GPT@DoClipEnd{%
@@ -1395,261 +303,59 @@ E \else
% \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
- \let\GPT@temp\ltx@empty
- \ifnum\driver@release>7 %
- \ifx\GPT@ocobjnum\ltx@empty
- \else
- \edef\GPT@temp{attr{/OC \GPT@ocobjnum\GPT@objref}}%
- \fi
- \fi
- \expandafter\pdfxform\GPT@temp\@tempboxa
+ \pdfxform\@tempboxa
\pdfrefxform\pdflastxform
}
-\ltx@newif\ifGPT@IsBitmap
-\def\Gread@pdfbitmap#1{%
- \GPT@IsBitmaptrue
- \Gread@pdftex{#1}%
- \GPT@IsBitmapfalse
-}
-
-\edef\Gread@MBox{/MediaBox}
-\def\Gread@pdf{%
- \GPT@read\Gread@@pdf
-}
-\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\\{% hash-ok
- \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\ltx@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{%
- \GPT@ResetColorBegin
- \Gscale@box{\Gin@scalex}[\Gin@scaley]{%
- \ltx@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
- \GPT@catcodes{mps}%
- \convertMPtoPDF{#1}{1}{1}%
- \GPT@restore@mps
- \ifGPT@viewport
- \ifdim\Gin@vlly\p@=\z@
- \else
- \egroup
- \fi
- \GPT@clipend
- \fi
- }%
- \GPT@ResetColorEnd
- }%
-}
-\def\Gread@mps{%
- \GPT@read\Gread@eps
-}
-\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
- \ifnum\driver@release>5 %
- \ifnum\driver@release<8 %
- \let\Gread@tif\Gread@pdfbitmap
- \let\Ginclude@tif\Ginclude@pdftex
- \else
- \ifnum\driver@release>9 %
- \expandafter\let\csname Gread@jbig2\endcsname\Gread@pdfbitmap
- \expandafter\let\csname Ginclude@jbig2\endcsname\Ginclude@pdftex
- \fi
- \fi
- \fi
-\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{%
- \GPT@catcodes{pdf}%
- \convertPDFtoPDF{#1}{\Gin@scalex}{\Gin@scaley} {0bp} {0bp}%
- {\Gin@req@width}{\Gin@req@height}%
- \GPT@restore@pdf
- }%
- }%
-\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,.jpeg,.PNG,.PDF,.JPG,.JPEG}%
- \@namedef{Gin@rule@.jpg}#1{{jpg}{.jpg}{#1}}%
- \@namedef{Gin@rule@.jpeg}#1{{jpg}{.jpeg}{#1}}%
- \@namedef{Gin@rule@.JPG}#1{{jpg}{.JPG}{#1}}%
- \@namedef{Gin@rule@.JPEG}#1{{jpg}{.JPEG}{#1}}%
- \ifnum\driver@release>5 %
- \ifnum\driver@release<8 %
- \def\Gin@extensions{%
- .png,.pdf,.jpg,.mps,.tif,.jpeg,%
- .PNG,.PDF,.JPG,.JPEG%
- }%
- \@namedef{Gin@rule@.tif}#1{{tif}{.tif}{#1}}%
- \else
- \ifnum\driver@release>9 %
- \ifnum\pdfminorversion>3 %
- \def\Gin@extensions{%
- .png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,%
- .PNG,.PDF,.JPG,.JPEG,.JBIG2,.JB2}%
- \fi
- \@namedef{Gin@rule@.jb2}#1{{jbig2}{.jb2}{#1}}%
- \@namedef{Gin@rule@.jbig2}#1{{jbig2}{.jbig2}{#1}}%
- \fi
- \fi
- \fi
-\else
- \def\Gin@extensions{.png,.pdf,.mps,.PNG,.PDF}%
-\fi
-\@namedef{Gin@rule@.png}#1{{png}{.png}{#1}}
-\@namedef{Gin@rule@.PNG}#1{{png}{.PNG}{#1}}
-\@namedef{Gin@rule@.mps}#1{{mps}{.mps}{#1}}
-\@namedef{Gin@rule@.pdf}#1{{pdf}{.pdf}{#1}}
-\@namedef{Gin@rule@.PDF}#1{{pdf}{.PDF}{#1}}
-\@namedef{Gin@rule@.eps}#1{{eps}{.eps}{#1}}
-
-% Rotation
-% slightly hacky, but set width of box 0 to 0pt otherwise
-% the CTM gets restored in the wrong place.
-
+\let\Ginclude@png\Ginclude@pdftex
+\let\Ginclude@jpg\Ginclude@pdftex
+\let\Ginclude@pdf\Ginclude@pdftex
+\expandafter\let\csname Ginclude@jbig2\endcsname\Ginclude@pdftex
\def\GPT@MatrixIdentity{1 0 0 1}
\def\GPT@Zero{0}
\def\GPT@Minus{-}
\def\GPT@NormalizeNumber#1{%
\edef#1{#1}%
- \edef#1{\expandafter\ltx@zapspace\expandafter{#1}}%
+ \edef#1{\expandafter\zap@space#1 \@empty}%
\edef#1{\expandafter\GPT@ZapPlus#1+\@nil}%
\edef#1{\expandafter\GPT@ZapMinusMinus#1--\@nil}%
\expandafter\GPT@Split#1..\@nil
- \ifx\GPT@frac\ltx@empty
+ \ifx\GPT@frac\@empty
\else
\edef\GPT@frac{%
\expandafter\GPT@Reverse\expandafter{\expandafter}\GPT@frac\@nil
}%
\edef\GPT@frac{%
- \expandafter\GPT@ZapLeadingZeros\GPT@frac\ltx@empty
+ \expandafter\GPT@ZapLeadingZeros\GPT@frac\@empty
}%
- \ifx\GPT@frac\ltx@empty
+ \ifx\GPT@frac\@empty
\else
\edef\GPT@frac{%
\expandafter\GPT@Reverse\expandafter{\expandafter}\GPT@frac\@nil
}%
\fi
\fi
- \edef\GPT@sign{\expandafter\ltx@car\GPT@int\ltx@empty\@nil}%
+ \edef\GPT@sign{\expandafter\@car\GPT@int\@empty\@nil}%
\ifx\GPT@sign\GPT@Minus
- \edef\GPT@int{\expandafter\ltx@cdr\GPT@int\@nil}%
+ \edef\GPT@int{\expandafter\@cdr\GPT@int\@nil}%
\else
\def\GPT@sign{}%
\fi
\edef\GPT@int{%
- \expandafter\GPT@ZapLeadingZeros\GPT@int\ltx@empty
+ \expandafter\GPT@ZapLeadingZeros\GPT@int\@empty
}%
\edef\GPT@temp{\GPT@int\GPT@frac}%
- \ifx\GPT@temp\ltx@empty
+ \ifx\GPT@temp\@empty
\def#1{0}%
\else
\edef#1{%
\GPT@sign
\GPT@int
- \ifx\GPT@frac\ltx@empty
+ \ifx\GPT@frac\@empty
\else
.\GPT@frac
\fi
@@ -1658,8 +364,8 @@ E \else
}
\def\GPT@ZapPlus#1+#2\@nil{%
#1%
- \ifx\ltx@empty#2\ltx@empty
- \expandafter\ltx@gobble
+ \ifx\@empty#2\@empty
+ \expandafter\@gobble
\else
\expandafter\@firstofone
\fi
@@ -1669,8 +375,8 @@ E \else
}
\def\GPT@ZapMinusMinus#1--#2\@nil{%
#1%
- \ifx\ltx@empty#2\ltx@empty
- \expandafter\ltx@gobble
+ \ifx\@empty#2\@empty
+ \expandafter\@gobble
\else
\expandafter\@firstofone
\fi
@@ -1680,18 +386,18 @@ E \else
}
\def\GPT@Split#1.#2.#3\@nil{%
\def\GPT@int{#1}%
- \ifx\ltx@empty#2\ltx@empty
- \let\GPT@frac\ltx@empty
+ \ifx\@empty#2\@empty
+ \let\GPT@frac\@empty
\else
\def\GPT@frac{#2}%
\fi
}
\def\GPT@Reverse#1#2#3\@nil{%
- \ifx\ltx@empty#3\ltx@empty
+ \ifx\@empty#3\@empty
#2#1%
- \expandafter\ltx@gobble
+ \expandafter\@gobble
\else
- \expandafter\ltx@firstofone
+ \expandafter\@firstofone
\fi
{%
\GPT@Reverse{#2#1}#3\@nil
@@ -1704,144 +410,104 @@ E \else
#1%
\fi
}
-\begingroup\expandafter\expandafter\expandafter\endgroup
-\expandafter\ifx\csname pdfsetmatrix\endcsname\relax
- % Patrick Daly found an error here with doubled minus signs when
- % \Grot@sin is negative. Fixed.
- \def\Grot@start{%
- \GPT@NormalizeNumber\Grot@sin
- \GPT@NormalizeNumber\Grot@cos
- \edef\GPT@temp{%
- \Grot@cos\ltx@space\Grot@sin\ltx@space
- \if-\GPT@sin
+\def\Grot@start{%
+ \GPT@NormalizeNumber\Grot@sin
+ \GPT@NormalizeNumber\Grot@cos
+ \edef\GPT@temp{%
+ \Grot@cos\space\Grot@sin\space
+ \if-\Grot@sin
+ \else
+ \ifx\Grot@sin\GPT@Zero
+ \GPT@Zero
\else
- % avoid negative zero
- \ifx\Grot@sin\GPT@Zero
- \GPT@Zero
- \else
- -\Grot@sin
- \fi
+ -\Grot@sin
\fi
- \ltx@space\Grot@cos
- }%
- \ifx\GPT@temp\GPT@MatrixIdentity
- \def\Grot@end{}%
- \else
- \pdfliteral{ q \GPT@temp\ltx@space 0 0 cm}%
- \wd\z@\z@
\fi
- \wd\z@\z@
+ \space\Grot@cos
}%
- \def\Grot@end{%
- \pdfliteral{ Q}%
- }%
- % Scaling is OK, as graphics package does it right here.
- \def\Gscale@start{%
- \GPT@NormalizeNumber\Gscale@x
- \GPT@NormalizeNumber\Gscale@y
- \edef\GPT@temp{%
- \Gscale@x\ltx@space0 0 \Gscale@y
- }%
- \ifx\GPT@temp\GPT@MatrixIdentity
- \def\Gscale@end{}%
- \else
- \pdfliteral{ q \GPT@temp\ltx@space 0 0 cm}%
- \fi
+ \ifx\GPT@temp\GPT@MatrixIdentity
+ \def\Grot@end{}%
+ \else
+ \pdfsave
+ \pdfsetmatrix{\GPT@temp}%
+ % Slightly hacky, but set width of box 0 to 0pt otherwise
+ % the CTM gets restored in the wrong place
+ \wd\z@\z@
+ \fi
+}
+\def\Grot@end{\pdfrestore}
+\def\Gscale@start{%
+ \GPT@NormalizeNumber\Gscale@x
+ \GPT@NormalizeNumber\Gscale@y
+ \edef\GPT@temp{%
+ \Gscale@x\space0 0 \Gscale@y
}%
-\else
- \def\Grot@start{%
- \GPT@NormalizeNumber\Grot@sin
- \GPT@NormalizeNumber\Grot@cos
- \edef\GPT@temp{%
- \Grot@cos\ltx@space\Grot@sin\ltx@space
- \if-\Grot@sin
- \else
- \ifx\Grot@sin\GPT@Zero
- \GPT@Zero
- \else
- -\Grot@sin
- \fi
+ \ifx\GPT@temp\GPT@MatrixIdentity
+ \def\Gscale@end{}%
+ \else
+ \pdfsave
+ \pdfsetmatrix{\GPT@temp}%
+ \fi
+}
+\def\Gscale@end{\pdfrestore}
+\@ifundefined{ifGin@setpagesize}
+ {\expandafter\let\csname ifGin@setpagesize\expandafter\endcsname
+ \csname iftrue\endcsname}
+ {}
+\ifGin@setpagesize
+\ifx\paperwidth\@undefined\else
+ \AtBeginDocument{%
+% If a package has changed \mag, assume it knows what it is doing
+% and leave page size alone
+\ifnum\mag=\@m
+ \@ifundefined{stockwidth}{%
+ \@ifundefined{paperwidth}{%
+ }{%
+ \ifdim\paperwidth>0pt\relax
+ \ifdim\paperheight>0pt\relax
+ \pdfpagewidth=\paperwidth
+ \pdfpageheight=\paperheight
\fi
- \ltx@space\Grot@cos
- }%
- \ifx\GPT@temp\GPT@MatrixIdentity
- \def\Grot@end{}%
- \else
- \pdfsave
- \pdfsetmatrix{\GPT@temp}%
- \wd\z@\z@
\fi
}%
- \def\Grot@end{\pdfrestore}%
- \def\Gscale@start{%
- \GPT@NormalizeNumber\Gscale@x
- \GPT@NormalizeNumber\Gscale@y
- \edef\GPT@temp{%
- \Gscale@x\ltx@space0 0 \Gscale@y
- }%
- \ifx\GPT@temp\GPT@MatrixIdentity
- \def\Gscale@end{}%
- \else
- \pdfsave
- \pdfsetmatrix{\GPT@temp}%
+}{%
+ \ifdim\stockwidth>0pt\relax
+ \ifdim\stockheight>0pt\relax
+ \pdfpagewidth=\stockwidth
+ \pdfpageheight=\stockheight
\fi
- }%
+ \fi
+}%
\fi
-\let\Gscale@end\Grot@end
-
-% undo the trig.sty `optimization' so that these 0 1 and -1 values
-% get written out as digits, not unexpandable TeX primitives.
-% 0.04q: space added to remain consistent with trig.sty.
-\def\GPT@PatchTrig{%
- \def\GPT@temp##1(##2)=##3 {%
- \expandafter\def\csname ##1(##2)\endcsname{##3 }%
- }%
- \GPT@temp sin(0)=0 %
- \GPT@temp cos(0)=1 %
- \GPT@temp sin(90)=1 %
- \GPT@temp cos(90)=0 %
- \GPT@temp sin(-90)=-1 %
- \GPT@temp cos(-90)=0 %
- \GPT@temp sin(180)=0 %
- \GPT@temp cos(180)=-1 %
- % added in 0.04q
- \GPT@temp sin(270)=-1 %
- \GPT@temp cos(270)=0 %
- \GPT@temp sin(360)=0 %
- \GPT@temp cos(360)=1 %
- \GPT@temp sin(-180)=0 %
- \GPT@temp cos(-180)=-1 %
- \GPT@temp sin(-270)=1 %
- \GPT@temp cos(-270)=0 %
- \GPT@temp sin(-360)=0 %
- \GPT@temp cos(-360)=1 %
- \ltx@ifpackageloaded{trig}{%
- \let\GPT@PatchTrig\relax
- }{}%
-}
-\AtBeginDocument{\GPT@PatchTrig}
-\ltx@ifpackageloaded{trig}{\GPT@PatchTrig}{}
-\ltx@IfUndefined{AfterPackage}{}{% scrlfile.sty
- \AfterPackage{trig}{\GPT@PatchTrig}%
-}
-\ltx@IfUndefined{AtEndOfPackageFile}{}{% filehook.sty
- \AtEndOfPackageFile{trig}{\GPT@PatchTrig}%
-}
-\ltx@IfUndefined{AtEndPackage}{}{% memoir.cls
- \AtEndPackage{trig}{\GPT@PatchTrig}%
}
-
-% v0.02e: Restore catcodes of context letters.
-% Not needed with current version of supp-pdf
-% but protects against older versions.
-% v0.03o: Catcode protection of '=' because of turkish.ldf.
+\fi
+\fi
+\def\Gin@extensions{%
+ .pdf,.png,.jpg,.mps,.jpeg,.jbig2,.jb2,%
+ .PDF,.PNG,.JPG,.JPEG,.JBIG2,.JB2
+}
+\@namedef{Gin@rule@.jpg}#1{{jpg}{.jpg}{#1}}
+\@namedef{Gin@rule@.jpeg}#1{{jpg}{.jpeg}{#1}}
+\@namedef{Gin@rule@.JPG}#1{{jpg}{.JPG}{#1}}
+\@namedef{Gin@rule@.JPEG}#1{{jpg}{.JPEG}{#1}}
+\@namedef{Gin@rule@.jb2}#1{{jbig2}{.jb2}{#1}}%
+\@namedef{Gin@rule@.jbig2}#1{{jbig2}{.jbig2}{#1}}%
+\@namedef{Gin@rule@.png}#1{{png}{.png}{#1}}
+\@namedef{Gin@rule@.PNG}#1{{png}{.PNG}{#1}}
+\@namedef{Gin@rule@.mps}#1{{mps}{.mps}{#1}}
+\@namedef{Gin@rule@.pdf}#1{{pdf}{.pdf}{#1}}
+\@namedef{Gin@rule@.PDF}#1{{pdf}{.PDF}{#1}}
+\@namedef{Gin@rule@.eps}#1{{eps}{.eps}{#1}}
+% MPS conversion
\def\GPT@LoadSuppPdf{%
- \ltx@IfUndefined{convertMPtoPDF}{%
- \GPT@catcodes{supp}%
- \InputIfFileExists{supp-pdf.mkii}{}{%
- \InputIfFileExists{supp-pdf}{}{}%
- }%
- \GPT@restore@supp
+ \@ifundefined{convertMPtoPDF}{%
+ \edef\@tempa{%
+ \catcode`\noexpand\<\the\catcode`\<\relax
+ \catcode`\noexpand\>\the\catcode`\>\relax
+ }%
+ \@makeother\<\@makeother\<%
+ \InputIfFileExists{supp-pdf.mkii}{}{}%
+ \@tempa
}{%
% supp-pdf is probably already loaded.
}%
@@ -1850,18 +516,18 @@ E \else
% of \InputIfFileExists will not work:
% * \InputIfFileExists has problems with parameters (#1).
% * Implementation of \providecommand is insufficient in miniltx.tex
- \ltx@ifundefined{convertMPtoPDF}{%
- \newcommand{\convertMPtoPDF}[3]{%
- \GPT@error{%
- Cannot convert ##1 from MPS to PDF.\MessageBreak
+ \@ifundefined{convertMPtoPDF}{%
+% 2016/05/21 v0.01c use \newcommand here not \newcommand* graphics/4472
+\newcommand{\convertMPtoPDF}[3]{%
+ \PackageError{pdftex.def}{%
+ Cannot convert ##1 from MPS to PDF.
The support file `supp-pdf.mkii' (supp-pdf.tex) is missing%
}{%
- The graphics driver for pdfTeX needs `supp-pdf.mkii'\MessageBreak
- (or `supp-pdf.tex' and/or `supp-mis.tex')\MessageBreak
- to convert MetaPost output files to PDF.\MessageBreak
+ The graphics driver for pdfTeX needs `supp-pdf.mkii'
+ (or `supp-pdf.tex' and/or `supp-mis.tex')
+ to convert MetaPost output files to PDF.
These files are part of ConTeXt and can also be found here:%
- \MessageBreak
- \ltx@space\ltx@space CTAN:macros/pdftex/graphics/\MessageBreak
+ \space\space CTAN:macros/pdftex/graphics/.
You'll get more errors if you'll continue now.%
}%
}%
@@ -1871,59 +537,6 @@ E \else
\AtBeginDocument{%
\GPT@LoadSuppPdf
}
-
-% Adds support for extended MetaPost features (transparency)
-\def\LoadMetaPostSpecialExtensions{%
- \AtBeginDocument{%
- \ltx@IfUndefined{assignMPStransparency}{%
- \GPT@catcodes{mpe}%
- \let\GPT@found=N%
- \IfFileExists{supp-pdf.mkii}{\let\GPT@found=Y}{%
- \IfFileExists{supp-pdf}{\let\GPT@found=Y}{}%
- }%
- \ifx Y\GPT@found
- \InputIfFileExists{supp-mis.mkii}{}{%
- \InputIfFileExists{supp-mis}{}{\let\GPT@found=N}%
- }%
- \ifx Y\GPT@found
- \InputIfFileExists{supp-mpe.mkii}{}{%
- \InputIfFileExists{supp-mpe}{}{\let\GPT@found=N}%
- }%
- \ifx Y\GPT@found
- \MPcmykcolorstrue
- \MPspotcolorstrue
- \chardef\makeMPintoPDFobject=1 %
- \else
- \GPT@warn{%
- Cannot enable MetaPost Special Extensions,\MessageBreak
- because `supp-mpe.mkii' (or `supp-mpe.tex')\MessageBreak
- is missing%
- }%
- \fi
- \else
- \GPT@warn{%
- Cannot enable MetaPost Special Extensions,\MessageBreak
- because `supp-mis.mkii' (or `supp-mis.tex')\MessageBreak
- is missing%
- }%
- \fi
- \else
- \GPT@warn{%
- Cannot enable support for MetaPost images,\MessageBreak
- because `supp-pdf.mkii' (or `supp-pdf.tex')\MessageBreak
- is missing%
- }%
- \fi
- \GPT@restore@mpe
- }{}%
- }%
- \let\LoadMetaPostSpecialExtensions\relax
-}
-\ltx@IfUndefined{@onlypreamble}{%
-}{%
- \@onlypreamble\LoadMetaPostSpecialExtensions
-}
-
% Load package epstopdf if
% a) LaTeX is running (plain TeX users are on their own),
% b) and shell escape (\write18) is enabled (possibly restricted),
@@ -1954,21 +567,17 @@ E \else
\ifx\includegraphics\@undefined\else
\@ifpackageloaded{pst-pdf}{}{%
\@ifpackageloaded{pdftricks}{}{%
- \RequirePackage{pdftexcmds}[2007/11/11]%
- \expandafter\ifx\csname pdf@shellescape\endcsname\relax
- \else
- \@ifpackageloaded{graphics}{
- \ifnum\pdf@shellescape>0 %
- % only add .eps to file extension list if epstopdf is loaded
- \edef\Gin@extensions{\Gin@extensions,.eps}%
+ \@ifpackageloaded{graphics}{%
+ \ifnum\pdfshellescape>0 %
+ % only add .eps to file extension list if epstopdf is loaded
+ \edef\Gin@extensions{\Gin@extensions,.eps}%
\RequirePackage{epstopdf-base}[2009/07/12]%
\fi}{}
- \fi
}% pdftricks not loaded
}% pst-pdf not loaded
- \fi
+ \fi
}% AtBeginDocument block
}% AtEndofPackage block
\fi % AtEndofPackage not defined
\fi % DoNotLoadEpstopdf not defined
-\GPT@AtEnd
+\endinput