summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/oberdiek
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-07-21 22:31:18 +0000
committerKarl Berry <karl@freefriends.org>2009-07-21 22:31:18 +0000
commitbecf9bfec772c5af4610a0dc6f6840cdc2e6627a (patch)
tree084c959153bbb923eed65327eeb0ed9574c63803 /Master/texmf-dist/source/latex/oberdiek
parenta2fd4ec211630f47a2a28ef4ced1e05b2a528fc2 (diff)
oberdiek update (22jul09)
git-svn-id: svn://tug.org/texlive/trunk@14365 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/oberdiek')
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/epstopdf.dtx564
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/ifluatex.dtx158
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/kvoptions.dtx124
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/kvsetkeys.dtx43
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/luatex.dtx1
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/oberdiek.ins2
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/oberdiek.tex10
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/zref.dtx4
8 files changed, 714 insertions, 192 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
diff --git a/Master/texmf-dist/source/latex/oberdiek/ifluatex.dtx b/Master/texmf-dist/source/latex/oberdiek/ifluatex.dtx
index 42f1cf85edb..7e39ae9a0f0 100644
--- a/Master/texmf-dist/source/latex/oberdiek/ifluatex.dtx
+++ b/Master/texmf-dist/source/latex/oberdiek/ifluatex.dtx
@@ -70,7 +70,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: ifluatex 2009/04/10 v1.1 Provides the ifluatex switch (HO)}
+\Msg{* Package: ifluatex 2009/04/17 v1.2 Provides the ifluatex switch (HO)}
\Msg{************************************************************************}
\keepsilent
@@ -141,7 +141,7 @@ and the derived files
%<*driver>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{ifluatex.drv}%
- [2009/04/10 v1.1 Provides the ifluatex switch (HO)]%
+ [2009/04/17 v1.2 Provides the ifluatex switch (HO)]%
\documentclass{ltxdoc}
\usepackage{holtxdoc}[2008/08/11]
\begin{document}
@@ -150,7 +150,7 @@ and the derived files
%</driver>
% \fi
%
-% \CheckSum{462}
+% \CheckSum{495}
%
% \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
@@ -171,7 +171,7 @@ and the derived files
% \GetFileInfo{ifluatex.drv}
%
% \title{The \xpackage{ifluatex} package}
-% \date{2009/04/10 v1.1}
+% \date{2009/04/17 v1.2}
% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
%
% \maketitle
@@ -204,11 +204,11 @@ and the derived files
% |\fi|
% \end{quote}
%
-% Since version 0.40 \LuaTeX\ only provides \cs{directlua} at startup
+% Since version 0.39 \LuaTeX\ only provides \cs{directlua} at startup
% time. Also the syntax of \cs{directlua} changed in version 0.36.
% Thus the user might want to check the LuaTeX version.
-% Therefore this package also makes \cs{luatexversion} available,
-% if it is not yet done.
+% Therefore this package also makes \cs{luatexversion} and
+% \cs{luatexrevision} available, if it is not yet done.
%
% If you want to detect the mode (DVI or PDF), then use package
% \xpackage{ifpdf}. \LuaTeX\ has inherited \cs{pdfoutput} from \pdfTeX.
@@ -289,7 +289,7 @@ and the derived files
\fi
\expandafter\x\csname ver@ifluatex.sty\endcsname
\ProvidesPackage{ifluatex}%
- [2009/04/10 v1.1 Provides the ifluatex switch (HO)]
+ [2009/04/17 v1.2 Provides the ifluatex switch (HO)]
% \end{macrocode}
%
% \subsection{Catcodes}
@@ -327,11 +327,35 @@ and the derived files
\TMP@EnsureCode{46}{12}% .
\TMP@EnsureCode{47}{12}% /
\TMP@EnsureCode{58}{12}% :
+\TMP@EnsureCode{60}{12}% <
\TMP@EnsureCode{61}{12}% =
\TMP@EnsureCode{94}{7}% ^
\TMP@EnsureCode{96}{12}% `
% \end{macrocode}
%
+% \subsection{Macro for error messages}
+%
+% \begin{macro}{\ifluatex@Error}
+% \begin{macrocode}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname PackageError\endcsname\relax
+ \def\ifluatex@Error#1#2{%
+ \begingroup
+ \newlinechar=10 %
+ \def\MessageBreak{^^J}%
+ \edef\x{\errhelp{#2}}%
+ \x
+ \errmessage{Package ifluatex Error: #1}%
+ \endgroup
+ }%
+\else
+ \def\ifluatex@Error{%
+ \PackageError{ifluatex}%
+ }%
+\fi
+% \end{macrocode}
+% \end{macro}
+%
% \subsection{Check for previously defined \cs{ifluatex}}
%
% \begin{macrocode}
@@ -339,22 +363,8 @@ and the derived files
\expandafter\ifx\csname ifluatex\endcsname\relax
\else
\edef\i/{\expandafter\string\csname ifluatex\endcsname}%
- \expandafter\ifx\csname PackageError\endcsname\relax
- \def\x#1#2{%
- \edef\z{#2}%
- \expandafter\errhelp\expandafter{\z}%
- \errmessage{Package ifluatex Error: #1}%
- }%
- \def\y{^^J}%
- \newlinechar=10 %
- \else
- \def\x#1#2{%
- \PackageError{ifluatex}{#1}{#2}%
- }%
- \def\y{\MessageBreak}%
- \fi
- \x{Name clash, \i/ is already defined}{%
- Incompatible versions of \i/ can cause problems,\y
+ \ifluatex@Error{Name clash, \i/ is already defined}{%
+ Incompatible versions of \i/ can cause problems,\MessageBreak
therefore package loading is aborted.%
}%
\endgroup
@@ -367,29 +377,12 @@ and the derived files
% \subsection{\cs{ifluatex}}
%
% \begin{macro}{\ifluatex}
-% Create and set the switch. \cs{newif} initializes the
-% switch with \cs{iffalse}.
% \begin{macrocode}
-\begingroup
- \expandafter\ifx\csname newif\endcsname\relax
- \def\x#1#2{#1}%
- \else
- \def\x#1#2{#2}%
- \fi
-\expandafter\endgroup\x
-{%
- \let\ifluatex\iffalse
- \def\luatextrue{%
- \let\ifluatex\iftrue
- }%
- \def\luatexfalse{%
- \let\luatexfalse
- }%
-}{%
- \csname newif\endcsname\ifluatex
-}
+\let\ifluatex\iffalse
% \end{macrocode}
-% Test \cs{pdfoutput}. Is it defined and different from
+% \end{macro}
+%
+% Test \cs{luatexversion}. Is it defined and different from
% \cs{relax}? Someone could have used \LaTeX\ internal
% \cs{@ifundefined}, or something else involving.
% Notice, \cs{csname} is executed inside a group for the test
@@ -398,14 +391,14 @@ and the derived files
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname luatexversion\endcsname\relax
\else
- \luatextrue
+ \expandafter\let\csname ifluatex\expandafter\endcsname
+ \csname iftrue\endcsname
\fi
% \end{macrocode}
-% \end{macro}
%
-% \subsection{Lua\TeX\ v0.40}
+% \subsection{Lua\TeX\ v0.39}
%
-% Starting with version 0.40 \LuaTeX\ wants to provide \cs{directlua}
+% Starting with version 0.39 \LuaTeX\ wants to provide \cs{directlua}
% as only primitive at startup time beyond vanilla \TeX's primitives.
% Then \cs{directlua} exists, but \cs{luatexversion} cannot be found.
% Unhappily also the syntax of \cs{directlua} changed in v0.36,
@@ -419,29 +412,23 @@ and the derived files
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname directlua\endcsname\relax
\else
- \luatextrue
+ \expandafter\let\csname ifluatex\expandafter\endcsname
+ \csname iftrue\endcsname
\begingroup
\newlinechar=10 %
\endlinechar=\newlinechar %
- \ifcase0%
+ \ifnum0%
\directlua{%
if tex.enableprimitives then
tex.enableprimitives('ifluatex', {'luatexversion'})
- else
tex.print('1')
end
}%
- \ifx\ifluatexluatexversion\@undefined 1\fi %
- \relax %
- \global\let\luatexversion\ifluatexluatexversion
+ \ifx\ifluatexluatexversion\@undefined\else 1\fi %
+ =11 %
+ \global\let\luatexversion\ifluatexluatexversion %
\else %
- \expandafter\ifx\csname PackageError\endcsname\relax %
- \def\PackageError#1#2#3{%
- \errhelp{#3}%
- \errmessage{Package `#1' Error: #2}%
- }%
- \fi %
- \PackageError{ifluatex}{%
+ \ifluatex@Error{%
Missing \string\luatexversion%
}{%
Update LuaTeX.%
@@ -451,6 +438,43 @@ and the derived files
\fi
\fi
% \end{macrocode}
+% \begin{macrocode}
+\ifluatex
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname luatexrevision\endcsname\relax
+ \ifnum\luatexversion<36 %
+ \else
+ \begingroup
+ \ifx\luatexrevision\relax
+ \let\luatexrevision\@undefined
+ \fi
+ \newlinechar=10 %
+ \endlinechar=\newlinechar %
+ \ifcase0%
+ \directlua{%
+ if tex.enableprimitives then
+ tex.enableprimitives('ifluatex', {'luatexrevision'})
+ else
+ tex.print('1')
+ end
+ }%
+ \ifx\ifluatexluatexrevision\@undefined 1\fi %
+ \relax %
+ \global\let\luatexrevision\ifluatexluatexrevision
+ \fi
+ \endgroup
+ \fi
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname luatexrevision\endcsname\relax
+ \ifluatex@Error{%
+ Missing \string\luatexrevision%
+ }{%
+ Update LuaTeX.%
+ }%
+ \fi
+ \fi
+\fi
+% \end{macrocode}
%
% \subsection{Protocol entry}
%
@@ -774,10 +798,18 @@ and the derived files
% \end{Version}
% \begin{Version}{2009/04/10 v1.1}
% \item
-% Test adopted for \LuaTeX\ 0.40.
+% Test adopted for \LuaTeX\ 0.39.
% \item
% Makes \cs{luatexversion} available.
% \end{Version}
+% \begin{Version}{2009/04/17 v1.2}
+% \item
+% Fixes (Manuel P\'egouri\'e-Gonnard).
+% \item
+% \cs{luatextrue} and \cs{luatexfalse} are no longer defined.
+% \item
+% Makes \cs{luatexrevision} available, too.
+% \end{Version}
% \end{History}
%
% \PrintIndex
diff --git a/Master/texmf-dist/source/latex/oberdiek/kvoptions.dtx b/Master/texmf-dist/source/latex/oberdiek/kvoptions.dtx
index a4b97417ec9..b4d0fd44084 100644
--- a/Master/texmf-dist/source/latex/oberdiek/kvoptions.dtx
+++ b/Master/texmf-dist/source/latex/oberdiek/kvoptions.dtx
@@ -73,7 +73,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: kvoptions 2009/04/10 v3.1 Keyval support for LaTeX options (HO)}
+\Msg{* Package: kvoptions 2009/07/17 v3.2 Keyval support for LaTeX options (HO)}
\Msg{************************************************************************}
\keepsilent
@@ -148,7 +148,7 @@ and the derived files
%<*driver>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{kvoptions.drv}%
- [2009/04/10 v3.1 Keyval support for LaTeX options (HO)]%
+ [2009/07/17 v3.2 Keyval support for LaTeX options (HO)]%
\documentclass{ltxdoc}
\usepackage{holtxdoc}[2008/08/11]
\begin{document}
@@ -157,7 +157,7 @@ and the derived files
%</driver>
% \fi
%
-% \CheckSum{1991}
+% \CheckSum{2103}
%
% \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
@@ -178,7 +178,7 @@ and the derived files
% \GetFileInfo{kvoptions.drv}
%
% \title{The \xpackage{kvoptions} package}
-% \date{2009/04/10 v3.1}
+% \date{2009/07/17 v3.2}
% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
%
% \maketitle
@@ -295,6 +295,17 @@ and the derived files
% knows the family name already and you can use the star form
% without mandatory argument.
%
+% \subsubsection{\cs{ProcessLocalKeyvalOptions}}
+%
+% \begin{declcs}{ProcessLocalKeyvalOptions}\,\M{family}\\
+% \cs{ProcessLocalKeyvalOptions} \*
+% \end{declcs}
+% This macro has the same syntax and works similar as
+% \cs{ProcessKeyvalOptions}. However it ignores
+% global options and only processes the local package options.
+% Therefore it only can be used inside a package.
+% An error is thrown, if it is used inside a class.
+%
% Neither of the following macros are necessary for
% \cs{ProcessKeyvalOptions{}}. They just help the package/class
% author in common tasks.
@@ -654,7 +665,7 @@ and the derived files
% Package identification
% -----------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{example-mycolorsetup}[2009/04/10 Managing my colors]
+\ProvidesPackage{example-mycolorsetup}[2009/07/17 Managing my colors]
\RequirePackage{ifpdf}
\RequirePackage{kvoptions}
@@ -1028,7 +1039,7 @@ and the derived files
\fi
\expandafter\x\csname ver@kvoptions.sty\endcsname
\ProvidesPackage{kvoptions}%
- [2009/04/10 v3.1 Keyval support for LaTeX options (HO)]
+ [2009/07/17 v3.2 Keyval support for LaTeX options (HO)]
% \end{macrocode}
%
% \paragraph{Catcodes}
@@ -1122,7 +1133,7 @@ and the derived files
% \begin{macrocode}
\DeclareOption{patch}{%
\AtEndOfPackage{%
- \RequirePackage{kvoptions-patch}[2009/04/10]%
+ \RequirePackage{kvoptions-patch}[2009/07/17]%
}%
}
% \end{macrocode}
@@ -1555,11 +1566,11 @@ and the derived files
\ifKVOdyn@global\global\fi
\let
\expandafter\noexpand\csname KV@#1@#2\endcsname
- \@gobble
+ \noexpand\@gobble
\ifKVOdyn@global\global\fi
\let
\expandafter\noexpand\csname KV@#1@#2@default\endcsname
- \@empty
+ \noexpand\@empty
}%
^^A\PackageInfo{kvoptions}{%
^^A [option] key `#2' of family `#1'\MessageBreak
@@ -1785,6 +1796,92 @@ and the derived files
}
% \end{macrocode}
%
+% \subsection{\cs{ProcessLocalKeyvalOptions}}
+%
+% \begin{macro}{\ProcessLocalKeyvalOptions}
+% If the optional star is given, we get the family
+% name and expand it for safety.
+% \begin{macrocode}
+\newcommand*{\ProcessLocalKeyvalOptions}{%
+ \@ifstar{%
+ \begingroup
+ \edef\x{\endgroup
+ \noexpand\KVO@ProcessLocalKeyvalOptions{\KVO@family}%
+ }%
+ \x
+ }%
+ \KVO@ProcessLocalKeyvalOptions
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\def\KVO@ProcessLocalKeyvalOptions#1{%
+ \let\@tempc\relax
+ \let\KVO@temp\@empty
+% \end{macrocode}
+% Check if \cs{ProcessLocalKeyvalOptions} is called inside
+% a package.
+% \begin{macrocode}
+ \ifx\@currext\@pkgextension
+ \else
+ \PackageError{kvoptions}{%
+ \string\ProcessLocalKeyvalOptions is intended for packages only%
+ }\@ehc
+ \fi
+% \end{macrocode}
+% The package options are put into toks register \cs{toks@}.
+% \begin{macrocode}
+ \begingroup
+ \toks\tw@{}%
+ \@ifundefined{opt@\@currname.\@currext}{%
+ \toks@\expandafter{\KVO@temp}%
+ }{%
+ \toks@\expandafter\expandafter\expandafter{%
+ \csname opt@\@currname.\@currext\endcsname
+ }%
+% \end{macrocode}
+% Without default action we pass all options to \cs{setkeys}.
+% Otherwise we have to check which options are known.
+% These are passed to \cs{setkeys}. For the others the default
+% action is performed.
+% \begin{macrocode}
+ \@ifundefined{KVO@default@\@currname.\@currext}{%
+ \toks@\expandafter\expandafter\expandafter{%
+ \expandafter\KVO@temp\the\toks@
+ }%
+ }{%
+ \edef\CurrentOption{\the\toks@}%
+ \toks@\expandafter{\KVO@temp}%
+ \@for\CurrentOption:=\CurrentOption\do{%
+ \@ifundefined{%
+ KV@#1@\expandafter\KVO@getkey\CurrentOption=\@nil
+ }{%
+ \toks\tw@\expandafter{%
+ \the\toks\expandafter\tw@\expandafter,\CurrentOption
+ }%
+ }{%
+ \toks@\expandafter{%
+ \the\expandafter\toks@\expandafter,\CurrentOption
+ }%
+ }%
+ }%
+ }%
+ \fi
+ }%
+ \edef\KVO@temp{\endgroup
+ \noexpand\KVO@calldefault{\the\toks\tw@}%
+ \noexpand\setkeys{#1}{\the\toks@}%
+ }%
+ \KVO@temp
+% \end{macrocode}
+% Some cleanup of \cs{ProcessOptions}.
+% \begin{macrocode}
+ \let\CurrentOption\@empty
+ \AtEndOfPackage{\let\@unprocessedoptions\relax}%
+}
+% \end{macrocode}
+%
% \subsubsection{Helper macros}
%
% \begin{macro}{\KVO@getkey}
@@ -1905,7 +2002,7 @@ and the derived files
\noexpand\endinput
}
\ProvidesPackage{kvoptions-patch}%
- [2009/04/10 v3.1 LaTeX patch for keyval options (HO)]%
+ [2009/07/17 v3.2 LaTeX patch for keyval options (HO)]%
% \end{macrocode}
%
% Check for \eTeX.
@@ -2849,6 +2946,13 @@ and the derived files
% \item
% Space by line end removed in definition of internal macro.
% \end{Version}
+% \begin{Version}{2009/07/17 v3.2}
+% \item
+% \cs{ProcessLocalKeyvalOptions} added.
+% \item
+% \cs{DisableKeyvalOption} with the \texttt{action=ignore} option
+% fixed (Joseph Wright).
+% \end{Version}
% \end{History}
%
% \PrintIndex
diff --git a/Master/texmf-dist/source/latex/oberdiek/kvsetkeys.dtx b/Master/texmf-dist/source/latex/oberdiek/kvsetkeys.dtx
index 2d4336cdcd1..edd2c1bdbb8 100644
--- a/Master/texmf-dist/source/latex/oberdiek/kvsetkeys.dtx
+++ b/Master/texmf-dist/source/latex/oberdiek/kvsetkeys.dtx
@@ -1,6 +1,7 @@
% \iffalse meta-comment
%
-% Copyright (C) 2006, 2007 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+% Copyright (C) 2006, 2007, 2009 by
+% Heiko Oberdiek <oberdiek@uni-freiburg.de>
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
@@ -72,7 +73,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: kvsetkeys 2007/09/29 v1.3 Key value parser with default handler support (HO)}
+\Msg{* Package: kvsetkeys 2009/07/19 v1.4 Key value parser with default handler support (HO)}
\Msg{************************************************************************}
\keepsilent
@@ -83,7 +84,8 @@
This is a generated file.
-Copyright (C) 2006, 2007 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+Copyright (C) 2006, 2007, 2009 by
+ Heiko Oberdiek <oberdiek@uni-freiburg.de>
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either
@@ -146,7 +148,7 @@ and the derived files
%<*driver>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{kvsetkeys.drv}%
- [2007/09/29 v1.3 Key value parser with default handler support (HO)]%
+ [2009/07/19 v1.4 Key value parser with default handler support (HO)]%
\documentclass{ltxdoc}
\usepackage{holtxdoc}[2008/08/11]
\begin{document}
@@ -155,7 +157,7 @@ and the derived files
%</driver>
% \fi
%
-% \CheckSum{1113}
+% \CheckSum{1120}
%
% \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
@@ -176,7 +178,7 @@ and the derived files
% \GetFileInfo{kvsetkeys.drv}
%
% \title{The \xpackage{kvsetkeys} package}
-% \date{2007/09/29 v1.3}
+% \date{2009/07/19 v1.4}
% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
%
% \maketitle
@@ -531,7 +533,7 @@ and the derived files
\fi
\expandafter\x\csname ver@kvsetkeys.sty\endcsname
\ProvidesPackage{kvsetkeys}%
- [2007/09/29 v1.3 Key value parser with default handler support (HO)]
+ [2009/07/19 v1.4 Key value parser with default handler support (HO)]
% \end{macrocode}
%
% \begin{macrocode}
@@ -653,7 +655,7 @@ $ \expandafter\endgroup
\KVS@CommaComma
\KVS@Equals
\KVS@SpaceEquals{ }%
- \KVS@EqualsSpace{ }%
+ \KVS@EqualsSpace
\xdef\KVS@Global{\the\toks@}%
\endgroup
\let\kv@list\KVS@Global
@@ -1140,7 +1142,7 @@ $ \expandafter\ifx\csname KV@#1@#2@default\endcsname\relax
\makeatletter
\chardef\KVS@TestMode=1 %
\makeatother
-\usepackage{kvsetkeys}[2007/09/29]
+\usepackage{kvsetkeys}[2009/07/19]
%<noetex>\let\unexpanded\SavedUnexpanded
\usepackage{qstest}
\IncludeTests{*}
@@ -1316,9 +1318,12 @@ $ \expandafter\ifx\csname KV@#1@#2@default\endcsname\relax
\@onelevel@sanitize\Result
}%
\def\Test#1#2{%
- \let\Result\@empty
- \kv@parse{#1}\Processor
- \Expect*{\Result}{#2}%
+ \sbox0{%
+ \let\Result\@empty
+ \kv@parse{#1}\Processor
+ \Expect*{\Result}{#2}%
+ }%
+ \Expect*{\the\wd0}{0.0pt}%
}%
\Test{}{}%
\Test{{}}{}%
@@ -1354,11 +1359,13 @@ $ \expandafter\ifx\csname KV@#1@#2@default\endcsname\relax
\@onelevel@sanitize\Result
}%
\def\Test#1#2{%
- \let\Result\@empty
- \comma@parse{#1}\Processor
- \Expect*{\Result}{#2}%
+ \sbox0{%
+ \let\Result\@empty
+ \comma@parse{#1}\Processor
+ \Expect*{\Result}{#2}%
+ }%
+ \Expect*{\the\wd0}{0.0pt}%
}%
-\tracingmacros=1
\Test{}{}%
\Test{{}}{}%
\Test{{{}}}{[{}]}%
@@ -1604,6 +1611,10 @@ $ \expandafter\ifx\csname KV@#1@#2@default\endcsname\relax
% \item
% Tests added for normalizing and parsing.
% \end{Version}
+% \begin{Version}{2009/07/19 v1.4}
+% \item
+% Bug fix for \cs{kv@normalize}: unwanted space removed (Florent Chervet).
+% \end{Version}
% \end{History}
%
% \PrintIndex
diff --git a/Master/texmf-dist/source/latex/oberdiek/luatex.dtx b/Master/texmf-dist/source/latex/oberdiek/luatex.dtx
index 26df36a878a..6e2a5cc9ebb 100644
--- a/Master/texmf-dist/source/latex/oberdiek/luatex.dtx
+++ b/Master/texmf-dist/source/latex/oberdiek/luatex.dtx
@@ -1171,7 +1171,6 @@ and the derived files
\ProvidesPackage{luatex-loader}%
[2009/04/10 v0.2 Lua module loader (HO)]
% \end{macrocode}
-
% \begin{macrocode}
\begingroup
\catcode10 12 % ^^J
diff --git a/Master/texmf-dist/source/latex/oberdiek/oberdiek.ins b/Master/texmf-dist/source/latex/oberdiek/oberdiek.ins
index 75566d16263..985f30586c8 100644
--- a/Master/texmf-dist/source/latex/oberdiek/oberdiek.ins
+++ b/Master/texmf-dist/source/latex/oberdiek/oberdiek.ins
@@ -1,5 +1,5 @@
% oberdiek.ins
-% 2009/04/10
+% 2009/07/20
%
% Copyright (C) 1999, 2001, 2006 by
% Heiko Oberdiek <oberdiek@uni-freiburg.de>
diff --git a/Master/texmf-dist/source/latex/oberdiek/oberdiek.tex b/Master/texmf-dist/source/latex/oberdiek/oberdiek.tex
index 637b3c974b5..a1a39f4a44f 100644
--- a/Master/texmf-dist/source/latex/oberdiek/oberdiek.tex
+++ b/Master/texmf-dist/source/latex/oberdiek/oberdiek.tex
@@ -6,7 +6,7 @@
\newcommand*{\Subject}{CTAN:\CTANdir}
\newcommand*{\Author}{Heiko Oberdiek}
\newcommand*{\Email}{oberdiek@uni-freiburg.de}
-\newcommand*{\Date}{2009/04/10}
+\newcommand*{\Date}{2009/07/21}
% Copyright (C) 2006 by
% Heiko Oberdiek <oberdiek@uni-freiburg.de>
@@ -200,7 +200,7 @@
[\entrysep]
\entry{engord}{2008/08/11}{1.7}{Provides English ordinal numbers}%
[\entrysep]
-\entry{epstopdf}{2009/03/01}{1.8}{Conversion with epstopdf on the fly}%
+\entry{epstopdf}{2009/07/16}{2.2}{Conversion with epstopdf on the fly}%
[\entrysep]
\entry{etexcmds}{2007/12/12}{1.2}{Prefix for e-TeX command names}%
[\entrysep]
@@ -230,7 +230,7 @@
[\entrysep]
\entry{iflang}{2007/11/11}{1.5}{Language checks}%
[\entrysep]
-\entry{ifluatex}{2009/04/10}{1.1}{Provides the ifluatex switch}%
+\entry{ifluatex}{2009/04/17}{1.2}{Provides the ifluatex switch}%
[\entrysep]
\entry{ifpdf}{2009/04/10}{2.0}{Provides the ifpdf switch}%
[\entrysep]
@@ -242,9 +242,9 @@
[\entrysep]
\entry{intcalc}{2007/09/27}{1.1}{Expandable integer calculations}%
[\entrysep]
-\entry{kvoptions}{2009/04/10}{3.1}{Keyval support for \LaTeX{} options}%
+\entry{kvoptions}{2009/07/17}{3.2}{Keyval support for \LaTeX{} options}%
[\entrysep]
-\entry{kvsetkeys}{2007/09/29}{1.3}{Key value parser with default handler support}%
+\entry{kvsetkeys}{2009/07/19}{1.4}{Key value parser with default handler support}%
[\entrysep]
\entry{letltxmacro}{2008/06/24}{1.3}{Let assignment for \LaTeX{} macros}%
[\entrysep]
diff --git a/Master/texmf-dist/source/latex/oberdiek/zref.dtx b/Master/texmf-dist/source/latex/oberdiek/zref.dtx
index fad7d9f1c29..e195a6fb449 100644
--- a/Master/texmf-dist/source/latex/oberdiek/zref.dtx
+++ b/Master/texmf-dist/source/latex/oberdiek/zref.dtx
@@ -620,9 +620,9 @@ and the derived files
% \end{declcs}
% There are situations where a label must be written instantly
% to the \xfile{.aux} file, for example after the last page.
-% If the \cs{label} command is put inside this wrapper,
+% If the \cs{zlabel} or \cs{label} command is put inside this wrapper,
% immediate writing is enabled. See the implementation for
-% option \xoption{lastpage}.
+% option \xoption{lastpage} for an example of its use.
%
% \begin{declcs}{zref@wrapper@unexpanded}
% |{|\dots|}|