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