diff options
Diffstat (limited to 'macros/latex/contrib/l3kernel/l3keys.dtx')
-rw-r--r-- | macros/latex/contrib/l3kernel/l3keys.dtx | 21 |
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 |