rework generation of grouped theorems
This commit is contained in:
parent
b1b8f59c1b
commit
d0939faa5b
2 changed files with 76 additions and 476 deletions
|
@ -2165,7 +2165,7 @@
|
|||
% \groupthm_provide_theorem:xVnn
|
||||
% }
|
||||
% \begin{syntax}
|
||||
% \cs{groupthm_new_grouped_theorem:nnnn}\marg{environment name}
|
||||
% \cs{groupthm_new_theorem:nnnn}\marg{environment name}
|
||||
% \marg{groups clist}\marg{theorem name}\marg{thmtools keys}
|
||||
% \end{syntax}
|
||||
%
|
||||
|
@ -2176,20 +2176,22 @@
|
|||
{ ##1 }
|
||||
\@@_error:
|
||||
\@@_define_theorem:nnnn
|
||||
{ groupthm_#1_theorem_:nnnn }
|
||||
{ groupthm_#1_theorem:nnnn }
|
||||
{ { ##1 } { ##2 } { ##3 } { ##4 } }
|
||||
\cs_generate_variant:Nn \groupthm_new_grouped_theorem:nnnn { n V V V }
|
||||
\cs_generate_variant:Nn \groupthm_new_theorem:nnnn { n V V V }
|
||||
\cs_generate_variant:Nn \groupthm_provide_theorem:nnnn { n V V V }
|
||||
% \end{macrocode}
|
||||
% We need this extra variant here for the generation of theorem families later:
|
||||
% \begin{macrocode}
|
||||
\cs_generate_variant:Nn \groupthm_new_grouped_theorem:nnnn { x V n n }
|
||||
\cs_generate_variant:Nn \groupthm_new_theorem:nnnn { x V n n }
|
||||
\cs_generate_variant:Nn \groupthm_provide_theorem:nnnn { x V n n }
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
%
|
||||
% \begin{macro}{\groupthm_new_theorem:nnnnnn}
|
||||
% \begin{macro}{\groupthm_new_theorem:nnn, \groupthm_provide_theorem:nnn}
|
||||
% \begin{syntax}
|
||||
% \cs{groupthm_new_theorem:nnnnnn}\marg{key=value list}\marg{grouped theorem}
|
||||
% \cs{groupthm_new_theorem:nnn}\marg{key=value list}\marg{grouped theorem}
|
||||
% \marg{bool}
|
||||
% \end{syntax}
|
||||
%
|
||||
|
@ -2198,341 +2200,60 @@
|
|||
% \texttt{unnumbered} group
|
||||
%
|
||||
% \begin{macrocode}
|
||||
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
%
|
||||
% The star variants of these that add the \texttt{unnumbered} group
|
||||
% are straightforward:
|
||||
%
|
||||
% \begin{macro}{\groupthm_new_grouped_theorem_star:nnnn}
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\cs_new:Npn \groupthm_new_grouped_theorem_star:nnnn #1 #2 #3 #4
|
||||
\@@_wrap_multiple:nnn
|
||||
{ new, provide }
|
||||
{ groupthm_#1_theorem:nnn }
|
||||
{
|
||||
\groupthm_new_grouped_theorem:nnnn
|
||||
{ #1 } { #2, unnumbered } { #3 } { #4 }
|
||||
\@@_set_normalized_keys:nnn { ##1 } { grouped ~ theorem } { ##2 }
|
||||
\bool_if:nT { ##3 }
|
||||
{
|
||||
\clist_put_left:Nn \l_@@_group_clist { unnumbered }
|
||||
}
|
||||
\use:c { groupthm_#1_theorem:nVVV }
|
||||
{ ##2 }
|
||||
\l_@@_group_clist
|
||||
\l_@@_name_tl
|
||||
\l_@@_thmtools_clist
|
||||
\bool_if:NT \l_@@_starred_version_bool
|
||||
{
|
||||
\clist_put_left:Nn \l_@@_group_clist { starred }
|
||||
\use:c { groupthm_#1_theorem:nVVV }
|
||||
{ ##2* }
|
||||
\l_@@_group_clist
|
||||
\l_@@_name_tl
|
||||
\l_@@_thmtools_clist
|
||||
}
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
%
|
||||
% \begin{macro}{\groupthm_provide_grouped_theorem_star:nnnn}
|
||||
% \begin{syntax}
|
||||
% \cs{groupthm_provide_grouped_theorem_star:nnnn}\marg{environment name}
|
||||
% \marg{groups clist}\marg{theorem name}\marg{thmtools keys}
|
||||
% \end{syntax}
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\cs_new:Npn \groupthm_provide_grouped_theorem_star:nnnn #1 #2 #3 #4
|
||||
{
|
||||
\groupthm_provide_grouped_theorem:nnnn
|
||||
{ #1 } { #2, unnumbered } { #3 } { #4 }
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
%
|
||||
% On top of these, we can provide the shorter versions that will generate
|
||||
% two theorems each, one with and one without a \enquote{*} in its
|
||||
% environment name
|
||||
%
|
||||
%
|
||||
%
|
||||
% \begin{macro}{\groupthm_new_theorem:nnnn,\groupthm_new_theorem:nVVV}
|
||||
% \begin{syntax}
|
||||
% \cs{groupthm_new_theorem:nnnn}\marg{environment name}
|
||||
% \marg{groups clist}\marg{theorem name}\marg{thmtools keys}
|
||||
% \end{syntax}
|
||||
%
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\cs_new:Npn \groupthm_new_theorem:nnnn #1 #2 #3 #4
|
||||
{
|
||||
\groupthm_new_grouped_theorem:nnnn
|
||||
{ #1 } { #2 } { #3 } { #4 }
|
||||
\groupthm_new_grouped_theorem:nnnn
|
||||
{ #1* } { #2, starred } { #3 } { #4 }
|
||||
}
|
||||
\cs_generate_variant:Nn \groupthm_new_theorem:nnnn { n V V V }
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
%
|
||||
%
|
||||
% \begin{macro}{\groupthm_provide_theorem:nnnn,\groupthm_provide_theorem:nVVV}
|
||||
% \begin{syntax}
|
||||
% \cs{groupthm_provide_theorem:nnnn}\marg{environment name}
|
||||
% \marg{groups clist}\marg{theorem name}\marg{thmtools keys}
|
||||
% \end{syntax}
|
||||
%
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\cs_new:Npn \groupthm_provide_theorem:nnnn #1 #2 #3 #4
|
||||
{
|
||||
\groupthm_provide_grouped_theorem:nnnn
|
||||
{ #1 } { #2 } { #3 } { #4 }
|
||||
\groupthm_provide_grouped_theorem:nnnn
|
||||
{ #1* } { #2, starred } { #3 } { #4 }
|
||||
}
|
||||
\cs_generate_variant:Nn \groupthm_provide_theorem:nnnn { n V V V }
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
%
|
||||
% Combining these is also not difficult:
|
||||
%
|
||||
%
|
||||
%
|
||||
%
|
||||
% \begin{macro}{\groupthm_new_theorem_star:nnnn}
|
||||
% \begin{syntax}
|
||||
% \cs{groupthm_new_theorem_star:nnnn}\marg{environment name}
|
||||
% \marg{groups clist}\marg{theorem name}\marg{thmtools keys}
|
||||
% \end{syntax}
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\cs_new:Npn \groupthm_new_theorem_star:nnnn #1 #2 #3 #4
|
||||
{
|
||||
\groupthm_new_theorem:nnnn
|
||||
{ #1 } { #2, unnumbered } { #3 } { #4 }
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
%
|
||||
%
|
||||
% \begin{macro}{\groupthm_provide_theorem_star:nnnn}
|
||||
% \begin{syntax}
|
||||
% \cs{groupthm_provide_theorem_star:nnnn}\marg{environment name}
|
||||
% \marg{groups clist}\marg{theorem name}\marg{thmtools keys}
|
||||
% \end{syntax}
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\cs_new:Npn \groupthm_provide_theorem_star:nnnn #1 #2 #3 #4
|
||||
{
|
||||
\groupthm_provide_theorem:nnnn
|
||||
{ #1 } { #2, unnumbered } { #3 } { #4 }
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
% We now provide the corresponding key-valued interfaces around these.
|
||||
% All of these work in the same way:
|
||||
% We set the normalized keys, and then pass these by value to the
|
||||
% previously defined macros
|
||||
%
|
||||
%
|
||||
% \begin{macro}{\groupthm_new_grouped_theorem_from_keys:nn}
|
||||
% \begin{macrocode}
|
||||
\cs_new:Npn \groupthm_new_grouped_theorem_from_keys:nn #1 #2
|
||||
{
|
||||
\@@_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||
|
||||
\groupthm_new_grouped_theorem:nVVV
|
||||
{ #1 }
|
||||
\l_@@_key_group_clist
|
||||
\l_@@_name_tl
|
||||
\l_@@_key_thmtools_clist
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
%
|
||||
% \begin{macro}{\groupthm_provide_grouped_theorem_from_keys:nn}
|
||||
% \begin{macrocode}
|
||||
\cs_new:Npn \groupthm_provide_grouped_theorem_from_keys:nn #1 #2
|
||||
{
|
||||
\@@_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||
|
||||
\groupthm_provide_grouped_theorem:nVVV
|
||||
{ #1 }
|
||||
\l_@@_key_group_clist
|
||||
\l_@@_name_tl
|
||||
\l_@@_key_thmtools_clist
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
%
|
||||
% \begin{macro}{\groupthm_new_grouped_theorem_star_from_keys:nn}
|
||||
% \begin{macrocode}
|
||||
\cs_new:Npn \groupthm_new_grouped_theorem_star_from_keys:nn #1 #2
|
||||
{
|
||||
\@@_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||
|
||||
\groupthm_new_grouped_theorem_star:nVVV
|
||||
{ #2 }
|
||||
\l_@@_key_group_clist
|
||||
\l_@@_name_tl
|
||||
\l_@@_key_thmtools_clist
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
%
|
||||
% \begin{macro}{\groupthm_provide_grouped_theorem_star_from_keys:nn}
|
||||
% \begin{macrocode}
|
||||
\cs_new:Npn \groupthm_provide_grouped_theorem_star_from_keys:nn #1 #2
|
||||
{
|
||||
\@@_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||
|
||||
\groupthm_provide_grouped_theorem_star:nVVV
|
||||
{ #2 }
|
||||
\l_@@_key_group_clist
|
||||
\l_@@_name_tl
|
||||
\l_@@_key_thmtools_clist
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
%
|
||||
%
|
||||
% \begin{macro}{\groupthm_new_theorem_from_keys:nn}
|
||||
% \begin{macrocode}
|
||||
\cs_new:Npn \groupthm_new_theorem_from_keys:nn #1 #2
|
||||
{
|
||||
\@@_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||
|
||||
\groupthm_new_theorem:nVVV
|
||||
{ #2 }
|
||||
\l_@@_key_group_clist
|
||||
\l_@@_name_tl
|
||||
\l_@@_key_thmtools_clist
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
%
|
||||
% \begin{macro}{\groupthm_provide_theorem_from_keys:nn}
|
||||
% \begin{macrocode}
|
||||
\cs_new:Npn \groupthm_provide_theorem_from_keys:nn #1 #2
|
||||
{
|
||||
\@@_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||
|
||||
\groupthm_provide_theorem:nVVV
|
||||
{ #2 }
|
||||
\l_@@_key_group_clist
|
||||
\l_@@_name_tl
|
||||
\l_@@_key_thmtools_clist
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
%
|
||||
% \begin{macro}{\groupthm_new_theorem_star_from_keys:nn}
|
||||
% \begin{macrocode}
|
||||
\cs_new:Npn \groupthm_new_theorem_star_from_keys:nn #1 #2
|
||||
{
|
||||
\@@_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||
|
||||
\groupthm_new_theorem_star:nVVV
|
||||
{ #1 }
|
||||
\l_@@_key_group_clist
|
||||
\l_@@_name_tl
|
||||
\l_@@_key_thmtools_clist
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
%
|
||||
% \begin{macro}{\groupthm_provide_theorem_star_from_keys:nn}
|
||||
% \begin{macrocode}
|
||||
\cs_new:Npn \groupthm_provide_theorem_star_from_keys:nn #1 #2
|
||||
{
|
||||
\@@_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||
|
||||
\groupthm_provide_theorem_star:nVVV
|
||||
{ #1 }
|
||||
\l_@@_key_group_clist
|
||||
\l_@@_name_tl
|
||||
\l_@@_key_thmtools_clist
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
%
|
||||
%
|
||||
% Now, we can wrap these into document commands
|
||||
%
|
||||
%
|
||||
% \begin{macro}{\NewGroupedTheorem, \NewGroupedTheorem*}
|
||||
% \begin{macro}
|
||||
% {
|
||||
% \NewGroupedTheorem, \NewGroupedTheorem*,
|
||||
% \ProvideGroupedTheorem, \ProvideGroupedTheorem*
|
||||
% }
|
||||
% \begin{syntax}
|
||||
% \cs{NewGroupedTheorem}\oarg{keys}\marg{theorem name}
|
||||
% \end{syntax}
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\NewDocumentCommand{\NewGroupedTheorem}{s O{} m}
|
||||
\@@_wrap_multiple_document:nnnn
|
||||
{ new, provide }
|
||||
{ \Declarator GroupedTheorem }
|
||||
{ s O{} m }
|
||||
{
|
||||
\IfBooleanTF{#1}
|
||||
{
|
||||
\groupthm_new_grouped_theorem_star_from_keys:nn { #2 } { #3 }
|
||||
}
|
||||
{
|
||||
\groupthm_new_grouped_theorem_from_keys:nn { #2 } { #3 }
|
||||
}
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
%
|
||||
% \begin{macro}{\ProvideGroupedTheorem, \ProvideGroupedTheorem*}
|
||||
% \begin{syntax}
|
||||
% \cs{ProvideGroupedTheorem}\oarg{keys}\marg{theorem name}
|
||||
% \end{syntax}
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\ProvideDocumentCommand{\NewGroupedTheorem}{s O{} m}
|
||||
{
|
||||
\IfBooleanTF{#1}
|
||||
{
|
||||
\groupthm_provide_grouped_theorem_star_from_keys:nn { #2 } { #3 }
|
||||
}
|
||||
{
|
||||
\groupthm_provide_grouped_theorem_from_keys:nn { #2 } { #3 }
|
||||
}
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
%
|
||||
%
|
||||
% \begin{macro}{\NewTheorem, \NewTheorem*}
|
||||
% \begin{syntax}
|
||||
% \cs{NewTheorem}\oarg{keys}\marg{theorem name}
|
||||
% \end{syntax}
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\NewDocumentCommand{\NewTheorem}{s O{} m}
|
||||
{
|
||||
\IfBooleanTF{#1}
|
||||
{
|
||||
\groupthm_new_theorem_star_from_keys:nn { #2 } { #3 }
|
||||
}
|
||||
{
|
||||
\groupthm_new_theorem_from_keys:nn { #2 } { #3 }
|
||||
}
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
%
|
||||
% \begin{macro}{\ProvideTheorem, \ProvideTheorem*}
|
||||
% \begin{syntax}
|
||||
% \cs{ProvideTheorem}\oarg{keys}\marg{theorem name}
|
||||
% \end{syntax}
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\ProvideDocumentCommand{\NewTheorem}{s O{} m}
|
||||
{
|
||||
\IfBooleanTF{#1}
|
||||
{
|
||||
\groupthm_provide_theorem_star_from_keys:nn { #2 } { #3 }
|
||||
}
|
||||
{
|
||||
\groupthm_provide_theorem_from_keys:nn { #2 } { #3 }
|
||||
}
|
||||
\use:c { groupthm_#1_theorem:nnn }
|
||||
{ ##2 }
|
||||
{ ##3 }
|
||||
{ ##1 }
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
|
|
|
@ -519,166 +519,45 @@
|
|||
{ ##1 }
|
||||
\__groupthm_error:
|
||||
\__groupthm_define_theorem:nnnn
|
||||
{ groupthm_#1_theorem_:nnnn }
|
||||
{ groupthm_#1_theorem:nnnn }
|
||||
{ { ##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 { x V n n }
|
||||
|
||||
\cs_new:Npn \groupthm_new_grouped_theorem_star:nnnn #1 #2 #3 #4
|
||||
{
|
||||
\groupthm_new_grouped_theorem:nnnn
|
||||
{ #1 } { #2, unnumbered } { #3 } { #4 }
|
||||
}
|
||||
\cs_new:Npn \groupthm_provide_grouped_theorem_star:nnnn #1 #2 #3 #4
|
||||
{
|
||||
\groupthm_provide_grouped_theorem:nnnn
|
||||
{ #1 } { #2, unnumbered } { #3 } { #4 }
|
||||
}
|
||||
\cs_new:Npn \groupthm_new_theorem:nnnn #1 #2 #3 #4
|
||||
{
|
||||
\groupthm_new_grouped_theorem:nnnn
|
||||
{ #1 } { #2 } { #3 } { #4 }
|
||||
\groupthm_new_grouped_theorem:nnnn
|
||||
{ #1* } { #2, starred } { #3 } { #4 }
|
||||
}
|
||||
\cs_generate_variant:Nn \groupthm_new_theorem:nnnn { n V V V }
|
||||
\cs_new:Npn \groupthm_provide_theorem:nnnn #1 #2 #3 #4
|
||||
{
|
||||
\groupthm_provide_grouped_theorem:nnnn
|
||||
{ #1 } { #2 } { #3 } { #4 }
|
||||
\groupthm_provide_grouped_theorem:nnnn
|
||||
{ #1* } { #2, starred } { #3 } { #4 }
|
||||
}
|
||||
\cs_generate_variant:Nn \groupthm_provide_theorem:nnnn { n V V V }
|
||||
\cs_new:Npn \groupthm_new_theorem_star:nnnn #1 #2 #3 #4
|
||||
\cs_generate_variant:Nn \groupthm_new_theorem:nnnn { x V n n }
|
||||
\cs_generate_variant:Nn \groupthm_provide_theorem:nnnn { x V n n }
|
||||
\__groupthm_wrap_multiple:nnn
|
||||
{ new, provide }
|
||||
{ groupthm_#1_theorem:nnn }
|
||||
{
|
||||
\groupthm_new_theorem:nnnn
|
||||
{ #1 } { #2, unnumbered } { #3 } { #4 }
|
||||
\__groupthm_set_normalized_keys:nnn { ##1 } { grouped ~ theorem } { ##2 }
|
||||
\bool_if:nT { ##3 }
|
||||
{
|
||||
\clist_put_left:Nn \l__groupthm_group_clist { unnumbered }
|
||||
}
|
||||
\cs_new:Npn \groupthm_provide_theorem_star:nnnn #1 #2 #3 #4
|
||||
{
|
||||
\groupthm_provide_theorem:nnnn
|
||||
{ #1 } { #2, unnumbered } { #3 } { #4 }
|
||||
}
|
||||
\cs_new:Npn \groupthm_new_grouped_theorem_from_keys:nn #1 #2
|
||||
{
|
||||
\__groupthm_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||
|
||||
\groupthm_new_grouped_theorem:nVVV
|
||||
{ #1 }
|
||||
\l__groupthm_key_group_clist
|
||||
\use:c { groupthm_#1_theorem:nVVV }
|
||||
{ ##2 }
|
||||
\l__groupthm_group_clist
|
||||
\l__groupthm_name_tl
|
||||
\l__groupthm_key_thmtools_clist
|
||||
}
|
||||
\cs_new:Npn \groupthm_provide_grouped_theorem_from_keys:nn #1 #2
|
||||
\l__groupthm_thmtools_clist
|
||||
\bool_if:NT \l__groupthm_starred_version_bool
|
||||
{
|
||||
\__groupthm_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||
|
||||
\groupthm_provide_grouped_theorem:nVVV
|
||||
{ #1 }
|
||||
\l__groupthm_key_group_clist
|
||||
\clist_put_left:Nn \l__groupthm_group_clist { starred }
|
||||
\use:c { groupthm_#1_theorem:nVVV }
|
||||
{ ##2* }
|
||||
\l__groupthm_group_clist
|
||||
\l__groupthm_name_tl
|
||||
\l__groupthm_key_thmtools_clist
|
||||
}
|
||||
\cs_new:Npn \groupthm_new_grouped_theorem_star_from_keys:nn #1 #2
|
||||
{
|
||||
\__groupthm_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||
|
||||
\groupthm_new_grouped_theorem_star:nVVV
|
||||
{ #2 }
|
||||
\l__groupthm_key_group_clist
|
||||
\l__groupthm_name_tl
|
||||
\l__groupthm_key_thmtools_clist
|
||||
}
|
||||
\cs_new:Npn \groupthm_provide_grouped_theorem_star_from_keys:nn #1 #2
|
||||
{
|
||||
\__groupthm_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||
|
||||
\groupthm_provide_grouped_theorem_star:nVVV
|
||||
{ #2 }
|
||||
\l__groupthm_key_group_clist
|
||||
\l__groupthm_name_tl
|
||||
\l__groupthm_key_thmtools_clist
|
||||
}
|
||||
\cs_new:Npn \groupthm_new_theorem_from_keys:nn #1 #2
|
||||
{
|
||||
\__groupthm_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||
|
||||
\groupthm_new_theorem:nVVV
|
||||
{ #2 }
|
||||
\l__groupthm_key_group_clist
|
||||
\l__groupthm_name_tl
|
||||
\l__groupthm_key_thmtools_clist
|
||||
}
|
||||
\cs_new:Npn \groupthm_provide_theorem_from_keys:nn #1 #2
|
||||
{
|
||||
\__groupthm_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||
|
||||
\groupthm_provide_theorem:nVVV
|
||||
{ #2 }
|
||||
\l__groupthm_key_group_clist
|
||||
\l__groupthm_name_tl
|
||||
\l__groupthm_key_thmtools_clist
|
||||
}
|
||||
\cs_new:Npn \groupthm_new_theorem_star_from_keys:nn #1 #2
|
||||
{
|
||||
\__groupthm_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||
|
||||
\groupthm_new_theorem_star:nVVV
|
||||
{ #1 }
|
||||
\l__groupthm_key_group_clist
|
||||
\l__groupthm_name_tl
|
||||
\l__groupthm_key_thmtools_clist
|
||||
}
|
||||
\cs_new:Npn \groupthm_provide_theorem_star_from_keys:nn #1 #2
|
||||
{
|
||||
\__groupthm_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
|
||||
|
||||
\groupthm_provide_theorem_star:nVVV
|
||||
{ #1 }
|
||||
\l__groupthm_key_group_clist
|
||||
\l__groupthm_name_tl
|
||||
\l__groupthm_key_thmtools_clist
|
||||
}
|
||||
\NewDocumentCommand{\NewGroupedTheorem}{s O{} m}
|
||||
{
|
||||
\IfBooleanTF{#1}
|
||||
{
|
||||
\groupthm_new_grouped_theorem_star_from_keys:nn { #2 } { #3 }
|
||||
}
|
||||
{
|
||||
\groupthm_new_grouped_theorem_from_keys:nn { #2 } { #3 }
|
||||
\l__groupthm_thmtools_clist
|
||||
}
|
||||
}
|
||||
\ProvideDocumentCommand{\NewGroupedTheorem}{s O{} m}
|
||||
\__groupthm_wrap_multiple_document:nnnn
|
||||
{ new, provide }
|
||||
{ \Declarator GroupedTheorem }
|
||||
{ s O{} m }
|
||||
{
|
||||
\IfBooleanTF{#1}
|
||||
{
|
||||
\groupthm_provide_grouped_theorem_star_from_keys:nn { #2 } { #3 }
|
||||
}
|
||||
{
|
||||
\groupthm_provide_grouped_theorem_from_keys:nn { #2 } { #3 }
|
||||
}
|
||||
}
|
||||
\NewDocumentCommand{\NewTheorem}{s O{} m}
|
||||
{
|
||||
\IfBooleanTF{#1}
|
||||
{
|
||||
\groupthm_new_theorem_star_from_keys:nn { #2 } { #3 }
|
||||
}
|
||||
{
|
||||
\groupthm_new_theorem_from_keys:nn { #2 } { #3 }
|
||||
}
|
||||
}
|
||||
\ProvideDocumentCommand{\NewTheorem}{s O{} m}
|
||||
{
|
||||
\IfBooleanTF{#1}
|
||||
{
|
||||
\groupthm_provide_theorem_star_from_keys:nn { #2 } { #3 }
|
||||
}
|
||||
{
|
||||
\groupthm_provide_theorem_from_keys:nn { #2 } { #3 }
|
||||
}
|
||||
\use:c { groupthm_#1_theorem:nnn }
|
||||
{ ##2 }
|
||||
{ ##3 }
|
||||
{ ##1 }
|
||||
}
|
||||
\cs_new:Npn \__groupthm_declare_grouped_theorem_family_aux:nnnnnn #1 #2 #3 #4 #5 #6
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue