I'm new to expl3 syntax and can't get it to work properly. I'd like to get the values of known keys into variables but leave unknown pairs untouched for later use e.g. to be used in a document command where I consolidate several different package functions into one, how do I do that?
Minimum (not) working example
\documentclass{article}
\usepackage{expl3,xparse}
\ExplSyntaxOn
% Declare
\tl_new:N \l__mymod_keyi_tl
\seq_new:N \l_mymod_keyvalue_seq
% Define
\keys_define:nn { mymod } {
keyi .tl_set:N = \l__mymod_keyi_tl,
otherKeys .code:n = \mymod_store:Vn \l_keys_key_tl {#1},
}
\cs_new_protected:Nn \mymod_store:nn {
\seq_put_right:Nn \l_mymod_keyvalue_seq {#1~=~{#2},}
}
\cs_generate_variant:Nn \mymod_store:nn { V }
% Setter
\NewDocumentCommand{\setkeys}{m} {
\keys_set:nn { mymod } { #1 }
}
% Getter i
\NewExpandableDocumentCommand\printkeyi{} {
\text_expand:n{
\l__mymod_keyi_tl
}
}
% Usage here
% \NewDocumentCommand{\fun}{m} {
% \fun1{ keyName = \text_expand:n {\l__mymod_keyi_tl} }
% \fun2{ \otherKeys or \printkeys or whatever} % keyi should NOT be among them
% }
% Getter rest
\NewExpandableDocumentCommand\printkeys{} {
\seq_use:Nn \l_mymod_keyvalue_seq {,~}
}
\ExplSyntaxOff
\begin{document}
A few words
\setkeys{keyi = 3, keyii = 4, keyiii = 5}
another few
\printkeys
\end{document}
here