ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* background over two page
@ 2010-10-14  9:05 Emanuele Sacco
  2010-10-14  9:37 ` luigi scarso
  0 siblings, 1 reply; 9+ messages in thread
From: Emanuele Sacco @ 2010-10-14  9:05 UTC (permalink / raw)
  To: mailing list for ConTeXt users

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
___________________________________________________________________________________


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: background over two page
  2010-10-14  9:05 background over two page Emanuele Sacco
@ 2010-10-14  9:37 ` luigi scarso
  2010-10-16 15:30   ` Emanuele Sacco
  0 siblings, 1 reply; 9+ messages in thread
From: luigi scarso @ 2010-10-14  9:37 UTC (permalink / raw)
  To: mailing list for ConTeXt users

On Thu, Oct 14, 2010 at 11:05 AM, Emanuele Sacco
<emanuelesacco@gmail.com> 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
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: background over two page
  2010-10-14  9:37 ` luigi scarso
@ 2010-10-16 15:30   ` Emanuele Sacco
  2010-10-18  7:32     ` Otared Kavian
  0 siblings, 1 reply; 9+ messages in thread
From: Emanuele Sacco @ 2010-10-16 15:30 UTC (permalink / raw)
  To: mailing list for ConTeXt users

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 <luigi.scarso@gmail.com>:
> On Thu, Oct 14, 2010 at 11:05 AM, Emanuele Sacco
> <emanuelesacco@gmail.com> 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.
___________________________________________________________________________________
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
___________________________________________________________________________________


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: background over two page
  2010-10-16 15:30   ` Emanuele Sacco
@ 2010-10-18  7:32     ` Otared Kavian
  2010-10-18  7:43       ` luigi scarso
  0 siblings, 1 reply; 9+ messages in thread
From: Otared Kavian @ 2010-10-18  7:32 UTC (permalink / raw)
  To: mailing list for ConTeXt users


On 16 oct. 2010, at 17:30, Emanuele Sacco wrote:

> A solution by Luigi:
> […]

Hi Emmanuele, Hi Luigi,

Please excuse me if I get involved in the thread of your discussions…
I was interested both by the question ad the solutions, since I had a similar problem some time ago, but I gave up.

Now that you give a solution with \definetextbackground (the solution below), I would like to point out that with this definition the beginning of the highlighted text does not have the upper frame turned on, while at the end the bottom frame is turned on (of course this is what we want).
So my question is: can one have both the upper frame turned on at the begining of the highlighted text (and only there) and also the bottom frame turned on at the end (and only there).
In other words, a highlighted framed text spanning over two (or more) pages, would be like a big rectangle of which the upper and the bottom frame, as well as the left and right frames, are shown.

Thanks in advance for you attention: OK

> 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
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
> 
___________________________________________________________________________________
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
___________________________________________________________________________________


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: background over two page
  2010-10-18  7:32     ` Otared Kavian
@ 2010-10-18  7:43       ` luigi scarso
  2010-10-18 12:18         ` Otared Kavian
  0 siblings, 1 reply; 9+ messages in thread
From: luigi scarso @ 2010-10-18  7:43 UTC (permalink / raw)
  To: mailing list for ConTeXt users

On Mon, Oct 18, 2010 at 9:32 AM, Otared Kavian <otared@gmail.com> wrote:
>
> On 16 oct. 2010, at 17:30, Emanuele Sacco wrote:
>
>> A solution by Luigi:
>> […]
>
> Hi Emmanuele, Hi Luigi,
>
> Please excuse me if I get involved in the thread of your discussions…
> I was interested both by the question ad the solutions, since I had a similar problem some time ago, but I gave up.
>
> Now that you give a solution with \definetextbackground (the solution below), I would like to point out that with this definition the beginning of the highlighted text does not have the upper frame turned on, while at the end the bottom frame is turned on (of course this is what we want).
> So my question is: can one have both the upper frame turned on at the begining of the highlighted text (and only there) and also the bottom frame turned on at the end (and only there).
> In other words, a highlighted framed text spanning over two (or more) pages, would be like a big rectangle of which the upper and the bottom frame, as well as the left and right frames, are shown.
>
> Thanks in advance for you attention: OK
With my solution it's a matter of changing few lines
bottomframe=off,topframe=on,


bottomframe=on,topframe=off,


-- 
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
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: background over two page
  2010-10-18  7:43       ` luigi scarso
@ 2010-10-18 12:18         ` Otared Kavian
  2010-10-18 15:22           ` Wolfgang Schuster
  0 siblings, 1 reply; 9+ messages in thread
From: Otared Kavian @ 2010-10-18 12:18 UTC (permalink / raw)
  To: mailing list for ConTeXt users

On 18 oct. 2010, at 09:43, luigi scarso wrote:

> On Mon, Oct 18, 2010 at 9:32 AM, Otared Kavian <otared@gmail.com> wrote:
>> […]
> With my solution it's a matter of changing few lines
> bottomframe=off,topframe=on,
> 
> bottomframe=on,topframe=off,


Thanks Luigi!
Your solution works as intended when the framed, highlighted text with background spans over two pages (though it doesn't when it spans over three pages or more, but this is not a real issue, since it is a bad idea to have such long highlighted texts…).

Best regards: OK

I copy below your modfied solution:

% A solution by Luigi Scarso, slightly modified by him

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\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,
topframe=on, % suggested by Luigi, in his answer
rulethickness=1pt,
rightframe=on,
width=\textwidth,
leftframe=on]
\startbackground\unvbox8001\stopbackground%

\setupbackground
[bottomframe=on,
topframe=off, % suggested by Luigi, in his answer
rulethickness=1pt,
rightframe=on,
width=\textwidth,
leftframe=on]
\startbackground\unvbox8000\stopbackground%
\else
\setupbackground
[bottomframe=on,
topframe=on,
rulethickness=1pt,
rightframe=on,
leftframe=on]
\startbackground #1\stopbackground%
\fi
\egroup
}

\setupbackground
[bottomframe=on,
rulethickness=1pt,
rightframe=on,
leftframe=on]

\starttext

\input ward
\blank

\StartBg
\dorecurse{2}{\input knuth\par}
\StopBg

\blank
\input ward
\blank
\StartBg
\dorecurse{4}{\input knuth\par}
\StopBg

\blank
\input ward

\stoptext
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

On 18 oct. 2010, at 09:43, luigi scarso wrote:

> On Mon, Oct 18, 2010 at 9:32 AM, Otared Kavian <otared@gmail.com> wrote:
>> 
>> On 16 oct. 2010, at 17:30, Emanuele Sacco wrote:
>> 
>>> A solution by Luigi:
>>> […]
>> 
>> Hi Emmanuele, Hi Luigi,
>> 
>> Please excuse me if I get involved in the thread of your discussions…
>> I was interested both by the question ad the solutions, since I had a similar problem some time ago, but I gave up.
>> 
>> Now that you give a solution with \definetextbackground (the solution below), I would like to point out that with this definition the beginning of the highlighted text does not have the upper frame turned on, while at the end the bottom frame is turned on (of course this is what we want).
>> So my question is: can one have both the upper frame turned on at the begining of the highlighted text (and only there) and also the bottom frame turned on at the end (and only there).
>> In other words, a highlighted framed text spanning over two (or more) pages, would be like a big rectangle of which the upper and the bottom frame, as well as the left and right frames, are shown.
>> 
>> Thanks in advance for you attention: OK
> With my solution it's a matter of changing few lines
> bottomframe=off,topframe=on,
> 
> 
> bottomframe=on,topframe=off,
> 
> 
> -- 
> 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
> ___________________________________________________________________________________


___________________________________________________________________________________
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
___________________________________________________________________________________


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: background over two page
  2010-10-18 12:18         ` Otared Kavian
@ 2010-10-18 15:22           ` Wolfgang Schuster
  2010-10-18 20:20             ` Otared Kavian
  2011-08-03 15:08             ` Aditya Mahajan
  0 siblings, 2 replies; 9+ messages in thread
From: Wolfgang Schuster @ 2010-10-18 15:22 UTC (permalink / raw)
  To: mailing list for ConTeXt users


Am 18.10.2010 um 14:18 schrieb Otared Kavian:

> Your solution works as intended when the framed, highlighted text with background spans over two pages (though it doesn't when it spans over three pages or more, but this is not a real issue, since it is a bad idea to have such long highlighted texts…).


I guess this is also possible with textbackground:

\newcounter\CurrentBackground

\def\StartBackground
  {\doglobal\increment\CurrentBackground
   \setposition{Background:b:\CurrentBackground}%
   \startbackground}

\def\StopBackground
  {\stopbackground
   \setposition{Background:e:\CurrentBackground}}

\def\DrawBackground
  {\ifnum\MPp{Background:b:\CurrentBackground}=\MPp{Background:e:\CurrentBackground}
     \startMPcode
     draw topboundary    OverlayBox withcolor red ;
     draw bottomboundary OverlayBox withcolor red ;
     draw leftboundary   OverlayBox withcolor red ;
     draw rightboundary  OverlayBox withcolor red ;
     \stopMPcode
   \else\ifnum\realpageno=\MPp{Background:b:\CurrentBackground}
     \startMPcode
     draw topboundary    OverlayBox withcolor red ;
     draw leftboundary   OverlayBox withcolor red ;
     draw rightboundary  OverlayBox withcolor red ;
     \stopMPcode
   \else\ifnum\realpageno=\MPp{Background:e:\CurrentBackground}
     \startMPcode
     draw bottomboundary OverlayBox withcolor red ;
     draw leftboundary   OverlayBox withcolor red ;
     draw rightboundary  OverlayBox withcolor red ;
     \stopMPcode
   \else
     \startMPcode
     draw leftboundary   OverlayBox withcolor red ;
     draw rightboundary  OverlayBox withcolor red ;
     \stopMPcode
   \fi\fi\fi}

\defineoverlay[DrawBackground][\DrawBackground]

\starttext

\setupbackground[background=DrawBackground]

\input knuth

\StartBackground
\dorecurse{12}{\input knuth\par}
\StopBackground

\input knuth

\StartBackground
\input knuth\par
\StopBackground

\input knuth

\stoptext

Wolfgang

___________________________________________________________________________________
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
___________________________________________________________________________________


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: background over two page
  2010-10-18 15:22           ` Wolfgang Schuster
@ 2010-10-18 20:20             ` Otared Kavian
  2011-08-03 15:08             ` Aditya Mahajan
  1 sibling, 0 replies; 9+ messages in thread
From: Otared Kavian @ 2010-10-18 20:20 UTC (permalink / raw)
  To: mailing list for ConTeXt users

Hi Wolfgang, 

Indeed your solution works without any flaw…
Looking at your code, I learned that Overlaybox is an object which can be filled with a background color, as in:
	fill OverlayBox withcolor lightgray ;    
so that the background can be in color.

Should we add this kind of problems and solutions to the wiki?
If yes, I am willing to do so.

Best regards: OK

On 18 oct. 2010, at 17:22, Wolfgang Schuster wrote:

> 
> Am 18.10.2010 um 14:18 schrieb Otared Kavian:
> 
>> Your solution works as intended when the framed, highlighted text with background spans over two pages (though it doesn't when it spans over three pages or more, but this is not a real issue, since it is a bad idea to have such long highlighted texts…).
> 
> 
> I guess this is also possible with textbackground:
> 
> \newcounter\CurrentBackground
> 
> \def\StartBackground
>  {\doglobal\increment\CurrentBackground
>   \setposition{Background:b:\CurrentBackground}%
>   \startbackground}
> 
> \def\StopBackground
>  {\stopbackground
>   \setposition{Background:e:\CurrentBackground}}
> 
> \def\DrawBackground
>  {\ifnum\MPp{Background:b:\CurrentBackground}=\MPp{Background:e:\CurrentBackground}
>     \startMPcode
>     draw topboundary    OverlayBox withcolor red ;
>     draw bottomboundary OverlayBox withcolor red ;
>     draw leftboundary   OverlayBox withcolor red ;
>     draw rightboundary  OverlayBox withcolor red ;
>     \stopMPcode
>   \else\ifnum\realpageno=\MPp{Background:b:\CurrentBackground}
>     \startMPcode
>     draw topboundary    OverlayBox withcolor red ;
>     draw leftboundary   OverlayBox withcolor red ;
>     draw rightboundary  OverlayBox withcolor red ;
>     \stopMPcode
>   \else\ifnum\realpageno=\MPp{Background:e:\CurrentBackground}
>     \startMPcode
>     draw bottomboundary OverlayBox withcolor red ;
>     draw leftboundary   OverlayBox withcolor red ;
>     draw rightboundary  OverlayBox withcolor red ;
>     \stopMPcode
>   \else
>     \startMPcode
>     draw leftboundary   OverlayBox withcolor red ;
>     draw rightboundary  OverlayBox withcolor red ;
>     \stopMPcode
>   \fi\fi\fi}
> 
> \defineoverlay[DrawBackground][\DrawBackground]
> 
> \starttext
> 
> \setupbackground[background=DrawBackground]
> 
> \input knuth
> 
> \StartBackground
> \dorecurse{12}{\input knuth\par}
> \StopBackground
> 
> \input knuth
> 
> \StartBackground
> \input knuth\par
> \StopBackground
> 
> \input knuth
> 
> \stoptext
> 
> Wolfgang
> 
> ___________________________________________________________________________________
> 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
> ___________________________________________________________________________________


___________________________________________________________________________________
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
___________________________________________________________________________________


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: background over two page
  2010-10-18 15:22           ` Wolfgang Schuster
  2010-10-18 20:20             ` Otared Kavian
@ 2011-08-03 15:08             ` Aditya Mahajan
  1 sibling, 0 replies; 9+ messages in thread
From: Aditya Mahajan @ 2011-08-03 15:08 UTC (permalink / raw)
  To: mailing list for ConTeXt users

[-- Attachment #1: Type: TEXT/PLAIN, Size: 3067 bytes --]

Reviving an old thread because I found a really simple solution. Hopefully 
this will also be useful to someone else.

On Mon, 18 Oct 2010, Wolfgang Schuster wrote:

>
> Am 18.10.2010 um 14:18 schrieb Otared Kavian:
>
>> Your solution works as intended when the framed, highlighted text with background spans over two pages (though it doesn't when it spans over three pages or more, but this is not a real issue, since it is a bad idea to have such long highlighted texts…).
>
>
> I guess this is also possible with textbackground:
>
> \newcounter\CurrentBackground
>
> \def\StartBackground
>  {\doglobal\increment\CurrentBackground
>   \setposition{Background:b:\CurrentBackground}%
>   \startbackground}
>
> \def\StopBackground
>  {\stopbackground
>   \setposition{Background:e:\CurrentBackground}}
>
> \def\DrawBackground
>  {\ifnum\MPp{Background:b:\CurrentBackground}=\MPp{Background:e:\CurrentBackground}
>     \startMPcode
>     draw topboundary    OverlayBox withcolor red ;
>     draw bottomboundary OverlayBox withcolor red ;
>     draw leftboundary   OverlayBox withcolor red ;
>     draw rightboundary  OverlayBox withcolor red ;
>     \stopMPcode
>   \else\ifnum\realpageno=\MPp{Background:b:\CurrentBackground}
>     \startMPcode
>     draw topboundary    OverlayBox withcolor red ;
>     draw leftboundary   OverlayBox withcolor red ;
>     draw rightboundary  OverlayBox withcolor red ;
>     \stopMPcode
>   \else\ifnum\realpageno=\MPp{Background:e:\CurrentBackground}
>     \startMPcode
>     draw bottomboundary OverlayBox withcolor red ;
>     draw leftboundary   OverlayBox withcolor red ;
>     draw rightboundary  OverlayBox withcolor red ;
>     \stopMPcode
>   \else
>     \startMPcode
>     draw leftboundary   OverlayBox withcolor red ;
>     draw rightboundary  OverlayBox withcolor red ;
>     \stopMPcode
>   \fi\fi\fi}
>
> \defineoverlay[DrawBackground][\DrawBackground]
>
> \setupbackground[background=DrawBackground]

A much simpler solution using textbackgrounds:

\startuseMPgraphic{splitframe}
   for i=1 upto nofmultipars :
     if one_piece_multi_par :
         draw multipars[i] ;
     elseif multilocs[i]=1 :
         draw topboundary   multipars[i] ;
         draw leftboundary  multipars[i] ;
         draw rightboundary multipars[i] ;
     elseif multilocs[i]=2 :
         draw leftboundary  multipars[i] ;
         draw rightboundary multipars[i] ;
     elseif multilocs[i]=3 :
         draw leftboundary   multipars[i] ;
         draw rightboundary  multipars[i] ;
         draw bottomboundary multipars[i];
     fi ;
   endfor ;
\stopuseMPgraphic

   \definetextbackground
     [splitframe]
     [state=start,
      mp=splitframe,
      location=paragraph]

\starttext

\startsplitframe
   \input knuth \endgraf
\stopsplitframe

\blank[big]

\startsplitframe
   \dorecurse{4}{\input knuth \endgraf}
\stopsplitframe

\blank[big]

\startsplitframe
   \dorecurse{10}{\input knuth \endgraf}
\stopsplitframe
\stoptext

Aditya

[-- Attachment #2: Type: text/plain, Size: 485 bytes --]

___________________________________________________________________________________
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
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2011-08-03 15:08 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-10-14  9:05 background over two page Emanuele Sacco
2010-10-14  9:37 ` luigi scarso
2010-10-16 15:30   ` Emanuele Sacco
2010-10-18  7:32     ` Otared Kavian
2010-10-18  7:43       ` luigi scarso
2010-10-18 12:18         ` Otared Kavian
2010-10-18 15:22           ` Wolfgang Schuster
2010-10-18 20:20             ` Otared Kavian
2011-08-03 15:08             ` Aditya Mahajan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).