[Tex/LaTex] force the amsalpha bibliography style to sort papers by the same authors chronologically

bibliographiesbibtex

Can I force the amsalpha bibliography style to sort papers by the same
authors chronologically?

I am using amsrefs package with the alphabetic option, which gives each reference a label such as [GLS07], or [Hap88]. Essentially the rule is that for single author papers, the label will consist of the first three letters of the surname, plus the last two digits of the year, and for papers with multiple authors the label will be the complete list of last initials, plus the last two digits of the year.

The amsrefs package overrules the \bibliographystle command, so this is omitted; the package is being run with the options abbrev, alphabetic and msc-links (alphabetic being the option that produces the alpha-style labels).

In the output, the references are sorted alphabetically by label. There is a question asking how to force the bibliography to be sorted alphabetically by author – I agree that this is not a good thing to do, as it will make it potentially harder for the reader to find the right reference, particularly if there are lots of them. However, sorting purely alphabetically by label puts, for example, [FZ00] before [FZ99]. To me this seems confusing – I understand that the 00 refers to the year 2000 and 99 to 1999, so [FZ99] should come before [FZ00]. Can I change this, ideally without having to manually specify the entire order of the bibliography?

(I guess there is a small additional question – do most people agree that you would look for [FZ00] after [FZ99]? If it's just me, I should probably leave it alone. I suppose there's an argument to be made that just as the reader doesn't necessarily know what the initials are for in order to search alphabetically by author in the list of references, they also don't know whether 00 is 1900 or 2000; but I think in this case it's easier to guess.)

Update: If I don't use amsrefs, and instead specify the style using \bibliographystyle{amsalpha}, then the problem goes away. But then I don't know how to use the abbrev and msc-links options, which I still want. It does seem that there should be a way to get this to work through amsrefs.

Best Answer

the canonical order of bibtex sort fields is the following: author(s) (or sort keys if an alpha sort is requested), year, title.

whether the bibtex ordering is controlled by a plain or an alpha .bst file, if the year of publication is the same, the element that will control the sort is the title. so if the title of the earlier part begins with "z", only special handling can force that to sort before an item with a title starting with "a". if the year of publication is different, and the second part was published in a year earlier than the first, the same problem holds.

let's take an extreme case. part "a" was published in 2000 and part "b" in 1999. this will result in sort keys (if an alpha style is used) for which the two-digit years sort the entries "out of order". even fiddling with how the title is sorted won't help here. the most direct approach is to adjust the year field in a way that won't affect the output except for the order of the entries.

the fact that multiple works by the same author(s) don't necessarily sort in logical order was recognized by the author of bibtex , who provided this workaround in the manual (texdoc bibtex) on page 4.

in the .bib database, add this command:

@PREAMBLE{ "\newcommand{\noopsort}[1]{} " }

this will be passed along to the .bbl file, from which it will be applied in the latex run.

in the affected item entries in the .bib file, modify the date fields to do your dirty work:

year = "{\noopsort{1999b}}1999"
 ...
year = "{\noopsort{1999a}}2000"

of course, the artificial sort field should be chosen so that these entries (according to the manual)

come out in a reasonable spot relative to the author's other works.

although the \noopsort technique could be applied to the title, always using the date should not have any untoward effect in future processing; only if additional books by the same author are added to the .bib file would it even have to be checked.