diff options
Diffstat (limited to 'tex/context/base/mkiv/typo-drp.mkiv')
-rw-r--r-- | tex/context/base/mkiv/typo-drp.mkiv | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/tex/context/base/mkiv/typo-drp.mkiv b/tex/context/base/mkiv/typo-drp.mkiv new file mode 100644 index 000000000..2520c3bfd --- /dev/null +++ b/tex/context/base/mkiv/typo-drp.mkiv @@ -0,0 +1,140 @@ +%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, + \c!m=1, + \c!method=\v!none, + % \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 % 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]% + \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 + \edef\p_text{\initialparameter\c!text}% optional + \clf_setinitial + location {\initialparameter\c!location}% + enabled true\space + n \scratchcounter + m \numexpr\initialparameter\c!m\relax + method {\initialparameter\c!method}% + distance \scratchdistance + hoffset \scratchhoffset + voffset \scratchvoffset + ma \attribute\colormodelattribute + ca \attribute\colorattribute + ta \attribute\transparencyattribute + font \fontid\font + dynamic \attribute\zerocount % it's a bit over the top to support this here + \relax + \stopluacode + \kern\zeropoint % we need a node + \p_text + \endgroup + \globallet\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 |