TeX has the ‘galley’ (uninterrupted column of paragraphs and spacing) all prepared before it decides how it will chop it into pages. It always finishes a paragraph before it tests to see if everything in the galley adds up to make a page, and while it tries to make a reasonable guess about when to trigger the page-chopping, those guesses aren’t fully accurate: to get column balancing, footnotes, cross-references, figures and sidebars and consistent end-of pages, we often have to try shorter cut-lengths of galley. Thus a new page might have quite a pile of text, figures and footnotes waiting in it’s galley as it starts.
When a paragraph is started (the point in which you’d have to add extra space) the \pagegoal
and \pagetotal
are known, but really, they are only guesses, and the program doesn’t know e.g. what pictures might be added on top of the page, or if there will be any call to stretch anything that’s flexible.
Yes, it should be possible to make it close out the partial page, but probably not manually. There are also some side effects that might be a complete pain.
It has just occurred to me that one other option would be to use stretchable spacing, a bit like this:
Stretch to page height{
{figures}
Stretch to 35 normal lines{
{Intro paragraph (13.4 normal lines)}
{stretchy bit}
{main text (21 lines)}
}
{stretchy bit}
{footnotes}
}
(The new bit being the ‘Stretch to 35 lines’ for the middle section, and of course the ‘35 lines’ would need to be calculated based on what the un-stretched length of the text run is.)
@Martin_Hosken might want to comment about why this is a silly idea, though.