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.)

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}
| improve this answer | |
  • 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 tex.stackexchange.com/questions/103770/…. I'll update my question to clarify this. – Sverre May 25 '13 at 15:48

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.