
Gostaria de saber como citar um artigo indicando o número total de páginas do artigo. Adicionei o campo pagetotal
ao .bib
arquivo e adicionei o seguinte código em meu preâmbulo:
\DeclareFieldFormat{pagetotal}{\mkpagetotal[bookpagination]{#1~pp.}}
No entanto, tanto com como sem este código, ou suas variantes com, Pagetotal
em vez de pagetotal
todas, falham. Compreensivelmente, a chave bookpagination
pode afetar apenas a forma como este campo é formatado para livros. Portanto, qualquer indicação na direção certa seria muito útil.
Responder1
Os estilos padrão biblatex
implementados standard.bbx
apenas imprimem o pagetotal
campo para tipos de entrada semelhantes a livros, como @book
, @collection
, @booklet
, @thesis
etc. Naturalmente, @article
não está entre esses tipos, portanto, por padrão, o pagetotal
é ignorado lá. Considerando o fato de que os artigos normalmente vêm com um pages
campo indicando a primeira e a última página do periódico em que podem ser encontrados, o pagetotal
campo parece realmente supérfluo, pois (em geral) seu valor informativo pode ser obtido por um pequeno cálculo no pages
campo (alguns periódicos on-line não possuem páginas propriamente ditas; nesses casos, pode ser útil).
Para incluir o pagetotal
na saída - apesar de sua redundância, temos que incluir o comando \printfield{pagetotal}%
no driver para @article
. Para fazer isso, conectamos a macro note+pages
que é usada apenas por@article
\renewbibmacro*{note+pages}{%
\printfield{note}%
\setunit{\bibpagespunct}%
\printfield{pages}%
\setunit{\bibpagespunct}% this ...
\printfield{pagetotal}% ... and this is new
\newunit}
Também nos certificamos de que o campo esteja formatado corretamente (já que o padrão bookpagination
não ajudará aqui)
\DeclareFieldFormat[article]{pagetotal}{\mkpagetotal[pagination]{#1}}
MWE
\documentclass{article}
\usepackage[style=authoryear, backend=biber]{biblatex}
\usepackage{filecontents}
\usepackage{hyperref}
\begin{filecontents*}{\jobname.bib}
@article{BarPalNumEst,
author = {Hilary C. Barth and Annie M. Paladino},
title = {The development of numerical estimation},
subtitle = {Evidence against a representational shift},
journal = {Developmental Science},
volume = {14},
number = {1},
pages = {125-135},
date = {2011-01},
doi = {10.1111/j.1467-7687.2010.00962.x},
gender = {pf},
pagetotal = {11},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\DeclareFieldFormat[article]{pagetotal}{\mkpagetotal[pagination]{#1}}
\renewbibmacro*{note+pages}{%
\printfield{note}%
\setunit{\bibpagespunct}%
\printfield{pages}%
\setunit{\bibpagespunct}%
\printfield{pagetotal}%
\newunit}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
pagetotal
Esta modificação também pode ser feita para os outros tipos de entrada atualmente ausentes . Para @inbook
, @incollection
e amigos, a modificação poderia ser feita em chapter+pages
. Mas aqui esta modificação parece especialmente desnecessária, uma vez que todas essas entradas devem conter números de página físicos adequados em seus pages
campos.
\renewbibmacro*{chapter+pages}{%
\printfield{chapter}%
\setunit{\bibpagespunct}%
\printfield{pages}%
\setunit{\bibpagespunct}%
\printfield{pagetotal}%
\newunit}