12

I've googled, and I read a lot about how not having a pagebreak before a new chapter is bad style. I've read about how one could use sections instead. I've read about how changing whether a chapter begins on a new page or not within a document is even worse, from a style standpoint.

However, if I still have to do it somehow, typographic style be damned, and I have to do it in a twocolumn document...

Background: I am translating a set of gaming rulebooks into a single scrbook, with each original rulebook represented by a part in my scrbook. Layout of the rulebooks is relatively uniform, with fancy chapter headings beginning on a new page each.

The exception to this is the first rulebook / part, which has very short chapters, sometimes several on a single page, but following the same numbering scheme as the more elaborate chapters in the other rulebooks / parts.

I could typeset that first book seperately, using sections instead of chapters, and include the resulting PDF. That way, I would lose the common TOC / LOT / index, which would be unfortunate.

I could wing it by redefining header formats for the first part, to make sections "look" like chapters and subsections look like sections and subsubsections... and so on. Pretty heavy-handed.

Edit: The solution in Start new chapter on same page (using etoolbox to patch the clearpage / cleardoublepage out of the definition of \chapter) does not work for a twocolumn document, yielding "Float(s) lost" errors. (I hadn't mentioned the twocolumn detail before as I did not think it would make a difference.) User lockstep asked for a seperate question; instead, I vote for re-opening this (edited) one.


tl;dr:

Is there a way to tell LaTeX not to put a pagebreak for \chapter in a twocolumn document?

0

3 Answers 3

12

As switching between twocolumn and onecolumn causes a page break, one may use the multicol package and its multicols environment instead. (The environment's optional argument is used for introductory one-column material.) In the following example, I use the twocolumn class option to achieve smaller margins, then temporarily switch two \onecolumn at the start of the document. Page breaks before chapters are removed by disabling \clearpage inside a group.

Note: The vertical space before chapter 1 (typeset with multicols) is actually larger than the space before chapter 3 (typeset with \twocolumn). The larger space is caused by LaTeX bug 3126 (\twocolumn interfering with \topskip); for consistent spacing, use multicols environments for every chapter of your document. EDIT: Even better, use Frank Mittelbachs answer to Is it possible to define a `multicols{2}` preamble switch that works for \chapter?

\documentclass[twocolumn]{book}

\usepackage{multicol}
\setlength{\columnsep}{20pt}

\newcommand*{\sometext}{Hello, here is some text without a meaning. This
    text should show, how a printed text will look like at this place.
    If you read this text, you will get no information.}

\begin{document}

\onecolumn

\begingroup
\let\clearpage\relax

\begin{multicols}{2}[%
  \chapter{First (and some text to fill the line)}%
]

\sometext

\end{multicols}

\begin{multicols}{2}[%
  \chapter{Second (and some text to fill the line)}%
]

\sometext

\end{multicols}

\endgroup

\twocolumn

\chapter{Third (and some text to fill the line)}

\sometext

\chapter{Fourth (and some text to fill the line)}

\sometext

\end{document}

enter image description here

1
  • Sigh... Yes, this solves the immediate problem. And gives me the next one: multicols and tables... :-P Thanks, anyway.
    – DevSolar
    Nov 13, 2011 at 20:58
3

onecolumn inserts page break, redefine it!

\def\onecolumn{%
%  \clearpage
  \global\columnwidth\textwidth
  \global\hsize\columnwidth
  \global\linewidth\columnwidth
  \global\@twocolumnfalse
  \col@number \@ne
  \@floatplacement}
0

For those who only want the chapter without pagebreak. Simply add

\renewcommand{\cleardoublepage}{}
\renewcommand{\clearpage}{}

At the beginning of the \chapter{}

1
  • 1
    Part of lockstep's answer, but since he puts a \begingroup in front of his \let\clearpage\relax and an \endgroup behind what it is supposed to affect, his solution doesn't clear those commands for the remaining document -- only for where they are needed to be cleared.
    – DevSolar
    Mar 7, 2023 at 2:22

You must log in to answer this question.

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