Estou escrevendo uma proposta de financiamento onde a agência financiadora especifica o seguinte estilo de economia de espaço para entradas na bibliografia:
Publicações com múltiplos autores podem ser citadas da seguinte forma: primeiro autor, segundo autor, et int, último autor.
Aparentemente, isso não foi algo inventado pela agência financiadora; o estilo de citação "et Int" foi proposto emEditor de Ciênciasem 2003 [1], então obviamente ganhou alguma força desde então. Mas não consigo descobrir como fazer isso (ou se é mesmo possível fazer isso) no Biblatex. Eu esqueci algo no manual (para a versão 3.7) ou precisarei lançar minha própria solução?
Eu sei que você podetruncaro número de nomes impressos usando as opções minbibnames
e maxbibnames
, mas até onde sei, as listas de nomes truncados sempre terminam com a string fixa "e outros."(ou qualquer que seja o valor de andothers
que esteja no estilo da bibliografia). Será possível modificar dinamicamente o valor de andothers
para que seja "e int, " seguido do nome do último autor (ou editor) de qualquer item bibliográfico que esteja sendo impresso?
[1] Sergei A. Grando e Jeffrey D. Bernhard."Primeiro Autor, Segundo Autor, et Int, e Último Autor": Uma Proposta de Sistema de Citação para Artigos Biomédicos. Editor de Ciências26(4):122–123, julho–agosto de 2003.
Responder1
Infelizmente, o artigo não foi muito claro sobre os detalhes reais do estilo proposto, então você terá que conviver com minha interpretação por enquanto.
Esta implementação deixa de fora os 'autores intervenientes' se forem dois ou mais autores (parece injusto substituir apenas um autor por 'et int.', poderíamos também nomeá-lo por extenso) após o número do autor bbx:etinttrunc
e antes do último autor. No exemplo bbx:etinttrunc
está definido como dois como na sua pergunta.
Presumo que as coisas poderiam ser facilitadas se o Biber suportasse isso nativamente, mas também funciona assim.
MWE
\documentclass[american]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=numeric, backend=biber, maxnames=999]{biblatex}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@inproceedings{cheshkov,
author = {Cheshkov, S. and Tajima, T. and Chiu, C. and Breitling, F.},
title = {Emittance control in Laser Wakefield Accelerator},
booktitle = {American Institute of Physics Conference Series},
date = {2001-05},
volume = {569},
pages = {163-176},
}
@article{dehant,
author = {Veronique Dehant and Bruce Banerdt and Philippe Lognonné and Matthias Grott
and Sami Asmar and Jens Biele and Doris Breuer and François Forget
and Ralf Jaumann and Catherine Johnson and Martin Knapmeyer and Benoit Langlais
and Le Feuvre, Mathieu and David Mimoun and Antoine Mocquet and Peter Read
and Attilio Rivoldini and Oliver Romberg and Gerald Schubert and Sue Smrekar
and Tilman Spohn and Paolo Tortora and Stephan Ulamec and Susanne Vennerstrøm},
journal = {Planetary and Space Science},
number = {1},
pages = {123 - 145},
title = {Future {Mars} geophysical observatories for understanding its internal structure, rotation, and evolution},
volume = {68},
year = {2012},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
%\renewcommand*{\finalnamedelim}{\multinamedelim}
\NewBibliographyString{etint}
\DefineBibliographyStrings{english}{etint = {et\addabbrvspace int\adddot}}
\newcounter{bbx:etinttrunc}
\setcounter{bbx:etinttrunc}{2}
\newtoggle{bbx:showetint}
\DeclareNameFormat{given-family-etint}{%
\ifnumequal{\value{listcount}}{1}
{\toggletrue{bbx:showetint}}
{}%
\ifboolexpr{
test {\ifnumless{\value{listcount}}{\value{bbx:etinttrunc}+1}}
or test {\ifnumequal{\value{listcount}}{\value{liststop}}}
or
( test {\ifnumequal{\value{listcount}}{\value{bbx:etinttrunc}+1}}
and test {\ifnumequal{\value{liststop}}{\value{bbx:etinttrunc}+2}})
}
{\ifgiveninits
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefix}
{\namepartsuffix}}
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}}}
{\iftoggle{bbx:showetint}
{\usebibmacro{name:delim}{\bibstring{etint}}%
\bibstring{etint}%
\togglefalse{bbx:showetint}}
{}}%
\usebibmacro{name:andothers}}
\DeclareNameAlias{sortname}{given-family-etint}
\DeclareNameAlias{author}{given-family-etint}
\DeclareNameAlias{editor}{given-family-etint}
\DeclareNameAlias{translator}{given-family-etint}
\begin{document}
\cite{aksin,worman,sigfridsson,companion,cotton,cheshkov,dehant}
\printbibliography
\end{document}
Se você precisar omitir o terceiro autor em uma obra de quatro autores, precisará de um arquivo \DeclareNameFormat{given-family-etint}
.
\DeclareNameFormat{given-family-etint}{%
\ifnumequal{\value{listcount}}{1}
{\toggletrue{bbx:showetint}}
{}%
\ifboolexpr{
test {\ifnumless{\value{listcount}}{\value{bbx:etinttrunc}+1}}
or test {\ifnumequal{\value{listcount}}{\value{liststop}}}}
{\ifgiveninits
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefix}
{\namepartsuffix}}
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}}}
{\iftoggle{bbx:showetint}
{\usebibmacro{name:delim}{\bibstring{etint}}%
\bibstring{etint}%
\togglefalse{bbx:showetint}}
{}}%
\usebibmacro{name:andothers}}
Responder2
A data do autor e os estilos detalhados incluídos no biblatex-archaeology
pacote fornecem uma preservelastauthor
opção que faz exatamente o que você está solicitando. A et Int
expressão é direcionada pelo \finalnameellipsis
comando ali.