3

Just noticed a problem with the suffixes that are added when you cite more than one text that was published a specific year for an author.

In my thesis I am referring to two texts by Richard M. Dorson that were both originally published in 1959. Since I have, for one of the texts, been using a version that was printed in 1971, I have added using an origdate field to show both when the text originally appeared, and from when the version I have utilized is from.

A MWE would be:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[backend=biber,authordate,sorting=nyt,cmsdate=both,maxcitenames=2]{biblatex-chicago}

\addbibresource{bibliography.bib}

\begin{document}

\nocite{*}

\printbibliography

\end{document}

(As you can see in the above code, I have set cmsdate to both)

For this MWE I used this bib-file:

@article{dorson1959,
title={A Theory for American Folklore},
volume={72},
number={285},
journal={The Journal of American Folklore},
author={Richard M. Dorson},
year={1959},
pages={197–-215},
}

@book{dorson1971a,
author={Richard M. Dorson},
title={American folklore},
publisher={University of Chicago Press},
address={Chicago},
year={1971},
origdate={1959},
}

@book{dorson1971b,
author={Richard M. Dorson},
title={Made-up Title},
publisher={University Press of Where-ever},
address={Somewhere},
year={1971},
}

Citing all three texts (the last one made-up and added just to show the gravity of the problem) I assumed would result in something like:

Dorson, Richard M. 1959. "A Theory for American Folklore" [...]
-----. (1959) 1971a. American folklore [...]
-----. 1971b. Made-up Title

what I do end up with is instead the following:

enter image description here

Is there any way to make the compilation to only add suffixes is the same year is found in the year field?

moewe
  • 175,683
Erik
  • 119
  • 8

1 Answers1

4

biblatex-chicago's date handling is extremely complex, so I decided not to try and retain any of its complexity and overwrite it with a naive implementation that should hopefully do what you want. That means that options like cmsdate will no longer work as expected.

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[backend=biber,authordate,sorting=nyt,maxcitenames=2]{biblatex-chicago}

\newbibmacro*{erik:cmssortdate}{%
  \iffieldundef{origyear}
    {}
    {\printtext[parens]{\printorigdate}%
     \setunit{\addspace}}%
  \printlabeldateextra}

\renewbibmacro{cmsbibsortdate}{%
  \usebibmacro{erik:cmssortdate}%
  \iffieldundef{labeldatesource}
    {}
    {\iffieldequalstr{labeldatesource}{year}
       {\clearfield{year}}
       {\clearfield{\thefield{labeldatesource}year}}}}

\letbibmacro{cmscitesortdate}{erik:cmssortdate}

\DeclareLabeldate{
  \field{date}
  \field{year}
  \field{origdate}
  \field{eventdate}
  \field{urldate}}

\begin{filecontents}{\jobname.bib}
@article{dorson1959,
  title   = {A Theory for American Folklore},
  volume  = {72},
  number  = {285},
  journal = {The Journal of American Folklore},
  author  = {Richard M. Dorson},
  date    = {1959},
  pages   = {197–-215},
}
@book{dorson1971a,
  author    = {Richard M. Dorson},
  title     = {American folklore},
  publisher = {University of Chicago Press},
  address   = {Chicago},
  year      = {1971},
  origdate  = {1959},
}
@book{dorson1971b,
  author    = {Richard M. Dorson},
  title     = {Made-up Title},
  publisher = {University Press of Where-ever},
  address   = {Somewhere},
  year      = {1971},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
\cite{dorson1959}

\cite{dorson1971a}

\cite{dorson1971b}

\printbibliography
\end{document}

Dorson, Richard M. 1959. “A Theory for American Folklore.” The Journal of American Folklore 72 (285): 197–215.//---. (1959) 1971a. American folklore. Chicago: University of Chicago Press.//---. 1971b. Made-up Title. Somewhere: University Press of Where-ever.


In case you get an error about \letbibmacro being undefined, replace

\letbibmacro{cmscitesortdate}{erik:cmssortdate}

with

\renewbibmacro{cmscitesortdate}{\usebibmacro{erik:cmssortdate}}
moewe
  • 175,683