A solution by Luigi:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newdimen\SpaceLeft
\def\CheckSpace{%
\ifdim\pagetotal=0pt\SpaceLeft=\vsize\else\SpaceLeft=\pagegoal\advance\SpaceLeft
by -\pagetotal\advance\SpaceLeft by -2\lineheight\fi}%
\setupcolors[state=start]
\long\def\StartBg#1\StopBg{%
\bgroup
\setbox8000=\vbox{\hsize=\dimexpr\textwidth-1em\relax#1}
\CheckSpace% \the\SpaceLeft\the\ht8000 \the\dp8000
\ifdim\dimexpr(\ht8000+\dp8000)>\SpaceLeft\relax
%
\setbox8001=\vsplit8000 to \SpaceLeft%
\setbox8001=\vbox{\unvbox8001}%
%
\setupbackground
[bottomframe=off,
rulethickness=1pt,
rightframe=on,width=\textwidth,
leftframe=on]
\startbackground\unvbox8001\stopbackground%
\setupbackground
[bottomframe=on,
rulethickness=1pt,
rightframe=on,width=\textwidth,
leftframe=on]
\startbackground\unvbox8000\stopbackground%
\else
\setupbackground
[bottomframe=on,
rulethickness=1pt,
rightframe=on,
leftframe=on]
\startbackground #1\stopbackground%
\fi
\egroup
}
\setupbackground
[bottomframe=on,
rulethickness=1pt,
rightframe=on,
leftframe=on]
\starttext
\startbackground
\input knuth
\stopbackground
e poi
\StartBg
\input knuth
\input knuth
\input knuth
\StopBg
\stoptext
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
An alternative solution with the command \definetextbackground:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setupcolors[state=start]
\enableregime[utf]
\def\Linea{\startMPcode
draw (0,0) -- (\the\textwidth-1,0) withpen pencircle scaled 1bp withcolor red;
\stopMPcode
}
\definetextbackground
[Prova]
[
mp=background:mp,
location=paragraph,
rulethickness=1pt,
width=broad,
leftoffset=1em,
rightoffset=1em,
after={\Linea}
]
\startuseMPgraphic{background:mp}
path p;
for i = 1 upto nofmultipars :
p = (multipars[i]
topenlarged 5pt
bottomenlarged 10pt);
fill p withcolor lightgray ;
draw leftboundary p withpen pencircle scaled 1bp withcolor red ;
draw rightboundary p withpen pencircle scaled 1bp withcolor red ;
endfor;
\stopuseMPgraphic
\starttext
\startProva
\input knuth
\input knuth
\input knuth
\input knuth
\input knuth
\stopProva
\stoptext
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
bye
ES
2010/10/14 luigi scarso
On Thu, Oct 14, 2010 at 11:05 AM, Emanuele Sacco
wrote: Hi all,
I'm using context MkII. My code is
\setupcolors[state=start] \setupbackground [bottomframe=on, rulethickness=1pt, rightframe=on, leftframe=on]
\starttext Good: \startbackground \input knuth \stopbackground
Not good:
\startbackground \input knuth \input knuth \input knuth \stopbackground \stoptext
The second backgrounded text is on two pages. Is there a way to not show the bottomframe at the end of the first page? thanks
ES -- Al mondo ci sono 10 tipi di persone: quelli che conoscono il sistema binario e quelli che non lo conoscono. ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________
As always my pov: a wrapper macro.
\showframe \newdimen\SpaceLeft \def\CheckSpace{% \ifdim\pagetotal=0pt\SpaceLeft=\vsize\else\SpaceLeft=\pagegoal\advance\SpaceLeft by -\pagetotal\advance\SpaceLeft by -2\lineheight\fi}%
\setupcolors[state=start]
\long\def\StartBg#1\StopBg{% \bgroup \setbox8000=\vbox{#1} \CheckSpace% \the\SpaceLeft\the\ht8000 \the\dp8000 \ifdim\dimexpr(\ht8000+\dp8000)>\SpaceLeft\relax % \setbox8001=\vsplit8000 to \SpaceLeft% \setbox8001=\vbox{\unvbox8001}% % \setupbackground [bottomframe=off, rulethickness=1pt, rightframe=on, leftframe=on] \startbackground\unvbox8001\stopbackground%
\setupbackground [bottomframe=on, rulethickness=1pt, rightframe=on, leftframe=on] \startbackground\unvbox8000\stopbackground% \else \setupbackground [bottomframe=on, rulethickness=1pt, rightframe=on, leftframe=on] \startbackground #1\stopbackground% \fi \egroup }
\setupbackground [bottomframe=on, rulethickness=1pt, rightframe=on, leftframe=on]
\starttext Good: \startbackground \input knuth \stopbackground
Not good:
\StartBg \input knuth \input knuth \input knuth \StopBg
\stoptext
-- luigi ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________
-- Al mondo ci sono 10 tipi di persone: quelli che conoscono il sistema binario e quelli che non lo conoscono.