5

When a colon is used to separate clauses in a sentence (rather than preceding a list), current typographic practice, and my preference, is to follow it with the same space as after a semicolon.

The LaTeX default \nonfrenchspacing violates that, making the space after a colon the same as after a period.

But \frenchspacing,while shrinking the space after a colon, unfortunately also shrinks the space after a period, which I do not want to do.

See this example:

\documentclass[12pt]{article}
\begin{document}

\nonfrenchspacing
\emph{nonfrenchspacing}
\smallskip

Spacing after; semicolon.

Spacing after: colon.

Spacing after. period

\bigskip

\frenchspacing
\emph{frenchspacing}
\smallskip

Spacing after; semicolon.

Spacing after: colon.

Spacing after. period

\end{document}

Spacing after colon, semicolon, and period.

How can I get all the following:

  • space after a colon separating clauses the same as that after a semicolon; and
  • space after a colon before a list retains the larger spacing from \nonfrenchspacing; and
  • space after a period retains the larger spacing from \nonfrenchspacing?
murray
  • 7,944

1 Answers1

4

If you want that the space after a colon is the same as after a semicolon, tell TeX that the space factor codes of both are the same.

\documentclass[12pt]{article}
\begin{document}

\nonfrenchspacing\sfcode`:=\sfcode`;
\emph{nonfrenchspacing}
\smallskip

Spacing after; semicolon.

Spacing after: colon.

Spacing after. period

\bigskip

\frenchspacing
\emph{frenchspacing}
\smallskip

Spacing after; semicolon.

Spacing after: colon.

Spacing after. period

\end{document}

enter image description here

Since you won't be changing between “French spacing” and “non French spacing” (would you?), you can simply state

\sfcode`:=\sfcode`;

before \begin{document}.

\documentclass[12pt]{article}

\sfcode`:=\sfcode`;

\begin{document}

Spacing after; x

Spacing after: x

Spacing after. x

\end{document}

enter image description here

TeXnical note. The space factors of semicolon, colon and period under \nonfrenchspacing are, respectively, 1500, 2000 and 3000. So it's a bit inaccurate to say that the space after a colon is the same as after a period.

egreg
  • 1,121,712
  • But then how would I (temporarily) revert to my preferred wider space when a colon precedes a list? – murray Apr 03 '20 at 21:11
  • 1
    @murray Does this make sense? Anyway, do \newcommand{\colonlist}{:\spacefactor2000\relax\space\ignorespaces} and use \colonlist in front of a list. – egreg Apr 03 '20 at 21:14
  • Yes, that works, thank you! – murray Apr 04 '20 at 00:48