summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/graphics-def/dvipdfmx.def
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-07-03 20:51:57 +0000
committerKarl Berry <karl@freefriends.org>2016-07-03 20:51:57 +0000
commitdefd77bc40f31972e4dd97cd405dc401d6ff124c (patch)
tree1d69d9cfe5c6e9cf3e734226386afe9e12f0ae97 /Master/texmf-dist/tex/latex/graphics-def/dvipdfmx.def
parent044deb0931d98633db7d843495f034f97ca0565f (diff)
graphics-def (3jul16)
git-svn-id: svn://tug.org/texlive/trunk@41616 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/graphics-def/dvipdfmx.def')
-rw-r--r--Master/texmf-dist/tex/latex/graphics-def/dvipdfmx.def449
1 files changed, 449 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/graphics-def/dvipdfmx.def b/Master/texmf-dist/tex/latex/graphics-def/dvipdfmx.def
new file mode 100644
index 00000000000..735e7f8961c
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/graphics-def/dvipdfmx.def
@@ -0,0 +1,449 @@
+%% This is file `dvipdfmx.def' for DVIPDFMx by J.-H. Cho and S. Hirata
+%% based upon `dvipdf.def' in the LaTeX `Graphics Bundle'.
+%%
+%% Copyright 2005-2016 LaTeX3 Project, Jin-Hwan Cho, Shunsaku Hirata
+%% (with contributions from many others)
+%%
+%% This file is not part of the Standard LaTeX `Graphics Bundle'.
+%% It may be distributed under the terms of the LaTeX Project Public
+%% License, as described in lppl.txt in the base LaTeX distribution.
+%% Either version 1.0 or, at your option, any later version.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is the LaTeX3 Project.
+%%
+%% https://github.com/latex3/graphics-def/issues
+%%
+\ProvidesFile{dvipdfmx.def}
+ [2016/07/02 v4.10 LaTeX color/graphics driver for dvipdfmx (L3/ChoF)]
+%
+\def\c@lor@arg#1{%
+ \dimen@#1\p@
+ \ifdim\dimen@<\z@\dimen@\maxdimen\fi
+ \ifdim\dimen@>\p@
+ \PackageError{color}{Argument `#1' not in range [0,1]}\@ehd
+ \fi}
+\def\color@gray#1#2{%
+ \c@lor@arg{#2}%
+ \edef#1{[#2]}%
+ }
+\def\color@cmyk#1#2{\c@lor@@cmyk#2\@@#1}
+\def\c@lor@@cmyk#1,#2,#3,#4\@@#5{%
+ \c@lor@arg{#4}%
+ \c@lor@arg{#1}%
+ \c@lor@arg{#2}%
+ \c@lor@arg{#3}%
+ \edef#5{[#1 #2 #3 #4]}%
+ }
+\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]}%
+ }
+\def\color@RGB#1#2{\c@lor@@RGB#2\@@#1}
+\def\c@lor@@RGB#1,#2,#3\@@#4{%
+ \c@lor@RGB@rgb{#1}\@tempa
+ \c@lor@RGB@rgb{#2}\@tempb
+ \c@lor@RGB@rgb{#3}\@tempc
+ \c@lor@@rgb\@tempa,\@tempb,\@tempc\@@#4%
+ }
+\def\c@lor@RGB@rgb#1#2{%
+ \dimen@#1\p@
+ \divide\dimen@\@cclv
+ \edef#2{\strip@pt\dimen@}}
+%%
+%% the following 7 lines do not work. (2016/06/22)
+%%\def\color@hsb#1#2{\c@lor@@hsb#2\@@#1}
+%%\def\c@lor@@hsb#1,#2,#3\@@#4{%
+%% \c@lor@arg{#1}%
+%% \c@lor@arg{#2}%
+%% \c@lor@arg{#3}%
+%% \edef#4{[#1 #2 #3] hsb}%
+%% }
+\def\color@named#1#2{\c@lor@@named#2,,\@@#1}
+\def\c@lor@@named#1,#2,#3\@@#4{%
+ \@ifundefined{col@#1}%
+ {\PackageError{color}{Undefined color `#1'}\@ehd}%
+ {\edef#4{ #1}}%
+ }
+\def\c@lor@to@ps#1 #2\@@{\csname c@lor@ps@#1\endcsname#2 \@@}
+\def\c@lor@ps@#1 #2\@@{TeXDict begin #1 end}
+\def\c@lor@ps@rgb#1\@@{#1 setrgbcolor}
+\def\c@lor@ps@hsb#1\@@{#1 sethsbcolor}
+\def\c@lor@ps@cmyk#1\@@{#1 setcmykcolor}
+\def\c@lor@ps@gray#1\@@{#1 setgray}
+\def\current@color{[0]}
+\def\set@color{%
+ \special{pdf:bcolor \current@color
+ }\aftergroup\reset@color}
+\def\reset@color{\special{%
+ pdf:ecolor}}
+\def\set@page@color{\special{%
+ pdf:bgcolor \current@color}}
+\def\define@color@named#1#2{%
+ \expandafter\let\csname col@#1\endcsname\@nnil}
+%
+% Graphics
+%
+\def\declareimagemask{%
+ \@ifnextchar[\declareimagemask@i{\declareimagemask@i[]}}
+\def\declareimagemask@i[#1]#2#3{%
+ \special{pdf:image @#2\space hide (#3) #1}}
+%
+% import from pdftex.def
+%
+\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{dvipdfmx.def}}%
+\def\GPT@warn{\@PackageWarning{dvipdfmx.def}}%
+\let\GPT@pagebox@option\ltx@empty
+\begingroup
+\toks@{%
+\define@key{Gin}{page}{\def\Gin@page{#1}}
+\define@key{Gin}{mask}{\def\Gin@mask{#1}}
+\define@key{Gin}{interpolate}[true]{%
+ \lowercase{\Gin@boolkey{#1}}{interpolate}}
+\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%
+ }%
+ \else%
+ \def\GPT@pagebox@option{-B \GPT@pagebox\space}%
+ \fi%
+}%
+}
+\ltx@IfUndefined{define@key}{
+ \edef\x{\endgroup
+ \noexpand\AtBeginDocument{%
+ \noexpand\ltx@IfUndefined{define@key}{}{\the\toks@}%
+ }%
+ }\x
+ }{%
+ \expandafter\endgroup\the\toks@
+ }%
+
+\def\GPT@pagebox@cropbox{cropbox}%
+\def\GPT@pagebox@mediabox{mediabox}%
+\def\GPT@pagebox@artbox{artbox}%
+\def\GPT@pagebox@trimbox{trimbox}%
+\def\GPT@pagebox@bleedbox{bleedbox}%
+%
+% end (import from pdftex.def)
+%
+% improved by N. Abe to cache BoundingBox for pdfpages package
+%
+\def\Gread@pdf#1{%
+\edef\@tempa{pdf@bbox@cache@\Gin@page @\GPT@pagebox @#1}%
+\expandafter\expandafter\expandafter\@ifundefined\expandafter{\@tempa}{\Gread@@pdf{#1}}{%
+\edef\@gtempa{\csname\@tempa\endcsname}%
+\expandafter\Gread@parse@bb\@gtempa\\}}
+\def\Gread@@pdf#1{%
+ \begingroup
+ \@tempcnta\z@
+ \loop\ifnum\@tempcnta<\@xxxii
+ \catcode\@tempcnta14 %
+ \advance\@tempcnta\@ne
+ \repeat
+ \catcode`\^^?14 %
+ \let\do\@makeother
+ \dospecials
+ \catcode`\ 10 %
+ \catcode`\^^I10 %
+ \catcode\endlinechar5 %
+ \@makeother\:%
+ \@makeother\-%
+ \immediate\openin\@inputcheck"#1" % allow spaces in a name of a .xbb file
+ \ifeof\@inputcheck
+ \def\@tempc{!}%
+ \ifx\Gin@page\@tempc
+ \def\@tempc{}%
+ \else
+ \def\@tempc{-p \Gin@page\space}%
+ \fi
+ \immediate\openin\@inputcheck="|extractbb \GPT@pagebox@option \@tempc -O \Gin@base\Gin@ext"%
+ \fi
+ \Gread@true
+ \let\@tempb\Gread@false
+ \ifeof\@inputcheck
+ \@latex@error
+ {Cannot run pipe command. Try --shell-escape^^J%
+ (--enable-pipes in MikTeX) option}%
+ \@ehc
+ \else
+ \loop
+ \read\@inputcheck to\@tempa
+ \ifeof\@inputcheck
+ \Gread@false
+ \else
+ \expandafter\Gread@find@bb\@tempa:.\\%
+ \fi
+ \ifGread@
+ \repeat
+ \immediate\closein\@inputcheck
+ \fi
+%
+% If BoundingBox is not obtained, extractbb may be an old one which does not
+% support the -p and/or -B options, and usage of extractbb is printed to stdout.
+% Thus we retry without the -p and/or -B optons.
+%
+ \ifGin@bbox\else
+ \immediate\openin\@inputcheck="|extractbb -O \Gin@base\Gin@ext"%
+ \message{^^JI try without the new options^^J}%
+ \Gread@true
+ \let\@tempb\Gread@false
+ \ifeof\@inputcheck
+ \@latex@error
+ {Cannot run pipe command. Try --shell-escape^^J%
+ (--enable-pipes in MikTeX) option}%
+ \@ehc
+ \else
+ \loop
+ \read\@inputcheck to\@tempa
+ \ifeof\@inputcheck
+ \Gread@false
+ \else
+ \expandafter\Gread@find@bb\@tempa:.\\%
+ \fi
+ \ifGread@
+ \repeat
+ \immediate\closein\@inputcheck
+ \aftergroup\Gin@clear@pagebox
+ \fi
+ \fi
+%
+% improved by N. Abe to cache BoundingBox for pdfpages package
+%
+ \ifGin@bbox
+ \edef\@tempa{pdf@bbox@cache@\Gin@page @\GPT@pagebox @#1}%
+ \expandafter\expandafter\expandafter\xdef\expandafter\csname\@tempa\endcsname{\@gtempa}%
+ \else
+ \@latex@error
+ {Cannot determine size of image (no BoundingBox)}%
+ \@ehc
+ \gdef\@gtempa{0 0 72 72 }%
+ \fi
+ \endgroup
+ \expandafter\Gread@parse@bb\@gtempa\\}
+\def\Gin@clear@pagebox{%
+ \let\GPT@pagebox\@empty}
+\let\Gread@bmp\Gread@pdf
+\def\Gin@page{!}
+\def\Gin@mask{!}
+\newif\ifGin@interpolate\Gin@interpolatefalse
+\let\GPT@pagebox\ltx@empty
+\def\Ginclude@pdf#1{%
+ \message{<#1>}%
+ \bgroup
+ \def\@tempa{!}%
+ \special{pdf:epdf\space
+ \ifx\Gin@page\@tempa\else page\space\Gin@page\space\fi
+ \ifx\GPT@pagebox\ltx@empty\else pagebox\space\GPT@pagebox\space\fi
+ bbox\space\Gin@llx\space\Gin@lly\space\Gin@urx\space\Gin@ury\space
+ clip\space\ifGin@clip 1\else 0\fi\space
+ \ifx\Gin@scalex\@tempa\else width\space\the\Gin@req@width\space\fi
+ \ifx\Gin@scaley\@tempa\else height\space\the\Gin@req@height\space\fi
+ (#1)\space
+ \ifx\Gin@mask\@tempa
+ \ifGin@interpolate<</Interpolate\space true>>\fi
+ \else
+ <</SMask @\Gin@mask\space%
+ \ifGin@interpolate/Interpolate\space true\fi>>%
+ \fi}%
+ \egroup}
+\def\Ginclude@bmp#1{%
+ \message{<#1>}%
+ \bgroup
+ \def\@tempa{!}%
+ \special{pdf:image\space
+ \ifx\Gin@page\@tempa\else page\space\Gin@page\space\fi
+ % The next line was \ifGin@bbox previously. However, LaTeX can read
+ % BoundingBox from a .xbb file even when \Gin@bboxfalse.
+ % Thus, we give bbox in the cases of trim/viewport, since
+ % trim/viewport don't work without bbox.
+ \ifx\Gin@ollx\@undefined\else
+ bbox\space\Gin@llx\space\Gin@lly\space\Gin@urx\space\Gin@ury\space
+ clip\space\ifGin@clip 1\else 0\fi\space
+ \fi
+ \ifx\Gin@scalex\@tempa\else width\space\the\Gin@req@width\space\fi
+ \ifx\Gin@scaley\@tempa\else height\space\the\Gin@req@height\space\fi
+ (#1)\space
+ \ifx\Gin@mask\@tempa
+ \ifGin@interpolate<</Interpolate\space true>>\fi
+ \else
+ <</SMask @\Gin@mask\space%
+ \ifGin@interpolate/Interpolate\space true\fi>>%
+ \fi}%
+ \egroup}
+\newif\if@trim@vport
+\def\Ginclude@eps#1{%
+ \message{<#1>}%
+ \bgroup
+ \ifx\Undefined\Gin@vllx\else\@trim@vporttrue\fi
+ \def\@tempa{!}%
+ \dimen@\Gin@urx\p@
+ \advance\dimen@ -\Gin@llx\p@
+ \if@trim@vport
+ \advance\dimen@ \Gin@vllx\p@
+ \fi
+ \edef\Gin@urx{\strip@pt\dimen@}%
+ \dimen@\Gin@ury\p@
+ \advance\dimen@ -\Gin@lly\p@
+ \if@trim@vport
+ \advance\dimen@ \Gin@vlly\p@
+ \fi
+ \edef\Gin@ury{\strip@pt\dimen@}%
+ \dimen@\Gin@req@width
+ \dimen@ii.1bp%
+ \divide\dimen@\dimen@ii
+ \@tempdima\Gin@req@height
+ \divide\@tempdima\dimen@ii
+ \special{PSfile="#1"\space
+ \if@trim@vport
+ llx=\Gin@vllx\space
+ lly=\Gin@vlly\space
+ \fi
+ urx=\Gin@urx\space
+ ury=\Gin@ury\space
+ \ifx\Gin@scalex\@tempa\else rwi=\number\dimen@\space\fi
+ \ifx\Gin@scaley\@tempa\else rhi=\number\@tempdima\space\fi
+ \ifGin@clip clip\fi}%
+ \egroup}
+%
+% In the above \Ginclude@eps, llx, lly, urx, and ury are translated to match
+% the -dEPSCrop option for Ghostscript to convert eps to pdf.
+% In the case of eps files created by MetaPost, the files are included
+% directly without the help of Ghostscript. That is, we have to translate
+% the origin accordingly if we use \Ginclude@eps for eps files created by
+% MetaPost. In TeX Live 2015, the translation of the origin was the default.
+% After TeX Live 2016, however, the translation of the origin is enabled only
+% if the --mvorigin option is given for dvipdfmx or xdvipdfmx.
+% This may be a bit inconvenient, especially in the case of XeTeX where
+% xdvipdfmx is usually called as a pipe. Therefore we introduce a new suffix
+% .mps(or .MPS) to support inclusion of eps files created by MetaPost without
+% the option --mvorigin.
+%
+\def\Ginclude@mps#1{%
+ \message{<#1>}%
+ \bgroup
+ \def\@tempa{!}%
+ \dimen@\Gin@req@width
+ \dimen@ii.1bp%
+ \divide\dimen@\dimen@ii
+ \@tempdima\Gin@req@height
+ \divide\@tempdima\dimen@ii
+ \special{PSfile="#1"\space
+ llx=\Gin@llx\space
+ lly=\Gin@lly\space
+ urx=\Gin@urx\space
+ ury=\Gin@ury\space
+ \ifx\Gin@scalex\@tempa\else rwi=\number\dimen@\space\fi
+ \ifx\Gin@scaley\@tempa\else rhi=\number\@tempdima\space\fi
+ \ifGin@clip clip\fi}%
+ \egroup}
+%
+\def\Grot@start{%
+\special{pdf:btrans rotate \Grot@angle}}
+\def\Grot@end{\special{pdf:etrans}}
+\def\Gscale@start{%
+\special{pdf:btrans xscale \Gscale@x\space yscale \Gscale@y}}
+\def\Gscale@end{\special{pdf:etrans}}
+\def\Gin@PS@raw#1{\special{ps: #1}}
+\def\Gin@PS@restored#1{\special{" #1}}
+\def\Gin@PS@literal@header#1{\AtBeginDvi{\special{! #1}}}
+\def\Gin@PS@file@header#1{\AtBeginDvi{\special{header=#1}}}
+\def\Gin@extensions{% order here is like xetex.def, except for PS
+ .pdf,.PDF,.ai,.AI,%
+ .png,.PNG,.jpg,.JPG,.jpeg,.JPEG,.jp2,.JP2,.jpf,.JPF,.bmp,.BMP,%
+ .ps,.PS,.eps,.EPS,.mps,.MPS,%
+ .pz,.eps.Z,.ps.Z,.ps.gz,.eps.gz}
+%
+\@namedef{Gin@rule@.pdf}#1{{pdf}{.xbb}{#1}}
+\@namedef{Gin@rule@.PDF}#1{{pdf}{.xbb}{#1}}
+%
+\@namedef{Gin@rule@.ai}#1{{pdf}{.xbb}{#1}}
+\@namedef{Gin@rule@.AI}#1{{pdf}{.xbb}{#1}}
+%
+\@namedef{Gin@rule@.jp2}#1{{bmp}{.xbb}{#1}}
+\@namedef{Gin@rule@.JP2}#1{{bmp}{.xbb}{#1}}
+%
+\@namedef{Gin@rule@.jpf}#1{{bmp}{.xbb}{#1}}
+\@namedef{Gin@rule@.JPF}#1{{bmp}{.xbb}{#1}}
+%
+\@namedef{Gin@rule@.png}#1{{bmp}{.xbb}{#1}}
+\@namedef{Gin@rule@.PNG}#1{{bmp}{.xbb}{#1}}
+%
+\@namedef{Gin@rule@.jpg}#1{{bmp}{.xbb}{#1}}
+\@namedef{Gin@rule@.JPG}#1{{bmp}{.xbb}{#1}}
+%
+\@namedef{Gin@rule@.jpeg}#1{{bmp}{.xbb}{#1}}
+\@namedef{Gin@rule@.JPEG}#1{{bmp}{.xbb}{#1}}
+%
+\@namedef{Gin@rule@.jp2}#1{{bmp}{.xbb}{#1}}
+\@namedef{Gin@rule@.JP2}#1{{bmp}{.xbb}{#1}}
+%
+\@namedef{Gin@rule@.jpf}#1{{bmp}{.xbb}{#1}}
+\@namedef{Gin@rule@.JPF}#1{{bmp}{.xbb}{#1}}
+%
+\@namedef{Gin@rule@.bmp}#1{{bmp}{.xbb}{#1}}
+\@namedef{Gin@rule@.BMP}#1{{bmp}{.xbb}{#1}}
+%
+\@namedef{Gin@rule@.ps}#1{{eps}{.ps}{#1}}
+\@namedef{Gin@rule@.PS}#1{{eps}{.ps}{#1}}
+%
+\@namedef{Gin@rule@.eps}#1{{eps}{.eps}{#1}}
+\@namedef{Gin@rule@.EPS}#1{{eps}{.eps}{#1}}
+%
+\@namedef{Gin@rule@.mps}#1{{mps}{.mps}{#1}}
+\@namedef{Gin@rule@.MPS}#1{{mps}{.mps}{#1}}
+% (don't bother with uppercase versions for these Unixish extensions)
+\@namedef{Gin@rule@.pz}#1{{eps}{.xbb}{`gunzip -c #1}}
+\@namedef{Gin@rule@.eps.Z}#1{{eps}{.eps.xbb}{`gunzip -c #1}}
+\@namedef{Gin@rule@.ps.Z}#1{{eps}{.ps.xbb}{`gunzip -c #1}}
+\@namedef{Gin@rule@.ps.gz}#1{{eps}{.ps.xbb}{`gunzip -c #1}}
+\@namedef{Gin@rule@.eps.gz}#1{{eps}{.eps.xbb}{`gunzip -c #1}}
+%
+\@namedef{Gin@rule@*}#1{{eps}{\Gin@ext}{#1}}
+
+
+% v4.10
+% Support new (no)setpagesize option of graphics and color.
+\@ifundefined{ifGin@setpagesize}
+{\expandafter\let\csname ifGin@setpagesize\expandafter\endcsname
+\csname iftrue\endcsname}
+{}
+\ifGin@setpagesize
+\ifx\paperwidth\@undefined\else
+\AtBeginDocument{\AtBeginDvi{%
+\begingroup
+\ifx\stockwidth\@undefined\else
+\paperwidth\stockwidth
+\paperheight\stockheight
+\fi
+\ifdim\paperwidth>\z@
+\ifdim\paperheight>\z@
+\special{papersize=\the\paperwidth,\the\paperheight}%
+\fi
+\fi
+\endgroup}}
+\fi
+\fi
+
+\endinput
+%%
+%% End of file `dvipdfmx.def'.