biblatex: postnote behavior
biblatex
will normally detect if the postnote argument of a citation is a single page or a page range and will add the appropriate prefix. This also works for, e.g., Roman numerals, but not for numbers plus text, as in your third citation. In these cases, you have to manually add \pno
(which prints the single page prefix of the current language) or \ppno
(which prints the page range prefix). Using a non-breakable space, you should write your third citation as
``Some \emph{quotation}'' \citep[][\pno~43, emphasis added]{john-73}.
See section 3.14.3 (Page Numbers in Citations) of the biblatex
manual for details.
From biblatex
3.13 (2019-08-17) onwards, you can use the macro \pnfmt
instead of \pno
and \ppno
. See https://github.com/plk/biblatex/issues/870.
\pnfmt
formats its argument exactly like biblatex
formats the complete postnote
argument. So if \pnfmt
contains only a page range and the postnote
format adds a page prefix, you will get a page prefix from \pnfmt
. In that case \pnfmt
will automatically choose the correct form of the page prefix ("p."/\pno
or "pp."/\ppno
), add the required space and normalise the range delimiters. Furthermore, the command is useful for uniformity in case you decide to modify the postnote
field format.
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authoryear, backend=biber]{biblatex}
%\DeclareFieldFormat{postnote}{\mknormrange{#1}}
\addbibresource{biblatex-examples.bib}
\begin{document}
\autocite[\pnfmt{380-382}, emphasis added]{sigfridsson}
\autocite[\pnfmt{381}, emphasis added]{sigfridsson}
\end{document}
See also Biblatex citepages=omit not working when postnote has text.