3

I have a problem with alphabetical order of my bibliography, which is not due to my .bib file, but rather in the way in which the .bbl file is generated. Let me explain the problem by means of a fictitious example.

Imagine that in my .bib file I have the following two entries:

@article{ABC14,
    author = {Abel, A. and Barnett, B. and Conway, C.},
    journal = {Journal 1},
    title = {Title 1},
    year = {2014}
}
@article{AD10,
    author = {Abel, A. and Donald, D.},
    journal = {Journal 2},
    title = {Title 2},
    year = {2010}
}

After running bibtex, I obtain a .bbl file where the two corresponding entries are

\bibitem[Abel and Donald(2010)]{AD10}
A. Abel and D. Donald.
\newblock {Title 2}.
\newblock \emph{Journal 2}, 2010.

\bibitem[Abel et~al.(2014)Abel, Barnett, and Conway]{ABC14}
A. Abel, B. Barnett and C. Conway.
\newblock {Title 1}.
\newblock \emph{Journal 1}, 2014.

As a consequence, these two articles appear in the wrong alphabetical order in the bibliography at the end of my article. I suspect that the issue lies somewhere in the .bst file and, in particular, in the function FUNCTION {format.names} which introduces the "et al." in place of the full list of authors. Anyhow, how can I fix this issue?

4
  • Maybe this answer can help you? See the section about modifying the unsrt.bst file.
    – barghest
    Commented Aug 15, 2015 at 12:25
  • 1
    What bst style are you using?
    – egreg
    Commented Aug 15, 2015 at 13:12
  • I am using abbrvnat.bst
    – alezok
    Commented Aug 15, 2015 at 13:14
  • 2
    With biblatex/biber the sorting would be correct. With natbib+bibtex+abbrvnat you will probably have to add something to the bibentry to fool bibtex. E.g. author = {Abel\sort{a}, A. and Donald, D.}, along with \newcommand\sort[1]{}, Commented Aug 15, 2015 at 17:07

2 Answers 2

2

As @UlrikeFischer has already pointed out in a comment, and as @Robert has confirmed in a separate answer, the alphabetical sorting mechanism employed by the plainnat and abbrvnat bibliography styles appears to thrown off if the citation keys of entries with the same first author are followed by either "et al" (for three or more authors) or just a single (second) author.

Until this issue is fixed by the author/maintainer of the natbib package, you'll have to employ the \noopsort device that's illustrated in the following example.

enter image description here

\documentclass{article}

\usepackage{filecontents}
\begin{filecontents}{mybib.bib}
@preamble{ "\providecommand\noopsort[1]{}" }
@article{ABC14,
    author  = {Adrienne \noopsort{1}Abel and Bertha Barnett and Christine Conway},
    journal = {Journal 1},
    title   = {Title 1},
    year    = {2014},
}
@article{AD10,
    author  = {Adrienne \noopsort{2}Abel and Deirdre Donald},
    journal = {Journal 2},
    title   = {Title 2},
    year    = {2010},
}
\end{filecontents}

\bibliographystyle{abbrvnat}
\usepackage[round]{natbib}

\begin{document}
\nocite{*}
\bibliography{mybib}
\end{document}
1
  • As a follow up. This answer correctly sorts the two entries above, but it will sort Abel after names that start with N. It would then be necessary to include \noopsort in all entries between Abel and N. A solution is to create a command such as @preamble{ "\providecommand\abel[1]{}" }. In this way, it will not be necessary to include \noopsort in the other entries after Abel.
    – Andre
    Commented Jan 24, 2018 at 17:23
1

This problem is caused by the bibliography style files of the natbib package. I can reproduce the issue with both plainnat and abbrvnat. In each case, BibTeX sorts the bibliography entries by the shortened author lists rather than by the full author lists as they appear in the bibliography. So in your case, "Abel and Donald(2010)" comes before "Abel et~al.(2014)". Moreover, all three-author papers with Abel as first author will in effect be sorted chronologically by year, rather than alphabetically by author names.

I do not think anyone has published a fix for that bug yet.

An admittedly inelegant, but effective, work-around would be to edit the .bbl file by hand, fixing any issues related to the incorrect sorting, before the final LaTeX production run of the document. If you go this route, be sure not to re-run BibTeX after editing the .bbl file, as doing so would over-write the corrections you've applied by hand to the .bbl file.

6
  • @mico, sorry for the sloppiness. I have corrected my original post.
    – Robert
    Commented Mar 11, 2016 at 16:24
  • Thanks for fixing up your write-up. (I've taken the liberty of editing it some more.) As it stands, I'm afraid your posting still reads more like an extended comment -- and a (re)confirmation that the problem is real -- than an answer to the problem.
    – Mico
    Commented Mar 11, 2016 at 17:38
  • @mico thanks. Of course, a crude work-around is to manually correct the wrongly sorted items in the .bbl file before the final production of the document. Could add this to the answer, if that helps.
    – Robert
    Commented Mar 11, 2016 at 18:52
  • By all means -- offering a specific work-around (even though it may be crude) could be quite useful to some readers.
    – Mico
    Commented Mar 11, 2016 at 18:53
  • @mico thanks. I cannot (yet) comment on your answer, but a more general approach would be to use Abel\noopsort{BarnettConway} and Abel\noopsort{Donald}. Agreed?
    – Robert
    Commented Mar 11, 2016 at 20:01

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .