Classifique a bibliografia em ordem alfabética quando o primeiro autor for o mesmo usando o estilo bibliográfico plainnat

Classifique a bibliografia em ordem alfabética quando o primeiro autor for o mesmo usando o estilo bibliográfico plainnat

Tenho muitos artigos escritos por Lionel Ho e colegas de trabalho. Eu uso natbibpacote e plainnatestilo. Quando compilo, a bibliografia não é ordenada pelo sobrenome do segundo autor. Como posso resolver isso?

\documentclass[10pt,a4paper]{article}
\usepackage[top=1cm,bottom=1cm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[comma,authoryear,round,sort]{natbib}
\bibliographystyle{plainnat}
\setcitestyle{citesep={;},yysep={;}}
\begin{filecontents*}{\jobname.bib}
@Article{Ho2012,
  author   = {Ho, Lionel and Dreyfus, J. and Boyer, J. and Lowe, T. and Bustamante, H. and Duker, P. and Meli, T. and Newcombe, G.},
  title    = {Fate of...},
  year     = {2012},
}

@Article{Ho2007,
  author   = {Ho, Lionel and Hoefel, D. and Saint, C. P. and Newcombe, Gayle},
  title    = {Isolation...},
  year     = {2007},}

@Article{Ho2008,
  author  = {Ho, Lionel and Slyman, Najwa and Kaeding, Uwe and Newcombe, Gayle},
  title   = {Optimizing...},
  year    = {2008},}
\end{filecontents*}
\begin{document} 
\citep{Ho2012,Ho2007,Ho2008}
\bibliography{\jobname}
\end{document}

O resultado:

insira a descrição da imagem aqui

Eu tentei apagar a sortopção

\usepackage[comma,authoryear,round]{natbib}

Mas o resultado é o mesmo

Responder1

Uma solução rápida para o seu problema pode seguir as linhas do código a seguir:

% start of bib file
@preamble{ " \providecommand{\noopsort[1]{}} " }
@Article{Ho2012,
  author   = {Ho, Lionel and Dreyfus, J. and Boyer, J. and Lowe, T. and Bustamante, H. and Duker, P. and Meli, T. and Newcombe, G.},
  title    = {Fate of...},
  year     = {\noopsort{c}2012},}
@Article{Ho2007,
  author   = {Ho, Lionel and Hoefel, D. and Saint, C. P. and Newcombe, Gayle},
  title    = {Isolation...},
  year     = {\noopsort{a}2007},}
@Article{Ho2008,
  author  = {Ho, Lionel and Slyman, Najwa and Kaeding, Uwe and Newcombe, Gayle},
  title   = {Optimizing...},
  year    = {\noopsort{b}2008},}
% bib file continues...

A \noopsortmacro não faz nada, no que diz respeito ao LaTeX, mas desempenha um papel durante as operações do BibTeX. Basicamente, o BibTeX “vê” 3 entradas, com campos de ano fornecidos por “a2007”, “b2008” e “c2012”; adivinhe como eles são classificados. As partículas "a", "b" e "c" "desaparecem" durante o processamento subsequente pelo LaTeX.


Uma correção mais completa, para garantir que a classificação seja realizada automaticamente de acordo com os sobrenomes de todos os autores, envolve a modificação (uma cópia) do arquivo plainnat.bst. Sugiro que você proceda da seguinte forma:

  • Encontre os arquivos plainnat.bste chicago.bstem sua distribuição TeX. (Por que chicago.bst, você pode perguntar? É porque é um estilo babador que realiza a classificação com base nos sobrenomes de todos os autores.) Faça uma cópia plainnat.bste chame a cópia, digamos plainnat-mod.bst.Não edite diretamente um arquivo original da distribuição TeX.

  • Abra os arquivos plainnat-mod.bste chicago.bstem um editor de texto. O programa que você usa para editar seus arquivos tex funcionará bem.

  • Nos arquivos plainnat-mod.bste chicago.bst, localize a função chamada sort.format.names. (Nas minhas cópias desses arquivos, a função começa na linha 1207 e na linha 1407, respectivamente.)

  • No arquivo plainnat-mod.bst, exclua todas as 29 linhas (1207 a 1235) da função sort.format.names. Copie e cole todas as 21 linhas (1407 a 1427) da função sort.format.namesno chicago.bstlocal plainnat-mod.bstonde você acabou de excluir um monte de linhas.

  • Feche o arquivo chicago.bst, salve e feche o arquivo plainnat-mod.bst. Salve o último arquivo no diretório onde seu arquivo tex principal está localizado ou em um diretório pesquisado pelo BibTeX. Se você escolher a última opção, certifique-se de atualizar o banco de dados de nomes de arquivos da sua distribuição TeX adequadamente.

  • No seu arquivo tex principal, altere a instrução \bibliographystyle{plainnat-mod}para \bibliographystyle{plainnat}. Em seguida, execute um ciclo completo de recompilação (látex, bibtex e látex mais duas vezes) para propagar totalmente todas as alterações.

Feliz BibTeXing!

informação relacionada