%D \module %D [ file=typo-pnc, %D version=2017.06.23, % experiment in project %D title=\CONTEXT\ Typesetting Macros, %D subtitle=Punctuation, %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 / Punctuation} \unprotect % In manuals we often have "foo e.g. bar" where we then have to compensate spaces % with "foo e.g.\ bar" so let's see if we can automate that and at the same time % inject spaces between the snippets. It gets boring writing this kind of code. \registerctxluafile{typo-pnc}{} \definesystemattribute[periodkern][public,global] \installcorenamespace{periodkerning} \installcommandhandler \??periodkerning {periodkerning} \??periodkerning \unexpanded\def\setperiodkerning[#1]% {\edef\currentperiodkerning{#1}% \ifx\currentperiodkerning\s!reset \resetperiodkerning \else \typo_periodkerning_set \fi} \def\typo_periodkerning_set {\clf_setperiodkerning{\periodkerningparameter\c!factor}} \unexpanded\def\resetperiodkerning % fast one {\c_attr_periodkern\attributeunsetvalue} \appendtoks \resetperiodkerning \to \everyresettypesetting \defineperiodkerning [zerospaceperiods] [\c!factor=0] \defineperiodkerning [smallspaceperiods] [\c!factor=.25] \defineperiodkerning [halfspaceperiods] [\c!factor=.5] % If we ever need a command, see typo-krn.mkiv but it doesn't make much sense % to have it. \protect