diff options
Diffstat (limited to 'tex/context/base/strc-lst.mkvi')
-rw-r--r-- | tex/context/base/strc-lst.mkvi | 97 |
1 files changed, 76 insertions, 21 deletions
diff --git a/tex/context/base/strc-lst.mkvi b/tex/context/base/strc-lst.mkvi index c7fd41daf..90b121399 100644 --- a/tex/context/base/strc-lst.mkvi +++ b/tex/context/base/strc-lst.mkvi @@ -277,8 +277,8 @@ %D a document source but nowadays that is less an issue in the %D sense that the extra few lines are neglectable to the rest. -\unexpanded\def\systemsuppliedchapter {\getvalue{\v!chapter}} % obsolete -\unexpanded\def\systemsuppliedtitle {\getvalue{\v!title}} % obsolete +\unexpanded\def\systemsuppliedchapter {\csname\v!chapter\endcsname} % obsolete +\unexpanded\def\systemsuppliedtitle {\csname\v!title \endcsname} % obsolete \unexpanded\def\completelist {\dodoubleempty\strc_lists_complete} @@ -477,16 +477,30 @@ \let\dotaglistlocation\relax +\def\strc_lists_entry_process_default + {no list method} + +% \def\strc_lists_entry_process % assume things to be set up +% {\listextraparameter\c!before +% \dostarttagged\t!listitem\currentlist +% \dotaglistlocation +% \csname\??structurelistprocessor +% \ifcsname\??structurelistprocessor\currentlist:\currentlistmethod\endcsname\currentlist:\currentlistmethod\else +% \ifcsname\??structurelistprocessor\currentlistmethod \endcsname\currentlistmethod \else +% \ifcsname\??structurelistprocessor\currentlist \endcsname\currentlist \else +% \s!default \fi\fi\fi +% \endcsname +% \dostoptagged +% \listextraparameter\c!after} + \def\strc_lists_entry_process % assume things to be set up {\listextraparameter\c!before \dostarttagged\t!listitem\currentlist \dotaglistlocation - \csname\??structurelistprocessor - \ifcsname\??structurelistprocessor\currentlist:\currentlistmethod\endcsname\currentlist:\currentlistmethod\else - \ifcsname\??structurelistprocessor\currentlistmethod \endcsname\currentlistmethod \else - \ifcsname\??structurelistprocessor\currentlist \endcsname\currentlist \else - \s!default \fi\fi\fi - \endcsname + \ifcsname\??structurelistprocessor\currentlist:\currentlistmethod\endcsname\lastnamedcs\else + \ifcsname\??structurelistprocessor\currentlistmethod \endcsname\lastnamedcs\else + \ifcsname\??structurelistprocessor\currentlist \endcsname\lastnamedcs\else + \strc_lists_entry_process_default\fi\fi\fi \dostoptagged \listextraparameter\c!after} @@ -502,7 +516,7 @@ % lists that have a number/title are kind of generic and can share code \installstructurelistprocessor\s!default - {no list method} + {\strc_lists_entry_process_default} \installstructurelistprocessor\s!simple {\let\currentlistentrynumber \structurelistfirst @@ -567,7 +581,7 @@ \unexpanded\def\strc_lists_symbol_none {\strc_lists_assign_dimen\scratchwidth\c!width{1.5\emwidth}% - \hbox to \scratchwidth{}} + \hpack to \scratchwidth{}} \unexpanded\def\strc_lists_symbol_one {\strut\symbol[bullet]} @@ -588,22 +602,29 @@ \installcorenamespace{listsymbollabels} +\def\strc_lists_symbol_label_unknown + {\leftlabeltext\currentlistlabel + \listparameter\c!starter + \currentlistentrynumber + \listparameter\c!stopper + \rightlabeltext\currentlistlabel} + \unexpanded\def\strc_lists_symbol_default {\dontleavehmode \strut \begingroup \edef\currentlistlabel{\listparameter\c!label}% can be used in label - \csname\??listsymbollabels - \ifcsname\??listsymbollabels\currentlistlabel\endcsname\currentlistlabel\else\s!unknown\fi - \endcsname +% \csname\??listsymbollabels +% \ifcsname\??listsymbollabels\currentlistlabel\endcsname\currentlistlabel\else\s!unknown\fi +% \endcsname + \ifcsname\??listsymbollabels\currentlistlabel\endcsname + \lastnamedcs + \else + \strc_lists_symbol_label_unknown + \fi \endgroup} -\setvalue{\??listsymbollabels\s!unknown}% use whatever is set - {\leftlabeltext\currentlistlabel - \listparameter\c!starter - \currentlistentrynumber - \listparameter\c!stopper - \rightlabeltext\currentlistlabel} +\letvalue{\??listsymbollabels\s!unknown}\strc_lists_symbol_default \setvalue{\??listsymbollabels}% default (empty) {\listparameter\c!starter @@ -920,7 +941,7 @@ \listalternativeparameter\c!after \else \noindent % otherwise annotations are mirrored up -\typo_injectors_mark_list + \typo_injectors_mark_list \hbox \strc_lists_get_reference_attribute\v!all \strc_lists_get_destination_attribute { \p_command\currentlistentrynumber\currentlistentrytitle\currentlistentrypagenumber } @@ -1348,10 +1369,44 @@ \strc_lists_interaction_check_nop \fi} +% \def\strc_lists_interaction_check_yes +% {\edef\p_interaction_forward{\listparameter\c!interaction}% +% \ifcsname\??listinteractions\p_interaction_forward\endcsname +% \expandafter\let\expandafter\p_interaction_forward\csname\??listinteractions\p_interaction_forward\endcsname +% \strc_references_get_simple_page_reference{internal(\currentlistentrylocation)}% +% \a_strc_lists_reference\currentreferenceattribute +% \else +% \a_strc_lists_reference\attributeunsetvalue +% \fi +% \ifnum\a_strc_lists_reference=\attributeunsetvalue +% \let\strc_lists_get_reference_attribute\gobbleoneargument +% \let\strc_lists_set_reference_attribute\gobbleoneargument +% \let\strc_lists_set_style_color \strc_lists_set_style_color_normal +% \else +% \let\strc_lists_get_reference_attribute\strc_lists_get_reference_attribute_indeed +% \let\strc_lists_set_reference_attribute\strc_lists_set_reference_attribute_indeed +% \let\strc_lists_set_style_color \strc_lists_set_style_color_special +% \fi +% \edef\p_interaction_backward{\namedheadparameter\currentlist\c!interaction}% \namedheadparameter ! +% \ifx\p_interaction_backward\v!list +% \strc_references_set_simple_page_reference{bck:\currentlistentrylocation}% +% \a_strc_lists_destination\currentdestinationattribute +% \else +% \a_strc_lists_destination\attributeunsetvalue +% \fi +% \ifnum\a_strc_lists_destination=\attributeunsetvalue +% \let\strc_lists_get_destination_attribute\empty +% \let\strc_lists_set_destination_attribute\empty +% \else +% \let\strc_lists_get_destination_attribute\strc_lists_get_destination_attribute_indeed +% \let\strc_lists_set_destination_attribute\strc_lists_set_destination_attribute_indeed +% \fi} + \def\strc_lists_interaction_check_yes {\edef\p_interaction_forward{\listparameter\c!interaction}% \ifcsname\??listinteractions\p_interaction_forward\endcsname - \expandafter\let\expandafter\p_interaction_forward\csname\??listinteractions\p_interaction_forward\endcsname + %\expandafter\let\expandafter\p_interaction_forward\csname\??listinteractions\p_interaction_forward\endcsname + \expandafter\let\expandafter\p_interaction_forward\lastnamedcs \strc_references_get_simple_page_reference{internal(\currentlistentrylocation)}% \a_strc_lists_reference\currentreferenceattribute \else |