4

I have 2 columns of text, with most text in regular size, and few paragraphs in smaller size. I'd like to have the line spacing (roughly) uniform - that every line in the left size will match a line at the right size, even if they're at different sizes.

See this screenshot: screenshot

The first 4 red markers match lines of same text size, and the line spacing is such that the lines are proportional.

However, with next red markers, we see the lines start to get far away.

It can be improved by adding \linespread{1.2} (not exact value) before the paragraph, and returning to regular linespread after - but I don't like this solution. There must be a better way...

Here's my code:

\documentclass{book}

\usepackage{parskip}
\usepackage{multicol}

\newcommand{\bigA}[1]{\textbf{\large{#1}}}
\newcommand{\regularA}[1]{\normalsize{#1}}
\newcommand{\smallA}[1]{\small{#1}}

\newcommand{\bigB}[1]{\textbf{\normalsize{#1}}}
\newcommand{\regularB}[1]{\small{#1}}
\newcommand{\smallB}[1]{\footnotesize{#1}}

\begin{document}
\begin{multicols}{2}

% base paragraph, almost all others are copy-pase of this
\bigA{Lorem} \regularA{ipsum dolor sit amet, consectetur adipiscing elit. Mauris varius nisl sed enim consectetur, eu tempor libero cursus. Nulla at enim nunc. Duis vitae nibh erat. Nulla facilisi. Nunc eget ornare velit. Ut porta sed libero non tincidunt. Mauris dapibus pulvinar ornare.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris varius nisl sed enim consectetur, eu tempor libero cursus. Nulla at enim nunc. Duis vitae nibh erat. Nulla facilisi. Nunc eget ornare velit. Ut porta sed libero non tincidunt.} \smallA{Mauris dapibus pulvinar ornare.}

\bigA{Lorem} \regularA{ipsum dolor sit amet, consectetur adipiscing elit. Mauris varius nisl sed enim consectetur, eu tempor libero cursus. Nulla at enim nunc. Duis vitae nibh erat. Nulla facilisi. Nunc eget ornare velit. Ut porta sed libero non tincidunt. Mauris dapibus pulvinar ornare.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris varius nisl sed enim consectetur, eu tempor libero cursus. Nulla at enim nunc. Duis vitae nibh erat. Nulla facilisi. Nunc eget ornare velit. Ut porta sed libero non tincidunt.} \smallA{Mauris dapibus pulvinar ornare.}

% Here's the smaller paragraph
\bigB{Lorem} \regularB{ipsum dolor sit amet, consectetur adipiscing elit. Mauris varius nisl sed enim consectetur, eu tempor libero cursus. Nulla at enim nunc. Duis vitae nibh erat. Nulla facilisi. Nunc eget ornare velit. Ut porta sed libero non tincidunt. Mauris dapibus pulvinar ornare.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris varius nisl sed enim consectetur, eu tempor libero cursus. Nulla at enim nunc. Duis vitae nibh erat. Nulla facilisi. Nunc eget ornare velit. Ut porta sed libero non tincidunt.} \smallB{Mauris dapibus pulvinar ornare.}

% from now on, back to `base'
\bigA{Lorem} \regularA{ipsum dolor sit amet, consectetur adipiscing elit. Mauris varius nisl sed enim consectetur, eu tempor libero cursus. Nulla at enim nunc. Duis vitae nibh erat. Nulla facilisi. Nunc eget ornare velit. Ut porta sed libero non tincidunt. Mauris dapibus pulvinar ornare.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris varius nisl sed enim consectetur, eu tempor libero cursus. Nulla at enim nunc. Duis vitae nibh erat. Nulla facilisi. Nunc eget ornare velit. Ut porta sed libero non tincidunt.} \smallA{Mauris dapibus pulvinar ornare.}

\bigA{Lorem} \regularA{ipsum dolor sit amet, consectetur adipiscing elit. Mauris varius nisl sed enim consectetur, eu tempor libero cursus. Nulla at enim nunc. Duis vitae nibh erat. Nulla facilisi. Nunc eget ornare velit. Ut porta sed libero non tincidunt. Mauris dapibus pulvinar ornare.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris varius nisl sed enim consectetur, eu tempor libero cursus. Nulla at enim nunc. Duis vitae nibh erat. Nulla facilisi. Nunc eget ornare velit. Ut porta sed libero non tincidunt.} \smallA{Mauris dapibus pulvinar ornare.}

\bigA{Lorem} \regularA{ipsum dolor sit amet, consectetur adipiscing elit. Mauris varius nisl sed enim consectetur, eu tempor libero cursus. Nulla at enim nunc. Duis vitae nibh erat. Nulla facilisi. Nunc eget ornare velit. Ut porta sed libero non tincidunt. Mauris dapibus pulvinar ornare.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris varius nisl sed enim consectetur, eu tempor libero cursus. Nulla at enim nunc. Duis vitae nibh erat. Nulla facilisi. Nunc eget ornare velit. Ut porta sed libero non tincidunt.} \smallA{Mauris dapibus pulvinar ornare.}

\bigA{Lorem} \regularA{ipsum dolor sit amet, consectetur adipiscing elit. Mauris varius nisl sed enim consectetur, eu tempor libero cursus. Nulla at enim nunc. Duis vitae nibh erat. Nulla facilisi. Nunc eget ornare velit. Ut porta sed libero non tincidunt. Mauris dapibus pulvinar ornare.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris varius nisl sed enim consectetur, eu tempor libero cursus. Nulla at enim nunc. Duis vitae nibh erat. Nulla facilisi. Nunc eget ornare velit. Ut porta sed libero non tincidunt.} \smallA{Mauris dapibus pulvinar ornare.}

\bigA{Lorem} \regularA{ipsum dolor sit amet, consectetur adipiscing elit. Mauris varius nisl sed enim consectetur, eu tempor libero cursus. Nulla at enim nunc. Duis vitae nibh erat. Nulla facilisi. Nunc eget ornare velit. Ut porta sed libero non tincidunt. Mauris dapibus pulvinar ornare.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris varius nisl sed enim consectetur, eu tempor libero cursus. Nulla at enim nunc. Duis vitae nibh erat. Nulla facilisi. Nunc eget ornare velit. Ut porta sed libero non tincidunt.} \smallA{Mauris dapibus pulvinar ornare.}

\bigA{Lorem} \regularA{ipsum dolor sit amet, consectetur adipiscing elit. Mauris varius nisl sed enim consectetur, eu tempor libero cursus. Nulla at enim nunc. Duis vitae nibh erat. Nulla facilisi. Nunc eget ornare velit. Ut porta sed libero non tincidunt. Mauris dapibus pulvinar ornare.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris varius nisl sed enim consectetur, eu tempor libero cursus. Nulla at enim nunc. Duis vitae nibh erat. Nulla facilisi. Nunc eget ornare velit. Ut porta sed libero non tincidunt.} \smallA{Mauris dapibus pulvinar ornare.}

\end{multicols}

\end{document}

EDIT

If I understand correctly, the line spacing is proportional to the text size, so a paragraph with smaller text size would get smaller line spacing. I want a paragraph with small text size to get bigger line spacing, so it would match up with the 'regular' paragraphs.

In other words, if a 'regular' paragraph (normal size) of n lines takes x cm, I would like also a 'small text size' paragraph of n lines to take x cm.

  • When you change font sizes, you typically also change line spacing. Please tell us what your preferred line spacing would look like? – Mico Apr 1 '16 at 6:46
  • @Mico, I've answered your question in my edit now – Zvika Apr 1 '16 at 7:23
  • Thanks. I've posted an answer that shows how to make the line spacing independent of the font size. – Mico Apr 1 '16 at 7:36
4

When one changes font sizes, one usually also changes the line spacing in order to achieve a roughly uniform "average greyness" of the text material. Since that's not what you want here, you need to provide custom versions of \large, \normalsize, \small, and \footnotesize which keep the line spacing constant. In the code below, macros named \mylarge, \mynormalsize, \mysmall, and \myfootnotesize are set up for this purpose. Their common property is the use of a baselineskip of 12pt; feel free to change this value to suit your purposes.

For good measure, you will probably also want to provide the instruction \raggedcolumns after \begin{multicols}{2}.

\documentclass{book}  
\usepackage{parskip,multicol}

\newcommand\mylarge{\fontsize{12}{12}\selectfont}
\newcommand\mynormalsize{\fontsize{10}{12}\selectfont}
\newcommand\mysmall{\fontsize{9}{12}\selectfont}
\newcommand\myfootnotesize{\fontsize{8}{12}\selectfont}

\newcommand{\bigA}[1]{\textbf{\mylarge #1}}
\newcommand{\regularA}[1]{\mynormalsize #1}
\newcommand{\smallA}[1]{\mysmall #1}

\newcommand{\bigB}[1]{\textbf{\mynormalsize #1}}
\newcommand{\regularB}[1]{\mysmall #1}
\newcommand{\smallB}[1]{\myfootnotesize #1}

\begin{document}
\begin{multicols}{2}
\raggedcolumns

% base paragraph, almost all others are copy-pase of this
\bigA{Lorem} \regularA{ipsum dolor sit amet, consectetur adipiscing elit. Mauris varius nisl sed enim consectetur, eu tempor libero cursus. Nulla at enim nunc. Duis vitae nibh erat. Nulla facilisi. Nunc eget ornare velit. Ut porta sed libero non tincidunt. Mauris dapibus pulvinar ornare.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris varius nisl sed enim consectetur, eu tempor libero cursus. Nulla at enim nunc. Duis vitae nibh erat. Nulla facilisi. Nunc eget ornare velit. Ut porta sed libero non tincidunt.} \smallA{Mauris dapibus pulvinar ornare.}

\bigA{Lorem} \regularA{ipsum dolor sit amet, consectetur adipiscing elit. Mauris varius nisl sed enim consectetur, eu tempor libero cursus. Nulla at enim nunc. Duis vitae nibh erat. Nulla facilisi. Nunc eget ornare velit. Ut porta sed libero non tincidunt. Mauris dapibus pulvinar ornare.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris varius nisl sed enim consectetur, eu tempor libero cursus. Nulla at enim nunc. Duis vitae nibh erat. Nulla facilisi. Nunc eget ornare velit. Ut porta sed libero non tincidunt.} \smallA{Mauris dapibus pulvinar ornare.}

% Here's the smaller paragraph
\bigB{Lorem} \regularB{ipsum dolor sit amet, consectetur adipiscing elit. Mauris varius nisl sed enim consectetur, eu tempor libero cursus. Nulla at enim nunc. Duis vitae nibh erat. Nulla facilisi. Nunc eget ornare velit. Ut porta sed libero non tincidunt. Mauris dapibus pulvinar ornare.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris varius nisl sed enim consectetur, eu tempor libero cursus. Nulla at enim nunc. Duis vitae nibh erat. Nulla facilisi. Nunc eget ornare velit. Ut porta sed libero non tincidunt.} \smallB{Mauris dapibus pulvinar ornare.}

% from now on, back to `base'
\bigA{Lorem} \regularA{ipsum dolor sit amet, consectetur adipiscing elit. Mauris varius nisl sed enim consectetur, eu tempor libero cursus. Nulla at enim nunc. Duis vitae nibh erat. Nulla facilisi. Nunc eget ornare velit. Ut porta sed libero non tincidunt. Mauris dapibus pulvinar ornare.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris varius nisl sed enim consectetur, eu tempor libero cursus. Nulla at enim nunc. Duis vitae nibh erat. Nulla facilisi. Nunc eget ornare velit. Ut porta sed libero non tincidunt.} \smallA{Mauris dapibus pulvinar ornare.}

\bigA{Lorem} \regularA{ipsum dolor sit amet, consectetur adipiscing elit. Mauris varius nisl sed enim consectetur, eu tempor libero cursus. Nulla at enim nunc. Duis vitae nibh erat. Nulla facilisi. Nunc eget ornare velit. Ut porta sed libero non tincidunt. Mauris dapibus pulvinar ornare.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris varius nisl sed enim consectetur, eu tempor libero cursus. Nulla at enim nunc. Duis vitae nibh erat. Nulla facilisi. Nunc eget ornare velit. Ut porta sed libero non tincidunt.} \smallA{Mauris dapibus pulvinar ornare.}

\bigA{Lorem} \regularA{ipsum dolor sit amet, consectetur adipiscing elit. Mauris varius nisl sed enim consectetur, eu tempor libero cursus. Nulla at enim nunc. Duis vitae nibh erat. Nulla facilisi. Nunc eget ornare velit. Ut porta sed libero non tincidunt. Mauris dapibus pulvinar ornare.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris varius nisl sed enim consectetur, eu tempor libero cursus. Nulla at enim nunc. Duis vitae nibh erat. Nulla facilisi. Nunc eget ornare velit. Ut porta sed libero non tincidunt.} \smallA{Mauris dapibus pulvinar ornare.}
\end{multicols}

\end{document} 
  • in case the larger \bigA glyph at the top of a page causes the baselines to start out uneven from the top, the approach in this answer Consolidating start of page might be helpful. – barbara beeton Apr 1 '16 at 16:31

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.