rework keyval interface
This commit is contained in:
parent
83ba094203
commit
b1b8f59c1b
3 changed files with 150 additions and 99 deletions
|
@ -1106,12 +1106,14 @@
|
||||||
%
|
%
|
||||||
% \begin{variable}
|
% \begin{variable}
|
||||||
% {
|
% {
|
||||||
|
% \l_@@_starred_version_bool,
|
||||||
% \l_@@_key_prefix_tl, \l_@@_key_name_tl, \l_@@_key_suffix_tl,
|
% \l_@@_key_prefix_tl, \l_@@_key_name_tl, \l_@@_key_suffix_tl,
|
||||||
% \l_@@_key_group_clist, \l_@@_key_mapname_clist, \l_@@_key_thmtools_clist
|
% \l_@@_key_group_clist, \l_@@_key_mapname_clist, \l_@@_key_thmtools_clist
|
||||||
% }
|
% }
|
||||||
% These variables will be set by the key-value interface provided by
|
% These variables will be set by the key-value interface provided by
|
||||||
% \pkg{l3keys} and are used in various places in the package.
|
% \pkg{l3keys} and are used in various places in the package.
|
||||||
% \begin{macrocode}
|
% \begin{macrocode}
|
||||||
|
\bool_new:N \l_@@_key_starred_version_bool
|
||||||
\tl_new:N \l_@@_key_prefix_tl
|
\tl_new:N \l_@@_key_prefix_tl
|
||||||
\tl_new:N \l_@@_key_name_tl
|
\tl_new:N \l_@@_key_name_tl
|
||||||
\tl_new:N \l_@@_key_suffix_tl
|
\tl_new:N \l_@@_key_suffix_tl
|
||||||
|
@ -1123,6 +1125,7 @@
|
||||||
%
|
%
|
||||||
% \begin{variable}
|
% \begin{variable}
|
||||||
% {
|
% {
|
||||||
|
% \l_@@_starred_version_bool
|
||||||
% \l_@@_prefix_tl,
|
% \l_@@_prefix_tl,
|
||||||
% \l_@@_name_tl,
|
% \l_@@_name_tl,
|
||||||
% \l_@@_suffix_tl,
|
% \l_@@_suffix_tl,
|
||||||
|
@ -1179,29 +1182,46 @@
|
||||||
%
|
%
|
||||||
%
|
%
|
||||||
% \begin{macrocode}
|
% \begin{macrocode}
|
||||||
\keys_define:nn { groupthm }
|
\keys_define:nn { groupthm / theorem ~ group }
|
||||||
{
|
{
|
||||||
prefix .tl_set:N = \l_@@_key_prefix_tl,
|
prefix .tl_set:N = \l_@@_key_prefix_tl,
|
||||||
prefix .default:n = \c_empty_tl,
|
prefix .default:n = \c_empty_tl,
|
||||||
prefix .groups:n = { theoremgroup },
|
|
||||||
name .tl_set:N = \l_@@_key_name_tl,
|
|
||||||
name .default:n = \c_novalue_tl,
|
|
||||||
name .groups:n = { groupedtheorem, theoremvariants },
|
|
||||||
suffix .tl_set:N = \l_@@_key_suffix_tl,
|
suffix .tl_set:N = \l_@@_key_suffix_tl,
|
||||||
suffix .default:n = \c_empty_tl,
|
suffix .default:n = \c_empty_tl,
|
||||||
suffix .groups:n = { theoremgroup },
|
suffix .groups:n = { theoremgroup },
|
||||||
group .clist_set:N = \l_@@_key_group_clist,
|
map ~ name .clist_set:N = \l_@@_mapname_clist,
|
||||||
group .default:n = {},
|
map ~ name .default:n = {},
|
||||||
group .groups:n = { groupedtheorem, theoremvariants },
|
map ~ name .groups:n = { theoremgroup },
|
||||||
mapname .clist_set:N = \l_@@_mapname_clist,
|
|
||||||
mapname .default:n = {},
|
|
||||||
mapname .groups:n = { theoremgroup },
|
|
||||||
thmtools .clist_set:N = \l_@@_key_thmtools_clist,
|
thmtools .clist_set:N = \l_@@_key_thmtools_clist,
|
||||||
thmtools .default:n = {},
|
thmtools .default:n = {},
|
||||||
thmtools .groups:n =
|
|
||||||
{ theoremgroup, groupedtheorem, theoremvariants },
|
|
||||||
unknown .code:n =
|
unknown .code:n =
|
||||||
\msg_error:nnn { groupthm } { unknown ~ group } { \l_keys_key_str }
|
\msg_error:nnn { groupthm } { unknown ~ key } { \l_keys_key_str }
|
||||||
|
}
|
||||||
|
\keys_define:nn { groupthm / grouped ~ theorem }
|
||||||
|
{
|
||||||
|
name .tl_set:N = \l_@@_key_name_tl,
|
||||||
|
name .default:n = \c_novalue_tl,
|
||||||
|
group .clist_set:N = \l_@@_key_group_clist,
|
||||||
|
group .default:n = {},
|
||||||
|
thmtools .clist_set:N = \l_@@_key_thmtools_clist,
|
||||||
|
thmtools .default:n = {},
|
||||||
|
starred ~ version .bool_set:N = \l_@@_key_starred_version_bool,
|
||||||
|
starred ~ version .default:n = { true },
|
||||||
|
unknown .code:n =
|
||||||
|
\msg_error:nnn { groupthm } { unknown ~ key } { \l_keys_key_str }
|
||||||
|
}
|
||||||
|
\keys_define:nn { groupthm / theorem ~ family }
|
||||||
|
{
|
||||||
|
name .tl_set:N = \l_@@_key_name_tl,
|
||||||
|
name .default:n = \c_novalue_tl,
|
||||||
|
group .clist_set:N = \l_@@_key_group_clist,
|
||||||
|
group .default:n = {},
|
||||||
|
thmtools .clist_set:N = \l_@@_key_thmtools_clist,
|
||||||
|
thmtools .default:n = {},
|
||||||
|
starred ~ version .bool_set:N = \l_@@_key_starred_version_bool,
|
||||||
|
starred ~ version .default:n = { true },
|
||||||
|
unknown .code:n =
|
||||||
|
\msg_error:nnn { groupthm } { unknown ~ key } { \l_keys_key_str }
|
||||||
}
|
}
|
||||||
% \end{macrocode}
|
% \end{macrocode}
|
||||||
%
|
%
|
||||||
|
@ -1224,8 +1244,13 @@
|
||||||
% \begin{macrocode}
|
% \begin{macrocode}
|
||||||
\cs_new:Npn \@@_set_normalized_keys:nnn #1 #2 #3
|
\cs_new:Npn \@@_set_normalized_keys:nnn #1 #2 #3
|
||||||
{
|
{
|
||||||
\keys_set:nn { groupthm } { prefix, name, suffix, group, mapname, thmtools }
|
\keys_set:nn { groupthm / theorem ~ group }
|
||||||
\keys_set_groups:nnn { groupthm } { #2 } { #1 }
|
{ prefix, suffix, thmtools, map ~ name }
|
||||||
|
\keys_set:nn { groupthm / grouped ~ theorem }
|
||||||
|
{ name, group, thmtools, starred ~ version }
|
||||||
|
\keys_set:nn { groupthm / theorem ~ family }
|
||||||
|
{ name, group, thmtools, starred ~ version }
|
||||||
|
\keys_set:nn { groupthm / #2 } { #1 }
|
||||||
% \end{macrocode}
|
% \end{macrocode}
|
||||||
%
|
%
|
||||||
% Normalize given name
|
% Normalize given name
|
||||||
|
@ -1246,6 +1271,7 @@
|
||||||
% Copy set keys into local variables
|
% Copy set keys into local variables
|
||||||
%
|
%
|
||||||
% \begin{macrocode}
|
% \begin{macrocode}
|
||||||
|
\bool_set_eq:NN \l_@@_starred_version_bool \l_@@_key_starred_version_bool
|
||||||
\tl_set_eq:NN \l_@@_prefix_tl \l_@@_key_prefix_tl
|
\tl_set_eq:NN \l_@@_prefix_tl \l_@@_key_prefix_tl
|
||||||
\tl_set_eq:NN \l_@@_suffix_tl \l_@@_key_suffix_tl
|
\tl_set_eq:NN \l_@@_suffix_tl \l_@@_key_suffix_tl
|
||||||
\clist_set_eq:NN \l_@@_group_clist \l_@@_key_group_clist
|
\clist_set_eq:NN \l_@@_group_clist \l_@@_key_group_clist
|
||||||
|
@ -1735,7 +1761,7 @@
|
||||||
{ new, renew, provide, declare }
|
{ new, renew, provide, declare }
|
||||||
{ groupthm_#1_group:nn }
|
{ groupthm_#1_group:nn }
|
||||||
{
|
{
|
||||||
\@@_set_normalized_keys:nnn { ##1 } { theoremgroup } { ##2 }
|
\@@_set_normalized_keys:nnn { ##1 } { theorem ~ group } { ##2 }
|
||||||
\use:c { groupthm_#1_group:nVVVV }
|
\use:c { groupthm_#1_group:nVVVV }
|
||||||
{ ##2 }
|
{ ##2 }
|
||||||
\l_@@_prefix_tl
|
\l_@@_prefix_tl
|
||||||
|
@ -2302,7 +2328,7 @@
|
||||||
% \begin{macrocode}
|
% \begin{macrocode}
|
||||||
\cs_new:Npn \groupthm_new_grouped_theorem_from_keys:nn #1 #2
|
\cs_new:Npn \groupthm_new_grouped_theorem_from_keys:nn #1 #2
|
||||||
{
|
{
|
||||||
\@@_set_normalized_keys:nnn { #1 } { groupedtheorem } { #2 }
|
\@@_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||||
|
|
||||||
\groupthm_new_grouped_theorem:nVVV
|
\groupthm_new_grouped_theorem:nVVV
|
||||||
{ #1 }
|
{ #1 }
|
||||||
|
@ -2318,7 +2344,7 @@
|
||||||
% \begin{macrocode}
|
% \begin{macrocode}
|
||||||
\cs_new:Npn \groupthm_provide_grouped_theorem_from_keys:nn #1 #2
|
\cs_new:Npn \groupthm_provide_grouped_theorem_from_keys:nn #1 #2
|
||||||
{
|
{
|
||||||
\@@_set_normalized_keys:nnn { #1 } { groupedtheorem } { #2 }
|
\@@_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||||
|
|
||||||
\groupthm_provide_grouped_theorem:nVVV
|
\groupthm_provide_grouped_theorem:nVVV
|
||||||
{ #1 }
|
{ #1 }
|
||||||
|
@ -2334,7 +2360,7 @@
|
||||||
% \begin{macrocode}
|
% \begin{macrocode}
|
||||||
\cs_new:Npn \groupthm_new_grouped_theorem_star_from_keys:nn #1 #2
|
\cs_new:Npn \groupthm_new_grouped_theorem_star_from_keys:nn #1 #2
|
||||||
{
|
{
|
||||||
\@@_set_normalized_keys:nnn { #1 } { groupedtheorem } { #2 }
|
\@@_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||||
|
|
||||||
\groupthm_new_grouped_theorem_star:nVVV
|
\groupthm_new_grouped_theorem_star:nVVV
|
||||||
{ #2 }
|
{ #2 }
|
||||||
|
@ -2350,7 +2376,7 @@
|
||||||
% \begin{macrocode}
|
% \begin{macrocode}
|
||||||
\cs_new:Npn \groupthm_provide_grouped_theorem_star_from_keys:nn #1 #2
|
\cs_new:Npn \groupthm_provide_grouped_theorem_star_from_keys:nn #1 #2
|
||||||
{
|
{
|
||||||
\@@_set_normalized_keys:nnn { #1 } { groupedtheorem } { #2 }
|
\@@_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||||
|
|
||||||
\groupthm_provide_grouped_theorem_star:nVVV
|
\groupthm_provide_grouped_theorem_star:nVVV
|
||||||
{ #2 }
|
{ #2 }
|
||||||
|
@ -2367,7 +2393,7 @@
|
||||||
% \begin{macrocode}
|
% \begin{macrocode}
|
||||||
\cs_new:Npn \groupthm_new_theorem_from_keys:nn #1 #2
|
\cs_new:Npn \groupthm_new_theorem_from_keys:nn #1 #2
|
||||||
{
|
{
|
||||||
\@@_set_normalized_keys:nnn { #1 } { groupedtheorem } { #2 }
|
\@@_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||||
|
|
||||||
\groupthm_new_theorem:nVVV
|
\groupthm_new_theorem:nVVV
|
||||||
{ #2 }
|
{ #2 }
|
||||||
|
@ -2383,7 +2409,7 @@
|
||||||
% \begin{macrocode}
|
% \begin{macrocode}
|
||||||
\cs_new:Npn \groupthm_provide_theorem_from_keys:nn #1 #2
|
\cs_new:Npn \groupthm_provide_theorem_from_keys:nn #1 #2
|
||||||
{
|
{
|
||||||
\@@_set_normalized_keys:nnn { #1 } { groupedtheorem } { #2 }
|
\@@_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||||
|
|
||||||
\groupthm_provide_theorem:nVVV
|
\groupthm_provide_theorem:nVVV
|
||||||
{ #2 }
|
{ #2 }
|
||||||
|
@ -2399,7 +2425,7 @@
|
||||||
% \begin{macrocode}
|
% \begin{macrocode}
|
||||||
\cs_new:Npn \groupthm_new_theorem_star_from_keys:nn #1 #2
|
\cs_new:Npn \groupthm_new_theorem_star_from_keys:nn #1 #2
|
||||||
{
|
{
|
||||||
\@@_set_normalized_keys:nnn { #1 } { groupedtheorem } { #2 }
|
\@@_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||||
|
|
||||||
\groupthm_new_theorem_star:nVVV
|
\groupthm_new_theorem_star:nVVV
|
||||||
{ #1 }
|
{ #1 }
|
||||||
|
@ -2415,7 +2441,7 @@
|
||||||
% \begin{macrocode}
|
% \begin{macrocode}
|
||||||
\cs_new:Npn \groupthm_provide_theorem_star_from_keys:nn #1 #2
|
\cs_new:Npn \groupthm_provide_theorem_star_from_keys:nn #1 #2
|
||||||
{
|
{
|
||||||
\@@_set_normalized_keys:nnn { #1 } { groupedtheorem } { #2 }
|
\@@_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||||
|
|
||||||
\groupthm_provide_theorem_star:nVVV
|
\groupthm_provide_theorem_star:nVVV
|
||||||
{ #1 }
|
{ #1 }
|
||||||
|
@ -2753,7 +2779,7 @@
|
||||||
% \begin{macrocode}
|
% \begin{macrocode}
|
||||||
\cs_new:Npn \groupthm_new_grouped_theorem_family_from_keys:nn #1 #2
|
\cs_new:Npn \groupthm_new_grouped_theorem_family_from_keys:nn #1 #2
|
||||||
{
|
{
|
||||||
\@@_set_normalized_keys:nnn { #1 } { groupedtheorem } { #2 }
|
\@@_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||||
\groupthm_new_grouped_theorem_family:nVVV
|
\groupthm_new_grouped_theorem_family:nVVV
|
||||||
{ #2 }
|
{ #2 }
|
||||||
\l_@@_group_clist
|
\l_@@_group_clist
|
||||||
|
@ -2775,7 +2801,7 @@
|
||||||
% \begin{macrocode}
|
% \begin{macrocode}
|
||||||
\cs_new:Npn \groupthm_provide_grouped_theorem_family_from_keys:nn #1 #2
|
\cs_new:Npn \groupthm_provide_grouped_theorem_family_from_keys:nn #1 #2
|
||||||
{
|
{
|
||||||
\@@_set_normalized_keys:nnn { #1 } {groupedtheorem} { #2 }
|
\@@_set_normalized_keys:nnn { #1 } {grouped ~ theorem} { #2 }
|
||||||
\groupthm_provide_grouped_theorem_family:nVVV
|
\groupthm_provide_grouped_theorem_family:nVVV
|
||||||
{ #2 }
|
{ #2 }
|
||||||
\l_@@_group_clist
|
\l_@@_group_clist
|
||||||
|
@ -2797,7 +2823,7 @@
|
||||||
% \begin{macrocode}
|
% \begin{macrocode}
|
||||||
\cs_new:Npn \groupthm_new_grouped_theorem_family_star_from_keys:nn #1 #2
|
\cs_new:Npn \groupthm_new_grouped_theorem_family_star_from_keys:nn #1 #2
|
||||||
{
|
{
|
||||||
\@@_set_normalized_keys:nnn { #1 } { groupedtheorem }{ #2 }
|
\@@_set_normalized_keys:nnn { #1 } { grouped ~ theorem }{ #2 }
|
||||||
\groupthm_new_grouped_theorem_family_star:nVVV
|
\groupthm_new_grouped_theorem_family_star:nVVV
|
||||||
{ #2 }
|
{ #2 }
|
||||||
\l_@@_group_clist
|
\l_@@_group_clist
|
||||||
|
@ -2819,7 +2845,7 @@
|
||||||
% \begin{macrocode}
|
% \begin{macrocode}
|
||||||
\cs_new:Npn \groupthm_provide_grouped_theorem_family_star_from_keys:nn #1 #2
|
\cs_new:Npn \groupthm_provide_grouped_theorem_family_star_from_keys:nn #1 #2
|
||||||
{
|
{
|
||||||
\@@_set_normalized_keys:nnn { #1 } { groupedtheorem }{ #2 }
|
\@@_set_normalized_keys:nnn { #1 } { grouped ~ theorem }{ #2 }
|
||||||
\groupthm_provide_grouped_theorem_family_star:nVVV
|
\groupthm_provide_grouped_theorem_family_star:nVVV
|
||||||
{ #2 }
|
{ #2 }
|
||||||
\l_@@_group_clist
|
\l_@@_group_clist
|
||||||
|
@ -2841,7 +2867,7 @@
|
||||||
% \begin{macrocode}
|
% \begin{macrocode}
|
||||||
\cs_new:Npn \groupthm_new_theorem_family_from_keys:nn #1 #2
|
\cs_new:Npn \groupthm_new_theorem_family_from_keys:nn #1 #2
|
||||||
{
|
{
|
||||||
\@@_set_normalized_keys:nnn { #1 } { groupedtheorem } { #2 }
|
\@@_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||||
\groupthm_new_theorem_family:nVVV
|
\groupthm_new_theorem_family:nVVV
|
||||||
{ #2 }
|
{ #2 }
|
||||||
\l_@@_group_clist
|
\l_@@_group_clist
|
||||||
|
@ -2863,7 +2889,7 @@
|
||||||
% \begin{macrocode}
|
% \begin{macrocode}
|
||||||
\cs_new:Npn \groupthm_provide_theorem_family_from_keys:nn #1 #2
|
\cs_new:Npn \groupthm_provide_theorem_family_from_keys:nn #1 #2
|
||||||
{
|
{
|
||||||
\@@_set_normalized_keys:nnn { #1 } { groupedtheorem } { #2 }
|
\@@_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||||
\groupthm_provide_theorem_family:nVVV
|
\groupthm_provide_theorem_family:nVVV
|
||||||
{ #2 }
|
{ #2 }
|
||||||
\l_@@_group_clist
|
\l_@@_group_clist
|
||||||
|
@ -2885,7 +2911,7 @@
|
||||||
% \begin{macrocode}
|
% \begin{macrocode}
|
||||||
\cs_new:Npn \groupthm_new_theorem_family_star_from_keys:nn #1 #2
|
\cs_new:Npn \groupthm_new_theorem_family_star_from_keys:nn #1 #2
|
||||||
{
|
{
|
||||||
\@@_set_normalized_keys:nnn { #1 } { groupedtheorem } { #2 }
|
\@@_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||||
\groupthm_new_theorem_family_star:nVVV
|
\groupthm_new_theorem_family_star:nVVV
|
||||||
{ #2 }
|
{ #2 }
|
||||||
\l_@@_group_clist
|
\l_@@_group_clist
|
||||||
|
@ -2907,7 +2933,7 @@
|
||||||
% \begin{macrocode}
|
% \begin{macrocode}
|
||||||
\cs_new:Npn \groupthm_provide_theorem_family_star_from_keys:nn #1 #2
|
\cs_new:Npn \groupthm_provide_theorem_family_star_from_keys:nn #1 #2
|
||||||
{
|
{
|
||||||
\@@_set_normalized_keys:nnn { #1 } { groupedtheorem } { #2 }
|
\@@_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||||
\groupthm_provide_theorem_family_star:nVVV
|
\groupthm_provide_theorem_family_star:nVVV
|
||||||
{ #2 }
|
{ #2 }
|
||||||
\l_@@_group_clist
|
\l_@@_group_clist
|
||||||
|
|
|
@ -72,6 +72,7 @@
|
||||||
\hook_new:n { __groupthm/thmtools }
|
\hook_new:n { __groupthm/thmtools }
|
||||||
\hook_new:n { __groupthm/groupsort }
|
\hook_new:n { __groupthm/groupsort }
|
||||||
\cs_generate_variant:Nn \hook_gset_rule:nnnn { n n V n }
|
\cs_generate_variant:Nn \hook_gset_rule:nnnn { n n V n }
|
||||||
|
\bool_new:N \l__groupthm_key_starred_version_bool
|
||||||
\tl_new:N \l__groupthm_key_prefix_tl
|
\tl_new:N \l__groupthm_key_prefix_tl
|
||||||
\tl_new:N \l__groupthm_key_name_tl
|
\tl_new:N \l__groupthm_key_name_tl
|
||||||
\tl_new:N \l__groupthm_key_suffix_tl
|
\tl_new:N \l__groupthm_key_suffix_tl
|
||||||
|
@ -86,34 +87,56 @@
|
||||||
\clist_new:N \l__groupthm_group_clist
|
\clist_new:N \l__groupthm_group_clist
|
||||||
\clist_new:N \g__groupthm_defined_groups_clist
|
\clist_new:N \g__groupthm_defined_groups_clist
|
||||||
\bool_new:N \l__groupthm_in_family_options_environment_bool
|
\bool_new:N \l__groupthm_in_family_options_environment_bool
|
||||||
\keys_define:nn { groupthm }
|
\keys_define:nn { groupthm / theorem ~ group }
|
||||||
{
|
{
|
||||||
prefix .tl_set:N = \l__groupthm_key_prefix_tl,
|
prefix .tl_set:N = \l__groupthm_key_prefix_tl,
|
||||||
prefix .default:n = \c_empty_tl,
|
prefix .default:n = \c_empty_tl,
|
||||||
prefix .groups:n = { theoremgroup },
|
|
||||||
name .tl_set:N = \l__groupthm_key_name_tl,
|
|
||||||
name .default:n = \c_novalue_tl,
|
|
||||||
name .groups:n = { groupedtheorem, theoremvariants },
|
|
||||||
suffix .tl_set:N = \l__groupthm_key_suffix_tl,
|
suffix .tl_set:N = \l__groupthm_key_suffix_tl,
|
||||||
suffix .default:n = \c_empty_tl,
|
suffix .default:n = \c_empty_tl,
|
||||||
suffix .groups:n = { theoremgroup },
|
suffix .groups:n = { theoremgroup },
|
||||||
group .clist_set:N = \l__groupthm_key_group_clist,
|
map ~ name .clist_set:N = \l__groupthm_mapname_clist,
|
||||||
group .default:n = {},
|
map ~ name .default:n = {},
|
||||||
group .groups:n = { groupedtheorem, theoremvariants },
|
map ~ name .groups:n = { theoremgroup },
|
||||||
mapname .clist_set:N = \l__groupthm_mapname_clist,
|
|
||||||
mapname .default:n = {},
|
|
||||||
mapname .groups:n = { theoremgroup },
|
|
||||||
thmtools .clist_set:N = \l__groupthm_key_thmtools_clist,
|
thmtools .clist_set:N = \l__groupthm_key_thmtools_clist,
|
||||||
thmtools .default:n = {},
|
thmtools .default:n = {},
|
||||||
thmtools .groups:n =
|
|
||||||
{ theoremgroup, groupedtheorem, theoremvariants },
|
|
||||||
unknown .code:n =
|
unknown .code:n =
|
||||||
\msg_error:nnn { groupthm } { unknown ~ group } { \l_keys_key_str }
|
\msg_error:nnn { groupthm } { unknown ~ key } { \l_keys_key_str }
|
||||||
|
}
|
||||||
|
\keys_define:nn { groupthm / grouped ~ theorem }
|
||||||
|
{
|
||||||
|
name .tl_set:N = \l__groupthm_key_name_tl,
|
||||||
|
name .default:n = \c_novalue_tl,
|
||||||
|
group .clist_set:N = \l__groupthm_key_group_clist,
|
||||||
|
group .default:n = {},
|
||||||
|
thmtools .clist_set:N = \l__groupthm_key_thmtools_clist,
|
||||||
|
thmtools .default:n = {},
|
||||||
|
starred ~ version .bool_set:N = \l__groupthm_key_starred_version_bool,
|
||||||
|
starred ~ version .default:n = { true },
|
||||||
|
unknown .code:n =
|
||||||
|
\msg_error:nnn { groupthm } { unknown ~ key } { \l_keys_key_str }
|
||||||
|
}
|
||||||
|
\keys_define:nn { groupthm / theorem ~ family }
|
||||||
|
{
|
||||||
|
name .tl_set:N = \l__groupthm_key_name_tl,
|
||||||
|
name .default:n = \c_novalue_tl,
|
||||||
|
group .clist_set:N = \l__groupthm_key_group_clist,
|
||||||
|
group .default:n = {},
|
||||||
|
thmtools .clist_set:N = \l__groupthm_key_thmtools_clist,
|
||||||
|
thmtools .default:n = {},
|
||||||
|
starred ~ version .bool_set:N = \l__groupthm_key_starred_version_bool,
|
||||||
|
starred ~ version .default:n = { true },
|
||||||
|
unknown .code:n =
|
||||||
|
\msg_error:nnn { groupthm } { unknown ~ key } { \l_keys_key_str }
|
||||||
}
|
}
|
||||||
\cs_new:Npn \__groupthm_set_normalized_keys:nnn #1 #2 #3
|
\cs_new:Npn \__groupthm_set_normalized_keys:nnn #1 #2 #3
|
||||||
{
|
{
|
||||||
\keys_set:nn { groupthm } { prefix, name, suffix, group, mapname, thmtools }
|
\keys_set:nn { groupthm / theorem ~ group }
|
||||||
\keys_set_groups:nnn { groupthm } { #2 } { #1 }
|
{ prefix, suffix, thmtools, map ~ name }
|
||||||
|
\keys_set:nn { groupthm / grouped ~ theorem }
|
||||||
|
{ name, group, thmtools, starred ~ version }
|
||||||
|
\keys_set:nn { groupthm / theorem ~ family }
|
||||||
|
{ name, group, thmtools, starred ~ version }
|
||||||
|
\keys_set:nn { groupthm / #2 } { #1 }
|
||||||
\tl_if_eq:NnTF \l__groupthm_key_name_tl { \c_novalue_tl }
|
\tl_if_eq:NnTF \l__groupthm_key_name_tl { \c_novalue_tl }
|
||||||
{
|
{
|
||||||
\tl_set:Nx \l__groupthm_name_tl
|
\tl_set:Nx \l__groupthm_name_tl
|
||||||
|
@ -124,6 +147,7 @@
|
||||||
{
|
{
|
||||||
\tl_set_eq:NN \l__groupthm_name_tl \l__groupthm_key_name_tl
|
\tl_set_eq:NN \l__groupthm_name_tl \l__groupthm_key_name_tl
|
||||||
}
|
}
|
||||||
|
\bool_set_eq:NN \l__groupthm_starred_version_bool \l__groupthm_key_starred_version_bool
|
||||||
\tl_set_eq:NN \l__groupthm_prefix_tl \l__groupthm_key_prefix_tl
|
\tl_set_eq:NN \l__groupthm_prefix_tl \l__groupthm_key_prefix_tl
|
||||||
\tl_set_eq:NN \l__groupthm_suffix_tl \l__groupthm_key_suffix_tl
|
\tl_set_eq:NN \l__groupthm_suffix_tl \l__groupthm_key_suffix_tl
|
||||||
\clist_set_eq:NN \l__groupthm_group_clist \l__groupthm_key_group_clist
|
\clist_set_eq:NN \l__groupthm_group_clist \l__groupthm_key_group_clist
|
||||||
|
@ -317,7 +341,7 @@
|
||||||
{ new, renew, provide, declare }
|
{ new, renew, provide, declare }
|
||||||
{ groupthm_#1_group:nn }
|
{ groupthm_#1_group:nn }
|
||||||
{
|
{
|
||||||
\__groupthm_set_normalized_keys:nnn { ##1 } { theoremgroup } { ##2 }
|
\__groupthm_set_normalized_keys:nnn { ##1 } { theorem ~ group } { ##2 }
|
||||||
\use:c { groupthm_#1_group:nVVVV }
|
\use:c { groupthm_#1_group:nVVVV }
|
||||||
{ ##2 }
|
{ ##2 }
|
||||||
\l__groupthm_prefix_tl
|
\l__groupthm_prefix_tl
|
||||||
|
@ -493,12 +517,13 @@
|
||||||
{ new, provide }
|
{ new, provide }
|
||||||
{ grouped ~ theorem }
|
{ grouped ~ theorem }
|
||||||
{ ##1 }
|
{ ##1 }
|
||||||
\error
|
\__groupthm_error:
|
||||||
\__groupthm_define_theorem:nnnn
|
\__groupthm_define_theorem:nnnn
|
||||||
{ groupthm_#1_grouped_theorem:nnnn }
|
{ groupthm_#1_theorem_:nnnn }
|
||||||
{ { ##1 } { ##2 } { ##3 } { ##4 } }
|
{ { ##1 } { ##2 } { ##3 } { ##4 } }
|
||||||
\cs_generate_variant:Nn \groupthm_new_grouped_theorem:nnnn { n V V V }
|
\cs_generate_variant:Nn \groupthm_new_grouped_theorem:nnnn { n V V V }
|
||||||
\cs_generate_variant:Nn \groupthm_new_grouped_theorem:nnnn { x V n n }
|
\cs_generate_variant:Nn \groupthm_new_grouped_theorem:nnnn { x V n n }
|
||||||
|
|
||||||
\cs_new:Npn \groupthm_new_grouped_theorem_star:nnnn #1 #2 #3 #4
|
\cs_new:Npn \groupthm_new_grouped_theorem_star:nnnn #1 #2 #3 #4
|
||||||
{
|
{
|
||||||
\groupthm_new_grouped_theorem:nnnn
|
\groupthm_new_grouped_theorem:nnnn
|
||||||
|
@ -537,7 +562,7 @@
|
||||||
}
|
}
|
||||||
\cs_new:Npn \groupthm_new_grouped_theorem_from_keys:nn #1 #2
|
\cs_new:Npn \groupthm_new_grouped_theorem_from_keys:nn #1 #2
|
||||||
{
|
{
|
||||||
\__groupthm_set_normalized_keys:nnn { #1 } { groupedtheorem } { #2 }
|
\__groupthm_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||||
|
|
||||||
\groupthm_new_grouped_theorem:nVVV
|
\groupthm_new_grouped_theorem:nVVV
|
||||||
{ #1 }
|
{ #1 }
|
||||||
|
@ -547,7 +572,7 @@
|
||||||
}
|
}
|
||||||
\cs_new:Npn \groupthm_provide_grouped_theorem_from_keys:nn #1 #2
|
\cs_new:Npn \groupthm_provide_grouped_theorem_from_keys:nn #1 #2
|
||||||
{
|
{
|
||||||
\__groupthm_set_normalized_keys:nnn { #1 } { groupedtheorem } { #2 }
|
\__groupthm_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||||
|
|
||||||
\groupthm_provide_grouped_theorem:nVVV
|
\groupthm_provide_grouped_theorem:nVVV
|
||||||
{ #1 }
|
{ #1 }
|
||||||
|
@ -557,7 +582,7 @@
|
||||||
}
|
}
|
||||||
\cs_new:Npn \groupthm_new_grouped_theorem_star_from_keys:nn #1 #2
|
\cs_new:Npn \groupthm_new_grouped_theorem_star_from_keys:nn #1 #2
|
||||||
{
|
{
|
||||||
\__groupthm_set_normalized_keys:nnn { #1 } { groupedtheorem } { #2 }
|
\__groupthm_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||||
|
|
||||||
\groupthm_new_grouped_theorem_star:nVVV
|
\groupthm_new_grouped_theorem_star:nVVV
|
||||||
{ #2 }
|
{ #2 }
|
||||||
|
@ -567,7 +592,7 @@
|
||||||
}
|
}
|
||||||
\cs_new:Npn \groupthm_provide_grouped_theorem_star_from_keys:nn #1 #2
|
\cs_new:Npn \groupthm_provide_grouped_theorem_star_from_keys:nn #1 #2
|
||||||
{
|
{
|
||||||
\__groupthm_set_normalized_keys:nnn { #1 } { groupedtheorem } { #2 }
|
\__groupthm_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||||
|
|
||||||
\groupthm_provide_grouped_theorem_star:nVVV
|
\groupthm_provide_grouped_theorem_star:nVVV
|
||||||
{ #2 }
|
{ #2 }
|
||||||
|
@ -577,7 +602,7 @@
|
||||||
}
|
}
|
||||||
\cs_new:Npn \groupthm_new_theorem_from_keys:nn #1 #2
|
\cs_new:Npn \groupthm_new_theorem_from_keys:nn #1 #2
|
||||||
{
|
{
|
||||||
\__groupthm_set_normalized_keys:nnn { #1 } { groupedtheorem } { #2 }
|
\__groupthm_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||||
|
|
||||||
\groupthm_new_theorem:nVVV
|
\groupthm_new_theorem:nVVV
|
||||||
{ #2 }
|
{ #2 }
|
||||||
|
@ -587,7 +612,7 @@
|
||||||
}
|
}
|
||||||
\cs_new:Npn \groupthm_provide_theorem_from_keys:nn #1 #2
|
\cs_new:Npn \groupthm_provide_theorem_from_keys:nn #1 #2
|
||||||
{
|
{
|
||||||
\__groupthm_set_normalized_keys:nnn { #1 } { groupedtheorem } { #2 }
|
\__groupthm_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||||
|
|
||||||
\groupthm_provide_theorem:nVVV
|
\groupthm_provide_theorem:nVVV
|
||||||
{ #2 }
|
{ #2 }
|
||||||
|
@ -597,7 +622,7 @@
|
||||||
}
|
}
|
||||||
\cs_new:Npn \groupthm_new_theorem_star_from_keys:nn #1 #2
|
\cs_new:Npn \groupthm_new_theorem_star_from_keys:nn #1 #2
|
||||||
{
|
{
|
||||||
\__groupthm_set_normalized_keys:nnn { #1 } { groupedtheorem } { #2 }
|
\__groupthm_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||||
|
|
||||||
\groupthm_new_theorem_star:nVVV
|
\groupthm_new_theorem_star:nVVV
|
||||||
{ #1 }
|
{ #1 }
|
||||||
|
@ -607,7 +632,7 @@
|
||||||
}
|
}
|
||||||
\cs_new:Npn \groupthm_provide_theorem_star_from_keys:nn #1 #2
|
\cs_new:Npn \groupthm_provide_theorem_star_from_keys:nn #1 #2
|
||||||
{
|
{
|
||||||
\__groupthm_set_normalized_keys:nnn { #1 } { groupedtheorem } { #2 }
|
\__groupthm_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||||
|
|
||||||
\groupthm_provide_theorem_star:nVVV
|
\groupthm_provide_theorem_star:nVVV
|
||||||
{ #1 }
|
{ #1 }
|
||||||
|
@ -720,7 +745,7 @@
|
||||||
\cs_generate_variant:Nn \groupthm_provide_theorem_family_star:nnnn { n V V V }
|
\cs_generate_variant:Nn \groupthm_provide_theorem_family_star:nnnn { n V V V }
|
||||||
\cs_new:Npn \groupthm_new_grouped_theorem_family_from_keys:nn #1 #2
|
\cs_new:Npn \groupthm_new_grouped_theorem_family_from_keys:nn #1 #2
|
||||||
{
|
{
|
||||||
\__groupthm_set_normalized_keys:nnn { #1 } { groupedtheorem } { #2 }
|
\__groupthm_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||||
\groupthm_new_grouped_theorem_family:nVVV
|
\groupthm_new_grouped_theorem_family:nVVV
|
||||||
{ #2 }
|
{ #2 }
|
||||||
\l__groupthm_group_clist
|
\l__groupthm_group_clist
|
||||||
|
@ -729,7 +754,7 @@
|
||||||
}
|
}
|
||||||
\cs_new:Npn \groupthm_provide_grouped_theorem_family_from_keys:nn #1 #2
|
\cs_new:Npn \groupthm_provide_grouped_theorem_family_from_keys:nn #1 #2
|
||||||
{
|
{
|
||||||
\__groupthm_set_normalized_keys:nnn { #1 } {groupedtheorem} { #2 }
|
\__groupthm_set_normalized_keys:nnn { #1 } {grouped ~ theorem} { #2 }
|
||||||
\groupthm_provide_grouped_theorem_family:nVVV
|
\groupthm_provide_grouped_theorem_family:nVVV
|
||||||
{ #2 }
|
{ #2 }
|
||||||
\l__groupthm_group_clist
|
\l__groupthm_group_clist
|
||||||
|
@ -738,7 +763,7 @@
|
||||||
}
|
}
|
||||||
\cs_new:Npn \groupthm_new_grouped_theorem_family_star_from_keys:nn #1 #2
|
\cs_new:Npn \groupthm_new_grouped_theorem_family_star_from_keys:nn #1 #2
|
||||||
{
|
{
|
||||||
\__groupthm_set_normalized_keys:nnn { #1 } { groupedtheorem }{ #2 }
|
\__groupthm_set_normalized_keys:nnn { #1 } { grouped ~ theorem }{ #2 }
|
||||||
\groupthm_new_grouped_theorem_family_star:nVVV
|
\groupthm_new_grouped_theorem_family_star:nVVV
|
||||||
{ #2 }
|
{ #2 }
|
||||||
\l__groupthm_group_clist
|
\l__groupthm_group_clist
|
||||||
|
@ -747,7 +772,7 @@
|
||||||
}
|
}
|
||||||
\cs_new:Npn \groupthm_provide_grouped_theorem_family_star_from_keys:nn #1 #2
|
\cs_new:Npn \groupthm_provide_grouped_theorem_family_star_from_keys:nn #1 #2
|
||||||
{
|
{
|
||||||
\__groupthm_set_normalized_keys:nnn { #1 } { groupedtheorem }{ #2 }
|
\__groupthm_set_normalized_keys:nnn { #1 } { grouped ~ theorem }{ #2 }
|
||||||
\groupthm_provide_grouped_theorem_family_star:nVVV
|
\groupthm_provide_grouped_theorem_family_star:nVVV
|
||||||
{ #2 }
|
{ #2 }
|
||||||
\l__groupthm_group_clist
|
\l__groupthm_group_clist
|
||||||
|
@ -756,7 +781,7 @@
|
||||||
}
|
}
|
||||||
\cs_new:Npn \groupthm_new_theorem_family_from_keys:nn #1 #2
|
\cs_new:Npn \groupthm_new_theorem_family_from_keys:nn #1 #2
|
||||||
{
|
{
|
||||||
\__groupthm_set_normalized_keys:nnn { #1 } { groupedtheorem } { #2 }
|
\__groupthm_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||||
\groupthm_new_theorem_family:nVVV
|
\groupthm_new_theorem_family:nVVV
|
||||||
{ #2 }
|
{ #2 }
|
||||||
\l__groupthm_group_clist
|
\l__groupthm_group_clist
|
||||||
|
@ -765,7 +790,7 @@
|
||||||
}
|
}
|
||||||
\cs_new:Npn \groupthm_provide_theorem_family_from_keys:nn #1 #2
|
\cs_new:Npn \groupthm_provide_theorem_family_from_keys:nn #1 #2
|
||||||
{
|
{
|
||||||
\__groupthm_set_normalized_keys:nnn { #1 } { groupedtheorem } { #2 }
|
\__groupthm_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||||
\groupthm_provide_theorem_family:nVVV
|
\groupthm_provide_theorem_family:nVVV
|
||||||
{ #2 }
|
{ #2 }
|
||||||
\l__groupthm_group_clist
|
\l__groupthm_group_clist
|
||||||
|
@ -774,7 +799,7 @@
|
||||||
}
|
}
|
||||||
\cs_new:Npn \groupthm_new_theorem_family_star_from_keys:nn #1 #2
|
\cs_new:Npn \groupthm_new_theorem_family_star_from_keys:nn #1 #2
|
||||||
{
|
{
|
||||||
\__groupthm_set_normalized_keys:nnn { #1 } { groupedtheorem } { #2 }
|
\__groupthm_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||||
\groupthm_new_theorem_family_star:nVVV
|
\groupthm_new_theorem_family_star:nVVV
|
||||||
{ #2 }
|
{ #2 }
|
||||||
\l__groupthm_group_clist
|
\l__groupthm_group_clist
|
||||||
|
@ -783,7 +808,7 @@
|
||||||
}
|
}
|
||||||
\cs_new:Npn \groupthm_provide_theorem_family_star_from_keys:nn #1 #2
|
\cs_new:Npn \groupthm_provide_theorem_family_star_from_keys:nn #1 #2
|
||||||
{
|
{
|
||||||
\__groupthm_set_normalized_keys:nnn { #1 } { groupedtheorem } { #2 }
|
\__groupthm_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||||
\groupthm_provide_theorem_family_star:nVVV
|
\groupthm_provide_theorem_family_star:nVVV
|
||||||
{ #2 }
|
{ #2 }
|
||||||
\l__groupthm_group_clist
|
\l__groupthm_group_clist
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
\contentsline {todo}{\color@fb@x {}{black}{}{orange}{\leavevmode {\color {orange}o}}\ insert code example output}{4}{section*.3}%
|
\contentsline {todo}{\color@fb@x {}{black}{}{orange}{\leavevmode {\color {orange}o}}\ insert code example output}{3}{section*.3}%
|
||||||
\contentsline {todo}{\color@fb@x {}{black}{}{orange}{\leavevmode {\color {orange}o}}\ code}{5}{section*.4}%
|
\contentsline {todo}{\color@fb@x {}{black}{}{orange}{\leavevmode {\color {orange}o}}\ code}{4}{section*.4}%
|
||||||
\contentsline {todo}{\color@fb@x {}{black}{}{red!40}{\leavevmode {\color {red!40}o}}\ Add reference.}{7}{section*.5}%
|
\contentsline {todo}{\color@fb@x {}{black}{}{red!40}{\leavevmode {\color {red!40}o}}\ Add reference.}{6}{section*.5}%
|
||||||
\contentsline {todo}{\color@fb@x {}{black}{}{red!40}{\leavevmode {\color {red!40}o}}\ Add reference.}{7}{section*.6}%
|
\contentsline {todo}{\color@fb@x {}{black}{}{red!40}{\leavevmode {\color {red!40}o}}\ Add reference.}{6}{section*.6}%
|
||||||
\contentsline {todo}{\color@fb@x {}{black}{}{red!40}{\leavevmode {\color {red!40}o}}\ Add reference.}{8}{section*.7}%
|
\contentsline {todo}{\color@fb@x {}{black}{}{red!40}{\leavevmode {\color {red!40}o}}\ Add reference.}{7}{section*.7}%
|
||||||
\contentsline {todo}{\color@fb@x {}{black}{}{red!40}{\leavevmode {\color {red!40}o}}\ Add reference.}{9}{section*.8}%
|
\contentsline {todo}{\color@fb@x {}{black}{}{red!40}{\leavevmode {\color {red!40}o}}\ Add reference.}{8}{section*.8}%
|
||||||
\contentsline {todo}{\color@fb@x {}{black}{}{red!40}{\leavevmode {\color {red!40}o}}\ Add reference.}{10}{section*.9}%
|
\contentsline {todo}{\color@fb@x {}{black}{}{red!40}{\leavevmode {\color {red!40}o}}\ Add reference.}{9}{section*.9}%
|
||||||
\contentsline {todo}{\color@fb@x {}{black}{}{red!40}{\leavevmode {\color {red!40}o}}\ Add reference.}{18}{section*.10}%
|
\contentsline {todo}{\color@fb@x {}{black}{}{red!40}{\leavevmode {\color {red!40}o}}\ Add reference.}{18}{section*.10}%
|
||||||
|
|
Loading…
Reference in a new issue