diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/base/strc-enu.mkvi')
-rw-r--r-- | Master/texmf-dist/tex/context/base/strc-enu.mkvi | 127 |
1 files changed, 60 insertions, 67 deletions
diff --git a/Master/texmf-dist/tex/context/base/strc-enu.mkvi b/Master/texmf-dist/tex/context/base/strc-enu.mkvi index e3261fa35cb..185b4177eed 100644 --- a/Master/texmf-dist/tex/context/base/strc-enu.mkvi +++ b/Master/texmf-dist/tex/context/base/strc-enu.mkvi @@ -75,6 +75,8 @@ \installcommandhandler \??enumeration {enumeration} \??enumeration +\installcounterassociation{enumeration} + \let\setupenumerations\setupenumeration \setupenumerations % check with old @@ -85,10 +87,10 @@ %\c!color=, %\c!headcolor=, %\c!titlecolor=, - \c!width=8em, - \c!distance=0pt, -\c!distance=1em, - \c!titledistance=0.5em, + \c!width=8\emwidth, + \c!distance=\zeropoint, + \c!distance=\emwidth, + \c!titledistance=.5\emwidth, %\c!hang=, %\c!sample=, %\c!align=, @@ -127,18 +129,18 @@ % % with push/pop (also at definition time) -\unexpanded\def\strc_define_commands_enumeration#1#2#3% current level parent - {\doifelsenothing{#3} - {\normalexpanded{\defineconstruction[#1][\s!handler=\v!enumeration,\c!level=#2]}% - \setevalue{\??enumeration#1:\s!parent}{\??enumeration}}% - {\normalexpanded{\defineconstruction[#1][#3][\s!handler=\v!enumeration,\c!level=#2]}% - \setevalue{\??enumeration#1:\s!parent}{\??enumeration#3}}% - \setuevalue{\e!next #1}{\strc_enumerations_next }% - \setuevalue{\c!reset#1}{\strc_enumerations_reset }% - %setuevalue{\c!set #1}{\strc_enumerations_set }% - \setuevalue {#1}{\strc_enumerations_command{#1}}% - \setuevalue{\e!start#1}{\strc_enumerations_start {#1}}% - \setuevalue{\e!stop #1}{\strc_enumerations_stop }} +\unexpanded\def\strc_define_commands_enumeration#tag#level#parent% + {\doifelsenothing{#parent} + {\normalexpanded{\defineconstruction[#tag][\s!handler=\v!enumeration,\c!level=#level]}% + \setevalue{\??enumeration#tag:\s!parent}{\??enumeration}}% + {\normalexpanded{\defineconstruction[#tag][#parent][\s!handler=\v!enumeration,\c!level=#level]}% + \setevalue{\??enumeration#tag:\s!parent}{\??enumeration#parent}}% + \setuevalue{\e!next #tag}{\strc_enumerations_next }% + \setuevalue{\c!reset#tag}{\strc_enumerations_reset }% + %setuevalue{\c!set #tag}{\strc_enumerations_set }% + \setuevalue {#tag}{\strc_enumerations_command{#tag}}% + \setuevalue{\e!start#tag}{\strc_enumerations_start {#tag}}% + \setuevalue{\e!stop #tag}{\strc_enumerations_stop }} \appendtoks \ifx\currentenumerationparent\empty @@ -172,18 +174,21 @@ \fi \doifcounterelse\p_counter\donothing{\strc_enumerations_define_counter\p_counter}% \letenumerationparameter\s!counter\p_counter - \strc_enumerations_setup_counter\currentenumeration + %\strc_enumerations_setup_counter\currentenumeration \to \everydefineenumeration -\setvalue{\??constructioninitializer\v!enumeration}% +\let\p_strc_constructions_title \empty +\let\p_strc_constructions_number\empty + +\unexpanded\setvalue{\??constructioninitializer\v!enumeration}% {\let\currentenumeration \currentconstruction \let\constructionparameter \enumerationparameter \let\detokenizedconstructionparameter\detokenizedenumerationparameter \let\letconstructionparameter \letenumerationparameter \let\useconstructionstyleandcolor \useenumerationstyleandcolor \let\setupcurrentconstruction \setupcurrentenumeration - \edef\p_number{\constructionparameter\c!number}% - \ifx\p_number\v!yes + \edef\p_strc_constructions_number{\constructionparameter\c!number}% + \ifx\p_strc_constructions_number\v!yes \settrue\c_strc_constructions_number_state \iftrialtypesetting \strc_counters_save\currentconstructionnumber @@ -192,14 +197,14 @@ \else \setfalse\c_strc_constructions_number_state \fi - \edef\p_title{\constructionparameter\c!title}% - \ifx\p_title\v!yes + \edef\p_strc_constructions_title{\constructionparameter\c!title}% + \ifx\p_strc_constructions_title\v!yes \settrue\c_strc_constructions_title_state \else \setfalse\c_strc_constructions_title_state \fi} -\setvalue{\??constructionfinalizer\v!enumeration}% +\unexpanded\setvalue{\??constructionfinalizer\v!enumeration}% {\ifconditional\c_strc_constructions_number_state \iftrialtypesetting \strc_counters_restore\currentconstructionnumber @@ -214,39 +219,27 @@ \unexpanded\def\strc_enumerations_next {\strc_counters_increment_sub{\specificconstructionnumber\currentconstruction}{\currentconstructionlevel}} \unexpanded\def\strc_enumerations_reset {\strc_counters_reset_sub {\specificconstructionnumber\currentconstruction}{\currentconstructionlevel}} -%unexpanded\def\strc_enumerations_set #3{\strc_counters_set_sub {\specificconstructionnumber\currentconstruction}{\currentconstructionlevel}{#2}} - -%D Counters (maybe we can share this code): (not ok yet, messy with notes) - -%%%%%%%%%%% BEGIN TODO (SEE NOTES) %%%%%%%%%%%%%%% +%unexpanded\def\strc_enumerations_set#tag{\strc_counters_set_sub {\specificconstructionnumber\currentconstruction}{\currentconstructionlevel}{#tag}} -\newtoks\everysetupenumerationcounter +\def\currentconstructionnumber {\constructionparameter\s!counter} +\def\specificconstructionnumber#tag{\namedconstructionparameter{#tag}\s!counter} -\let\v_strc_enumerations_counter_name\empty % or just p_counter - -\def\strc_enumerations_setup_counter#1% - {\edef\v_strc_enumerations_counter_name{#1}% only used in the token list - \the\everysetupenumerationcounter} - -\def\strc_enumerations_define_counter#1% todo: fast inheritance (was mainparameter) - {\definecounter[#1]% - \strc_enumerations_setup_counter{#1}} - -\appendtoks - \strc_counter_setup_using_parameter\v_strc_enumerations_counter_name\enumerationparameter -\to \everysetupenumerationcounter +%D Counters (maybe we can share this code): (not ok yet, messy with notes) -% \def\currentconstructionnumber {\enumerationparameter\s!counter} -% \def\specificconstructionnumber#1{\namedenumerationparameter{#1}\s!counter} +% Maybe we should move counters to the construction level as more derived mechanisms +% use it \unknown\ so don't depend on names here! -\def\currentconstructionnumber {\constructionparameter\s!counter} -\def\specificconstructionnumber#1{\namedconstructionparameter{#1}\s!counter} +\def\strc_enumerations_define_counter#tag% todo: move inline + {\definecounter[#tag]% + \registerenumerationcounter{#tag}} \appendtoks - \strc_enumerations_setup_counter\currentenumeration + \synchronizeenumerationcounters \to \everysetupenumeration -%%%%%%%%%%% END TODO (SEE NOTES) %%%%%%%%%%%%%%% +\appendtoks + \synchronizeenumerationcounters +\to \everydefineenumeration %D Initializer: @@ -263,7 +256,7 @@ \expandafter\let\csname\??constructionstarthandler \v!enumeration\expandafter\endcsname\csname\??constructionstarthandler \v!description\endcsname \expandafter\let\csname\??constructionstophandler \v!enumeration\expandafter\endcsname\csname\??constructionstophandler \v!description\endcsname -\setvalue{\??constructiontexthandler\v!enumeration}% +\unexpanded\setvalue{\??constructiontexthandler\v!enumeration}% {\begingroup \useconstructionstyleandcolor\c!headstyle\c!headcolor \strc_enumerations_text @@ -363,23 +356,23 @@ % % we will provide some more control, like skipping etc or reference relates -% todo - - \unexpanded\def\strc_enumerations_full_number_coupling - {\iflocation - \strc_enumerations_full_number_yes - \else - \iftrialtypesetting \else - % \doenumerationregistercoupling - \fi - \strc_enumerations_full_number_yes - \edef\p_coupling{\constructionparameter\c!coupling}% - \ifx\p_coupling\empty \else - \symbolreference[order(construction:\p_coupling:\nextinternalorderreference)]% - \fi - \fi} - - \def\skipenumerationcoupling[#1]% e.g. for questions with no answer - {\ctxlua{structures.references.setnextorder("construction","#1")}} +% to do / to be checked + +\unexpanded\def\strc_enumerations_full_number_coupling + {\iflocation + \strc_enumerations_full_number_yes + \else + \iftrialtypesetting \else + % \doenumerationregistercoupling + \fi + \strc_enumerations_full_number_yes + \edef\p_coupling{\constructionparameter\c!coupling}% + \ifx\p_coupling\empty \else + \symbolreference[order(construction:\p_coupling:\nextinternalorderreference)]% + \fi + \fi} + +\unexpanded\def\strc_enumerations_skip_number_coupling[#tag]% e.g. for questions with no answer + {\ctxlua{structures.references.setnextorder("construction","#tag")}} \protect \endinput |