summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/pack-mrl.mkiv
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-04-22 22:14:39 +0000
committerKarl Berry <karl@freefriends.org>2016-04-22 22:14:39 +0000
commitfc4466b32ed330a956ac603b00fd145524cff49a (patch)
tree2c50e2b8de13aa9233b2c76dffe201558f169e86 /Master/texmf-dist/tex/context/base/pack-mrl.mkiv
parent50e2368597d5f6fe2057195d0ae6a9f2044923e4 (diff)
context (22apr16)
git-svn-id: svn://tug.org/texlive/trunk@40691 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/context/base/pack-mrl.mkiv')
-rw-r--r--Master/texmf-dist/tex/context/base/pack-mrl.mkiv844
1 files changed, 0 insertions, 844 deletions
diff --git a/Master/texmf-dist/tex/context/base/pack-mrl.mkiv b/Master/texmf-dist/tex/context/base/pack-mrl.mkiv
deleted file mode 100644
index a97c9e6f8c8..00000000000
--- a/Master/texmf-dist/tex/context/base/pack-mrl.mkiv
+++ /dev/null
@@ -1,844 +0,0 @@
-%D \module
-%D [ file=pack-mrl, % was pack-rul/core-rul,
-%D version=1998.10.16,
-%D title=\CONTEXT\ Packaging Macros,
-%D subtitle=More Rules,
-%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 Packaging Macros / More Rules}
-
-%D The (re)implementation of margin rules has been moved elsewhere.
-
-\unprotect
-
-%D \macros
-%D {setupblackrules,blackrule}
-%D
-%D The graphic capabilities of \TEX\ do not go beyond simple filled rules, except of
-%D course when using specials or, in \MKIV, manipulate node lists. Let's start with
-%D a warning: using this commands is far more slower than using the \TEX\ primitives
-%D \type {\hrule} and \type {\vrule}, but they save us some tokens. The
-%D characteristics of these rule drawing command can be set by:
-%D
-%D \showsetup{setupblackrules}
-%D
-%D The simple command draws only one rule. Its optional argument can be used to
-%D specify the dimensions. By setting the width, height or depth to \type {max}, one
-%D gets the natural dimensions.
-%D
-%D \showsetup{blackrule}
-
-\installcorenamespace{blackrules}
-
-\installsimplecommandhandler \??blackrules {blackrules}
-
-\unexpanded\def\blackrule
- {\hbox\bgroup
- \doifelsenextoptionalcs\pack_black_rule_pickup\pack_black_rule_indeed}
-
-\def\pack_black_rule_pickup[#1]%
- {\setupcurrentblackrules[#1]%
- \pack_black_rule_indeed}
-
-\def\pack_black_rule_indeed
- {\edef\p_width {\directblackrulesparameter\c!width }%
- \edef\p_height{\directblackrulesparameter\c!height}%
- \edef\p_depth {\directblackrulesparameter\c!depth }%
- \ifx\p_height\v!max
- \setstrut
- \else\ifx\p_depth\v!max
- \setstrut
- \fi\fi
- \useblackrulesstyleandcolor\c!style\c!color
- \vrule
- \s!width \ifx\p_width \v!max\emwidth\else\p_width \fi
- \s!height\ifx\p_height\v!max\strutht\else\p_height\fi
- \s!depth \ifx\p_depth \v!max\strutdp\else\p_depth \fi
- \egroup}
-
-\setupblackrules
- [\c!width=\emwidth,
- \c!height=\exheight,
- \c!depth=\zeropoint,
- \c!color=]
-
-%D \macros
-%D {blackrules}
-%D
-%D One can call for a sequence of black rules, if needed equally spaced over the
-%D given width.
-%D
-%D \showsetup{blackrules}
-%D
-%D The two alternative calls are therefore:
-%D
-%D \startbuffer
-%D Tell me, is this according to the \blackrules[n=6]?
-%D These \blackrules[alternativevariant=b,n=10,distance=.2em,width=4cm] are quite clear.
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D or:
-%D
-%D \startlines
-%D \getbuffer
-%D \stoplines
-%D
-%D We could of course have implemented this macro using \type {\leaders}, but this
-%D would probably have taken more tokens.
-
-\unexpanded\def\blackrules % probably never used
- {\hbox\bgroup
- \doifelsenextoptionalcs\pack_black_rules_pickup\pack_black_rules_indeed}
-
-\def\pack_black_rules_pickup[#1]%
- {\setupcurrentblackrules[#1]%
- \pack_black_rules_indeed}
-
-\def\pack_black_rules_indeed % no max handling here
- {\scratchwidth \directblackrulesparameter\c!width
- \scratchheight \directblackrulesparameter\c!height
- \scratchdepth \directblackrulesparameter\c!depth
- \scratchdistance\directblackrulesparameter\c!distance
- \scratchcounter \directblackrulesparameter\c!n
- \edef\p_alternative{\blackrulesparameter\c!alternative}%
- \ifx\p_alternative\c!b
- \ifnum\scratchcounter=\plusone
- \scratchdistance\zeropoint
- \else
- \scratchwidth\dimexpr(\scratchwidth-\scratchcounter\scratchdistance+\scratchdistance)/\scratchcounter\relax
- \fi
- \fi
- \useblackrulesstyleandcolor\c!style\c!color
- \dorecurse\scratchcounter % a typical case of where we can use a simple loop
- {\vrule
- \s!width \scratchwidth
- \s!height\scratchheight
- \s!depth \scratchdepth
- \hskip\scratchdistance}%
- \unskip
- \egroup}
-
-\setupblackrules
- [\c!n=3,
- \c!alternative=\c!a,
- \c!distance=.25\emwidth,
- \c!color=]
-
-%D \macros
-%D {vl, hl}
-%D
-%D The command \type {\vl} draws a vertical rule \vl\ with strut dimensions,
-%D multiplied with the factor specified in the optional argument. The height and
-%D depth are clipped \vl [3] to the baselinedistance. Its horizontal counterpart
-%D \type {\hl} draws a horizontal rule \hl\ with a width of 1em, multiplied with the
-%D optional factor. The horizontal rule is drawn on top of the baseline.
-%D
-%D \showsetup{vl}
-%D \showsetup{hl}
-
-\unexpanded\def\pack_rule_vl_indeed#1#2#3%
- {\dontleavehmode
- \begingroup
- \setbox\scratchbox\hbox
- {\vrule
- \s!width #1\linewidth
- \s!height#2\strutht
- \s!depth #3\strutdp}%
- \dp\scratchbox\strutdp
- \ht\scratchbox\strutht
- \box\scratchbox
- \endgroup}
-
-\def\pack_rule_vl[#1]%
- {\pack_rule_vl_indeed{#1}{#1}{#1}}
-
-\def\pack_rule_hl[#1]%
- {\dontleavehmode
- \hbox
- {\vrule
- \s!width #1\emwidth
- \s!height\linewidth
- \s!depth \zeropoint}}
-
-\unexpanded\def\vl{\dosingleempty\pack_rule_vl}
-\unexpanded\def\hl{\dosingleempty\pack_rule_hl}
-
-\let\dovlwdhtdp\pack_rule_vl_indeed % used elsewhere
-
-%D \macros
-%D {hairline, thinrule, thinrules, setupthinrules}
-%D
-%D Drawing thin lines can of course easily be accomplished by the \TEX\
-%D primitives \type{\hrule} and \type{\vrule}. The next few macros however
-%D free us from some specifications.
-%D
-%D \startbuffer
-%D some text
-%D
-%D \hairline
-%D
-%D some more text
-%D
-%D \thinrule
-%D
-%D more and more text
-%D
-%D hi \thinrule\ there
-%D
-%D and then the final text
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D becomes
-%D
-%D \startexample
-%D \getbuffer
-%D \stopexample
-%D
-%D So we've got
-%D
-%D \showsetup{hairline}
-%D \showsetup{thinrule}
-%D
-%D Both can be set up with:
-%D
-%D \showsetup{setupthinrules}
-%D
-%D We also have
-%D
-%D \showsetup{thinrules}
-%D
-%D which looks like: \thinrules[n=2]
-
-\installcorenamespace{thinrules}
-\installcorenamespace{thinrulealternatives}
-
-\installdirectcommandhandler \??thinrules {thinrules}
-
-\setupthinrules
- [\c!interlinespace=\v!small,
- \c!n=3,
- \c!before=,
- \c!inbetween={\blank[\v!white]},
- \c!after=,
- \c!color=,
- \c!height=.5\linewidth,
- \c!depth=.5\linewidth,
- \c!frame=\v!on, % compatible with textbackgrounds
- \c!alternative=\v!b,
- \c!backgroundcolor=,
- \c!background=,
- \c!rulethickness=\linewidth]
-
-\letvalue{\??thinrulealternatives\v!a }\zerocount
-\letvalue{\??thinrulealternatives\v!b }\plusone
-\letvalue{\??thinrulealternatives\v!c }\plustwo
-\letvalue{\??thinrulealternatives\v!none}\zerocount
-
-\newconstant\c_pack_thinrules_type
-
-\unexpanded\def\thinrule
- {\strut
- \bgroup
- \edef\p_height {\directthinrulesparameter\c!height}%
- \edef\p_depth {\directthinrulesparameter\c!depth}%
- \edef\p_background{\directthinrulesparameter\c!background}%
- \edef\p_frame {\directthinrulesparameter\c!frame}%
- \linewidth\dimexpr\directthinrulesparameter\c!rulethickness/\plustwo\relax
- \ifdim\linewidth=\zeropoint
- \c_pack_thinrules_type\zerocount
- \else\ifx\p_frame\v!on
- \c_pack_thinrules_type\expandnamespaceparameter\??thinrulealternatives\directthinrulesparameter\c!alternative\v!b\relax
- \else
- \c_pack_thinrules_type\zerocount
- \fi\fi
- \ifnum\c_pack_thinrules_type=\plusone
- \ifx\p_height\v!max
- \scratchheight\strutht
- \else
- \setdimensionwithunit\scratchheight\p_height\strutht
- \fi
- \ifx\p_depth\v!max
- \scratchdepth\strutdp
- \else
- \setdimensionwithunit\scratchdepth\p_depth\strutdp
- \fi
- \else
- \scratchheight\strutht
- \scratchdepth \strutdp
- \fi
- \ifx\p_background\v!color
- \startcolor[\directthinrulesparameter\c!backgroundcolor]%
- \ifnum\c_pack_thinrules_type=\plustwo % prevent overshoot due to rounding
- \leaders
- \hrule
- \s!height\dimexpr\scratchheight-\linewidth\relax
- \s!depth \dimexpr\scratchdepth -\linewidth\relax
- \hfill
- \else
- \leaders
- \hrule
- \s!height\scratchheight
- \s!depth \scratchdepth
- \hfill
- \fi
- \stopcolor
- \ifcase\c_pack_thinrules_type
- % no rule
- \or
- \startcolor[\directthinrulesparameter\c!color]%
- \hfillneg
- \leaders
- \hrule
- \s!height\linewidth
- \s!depth \linewidth
- \hfill
- \stopcolor
- \or
- \startcolor[\directthinrulesparameter\c!color]%
- \hfillneg
- \leaders
- \hrule
- \s!height\dimexpr-\scratchdepth+\linewidth\relax
- \s!depth \scratchdepth
- \hfill
- \hfillneg
- \leaders
- \hrule
- \s!height\scratchheight
- \s!depth \dimexpr-\scratchheight+\linewidth\relax
- \hfill
- \stopcolor
- \fi
- \else
- \ifcase\c_pack_thinrules_type
- % no rule
- \else
- \startcolor[\directthinrulesparameter\c!color]%
- \leaders
- \hrule
- \s!height\scratchheight
- \s!depth \scratchdepth
- \hfill
- \stopcolor
- \fi
- \fi
- \strut
- \carryoverpar\egroup}
-
-\unexpanded\def\hairline
- {\endgraf
- \thinrule
- \endgraf}
-
-\unexpanded\def\thinrules
- {\dosingleempty\pack_thinrules}
-
-\def\pack_thinrules[#1]%
- {\bgroup
- \setupcurrentthinrules[#1]%
- \assignvalue{\directthinrulesparameter\c!interlinespace}\m_pack_thinrules_interlinespace{1.0}{1.5}{2.0}%
- \spacing\m_pack_thinrules_interlinespace
- \edef\p_after {\directthinrulesparameter\c!after}%
- \edef\p_inbetween{\directthinrulesparameter\c!inbetween}%
- \directthinrulesparameter\c!before
- \scratchcounter\directthinrulesparameter\c!n\relax
- \dorecurse\scratchcounter
- {\ifnum\recurselevel=\scratchcounter \penalty500 \else
- \ifnum\recurselevel=\plustwo \penalty500 \fi\fi
- \thinrule
- \ifnum\recurselevel<\scratchcounter\relax
- % test needed, else messed up whitespace
- \ifx\p_inbetween\empty
- \softbreak % \ifhmode \hskip \parfillskip \break \fi
- \else
- \endgraf
- \nowhitespace
- \p_inbetween
- \fi
- \fi}%
- \ifx\p_after\empty
- \carryoverpar\egroup
- \else
- \p_after\egroup
- \fi{}}
-
-%D A couple of examples are given below.
-%D
-%D \startbuffer
-%D \setupthinrules[n=3,inbetween=,color=gray]
-%D
-%D test test \thinrules\ test test \par
-%D test test \thinrules [color=green] test test \par
-%D test test \thinrules [height=max, depth=max] test test \par
-%D
-%D \setupthinrules[height=.9,depth=.9]
-%D
-%D test test \thinrules\ test test \par
-%D test test \thinrules [alternativevariant=b] test test \par
-%D test test \thinrules [alternativevariant=c] test test \par
-%D test test \thinrules [alternativevariant=c,inbetween=\vskip2ex] test test \par
-%D \stopbuffer
-%D
-%D \typebuffer {\getbuffer}
-%D
-%D There are a couple of alternative ways to visualize rules using backgrounds. At
-%D first sight these may look strange, but they make sense in educational settings.
-%D The alternatives are more or less compatible with the more advanced \METAPOST\
-%D based implementation.
-%D
-%D \startbuffer[a]
-%D \setupthinrules
-%D [n=2,
-%D backgroundcolor=gray ,
-%D rulethickness=1pt,
-%D colorkleur=donkerblauw,
-%D after=\blank,
-%D before=\blank]
-%D \stopbuffer
-%D
-%D \typebuffer[a]
-%D
-%D \startbuffer[b]
-%D \thinrules[alternativevariant=a]
-%D \thinrules[alternativevariant=b]
-%D \thinrules[alternativevariant=c]
-%D \stopbuffer
-%D
-%D \typebuffer[b] \getbuffer[a,b]
-%D
-%D \startbuffer[b]
-%D \thinrules[alternativevariant=a,background=color]
-%D \thinrules[alternativevariant=b,background=color]
-%D \thinrules[alternativevariant=c,background=color]
-%D \stopbuffer
-%D
-%D \typebuffer[b] \getbuffer[a,b]
-%D
-%D \startbuffer[b]
-%D \thinrules[alternativevariant=a,height=.8,depth=.8,background=color]
-%D \thinrules[alternativevariant=b,height=.8,depth=.8,background=color]
-%D \thinrules[alternativevariant=c,height=.8,depth=.8,background=color]
-%D \stopbuffer
-%D
-%D \typebuffer[b] \getbuffer[a,b]
-
-%D \macros
-%D {textrule, starttextrule, setuptextrules}
-%D
-%D Putting rules before and after a paragraph is very space sensitive, but the
-%D next command handles that quite well. It comes in two disguises:
-%D
-%D \startbuffer
-%D \textrule[top]{fragments}
-%D \input reich
-%D \textrule
-%D \stopbuffer
-%D
-%D \start \typebuffer \getbuffer \stop
-%D
-%D \startbuffer
-%D \setuptextrules
-%D [width=90pt,distance=12pt,rulecolor=blue,
-%D bodyfont=small,style=\sc,color=red]
-%D
-%D \starttextrule{Ship Building Tools}
-%D \nl \setuptolerance[tolerant] \input materie
-%D \stoptextrule
-%D \stopbuffer
-%D
-%D \bgroup \typebuffer \getbuffer \egroup
-%D
-%D \startbuffer
-%D \setuptextrules
-%D [location=inmargin,
-%D bodyfont=small,style=slantedbold]
-%D
-%D \starttextrule{wonderful}
-%D \input tufte
-%D \stoptextrule
-%D \stopbuffer
-%D
-%D \bgroup \typebuffer \getbuffer \egroup
-%D
-%D The formal definition of these commands is:
-%D
-%D \showsetup{textrule}
-%D \showsetup{starttextrule}
-%D \showsetup{setuptextrules}
-%D
-%D The implementation looks a bit complicated due to the optional arguments.
-
-\installcorenamespace{textrules}
-\installcorenamespace{textrulealternatives}
-
-\installdirectcommandhandler \??textrules {textrules}
-
-\setuptextrules
- [\c!location=\v!left,
- \c!before=\blank,
- \c!after=\blank,
- \c!inbetween=,
- \c!width=2\emwidth,
- \c!style=\v!bold,
- \c!color=,
- \c!rulecolor=,
- \c!bodyfont=,
- \c!depthcorrection=\v!on,
- \c!rulethickness=\linewidth,
- \c!distance=.5\emwidth]
-
-\unexpanded\def\textrule
- {\dosingleempty\pack_textrule}
-
-\def\pack_textrule
- {\iffirstargument
- \expandafter\pack_textrule_yes
- \else
- \expandafter\pack_textrule_nop
- \fi}
-
-\def\pack_textrule_yes[#1]%
- {\expandnamespacevalue\??textrulealternatives{#1}\v!bottom}
-
-\def\pack_textrule_nop[#1]%
- {\dosinglegroupempty\pack_textrule_nop_indeed}
-
-\def\pack_textrule_nop_indeed
- {\iffirstargument
- \expandafter\pack_textrule_nop_indeed_yes
- \else
- \expandafter\pack_textrule_nop_indeed_nop
- \fi}
-
-\def\pack_textrule_nop_indeed_yes
- {\csname\??textrulealternatives\v!top\endcsname}
-
-\def\pack_textrule_nop_indeed_nop
- {\csname\??textrulealternatives\v!bottom\endcsname\empty}
-
-%D\startbuffer
-%D\showstruts
-%D
-%D\setupwhitespace[none]
-%D
-%D\textrule[top]{test} xxxxx\smash{\strut} \textrule[bottom]{test}
-%D\textrule[top]{test} xxxxx\strut \textrule[bottom]{test}
-%D
-%D\setupwhitespace[big]
-%D
-%D\textrule[top]{test} xxxxx\smash{\strut} \textrule[bottom]{test}
-%D\textrule[top]{test} xxxxx\strut \textrule[bottom]{test}
-%D\stoptyping
-%D
-%D \typebuffer \start \getbuffer \stop
-
-\setvalue{\??textrulealternatives\v!top}#1%
- {\page[\v!preference] % interferes
- \directtextrulesparameter\c!before\relax
- \blank[\v!samepage,\v!nowhite]%
- \pack_textrule_with_text{#1}%
- \blank[\v!samepage,\v!nowhite]%
- \directtextrulesparameter\c!inbetween\relax
- \endgraf}
-
-\setvalue{\??textrulealternatives\v!bottom}#1%
- {\blank[\v!samepage,\v!nowhite]%
- \pack_textrule_following{#1}%
- \blank[\v!samepage,\v!nowhite]%
- \directtextrulesparameter\c!after\relax
- \page[\v!preference]}
-
-\setvalue{\??textrulealternatives\v!middle}#1%
- {\blank[\v!samepage,\v!nowhite]%
- \directtextrulesparameter\c!inbetween\relax
- \pack_textrule_following{#1}%
- \blank[\v!samepage,\v!nowhite]%
- \directtextrulesparameter\c!inbetween\relax
- \page[\v!preference]}
-
-\def\pack_textrule_with_text#1%
- {\bgroup
- \setbox\scratchbox\hbox to \availablehsize
- {\scratchwidth \directtextrulesparameter\c!rulethickness\relax
- \scratchheight\dimexpr .5\exheight+.5\scratchwidth\relax
- \scratchdepth \dimexpr-.5\exheight+.5\scratchwidth\relax
- \doifsomething{#1}
- {\doifelse{\directtextrulesparameter\c!location}\v!inmargin
- {\llap
- {\usetextrulesstyleandcolor\c!style\c!color
- #1%
- \hskip\leftmargindistance}}
- {\color[\directtextrulesparameter\c!rulecolor]
- {\vrule\s!height\scratchheight\s!depth\scratchdepth\s!width\directtextrulesparameter\c!width}%
- \hbox spread 2\dimexpr\directtextrulesparameter\c!distance\relax
- {\hss
- \usetextrulesstyleandcolor\c!style\c!color
- \strut#1%
- \hss}}}%
- \color[\directtextrulesparameter\c!rulecolor]
- {\leaders\hrule\s!height\scratchheight\s!depth\scratchdepth\hfill}}%
- \ht\scratchbox\strutht
- \dp\scratchbox\strutdp
- \noindent\box\scratchbox
- \egroup}
-
-\def\pack_textrule_correct_depth_yes
- {\vskip\dimexpr
- \strutdp +.5\exheight
- \ifdim\prevdepth>\strutdp\else
- \ifdim\prevdepth>\zeropoint
- -\prevdepth
- \fi
- \fi
- \relax
- \relax}
-
-\def\pack_textrule_correct_depth_nop
- {\vskip\dimexpr
- \strutdp +.5\exheight
- \relax
- \relax}
-
-\def\pack_textrule_following#1%
- {\doifelsenothing{#1}
- {\ifhmode
- \endgraf
- \fi
- \doifelse{\directtextrulesparameter\c!depthcorrection}\v!on\pack_textrule_correct_depth_yes\pack_textrule_correct_depth_nop
- \nointerlineskip
- \noindent\vbox % was \dontleavehmode
- {\color[\directtextrulesparameter\c!rulecolor]
- {\hrule\s!depth\directtextrulesparameter\c!rulethickness\s!height\zeropoint\s!width\availablehsize}}}
- {\pack_textrule_with_text{#1}}%
- \ifvmode
- \prevdepth\zeropoint
- \fi}
-
-%D The grouped commands also supports bodyfont switching:
-
-\unexpanded\def\starttextrule#1%
- {\bgroup
- \def\pack_textrule_nop_indeed{\csname\??textrulealternatives\v!middle\endcsname}%
- \csname\??textrulealternatives\v!top\endcsname{#1}%
- \bgroup
- \usebodyfontparameter\directtextrulesparameter}
-
-\unexpanded\def\stoptextrule
- {\par
- \egroup
- \csname\??textrulealternatives\v!bottom\endcsname\empty
- \egroup}
-
-%D \macros
-%D {fillinrules, setupfillinrules}
-%D
-%D The next few commands do not really deserve a place in a core module, because
-%D they deal with specific typography. Nevertheless I decided to make them part of
-%D the core, because they permit us to make questionaires. Let's start with some
-%D examples.
-%D
-%D \fillinrules[n=2,width=fit]{first}
-%D \fillinrules[n=2,width=broad]{first}
-%D \fillinrules[n=2,width=3cm]{first}
-%D \fillinrules[n=2,width=3cm,distance=.5em,separator=:]{first}
-%D \fillinrules[n=2]{first}{last}
-%D \fillintext{first}{last} \input reich \par
-%D
-%D The main command is \type{\fillinrules}. This command takes one and an optional
-%D second argument and sets a paragraph with empty visualized lines.
-%D
-%D \showsetup{fillinrules}
-%D \showsetup{setupfillinrules}
-
-
-\installcorenamespace{fillinrules}
-
-\installdirectcommandhandler \??fillinrules {fillinrules}
-
-\setupfillinrules
- [\c!width=\v!broad,
- \c!distance=\emwidth,
- \c!before=\blank,
- \c!after=\blank,
- \c!n=\plusone,
- \c!interlinespace=\v!small,
- \c!separator=,
- \c!style=,
- \c!color=]
-
-\unexpanded\def\fillinrules
- {\dosingleempty\pack_fillinrules}
-
-\def\pack_fillinrules[#1]%
- {\endgraf
- \begingroup
- \setupcurrentfillinrules[#1]%
- \let\pack_fillinrules_rule\thinrules
- \dodoublegroupempty\pack_fillinrules_indeed}
-
-\def\pack_fillinrules_indeed#1#2%
- {\directfillinrulesparameter\c!before
- \setupcurrentthinrules
- [\c!n=\directfillinrulesparameter\c!n,
- \c!interlinespace=\directfillinrulesparameter\c!interlinespace,
- \c!before=,
- \c!after=]%
- \scratchdistance\directfillinrulesparameter\c!distance\relax
- \edef\m_fillinrules_one{#1}%
- \edef\m_fillinrules_two{#2}%
- \noindent
- \ifx\m_fillinrules_one\empty \else
- \edef\p_width{\directfillinrulesparameter\c!width}%
- \ifx\p_width\v!fit
- \scratchdistance\zeropoint
- \hbox
- \else\ifx\p_width\v!broad
- \hbox
- \else
- \hbox to \directfillinrulesparameter\c!width
- \fi\fi
- \bgroup
- \usefillinrulesstyleandcolor\c!style\c!color
- \strut
- \m_fillinrules_one
- \hfill\directfillinrulesparameter\c!separator
- \hskip\scratchdistance
- \egroup
- \fi
- \setupwhitespace[\v!big]%
- \ignorespaces
- \pack_fillinrules_rule
- \ifx\m_fillinrules_two\empty \else
- \kern\scratchdistance
- \usefillinrulesstyleandcolor\c!style\c!color
- \m_fillinrules_two
- \strut
- \fi
- \endgraf
- \directfillinrulesparameter\c!after
- \endgroup}
-
-%D \macros
-%D {fillintext}
-%D
-%D To provide compatible layouts when texts and lines are mixed, one can typeset
-%D a paragraph by using the command \type {\fillintext}.
-%D
-%D \showsetup{fillintext}
-
-\unexpanded\def\fillintext
- {\dosingleempty\pack_fillintext}
-
-\def\pack_fillintext[#1]% ugly
- {\endgraf
- \begingroup
- \setupcurrentfillinrules[#1]%
- \dodoublegroupempty\pack_fillintext_indeed}
-
-\def\pack_fillintext_indeed#1#2%
- {\def\pack_fillinrules_rule{\unhbox\nextbox\unskip}%
- \dowithnextbox{\pack_fillinrules_indeed{#1}{\hfill#2}}%
- \hbox\bgroup\let\par\egroup\ignorespaces}
-
-%D \macros
-%D {fillinline, setupfillinlines}
-%D
-%D Another member of the family takes care of putting a (often small) rule after
-%D a piece of text, like
-%D
-%D \startbuffer
-%D
-%D \stopbuffer\fillinline \input reich \par
-%D \fillinline[margin=0cm] \input reich \par
-%D
-%D \startexample
-%D \getbuffer
-%D \stopexample
-%D
-%D which was typeset by saying:
-%D
-%D \typebuffer
-%D
-%D The two commands that take care of this are:
-%D
-%D \showsetup{fillinline}
-%D \showsetup{setupfillinlines}
-
-\installcorenamespace{fillinlines}
-
-\installdirectcommandhandler \??fillinlines {fillinlines}
-
-\setupfillinlines
- [\c!width=8\emwidth, % was 3cm
- \c!margin=\directfillinlinesparameter\c!width,
- \c!rulethickness=\linewidth,
- \c!color=,
- \c!distance=\emwidth,
- \c!before=\blank,
- \c!after=\blank]
-
-\unexpanded\def\fillinline
- {\dosingleempty\pack_fillinline}
-
-\ifdefined\endpar % experiment with \endpar
-
- \def\pack_fillinline[#1]%
- {% \endpar % no, as it interferes with \definedescription cum suis
- \begingroup
- \setupcurrentfillinlines[#1]%
- \directfillinlinesparameter\c!before
- \begingroup
- \advance\rightskip \directfillinlinesparameter\c!margin\relax
- \parfillskip\zeropoint
- \pushmacro\endpar
- \def\endpar
- {\popmacro\endpar
- \ifhmode\unskip\hfill\fi
- \scratchwidth\dimexpr\directfillinlinesparameter\c!width-\directfillinlinesparameter\c!distance\relax
- \ifdim\scratchwidth>\directfillinlinesparameter\c!margin\else\expandafter\rlap\fi
- {\kern\directfillinlinesparameter\c!distance
- \scratchheight\dimexpr\directfillinlinesparameter\c!rulethickness/\plustwo\relax
- \color[\directfillinlinesparameter\c!color]{\vrule\s!width\scratchwidth\s!height\scratchheight\s!depth\scratchheight}}%
- \endpar
- \endgroup
- \endpar
- \directfillinlinesparameter\c!after
- \endgroup}} % carryover ?
-
-\else
-
- \def\pack_fillinline[#1]%
- {%\endgraf % no, as it interferes with \definedescription cum suis
- \begingroup
- \setupcurrentfillinlines[#1]%
- \directfillinlinesparameter\c!before
- \begingroup
- \advance\rightskip \directfillinlinesparameter\c!margin\relax
- \parfillskip\zeropoint
- \def\par
- {\let\par\endgraf
- \ifhmode\unskip\hfill\fi
- \scratchwidth\dimexpr\directfillinlinesparameter\c!width-\directfillinlinesparameter\c!distance\relax
- \ifdim\scratchwidth>\directfillinlinesparameter\c!margin\else\expandafter\rlap\fi
- {\kern\directfillinlinesparameter\c!distance
- \scratchheight\dimexpr\directfillinlinesparameter\c!rulethickness/\plustwo\relax
- \color[\directfillinlinesparameter\c!color]{\vrule\s!width\scratchwidth\s!height\scratchheight\s!depth\scratchheight}}%
- \endgraf
- \endgroup
- \endgraf
- \directfillinlinesparameter\c!after
- \endgroup}} % carryover ?
-
-\fi
-
-\protect \endinput