diff options
author | Marius <mariausol@gmail.com> | 2013-01-14 00:20:22 +0200 |
---|---|---|
committer | Marius <mariausol@gmail.com> | 2013-01-14 00:20:22 +0200 |
commit | fe55ae49d8deddeb8f02557e3902c847804b0086 (patch) | |
tree | e7d92e04f7acaf2773c23ea081c4d2fe0dc0a167 /tex/context/base/spac-flr.mkiv | |
parent | d38d94fe9542984e38b9839eb2383656328b9da9 (diff) | |
download | context-fe55ae49d8deddeb8f02557e3902c847804b0086.tar.gz |
beta 2013.01.13 23:10
Diffstat (limited to 'tex/context/base/spac-flr.mkiv')
-rw-r--r-- | tex/context/base/spac-flr.mkiv | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/tex/context/base/spac-flr.mkiv b/tex/context/base/spac-flr.mkiv new file mode 100644 index 000000000..0e685b644 --- /dev/null +++ b/tex/context/base/spac-flr.mkiv @@ -0,0 +1,112 @@ +%D \module +%D [ file=spac-fil, +%D version=2013.01.13, +%D title=\CONTEXT\ Spacing Macros, +%D subtitle=Fillers, +%D author={Hans Hagen and Wolfgang Schuster}, +%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 Spacing Macros / Fillers} + +\unprotect + +%D A bit more extensive variant of a prototype posted by Wolfgang to the +%D development list. Instead of dealing with a few leader types it makes +%D sense to support them all as well as simple rule fillers. Eventually we +%D can also use in for the mathfillers. We distinguish between alternatives +%D and with them methods, and a checker is provided for use in applying +%D e.g.\ fillers in lists. + +\installcorenamespace{filler} +\installcorenamespace{filleralternative} +\installcorenamespace{fillerleadermethod} + +\installcommandhandler \??filler {filler} \??filler + +\let\setupfillers\setupfiller + +\unexpanded\def\filler + {\dosingleempty\spac_fillers_indeed} + +\unexpanded\def\checkedfiller#1% + {\ifcsname\namedfillerhash{#1}\s!parent\endcsname + \spac_fillers_indeed[#1]% + \expandafter\gobbleoneargument + \else + \expandafter\firstofoneargument + \fi{#1}} + +\def\spac_fillers_indeed[#1]% + {\removeunwantedspaces + \begingroup + \edef\currentfiller{#1}% + \scratchdimen\fillerparameter\c!leftmargin\relax + \ifdim\scratchdimen=\zeropoint\else + \hskip\scratchdimen + \fi + \fillerparameter\c!left\relax + \expandcheckedcsname\??filleralternative{\fillerparameter\c!alternative}\s!unknown\relax + \fillerparameter\c!right\relax + \scratchdimen\fillerparameter\c!rightmargin\relax + \ifdim\scratchdimen=\zeropoint\else + \hskip\scratchdimen + \fi + \endgroup + \ignorespaces} + +\setvalue{\??filleralternative\s!unknown}% + {} + +\setvalue{\??filleralternative\v!symbol}% + {\expandcheckedcsname\??fillerleadermethod{\fillerparameter\c!method}\v!local + \simplealignedbox + {\fillerparameter\c!width}% + {\fillerparameter\c!align}% + {\fillerparameter\c!symbol}% + \hfill} + +\setvalue{\??filleralternative\c!stretch}% + {\hfill} + +\setvalue{\??filleralternative\c!rule}% + {\expandcheckedcsname\??fillerleadermethod{\fillerparameter\c!method}\v!local + \hrule + \!!height\fillerparameter\c!height + \!!depth \fillerparameter\c!depth + \hfill} + +\letvalue{\??fillerleadermethod\s!local }\normalleaders % overflow ends up inbetween (current box) +\letvalue{\??fillerleadermethod\v!global}\normalgleaders % overflow ends up inbetween (outermost box) +\letvalue{\??fillerleadermethod\v!middle}\normalcleaders % overflow ends up before, after (current box) +\letvalue{\??fillerleadermethod\v!broad }\normalxleaders % overflow ends up before, inbetween, after (current box) + +\setupfillers + [\c!width=\emwidth, + \c!symbol=., + \c!align=\v!middle, + \c!height=.1\exheight, + \c!depth=\zeropoint, + \c!leftmargin=\zeropoint, + \c!rightmargin=\zeropoint, + \c!alternative=\v!symbol, + \c!method=\s!local] + +% maybe box -> symbol + +\protect \endinput + +% \definefiller[test-a][alternative=stretch] +% \definefiller[test-b][alternative=symbol,symbol=!] +% \definefiller[test-c][alternative=rule,height=.1ex,leftmargin=.5em,rightmargin=.25em] + +% \starttext +% text\filler[test-a]text \par +% text\filler[test-b]text \par +% text\filler[test-c]text \par +% text\checkedfiller{<nothing>}text \par +% \stoptext |