diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/oberdiek/grffile.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/oberdiek/grffile.sty | 191 |
1 files changed, 155 insertions, 36 deletions
diff --git a/Master/texmf-dist/tex/latex/oberdiek/grffile.sty b/Master/texmf-dist/tex/latex/oberdiek/grffile.sty index 5bb1954a3e2..343ad25527e 100644 --- a/Master/texmf-dist/tex/latex/oberdiek/grffile.sty +++ b/Master/texmf-dist/tex/latex/oberdiek/grffile.sty @@ -32,7 +32,7 @@ %% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{grffile}% - [2010/01/28 v1.11 Extended file name support for graphics (HO)]% + [2010/12/09 v1.13 Extended file name support for graphics (HO)]% \edef\grffile@RestoreCatcodes{% \catcode`\noexpand\=\the\catcode`\=\relax \catcode`\noexpand\:\the\catcode`\:\relax @@ -53,12 +53,14 @@ \@makeother\* \catcode`\^=7 % \catcode`\~=\active -\RequirePackage{ifpdf} +\RequirePackage{ifpdf}[2010/01/28] +\RequirePackage{ifxetex}[2010/09/12] \RequirePackage{kvoptions}[2006/08/17] \SetupKeyvalOptions{% family=Gin,% prefix=grffile@% } +\DeclareDefaultOption{\@unknownoptionerror} \DeclareBoolOption[true]{multidot} \DeclareBoolOption[true]{babel} \DeclareBoolOption[false]{extendedchars} @@ -72,21 +74,25 @@ \PassOptionsToPackage\CurrentOption{graphics}% } \RequirePackage{pdftexcmds}[2007/11/11] -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname pdf@filesize\endcsname\relax - \grffile@spacefalse - \let\grffile@space@disabled\@empty - \def\grffile@spacetrue{% - \PackageWarning{grffile}{% - Option `space' is not available,\MessageBreak - because it needs pdfTeX >= 1.30% - }% - }% +\ifxetex + \grffile@spacetrue \else - \ifpdf - \grffile@spacetrue - \else + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname pdf@filesize\endcsname\relax \grffile@spacefalse + \let\grffile@space@disabled\@empty + \def\grffile@spacetrue{% + \PackageWarning{grffile}{% + Option `space' is not available,\MessageBreak + because it needs pdfTeX >= 1.30 or XeTeX% + }% + }% + \else + \ifpdf + \grffile@spacetrue + \else + \grffile@spacefalse + \fi \fi \fi \ProcessKeyvalOptions* @@ -135,7 +141,8 @@ \fi } \def\grffile@extchar@Ginclude@graphics#1{% - \def\grffile@filename{#1}% + \toks@{#1}% + \edef\grffile@filename{\the\toks@}% \ifx\grffile@inputencoding\@empty \else \ifx\grfile@filenameencoding\@empty @@ -161,8 +168,9 @@ \fi \fi \fi + \toks@\expandafter{\grffile@filename}% \edef\x{\endgroup - \noexpand\grffile@Ginclude@graphics{\grffile@filename}% + \noexpand\grffile@Ginclude@graphics{\the\toks@}% }% \x } @@ -194,24 +202,92 @@ } \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname pdf@filesize\endcsname\relax - \begingroup - \let\on@line\@empty - \PackageInfo{grffile}{% - \string\grffile@IfFileExists\space without space support,% - \MessageBreak - because pdfTeX's \string\pdffilesize\space is not available% + \ifxetex + \long\def\grffile@XeTeX@IfFileExists#1{% + \openin\@inputcheck"#1" % + \ifeof\@inputcheck + \closein\@inputcheck + \expandafter\@secondoftwo + \else + \closein\@inputcheck + \expandafter\@firstoftwo + \fi }% - \endgroup - \def\grffile@IfFileExists#1{% - \IfFileExists{#1}{% - \let\grffile@IFE@next\@firstoftwo - }{% - \let\grffile@IFE@next\@secondoftwo + \long\def\grffile@IfFileExists#1{% + \grffile@XeTeX@IfFileExists{#1}{% + \edef\grffile@file@found{#1}% + \@firstoftwo + }{% + \let\reserved@a\@secondoftwo + \ifx\input@path\@undefined + \else + \expandafter\@tfor\expandafter\reserved@b\expandafter + :\expandafter=\input@path\do{% + \grffile@XeTeX@IfFileExists{\reserved@b#1}{% + \edef\grffile@file@found{\reserved@b#1}% + \let\reserved@a\@firstoftwo + \@break@tfor + }{}% + }% + \fi + \reserved@a + }% }% - \grffile@IFE@next - }% + \def\grffile@org@Gread@QTm#1{% + \IfFileExists{\Gin@base.bb}{% + \Gread@eps{\Gin@base.bb}% + }{% + \G@measure@QTm{\Gin@base}{\Gin@ext}% + }% + }% + \ifx\Gread@QTm\grffile@org@Gread@QTm + \def\Gread@QTm#1{% + \grffile@IfFileExists{\Gin@base.bb}{% + \Gread@eps{\Gin@base.bb}% + }{% + \G@measure@QTm{\Gin@base}{\Gin@ext}% + }% + }% + \PackageInfo{grffile}{\string\Gread@QTm\space patched}% + \else + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname Gread@QTm\endcsname\relax + \PackageWarning{grffile}{% + \string\Gread@QTm\space of xetex.def not found% + }% + \else + \let\grffile@org@Gread@QTm\Gread@QTm + \def\Gread@QTm#1{% + \let\grffile@saved@IfFileExists\IfFileExists + \let\IfFileExists\grffile@IfFileExists + \grffile@org@GreadQTm{#1}% + \let\IfFileExists\grffile@saved@IfFileExists + }% + \fi + \fi + \else + \begingroup + \let\on@line\@empty + \PackageInfo{grffile}{% + \string\grffile@IfFileExists\space without space support,% + \MessageBreak + because pdfTeX's \string\pdffilesize\space is not available% + \MessageBreak + or XeTeX is not running% + }% + \endgroup + \long\def\grffile@IfFileExists#1{% + \IfFileExists{#1}{% + \let\grffile@IFE@next\@firstoftwo + }{% + \let\grffile@file@found\@filef@und + \let\grffile@IFE@next\@secondoftwo + }% + \grffile@IFE@next + }% + \fi \else - \def\grffile@IfFileExists#1{% + \long\def\grffile@IfFileExists#1{% \expandafter\expandafter\expandafter \ifx\expandafter\expandafter\expandafter\\\pdf@filesize{#1}\\% \let\reserved@a\@secondoftwo @@ -248,7 +324,6 @@ \grffile@org@Ginclude@graphics{#1}% \endgroup }% - \def\grffile@filename@simple#1.#2\\{% \ifx\\#2\\% \def\filename@base{#1}% @@ -258,7 +333,6 @@ \grffile@analyze@ext{#1}.{#2}\\% \fi } - \def\grffile@analyze@ext#1.#2\\{% \let\grffile@next\relax \ifx\\#2\\% @@ -283,7 +357,6 @@ \fi \grffile@next } - \def\grffile@try@extlist{% \@for\grffile@temp:=\Gin@extensions\do{% \grffile@IfFileExists{\filename@area\filename@base\grffile@temp}{% @@ -297,7 +370,6 @@ \expandafter\grffile@use@last@ext\filename@base.\\% \fi } - \def\grffile@use@last@ext#1.#2\\{% \ifx\\#2\\% \edef\filename@base{\expandafter\filename@dot\filename@base\\}% @@ -332,6 +404,53 @@ \grffile@option@status{multidot} \grffile@option@status{extendedchars} \grffile@option@status{space} +\def\grffile@Gin@ii@graphicx[#1]#2{% + \def\@tempa{[}% + \def\@tempb{#2}% + \ifx\@tempa\@tempb + \def\@tempa{\Gin@iii[#1][}% hash-ok + \expandafter\@tempa + \else + \begingroup + \@tempswafalse + \toks@{\Ginclude@graphics{#2}}% + \setkeys{Gin}{#1}% + \Gin@esetsize + \the\toks@ + \endgroup + \fi +} +\def\grffile@Gin@ii@fixed[#1]#2{% + \def\@tempa{[}% + \begingroup + \toks@={#2}% + \edef\@tempb{\the\toks@}% + \expandafter\endgroup + \ifx\@tempa\@tempb + \def\@tempa{\Gin@iii[#1][}% hash-ok + \expandafter\@tempa + \else + \begingroup + \@tempswafalse + \toks@{\Ginclude@graphics{#2}}% + \setkeys{Gin}{#1}% + \Gin@esetsize + \the\toks@ + \endgroup + \fi +} +\def\grffile@Fix@Gin@ii{% + \let\Gin@ii\grffile@Gin@ii@fixed + \begingroup + \escapechar=92 % + \PackageInfo{grffile}{\string\Gin@ii\space of package `graphicx' fixed}% + \endgroup +} +\ifx\Gin@ii\grffile@Gin@ii@graphicx + \grffile@Fix@Gin@ii +\else + \AtBeginDocument{\grffile@Fix@Gin@ii}% +\fi \grffile@RestoreCatcodes \endinput %% |