summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/l3kernel/l3keys.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/l3kernel/l3keys.dtx')
-rw-r--r--macros/latex/contrib/l3kernel/l3keys.dtx21
1 files changed, 14 insertions, 7 deletions
diff --git a/macros/latex/contrib/l3kernel/l3keys.dtx b/macros/latex/contrib/l3kernel/l3keys.dtx
index 84d5bc1d96..d8cec60f8f 100644
--- a/macros/latex/contrib/l3kernel/l3keys.dtx
+++ b/macros/latex/contrib/l3kernel/l3keys.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-05-22}
+% \date{Released 2023-06-05}
%
% \maketitle
%
@@ -286,6 +286,12 @@
% forbidden. Thus a required value cannot be supplied by a default
% value, and giving a default value for a key which cannot take a value
% does not trigger an error.
+%
+% When no value is given for a key as part of \cs{keys_set:nn}, the
+% \texttt{.default:n} value provides the value before key properties are
+% considered. The only exception is when the \texttt{.value_required:n}
+% property is active: a required value cannot be supplied by the default,
+% and must be explicitly given as part of \cs{keys_set:nn}.
% \end{function}
%
% \begin{function}[updated = 2020-01-17]
@@ -717,7 +723,7 @@
% \section{Setting keys}
%
% \begin{function}[updated = 2017-11-14]
-% {\keys_set:nn, \keys_set:nV, \keys_set:nv, \keys_set:no}
+% {\keys_set:nn, \keys_set:nV, \keys_set:nv, \keys_set:no, \keys_set:nx}
% \begin{syntax}
% \cs{keys_set:nn} \Arg{module} \Arg{keyval list}
% \end{syntax}
@@ -731,8 +737,8 @@
% {\l_keys_key_str, \l_keys_path_str, \l_keys_value_tl}
% For each key processed, information of the full \emph{path} of the
% key, the \emph{name} of the key and the \emph{value} of the key is
-% available within three token list variables. These may be used within
-% the code of the key.
+% available within two string and one token list variables.
+% These may be used within the code of the key.
%
% The \emph{value} is everything after the \texttt{=}, which may be
% empty if no value was given. This is stored in \cs{l_keys_value_tl}, and
@@ -2079,7 +2085,8 @@
\l_keys_path_str \s_@@_stop
\l_keys_key_tl \l_keys_key_str
\tl_set_eq:NN \l_keys_key_tl \l_keys_key_str
- \@@_execute:nn \l_keys_path_str {#1}
+ \tl_set:Nn \l_keys_value_tl {#1}
+ \@@_execute:no \l_keys_path_str \l_keys_value_tl
}
}
}
@@ -2716,7 +2723,7 @@
%
% \begin{macro}
% {
-% \keys_set:nn, \keys_set:nV, \keys_set:nv, \keys_set:no,
+% \keys_set:nn, \keys_set:nV, \keys_set:nv, \keys_set:no, \keys_set:nx,
% \@@_set:nn
% }
% \begin{macro}{\@@_set:nnn}
@@ -2742,7 +2749,7 @@
{ \exp_not:o \l_@@_relative_tl }
}
}
-\cs_generate_variant:Nn \keys_set:nn { nV , nv , no }
+\cs_generate_variant:Nn \keys_set:nn { nV , nv , no , nx }
\cs_new_protected:Npn \@@_set:nn #1#2
{ \exp_args:No \@@_set:nnn \l_@@_module_str {#1} {#2} }
\cs_new_protected:Npn \@@_set:nnn #1#2#3