summaryrefslogtreecommitdiff
path: root/macros/latex-dev/required/graphics/graphics.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex-dev/required/graphics/graphics.dtx')
-rw-r--r--macros/latex-dev/required/graphics/graphics.dtx88
1 files changed, 83 insertions, 5 deletions
diff --git a/macros/latex-dev/required/graphics/graphics.dtx b/macros/latex-dev/required/graphics/graphics.dtx
index f2471e94bb..ac570c0227 100644
--- a/macros/latex-dev/required/graphics/graphics.dtx
+++ b/macros/latex-dev/required/graphics/graphics.dtx
@@ -25,7 +25,7 @@
%<driver> \ProvidesFile{graphics.drv}
% \fi
% \ProvidesFile{graphics.dtx}
- [2019/07/20 v1.3b Standard LaTeX Graphics (DPC,SPQR)]
+ [2019/11/01 v1.3d Standard LaTeX Graphics (DPC,SPQR)]
%
% \iffalse
%<*driver>
@@ -1036,13 +1036,52 @@
% \begin{macro}{\Gin@sepdefault}
% \changes{v0.6a}{1994/11/29}
% {remove \cs{Gin@sep}}
+% \begin{macro}{\Gin@gzext}
+% \changes{v1.3d}{2019/11/01}
+% {macro added}
% This must match the token used by |\filename@parse| to delimit the
% extension.
% \begin{macrocode}
\def\Gin@sepdefault{.}
% \end{macrocode}
+%
+% \begin{macrocode}
+\edef\Gin@gzext{\detokenize{gz}}
+% \edef{macrocode}
% \end{macro}
%
+% \begin{macro}{\set@curr@file}
+% \begin{macro}{\quote@name}
+% \changes{v1.3c}{2019/10/08}
+% {Definitions added for old formats}
+% \begin{macrocode}
+\def\Gin@temp#1{%
+ \begingroup
+ \escapechar\m@ne
+ \xdef\@curr@file{\expandafter\string\csname #1\endcsname}%
+ \endgroup
+}
+\ifx\set@curr@file\@Gin@temp
+ \let\set@curr@file\@undefined
+\fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ifx\set@curr@file\@undefined
+\def\set@curr@file#1{%
+ \begingroup
+ \escapechar\m@ne
+ \xdef\@curr@file{\expandafter\string\csname\@firstofone#1\@empty\endcsname}%
+ \endgroup
+}
+\def\quote@name#1{"\quote@@name#1\@gobble""}
+\def\quote@@name#1"{#1\quote@@name}
+\def\unquote@name#1{\quote@@name#1\@gobble"}
+\fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
% \begin{macro}{\Ginclude@graphics}
% The main internal function implementing graphics file inclusion.
% |#1| is the file name.
@@ -1069,12 +1108,23 @@
\let\input@path\Ginput@path
% \end{macrocode}
% A lot of quote juggling going on here (room for improvements).
+%
+% \changes{v1.3d}{2019/11/01}
+% {\cs{curr@name} now unquoted}
% \begin{macrocode}
\set@curr@file{#1}%
- \edef\uq@curr@file{\expandafter\unquote@name\expandafter{\@curr@file}}%
- \expandafter\filename@parse\expandafter{\uq@curr@file}%
- \edef\filename@area{\expandafter\quote@name\expandafter{\filename@area}}%
- \edef\filename@base{\expandafter\quote@name\expandafter{\filename@base}}%
+ \expandafter\filename@parse\expandafter{\@curr@file}%
+% \end{macrocode}
+% If extension is |.gz| tack on to previous extension, eg |.eps.gz| if available.
+% \begin{macrocode}
+ \ifx\filename@ext\Gin@gzext
+ \expandafter\filename@parse\expandafter{\filename@base}%
+ \ifx\filename@ext\relax
+ \let\filename@ext\Gin@gzext
+ \else
+ \edef\Gin@ext{\Gin@ext\Gin@sepdefault\Gin@gzext}%
+ \fi
+ \fi
\ifx\filename@ext\relax
\@for\Gin@temp:=\Gin@extensions\do{%
\ifx\Gin@ext\relax
@@ -1083,6 +1133,34 @@
\else
\Gin@getbase{\Gin@sepdefault\filename@ext}%
% \end{macrocode}
+% At this point try adding an extension, even if the filename has one so
+% that \verb|a.b| may find \verb|a.b.png| if no file is found then revert
+% to the extension as given to get better error reporting.
+%
+% \changes{v1.3d}{2019/11/01}
+% {Try adding an extension even if the filenam had a dot.}
+% \begin{macrocode}
+\ifx\Gin@ext\relax
+\let\Gin@savedbase\filename@base
+\let\Gin@savedext\filename@ext
+ \edef\filename@base{\filename@base\Gin@sepdefault\filename@ext}%
+ \let\filename@ext\relax
+ \@for\Gin@temp:=\Gin@extensions\do{%
+ \ifx\Gin@ext\relax
+ \Gin@getbase\Gin@temp
+ \fi}%
+% \end{macrocode}
+% Restore if no file found using theknown extensions.
+% \begin{macrocode}
+ \ifx\Gin@ext\relax
+ \let\filename@base\Gin@savedbase
+ \let\filename@ext\Gin@savedext
+ \fi
+\fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+% \end{macrocode}
% \changes{v0.4d}{1994/05/06}
% {Make file not found a warning not an error}
% \changes{v0.6a}{1994/11/29}