summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/strc-enu.mkvi
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/context/base/strc-enu.mkvi')
-rw-r--r--Master/texmf-dist/tex/context/base/strc-enu.mkvi127
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