2

With biblatex, it is easy to change the cite style such that the delimiter between source and page number changes. The cite style I use, a variant of the author-year type, requires me to cite in the form Author (2000: 123) or (Author 2000:123), and accordingly I changed

\renewcommand{\postnotedelim}{\addcolon\space}% change the standard ", "
\DeclareFieldFormat{postnote}{#1}% no "p. "

Unfortunately, this messes with multi cite commands like \parencites, because it also changes the delimiter after a series of cited items. E.g.,

\parencite(see)(etc){greenwade93,goossens93}

results in

(see Goossens, Mittelbach, and Samarin, 1993; Greenwade, 1993: etc.)

Apparently, the postnotedelim is used both in single and in multi cite commands. What I'd like to have here is a ", etc", not a ": etc".

But how can I change the behaviour of the postnote delimiter depending on whether it is used in a single or multi cite command? I searched the biblatex manual and found the multipostnote field, but no way to change the delimiter for it. I guess what I'm looking for is a multipostnotedelim, but I have insufficient experience with biblatex to integrate it myself.

\documentclass{article}


\usepackage[style=authoryear-comp,backend=biber,natbib=true]{biblatex}
\renewcommand{\postnotedelim}{\addcolon\space}
\DeclareFieldFormat{postnote}{#1}

\usepackage{filecontents}
\begin{filecontents}{bibliography.bib}
@article{greenwade93,
    author  = "George D. Greenwade",
    title   = "The {C}omprehensive {T}ex {A}rchive {N}etwork ({CTAN})",
    year    = "1993",
    journal = "TUGBoat",
    volume  = "14",
    number  = "3",
    pages   = "342--351"
}

@book{goossens93,
    author    = "Michel Goossens and Frank Mittelbach and Alexander Samarin",
    title     = "The LaTeX Companion",
    year      = "1993",
    publisher = "Addison-Wesley",
    address   = "Reading, Massachusetts"
}

\end{filecontents}
\bibliography{bibliography.bib}
\begin{document}

\citep[342]{greenwade93}

\parencites(see)(etc.){greenwade93,goossens93}

\end{document}
  • Note that \bibliography should take the file name of your .bib file without extension, so \bibliography{bibliography} would be correct. With biblatex I usually use \addbibresource instead of \bibliography and \addbibresource requires the file extension, so you could also use \addbibresource{bibliography.bib}. Depending on the OS, TeX distribution and the backend (Biber or BibTeX) the system might not be able to find the file in case the extension is not handled properly. – moewe Nov 1 '18 at 17:02
2

There is no \multipostnotedelim, both postnote and multipostnote use \postnotedelim, but it is fairly straightforward to add it

\documentclass{article}
\usepackage[style=authoryear-comp,backend=biber,natbib=true]{biblatex}

\renewcommand*{\postnotedelim}{\addcolon\space}
\DeclareFieldFormat{postnote}{#1}

\newcommand*{\multipostnotedelim}{\addcomma\space}

\renewbibmacro*{multipostnote}{%
  \iffieldundef{multipostnote}
    {}
    {\multipostnotedelim
     \printfield{multipostnote}}}

\newcommand*{\multiprenotedelim}{\prenotedelim}

\renewbibmacro*{prenote}{%
  \iffieldundef{prenote}
    {}
    {\printfield{prenote}%
     \setunit{\prenotedelim}}}

\addbibresource{biblatex-examples.bib}
\begin{document}
\citep[342]{sigfridsson}

\parencites(see)(etc.){sigfridsson,nussbaum}
\end{document}

(Sigfridsson and Ryde, 1998: 342)//(see Nussbaum, 1978; Sigfridsson and Ryde, 1998, etc.)

  • I think it would make sense to define \multi(pre|post)notedelim (after all the field formats for multi(pre|post)note are already independent from those for (pre|post)note). It might make sense to think about making the delimiters context-sensitive as well (useful to eliminate \extpostnotedelim?). – moewe Nov 1 '18 at 16:56
  • multi(pre|post)notedelim was implemented in github.com/plk/biblatex/pull/869. The delimiters are context-sensitive now. – moewe May 9 at 12:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.