1

I use the multicol package with a simple \begin{multicols}{2} and \end{multicols}. Yet on the bottom of certain pages LuaLaTeX cannot balance out the vertical length of the columns, which looks quite ugly in my humble view. I use \setlength{\parskip}{3pt plus 2pt minus 2pt} to add some flexibility, but still no avail, and I do not get any warnings or bad boxes either. See a similar example below:

\documentclass[a4paper,12pt]{article}
\usepackage[british]{babel}
\usepackage[margin=2.5cm,showframe]{geometry}
\usepackage{multicol,lipsum}
\setlength{\parskip}{3pt plus 2pt minus 2pt}

\begin{document}
\begin{multicols}{2}
\lipsum[1]\lipsum[2]\lipsum[3]\lipsum[4]

\lipsum[5]\lipsum[6]\lipsum[7]
\end{multicols}
\end{document}

enter image description here

What preferences should I use to prevent such outcome?

4
  • 2
    Without data to test it on, we can only guess. I would worry more about the end of the right column than the left column. \usepackage{showframe} would help here. Commented Jul 31, 2023 at 12:44
  • Ah, left column it is. One thing you should know is that multicols puts both columns into one savebox and uses \vsplit to break it into two (or more) columns at the end of the page. Commented Jul 31, 2023 at 13:06
  • 4
    you have a parskip of 3pt so naturally after each paragraph lines in one column are 3pt shifted compared to the other column, so what you show seems quite expected, but as you have shown no code, impossible to really say more. Commented Jul 31, 2023 at 13:06
  • \raggedbottom in force perhaps? together with your parskip setting that may explains it, but without a real MWE nothing really to go on Commented Jul 31, 2023 at 19:57

1 Answer 1

2

enter image description here

There is no flexibility in the first column so no possibility to make the final line at the nominal \textheight position as \textheight is not \topskip plus a multiple of \baselineskip.

The geometry package has a heightrounded option to fix \textheight so a page full of pure paragraph lines does fit the page. so using

\usepackage[margin=2.5cm,showframe,heightrounded]{geometry}

produces the output above.

3
  • I've tried to figure out from the code how does it work, but I couldn't. Does it increase the top-, the bottomskip or the baselineskip? Commented Aug 1, 2023 at 9:03
  • @Kazibácsi it rounds \textheight so \textheight - \topskip is a multiple of \baselineskip Commented Aug 1, 2023 at 9:17
  • OK, so the extra textheight is not compensated at the bottom, and the page number is shifted downwards a bit. Commented Aug 1, 2023 at 12:02

You must log in to answer this question.

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