%% %% This is file `grffile.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% grffile.dtx (with options: `package') %% %% This is a generated file. %% %% Copyright (C) 2006-2010 by Heiko Oberdiek %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either %% version 1.3c of this license or (at your option) any later %% version. This version of this license is in %% http://www.latex-project.org/lppl/lppl-1-3c.txt %% and the latest version of this license is in %% http://www.latex-project.org/lppl.txt %% and version 1.3 or later is part of all distributions of %% LaTeX version 2005/12/01 or later. %% %% This work has the LPPL maintenance status "maintained". %% %% This Current Maintainer of this work is Heiko Oberdiek. %% %% This work consists of the main source file grffile.dtx %% and the derived files %% grffile.sty, grffile.pdf, grffile.ins, grffile.drv, %% grffile-test1.tex. %% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{grffile}% [2010/01/28 v1.11 Extended file name support for graphics (HO)]% \edef\grffile@RestoreCatcodes{% \catcode`\noexpand\=\the\catcode`\=\relax \catcode`\noexpand\:\the\catcode`\:\relax \catcode`\noexpand\.\the\catcode`\.\relax \catcode`\noexpand\'\the\catcode`\'\relax \catcode`\noexpand\<\the\catcode`\<\relax \catcode`\noexpand\>\the\catcode`\>\relax \catcode`\noexpand\*\the\catcode`\*\relax \catcode`\noexpand\^\the\catcode`\^\relax \catcode`\noexpand\~\the\catcode`\~\relax } \@makeother\= \@makeother\: \@makeother\. \@makeother\' \@makeother\< \@makeother\> \@makeother\* \catcode`\^=7 % \catcode`\~=\active \RequirePackage{ifpdf} \RequirePackage{kvoptions}[2006/08/17] \SetupKeyvalOptions{% family=Gin,% prefix=grffile@% } \DeclareBoolOption[true]{multidot} \DeclareBoolOption[true]{babel} \DeclareBoolOption[false]{extendedchars} \DeclareBoolOption{space} \DeclareVoidOption{encoding}{% \RequirePackage{stringenc}\relax } \DeclareStringOption{inputencoding} \DeclareStringOption{filenameencoding} \DeclareDefaultOption{% \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% }% }% \else \ifpdf \grffile@spacetrue \else \grffile@spacefalse \fi \fi \ProcessKeyvalOptions* \AtBeginDocument{% \DisableKeyvalOption[package=grffile]{Gin}{encoding}% } \RequirePackage{graphics} \newcommand*{\grffilesetup}{% \setkeys{Gin}% } \let\grffile@org@Ginclude@graphics\Ginclude@graphics \renewcommand*{\Ginclude@graphics}{% \ifx\grffile@filenameencoding\@empty \else \ifx\grffile@inputencoding\@empty \expandafter\ifx\csname inputencodingname\endcsname\relax \expandafter\ifx\csname CurrentInputEncodingOption\endcsname\relax \else \let\grffile@inputencoding\CurrentInputEncodingOption \fi \else \let\grffile@inputencoding\inputencodingname \fi \fi \ifx\grffile@inputencoding\@empty \else \grffile@extendedcharstrue \fi \fi \ifnum0\ifgrffile@babel 1\fi\ifgrffile@extendedchars 1\fi>\z@ \begingroup \ifgrffile@babel \csname @safe@activestrue\endcsname \edef~{\string~}% \fi \ifgrffile@extendedchars \grffile@inputenc@loop\^^A\^^H% \grffile@inputenc@loop\^^K\^^K% \grffile@inputenc@loop\^^N\^^_% \grffile@inputenc@loop\^^?\^^ff% \fi \expandafter\grffile@extchar@Ginclude@graphics \else \expandafter\grffile@Ginclude@graphics \fi } \def\grffile@extchar@Ginclude@graphics#1{% \def\grffile@filename{#1}% \ifx\grffile@inputencoding\@empty \else \ifx\grfile@filenameencoding\@empty \else \ifx\grffile@inputencoding\grffile@filenameencoding \else \expandafter\ifx\csname StringEncodingConvert\endcsname\relax \PackageError{grffile}{% Package `stringenc' is not loaded,\MessageBreak omitting file name conversion% }\@ehc \else \StringEncodingConvert\grffile@temp\grffile@filename \grffile@inputencoding\grffile@filenameencoding \StringEncodingSuccessFailure{% \let\grffile@filename\grffile@temp }{% \PackageError{grffile}{% Filename conversion failed% }\@ehc }% \fi \fi \fi \fi \edef\x{\endgroup \noexpand\grffile@Ginclude@graphics{\grffile@filename}% }% \x } \def\grffile@inputenc@loop#1#2{% \count@=`#1\relax \loop \begingroup \uccode`\~=\count@ \uppercase{% \endgroup \edef~{\string~}% }% \ifnum\count@<`#2\relax \advance\count@\@ne \repeat } \def\grffile@space@getbase#1{% \edef\grffile@tempa{% \def\noexpand\@tempa####1#1\noexpand\@nil{% \def\noexpand\Gin@base{####1}% }% }% \grffile@IfFileExists{\filename@area\filename@base#1}{% \grffile@tempa \expandafter\@tempa\grffile@file@found\@nil \edef\Gin@ext{#1}% }{% }% } \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% }% \endgroup \def\grffile@IfFileExists#1{% \IfFileExists{#1}{% \let\grffile@IFE@next\@firstoftwo }{% \let\grffile@IFE@next\@secondoftwo }% \grffile@IFE@next }% \else \def\grffile@IfFileExists#1{% \expandafter\expandafter\expandafter \ifx\expandafter\expandafter\expandafter\\\pdf@filesize{#1}\\% \let\reserved@a\@secondoftwo \ifx\input@path\@undefined \else \expandafter\@tfor\expandafter\reserved@b\expandafter :\expandafter=\input@path\do{% \expandafter\expandafter\expandafter \ifx\expandafter\expandafter\expandafter \\\pdf@filesize{\reserved@b#1}\\% \else \edef\grffile@file@found{\reserved@b#1}% \let\reserved@a\@firstoftwo \@break@tfor \fi }% \fi \expandafter\reserved@a \else \edef\grffile@file@found{#1}% \expandafter\@firstoftwo \fi }% \fi \def\grffile@Ginclude@graphics#1{% \begingroup \ifgrffile@space \let\Gin@getbase\grffile@space@getbase \fi \ifgrffile@multidot \let\filename@base\@empty \let\filename@simple\grffile@filename@simple \fi \grffile@org@Ginclude@graphics{#1}% \endgroup }% \def\grffile@filename@simple#1.#2\\{% \ifx\\#2\\% \def\filename@base{#1}% \let\filename@ext\relax \else \def\filename@base{}% \grffile@analyze@ext{#1}.{#2}\\% \fi } \def\grffile@analyze@ext#1.#2\\{% \let\grffile@next\relax \ifx\\#2\\% \edef\filename@base{\filename@base#1}% \let\filename@ext\relax \def\grffile@next{\grffile@try@extlist}% \else \edef\filename@base{\filename@base #1}% \edef\filename@ext{\filename@dot#2\\}% \expandafter\ifx\csname Gin@rule@.\filename@ext\endcsname\relax \edef\filename@base{\filename@base.}% \def\grffile@next{\grffile@analyze@ext#2\\}% \else \grffile@IfFileExists{\filename@area\filename@base.\filename@ext}{% % success }{% \edef\filename@base{\filename@base.\filename@ext}% \let\filename@ext\relax \def\grffile@next{\grffile@try@extlist}% }% \fi \fi \grffile@next } \def\grffile@try@extlist{% \@for\grffile@temp:=\Gin@extensions\do{% \grffile@IfFileExists{\filename@area\filename@base\grffile@temp}{% \ifx\filename@ext\relax \edef\filename@ext{\expandafter\@gobble\grffile@temp\@empty}% \fi }{}% }% \ifx\filename@ext\relax \expandafter\let\expandafter\filename@base\expandafter\@empty \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\\}% \def\filename@ext{#1}% \expandafter\@gobble \else \edef\filename@base{\filename@base#1.}% \expandafter\@firstofone \fi {% \grffile@use@last@ext#2\\% }% } \def\grffile@option@status#1{% \begingroup \let\on@line\@empty \PackageInfo{grffile}{% Option `#1' is % \expandafter\ifx\csname ifgrffile@#1\expandafter\endcsname \csname iftrue\endcsname set to `true'% \else \expandafter\ifx\csname grffile@#1@disabled\endcsname\@empty not available% \else set to `false'% \fi \fi }% \endgroup } \grffile@option@status{multidot} \grffile@option@status{extendedchars} \grffile@option@status{space} \grffile@RestoreCatcodes \endinput %% %% End of file `grffile.sty'.