4

As a follow-up to an earlier question about how to customize biblatex-chicago to have it format a journal's volume and issue number as "volume.number", I would now like to know if there is a simple way to make to fix the output produced by @gusbrs's answer to that question.

MWE:

\documentclass{article}

\usepackage[notes]{biblatex-chicago}

\begin{filecontents*}{\jobname.bib}
@article{browning1964byz.scholarship,
    Author = {Browning, Robert},
    Journal = {Past \& Present},
    Number = {28},
    Pages = {3--20},
    Title = {Byzantine Scholarship},
    Year = {1964}}
\end{filecontents*}
\addbibresource{\jobname.bib}

% solution from @gusbrs
\DeclareFieldFormat{journum}{#1}
\usepackage{xpatch}
\xpatchbibmacro{cjournal+ser+vol+num}{% search
  \printfield[jourvol]{volume}%
  \setunit{\addcomma\addspace}}{% replace
  \printfield[jourvol]{volume}%
  \setunit{\adddot}}
  {}{}% <success> and <failure>

\pagestyle{empty}

\begin{document}

\cite{browning1964byz.scholarship}

\end{document}

Current output is:

Robert Browning, "Byzantine Scholarship," Past & Present.28 (1964): 3–20.

I would like it to become:

Robert Browning, "Byzantine Scholarship," Past & Present 28 (1964): 3–20.

(space rather than period between journal title and issue number).

1 Answer 1

5

Only one small modification is needed: Use \setunit*{\adddot} instead of \setunit{\adddot}.

The starred version only inserts the punctuation command into the buffer if the last \print... command printed anything. In this case it will do nothing if no volume was printed, which means that the previous punctuation in the buffer survives and is printed.

\documentclass{article}

\usepackage[notes]{biblatex-chicago}

% solution from @gusbrs
\DeclareFieldFormat{journum}{#1}
\usepackage{xpatch}
\xpatchbibmacro{cjournal+ser+vol+num}
  {\printfield[jourvol]{volume}%
   \setunit{\addcomma\addspace}}
  {\printfield[jourvol]{volume}%
   \setunit*{\adddot}}
  {}{}% <success> and <failure>


\begin{filecontents*}{\jobname.bib}
@article{browning1964byz.scholarship,
  author  = {Browning, Robert},
  journal = {Past \& Present},
  number  = {28},
  pages   = {3--20},
  title   = {Byzantine Scholarship},
  year    = {1964},
}
\end{filecontents*}
\addbibresource{\jobname.bib}

\begin{document}
\cite{browning1964byz.scholarship}
\end{document}

Robert Browning, “Byzantine Scholarship,” Past & Present 28 (1964): 3–20


Looking at https://academic.oup.com/past/issue/28/1 there is an argument to be made here that the 28 is actually the volume and that all volumes have only one trivial (issue) number, namely number = {1},, which can be dropped. So the entry might look like

@article{browning1964byz.scholarship,
  author  = {Browning, Robert},
  journal = {Past \& Present},
  volume  = {28},
  pages   = {3--20},
  title   = {Byzantine Scholarship},
  year    = {1964},
}

which would remove the immediate need for the fix (which should still be retained, because it makes sense).

2
  • @AlexRoberts It looks simple in moewe's hands. ;-)
    – gusbrs
    Feb 14, 2019 at 0:22
  • Agreed! simple in that it involved a single additional character -- but certainly not simple in any other respect! Feb 14, 2019 at 4:08

You must log in to answer this question.

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