TeX memiliki ‘galley’ (kolom paragraf dan spasi yang tidak terputus) semua disiapkan sebelum memutuskan bagaimana akan memotongnya menjadi halaman. Itu selalu menyelesaikan paragraf sebelum menguji apakah semua di galley berjumlah menjadi halaman, dan sementara itu mencoba membuat tebakan yang masuk akal tentang kapan memicu pemotongan halaman, tebakan-tebakan itu tidak sepenuhnya akurat: untuk mendapatkan penyeimbangan kolom, catatan kaki, silang-rujukan, gambar dan sidebar dan akhir halaman yang konsisten, kita sering harus mencoba panjang potongan galley yang lebih pendek. Jadi halaman baru mungkin memiliki tumpukan teks, gambar dan catatan kaki yang cukup banyak menunggu di galley-nya saat dimulai.
Ketika paragraf dimulai (titik di mana Anda harus menambahkan spasi ekstra) \pagegoal dan \pagetotal diketahui, tetapi sebenarnya, itu hanya tebakan, dan program tidak tahu misalnya gambar apa yang mungkin ditambahkan di atas halaman, atau apakah akan ada panggilan untuk meregangkan sesuatu yang fleksibel.
Ya, seharusnya mungkin untuk membuatnya menutup halaman parsial, tetapi mungkin tidak secara manual. Ada juga beberapa efek samping yang mungkin menjadi masalah besar.
Baru saja terlintas di benak saya bahwa satu opsi lain adalah menggunakan spasi yang dapat diregangkan, sedikit seperti ini:
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}
}
(Bagian barunya adalah ‘Stretch to 35 lines’ untuk bagian tengah, dan tentu saja ‘35 lines’ perlu dihitung berdasarkan panjang teks yang tidak diregangkan.)
@Martin_Hosken mungkin ingin berkomentar tentang mengapa ini adalah ide yang konyol, meskipun.
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.
Diterjemahkan secara otomatis dari English