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