rework keyval interface

This commit is contained in:
Maximilian Keßler 2022-01-22 14:43:34 +01:00
parent 83ba094203
commit b1b8f59c1b
3 changed files with 150 additions and 99 deletions

View file

@ -1106,12 +1106,14 @@
%
% \begin{variable}
% {
% \l_@@_starred_version_bool,
% \l_@@_key_prefix_tl, \l_@@_key_name_tl, \l_@@_key_suffix_tl,
% \l_@@_key_group_clist, \l_@@_key_mapname_clist, \l_@@_key_thmtools_clist
% }
% These variables will be set by the key-value interface provided by
% \pkg{l3keys} and are used in various places in the package.
% \begin{macrocode}
\bool_new:N \l_@@_key_starred_version_bool
\tl_new:N \l_@@_key_prefix_tl
\tl_new:N \l_@@_key_name_tl
\tl_new:N \l_@@_key_suffix_tl
@ -1123,6 +1125,7 @@
%
% \begin{variable}
% {
% \l_@@_starred_version_bool
% \l_@@_prefix_tl,
% \l_@@_name_tl,
% \l_@@_suffix_tl,
@ -1179,29 +1182,46 @@
%
%
% \begin{macrocode}
\keys_define:nn { groupthm }
\keys_define:nn { groupthm / theorem ~ group }
{
prefix .tl_set:N = \l_@@_key_prefix_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 .default:n = \c_empty_tl,
suffix .groups:n = { theoremgroup },
group .clist_set:N = \l_@@_key_group_clist,
group .default:n = {},
group .groups:n = { groupedtheorem, theoremvariants },
mapname .clist_set:N = \l_@@_mapname_clist,
mapname .default:n = {},
mapname .groups:n = { theoremgroup },
map ~ name .clist_set:N = \l_@@_mapname_clist,
map ~ name .default:n = {},
map ~ name .groups:n = { theoremgroup },
thmtools .clist_set:N = \l_@@_key_thmtools_clist,
thmtools .default:n = {},
thmtools .groups:n =
{ theoremgroup, groupedtheorem, theoremvariants },
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}
%
@ -1224,8 +1244,13 @@
% \begin{macrocode}
\cs_new:Npn \@@_set_normalized_keys:nnn #1 #2 #3
{
\keys_set:nn { groupthm } { prefix, name, suffix, group, mapname, thmtools }
\keys_set_groups:nnn { groupthm } { #2 } { #1 }
\keys_set:nn { groupthm / theorem ~ group }
{ 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}
%
% Normalize given name
@ -1246,6 +1271,7 @@
% Copy set keys into local variables
%
% \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_@@_suffix_tl \l_@@_key_suffix_tl
\clist_set_eq:NN \l_@@_group_clist \l_@@_key_group_clist
@ -1735,7 +1761,7 @@
{ new, renew, provide, declare }
{ 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 }
{ ##2 }
\l_@@_prefix_tl
@ -2302,7 +2328,7 @@
% \begin{macrocode}
\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
{ #1 }
@ -2318,7 +2344,7 @@
% \begin{macrocode}
\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
{ #1 }
@ -2334,7 +2360,7 @@
% \begin{macrocode}
\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
{ #2 }
@ -2350,7 +2376,7 @@
% \begin{macrocode}
\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
{ #2 }
@ -2367,7 +2393,7 @@
% \begin{macrocode}
\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
{ #2 }
@ -2383,7 +2409,7 @@
% \begin{macrocode}
\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
{ #2 }
@ -2399,7 +2425,7 @@
% \begin{macrocode}
\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
{ #1 }
@ -2415,7 +2441,7 @@
% \begin{macrocode}
\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
{ #1 }
@ -2753,7 +2779,7 @@
% \begin{macrocode}
\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
{ #2 }
\l_@@_group_clist
@ -2775,7 +2801,7 @@
% \begin{macrocode}
\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
{ #2 }
\l_@@_group_clist
@ -2797,7 +2823,7 @@
% \begin{macrocode}
\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
{ #2 }
\l_@@_group_clist
@ -2819,7 +2845,7 @@
% \begin{macrocode}
\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
{ #2 }
\l_@@_group_clist
@ -2841,7 +2867,7 @@
% \begin{macrocode}
\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
{ #2 }
\l_@@_group_clist
@ -2863,7 +2889,7 @@
% \begin{macrocode}
\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
{ #2 }
\l_@@_group_clist
@ -2885,7 +2911,7 @@
% \begin{macrocode}
\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
{ #2 }
\l_@@_group_clist
@ -2907,7 +2933,7 @@
% \begin{macrocode}
\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
{ #2 }
\l_@@_group_clist

View file

@ -72,6 +72,7 @@
\hook_new:n { __groupthm/thmtools }
\hook_new:n { __groupthm/groupsort }
\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_name_tl
\tl_new:N \l__groupthm_key_suffix_tl
@ -86,34 +87,56 @@
\clist_new:N \l__groupthm_group_clist
\clist_new:N \g__groupthm_defined_groups_clist
\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 .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 .default:n = \c_empty_tl,
suffix .groups:n = { theoremgroup },
group .clist_set:N = \l__groupthm_key_group_clist,
group .default:n = {},
group .groups:n = { groupedtheorem, theoremvariants },
mapname .clist_set:N = \l__groupthm_mapname_clist,
mapname .default:n = {},
mapname .groups:n = { theoremgroup },
map ~ name .clist_set:N = \l__groupthm_mapname_clist,
map ~ name .default:n = {},
map ~ name .groups:n = { theoremgroup },
thmtools .clist_set:N = \l__groupthm_key_thmtools_clist,
thmtools .default:n = {},
thmtools .groups:n =
{ theoremgroup, groupedtheorem, theoremvariants },
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
{
\keys_set:nn { groupthm } { prefix, name, suffix, group, mapname, thmtools }
\keys_set_groups:nnn { groupthm } { #2 } { #1 }
\keys_set:nn { groupthm / theorem ~ group }
{ 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_set:Nx \l__groupthm_name_tl
@ -124,6 +147,7 @@
{
\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_suffix_tl \l__groupthm_key_suffix_tl
\clist_set_eq:NN \l__groupthm_group_clist \l__groupthm_key_group_clist
@ -317,7 +341,7 @@
{ new, renew, provide, declare }
{ 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 }
{ ##2 }
\l__groupthm_prefix_tl
@ -493,12 +517,13 @@
{ new, provide }
{ grouped ~ theorem }
{ ##1 }
\error
\__groupthm_error:
\__groupthm_define_theorem:nnnn
{ groupthm_#1_grouped_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
@ -537,7 +562,7 @@
}
\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
{ #1 }
@ -547,7 +572,7 @@
}
\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
{ #1 }
@ -557,7 +582,7 @@
}
\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
{ #2 }
@ -567,7 +592,7 @@
}
\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
{ #2 }
@ -577,7 +602,7 @@
}
\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
{ #2 }
@ -587,7 +612,7 @@
}
\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
{ #2 }
@ -597,7 +622,7 @@
}
\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
{ #1 }
@ -607,7 +632,7 @@
}
\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
{ #1 }
@ -720,7 +745,7 @@
\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
{
\__groupthm_set_normalized_keys:nnn { #1 } { groupedtheorem } { #2 }
\__groupthm_set_normalized_keys:nnn { #1 } { grouped ~ theorem } { #2 }
\groupthm_new_grouped_theorem_family:nVVV
{ #2 }
\l__groupthm_group_clist
@ -729,7 +754,7 @@
}
\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
{ #2 }
\l__groupthm_group_clist
@ -738,7 +763,7 @@
}
\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
{ #2 }
\l__groupthm_group_clist
@ -747,7 +772,7 @@
}
\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
{ #2 }
\l__groupthm_group_clist
@ -756,7 +781,7 @@
}
\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
{ #2 }
\l__groupthm_group_clist
@ -765,7 +790,7 @@
}
\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
{ #2 }
\l__groupthm_group_clist
@ -774,7 +799,7 @@
}
\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
{ #2 }
\l__groupthm_group_clist
@ -783,7 +808,7 @@
}
\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
{ #2 }
\l__groupthm_group_clist

View file

@ -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}}\ code}{5}{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.}{7}{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.}{9}{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}{}{orange}{\leavevmode {\color {orange}o}}\ insert code example output}{3}{section*.3}%
\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.}{6}{section*.5}%
\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.}{7}{section*.7}%
\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.}{9}{section*.9}%
\contentsline {todo}{\color@fb@x {}{black}{}{red!40}{\leavevmode {\color {red!40}o}}\ Add reference.}{18}{section*.10}%