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 <[email protected]>:

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 : [email protected] / 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 : [email protected] / 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
___________________________________________________________________________________

Reply via email to