It seems to me that when the penalties for widows and orphans (clubs) are set to zero, then raggedbottom and \flushbottom have the same effect. MWE illustrating this point, where you can change the initial \vspace* to create widows and orphans:

\widowpenalty 0
\clubpenalty 0 % orphans
\vspace*{8\baselineskip} % tweak the number, try 8 and 10

In my application, I do not care about widows and orphans. I simply re-write anything that doesn't look good enough (and, in many cases, widows and orphans are tolerated). I do care about having the same number of lines per page.

My layout is always double-sided, always single-column facing pages. It does not use floats, equation environments, tables, or the like. Just text, with the occasional image on a display page.

I do use grid typesetting, which means that I do not have much by way of flexible "glue." Even when I precisely set \textheight in relation to \baselineskip, if I use \flushbottom there are often warnings about underfull vboxes. But if I set \raggedbottom the warnings disappear (as expected).

So my question is, might there be a trap, unknown to me? Seems that the combination of \raggedbottom with zero penalties for widows and orphans (clubs) is just what I need, and I have not yet seen a problem with lengthy text.

Existing questions on this subject are usually about avoiding widows and orphans. That's not the issue here.

  • raggedbottom and flushbottom do not have the same effect and setting the penalties to zero encourages the production of widows and orphans, is that what you want? – David Carlisle Dec 15 '17 at 7:45
  • what do you mean by set precisely in relation baselineskip, do you mean \topskip + n \baselineskip ? If you do that and only have text you will get no warnings. – David Carlisle Dec 15 '17 at 7:48

Setting the penalties to zero encourages the production of widow and orphan lines, but have very little effect on \raggedbottom or \flushbottom.

The two styles have the same effect on your sample page as the only stretch space is plus 1pt in the instances of \parskip so typically at most 4pt per page so (a) there is not enough stretch to account for a change on one line of text and (b) as textheight is set correctly, in an example such as this with full text, an exact number of lines fits and no stretching is required. So as \flushbottom never needs to stretch any space naturally it is the same as \raggedbottom (for any setting of the penalties less than 10000)

  • I should have note that in my own code (not the MWE) I set \parskip to 0, and that causes issues with underfull vbox, as expected. Oddly, setting it to something such as 0.1pt does not help. But that's my own code, so I'll deal with it. The information you provided answers my question. – user139954 Dec 15 '17 at 14:30
  • 1
    @RobtAll setting it to .1pt would always force you off the grid so you definitely don't want that. setting it to opt should not cause issues if you have the right text size – David Carlisle Dec 15 '17 at 17:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy