3

When I am citing pages in books, I use the citation format

(Author 1982:45)

But when I am citing something like paragraphs or online data with an ID number (i.e. things that aren't a plain numeral like a page number), I would like to remove the colon:

(Online resource no. 58; Author 1975 ยง18)

I assume the necessary trick here is to specify an empty \postnotedelim iff the postnote is not a numeral. How can I accomplish this (adding something to the preamble in my .tex file)?

\documentclass{article}
\usepackage{fontspec,filecontents}
\usepackage[style=authoryear]{biblatex}
\renewcommand*{\postnotedelim}{\addcolon}
\DeclareFieldFormat{postnote}{#1}
\begin{filecontents}{\jobname.bib}
@BOOK{harrison,
    AUTHOR = "George Harrison",
    TITLE = "My life with the Beatles",
    YEAR = "1982",
    LOCATION = "London",
    PUBLISHER = "Big House"}
@ONLINE{archiveZ,
    TITLE = "Archive Z",
    SHORTHAND = "Archive Z",
    URL = "http://www.archivez.com",
    URLDATE = "2013-03-22"}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\parencites[45]{harrison}[no. 58]{archiveZ}.
\printbibliography
\end{document}

enter image description here

lockstep
  • 250,273
Sverre
  • 20,729

1 Answers1

6

This can be achieved by the following code

\renewcommand{\postnotedelim}{%
  \iffieldnums{postnote}
    {\addcolon}
    {\addspace}}
Guido
  • 30,740
  • The package xtring isn't included in TeXLive, even though I have installed TeXLive with all packages. How is \IfInteger different from \ifnumerals? โ€“ Sverre Mar 22 '13 at 12:06
  • @Sverre I have changed the answer. The package would have been xstring. \IfInteger is from xstring, \ifnumerals is from biblatex. \ifnumerals or \iffieldnums would consider numbers also in different forms (roman and ranges). โ€“ Guido Mar 22 '13 at 12:14
  • biblatex now also has \iffieldpages which is probably most appropriate here. โ€“ moewe Mar 26 '16 at 14:35