![](https://secure.gravatar.com/avatar/ed6f43113e3f1cee031ebd13654fc703.jpg?s=120&d=mm&r=g)
Hi, This midweek upload has something new. There has been some discussion about footnotes and one thing I noticed when playing with some new possibilities is that the stretch in topskip (we use a default amount that long ago was derived from plain tex and is relative to the body font size) influences the pagebreaks in relation to inserts (footnotes) in a more significant way than one would expect. I also noticed that this stretch component is one of the reasons why sometimes a side float shape will carry over to a next page in spite of there being room. This relates to \brokenpenalty. At the end of this mail are some tests that demonstrate this. As a consequence we now have a "ntop" parameter as well as a shaping related penalty primitives (parameters): \shapingpenaltiesmode"FF % set all (future) bits (currently 4) \shapingpenalty\plushundred % don't go too high which is currently not enabled by default but might be in upcoming versions; this also depends on user feedback. It's a non intrusive extension the LuaMetaTeX engine. I have this setting in my local preferences file. Hans % test code (for Massimiliano and Hraban to play with) \starttext \showframe % this is the current default behaviour; we have a topskip with % quite some stretch and that stretch is taken into account % when tex calculates the badness; watch the next page \dorecurse{4}{ \bgroup \shapingpenaltiesmode\zerocount \showmakeup[penalty] \placefigure[left]{}{} \input tufte \par \egroup } \page EMPTY \page % the ntop is new and when >= 0 it is a multiplier for the number % of lines stretch, here we have one line; watch the next page \dorecurse{4}{ \bgroup \shapingpenaltiesmode\zerocount \setupinterlinespace[ntop=1] \showmakeup[penalty] \placefigure[left]{}{} \input tufte \par \egroup } \page EMPTY \page % these shaping parameters will discourage a linebreak within a % shape; the placement macro checked available space but that % doesn't mean that there can be no linebreak \dorecurse{4}{ \bgroup \showmakeup[penalty] \shapingpenaltiesmode"FF\relax \shapingpenalty\plushundred \placefigure[left]{}{} \input tufte \par \egroup } \page EMPTY \page % the next pages show the effect of changed topskip on page breaks % with footnotes \dorecurse{10}{ [#1] \input tufte \footnote{\input{tufte}} \par } \page EMPTY \page \setupinterlinespace[ntop=2] \dorecurse{10}{ [#1] \input tufte \footnote{\input{tufte}} \par } \page EMPTY \page \setupinterlinespace[ntop=0] \dorecurse{10}{ [#1] \input tufte \footnote{\input{tufte}} \par } \stoptext ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------