ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* problem with layers and line spacing
@ 2009-08-10 21:09 Brian R. Landy
  2009-08-11 22:11 ` Hans Hagen
  2009-08-12  4:33 ` Wolfgang Schuster
  0 siblings, 2 replies; 7+ messages in thread
From: Brian R. Landy @ 2009-08-10 21:09 UTC (permalink / raw)
  To: ntg-context

Hi, I am attempting to do some work with layers that can repeat (and  
update) using \startsetups & \stopsetups.  However I find that the  
line spacing in a \framed in the layers is not alterable and instead  
tracks the font size on the page.  I'm attaching a simple example (it  
shows the same issue under MKII and MKIV, although the \vbox{} example  
does not work under MKII).

If you remove the \startsetups and \stopsetups the line spacing works  
like it should.  While they are used, the line spacing in the layer's  
\framed tracks the setting in \switchtobodyfont[12pt].  It does not  
track to either 6pt or 8pt.  And I can't find a way to reset the  
spacing (I tried adding in a \setupinterlinespace[reset]).

Am I doing something wrong?  I've tried with MKIV 2009.06.03 and  
2009.08.07, and MKII at contextgarden.

Thanks!
Brian

\setupbodyfont[8pt]%
\starttext
\definelayer[RCheaderleft][preset=lefttop,width=\paperwidth,  
height=\paperheight]%
\definelayer[RCheaderright][preset=lefttop,width=\paperwidth,  
height=\paperheight]%
\startsetups[RClayers]%
\setlayer[RCheaderleft][hoffset=\backspace,voffset=\topspace]{\vbox{Line 1\\  
Line 2}}%
\setlayer[RCheaderright][hoffset=\backspace,voffset=\topspace]    
{\switchtobodyfont[6pt]\framed[align={middle,flushright},width=broad]{Line 1\\  
Line 2}}%
\stopsetups
\setupbackgrounds[page][setups=RClayers,background={RCheaderleft,RCheaderright}]%
\switchtobodyfont[12pt]
\dorecurse{250}{test\par}
\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  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


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

* Re: problem with layers and line spacing
  2009-08-10 21:09 problem with layers and line spacing Brian R. Landy
@ 2009-08-11 22:11 ` Hans Hagen
  2009-08-12  4:33 ` Wolfgang Schuster
  1 sibling, 0 replies; 7+ messages in thread
From: Hans Hagen @ 2009-08-11 22:11 UTC (permalink / raw)
  To: mailing list for ConTeXt users

Brian R. Landy wrote:
> Hi, I am attempting to do some work with layers that can repeat (and 
> update) using \startsetups & \stopsetups.  However I find that the line 
> spacing in a \framed in the layers is not alterable and instead tracks 
> the font size on the page.  I'm attaching a simple example (it shows the 
> same issue under MKII and MKIV, although the \vbox{} example does not 
> work under MKII).
> 
> If you remove the \startsetups and \stopsetups the line spacing works 
> like it should.  While they are used, the line spacing in the layer's 
> \framed tracks the setting in \switchtobodyfont[12pt].  It does not 
> track to either 6pt or 8pt.  And I can't find a way to reset the spacing 
> (I tried adding in a \setupinterlinespace[reset]).
> 
> Am I doing something wrong?  I've tried with MKIV 2009.06.03 and 
> 2009.08.07, and MKII at contextgarden.
> 
> Thanks!
> Brian
> 
> \setupbodyfont[8pt]%
> \starttext
> \definelayer[RCheaderleft][preset=lefttop,width=\paperwidth, 
> height=\paperheight]%
> \definelayer[RCheaderright][preset=lefttop,width=\paperwidth, 
> height=\paperheight]%
> \startsetups[RClayers]%
> \setlayer[RCheaderleft][hoffset=\backspace,voffset=\topspace]{\vbox{Line 
> 1\\ Line 2}}%
> \setlayer[RCheaderright][hoffset=\backspace,voffset=\topspace]   
> {\switchtobodyfont[6pt]\framed[align={middle,flushright},width=broad]{Line 
> 1\\ Line 2}}%
> \stopsetups
> \setupbackgrounds[page][setups=RClayers,background={RCheaderleft,RCheaderright}]% 
> 
> \switchtobodyfont[12pt]
> \dorecurse{250}{test\par}
> \stoptext

there is a difference between:

\setupbodyfont     : global usage, document wide
\switchtobodyfont  : local usage, does not affect the header, footer etc

so, when the backgrounds are constructed, the 8pt is in charge

Hans


-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
      tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
                                              | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
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  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


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

* Re: problem with layers and line spacing
  2009-08-10 21:09 problem with layers and line spacing Brian R. Landy
  2009-08-11 22:11 ` Hans Hagen
@ 2009-08-12  4:33 ` Wolfgang Schuster
  1 sibling, 0 replies; 7+ messages in thread
From: Wolfgang Schuster @ 2009-08-12  4:33 UTC (permalink / raw)
  To: mailing list for ConTeXt users


Am 10.08.2009 um 23:09 schrieb Brian R. Landy:

> Hi, I am attempting to do some work with layers that can repeat (and  
> update) using \startsetups & \stopsetups.  However I find that the  
> line spacing in a \framed in the layers is not alterable and instead  
> tracks the font size on the page.  I'm attaching a simple example  
> (it shows the same issue under MKII and MKIV, although the \vbox{}  
> example does not work under MKII).
>
> If you remove the \startsetups and \stopsetups the line spacing  
> works like it should.  While they are used, the line spacing in the  
> layer's \framed tracks the setting in \switchtobodyfont[12pt].  It  
> does not track to either 6pt or 8pt.  And I can't find a way to  
> reset the spacing (I tried adding in a \setupinterlinespace[reset]).

\startsetups RCheaderleft

       %\switchtobodyfont[8pt]

\stopsetups

\startsetups RCheaderright

       \switchtobodyfont[6pt]

\stopsetups

\definelayer[RCheaderleft] [width=\paperwidth,height=\paperheight]
\definelayer[RCheaderright][width=\paperwidth,height=\paperheight]

\startsetups RClayers

     \setlayerframed
         [RCheaderleft]
         [hoffset=\backspace,
          voffset=\toppace]
         [frame=off,
          setups=RCheaderleft,
          align=right,
          width=fit]
         {Line 1\\Line 2}

     \setlayerframed
         [RCheaderright]
         [hoffset=\backspace,
          voffset=\toppace]
         [frame=off,
          setups=RCheaderright,
          align={middle,flushright},
          width=broad]
         {Line 1\\Line 2}

\stopsetups

\setupbackgrounds[page] 
[setups=RClayers,background={RCheaderleft,RCheaderright}]

\starttext
\dorecurse{250}{test\par}
\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  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


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

* Re: problem with layers and line spacing
  2009-08-12 18:50   ` Brian R. Landy
@ 2009-08-12 19:19     ` Hans Hagen
  0 siblings, 0 replies; 7+ messages in thread
From: Hans Hagen @ 2009-08-12 19:19 UTC (permalink / raw)
  To: mailing list for ConTeXt users

Brian R. Landy wrote:

> One more interesting point, in case this helps anyone out, is I find 
> that the behavior also changes if \framed has an offset vs. 
> offset=overlay or offset=none.  To get the proper line spacing when 
> there is an offset you need to \switchtobodyfont both inside and before 
> \framed.  With offset=overlay or offset=none, it is only necessary to 
> \switchtobodyfont inside \framed.

spacing inside framed is also determined by the strut (use \showstruts 
to see what happens) and when you use the foregroundstyle or setup keys 
the strut will adapt itself to the bodyfont, contrary to when you pass 
it as content (it then depends on things like grouping and so)

so: whenever you want the spacing in a framed to adapt to the font, use 
the foregroundstyle key

-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
      tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
                                              | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
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  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


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

* Re: problem with layers and line spacing
  2009-08-12  8:23 ` Hans Hagen
@ 2009-08-12 18:50   ` Brian R. Landy
  2009-08-12 19:19     ` Hans Hagen
  0 siblings, 1 reply; 7+ messages in thread
From: Brian R. Landy @ 2009-08-12 18:50 UTC (permalink / raw)
  To: mailing list for ConTeXt users

Aha.  When I'm not using \startsetup...\stopsetups things are more  
forgiving; once those are in place things became a little more strict  
in two regards --

- The \switchtobodyfont (or, more technically accurate, the  
\setupinterlinespace) must be inside of the \framed.  I had tried it  
both ways and had never seen the difference because of...
- Not terminating the final line with \par.  If my case had required  
three lines I would have seen the issue, because the first two lines  
would have had the proper spacing under one of my tests..

Interestingly if I nest more \frameds, each one needs it's own  
\setupinterlinespace.

One more interesting point, in case this helps anyone out, is I find  
that the behavior also changes if \framed has an offset vs.  
offset=overlay or offset=none.  To get the proper line spacing when  
there is an offset you need to \switchtobodyfont both inside and  
before \framed.  With offset=overlay or offset=none, it is only  
necessary to \switchtobodyfont inside \framed.

I found that using style={\switchtobodyfont} was ignored in this case,  
but Wolfgang's suggestion (in another email) of creating a separate  
\startsetups/\stopsetups block and passing it via setups= to \framed  
worked perfectly.

Hans, Wolfgang -- thanks for your help!

Brian

Quoting Hans Hagen <pragma@wxs.nl>:

> Brian R. Landy wrote:
>> Understood, but actually it is obeying the 12pt switchtobodyfont  
>> for the interline spacing in the backgrounds. It is not using  
>> either the layer's switchtobodyfont, which I think should be  
>> correct behavior, nor is it obeying the setupbodyfont. Note that  
>> the font size is correct, it is the interline spacing that is  
>> incorrect.
>
> sure, it depends a bit how it's set up ... \setlayer is kind of  
> immediate (so there the current settinsg apply) while the flushing  
> happens under global bodyfont control; if one uses setups and fills  
> the layer delayed (as part of setupheadertexts) it's delayed as  
> setup*texts is delayed
>
> keep in mind that tex only sets interlinespace when \par is issued so
>
> { [set spacing] [text] }
> { [set spacing] [text] \par }
>
> are different things
>
> btw, often the easiest way to set a bodyfont in for instance layers is:
>
> \setlayerframed[...][...][style={\switchtobodyfont}]
>
> turning the frame on then also helps tracking down problems
>
> concerning your problem, experiment a bit with adding \par and so
>
> otherwise add some \setupinterlinespace (no argument)
>
>
>
> -----------------------------------------------------------------
>                                           Hans Hagen | PRAGMA ADE
>               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
>      tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
>                                              | www.pragma-pod.nl
> -----------------------------------------------------------------
> ___________________________________________________________________________________
> 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  : https://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  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


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

* Re: problem with layers and line spacing
  2009-08-12  2:09 Brian R. Landy
@ 2009-08-12  8:23 ` Hans Hagen
  2009-08-12 18:50   ` Brian R. Landy
  0 siblings, 1 reply; 7+ messages in thread
From: Hans Hagen @ 2009-08-12  8:23 UTC (permalink / raw)
  To: mailing list for ConTeXt users

Brian R. Landy wrote:
> Understood, but actually it is obeying the 12pt switchtobodyfont for the 
> interline spacing in the backgrounds. It is not using either the layer's 
> switchtobodyfont, which I think should be correct behavior, nor is it 
> obeying the setupbodyfont. Note that the font size is correct, it is the 
> interline spacing that is incorrect.

sure, it depends a bit how it's set up ... \setlayer is kind of 
immediate (so there the current settinsg apply) while the flushing 
happens under global bodyfont control; if one uses setups and fills the 
layer delayed (as part of setupheadertexts) it's delayed as setup*texts 
is delayed

keep in mind that tex only sets interlinespace when \par is issued so

{ [set spacing] [text] }
{ [set spacing] [text] \par }

are different things

btw, often the easiest way to set a bodyfont in for instance layers is:

\setlayerframed[...][...][style={\switchtobodyfont}]

turning the frame on then also helps tracking down problems

concerning your problem, experiment a bit with adding \par and so

otherwise add some \setupinterlinespace (no argument)



-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
      tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
                                              | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
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  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


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

* Re: problem with layers and line spacing
@ 2009-08-12  2:09 Brian R. Landy
  2009-08-12  8:23 ` Hans Hagen
  0 siblings, 1 reply; 7+ messages in thread
From: Brian R. Landy @ 2009-08-12  2:09 UTC (permalink / raw)
  To: mailing list for ConTeXt users

Understood, but actually it is obeying the 12pt switchtobodyfont for  
the interline spacing in the backgrounds. It is not using either the  
layer's switchtobodyfont, which I think should be correct behavior,  
nor is it obeying the setupbodyfont. Note that the font size is  
correct, it is the interline spacing that is incorrect.

Thanks,
Brian

On Aug 11, 2009, at 6:11 PM, Hans Hagen <pragma@wxs.nl> wrote:

> Brian R. Landy wrote:
>> Hi, I am attempting to do some work with layers that can repeat  
>> (and update) using \startsetups & \stopsetups.  However I find that  
>> the line spacing in a \framed in the layers is not alterable and  
>> instead tracks the font size on the page.  I'm attaching a simple  
>> example (it shows the same issue under MKII and MKIV, although the  
>> \vbox{} example does not work under MKII).
>> If you remove the \startsetups and \stopsetups the line spacing  
>> works like it should.  While they are used, the line spacing in the  
>> layer's \framed tracks the setting in \switchtobodyfont[12pt].  It  
>> does not track to either 6pt or 8pt.  And I can't find a way to  
>> reset the spacing (I tried adding in a \setupinterlinespace[reset]).
>> Am I doing something wrong?  I've tried with MKIV 2009.06.03 and  
>> 2009.08.07, and MKII at contextgarden.
>> Thanks!
>> Brian
>> \setupbodyfont[8pt]%
>> \starttext
>> \definelayer[RCheaderleft][preset=lefttop,width=\paperwidth, height= 
>> \paperheight]%
>> \definelayer[RCheaderright][preset=lefttop,width=\paperwidth,  
>> height=\paperheight]%
>> \startsetups[RClayers]%
>> \setlayer[RCheaderleft][hoffset=\backspace,voffset=\topspace]{\vbox 
>> {Line 1\\ Line 2}}%
>> \setlayer[RCheaderright][hoffset=\backspace,voffset=\topspace]    
>> {\switchtobodyfont[6pt]\framed[align= 
>> {middle,flushright},width=broad]{Line 1\\ Line 2}}%
>> \stopsetups
>> \setupbackgrounds[page][setups=RClayers,background= 
>> {RCheaderleft,RCheaderright}]% \switchtobodyfont[12pt]
>> \dorecurse{250}{test\par}
>> \stoptext
>
> there is a difference between:
>
> \setupbodyfont     : global usage, document wide
> \switchtobodyfont  : local usage, does not affect the header, footer  
> etc
>
> so, when the backgrounds are constructed, the 8pt is in charge
>
> Hans
>
>
> -----------------------------------------------------------------
>                                         Hans Hagen | PRAGMA ADE
>             Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
>    tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
>                                            | www.pragma-pod.nl
> -----------------------------------------------------------------
> ___________________________________________________________________________________
 


> 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  : https://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  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


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

end of thread, other threads:[~2009-08-12 19:19 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-08-10 21:09 problem with layers and line spacing Brian R. Landy
2009-08-11 22:11 ` Hans Hagen
2009-08-12  4:33 ` Wolfgang Schuster
2009-08-12  2:09 Brian R. Landy
2009-08-12  8:23 ` Hans Hagen
2009-08-12 18:50   ` Brian R. Landy
2009-08-12 19:19     ` Hans Hagen

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).