7

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}

print

  • 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
6

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

enter image description here

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.