%% This is file `xetex.def' for XeTeX, %% based upon other drivers for LaTeX color and graphics support. %% %% Copyright 2004-2007, 2009, 2013-2016 %% Ross Moore %% modified by Jonathan Kew et al. %% %% Copyright 2016 LaTeX3 project and above named authors. %% %% 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 %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Version History %% %% 2016/07/11 [DPC] [v4.10] \mag test added to all the files %% Remove spurious dependency on external packages. %% Avoid \@ehd help text (not defined by miniltx) %% %% 2016/07/02 [DPC] [v4.09] support new (no)setpagesize options of %% color and graphics packages. %% revert pagecolor code to match dvips %% %% 2016/04/06 [AK] [v4.08] Support new suffix .mps (or .MPS) for eps files %% created by MetaPost. In TeX Live 2016, the option --mvorigin %% for [x]dvipdfmx is necessary to include MetaPost-created eps %% files by the usual \Ginclude@eps. This may a bit be inconvenient. %% Thus we introduce a new command \Ginclude@mps for the suffix %% .mps (or .MPS). In \Ginclude@mps, llx, lly, urx, and ury are %% natural compared with those in \Ginclude@eps. Thus the origin %% should not be translated, that is the option --mvorigin should %% not be given. %% %% 2015/09/11 [AK, NA, TY] [v4.06] Support pagebox=artbox, etc. in xelatex, %% like in pdflatex. It requires new xetex and xdvipdfmx, which %% will be available in TeX Live 2016. Interested users may build %% new binaries by using new sources in the TeX Live repository. %% %% 2015/03/26 [SH] [v4.04] JPEG 2000 (.jp2, .jpf) support, written for %% dvipdfmx. %% %% 2014/04/28 [KB] [v4.03] \newif outside \def. Skipped 4.02. %% %% 2014/04/28 [HO] [v4.01] .CAPS extensions. %% [KB] ordering: find .jpeg just after .jpg, %% more like dvipdfmx.def. Also remove .sga/.sgi, %% which were mismatched and never noticed. %% Change version number to match dvipdfmx.def. %% %% 2014/04/07 [AK] [v0.99] remove spurious spaces. %% %% 2014/03/24 [AK] [v0.98] non-origin viewport, avoid double bp conversion. %% %% 2014/03/21 [KB] doc tweaks for project home at puszcza.gnu.org.ua. %% %% 2013/05/27 [KB] Version v0.97 non-commutative operations. %% (code provided by Bruno Voisin) %% %% 2013/04/29 [KB] Version v0.96 handle non-origin ll corner. %% (code provided by Bruno Voisin) %% %% 2013/02/04 [RRM] Version v0.95 added clipping support. %% (code provided by Joseph Wright and Martin Scharrer) %% %% 2009/11/21 [KB] Version v0.94 merge the two 0.93's. %% %% 2009/10/28 [RRM] Version v0.93 fix big-point incompatibility; %% %% 2007/10/25 [JK] Version v0.93 added EPS support from dvipdfmx.def %% (for use with xdvipdfmx, default driver in xetex 0.997) %% %% 2006/08/10 [JK] Version v0.92 correct type-check in \G@measure@QTm; %% remove \G@PDF@ext, apply \lowercase instead; %% make \XeTeXquote have catcode 12 rather than 11; %% explicit space after "filename.ext" (reqd by xetex 0.995) %% %% 2006/07/19 [JK] Version v0.91 use \special{color ...} rather than %% \special{x:textcolor ...} etc, for compatibility with %% both xdv2pdf and xdvipdfmx drivers; %% added .bmp to list of recognized graphics extensions %% %% 2006/01/09 [JK] Version v0.9 removed support for XeTeX versions %% prior to 0.6 (when the \XeTeXpicfile parameters were %% modified), to avoid problem when \XeTeXrevision inc. letters %% %% 2005/10/12 Version v0.8 removed spurious space in \convertHEX@ %% -- found by Morten Hogholm %% %% 2004/05/09 Version v0.7 changed support for \pagecolor, adapted %% from pdftex.def, to put a \special in the \shipout ; %% this driver should now work with miniltx.tex ; %% changed some control-sequence names; %% implemented HSB to RGB color conversion %% identified the redundant (v0.5) coding more clearly. %% %% 2004/05/08 Version v0.6 properly implements scaling and rotations %% following the coding used with pdftex.def ; %% implemented `viewport' and prepared for `clip'; %% don't rely on " to have correct catcode; %% altered the suffix order for graphics, to be: %% .pdf .png .jpg .pict .tif .... %% %% 2004/04/29 Version v0.5 adapts to the changed names for the %% graphics inclusion primitives, and version strings. %% %% 2004/04/23 Version v0.41 works with graphics.sty as well as %% graphicx.sty ; \G@pdf@ext is '.pdf'; %% similarly define and use \G@PDF@ext for '.PDF'; %% removed some log-messages. %% %% 2004/04/22 Version v0.4 designed to work with XeTeX v0.4 %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % emacs-page \ProvidesFile{xetex.def} [2016/07/11 v4.10 LaTeX color/graphics driver for XeTeX (L3/RRM/JK)] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % make sure we can use " with correct catcode {\catcode`\"=12 \gdef\XeTeXquote{"}% } % miniltx.tex does not define \PackageWarning \@ifundefined{PackageWarning}{% \def\PackageWarning#1#2{% \begingroup \def\@spaces{\space\space\space\space}% \ifx\on@line\@undefined\def\on@line{}\fi \newlinechar=10 % \def\MessageBreak{% ^^J(#1)\@spaces\@spaces\@spaces\@spaces }% \immediate\write16{^^JPackage #1 Warning: #2\on@line.^^J}% \endgroup }% }{} \def\GPT@warn{\PackageWarning{xetex.def}}% \@ifundefined{on@line}{% \def\on@line{ on input line \the\inputlineno}% }{} \@ifundefined{@spaces}{% \def\@spaces{\space\space\space\space}% }{} \def\GXT@warn{\PackageWarning{xetex.def}}% \ifx\Gin@log\@undefined \def\Gin@log{\message} \fi % Colour Support. The following models may be used. % * rgb \ % * cmyk \ % * gray /-- all passed directly to the driver % * hsb / % * RGB ---- converted to rgb here % * named % \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]}{}% \fi} \def\color@gray#1#2{% \c@lor@arg{#2}% \edef#1{gray #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{cmyk #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{rgb #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@}} \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{hsb #1 #2 #3}% } \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'}{}}% {\edef#4{ #1}}% } \def\current@color{gray 0} % % v0.02t: support for \pagecolor % not used by default but may be re-activated % with \oldxetexpagecolorcode % see http://tug.org/pipermail/xetex/2016-June/026696.html % \def\oldxetexpagecolorcode{% \def\set@page@color{% \global\let\current@page@color\current@color \@ifundefined{GXTorg@shipout}{% \global\let\GXTorg@shipout\shipout \gdef\shipout{% \afterassignment\GXT@shipout \global\setbox\@cclv=% }% \gdef\GXT@shipout{% \ifvoid\@cclv\relax \aftergroup\GXT@@shipout \GXT@setpagecolor \else \GXTorg@shipout\vbox{% \GXT@setpagecolor \box\@cclv }% \fi }% \gdef\GXT@@shipout{% \GXTorg@shipout\box\@cclv\relax }% \gdef\GXT@setpagecolor{% \special{background \current@page@color}% }% }{}% }% } \def\set@page@color{\special{background \current@color}} \def\set@color@stack{% \special{color push \current@color}% \aftergroup\reset@color } \def\set@color@nostack{% \special{color \current@color}% \aftergroup\reset@color } \def\reset@color@nostack{% \special{color \current@color}% \expandafter\checkfor@moreresets } \def\reset@color@stack{% \special{color pop}% \expandafter\checkfor@moreresets } \def\checkfor@moreresets{\futurelet\tmp\checkfor@moreresets@} \def\checkfor@moreresets@{% \ifx\tmp\reset@color\expandafter\gobble@color\fi} \def\gobble@color#1{\checkfor@moreresets} \def\define@color@named#1#2{% \expandafter\edef\csname col@#1\endcsname{#2}} % \def\check@for@XeTeX@colorstack{% \expandafter\ifx\csname use@XeTeX@colorstack\endcsname\relax \let\set@color\set@color@stack \let\reset@color\reset@color@stack \let\checkfor@moreresets\relax \else \let\set@color\set@color@nostack \let\reset@color\reset@color@nostack \fi } % % use \noXeTeXcolorstack to turn off the color-stack % mechanism; use it within the preamble only. % This may be useful with some packages % e.g. TeXpower which makes partial page-builds. % \def\noXeTeXcolorstack{\def\use@XeTeX@colorstack{}} \AtBeginDocument{\check@for@XeTeX@colorstack} % % < end of color support for XeTeX > % < graphics inclusion for XeTeX > % % PDF is a special case which has extra features \def\G@pdf@ext{.pdf} % % import from pdftex.def to support pagebox=artbox etc. in XeLaTeX % % \Gin@XeTeX@page: page number of pdf image or \@empty otherwise. % This code adapted from pdftex.def \let\Gin@XeTeX@page\@empty \let\GPT@pagebox\@empty \begingroup \toks@{\define@key{Gin}{page}{\def\Gin@XeTeX@page{#1}} \define@key{Gin}{pagebox}{% \expandafter\let\expandafter\GPT@pagebox% \csname GPT@pagebox@#1\endcsname \ifx\GPT@pagebox\relax \let\GPT@pagebox\@empty \GPT@warn{% Unknown value `#1' for `pagebox'.\MessageBreak Supported values:\MessageBreak mediabox, cropbox, bleedbox, trimbox, artbox% }% \fi% }% }% \@ifundefined{define@key}{% \edef\x{\endgroup\noexpand\AtBeginDocument{% \noexpand\@ifundefined{define@key}{}{\the\toks@}}% }\x }{\expandafter\endgroup\the\toks@} \def\GPT@pagebox@cropbox{crop}% \def\GPT@pagebox@mediabox{media}% \def\GPT@pagebox@artbox{art}% \def\GPT@pagebox@trimbox{trim}% \def\GPT@pagebox@bleedbox{bleed}% % % rotating graphics is supported, but % rotation of arbitrary material is not supported yet % \def\GXT@erotate#1#2{\Grot@setangle{#1}\hbox{#2}}% \def\set@GXT@erotate{\let\Gin@erotate\GXT@erotate} %\AtBeginDocument{\set@GXT@erotate} \expandafter\ifx\csname XeTeXpicfile\endcsname\relax \let\picfile@cmd\picfile \let\pdffile@cmd\pdffile \else \let\picfile@cmd\XeTeXpicfile \let\pdffile@cmd\XeTeXpdffile \fi % all graphics are handled by Apple's QuickTime % \def\XeTeX@include@QTm#1{% \def\picpage{}% \def\picpagebox{}% \edef\type@ext{% \noexpand\lowercase{% \noexpand\def\noexpand\type@ext{\Gin@ext}% }% }\type@ext \ifx\type@ext\G@pdf@ext \ifx\GPT@pagebox\@empty\else \edef\picpagebox{ \GPT@pagebox}\fi \ifx\Gin@XeTeX@page\@empty\else \edef\picpage{ page\Gin@XeTeX@page}\fi \def\picfilecommand{\pdffile@cmd}% \else \def\picfilecommand{\picfile@cmd}% \fi \edef\picfileargs{ \XeTeXquote#1\XeTeXquote\space\picpage\picpagebox}% \Gin@log{% % }% \ifx\Gscale@start\relax \setbox\z@=\hbox{\expandafter\picfilecommand\picfileargs}% \edef\next{\box\z@\egroup \def\noexpand\width{\the\wd\z@}\relax \def\noexpand\height{\the\ht\z@}\bgroup}% \expandafter\next \else \XeTeX@scaleinclude{#1}% \fi } \def\XeTeX@scaleinclude#1{% \def\@tempa{!}% \ifx\Gin@scaley\@tempa \let\Gin@scaley\Gin@scalex \else \ifx\Gin@scalex\@tempa\let\Gin@scalex\Gin@scaley\fi \fi \hbox{% \Gscale@box{\Gin@scalex}[\Gin@scaley]{% \@ifundefined{Gin@vllx}{% \GXT@viewportfalse % without viewport/trim clipping does not make sense % for XeTeX \Gin@clipfalse }{}% \ifGin@clip \if!\Gin@vllx\Gin@vlly\Gin@vurx\Gin@vury!% \else \let\GXT@clipend\GXT@DoClipEnd \setbox\@tempboxa\hbox\bgroup \fi \fi \ifGXT@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 % \expandafter\picfilecommand\picfileargs % \ifGXT@viewport \ifdim\Gin@vlly\p@=\z@ \else \egroup \fi \GXT@clipend \fi }% }% } \newif\ifGXT@viewport \GXT@viewporttrue \let\GXT@clipend\relax \def\GXT@DoClipEnd{% \egroup \dp\@tempboxa\z@ % \Gin@urx and \Gin@ury already contain the correct values, % so both cases viewport and trim can be handled together: \dimen@\Gin@urx\p@ \advance\dimen@ -\Gin@vllx\p@ \wd\@tempboxa\strip@pt\dimen@ bp\relax % \wd\@tempboxa\dimen@ \relax \dimen@\Gin@ury\p@ \advance\dimen@ -\Gin@vlly\p@ \ht\@tempboxa\strip@pt\dimen@ bp\relax % \ht\@tempboxa\dimen@ \relax % Clip box to its official size \GXT@clipbox\@tempboxa \box\@tempboxa } % Clipping support added by Martin Scharrer and Joseph Wright, Nov 2011 % under the LPPL v1.0 or later. \def\GXT@clipbox#1{% \setbox#1=\hbox{% \Gin@defaultbp\WIDTH{\wd#1}% \Gin@defaultbp\DEPTH{\dp#1}% \@tempdima\ht#1% \advance\@tempdima\dp#1% \Gin@defaultbp\TOTALHEIGHT{\@tempdima}% \special{pdf:content q }% \special{% pdf:literal direct 0 -\DEPTH\space \WIDTH\space \TOTALHEIGHT\space re }% \special{pdf:literal direct W }% \special{pdf:literal direct n }% \special{pdf:literal direct -1 0 0 -1 0 0 cm }% \special{pdf:content q }% \special{pdf:literal direct -1 0 0 -1 0 0 cm }% \box#1% \special{pdf:literal direct Q }% \special{pdf:literal direct Q }% }% } % End of clipping code % \def\Gread@QTm#1{\IfFileExists{\Gin@base.bb}% {\Gread@eps{\Gin@base.bb}}% {\G@measure@QTm{\Gin@base}{\Gin@ext}}% } \def\G@measure@QTm#1#2{% % \@warning{measuring size of QuickTime graphic #1#2}% \bgroup \edef\type@ext{% \noexpand\lowercase{% \noexpand\def\noexpand\type@ext{#2}% }% }\type@ext \ifx\type@ext\G@pdf@ext \ifx\Gin@XeTeX@page\@empty \def\picpage{}% \else \edef\picpage{ page\Gin@XeTeX@page}\fi \ifx\GPT@pagebox\@empty \def\picpagebox{}% \else \edef\picpagebox{ \GPT@pagebox}\fi \fi \setbox0=\hbox{% \ifx\type@ext\G@pdf@ext \edef\piccommand{\noexpand\pdffile@cmd \XeTeXquote#1#2\XeTeXquote\space\picpage\picpagebox}% \else \edef\piccommand{\noexpand\picfile@cmd \XeTeXquote#1#2\XeTeXquote\space}% \fi \piccommand }\dimen0=\wd0 \dimen2=\ht0 \edef\next{\egroup \edef\noexpand\Gin@urx{\the\dimen0}% \edef\noexpand\Gin@ury{\the\dimen2}% }% \next \Gin@defaultbp\Gin@llx{0}% \Gin@defaultbp\Gin@lly{0}% \expandafter\Gin@defaultbp\expandafter\Gin@urx\expandafter{\Gin@urx}% \expandafter\Gin@defaultbp\expandafter\Gin@ury\expandafter{\Gin@ury}% % \typeout{XeTeX: HiRes BoundingBox = (0,0)\space x (\Gin@urx,\Gin@ury) }% \Gin@nat@width=\Gin@urx\p@ \Gin@nat@height=\Gin@ury\p@ % these emulate \@begin@tempboxa \edef\width{\the\Gin@nat@width}% \edef\height{\the\Gin@nat@height}% \def\depth{0pt}% \let\totalheight\@ovri \totalheight\height } \let\Ginclude@QTm\XeTeX@include@QTm % For a new graphics type, you can include a line here ... \@namedef{Gin@rule@.pdf}#1{{QTm}{QTm}{#1}} \@namedef{Gin@rule@.PDF}#1{{QTm}{QTm}{#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}} % \@namedef{Gin@rule@.ps}#1{{eps}{.ps}{#1}} \@namedef{Gin@rule@.PS}#1{{eps}{.PS}{#1}} % \@namedef{Gin@rule@.png}#1{{QTm}{QTm}{#1}} \@namedef{Gin@rule@.PNG}#1{{QTm}{QTm}{#1}} % \@namedef{Gin@rule@.jpg}#1{{QTm}{QTm}{#1}} \@namedef{Gin@rule@.JPG}#1{{QTm}{QTm}{#1}} \@namedef{Gin@rule@.jpeg}#1{{QTm}{QTm}{#1}} \@namedef{Gin@rule@.JPEG}#1{{QTm}{QTm}{#1}} % \@namedef{Gin@rule@.jp2}#1{{QTm}{QTm}{#1}} \@namedef{Gin@rule@.JP2}#1{{QTm}{QTm}{#1}} % \@namedef{Gin@rule@.jpf}#1{{QTm}{QTm}{#1}} \@namedef{Gin@rule@.JPF}#1{{QTm}{QTm}{#1}} % \@namedef{Gin@rule@.bmp}#1{{QTm}{QTm}{#1}} \@namedef{Gin@rule@.BMP}#1{{QTm}{QTm}{#1}} % \@namedef{Gin@rule@.pict}#1{{QTm}{QTm}{#1}} \@namedef{Gin@rule@.PICT}#1{{QTm}{QTm}{#1}} % \@namedef{Gin@rule@.psd}#1{{QTm}{QTm}{#1}} \@namedef{Gin@rule@.PSD}#1{{QTm}{QTm}{#1}} % \@namedef{Gin@rule@.mac}#1{{QTm}{QTm}{#1}} \@namedef{Gin@rule@.MAC}#1{{QTm}{QTm}{#1}} \@namedef{Gin@rule@.tga}#1{{QTm}{QTm}{#1}} \@namedef{Gin@rule@.TGA}#1{{QTm}{QTm}{#1}} % \@namedef{Gin@rule@.gif}#1{{QTm}{QTm}{#1}} \@namedef{Gin@rule@.GIF}#1{{QTm}{QTm}{#1}} % \@namedef{Gin@rule@.tif}#1{{QTm}{QTm}{#1}} \@namedef{Gin@rule@.TIF}#1{{QTm}{QTm}{#1}} \@namedef{Gin@rule@.tiff}#1{{QTm}{QTm}{#1}} \@namedef{Gin@rule@.TIFF}#1{{QTm}{QTm}{#1}} % movies not supported yet: %\@namedef{Gin@rule@.qt}#1{{QTm}{QTm}{#1}} %\@namedef{Gin@rule@.mpg}#1{{QTm}{QTm}{#1}} %\@namedef{Gin@rule@.mov}#1{{QTm}{QTm}{#1}} %\@namedef{Gin@rule@.moov}#1{{QTm}{QTm}{#1}} % ... though this default rule will try QuickTime anyway ... \@namedef{Gin@rule@*}#1{{QTm}{QTm}{#1}} % ... and add its extension here \def\Gin@extensions{% order here is like dvipdfmx.def, except for PS .pdf,.PDF,.eps,.EPS,.mps,.MPS,.ps,.PS,% .png,.PNG,.jpg,.JPG,.jpeg,.JPEG,.jp2,.JP2,.jpf,.JPF,.bmp,.BMP,% .pict,.PICT,.psd,.PSD,.mac,.MAC,.TGA,.tga,% .gif,.GIF,.tif,.TIF,.tiff,.TIFF,% } % xdvipdfmx is now the default driver, and can support EPS images, % so we borrow code for this from dvipdfmx.def (and add the extensions above) \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} % % Rotation & Scaling % supported from xetex v0.6 onwards % \def\Grot@start{\wd\z@\z@ \special{x:gsave}\special{x:rotate \Grot@angle}} \def\Grot@end{\special{x:grestore}} \def\Gscale@start{% \special{x:gsave}\special{x:scale \Gscale@x\space\Gscale@y}} \let\Gscale@end\Grot@end % % % (no)setpagesize option % \@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 \fi }% }{% \ifdim\stockwidth>0pt\relax \ifdim\stockheight>0pt\relax \pdfpagewidth=\stockwidth \pdfpageheight=\stockheight \fi \fi }% \fi } \fi \fi \endinput %% %% End of file `xetex.def'.