diff options
Diffstat (limited to 'Master/texmf-dist/tex/generic/expkv-opt/expkv-opt.sty')
-rw-r--r-- | Master/texmf-dist/tex/generic/expkv-opt/expkv-opt.sty | 112 |
1 files changed, 77 insertions, 35 deletions
diff --git a/Master/texmf-dist/tex/generic/expkv-opt/expkv-opt.sty b/Master/texmf-dist/tex/generic/expkv-opt/expkv-opt.sty index 1683a2ca995..12fa98acec1 100644 --- a/Master/texmf-dist/tex/generic/expkv-opt/expkv-opt.sty +++ b/Master/texmf-dist/tex/generic/expkv-opt/expkv-opt.sty @@ -29,8 +29,19 @@ %% and the derived files expkv-opt.pdf %% expkv-opt.sty %% -\newcommand*\ekvoVersion{0.1b} -\newcommand*\ekvoDate{2020-10-10} +\IfFormatAtLeastTF{2021/05/01} + {} + {% + \ifx\pkgcls@targetlabel\@empty + \ifnum\requestedLaTeXdate=\pkgcls@targetdate + \pkgcls@parse@date@arg{=v0.1}% + \fi + \fi + } +\DeclareRelease{v0.1}{2020/10/10}{expkv-opt-2020-10-10.sty} +\DeclareCurrentRelease{v0.2}{2021/04/04} +\newcommand*\ekvoVersion{0.2} +\newcommand*\ekvoDate{2021-04-04} \ProvidesPackage{expkv-opt} [% \ekvoDate\space v\ekvoVersion\space @@ -78,10 +89,42 @@ {\ekvo@err@value@forbidden{#1}}% {\ekvo@err@undefined@key{#1}}% } -\long\def\ekvo@addto@unused@one#1{\ekvo@addto@list\@unusedoptionlist} -\long\def\ekvo@addto@unused@two#1#2{\ekvo@addto@list\@unusedoptionlist} -\long\def\ekvo@rmfrom@unused@one#1{\ekvo@rmfrom@list\@unusedoptionlist} -\long\def\ekvo@rmfrom@unused@two#1#2{\ekvo@rmfrom@list\@unusedoptionlist} +\long\def\ekvo@addto@unused@one#1{\ekvo@do@unusedoptionlist\ekvo@addto@list} +\long\def\ekvo@addto@unused@two#1#2{\ekvo@do@unusedoptionlist\ekvo@addto@list} +\long\def\ekvo@rmfrom@unused@one#1% + {% + \ekvo@ifx@F\@unusedoptionlist\@empty + {\ekvo@do@unusedoptionlist\ekvo@rmfrom@list}% + } +\long\def\ekvo@rmfrom@unused@two#1#2% + {% + \ekvo@ifx@F\@unusedoptionlist\@empty + {\ekvo@do@unusedoptionlist\ekvo@rmfrom@list}% + } +\protected\def\ekvo@do@unusedoptionlist#1% + {% + \let\ekvo@unpreparedCurrentOption\CurrentOption + \edef\CurrentOption + {\expandafter\ekvo@prepare@unusedoption\CurrentOption=\ekv@mark}% + #1\@unusedoptionlist + \let\CurrentOption\ekvo@unpreparedCurrentOption + } +\def\ekvo@prepare@unusedoption{\ekvo@prepare@unusedoption@a\@empty} +\def\ekvo@prepare@unusedoption@a#1% + {% + \long\def\ekvo@prepare@unusedoption@a##1=##2\ekv@mark + {% + \ekvo@prepare@unusedoption@b##1\ekv@stop + \ekv@mark\ekvo@prepare@unusedoption@b + #1\ekv@mark\ekvo@prepare@unusedoption@c + }% + } +\ekvo@prepare@unusedoption@a{ } +\long\def\ekvo@prepare@unusedoption@b#1 #2\ekv@mark#3{#3#1#2\ekv@mark#3} +\long\def\ekvo@prepare@unusedoption@c + #1\ekv@stop + \ekv@mark\ekvo@prepare@unusedoption@b\ekv@mark\ekvo@prepare@unusedoption@c + {\unexpanded\expandafter{#1}} \protected\def\ekvo@set@handlers@local {% \ekvo@if@need@handlers @@ -92,7 +135,9 @@ \let\ekvo@handle@undefined@kv\@gobbletwo \else \expandafter - \ifx\csname opt@\@currname.\@currext\endcsname\@classoptionslist + \ifx + \csname @raw@opt@\@currname.\@currext\endcsname + \@raw@classoptionslist \let\ekvo@handle@undefined@k\ekvo@addto@unused@one \let\ekvo@handle@undefined@kv\ekvo@addto@unused@two \else @@ -118,21 +163,6 @@ \let\ekvo@handle@undefined@kv\@gobbletwo }% } -\protected\def\ekvo@set@handlers@unusedglobal - {% - \ekvo@if@need@handlers - {% - \let\ekvo@handle@undefined@k\ekvo@addto@unused@one - \let\ekvo@handle@undefined@kv\ekvo@addto@unused@two - \let\@unusedoptionlist\@empty - \@gobbletwo - }% - \@firstofone - {% - \let\ekvo@handle@defined@k\ekvo@rmfrom@unused@one - \let\ekvo@handle@defined@kv\ekvo@rmfrom@unused@two - }% - } \protected\def\ekvo@set@handlers@list {% \ekvo@if@need@handlers @@ -234,11 +264,11 @@ \protected\def\ekvoProcessLocalOptions {% \ekvo@process@common - {\ekv@ifdefined{opt@\@currname.\@currext}\@firstofone\@gobble}% + {\ekv@ifdefined{@raw@opt@\@currname.\@currext}\@firstofone\@gobble}% {% \ekvo@set@handlers@local \expandafter - \ekvo@process@list\csname opt@\@currname.\@currext\endcsname + \ekvo@process@list\csname @raw@opt@\@currname.\@currext\endcsname \AtEndOfPackage{\let\@unprocessedoptions\relax}% }% } @@ -247,21 +277,15 @@ \ekvo@process@common{\ekvo@ifx@F\@classoptionslist\relax}% {% \ekvo@set@handlers@global - \ekvo@process@list\@classoptionslist + \ekvo@process@list\@raw@classoptionslist \let\ekvo@handle@defined@k\@gobble \let\ekvo@handle@defined@kv\@gobbletwo }% } -\protected\def\ekvoProcessUnusedGlobalOptions +\protected\def\ekvoProcessUnusedGlobalOptions#1% {% - \ekvo@process@common{\ekvo@ifx@F\@unusedoptionlist\@empty}% - {% - \let\ekvo@tmp@list\@unusedoptionlist - \ekvo@set@handlers@unusedglobal - \ekvo@process@list\ekvo@tmp@list - \let\ekvo@handle@defined@k\@gobble - \let\ekvo@handle@defined@kv\@gobbletwo - }% + \PackageWarning{expkv-opt}% + {This macro no longer works because of changes in the LaTeX2e kernel.}% } \protected\def\ekvoProcessOptionsList#1% {% @@ -271,7 +295,25 @@ \ekvo@process@list#1% }% } -\protected\def\ekvoUseUnknownHandlers#1#2% +\protected\def\ekvoUseUnknownHandlers + {\@ifstar\ekvoUseUnknownHandlers@s\ekvoUseUnknownHandlers@n} +\protected\def\ekvoUseUnknownHandlers@s + {% + \def\ekvo@handle@undefined@k + {% + \ekv@ifdefined{\ekvo@name{}uN}% + {\csname\ekvo@name{}uN\endcsname}% + {\@gobble}% + }% + \long\def\ekvo@handle@undefined@kv##1##2% + {% + \ekv@ifdefined{\ekvo@name{}u}% + {\csname\ekvo@name{}u\endcsname{##2}{##1}}% + {}% + }% + \let\ekvo@if@need@handlers\ekvo@dont@need@handlers + } +\protected\def\ekvoUseUnknownHandlers@n#1#2% {% \let\ekvo@handle@undefined@k#1\relax \let\ekvo@handle@undefined@kv#2\relax |