Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

Is there a way to format the output of biblatex's citations to a book in a different way? When you cite a paper, the pages usually refer to the page range of the paper in the proceedings or journal, but in the case of a book, most sources just give the number of pages of the book.

Take for example the following bibliography, fictivebook.bib :

@book{fictivebook2012,
author = "John Smith and Bobby Fisher and Ron Jeremy and Martha Stewart and Barrack Obama",
title = "Super awesome book",
year = "2012",
pages = "9001"}

Cited in the following document :

\documentclass{article}

\usepackage[backend=biber,style=numeric]{biblatex}
\bibliography{fictivebook}

\begin{document}

This citation is useless, we only want a bibliography \cite{fictivebook2012}.

\printbibliography

\end{document}

The citation gets rendered as :

[1] John Smith et al. Super awesome book. 2012, p. 9001.

Which is a bit ambiguous. I mean, does it mean that I am citing only page 9001 of the Super awesome book, or does it mean that this is the work of someone which only corresponds to the 9001th page of this book?

I would prefer an output like this, is there any way to achieve that?

[1] John Smith et al. Super awesome book. 2012, 9001 pages.

I tried editing the .bib file, putting 9001 pages in the pages field to no avail. So far, the best solution I have would be to just remove the number of pages for books/theses, and thus removing the confusion.

share|improve this question

1 Answer 1

up vote 11 down vote accepted

Use the pagetotal instead of the pages field.

\documentclass{article}

\usepackage{biblatex}

% Keep abbreviations in general, but use "pages" to format the `pagetotal` field
\DeclareFieldFormat{pagetotal}{\mkpagetotal[bookpagination]{#1~pages}}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@book{fictivebook2012,
author = "John Smith and Bobby Fisher and Ron Jeremy and Martha Stewart and Barrack Obama",
title = "Super awesome book",
year = "2012",
pagetotal = "9001",
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}

This citation is useless, we only want a bibliography \cite{fictivebook2012}.

\printbibliography

\end{document}

enter image description here

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.