Como editar o `plainnat.bst` evitando classificar por chave

Como editar o `plainnat.bst` evitando classificar por chave

Estou usando natbibpacote e plainnatestilo 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:

insira a descrição da imagem aqui

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 articletipo. Se isso for verdade, então natbibwith plainnatclassificará esses artigos da seguinte maneira. Observação: estou usando a versão 2007 do plainnat.bst, que é a mais recente nesta postagem em 2022.

  1. A presortfunção (começando na linha #1313) aplica a author.sortregra (na linha #1326).

  2. A author.sortfunção (começando na linha #1248) primeiro testa se o authorcampo está vazio. Como o seu não é, a função passa seu authorcampo para a sort.format.namesfunção.

  3. Colei uma cópia da sort.format.namesfunçã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 o authorbloco. 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 ao yearcampo, 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 whileloop)

    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.bstarquivo para abordar a classificação sem autor.

informação relacionada