\flushbottom vs \raggedbottom
There isn't a universal right answer.
\raggedbottom
is of course an easier format to achieve as you lose the constraint on equalising page content.
If however you want \flushbottom
then you have to ensure that the page content fits in the specified size. For example if your content consists entirely of lines of text on a 15 pt baseline with no stretchy white space between lines or paragraphs, and your text body height is not a multiple of that \baselineskip
, then every page will be underfull as TeX cannot achieve the specified size so has to break a line short. The solution there is to adjust the \baselineskip
and/or the \textheight
to be compatible, or, if typesetting on a grid is not an absolute requirement, add some vertical stretch glue between lines (by giving \baselinestretch
a plus
component) or between paragraphs (by giving \parskip
a plus
component).
In the final editing stages using either you may want to adjust page size on a per-page (or per-spread) basis using \enlargethispage
.
See also
Do I have to care about bad boxes?
With this trick you'll get a \textheight
so that each page contains an integer number of lines (equal to what you'd get without the trick)
\documentclass[12pt]{book} % or 10pt or 11 pt
\usepackage{setspace}
\setstretch{1.15}
\setlength{\dimen0}{\textheight}
\addtolength{\dimen0}{-\topskip}
\divide\dimen0\baselineskip
\setlength{\textheight}{\number\dimen0 \baselineskip}
\addtolength{\textheight}{\topskip}
\usepackage{lipsum}
\begin{document}
\lipsum
\end{document}
Alternatively, you can load the geometry
package and use its option heightrounded
(but this would change also other page parameters).