%D \module %D [ file=typo-drp, % was typo-par %D version=2011.10.27, %D title=\CONTEXT\ Typesetting Macros, %D subtitle=Initials, %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 / Initials} %D This will change ... par specific attribute set and such. \unprotect \registerctxluafile{typo-drp}{1.001} \definesystemattribute[initial][public] \appendtoks \attribute\initialattribute\attributeunsetvalue \to \everyforgetall %D For the moment here: dropped caps redone. In addition to the %D parameters shown in the example you can use the \type {style} and %D more low level \type {font} keys to set up the font where %D the first one wins. If you don't like the behaviour you can always %D roll out your own command. %D %D \starttyping %D \placeinitial \input ward \par \input ward \par \placeinitial \input tufte %D %D \setupinitial %D [location=text, %D n=2, %D color=darkred, %D distance=-1em, %D hoffset=1em, %D voffset=-3ex, %D before=\blank] %D %D \placeinitial \input ward \par \input ward \placeinitial \input tufte %D \stoptyping % todo: angle (once we can set parshape at the Lua end) \installcorenamespace{initial} \installcommandhandler \??initial {initial} \??initial \definemeasure[initial:n][\lineheight*\initialparameter\c!n - \strutdp] \setupinitial [\c!location=\v!text, \c!n=3, % \s!font=Bold sa 4, % \s!font=Bold ht \measure{initial:n}, \s!font=Bold cp \measure{initial:n}, \c!distance=.125\emwidth, \c!hoffset=\zeropoint, \c!voffset=\v!line, % \dimexp\lineheight*\initialparameter\c!n-\lineheight\relax] \c!style=, \c!color=, \c!before=\blank] \unexpanded\def\placeinitial {\dosingleempty\typo_initials_place} \def\typo_initials_place[#1]% old command {\par \namedinitialparameter{#1}\c!before \setinitial[#1]} \unexpanded\def\setinitial {\dosingleempty\typo_initials_set} \unexpanded\def\typo_initials_set[#1]% {\edef\typo_initial_handle{\typo_initial_handle_indeed{#1}}} \unexpanded\def\typo_initial_handle_indeed#1% {\dontleavehmode \begingroup \edef\currentinitial{#1}% \scratchcounter \initialparameter\c!n\relax \scratchdistance\initialparameter\c!distance\relax \scratchhoffset \initialparameter\c!hoffset \relax \edef\p_voffset{\initialparameter\c!voffset}% \scratchvoffset\dimexpr\ifx\p_voffset\v!line\scratchcounter\lineheight-\lineheight\else\p_voffset\fi\relax \resetfontfeature % might be needed in more places \doifelsenothing{\initialparameter\c!style} {\definedfont[\initialparameter\s!font]} {\useinitialstyleparameter\c!style}% \useinitialcolorparameter\c!color \ctxcommand{setinitial{ location = "\initialparameter\c!location", enabled = true, n = \number\scratchcounter, distance = \number\scratchdistance, hoffset = \number\scratchhoffset, voffset = \number\scratchvoffset, ma = \the\attribute\colormodelattribute , ca = \the\attribute\colorattribute , ta = \the\attribute\transparencyattribute, font = \fontid\font, dynamic = \number\attribute\zerocount, % it's a bit over the top to support this here }}% \stopluacode \kern\zeropoint % we need a node \endgroup \globallet\typo_initial_handle\relax} \let\typo_initial_handle\relax \protect \endinput