2

The journal Isis: A Journal of the History of Science Society uses a citation style that is quite similar to Chicago (author-title), except for several differences:

  1. Pages are always referenced with p./pp.
  2. The long @article citation format is

John C. Greene, “Reflections on the Progress of Darwin Studies,” Journal of the History of Biology, 1975, 8:243–273, https://doi.org/10.1007/BF00130440, on p. 270

Stillman Drake, “The Role of Music in Galileo’s Experiments,” Scientific American, June 1975, 232(6):98–104

In other words, the long article format needs to be tweaked so that:

  • the year/date appears right after the journal (marked off by commas)
  • the volume should be italicized
  • when there is an issue number, it should immediately follow the volume, wrapped in round brackets (and not italicized)
  • the full page range is always given (following the volume + colon)
  • DOI/URL comes next
  • the specific page reference (if any) should be preceded by "on p./pp."

Short article citations are then:

Greene, "Reflections," p. 272.

Short book citations are only different from Chicago in that they use "p./pp.":

Kuhn, Structure, p. 25.

Has someone already implemented this slightly different citation style? And if not, what is the best way to make these changes?

MWE

Elsewhere, @moewe has implemented a way to always include the full page range of an article (improved version of that answer here) even in a first citation where a specific page is referenced. I have included that in the following MWE, but otherwise, it still lacks the necessary changes:

\documentclass{article}

\usepackage[notes]{biblatex-chicago}

\begin{filecontents*}{\jobname.bib}
@article{greene1975,
    Author = {John C. Greene}, 
    Title = {Reflections on the Progress of Darwin Studies},
    Shorttitle = {Reflections},
    Journal = {Journal of the History of Biology}, 
    Year = {1975},
    Volume = {8},
    Pages = {243–273},
    Url = {https://doi.org/10.1007/BF00130440}}

@article{drake1975,
    Author = {Stillman Drake}, 
    Title = {The Role of Music in Galileo’s Experiments},
    Shorttitle = {Role},
    Journal = {Scientific American},
    Month = jun, 
    Year = {1975},
    Volume = {232},
    Number = {6},
    Pages = {98–104}}

@book{kuhn:structure3,
    address = {Chicago},
    author = {Kuhn, Thomas S.},
    edition = {3},
    publisher = {University of Chicago Press},
    title = {The Structure of Scientific Revolutions},
    year = {1996},
    shorttitle = {Structure}}
\end{filecontents*}
\addbibresource{\jobname.bib}

\DefineBibliographyStrings{english}{
  thiscite = {on},
}

% moewe's method for including full page range even when a specific page is cited

\newtoggle{cbxchic:hadpages}


\renewbibmacro*{fullpostnote}{%
  \global\toggletrue{cbxchic:hadpages}%
  \iffieldundef{chapter}%
   {\iffieldundef{pages}%
      {\global\togglefalse{cbxchic:hadpages}}%
      {\postnotedelim%
        \printfield{pages}}}%
   {\postnotedelim%
    \printfield{chapter}}%
  \ifboolexpr{
      test {\ifnumequal{\value{citecount}}{\value{citetotal}}}
      and
      test {\iffieldpages{postnote}}
      and
      togl {cbxchic:hadpages}
    }
    {\setunit{\addcomma\space}%
     \bibstring{thiscite}%
     \setunit{\addspace}}
    {\iffieldundef{postnote}{}{\postnotewrapper}}%
  \usebibmacro{semel:postnote}}

\renewbibmacro*{eid+fullpostnote}{%
  \global\toggletrue{cbxchic:hadpages}%
  \iffieldundef{chapter}%
    {\iffieldundef{pages}%
      {\iffieldundef{eid}%
        {\global\togglefalse{cbxchic:hadpages}}%
        {\postnotedelim%
          \printfield{eid}%
          \clearfield{eid}}}%
      {\postnotedelim%
        \printfield{pages}}}%
    {\postnotedelim%
      \printfield{chapter}}%
  \ifboolexpr{
      test {\ifnumequal{\value{citecount}}{\value{citetotal}}}
      and
      test {\iffieldpages{postnote}}
      and
      togl {cbxchic:hadpages}
    }
    {\setunit{\addcomma\space}%
     \bibstring{thiscite}%
     \setunit{\addspace}}
    {\iffieldundef{postnote}{}{\postnotewrapper}}%
  \usebibmacro{semel:postnote}}


\begin{document}
\cite[270]{greene1975}.

\cite[]{drake1975}.

\cite[272]{greene1975}.

\cite{kuhn:structure3}.

\mancite

\cite[25]{kuhn:structure3}.
\end{document}

Current output:

enter image description here

1 Answer 1

2

biblatex-chicago does not really lend itself for larger scale customisation. It was specifically written to implement all the complex requirements of the Chicago Manual of Style. This means that the code is incredibly complicated at times to catch all the subtleties of the CMoS style.

Here is an attempt to implement your requirements. One major headache was the position of the postnote. biblatex-chicago invests a lot of code into making it appear before the URL ('inside' the entry), moving it back to the end (where it is in the standard styles) needs some tricks.

\documentclass{article}

\usepackage[notes]{biblatex-chicago}

\DeclareFieldFormat{jourvol}{\mkbibitalic{#1}}
\DeclareFieldFormat{journum}{\mkbibparens{#1}}%

\renewbibmacro*{cjournal+issue+year+pages}{%
  \ifentrytype{periodical}%
  {\usebibmacro{cperiodical+ser+vol+num}}%
  {\usebibmacro{cjournal+ser+vol+num}}}

\renewbibmacro*{cjournal+ser+vol+num}{%
  \usebibmacro{journal+sub}{in}%
  \setunit*{\addspace}%
  \printlist[periodplace]{location}%
  \setunit*{\addspace}%
  \iffieldundef{series}%
    {}%
    {\newcunit%
      \printfield[jourser]{series}%
      \newcunit}%\setunit*{\addspace}?
  \newcunit
  \iffieldundef{issue}%
    {\usebibmacro{number+or+month}}%
    {\printfield{issue}%
     \setunit{\addspace}%
     \usebibmacro{cmsyear}}%
  \newcunit
  \printfield[jourvol]{volume}%
  \printfield[journum]{number}%
  \setunit{\postvolpunct}}% Moved eid for 17th ed.

\DefineBibliographyStrings{english}{
  thiscite = {on},
}

\AtEveryCitekey{\savefield{postnote}{\cbxsavepostnote}\clearfield{postnote}}

\DeclareFieldFormat{pages}{%
  \ifboolexpr{%
    togl {cms@comprange}%
    and
    test {\ifpages{#1}}%
  }%
  {\mkpageprefix[bookpagination][\mkcomprange]{#1}}%
  {\mkpageprefix[bookpagination][\mknormrange]{#1}}}
\DeclareFieldFormat[article,periodical]{pages}{%
  \ifboolexpr{%
    togl {cms@comprange}%
    and
    test {\ifpages{#1}}%
  }%
  {\mkcomprange{#1}}%
  {\mknormrange{#1}}}

\DeclareFieldFormat{postnote}{%
  \ifboolexpr{%
    togl {cms@comprange}%
    and
    test {\ifpages{#1}}%
  }%
  {\mkpageprefix[pagination][\mkcomprange]{#1}}%
  {\mkpageprefix[pagination][\mknormrange]{#1}}}

\renewbibmacro*{postnote}{%
  \restorefield{postnote}{\cbxsavepostnote}%
  \iffieldundef{postnote}
    {}
    {\setunit{\addcomma\space}%
     \iftoggle{cms@fullnote}
       {\iffieldundef{pages}
          {}
          {\iffieldpages{postnote}
             {\bibstring{thiscite}%
              \setunit{\addspace}}
             {}}}
       {}%
     \printfield{postnote}}}

\begin{filecontents*}{\jobname.bib}
@article{greene1975,
  author     = {John C. Greene}, 
  title      = {Reflections on the Progress of Darwin Studies},
  shorttitle = {Reflections},
  journal    = {Journal of the History of Biology}, 
  year       = {1975},
  volume     = {8},
  pages      = {243–273},
  doi        = {10.1007/BF00130440},
}
@article{drake1975,
  author     = {Stillman Drake}, 
  title      = {The Role of Music in Galileo’s Experiments},
  shorttitle = {Role},
  journal    = {Scientific American},
  month      = jun, 
  year       = {1975},
  volume     = {232},
  number     = {6},
  pages      = {98–104},
}
@book{kuhn:structure3,
  address    = {Chicago},
  author     = {Kuhn, Thomas S.},
  edition    = {3},
  publisher  = {University of Chicago Press},
  title      = {The Structure of Scientific Revolutions},
  year       = {1996},
  shorttitle = {Structure},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
\cite[56]{westfahl:space}

\cite[270]{greene1975}.

\cite[]{drake1975}.

\cite[272]{greene1975}.

\cite{kuhn:structure3}.

\mancite

\cite[25]{kuhn:structure3}.
\end{document}

Gary Westfahl, “The True Frontier: Confronting and Avoiding the Realities
of Space in American Science Fiction Films,” in Space and Beyond: The Frontier
Theme in Science Fiction, ed. Gary Westfahl (Westport, Conn. and London:
Greenwood, 2000), pp. 55–65, on p. 56//John C. Greene, “Reflections on the Progress of Darwin Studies,” Journal of the History of Biology, 1975, 8:243–273, https://doi.org/10.1007/BF00130440, on p. 270.//Stillman Drake, “The Role of Music in Galileo’s Experiments,” Scientific American, June 1975, 232(6):98–104.
Greene, “Reflections,” p. 272.//Thomas S. Kuhn, The Structure of Scientific Revolutions, 3rd ed. (Chicago: University of Chicago Press, 1996).//Kuhn, Structure, p. 25.

Here is an attempt to reproduce the same behaviour with a biblatex-ext style, which might be easier to customise going forward.

\documentclass[american]{article}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=ext-verbose, articlein=false, citepages=separate]{biblatex}

\renewcommand*{\newunitpunct}{\addcomma\space}

\renewcommand*{\volnumdelim}{}
\DeclareFieldFormat[article,periodical]{volume}{\mkbibitalic{#1}}
\DeclareFieldFormat[article,periodical]{number}{\mkbibparens{#1}}

\DeclareFieldFormat{issuedate}{#1}

\newcommand*{\jourdatedelim}{\addcomma\space}
\newcommand*{\serdatedelim}{\jourdatedelim}
\renewcommand*{\volnumdatedelim}{\addcomma\space}

\renewbibmacro*{journal+issuetitle}{%
  \usebibmacro{journal}%
  \setunit*{\jourdatedelim}%
  \iffieldundef{series}
    {}
    {\setunit*{\jourserdelim}%
     \printfield{series}%
     \setunit{\seryeardelim}}%
  \usebibmacro{issue+date}%
  \setunit{\addcolon\space}%
  \usebibmacro{issue}%
  \setunit{\volnumdatedelim}%
  \usebibmacro{volume+number+eid}%
  \newunit}

\renewcommand*{\bibpagespunct}{%
  \ifentrytype{article}
    {\addcolon}
    {\addcomma\space}}
\DeclareFieldFormat{pages}{#1}

\newbibmacro*{pubinstorg+location+date}[1]{%
  \ifboolexpr{
    not test {\iflistundef{location}}
    or
    not test {\iflistundef{#1}}
    or
    not test {\iffieldundef{year}}}
    {\setunit{\addspace}%
     \printtext[parens]{%
       \printlist{location}%
       \iflistundef{#1}
         {\setunit*{\locdatedelim}}
         {\setunit*{\locpubdelim}}%
       \printlist{#1}%
       \setunit*{\pubdatedelim}%
       \usebibmacro{date}}%
       \newunit}
    {}}

%\urlstyle{same}
\DeclareFieldFormat{doi}{\url{https://doi.org/#1}}

\DefineBibliographyStrings{english}{
  thiscite = {on},
}

\begin{filecontents*}{\jobname.bib}
@article{greene1975,
  author     = {John C. Greene}, 
  title      = {Reflections on the Progress of Darwin Studies},
  shorttitle = {Reflections},
  journal    = {Journal of the History of Biology}, 
  year       = {1975},
  volume     = {8},
  pages      = {243–273},
  doi        = {10.1007/BF00130440},
}
@article{drake1975,
  author     = {Stillman Drake}, 
  title      = {The Role of Music in Galileo’s Experiments},
  shorttitle = {Role},
  journal    = {Scientific American},
  month      = jun, 
  year       = {1975},
  volume     = {232},
  number     = {6},
  pages      = {98–104},
}
@book{kuhn:structure3,
  address    = {Chicago},
  author     = {Kuhn, Thomas S.},
  edition    = {3},
  publisher  = {University of Chicago Press},
  title      = {The Structure of Scientific Revolutions},
  year       = {1996},
  shorttitle = {Structure},
}
\end{filecontents*}
\addbibresource{\jobname.bib}

\begin{document}
\cite[270]{greene1975}.

\cite[]{drake1975}.

\cite[272]{greene1975}.

\cite{kuhn:structure3}.

\mancite

\cite[25]{kuhn:structure3}.
\end{document}
7
  • This is great, thank you! Is there a way (using the biblatex-chicago method -- though I appreciate the suggestion to move to the more generic form for customizing in the future) to add "p./pp." to citations of @incollections as well? E.g., the first citation of \cite{westfahl:space} (from \addbibresource{biblatex-examples.bib}) should end in "pp. 55–65"; or, if a page is specified, like \cite[56]{westfahl:space}, the first citation should end in "pp. 55–65, on p. 56". Mar 19, 2021 at 13:53
  • 1
    @AlexRoberts See the edit, please.
    – moewe
    Mar 19, 2021 at 15:37
  • Wonderful, that worked perfectly, thank you! Mar 19, 2021 at 15:59
  • I've asked a related question on further refining this tweak for the journal in question. Mar 25, 2021 at 12:11
  • 1
    @AlexRoberts The definition of journal+sub seems to have changed. The error should be fixed with the edit.
    – moewe
    May 24, 2021 at 14:34

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .