
Estou usando natbib
pacote e plainnat
estilo para minhas citações e referências. Infelizmente, quando cito artigos diferentes do mesmo autor, mas de coautores diferentes, a bibliografia é classificada por chave.
Por exemplo:
A chave para Ho, Meyn é Ho2006
, para Ho, Lambling é Ho2011
, e para Ho, Dreyfus é Ho2012
. Certamente o LaTeX está considerando as chaves antes do sobrenome do segundo autor.
Como posso resolver isso???
Responder1
Conforme mencionado nos comentários acima em sua postagem original, o MWE é necessário para que outros descubram o que você está tentando alcançar e como está tentando alcançá-lo. Sem isso, não posso ter certeza de que estou respondendo à sua pergunta, mas ainda assim fornecerei aqui algumas informações que podem ser úteis para você.
As entradas na sua captura de tela parecem ser do article
tipo. Se isso for verdade, então natbib
with plainnat
classificará esses artigos da seguinte maneira. Observação: estou usando a versão 2007 do plainnat.bst
, que é a mais recente nesta postagem em 2022.
A
presort
função (começando na linha #1313) aplica aauthor.sort
regra (na linha #1326).A
author.sort
função (começando na linha #1248) primeiro testa se oauthor
campo está vazio. Como o seu não é, a função passa seuauthor
campo para asort.format.names
função.Colei uma cópia da
sort.format.names
função (começando na linha #1207) abaixo para auxiliar nesta explicação. Pelo seu exemplo acima, parece que suas entradas têm 6, 4 ou 7 autores, respectivamente, considerando ponto-e-vírgula como delimitadores e um ponto final para finalizar oauthor
bloco. O código aqui parece estar funcionando como você mostrou na captura de tela, classificando pelo primeiro autor e depois pelo ano de cada uma de suas entradas. Você notará a função referente aoyear
campo, que entra em ação:a. Depois de classificar pelo primeiro autor E
b. Existem mais autores além de "outros" E
c. Existem mais de dois autores no total E
d. A função está no segundo autor (segunda vez no
while
loop)e. ENTÃO, classifique por ano.
Observe que a linguagem no arquivo BST implementa uma notação pós-fixada.
FUNCTION {sort.format.names}
{ 's :=
#1 'nameptr :=
""
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{
s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't :=
nameptr #1 >
{
" " *
namesleft #1 = t "others" = and
{ "zzzzz" * }
{ numnames #2 > nameptr #2 = and
{ "zz" * year field.or.null * " " * }
'skip$
if$
t sortify *
}
if$
}
{ t sortify * }
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}
Não obstante, há uma resposta para uma postagem do TeX Stack Exchangeaquidescrevendo como personalizar o plainnat.bst
arquivo para abordar a classificação sem autor.