1

Currently, @incollection entries in the windycity style of biblatex will place pagenumbers before the volume. This makes sense when you have @mvcollections with a maintitle and separate booktitles, but not so much for mvcollections under a single name. How can I change this around?

MWE:

\documentclass{memoir}
\usepackage[style=windycity]{biblatex}
\usepackage{filecontents}

\begin{filecontents}{biblio.bib}
    @incollection{entry,
        title = {Chapter},
        author = {Author},
        location = {Place},
        publisher = {Publisher},
        date = {2020},
        volume = {1},
        pages = {100--110},
        booktitle = {Book},
        editora = {Editor}
    }
\end{filecontents}
\bibliography{biblio}
\begin{document}
   \nocite{entry}
   \printbibliography
\end{document}

produces:

Author. “Chapter.” In Book, edited by Editor, 100–110. Vol. 1. Place: Publisher, 2020.

but I want it to produce:

Author. “Chapter.” In Book, edited by Editor. Vol. 1, 100-110. Place: Publisher, 2020.

How can this be changed?

1 Answer 1

2

Making changes to a complex style like windycity can be risky since it's meant to closely follow Chicago style.

I've tried to avoid side effects, but you should be careful.

I've made three changes to the volumes+bookseries+etc and volume+number+etc macros to swap the pages and volumes field when there is no bookbooktitle field.

MWE

\documentclass{memoir}
\usepackage[style=windycity]{biblatex}
\begin{filecontents}[overwrite]{biblio.bib}
@incollection{entry,
  title = {Chapter},
  author = {Author},
  location = {Place},
  publisher = {Publisher},
  date = {2020},
  volume = {1},
  pages = {100--110},
  booktitle = {Book},
  editora = {Editor}
}
@InCollection{doe2018,
    author = {Doe, Jane},
    title = {A Poem},
    translator = {Smith, John},
    pages = {56-57},
    crossref = {jones2018}
}
@InBook{jones2018,
    editor = {Jones, David},
    title = {A Volume of Poems},
    volume = {2},
    year = {2018},
    crossref = {blow2016}   
}
@Collection{blow2016,
    editor = {White, Amy},
    title = {A Collection of Poems},
    volumes = {4},
    address = {Chicago},
    publisher = ucp,
    year = {2018}
}
\end{filecontents}
\addbibresource{biblio.bib}
\renewbibmacro*{volumes+bookseries+etc}{%
  \usebibmacro{volumes}%
  \usebibmacro{bookseries}%
  \iffieldundef{bookbooktitle}% <-- edit
    {}%                         <-- edit
    {\usebibmacro{pages}}%      <-- edit
  \usebibmacro{volume+number+etc}%
  \usebibmacro{book:number}%
  \usebibmacro{part}}%
\renewbibmacro*{volume+number+etc}{%
  \iffieldundef{\xvolume volume}
    {}
    {\iffieldundef{bookbooktitle}%    <-- edit
       {}%                            <-- edit
       {\usebibmacro{swapvol+pages}}% <-- edit
     \iffieldundef{series}
       {\newunit}%
       {\setunit{\addcomma\space}}%
     \iffieldnum{\xvolume volume}
       {\printfield[volume]{\xvolume volume}%
        \usebibmacro{volume:number}}%
       {\bibstring{volumes}\space
        \printfield[noformat]{\xvolume volume}}%
     \clearfield{\xvolume volume}%
     \usebibmacro{part}%
     \iffieldundef{bookbooktitle}% <-- edit
       {\usebibmacro{pages}}%      <-- edit
       {}%                         <-- edit
     \iftoggle{collection}
       {\iftoggle{swapvol}
          {\addcomma\space}%
          {\space\bibstring{of}\space}}%
       {\iffieldundef{maintitle}
          {}
          {\space\bibstring{of}\space}}}}
\begin{document}
\nocite{entry,doe2018}
\printbibliography
\end{document}

output

1
  • Works like a charm for my purposes, but I don't have any books as part of a multivolume collection so I can't check if it doesn't break anything there. Windycity is amazing at following the examples that CMOS provides, but even if that vast amount of examples, there is still some ambiguity left, for example in this case. All the triggers needed for various cases makes it too obscure for me to figure it out myself.
    – cktai
    Dec 20, 2020 at 10:40

You must log in to answer this question.

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