summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/oberdiek/grffile.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2011-04-12 22:56:39 +0000
committerKarl Berry <karl@freefriends.org>2011-04-12 22:56:39 +0000
commit3c9b5c2960ae2455180bdb3a4e67bf10175b39af (patch)
tree53ac9731c23e82f60349ec920ed8d816738913dc /Master/texmf-dist/tex/latex/oberdiek/grffile.sty
parentf437333cf5d63d69f5ab9fd1eb553af4175037d0 (diff)
oberdiek (12apr11)
git-svn-id: svn://tug.org/texlive/trunk@22061 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/oberdiek/grffile.sty')
-rw-r--r--Master/texmf-dist/tex/latex/oberdiek/grffile.sty191
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
%%