%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}{} \definesystemattribute[initial][public] \appendtoks \c_attr_initial\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, \c!m=1, \c!method=\v!none, % \c!font=Bold sa 4, % \c!font=Bold ht \measure{initial:n}, \c!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 % we cannot group so no settings {\dosingleempty\typo_initials_place} \def\typo_initials_place[#1]% old command {\par \namedinitialparameter{#1}\c!before \setinitial[#1]\relax} \unexpanded\def\setinitial {\dodoubleempty\typo_initials_set} \unexpanded\def\typo_initials_set[#1][#2]% {\edef\typo_initial_handle{\typo_initial_handle_indeed{#1}{#2}}} \unexpanded\def\typo_initial_handle_indeed#1#2% {\dontleavehmode \begingroup \edef\currentinitial{#1}% \setupcurrentinitial[#2]% \resetfontfeature % might be needed in more places \doifelsenothing{\initialparameter\c!style} {\definedfont[\initialparameter\c!font]} {\useinitialstyleparameter\c!style}% \useinitialcolorparameter\c!color \edef\p_voffset{\initialparameter\c!voffset}% \scratchcounter \initialparameter\c!n\relax \scratchvoffset\dimexpr\ifx\p_voffset\v!line\scratchcounter\lineheight-\lineheight\else\p_voffset\fi\relax \clf_setinitial location {\initialparameter\c!location}% enabled true\space n \scratchcounter m \numexpr\initialparameter\c!m\relax method {\initialparameter\c!method}% distance \dimexpr\initialparameter\c!distance\relax hoffset \dimexpr\initialparameter\c!hoffset\relax voffset \scratchvoffset ma \c_attr_colormodel ca \c_attr_color ta \c_attr_transparency font \fontid\font dynamic \font_dynamic_value % it's a bit over the top to support this here \relax \c_attr_initial\plusone \initialparameter\c!text \endgroup \glet\typo_initial_handle\relax} \let\typo_initial_handle\relax % \setupbodyfont[dejavu,9pt] % % \startbuffer % \setinitial[two] D. E. Knuth \ignorespaces\input knuth \par % \setinitial[two] Knuth \ignorespaces\input knuth \par % \setinitial[two] \quotation{D. E. Knuth} \ignorespaces\input knuth \par % \setinitial[two] \quotation {Knuth} \ignorespaces\input knuth \par % \setinitial[two] [text={D.E. Knuth}] \ignorespaces\input knuth \par % \setinitial[two] [m=4] D. E. Knuth \ignorespaces\input knuth \par % \stopbuffer % % \type{m=2} \start \defineinitial[two][m=2,method=none] \getbuffer \page \stop % \type{m=1,method=auto} \start \defineinitial[two][m=1,method=auto] \getbuffer \page \stop % \type{m=1,method={auto,first,last}} \start \defineinitial[two][m=1,method={first,auto,last}] \getbuffer \page \stop \protect \endinput