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

Alex Roberts
  • 1,379

1 Answers1

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}

moewe
  • 175,683
  • 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". – Alex Roberts Mar 19 '21 at 13:53
  • 1
    @AlexRoberts See the edit, please. – moewe Mar 19 '21 at 15:37
  • Wonderful, that worked perfectly, thank you! – Alex Roberts Mar 19 '21 at 15:59
  • I've asked a related question on further refining this tweak for the journal in question. – Alex Roberts Mar 25 '21 at 12:11
  • Update: I have recently updated to TeXLive 2021 and discovered that @moewe's answer has been broken in the update; it now produces this warning ! Missing \endcsname inserted. <to be read again> (new line) \let (new line) l.119 \cite[270]{greene1975}.. Telling it to compile anyway results in incorrectly-formatted citations (in particular, journal titles are no longer italics and instead they end in an *). Clarification: I am talking about the first solution, using biblatex-chicago, not the biblatex-ext solution. – Alex Roberts May 24 '21 at 14:25
  • 1
    @AlexRoberts The definition of journal+sub seems to have changed. The error should be fixed with the edit. – moewe May 24 '21 at 14:34
  • Thank you, that fixed it for me too. – Alex Roberts May 24 '21 at 14:37