summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2024-12-26 21:14:11 +0000
committerKarl Berry <karl@freefriends.org>2024-12-26 21:14:11 +0000
commitb3c33480f64353451a3cef0657b6ea8e3cf2d463 (patch)
tree289081c5853ffdb8d76abf8ad4cd89a143337137 /Master/texmf-dist/tex
parent1ee17eedf71e03c5d7c29b686eba866cbdce396f (diff)
expkv-bundle (26dec24)
git-svn-id: svn://tug.org/texlive/trunk@73212 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r--Master/texmf-dist/tex/context/third/expkv-bundle/t-expkv-cs.tex2
-rw-r--r--Master/texmf-dist/tex/context/third/expkv-bundle/t-expkv-def.tex2
-rw-r--r--Master/texmf-dist/tex/context/third/expkv-bundle/t-expkv-pop.tex2
-rw-r--r--Master/texmf-dist/tex/context/third/expkv-bundle/t-expkv.tex2
-rw-r--r--Master/texmf-dist/tex/generic/expkv-bundle/expkv-cs.tex45
-rw-r--r--Master/texmf-dist/tex/generic/expkv-bundle/expkv-def.tex77
-rw-r--r--Master/texmf-dist/tex/generic/expkv-bundle/expkv-pop.tex2
-rw-r--r--Master/texmf-dist/tex/generic/expkv-bundle/expkv.tex56
-rw-r--r--Master/texmf-dist/tex/latex/expkv-bundle/expkv-cs.sty2
-rw-r--r--Master/texmf-dist/tex/latex/expkv-bundle/expkv-def.sty2
-rw-r--r--Master/texmf-dist/tex/latex/expkv-bundle/expkv-opt-2020-10-10.sty2
-rw-r--r--Master/texmf-dist/tex/latex/expkv-bundle/expkv-opt.sty36
-rw-r--r--Master/texmf-dist/tex/latex/expkv-bundle/expkv-pop.sty2
-rw-r--r--Master/texmf-dist/tex/latex/expkv-bundle/expkv.sty2
14 files changed, 158 insertions, 76 deletions
diff --git a/Master/texmf-dist/tex/context/third/expkv-bundle/t-expkv-cs.tex b/Master/texmf-dist/tex/context/third/expkv-bundle/t-expkv-cs.tex
index f4fcf8fdc0f..73aa33ef1c1 100644
--- a/Master/texmf-dist/tex/context/third/expkv-bundle/t-expkv-cs.tex
+++ b/Master/texmf-dist/tex/context/third/expkv-bundle/t-expkv-cs.tex
@@ -13,7 +13,7 @@
%% See http://www.latex-project.org/lppl.txt
%% ----------------------------------------------------------------
%%
-%% Copyright (C) 2020-2023 Jonathan P. Spratte
+%% Copyright (C) 2020-2024 Jonathan P. Spratte
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this license or
diff --git a/Master/texmf-dist/tex/context/third/expkv-bundle/t-expkv-def.tex b/Master/texmf-dist/tex/context/third/expkv-bundle/t-expkv-def.tex
index 5752a499295..2dd8f672f67 100644
--- a/Master/texmf-dist/tex/context/third/expkv-bundle/t-expkv-def.tex
+++ b/Master/texmf-dist/tex/context/third/expkv-bundle/t-expkv-def.tex
@@ -13,7 +13,7 @@
%% See http://www.latex-project.org/lppl.txt
%% ----------------------------------------------------------------
%%
-%% Copyright (C) 2020-2023 Jonathan P. Spratte
+%% Copyright (C) 2020-2024 Jonathan P. Spratte
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this license or
diff --git a/Master/texmf-dist/tex/context/third/expkv-bundle/t-expkv-pop.tex b/Master/texmf-dist/tex/context/third/expkv-bundle/t-expkv-pop.tex
index 4e66a908a9c..0309abd776b 100644
--- a/Master/texmf-dist/tex/context/third/expkv-bundle/t-expkv-pop.tex
+++ b/Master/texmf-dist/tex/context/third/expkv-bundle/t-expkv-pop.tex
@@ -13,7 +13,7 @@
%% See http://www.latex-project.org/lppl.txt
%% ----------------------------------------------------------------
%%
-%% Copyright (C) 2020-2023 Jonathan P. Spratte
+%% Copyright (C) 2020-2024 Jonathan P. Spratte
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this license or
diff --git a/Master/texmf-dist/tex/context/third/expkv-bundle/t-expkv.tex b/Master/texmf-dist/tex/context/third/expkv-bundle/t-expkv.tex
index 489f2df0159..b6acaf2e7e7 100644
--- a/Master/texmf-dist/tex/context/third/expkv-bundle/t-expkv.tex
+++ b/Master/texmf-dist/tex/context/third/expkv-bundle/t-expkv.tex
@@ -13,7 +13,7 @@
%% See http://www.latex-project.org/lppl.txt
%% ----------------------------------------------------------------
%%
-%% Copyright (C) 2020-2023 Jonathan P. Spratte
+%% Copyright (C) 2020-2024 Jonathan P. Spratte
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this license or
diff --git a/Master/texmf-dist/tex/generic/expkv-bundle/expkv-cs.tex b/Master/texmf-dist/tex/generic/expkv-bundle/expkv-cs.tex
index ef836dd7b57..e1a90e78dda 100644
--- a/Master/texmf-dist/tex/generic/expkv-bundle/expkv-cs.tex
+++ b/Master/texmf-dist/tex/generic/expkv-bundle/expkv-cs.tex
@@ -13,7 +13,7 @@
%% See http://www.latex-project.org/lppl.txt
%% ----------------------------------------------------------------
%%
-%% Copyright (C) 2020-2023 Jonathan P. Spratte
+%% Copyright (C) 2020-2024 Jonathan P. Spratte
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this license or
@@ -52,8 +52,8 @@
\else
\expandafter\endinput
\fi
-\def\ekvcVersion{1.3}
-\def\ekvcDate{2023-01-23}
+\def\ekvcVersion{1.4}
+\def\ekvcDate{2024-12-16}
\csname ekvc@tmp\endcsname
\expandafter\chardef\csname ekvc@tmp\endcsname=\catcode`\@
\catcode`\@=11
@@ -646,22 +646,26 @@
}
\def\ekvc@enum@name#1#2#3{ekvc#1(#2)#3}
\ekvpDefType{ekvc@setup@secondary}{enum}
- {\ekvpAssertTwoValues{#3}\ekvc@type@enum\ekvc@type@enum@{#1}#3}
+ {\ekvpAssertTwoValues{#3}\ekvc@type@enum{#1}#3}
\ekvpDefType{ekvc@setup@secondary}{choice}
- {\ekvpAssertTwoValues{#3}\ekvc@type@enum\ekvc@type@choice@{#1}#3}
-\protected\long\def\ekvc@type@enum#1#2#3%
+ {\ekvpAssertTwoValues{#3}\ekvc@type@choice{#1}#3}
+\protected\long\def\ekvc@type@enum@or@choice#1#2%
{%
- \ekvc@assert@defined{#3}%
+ \ekvc@assert@defined{#2}%
\ekvc@long\edef\ekvc@tmp##1%
{%
\ekv@unexpanded{\expandafter\ekvc@h@enum\detokenize}{##1}%
\ekv@unexpanded{\ekvc@stop}%
- {\ekvc@set}{#2}%
+ {\ekvc@set}{#1}%
}%
- \ekvlet\ekvc@set{#2}\ekvc@tmp
+ \ekvlet\ekvc@set{#1}\ekvc@tmp
+ }
+\protected\long\def\ekvc@type@enum#1#2%
+ {%
+ \ekvc@type@enum@or@choice{#1}{#2}%
\def\ekvc@tmp{0}%
\expandafter\ekvcsvloop\expandafter
- {\expandafter#1\csname\ekv@name\ekvc@set{#3}\endcsname{#2}}%
+ {\expandafter\ekvc@type@enum@\csname\ekv@name\ekvc@set{#2}\endcsname{#1}}%
}
\ekv@exparg{\protected\long\def\ekvc@type@enum@#1#2#3}%
{%
@@ -670,12 +674,29 @@
{\ekv@unexpanded{#1}{\ekvc@tmp}}%
\edef\ekvc@tmp{\the\numexpr\ekvc@tmp+1\relax}%
}
-\ekv@exparg{\protected\long\def\ekvc@type@choice@#1#2#3}%
+\protected\long\def\ekvc@type@choice#1#2%
+ {%
+ \ekvc@type@enum@or@choice{#1}{#2}%
+ \ekv@exparg
+ {%
+ \expandafter\ekvparse\expandafter
+ {%
+ \expandafter\ekvc@type@choice@k
+ \csname\ekv@name\ekvc@set{#2}\endcsname{#1}%
+ }%
+ }%
+ {%
+ \expandafter\ekvc@type@choice@p
+ \csname\ekv@name\ekvc@set{#2}\endcsname{#1}%
+ }%
+ }
+\ekv@exparg{\protected\long\def\ekvc@type@choice@p#1#2#3#4}%
{%
\expandafter\expandafter\expandafter\edef\expandafter
\csname\ekvc@enum@name\ekvc@set{#2}{\detokenize{#3}}\endcsname
- {\ekv@unexpanded{#1{#3}}}%
+ {\ekv@unexpanded{#1{#4}}}%
}
+\protected\long\def\ekvc@type@choice@k#1#2#3{\ekvc@type@choice@p#1{#2}{#3}{#3}}
\ekv@if@lastnamedcs
{%
\ekv@exparg{\def\ekvc@h@enum#1\ekvc@stop#2#3}%
diff --git a/Master/texmf-dist/tex/generic/expkv-bundle/expkv-def.tex b/Master/texmf-dist/tex/generic/expkv-bundle/expkv-def.tex
index 89ddadbf916..078f7ea0dac 100644
--- a/Master/texmf-dist/tex/generic/expkv-bundle/expkv-def.tex
+++ b/Master/texmf-dist/tex/generic/expkv-bundle/expkv-def.tex
@@ -13,7 +13,7 @@
%% See http://www.latex-project.org/lppl.txt
%% ----------------------------------------------------------------
%%
-%% Copyright (C) 2020-2023 Jonathan P. Spratte
+%% Copyright (C) 2020-2024 Jonathan P. Spratte
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this license or
@@ -52,8 +52,8 @@
\else
\expandafter\endinput
\fi
-\def\ekvdVersion{1.0}
-\def\ekvdDate{2023-01-23}
+\def\ekvdVersion{1.1}
+\def\ekvdDate{2024-12-16}
\csname ekvd@tmp\endcsname
\expandafter\chardef\csname ekvd@tmp\endcsname=\catcode`\@
\catcode`\@=11
@@ -456,6 +456,20 @@
}
\protected\long\def\ekvd@type@smeta@#1#2#3%
{\ekvd@prot\ekvd@long\ekv@expargtwice{\def\ekvd@tmp#3}{\ekvset{#1}{#2}}}
+\ekvd@def@type{alias}
+ {%
+ \ekvd@assert@arg
+ \ekvd@assert@not@protected
+ \ekvd@assert@not@long
+ \ekvd@assert@not@also
+ \ekvifdefined\ekvd@set{#3}{\ekvd@do@new{}{#1}}{}%
+ \ekvifdefinedNoVal\ekvd@set{#3}{\ekvd@do@new{NoVal}{#1}}{}%
+ \ekvpAssertTF
+ {\ekvifdefined\ekvd@set{#3}\@firstoftwo{\ekvifdefinedNoVal\ekvd@set{#3}}}%
+ {undefined key `#3'}%
+ \ekvifdefined\ekvd@set{#3}{\ekvletkv\ekvd@set{#1}\ekvd@set{#3}}{}%
+ \ekvifdefinedNoVal\ekvd@set{#3}{\ekvletkvNoVal\ekvd@set{#1}\ekvd@set{#3}}{}%
+ }
\protected\def\ekvd@type@choice#1%
{%
\ekvd@assert@not@long
@@ -542,6 +556,35 @@
{#1=\@firstofone{\ekvd@tmp} }%
\edef\ekvd@tmp{\the\numexpr\ekvd@tmp+1\relax}%
}
+\ekvd@def@type{choice-aliases}
+ {%
+ \ekvd@assert@arg
+ \ekvd@assert@not@protected
+ \ekvd@assert@not@long
+ \ekvd@assert@not@also
+ \ekvd@assert@already@choice{#1}%
+ \ekvparse\ekvd@err@missing@value{\ekvd@t@choicealias{#1}}{#3}%
+ }
+\protected\long\def\ekvd@t@choicealias#1#2#3%
+ {%
+ \ifx\ekvd@do@new\ekvd@assert@new
+ \ekv@fi@firstofone
+ \fi
+ \@gobble
+ {%
+ \ekv@ifdefined{\ekvd@choice@name\ekvd@set{#1}{#2}}%
+ {\ekvd@err@not@new@choice{#2}\ekv@gobbleto@stop}%
+ {}%
+ }%
+ \ekv@ifdefined{\ekvd@choice@name\ekvd@set{#1}{#3}}%
+ {%
+ \expandafter\let
+ \csname\ekvd@choice@name\ekvd@set{#1}{#2}\expandafter\endcsname
+ \csname\ekvd@choice@name\ekvd@set{#1}{#3}\endcsname
+ }%
+ {\ekvd@err@undefined@choice{#1}{#3}}%
+ \@gobble\ekv@stop
+ }
\ekvd@def@type{unknown-choice}
{%
\ekvd@do@new@for@name{\ekvd@unknown@choice@name\ekvd@set{#1}}%
@@ -770,9 +813,14 @@
}
\protected\def\ekvd@if@not@already@choice#1%
{%
- \expandafter\ekvd@if@not@already@choice@a
- \csname\ekv@name\ekvd@set{#1}\endcsname
- {}\ekvd@h@choice\ekvd@stop
+ \ekvifdefined\ekvd@set{#1}%
+ {%
+ \expandafter
+ \ekvd@if@not@already@choice@a
+ \csname\ekv@name\ekvd@set{#1}\endcsname
+ {}\ekvd@h@choice\ekvd@stop
+ }%
+ {\@firstofone}%
}
\protected\def\ekvd@if@not@already@choice@a
{%
@@ -782,6 +830,8 @@
{%
\ekv@ifempty{#2}\@firstofone\@gobble
}
+\long\def\ekvd@assert@already@choice#1%
+ {\ekvd@if@not@already@choice{#1}{\ekvd@err@not@choice\ekvpGobbleT}}
\long\def\ekvd@ifspace#1%
{%
\ekvd@ifspace@#1 \ekv@ifempty@B
@@ -813,7 +863,7 @@
{%
\ekvd@errm
{%
- Undefined noval key `\ekv@unexpanded{#1}' found while processing
+ Undefined NoVal key `\ekv@unexpanded{#1}' found while processing
`\ekvd@cur'%
}%
}
@@ -835,8 +885,19 @@
}
\protected\def\ekvd@err@not@new
{\ekvd@errm{The key for `\ekvd@cur' is already defined}}
-\protected\long\def\ekvd@err@misused@unknown
+\protected\def\ekvd@err@not@new@choice#1%
+ {\ekvd@errm{The choice `\detokenize{#1}' is already defined for `\ekvd@cur'}}
+\protected\def\ekvd@err@misused@unknown
{\ekvd@errm{Misuse of the unknown type found while processing `\ekvd@cur'}}
+\protected\long\def\ekvd@err@not@choice
+ {\ekvd@errm{The key for `\ekvd@cur' is not an existing choice key}}
+\protected\long\def\ekvd@err@missing@value#1%
+ {\ekvd@errm{Missing value for `#1' in `\ekvd@cur'}}
+\protected\long\def\ekvd@err@undefined@choice#1#2%
+ {%
+ \ekvd@errm
+ {Undefined choice `#2' for key `#1' found while processing `\ekvd@cur'}%
+ }
\def\ekvd@err@choice@invalid#1%
{%
\ekvd@err@choice@invalid@#1%
diff --git a/Master/texmf-dist/tex/generic/expkv-bundle/expkv-pop.tex b/Master/texmf-dist/tex/generic/expkv-bundle/expkv-pop.tex
index d0d77817d9a..163c72a30d9 100644
--- a/Master/texmf-dist/tex/generic/expkv-bundle/expkv-pop.tex
+++ b/Master/texmf-dist/tex/generic/expkv-bundle/expkv-pop.tex
@@ -13,7 +13,7 @@
%% See http://www.latex-project.org/lppl.txt
%% ----------------------------------------------------------------
%%
-%% Copyright (C) 2020-2023 Jonathan P. Spratte
+%% Copyright (C) 2020-2024 Jonathan P. Spratte
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this license or
diff --git a/Master/texmf-dist/tex/generic/expkv-bundle/expkv.tex b/Master/texmf-dist/tex/generic/expkv-bundle/expkv.tex
index 5e6488039b1..a5bfd2b79af 100644
--- a/Master/texmf-dist/tex/generic/expkv-bundle/expkv.tex
+++ b/Master/texmf-dist/tex/generic/expkv-bundle/expkv.tex
@@ -13,7 +13,7 @@
%% See http://www.latex-project.org/lppl.txt
%% ----------------------------------------------------------------
%%
-%% Copyright (C) 2020-2023 Jonathan P. Spratte
+%% Copyright (C) 2020-2024 Jonathan P. Spratte
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this license or
@@ -74,8 +74,8 @@
\expandafter\endinput
\fi
\fi
-\def\ekvVersion{2.0}
-\def\ekvDate{2023-01-23}
+\def\ekvVersion{2.1}
+\def\ekvDate{2024-12-26}
\csname ekv@tmp\endcsname
\expandafter\chardef\csname ekv@tmp\endcsname=\catcode`\@
\catcode`\@=11
@@ -123,6 +123,9 @@
\long\def\ekv@ifblank@\ekv@mark#1#2\ekv@stop{}
\long\def\ekv@ifblank@false\ekv@stop\@firstoftwo#1#2{#2}
\def\ekv@ifblank@gobbletrue\ekv@stop#1{}
+\long\def\ekv@ifatmostone#1%
+ {\ekv@ifatmostone@#1\ekv@stop\ekv@ifblank@false\ekv@stop\@firstoftwo}
+\long\def\ekv@ifatmostone@#1#2#3\ekv@stop{}
\ekv@if@lastnamedcs
{%
\long\def\ekv@ifdefined#1{\ifcsname#1\endcsname\ekv@ifdef@\fi\@secondoftwo}
@@ -228,14 +231,13 @@
{\ekv@csv@loop{#2}\ekv@mark}
\def\ekv@name@set#1{ekv#1(}
\long\def\ekv@name@key#1{#1)}
-\edef\ekv@name
+\long\ekv@expandedarg{\def\ekv@name#1#2}%
{%
\ekv@unexpanded\expandafter{\ekv@name@set{#1}}%
\ekv@unexpanded\expandafter{\ekv@name@key{\detokenize{#2}}}%
}
-\long\ekv@exparg{\def\ekv@name#1#2}{\ekv@name}
\def\ekv@undefined@set#1{! expkv Error: Set `#1' undefined.}
-\edef\ekv@checkvalid
+\protected\ekv@expandedarg{\def\ekv@checkvalid#1#2}%
{%
\ekv@unexpanded\expandafter{\ekv@ifempty{#1}}%
\ekv@unexpanded
@@ -256,7 +258,6 @@
}%
\ekv@unexpanded{\@gobble}%
}
-\ekv@exparg{\protected\def\ekv@checkvalid#1#2}{\ekv@checkvalid}%
\ekv@expargtwice{\long\def\ekvifdefined#1#2}%
{\expandafter\ekv@ifdefined\expandafter{\ekv@name{#1}{#2}}}
\ekv@expargtwice{\long\def\ekvifdefinedNoVal#1#2}%
@@ -1071,22 +1072,22 @@
\ekv@expansion@parse@pair@\@gobble{#2}%
}
\long\def\ekv@expansion@parse@pair@#1#2\@gobble#3{\ekv@unexpanded{#3{#1}{#2}}}
-\ekv@expargtwice{\protected\def\ekvsetdef#1#2}%
+\ekv@exparg{\protected\def\ekvsetdef#1#2}%
{%
\romannumeral
- \ekv@exparg{\ekv@zero\ekv@exparg{\def#1##1}}%
+ \ekv@exparg{\expandafter\ekv@zero\ekv@exparg{\def#1##1}}%
{\ekvset{#2}{##1}}%
}
-\ekv@expargtwice{\protected\def\ekvsetSneakeddef#1#2}%
+\ekv@exparg{\protected\def\ekvsetSneakeddef#1#2}%
{%
\romannumeral
- \ekv@exparg{\ekv@zero\ekv@exparg{\long\def#1##1##2}}%
+ \ekv@exparg{\expandafter\ekv@zero\ekv@exparg{\def#1##1##2}}%
{\ekvsetSneaked{#2}{##1}{##2}}%
}
-\ekv@expargtwice{\protected\def\ekvsetdefSneaked#1#2#3}%
+\ekv@exparg{\protected\long\def\ekvsetdefSneaked#1#2#3}%
{%
\romannumeral
- \ekv@exparg{\ekv@zero\ekv@exparg{\long\def#1##1}}%
+ \ekv@exparg{\expandafter\ekv@zero\ekv@exparg{\def#1##1}}%
{\ekvsetSneaked{#2}{#3}{##1}}%
}
\begingroup
@@ -1094,7 +1095,11 @@
\@firstofone{\endgroup
\def\ekv@alignsafe{\romannumeral\iffalse{\fi`^^@ }
}
-\def\ekv@endalignsafe{\ifnum`{=\ekv@zero}\fi}
+\begingroup
+\catcode`\^^@=1
+\@firstofone{\endgroup
+ \edef\ekv@endalignsafe{\ekv@unexpanded{\romannumeral`^^@\iffalse}\fi} }
+}
\begingroup
\def\ekvoptarg#1#2{%
\endgroup
@@ -1112,25 +1117,22 @@
#2%
\@firstofone{ ##2}{##3}%
}
-\long\def\ekv@optarg@b\ekv@mark[\ekv@mark\ifnum`##1\fi\@firstofone##2##3##4##5]%
+\@firstofone{\long\def\ekv@optarg@b
+ \ekv@mark[\ekv@mark\romannumeral`##1\fi} \@firstofone##2##3##4##5]%
{#2##2{##5}}
-\long\def\ekv@optargTF@b
- ##1\ekv@mark[\ekv@mark\ifnum`##2\fi\@firstofone##3##4##5]%
+\@firstofone{\long\def\ekv@optargTF@b
+ ##1\ekv@mark[\ekv@mark\romannumeral`##2\fi} \@firstofone##3##4##5]%
{#2 ##1{##5}}
}
\ekv@exparg
- {%
- \expandafter\ekv@strip\expandafter
- {\expandafter\ekv@mark\ekv@alignsafe}%
- \ekvoptarg
- }%
+ {\ekv@exparg\ekv@strip{\expandafter\ekv@mark\ekv@alignsafe}\ekvoptarg}%
\ekv@endalignsafe
\long\def\ekv@optarg@if#1\ekv@mark[\ekv@mark{}
\long\def\ekv@ifstar#1#2#3%
{%
- \if*\string#3%
- \ekv@fi@firstoftwo
- \fi
+ \ekv@ifatmostone{#3}%
+ {\if*\string#3\ekv@fi@firstoftwo\fi}%
+ {}%
\@secondoftwo
{#1}%
{#2{#3}}%
@@ -1223,7 +1225,7 @@
\ekv@exparg{\long\def\ekv@err@common@#1`#2' #3.#4#5}%
{\ekv@err{#4 `#5' in set `#2'}}
\ekv@exparg{\long\def\ekv@err@unknown#1#2}{\ekv@err@common{unknown key}{#1}}
-\ekv@exparg{\long\def\ekv@err@noarg#1#2}
+\ekv@exparg{\long\def\ekv@err@noarg#1#2}%
{\ekv@err@common{unwanted value for}{#1}}
\ekv@exparg{\long\def\ekv@err@reqval#1#2}%
{\ekv@err@common{missing value for}{#1}}
@@ -1232,7 +1234,7 @@
\ekv@exparg{\def\ekv@err@redirect@k@notfound#1#2\ekv@stop}%
{\ekv@err{no NoVal key `#1' in sets #2}}
\ekv@exparg{\def\ekv@err@undefined@expansion#1\fi}%
- {\expandafter\fi\ekv@err{Undefined expansion rule `#1'}}%
+ {\expandafter\fi\ekv@err{Undefined expansion rule `#1'}}
\ekv@exparg{\def\ekv@err@erroneous@variable#1}%
{\ekv@err{Erroneous variable `#1' used}}
\ekv@exparg{\def\ekv@err@key@no@reinsert}%
diff --git a/Master/texmf-dist/tex/latex/expkv-bundle/expkv-cs.sty b/Master/texmf-dist/tex/latex/expkv-bundle/expkv-cs.sty
index 66faca62fe7..b84419000ca 100644
--- a/Master/texmf-dist/tex/latex/expkv-bundle/expkv-cs.sty
+++ b/Master/texmf-dist/tex/latex/expkv-bundle/expkv-cs.sty
@@ -13,7 +13,7 @@
%% See http://www.latex-project.org/lppl.txt
%% ----------------------------------------------------------------
%%
-%% Copyright (C) 2020-2023 Jonathan P. Spratte
+%% Copyright (C) 2020-2024 Jonathan P. Spratte
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this license or
diff --git a/Master/texmf-dist/tex/latex/expkv-bundle/expkv-def.sty b/Master/texmf-dist/tex/latex/expkv-bundle/expkv-def.sty
index 300974bd57f..ae8bbb846f4 100644
--- a/Master/texmf-dist/tex/latex/expkv-bundle/expkv-def.sty
+++ b/Master/texmf-dist/tex/latex/expkv-bundle/expkv-def.sty
@@ -13,7 +13,7 @@
%% See http://www.latex-project.org/lppl.txt
%% ----------------------------------------------------------------
%%
-%% Copyright (C) 2020-2023 Jonathan P. Spratte
+%% Copyright (C) 2020-2024 Jonathan P. Spratte
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this license or
diff --git a/Master/texmf-dist/tex/latex/expkv-bundle/expkv-opt-2020-10-10.sty b/Master/texmf-dist/tex/latex/expkv-bundle/expkv-opt-2020-10-10.sty
index c2082261d77..45864b6021b 100644
--- a/Master/texmf-dist/tex/latex/expkv-bundle/expkv-opt-2020-10-10.sty
+++ b/Master/texmf-dist/tex/latex/expkv-bundle/expkv-opt-2020-10-10.sty
@@ -13,7 +13,7 @@
%% See http://www.latex-project.org/lppl.txt
%% --------------------------------------------------------------
%%
-%% Copyright (C) 2020-2023 Jonathan P. Spratte
+%% Copyright (C) 2020-2024 Jonathan P. Spratte
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this license or
diff --git a/Master/texmf-dist/tex/latex/expkv-bundle/expkv-opt.sty b/Master/texmf-dist/tex/latex/expkv-bundle/expkv-opt.sty
index a3d3dd2a742..8b768949737 100644
--- a/Master/texmf-dist/tex/latex/expkv-bundle/expkv-opt.sty
+++ b/Master/texmf-dist/tex/latex/expkv-bundle/expkv-opt.sty
@@ -13,7 +13,7 @@
%% See http://www.latex-project.org/lppl.txt
%% ----------------------------------------------------------------
%%
-%% Copyright (C) 2020-2023 Jonathan P. Spratte
+%% Copyright (C) 2020-2024 Jonathan P. Spratte
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this license or
@@ -58,8 +58,8 @@
}
\DeclareRelease{v0.1}{2020/10/10}{expkv-opt-2020-10-10.sty}
\DeclareCurrentRelease{v0.2}{2021/04/04}
-\newcommand*\ekvoVersion{1.0}
-\newcommand*\ekvoDate{2023-01-23}
+\newcommand*\ekvoVersion{1.1}
+\newcommand*\ekvoDate{2024-12-16}
\ProvidesPackage{expkv-opt}
[%
\ekvoDate\space v\ekvoVersion\space
@@ -146,6 +146,19 @@
{\unexpanded\expandafter{#1}}
\protected\def\ekvo@set@handlers@local
{%
+ \ifx\@currext\@clsextension
+ \unless\ifx\@classoptionslist\relax
+ \expandafter
+ \ifx
+ \csname @raw@opt@\@currname.\@currext\endcsname
+ \@raw@classoptionslist
+ \unless\ifx\@unusedoptionlist\@empty
+ \let\ekvo@handle@defined@k\ekvo@rmfrom@unused@one
+ \let\ekvo@handle@defined@kv\ekvo@rmfrom@unused@two
+ \fi
+ \fi
+ \fi
+ \fi
\ekvo@if@need@handlers
{%
\ifx\@currext\@clsextension
@@ -159,10 +172,6 @@
\@raw@classoptionslist
\let\ekvo@handle@undefined@k\ekvo@addto@unused@one
\let\ekvo@handle@undefined@kv\ekvo@addto@unused@two
- \unless\ifx\@unusedoptionlist\@empty
- \let\ekvo@handle@defined@k\ekvo@rmfrom@unused@one
- \let\ekvo@handle@defined@kv\ekvo@rmfrom@unused@two
- \fi
\else
\let\ekvo@handle@undefined@k\@gobble
\let\ekvo@handle@undefined@kv\@gobbletwo
@@ -401,17 +410,6 @@
\let\ekvo@handle@defined@kv\@gobbletwo
}%
}
-\protected\def\ekvoProcessUnusedGlobalOptions#1%
- {%
- \PackageError{expkv-opt}%
- {%
- \noexpand
- \ekvoProcessUnusedGlobalOptions no longer works because of changes in%
- \MessageBreak
- the LaTeX2e kernel%
- }%
- {}%
- }
\IfFormatAtLeastTF{2022/11/01}
{%
\protected\def\ekvoProcessFutureOptions#1%
@@ -489,7 +487,7 @@
\csname\ekvo@name{}uN\expandafter\endcsname\expandafter
{\detokenize{##1}}{##1}%
}%
- {\@gobble}%
+ {}%
}%
\long\def\ekvo@handle@undefined@kv##1##2%
{%
diff --git a/Master/texmf-dist/tex/latex/expkv-bundle/expkv-pop.sty b/Master/texmf-dist/tex/latex/expkv-bundle/expkv-pop.sty
index d72d49d2567..28a58b43058 100644
--- a/Master/texmf-dist/tex/latex/expkv-bundle/expkv-pop.sty
+++ b/Master/texmf-dist/tex/latex/expkv-bundle/expkv-pop.sty
@@ -13,7 +13,7 @@
%% See http://www.latex-project.org/lppl.txt
%% ----------------------------------------------------------------
%%
-%% Copyright (C) 2020-2023 Jonathan P. Spratte
+%% Copyright (C) 2020-2024 Jonathan P. Spratte
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this license or
diff --git a/Master/texmf-dist/tex/latex/expkv-bundle/expkv.sty b/Master/texmf-dist/tex/latex/expkv-bundle/expkv.sty
index 310beff3bc9..80db4430728 100644
--- a/Master/texmf-dist/tex/latex/expkv-bundle/expkv.sty
+++ b/Master/texmf-dist/tex/latex/expkv-bundle/expkv.sty
@@ -13,7 +13,7 @@
%% See http://www.latex-project.org/lppl.txt
%% ----------------------------------------------------------------
%%
-%% Copyright (C) 2020-2023 Jonathan P. Spratte
+%% Copyright (C) 2020-2024 Jonathan P. Spratte
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this license or