summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/oberdiek/epstopdf.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/oberdiek/epstopdf.dtx')
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/epstopdf.dtx564
1 files changed, 470 insertions, 94 deletions
diff --git a/Master/texmf-dist/source/latex/oberdiek/epstopdf.dtx b/Master/texmf-dist/source/latex/oberdiek/epstopdf.dtx
index 2086605677a..210c8b54421 100644
--- a/Master/texmf-dist/source/latex/oberdiek/epstopdf.dtx
+++ b/Master/texmf-dist/source/latex/oberdiek/epstopdf.dtx
@@ -18,7 +18,7 @@
% This work consists of the main source file epstopdf.dtx
% and the derived files
% epstopdf.sty, epstopdf.pdf, epstopdf.ins, epstopdf.drv,
-% epstopdf-test1.tex.
+% epstopdf-base.sty, epstopdf-test1.tex.
%
% Distribution:
% CTAN:macros/latex/contrib/oberdiek/epstopdf.dtx
@@ -52,6 +52,7 @@
%
% Installation:
% TDS:tex/latex/oberdiek/epstopdf.sty
+% TDS:tex/latex/oberdiek/epstopdf-base.sty
% TDS:doc/latex/oberdiek/epstopdf.pdf
% TDS:doc/latex/oberdiek/test/epstopdf-test1.tex
% TDS:source/latex/oberdiek/epstopdf.dtx
@@ -69,7 +70,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: epstopdf 2009/03/01 v1.8 Conversion with epstopdf on the fly (HO)}
+\Msg{* Package: epstopdf 2009/07/16 v2.2 Conversion with epstopdf on the fly (HO)}
\Msg{************************************************************************}
\keepsilent
@@ -98,7 +99,7 @@ This Current Maintainer of this work is Heiko Oberdiek.
This work consists of the main source file epstopdf.dtx
and the derived files
epstopdf.sty, epstopdf.pdf, epstopdf.ins, epstopdf.drv,
- epstopdf-test1.tex.
+ epstopdf-base.sty, epstopdf-test1.tex.
\endpreamble
\let\MetaPrefix\DoubleperCent
@@ -108,6 +109,7 @@ and the derived files
\file{epstopdf.drv}{\from{epstopdf.dtx}{driver}}%
\usedir{tex/latex/oberdiek}%
\file{epstopdf.sty}{\from{epstopdf.dtx}{package}}%
+ \file{epstopdf-base.sty}{\from{epstopdf.dtx}{base}}%
\usedir{doc/latex/oberdiek/test}%
\file{epstopdf-test1.tex}{\from{epstopdf.dtx}{test1}}%
}
@@ -116,9 +118,9 @@ and the derived files
\Msg{************************************************************************}
\Msg{*}
\Msg{* To finish the installation you have to move the following}
-\Msg{* file into a directory searched by TeX:}
+\Msg{* files into a directory searched by TeX:}
\Msg{*}
-\Msg{* epstopdf.sty}
+\Msg{* epstopdf.sty, epstopdf-base.sty}
\Msg{*}
\Msg{* And install the following script file:}
\Msg{*}
@@ -139,7 +141,7 @@ and the derived files
%<*driver>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{epstopdf.drv}%
- [2009/03/01 v1.8 Conversion with epstopdf on the fly (HO)]%
+ [2009/07/16 v2.2 Conversion with epstopdf on the fly (HO)]%
\documentclass{ltxdoc}
\usepackage{holtxdoc}[2008/08/11]
\begin{document}
@@ -148,7 +150,7 @@ and the derived files
%</driver>
% \fi
%
-% \CheckSum{618}
+% \CheckSum{907}
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -169,7 +171,7 @@ and the derived files
% \GetFileInfo{epstopdf.drv}
%
% \title{The \xpackage{epstopdf} package}
-% \date{2009/03/01 v1.8}
+% \date{2009/07/16 v2.2}
% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
%
% \maketitle
@@ -207,7 +209,7 @@ and the derived files
% does not allow the execution of external commands.
% Therefore commands in the last argument of
% \cs{DeclareGraphicsRule} were of no use.
-% But external programs can be calles within \pdfTeX.
+% But external programs can be called within \pdfTeX.
% This feature is called ``shell escape'' or ``write 18''
% and must usually enabled explicitely because of security reasons.
% Now, this package \xpackage{epstopdf} hooks
@@ -246,8 +248,8 @@ and the derived files
% be used and configured by \cs{DeclareGraphicsRule}.
% Example:
% \begin{quote}
-% |\DeclareGraphicsRule{.eps}{pdf}{.pdf}{%|\\
-% | `ps2pdf -dEPSCrop #1 \OutputFile|\\
+% |\epstopdfDeclareGraphicsRule{.eps}{pdf}{.pdf}{%|\\
+% | ps2pdf -dEPSCrop #1 \OutputFile|\\
% |}|
% \end{quote}
% \end{itemize}
@@ -276,28 +278,34 @@ and the derived files
% The algorithm:
% \begin{quote}
% \def\>{\mbox{}\quad}
-% function search( \meta{filebase} )
+% function search( \meta{filebase} )\\
% \>foreach \meta{ext} in \meta{graphics extensions}\\
% \>\>foreach \meta{dir} in \meta{current directory}, \meta{\cs{graphicspath}}\\
% \>\>\>\meta{file} := \meta{dir} + \meta{filebase} + \meta{ext}\\
-% \>\>\>if exist \meta{file}
-% \>\>\>\>return found
+% \>\>\>if exist \meta{file}\\
+% \>\>\>\>return found\\
% \>return not found
% \end{quote}
% Package \xpackage{epstopdf} puts \xfile{.eps} at the end of the
-% graphics extension list. This is the behaviour of option
+% graphics extension search list. This is the behaviour of option
% \xoption{append} that is enabled by default.
% That means, the conversion is called last
% unless a supported file type cannot be found earlier. This avoids
% unnecessary conversion steps that slow down the \LaTeX\ run.
% If you want to use option \xoption{update} and your \pdfTeX\ supports
-% it, then an outdated PDF file also would be found earlier.
-% Therefore extension \xfile{.eps} should be put in front of the list.
-% This is achieved by option \xoption{prepend}. Then the EPS file
-% is found before the PDF file. Then option \xoption{update}
-% have the control and can compare file dates.
+% it, then an outdated PDF file also would be found earlier unless
+% \xoption{suffix} is used that is the default since version 2.0.
+%
+% With an empty option \xoption{suffix} and option
+% \xoption{prepend} there is a risk that an original PDF file is overwritten:
%
-% Note: Usually the conversion program needs the exact location
+% If the original image file is the PDF file and there is also a generated
+% EPS file, then the original PDF file can be regenerated (depending
+% on the option settings) and the original PDF file gets lost.
+% Therefore option \xoption{suffix} is introduced in version 1.9
+% to create a separate name space for generated output files.
+%
+% \textbf{Note:} Usually the conversion program needs the exact location
% of the image file. Usually the current directory works.
% Also if the image file is found using \cs{graphicspath}, the
% location is known. However, if the image is somewhere
@@ -312,6 +320,14 @@ and the derived files
% Options can be given as package options or later using:
% \begin{declcs}{epstopdfsetup} \M{key value list}
% \end{declcs}
+% \LaTeX\ expands the option list before passing the option list
+% to the package's option handling code. This can fail
+% for option \xoption{suffix} if it contains some of the macros
+% described below. Use \cs{epstopdfsetup} after the package is loaded.
+% Or load package \xpackage{kvoptions-patch} before. This package
+% is also loaded by option \xoption{patch} of package \xpackage{kvoptions}.
+% \LaTeX's option code is redefined to respect key value options and
+% let the values untouched.
%
% \begin{description}
% \def\It#1{\item[\xoption{#1}:]}^^A
@@ -332,33 +348,100 @@ and the derived files
% \end{quote}
% For other directories ensure, that they can be found.
% See \cs{graphicspath} or |TEXINPUTS|.
+% \It{suffix}
+% This option takes a string that is put between the file name base
+% and the extension of the output file. Rationale: It can happen,
+% that a PDF file is the original file and the EPS file the
+% generated file. If now the package thinks, that the PDF file
+% is the generated file, it will `regnerate' it. But in reality
+% the original file is lost. Therefore I recommend to use this
+% option always to generate a separate name space for generated
+% files. Proposed value is \texttt{-generated} or \texttt{.generated}.
+% The suffix \texttt{.generated} will also work here without the need for
+% package \xpackage{grffile}).
+%
+% Example:
+% \begin{quote}
+% |\epstopdfsetup{suffix=-generated}|\\
+% Then \xfile{foo.eps} is converted to \xfile{foo-generated.pdf}.
+% \end{quote}
+% \cs{SourceExt} can be used inside the suffix string.
+% It's will be replaced by the extension of the image source
+% file without the leading dot, for instance:
+% \begin{quote}
+% |\epstopdfsetup{suffix=-\SourceExt-converted-to}|\\
+% \xfile{foo.eps} $\Rightarrow$ \xfile{foo-eps-converted-to.pdf}
+% \end{quote}
+% See also the next option \xoption{prefersuffix} that
+% modifies the behaviour of option \xoption{suffix} in some
+% cases.
+%
+% Default for \xoption{suffix} is `|-\SourceExt-converted-to|'.
+%
+% \It{prefersuffix}
+% If a suffix is set by option \xoption{suffix}, then there can be
+% two image file names that could be taken into account for inclusion:
+% A image file name with the suffix string inside
+% its name and a image file name without; e.g. for \xfile{foo.eps}
+% the names could be:
+% \begin{quote}
+% \xfile{foo-suffix.pdf}, \xfile{foo.pdf}
+% \end{quote}
+% If option \xoption{perfersuffix} is turned on, the
+% file \xfile{foo-suffix.pdf} and its generation is preferred
+% over using \xfile{foo.pdf}. Otherwise \xfile{foo.pdf} is included
+% without generating \xfile{foo-suffix.pdf}.
+% The default of option \xoption{prefersuffix} is \texttt{true}.
% \It{verbose}
-% It prints some information about the image in the \xfile{.log} file.
+% It prints some information about the image in the \xfile{.log} file
+% (default).
% \end{description}
%
% \subsection{Configuration}
%
-% \subsubsection{Configuration file}
+% \subsubsection{System configuration file \xfile{epstopdf-sys.cfg}}
+%
+% If \xfile{epstopdf-sys} exists it is loaded at the end of the
+% package \xpackage{epstopdf-base} and before the user configuration
+% file. It's intended for TeX distributors. Thus they could add
+% additional conversion rules (e.g., .gif -> .png) or set options.
+%
+% \subsubsection{User configuration file \xfile{epstopdf.cfg}}
%
% A configuration file \xfile{epstopdf.cfg} is loaded at the end
% of the package if it exists. It can be used for changing
-% the default option setting. My favourite setting is:
+% the default option setting. Example:
% \begin{quote}
-% |\epstopdfsetup{update,prepend,verbose}|
+% |\epstopdfsetup{verbose=false}|
% \end{quote}
%
% \subsubsection{Conversion program}
%
-% You can use \cs{DeclareGraphicsRule} the same way as the
+% You can use \cs{DeclareGraphicsRule} in a similar way as the
% route via \xprogram{dvips} to specify the conversion
-% command line, examples below.
-%
-% Additionally you can use the following macros:
+% command line.
+% The conversion argument starts with a back tick, followed
+% by the conversion command including parameters.
+%
+% The whole conversion argument should also be wrapped inside
+% \cs{epstopdfcall}. This reduces the problem with packages
+% (e.g. \xpackage{pst-pdf}) that use the conversion argument
+% and expands it. Macros \cs{SourceFile}, \cs{OutputFile}, and
+% \cs{SourceExt} are not defined outside \xpackage{epstopdf-base}'s
+% \cs{Gin@setfile} and error messages because of undefined
+% command names are the result. If \cs{epstopdfcall} detects that
+% it is called outside \xpackage{epstopdf-base}'s \cs{Gin@setfile}
+% then it replaces the conversion argument by
+% package \xpackage{graphics}'s
+% default, usually the image file.
+%
+% The following macros are available inside:
% \begin{description}
% \def\It#1{\item[\cs{#1}:]}
% \It{OutputFile}: output file name (with known path and extension)
% \It{SourceFile}: source file name (with known path and extension),
-% usually the same as |#1|.
+% usually the same as |#1|,
+% \It{SourceExt}: source extension without leading dot.
% \end{description}
%
% \paragraph{Conversion from EPS to PDF.}
@@ -366,11 +449,19 @@ and the derived files
% EPS to PDF. Example that uses \xprogram{Ghostscript}:
% \begin{quote}
% |\DeclareGraphicsRule{.eps}{pdf}{.pdf}{%|\\
-% | `ps2pdf -dEPSCrop #1 \noexpand\OutputFile|\\
+% | \epstopdfcall{`ps2pdf -dEPSCrop #1 \noexpand\OutputFile}%|\\
% |}|
% \end{quote}
% \cs{DeclareGraphicsRule} expands the argument, therefore \cs{noexpand}
-% is necessary.
+% is necessary. As convenience package \xpackage{epstopdf-base} defines
+% \cs{epstopdfDeclareGraphicsRule}. Then the conversion argument
+% is not expanded, \cs{epstopdfcall} and the back tick are added:
+% \begin{quote}
+% |\epstopdfDeclareGraphicsRule{.eps}{pdf}{.pdf}{%|\\
+% | ps2pdf -dEPSCrop #1 \OutputFile|\\
+% |}|
+% \end{quote}
+%
% Also \cs{OutputFile} respects the setting of option \xoption{outdir}.
%
% \subsection{Other image formats}
@@ -381,8 +472,8 @@ and the derived files
% ImageMagick's \xprogram{convert}:
%\begin{quote}
%\begin{verbatim}
-%\DeclareGraphicsRule{.gif}{png}{.png}{%
-% `convert #1 \noexpand\OutputFile
+%\epstopdfDeclareGraphicsRule{.gif}{png}{.png}{%
+% convert #1 \OutputFile
%}
%\end{verbatim}
%\end{quote}
@@ -405,9 +496,8 @@ and the derived files
%<*package>
% \end{macrocode}
%
-% \subsection{Preparations}
+% \subsection{Wrapper package}
%
-% \subsubsection{Relead check and identification}
% Reload check, especially if the package is not used with \LaTeX.
% \begin{macrocode}
\begingroup
@@ -474,7 +564,134 @@ and the derived files
\fi
\expandafter\x\csname ver@epstopdf.sty\endcsname
\ProvidesPackage{epstopdf}%
- [2009/03/01 v1.8 Conversion with epstopdf on the fly (HO)]
+ [2009/07/16 v2.2 Conversion with epstopdf on the fly (HO)]
+% \end{macrocode}
+% \begin{macrocode}
+\begingroup
+ \catcode123 1 % {
+ \catcode125 2 % }
+ \def\x{\endgroup
+ \expandafter\edef\csname ETE@AtEnd\endcsname{%
+ \catcode35 \the\catcode35\relax
+ \catcode64 \the\catcode64\relax
+ \catcode123 \the\catcode123\relax
+ \catcode125 \the\catcode125\relax
+ }%
+ }%
+\x
+\catcode35 6 % #
+\catcode64 11 % @
+\catcode123 1 % {
+\catcode125 2 % }
+\def\TMP@EnsureCode#1#2{%
+ \edef\ETE@AtEnd{%
+ \ETE@AtEnd
+ \catcode#1 \the\catcode#1\relax
+ }%
+ \catcode#1 #2\relax
+}
+\TMP@EnsureCode{42}{12}% *
+\TMP@EnsureCode{45}{12}% -
+\TMP@EnsureCode{47}{12}% /
+% \end{macrocode}
+%
+% \begin{macrocode}
+\let\ETE@SavedAtEnd\ETE@AtEnd
+\RequirePackage{epstopdf-base}[2009/07/16]
+\let\ETE@AtEnd\ETE@SavedAtEnd
+% \end{macrocode}
+%
+% \subsubsection{Option handling}
+%
+% \begin{macrocode}
+\DeclareOption*{%
+ \expandafter\epstopdfsetup\expandafter{\CurrentOption}%
+}
+\ProcessOptions*\relax
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ETE@AtEnd
+%</package>
+% \end{macrocode}
+%
+% \subsection{Base package}
+%
+% \begin{macrocode}
+%<*base>
+% \end{macrocode}
+%
+% \subsection{Preparations}
+%
+% \subsubsection{Relead check and identification}
+%
+% Reload check, especially if the package is not used with \LaTeX.
+% \begin{macrocode}
+\begingroup
+ \catcode44 12 % ,
+ \catcode45 12 % -
+ \catcode46 12 % .
+ \catcode58 12 % :
+ \catcode64 11 % @
+ \expandafter\let\expandafter\x\csname ver@epstopdf-base.sty\endcsname
+ \ifcase 0%
+ \ifx\x\relax % plain
+ \else
+ \ifx\x\empty % LaTeX
+ \else
+ 1%
+ \fi
+ \fi
+ \else
+ \catcode35 6 % #
+ \catcode123 1 % {
+ \catcode125 2 % }
+ \expandafter\ifx\csname PackageInfo\endcsname\relax
+ \def\x#1#2{%
+ \immediate\write-1{Package #1 Info: #2.}%
+ }%
+ \else
+ \def\x#1#2{\PackageInfo{#1}{#2, stopped}}%
+ \fi
+ \x{epstopdf-base}{The package is already loaded}%
+ \endgroup
+ \expandafter\endinput
+ \fi
+\endgroup
+% \end{macrocode}
+% Package identification:
+% \begin{macrocode}
+\begingroup
+ \catcode35 6 % #
+ \catcode40 12 % (
+ \catcode41 12 % )
+ \catcode44 12 % ,
+ \catcode45 12 % -
+ \catcode46 12 % .
+ \catcode47 12 % /
+ \catcode58 12 % :
+ \catcode64 11 % @
+ \catcode123 1 % {
+ \catcode125 2 % }
+ \expandafter\ifx\csname ProvidesPackage\endcsname\relax
+ \def\x#1#2#3[#4]{\endgroup
+ \immediate\write-1{Package: #3 #4}%
+ \xdef#1{#4}%
+ }%
+ \else
+ \def\x#1#2[#3]{\endgroup
+ #2[{#3}]%
+ \ifx#1\@undefined
+ \xdef#1{#3}%
+ \fi
+ \ifx#1\relax
+ \xdef#1{#3}%
+ \fi
+ }%
+ \fi
+\expandafter\x\csname ver@epstopdf-base.sty\endcsname
+\ProvidesPackage{epstopdf-base}%
+ [2009/07/16 v2.2 Base part for package epstopdf]
% \end{macrocode}
%
% \subsubsection{Catcodes}
@@ -593,10 +810,32 @@ and the derived files
\DeclareVoidOption{prepend}{\ETE@prependtrue}
\DeclareVoidOption{append}{\ETE@prependfalse}
\DeclareStringOption{outdir}
-\ProcessKeyvalOptions*
+\DeclareStringOption{suffix}
+\DeclareBoolOption{prefersuffix}
+% \end{macrocode}
+% Options \xoption{disable} and \xoption{enable} are for testing
+% only. Therefore they are not documented on purpose.
+% \begin{macrocode}
+\DeclareBoolOption{disable}
+\DeclareComplementaryOption{enable}{disable}
+% \end{macrocode}
+% \begin{macrocode}
\newcommand*{\epstopdfsetup}{\setkeys{ETE}}
% \end{macrocode}
%
+% \subsubsection{Default setting}
+%
+% \begin{macrocode}
+\epstopdfsetup{%
+ verbose,%
+ enable,%
+ append,%
+ update,%
+ prefersuffix,%
+ suffix=-\SourceExt-converted-to%
+}
+% \end{macrocode}
+%
% \subsection{Make and verbose}
%
% \begin{macrocode}
@@ -681,79 +920,177 @@ and the derived files
\@ehc
}%
\fi
+\def\ETE@IfFileExists{%
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname grffile@IfFileExists\endcsname\relax
+ \expandafter\IfFileExists
+ \else
+ \global\let\ETE@IfFileExists\grffile@IfFileExists
+ \expandafter\grffile@IfFileExists
+ \fi
+}
+\def\ETE@Skip#1#2\x\fi\fi{%
+ \fi
+ \fi
+ \endgroup
+ \fi
+ \fi
+ #1%
+}
+\newif\ifETE@InsideSetfile
+\newcommand*{\epstopdfcall}[1]{%
+ \ifETE@InsideSetfile
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {`#1}%
+ {\Gin@base\Gin@ext}%
+}
+\def\ETE@DefCommandLine#1{%
+ \edef\CommandLine{\expandafter\fi\if`#1}%
+}
+\def\ETE@DefX#1{%
+ \expandafter\expandafter\expandafter\def
+ \expandafter\expandafter\expandafter\x
+ \expandafter\expandafter\expandafter{%
+ \expandafter\fi\if`#1\relax\else
+ }%
+}
\def\Gin@setfile#1#2#3{%
- \if`\@car #3\relax\@nil
+ \ifETE@disable
+ \ETE@OrgGin@setfile{#1}{#2}{#3}%
+ \else
\begingroup
- \def\GraphicsType{#1}%
- \def\GraphicsRead{#2}%
- \ifx\Gin@ext\relax
- \def\SourceFile{\Gin@base\Gin@eext}%
- \else
- \def\SourceFile{\Gin@base\Gin@ext}%
- \fi
- \let\OutputDirectory\ETE@outdir
- \ifx\OutputDirectory\@empty
- \def\OutputFile{\Gin@base#2}%
- \else
- \begingroup
- \filename@parse{\Gin@base#2}%
- \edef\x{\endgroup
- \def\noexpand\OutputFile{%
- \OutputDirectory\filename@base#2%
+ \ETE@InsideSetfiletrue
+ \ETE@DefX{#3}%
+ \expandafter\endgroup
+ \ifx\x\@empty
+ \ETE@OrgGin@setfile{#1}{#2}{#3}%
+ \else
+ \begingroup
+ \ETE@InsideSetfiletrue
+ \def\GraphicsType{#1}%
+ \def\GraphicsRead{#2}%
+ \ifETE@prefersuffix
+ \else
+ \ifx\ETE@suffix\@empty
+ \else
+ \ETE@IfFileExists{\Gin@base\GraphicsRead}{%
+ \ETE@Skip{%
+ \ETE@OrgGin@setfile{#1}{#2}{\Gin@base#2}%
+ }%
+ }{%
+ \let\next\relax
}%
- }%
- \x
- \fi
- \edef\CommandLine{\@cdr#3\@empty\@nil}%
- \ifETE@verbose
- \@PackageInfo{epstopdf}{%
- \ETE@FileInfo{Source}\SourceFile\MessageBreak
- \ETE@FileInfo{Output}\OutputFile\MessageBreak
- Command: <\CommandLine>\MessageBreak
- \string\includegraphics
- }%
- \fi
- \ETE@Make\SourceFile\OutputFile{%
- \pdf@system{\CommandLine}%
- \ifETE@verbose
- \@PackageInfoNoLine{epstopdf}{%
- \ETE@FileInfo{Result}\OutputFile
- }%
+ \next
+ \fi
\fi
- }%
- \edef\x{\endgroup
+ \ifx\Gin@ext\relax
+ \let\SourceExt\Gin@eext
+ \def\SourceFile{\Gin@base\Gin@eext}%
+ \else
+ \let\SourceExt\Gin@ext
+ \def\SourceFile{\Gin@base\Gin@ext}%
+ \fi
+ \edef\SourceExt{% remove dot
+ \expandafter\@cdr\SourceExt\@empty\@nil
+ }%
+ \let\OutputDirectory\ETE@outdir
\ifx\OutputDirectory\@empty
+ \edef\OutputFile{\ETE@GenerateName{\Gin@base}{#2}}%
\else
- \def\noexpand\Gin@base{%
- \OutputDirectory\noexpand\filename@base
+ \begingroup
+ \filename@parse{\Gin@base#2}%
+ \edef\x{\endgroup
+ \def\noexpand\OutputFile{%
+ \ETE@GenerateName{%
+ \OutputDirectory\filename@base
+ }{#2}%
+ }%
+ }%
+ \x
+ \fi
+ \ETE@DefCommandLine{#3}%
+ \ifETE@verbose
+ \@PackageInfo{epstopdf}{%
+ \ETE@FileInfo{Source}\SourceFile\MessageBreak
+ \ETE@FileInfo{Output}\OutputFile\MessageBreak
+ Command: <\CommandLine>\MessageBreak
+ \string\includegraphics
}%
\fi
- \noexpand\ETE@OrgGin@setfile{%
- \GraphicsType
- }{%
- \GraphicsRead
- }{%
- \OutputFile
+ \ETE@Make\SourceFile\OutputFile{%
+ \pdf@system{\CommandLine}%
+ \ifETE@verbose
+ \@PackageInfoNoLine{epstopdf}{%
+ \ETE@FileInfo{Result}\OutputFile
+ }%
+ \fi
}%
- }%
- \x
+ \edef\x{\endgroup
+ \ifx\OutputDirectory\@empty
+ \else
+ \def\noexpand\Gin@base{%
+ \OutputDirectory\noexpand\filename@base
+ }%
+ \fi
+ \ifx\ETE@suffix\@empty
+ \else
+ \edef\noexpand\Gin@base{\Gin@base\ETE@suffix}%
+ \fi
+ \noexpand\ETE@OrgGin@setfile{%
+ \GraphicsType
+ }{%
+ \GraphicsRead
+ }{%
+ \OutputFile
+ }%
+ }%
+ \x
+ \fi
+ \fi
+}
+\def\ETE@GenerateName#1#2{%
+ #1\ETE@suffix#2%
+}
+% \end{macrocode}
+%
+% \subsection{Declare graphics rule}
+%
+% \begin{macrocode}
+\newcommand*{\epstopdfDeclareGraphicsRule}[4]{%
+ \ifx\\#4\\%
+ \@PackageError{epstopdf-base}{%
+ Conversion command is missing%
+ }\@ehc
\else
- \ETE@OrgGin@setfile{#1}{#2}{#3}%
+ \begingroup
+ \@ifundefined{Gin@rule@#1}{%
+ }{%
+ \@PackageInfo{epstopdf-base}{%
+ Redefining graphics rule for `#1'%
+ }%
+ }%
+ \endgroup
+ \@namedef{Gin@rule@#1}##1{{#2}{#3}{\epstopdfcall{#4}}}%
\fi
}
% \end{macrocode}
%
% \cs{DeclareGraphicsRule} for .eps
% \begin{macrocode}
-\expandafter\ifx\csname Gin@rule@.eps\endcsname\relax
-\else
- \@PackageInfo{epstopdf}{Overwriting graphics rule for `.eps'}%
-\fi
-\@namedef{Gin@rule@.eps}#1{{pdf}{.pdf}{`\ETE@epstopdf{#1}}}
+\epstopdfDeclareGraphicsRule{.eps}{pdf}{.pdf}{%
+ \ETE@epstopdf{#1}%
+}
\def\ETE@epstopdf#1{%
epstopdf %
- \ifx\OutputDirectory\@empty
- \else
+ \ifcase\ifx\OutputDirectory\@empty
+ \ifx\ETE@suffix\@empty
+ 1%
+ \fi
+ \fi
+ 0 %
--outfile=\OutputFile\space
\fi
#1%
@@ -778,12 +1115,13 @@ and the derived files
% \end{macrocode}
%
% \begin{macrocode}
+\InputIfFileExists{epstopdf-sys.cfg}{}{}
\InputIfFileExists{epstopdf.cfg}{}{}
% \end{macrocode}
%
% \begin{macrocode}
\ETE@AtEnd
-%</package>
+%</base>
% \end{macrocode}
%
% \section{Test}
@@ -946,6 +1284,7 @@ and the derived files
% \def\t{^^A
% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}}
% epstopdf.sty & tex/latex/oberdiek/epstopdf.sty\\
+% epstopdf-base.sty & tex/latex/oberdiek/epstopdf-base.sty\\
% epstopdf.pdf & doc/latex/oberdiek/epstopdf.pdf\\
% test/epstopdf-test1.tex & doc/latex/oberdiek/test/epstopdf-test1.tex\\
% epstopdf.dtx & source/latex/oberdiek/epstopdf.dtx\\
@@ -1123,6 +1462,43 @@ and the derived files
% \item
% Warning message for missing \xfile{pdftex.def} changed.
% \end{Version}
+% \begin{Version}{2009/07/06 v1.9}
+% \item
+% Option \xoption{suffix} added.
+% \end{Version}
+% \begin{Version}{2009/07/07 v1.10}
+% \item
+% \cs{SourceExt} added.
+% \item
+% If option \xoption{suffix} is set, the inclusion of
+% an image without the suffix namespace is preferred over generating the
+% the image within the suffix namespace.
+% \end{Version}
+% \begin{Version}{2009/07/12 v2.0}
+% \item
+% New default settings.
+% \item
+% Package is split into \xpackage{epstopdf} that only takes package
+% options and loads \xpackage{epstopdf-base} that does the work.
+% \item
+% \cs{epstopdfDeclareGraphicsRule} and \cs{epstopdfcall} added.
+% \item
+% \xfile{epstopdf-sys.cfg} is loaded before \xfile{epstopdf.cfg}
+% if \xfile{epstopdf-sys.cfg} exists.
+% \end{Version}
+% \begin{Version}{2009/07/15 v2.1}
+% \item
+% Default setting: \xoption{verbose} is now turned on as the
+% documentation for v2.0 said.
+% \item
+% Documentation fixes.
+% \end{Version}
+% \begin{Version}{2009/07/16 v2.2}
+% \item
+% Fixed redefined \cs{Gin@setfile}.
+% \item
+% Documentation extended for package options.
+% \end{Version}
% \end{History}
%
% \PrintIndex