%D \module %D [ file=typo-inj, %D version=2014.10.13, %D title=\CONTEXT\ Typesetting Macros, %D subtitle=Triggering Actions, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \writestatus{loading}{ConTeXt Typesetting Macros / Triggering Actions} %D This is a sort of escape from too automatic typesetting of lists. I have %D been thinking fo a more generic injector for instance based on tags (as we %D already index each element) but thi sis sort of fuzzy because the number of a %D tag is not always incremented before we check for it. Also, registers and lists %D are among the few candidates that cannot be controlled directly by putting %D something in the input. So,m for the moment I stick to this mechanism but %D future versions of \CONTEXT\ might do it differently. Compatibility is not much %D of an issue here as this mechanism is only to be used in final production runs. \unprotect \registerctxluafile{typo-inj}{} % todo: no need in trialmode %D \showinjector %D %D \setinjector[register][3][\column] %D \setinjector[list] [2][{\blank[3*big]}] %D %D \starttext %D \placelist[section][criterium=text] %D \blank[3*big] %D \placeregister[index][criterium=text] %D \page %D \startsection[title=Alpha] first \index{first} \stopsection %D \startsection[title=Beta] second \index{second} \stopsection %D \startsection[title=Gamma] third \index{third} \stopsection %D \startsection[title=Delta] fourth \index{fourth} \stopsection %D \stoptext \unexpanded\def\resetinjector [#1]{\clf_resetinjector{#1}} \unexpanded\def\markinjector [#1]{\dontleavehmode\clf_markinjector{#1}} \unexpanded\def\docheckinjector [#1][#2]{\clf_checkinjector{#1}{#2}} \unexpanded\def\checknextinjector [#1]{\clf_checkinjector{#1}{\v!next}} \unexpanded\def\checkpreviousinjector [#1]{\clf_checkinjector{#1}{\v!previous}} %unexpanded\def\checknextinjector [#1]{\clf_checknextinjector{#1}} %unexpanded\def\checkpreviousinjector [#1]{\clf_checkpreviousinjector{#1}} \unexpanded\def\dosetinjector [#1][#2][#3]{\clf_setinjector{#1}{#2}{#3}} \unexpanded\def\doshowinjector [#1]{\clf_showinjector{#1}} \unexpanded\def\checkinjector{\dodoubleempty \docheckinjector} \unexpanded\def\setinjector {\dotripleargument\dosetinjector} \unexpanded\def\showinjector {\dosingleempty \doshowinjector} \unexpanded\def\domarkinjector#1#2% called at the lua end {\dontleavehmode\llap{\infofont\ifcase#1\else\red\fi<#2>\quad}} % low level definers .. we could have \injectors_mark and \injectors_check and then % use \v!list instead of \s!list \unexpanded\def\doinstallinjector#1% {\letvalue{typo_injectors_mark_#1}\donothing \letvalue{typo_injectors_check_#1}\donothing} \unexpanded\def\doactivateinjector#1% used at lua end {\setuxvalue{typo_injectors_mark_#1}{\dontleavehmode\noexpand\clf_markinjector{#1}}% \setuxvalue{typo_injectors_check_#1}{\noexpand\clf_checkinjector{#1}}} \unexpanded\def\dotestinjector#1% only for testing outside unprotect {\csname typo_injectors_check_#1\endcsname \csname typo_injectors_mark_#1\endcsname} \protect \endinput