diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/base/mkxl/typo-inj.mkxl')
-rw-r--r-- | Master/texmf-dist/tex/context/base/mkxl/typo-inj.mkxl | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-inj.mkxl b/Master/texmf-dist/tex/context/base/mkxl/typo-inj.mkxl new file mode 100644 index 00000000000..f615014b04f --- /dev/null +++ b/Master/texmf-dist/tex/context/base/mkxl/typo-inj.mkxl @@ -0,0 +1,75 @@ +%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 + +\permanent \protected\def\resetinjector [#1]{\clf_resetinjector{#1}} +\permanent \protected\def\markinjector [#1]{\dontleavehmode\clf_markinjector{#1}} +\permanent\tolerant\protected\def\checkinjector [#1]#*[#2]{\clf_checkinjector{#1}{#2}} +\permanent \protected\def\checknextinjector [#1]{\clf_checkinjector{#1}{\v!next}} +\permanent \protected\def\checkpreviousinjector [#1]{\clf_checkinjector{#1}{\v!previous}} +%permanent \protected\def\checknextinjector [#1]{\clf_checknextinjector{#1}} +%permanent \protected\def\checkpreviousinjector [#1]{\clf_checkpreviousinjector{#1}} +\permanent\tolerant\protected\def\setinjector [#1]#*[#2]#*[#3]{\clf_setinjector{#1}{#2}{#3}} +\permanent\tolerant\protected\def\showinjector [#1]{\clf_showinjector{#1}} + +\permanent\protected\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 + +\permanent\protected\def\doinstallinjector#1% + {\letcsname typo_injectors_mark_#1\endcsname\donothing + \letcsname typo_injectors_check_#1\endcsname\donothing} + +\permanent\protected\def\doactivateinjector#1% used at lua end + {\protected\defcsname typo_injectors_mark_#1\endcsname{\dontleavehmode\noexpand\clf_markinjector{#1}}% + \protected\defcsname typo_injectors_check_#1\endcsname{\noexpand\clf_checkinjector{#1}}} + +\permanent\protected\def\dotestinjector#1% only for testing outside unprotect + {\begincsname typo_injectors_check_#1\endcsname + \begincsname typo_injectors_mark_#1\endcsname} + +\protect \endinput |