I am putting together a CV in latex, and I am trying to get my list of publications to display in reverse chronological order. I can use \bibliographystyle{unsrt} as a workaround, and just order the entries manually, but I would naturally prefer if BibTeX did that for me.

Edit: Hmm... There seems to be no standard BibTeX style that does that, which is very surprising. I would expect that sorting publications in (reverse) chronological order is a common thing to do.

If you're willing to customise an existing style (any existing style which orders things in ascending date order), then take the corresponding .bst file, head to the bottom, and replace ITERATE {call.type$} with REVERSE {call.type$}.

Details: You can find the existing file with (on unixes) kpsewhich plain.bst (if you want to customize the plain style). Copy that file to, say, myplain.bst, edit it, and then use {myplain} as your bibliographystyle.

there are many lines with ITERATE like ITERATE {presort} or ITERATE {longest.label.pass} Which one is the good one?
–
pedrosaurioJun 23 '12 at 19:53

Good point. I edited the answer suitably. As Craig Finch's answer points out, to do a complete job would require adjusting the presort function to move the year field.or.null sortify line to the top of the function, but that's getting into more detailed .bst hacking.
–
Norman GrayJun 23 '12 at 21:19

The bibliography style plainyr is a good starting point if you don't want to (or cannot) use biblatex. This style is similar to plain, but sorts the references chronologically by year. To get reverse chronological order, copy plainyr.bst to another file (such as plainrevyr.bst). Edit the new file and replace every occurrence of ITERATE with REVERSE as described in the previous answer.

If you attempt to replace ITERATE with REVERSE in any other style you will change the sort order, but not the primary sort field. For example, starting with ieeetr results in a bibliography that is mostly sorted in reverse chronological order...and mostly isn't good enough for your CV!