Missing space in biblatex-chicago bibliographies for articles without number entries

I'm searching for a fix for a problem with biblatex-chicago's authordate-styled bibliographies. They omit the space between the volume and pages fields if article entries lack a number (issue) field. Find a MWE and printout below.

Thanks a lot.

\documentclass[american]{article}
\usepackage[utf8]{inputenc}
\usepackage{babel,csquotes}
\usepackage[backend=biber,authordate]{biblatex-chicago}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@ARTICLE{adams1887,
author = {Adams, Henry Carter},
title = {Relation of the State to Industrial Action},
journaltitle = {Publications of the American Economic Association},
date = {1887},
volume = {1},
number = {6},
pages = {7--85}
}
@ARTICLE{clark1887,
author = {Clark, John B.},
title = {The Limits of Competition},
journaltitle = {Political Science Quarterly},
date = {1887},
pages = {45--61},
volume = {2}
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
Example.
\nocite{*}
\printbibliography
\end{document}


• Welcome to TeX.SX! It seems to me that the space is added when there is a number field, but the lack of uniformity is evident anyway. – egreg Sep 24 '13 at 21:52
• Thanks! I'd rather omit the number (issue) fields altogether. Colons without spaces after them look like plain formatting errors to me. – timur Sep 24 '13 at 22:07
• This should either be checked in CMS 16th ed. and/or brought to the attention of the package author (who is very responsive to emails). – jon Sep 25 '13 at 1:25
• +1 for the answer of @moewe below, but it is worth noting that, at least in the 15th edition of the CMS (which is the only one I own), the seen behaviour is correct. (Why? I have no idea, for it is surely inconsistent --- but I find CMS annoying that way, especially as I am often forced to use it!) – jon Sep 25 '13 at 5:03
• And the same is explicitly true of the 16th edition (see § 14.186). I suppose the cms@postposit toggle is meant to allow biblatex-chicago bend to the demands of French typography. – jon Sep 25 '13 at 5:31

1 Answer

As @jon and @timur have pointed out in the comments to the question, the Chicago Manual of Style (in the 15th and 16th edition) endorses - even prescribes - this - at least in in my opinion - stylistically questionable and certainly inconsistent rule.

The biblatex-chicago package, of course, follows the rules set by the CMS as closely as possible. The rule seems, however, to be overridden by French language settings. Indeed, there is a toggle called cms@postposit, which seems to appear sporadically in the .bbx and .cbx files and change some minor details; its value is only ever changed in cms-french.lbx, all the other .lbx files do not seem to bother with it.

For a quick fix add the following to your preamble.

\makeatletter
\renewbibmacro*{journal+issue+year+pages}{%
\iftoggle{cms@numbermonth}{}{\clearfield{month}}%
\usebibmacro{cjournal+ser+vol+num}%
\setunit{\addspace}%
\ifthenelse{\iffieldundef{issue}\AND\iffieldundef{month}
\AND\iffieldundef{number}}%
{\iftoggle{cms@postposit}% Kludge for French colon spacing.
{\setunit{\addcolon\addspace}}%
{\setunit{\addcolon\addspace}}}% This may not be universally correct.%<--- here
{\printtext[parens]{%  Perhaps if it's wrong use magazine subtype?
\iffieldundef{issue}
{\usebibmacro{date}%
\printfield{number}}%
{\printfield{issue}%
\setunit{\addspace}%
\usebibmacro{cmsyear}}}%
\setunit{\addcolon\addspace}}
\printfield{pages}}

\renewbibmacro*{periodical+issue+year+pages}{%
\iftoggle{cms@numbermonth}{}{\clearfield{month}}%
\usebibmacro{cperiodical+ser+vol+num}%
\setunit{\addspace}%
\ifthenelse{\iffieldundef{issue}\AND\iffieldundef{month}
\AND\iffieldundef{number}}%
{\iftoggle{cms@postposit}%
{\setunit{\addcolon\addspace}}%
{\setunit{\addcolon\addspace}}}%<--- here
{\printtext[parens]{%
\iffieldundef{issue}
{\usebibmacro{date}%
\printfield{number}}%
{\printfield{issue}%
\setunit{\addspace}%
\usebibmacro{cmsyear}}}%
\setunit{\addcolon\addspace}}
\printfield{pages}}
\makeatother


It might be safe to entirely remove the test for cms@postposit as both branches do the same now; we then get

\makeatletter
\renewbibmacro*{journal+issue+year+pages}{%
\iftoggle{cms@numbermonth}{}{\clearfield{month}}%
\usebibmacro{cjournal+ser+vol+num}%
\setunit{\addspace}%
\ifthenelse{\iffieldundef{issue}\AND\iffieldundef{month}
\AND\iffieldundef{number}}%
{\setunit{\addcolon\addspace}}%<--- no conditional any more here
{\printtext[parens]{%  Perhaps if it's wrong use magazine subtype?
\iffieldundef{issue}
{\usebibmacro{date}%
\printfield{number}}%
{\printfield{issue}%
\setunit{\addspace}%
\usebibmacro{cmsyear}}}%
\setunit{\addcolon\addspace}}
\printfield{pages}}

\renewbibmacro*{periodical+issue+year+pages}{%
\iftoggle{cms@numbermonth}{}{\clearfield{month}}%
\usebibmacro{cperiodical+ser+vol+num}%
\setunit{\addspace}%
\ifthenelse{\iffieldundef{issue}\AND\iffieldundef{month}
\AND\iffieldundef{number}}%
{\setunit{\addcolon\addspace}}%<--- no conditional any more here
{\printtext[parens]{%
\iffieldundef{issue}
{\usebibmacro{date}%
\printfield{number}}%
{\printfield{issue}%
\setunit{\addspace}%
\usebibmacro{cmsyear}}}%
\setunit{\addcolon\addspace}}
\printfield{pages}}
\makeatother


MWE

\documentclass[american]{article}
\usepackage[utf8]{inputenc}
\usepackage{babel,csquotes}
\usepackage[backend=biber,authordate]{biblatex-chicago}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@ARTICLE{adams1887,
author = {Adams, Henry Carter},
title = {Relation of the State to Industrial Action},
journaltitle = {Publications of the American Economic Association},
date = {1887},
volume = {1},
number = {6},
pages = {7--85}
}
@ARTICLE{clark1887,
author = {Clark, John B.},
title = {The Limits of Competition},
journaltitle = {Political Science Quarterly},
date = {1887},
pages = {45--61},
volume = {2}
}
\end{filecontents}
\addbibresource{\jobname.bib}

\makeatletter
\renewbibmacro*{journal+issue+year+pages}{%
\iftoggle{cms@numbermonth}{}{\clearfield{month}}%
\usebibmacro{cjournal+ser+vol+num}%
\setunit{\addspace}%
\ifthenelse{\iffieldundef{issue}\AND\iffieldundef{month}
\AND\iffieldundef{number}}%
{\setunit{\addcolon\addspace}}%<--- here
{\printtext[parens]{%  Perhaps if it's wrong use magazine subtype?
\iffieldundef{issue}
{\usebibmacro{date}%
\printfield{number}}%
{\printfield{issue}%
\setunit{\addspace}%
\usebibmacro{cmsyear}}}%
\setunit{\addcolon\addspace}}
\printfield{pages}}

\renewbibmacro*{periodical+issue+year+pages}{%
\iftoggle{cms@numbermonth}{}{\clearfield{month}}%
\usebibmacro{cperiodical+ser+vol+num}%
\setunit{\addspace}%
\ifthenelse{\iffieldundef{issue}\AND\iffieldundef{month}
\AND\iffieldundef{number}}%
{\setunit{\addcolon\addspace}}%<--- here
{\printtext[parens]{%
\iffieldundef{issue}
{\usebibmacro{date}%
\printfield{number}}%
{\printfield{issue}%
\setunit{\addspace}%
\usebibmacro{cmsyear}}}%
\setunit{\addcolon\addspace}}
\printfield{pages}}
\makeatother

\begin{document}
Example.
\nocite{*}
\printbibliography
\end{document}


Output