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?

  • 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? – David Carlisle Nov 5 '15 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 '15 at 10:25
  • ah that's what you meant by reporoduce I didn't catch that:-) – David Carlisle Nov 5 '15 at 10:38
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}
  • Or in this case, just omit \columnbreak{} as well, producing the same output. – David Carlisle Nov 5 '15 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 '15 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 '15 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. – David Carlisle Nov 5 '15 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{} – David Carlisle Nov 5 '15 at 10:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.