How can I change a command like \textcite[][8]{example} to display p.8 rather than p.~8 in the text, while printing the postnote as-is if it does not resemble a page number.

I tried using \DeclareFieldFormat{postnote}{\pno#1} after looking at section 3.13.3 in the biblatex manual, but -- unsurprisingly -- it does not work when the postnote is not a page:


  author  = {Other, Anthony Norman},
  title   = {Some things I did},
  year    = {2014},
  journal = {J.~Irrep. Res.},
  volume  = {1},
  number  = {1},
  pages   = {1-10}


Hello\textcite[][8]{example}. But \textcite[][Table~5]{example}

Just leave the standard definition for \DeclareFieldFormat{postnote}{\mkpageprefix[pagination]{#1}} and add


But please be warned that omitting the space between the "p."/"pp." and page number looks extremely odd (I would even say terrible) and is not the norm in any language I know.





Lorem \textcite[][8]{sigfridsson} ipsum \textcite[][Table~5]{sigfridsson}.
  • I agree that it is terrible.
    – Hugh
    Jun 8 '16 at 14:55
  • 1
    @Hugh: A thin unbreakable space would probably look better (\renewcommand*{\ppspace}{\,}).
    – Bernard
    Jun 8 '16 at 17:08

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.