1

I'm trying to reproduce a justified multi-column document, and am therefore using manual line breaks throughout. However, this doesn't work for lines at the bottom of a column, because \linebreak inserts a blank line at the bottom of the column:

\documentclass[a5paper,10pt]{article}
\usepackage{multicol}
\begin{document}
\begin{multicols}{3}
Four score and seven years ago our fathers brought forth, upon this\linebreak\columnbreak

\noindent continent, a new nation, conceived in liberty, and dedicated to the proposition that ``all men are created equal.''
\end{multicols}
\end{document}

Output of the above example, showing an extra blank line at the bottom of the first column

Leaving the \linebreak off also doesn't work; while a bare \columnbreak doesn't insert the extra blank line, it fails to justify the broken line.

Output of above example, showing the last line of the first column unjustified

A crude workaround is to omit \linebreak and manually replace all spaces on the last line with {\hfill}. However, this is inconvenient and probably suppresses use of stretched inter-letter spacing for justification.

Note that while I am using the multicol package and breaking columns with \columnbreak, the same problem exists when using a regular twocolumn document and breaking columns with \pagebreak.

How can I make \linebreak suppress the blank line at the end of the column, or force \columnbreak/\pagebreak to justify the lines they break?

3
  • You should not have \linebreak at all, since you have followed it by a paragraph break, but since it logically isn't a paragraph break it would be more natural to have just \columnbreak But it is not at all clear why you are doing manual line and column breaking at all? Nov 5, 2015 at 9:35
  • As I said, I'm trying to reproduce an existing (paper) document, so I want all the line and column breaks to match.
    – Psychonaut
    Nov 5, 2015 at 10:25
  • ah that's what you meant by reporoduce I didn't catch that:-) Nov 5, 2015 at 10:38

1 Answer 1

1

You do not want a paragraph break at that point, certainly you never want \linebreak at the end of a paragraph, so:

enter image description here

\documentclass[a5paper,10pt]{article}
\usepackage{multicol}
\begin{document}
\begin{multicols}{3}
Four score and seven years ago our fathers brought forth, upon this\columnbreak\linebreak{}
continent, a new nation, conceived in liberty,
 and dedicated to the proposition that ``all men are created equal.''
\end{multicols}
\end{document}
7
  • Or in this case, just omit \columnbreak{} as well, producing the same output. Nov 5, 2015 at 9:41
  • I see! It had never occurred to me to add {} to the end of \columnbreak. Can you explain why it's necessary? (The reason I added the paragraph break to begin with was that using \columnbreak by itself didn't work at all.)
    – Psychonaut
    Nov 5, 2015 at 10:27
  • Also, I just tested this answer and while it seems to work in the MWE from my question, it doesn't work in my real-world example. The \columnbreak{} gets ignored, at least in some sense—rather than breaking the column where I put it, the column gets broken several words later. Do you know what might be causing this or do I need to revise my example?
    – Psychonaut
    Nov 5, 2015 at 10:34
  • @Psychonaut as always a space after a comandname doesn't produce a space token, it simply terminates the command, but you want a space token here. same as if you need to do \LaTeX{} if you want a space token. Nov 5, 2015 at 10:35
  • 1
    @Psychonaut \columnbreak in horizontal mode is like \pagebreak and does not affect the linebreaking at all- the line breaks where it breaks and then the column break is inserted after that line. If you also want to force linebreak then use \columnbreak\linebreak{} Nov 5, 2015 at 10:37

You must log in to answer this question.

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