Substituindo \maxbibnames para autor específico

Substituindo \maxbibnames para autor específico

Estou usando o biblatex com a opção maxbibnames=2 para forçar a substituição dos nomes dos autores pore outrosquando seu número excede maxbibnames. \usepackage[style=numeric-comp,sorting=none,giveninits=true,maxbibnames=2,backend=biber]{biblatex}

No entanto, quero suprimir esse comportamento quando um autor específico estiver na lista de autores. Qualquer sugestão será muito bem-vinda.

EDIT: Adaptando @Werner MWE abaixo, gostaria que a saída bibliográfica do artigo 'def' imprimisse os dois primeiros autores seguidos de et al, com o segundo autor em negrito.

\documentclass{article}

\usepackage{filecontents}
\begin{filecontents*}{references.bib}
@article{abc,
  title    = {A title},
  author   = {A Author and B Bauthor and C Cauthor},
  year     = {2000}
  }
@article{def,
  title    = {A title},
  author   = {D Duthor and E Eauthor and F Fauthor},
  year     = {2000},
  options  = {maxbibnames = 2},
  AUTHOR+an = {2=highlight} % used to highlight an author's name, see @PLK suggestion http://tex.stackexchange.com/questions/73136/make-specific-author-bold-using-biblatex
  }
\end{filecontents*}

\usepackage[style=numeric-comp,sorting=none,giveninits=true,maxbibnames=2,backend=biber]{biblatex}

\addbibresource{references.bib}

\renewcommand*{\mkbibnamefamily}[1]{%
  \ifitemannotation{highlight}
    {\textbf{#1}}
    {#1}}

\begin{document}

\nocite{*}

\printbibliography

\end{document}

O código acima não produzirá a saída desejada; em vez disso, mostrará o primeiro autor seguido de et al. Se maxbibnames=3 for usado (o número de autores ou superior) serão mostrados todos os autores com o segundo em destaque. A desvantagem adicional é que esses parâmetros (Opções e Autor+an) precisam ser codificados para cada entrada do babador. Alguém pode sugerir uma solução que faça algo como o seguinte pseudocódigo:

define authorsToBoldList = {E Eauthor; D Duthor}  
for each BibEntry {  
   foundAuthorIndex = find(authorsToBoldList,BibEntryAuthors)  
   If notEmpty(foundAuthorIndex) {  
     display BibEntryAuthors(1:max(foundAuthorIndex))% followed by et al if less than BibEntryAuthors   
     for each foundAuthorIndex {  
       highlight(BibEntryAuthors(foundAuthorIndex ))  
     }  
    }  
 }  

Responder1

Cadabiblatexopção tem um certo escopo. Alguns só podem ser usados ​​"[no] tempo de carregamento" ou como uma referência "global", enquanto outros podem ser definidos adicional/exclusivamente "por tipo" ou "por entrada". maxbibnamespode ser executado "por entrada" por meio do optionsvalor-chave:

insira a descrição da imagem aqui

\documentclass{article}

\usepackage{filecontents}
\begin{filecontents*}{references.bib}
@article{abc,
  title    = {A title},
  author   = {A Author and B Bauthor and C Cauthor},
  year     = {2000}
}
@article{def,
  title    = {A title},
  author   = {D Duthor and E Eauthor and F Fauthor},
  year     = {2000},
  options  = {maxbibnames = 4}
}
\end{filecontents*}

\usepackage[style=numeric-comp,sorting=none,giveninits=true,maxbibnames=2,backend=biber]{biblatex}

\addbibresource{references.bib}

\begin{document}

\nocite{*}

\printbibliography

\end{document}

Referência de escopo: ApêndiceEscopo da Opção E(pág. 253 dobiblatexdocumentação).

informação relacionada