2

Im trying to format a twocolumn article document with some twocolumn spanning graphics, small tables etc. I used \raggedbottomfor evading huge whitespace/glue in my text, but sometimes the space this adds is too much and the bottom lines of both columns are not aligned. Now I tried playing with paragraph lengths and parskip .

Setting parskip to \setlength{\parskip}{0pt plus 0.1in minus 0.01in} seems to give good results, but in some place the space between paragraphs is still more than I want it too and the new parskip length should allow (i use font size 9, and sometimes space between paragraphs is 0.5in ...).

I changed it to \setlength{\parskip}{0pt plus 0.005in minus 0.01in} and get exactly the same lengths as before. Also, removing the plus 0.1in from the code makes the text behave like I was using \raggedbottom.

So my question is, how does parskip behave, and how can I force it to use the values Im trying to implement?

2
  • Don't you have underfull \vbox warnings? If TeX doesn't have enough stretchability to fulfill the constraints, it will overstretch what it has, and warn. Without an MWE, it will be difficult to provide more concrete answers.
    – frougon
    Mar 5, 2020 at 12:08
  • 1
    as frougon says you will almost certainly be getting warnings that the space is over-stretched, but also allowing parskip to be negative seems a bad idea, it means that if the page is getting full you allow the first line of one paragraph to overprint the previous paragraph, with no warning. Mar 5, 2020 at 12:56

1 Answer 1

2

Consider

\documentclass{article}

\addtolength\textheight{-20.7\baselineskip}

%\setlength\parskip{0pt plus 1pt}
\setlength\parskip{0pt}
\flushbottom
\begin{document}

aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa\\aaaa


bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb\\bbb

\pagebreak
ccc

\end{document}

On the first page there the sum of the lines in the first and second paragraph do not add up to \textheight, and \flushbottom means there is no stretch at the end of the page and there is no stretchability in \parskip so no glue stretches at all so the page ends short (as if \raggedbottom had been in effect) but this is infinitely bad, and tex warns:

Underfull \vbox (badness 10000) has occurred while \output is active [1]

If however you give a little bit of stretchability to \parskip

\setlength\parskip{0pt plus 1pt}

Then \parskip is stretched to take up all the available space so that \flushbottom is achieved, even if \parskip is over-stretched. With 0pt plus 1pt as shown here you get

Underfull \vbox (badness 4660) has occurred while \output is active [1]

If the stretchability is less, the visual output is the same but it will be infinitely bad. 0pt plus 1sp gives

Underfull \vbox (badness 10000) has occurred while \output is active [1]

Conversely if you specify that parskip may stretch enough then it is not considered bad at all. 0pt plus 5pt produces the same visual output but no warnings about underfull boxes.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .