4

In the question Biblatex: No \postnotedelim for citations that aren't numerals, I learned how to remove a postnote delimiter when the citation doesn't contain a numeral, by adding this to the preamble:

\renewcommand{\postnotedelim}{\iffieldnums{postnote}{\addcolon}{\addspace}}

However, this also removes the delimiter between a regular citation and a "comment" style citation (such as "NN p.c.") (cf. Add custom information to text citations with biblatex).

The question is, how do I make sure that the delimiter between the "regular" citations and the "comment" is the same character (comma, semicolon) as used to delimit the "regular" citations?

\documentclass{article}
\usepackage[style=authoryear]{biblatex}
\DeclareFieldFormat{postnote}{#1}
\renewcommand{\multicitedelim}{\addcomma\space}
\renewcommand{\postnotedelim}{\iffieldnums{postnote}{\addcolon}{\addspace}}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{lennon1972,
    AUTHOR = "John Lennon",
    TITLE = "Who did what in the Beatles",
    YEAR = "1972"}
@book{starkey1994,
    AUTHOR = "Richard Starkey",
    TITLE = "I'm the drummer",
    YEAR = "1994"}
@ONLINE{archiveZ,
    TITLE = "Archive Z",
    SHORTHAND = "Archive Z",
    URL = "http://www.archivez.com",
    URLDATE = "2013-03-22"}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
I know from books and people I have talked to that George Harrison
played the guitar in the Beatles \parencites(Paul McCartney p.c.)
[48]{lennon1972}[103]{starkey1994}[no. 58]{archiveZ}
\end{document}

enter image description here

The citation should ideally look like this:

(Lennon 1972:48, Starkey 1994:103, Archive Z no. 58, Paul McCartney p.c.)

Sverre
  • 20,729

1 Answers1

5

NEW SOLUTION based on clarified requirements.

You should customize the multipostnote to add the appropriate punctionation before the closing text, without affecting the individual postnotes to the actual citations:

\DeclareFieldFormat{multipostnote}{\addcomma\addspace #1}

Sample output

\documentclass{article}

\usepackage[style=authoryear]{biblatex}

\DeclareFieldFormat{postnote}{#1}
\renewcommand{\postnotedelim}{\iffieldnums{postnote}{\addcolon}{\addspace}}
\DeclareFieldFormat{multipostnote}{\addcomma\addspace #1}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{lennon1972,
    AUTHOR = "John Lennon",
    TITLE = "Who did what in the Beatles",
    YEAR = "1972"}
@book{starkey1994,
    AUTHOR = "Richard Starkey",
    TITLE = "I'm the drummer",
    YEAR = "1994"}
@ONLINE{archiveZ,
    TITLE = "Archive Z",
    SHORTHAND = "Archive Z",
    URL = "http://www.archivez.com",
    URLDATE = "2013-03-22"}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
I know from books and people I have talked to that George Harrison
played the guitar in the Beatles \parencites(Paul McCartney
p.c.)[48]{lennon1972}[103]{starkey1994}.

I know from books and people I have talked to that George Harrison
played the guitar in the Beatles \parencites(Paul McCartney
p.c.)[48]{lennon1972}{starkey1994}.


I know from books and people I have talked to that George Harrison
played the guitar in the Beatles \parencites(Paul McCartney p.c.)
[48]{lennon1972}[103]{starkey1994}[no. 58]{archiveZ}
\end{document}
Andrew Swann
  • 95,762
  • This will, however, also add a comma (or semicolon) to the cases for which the command \renewcommand{\postnotedelim}{\iffieldnums{postnote}{\addcolon}{\addspace}} was created to ensure that no delimiting character was used, as addressed in http://tex.stackexchange.com/questions/103770/biblatex-no-postnotedelim-for-citations-that-arent-numerals. I'll update my question to clarify this. – Sverre May 25 '13 at 15:48