9

I have a bibliography in which a particular author wrote two papers in the same year. Bibtex is sorting them alphabetically by title, but I want them listed chronologically. (So in the example below 'universal grammar' should precede 'English as a formal language'.) What's the appropriate way to flip the order?

MWE:

\documentclass{article}
\usepackage{natbib}
\begin{document}

... formal semantics in the  Montagovian tradition \citep{montague1970aug,montague1970befl,montague1973ptq}. 

\bibliographystyle{harvard}
\bibliography{test}
\end{document}

This generates the text 'formal semantics in the Montagovian tradition (Montague, 1970b,a, 1973)' whereas I actually want '1970a,b,1973'.

test.bib file for MWE:

@incollection{montague1973ptq,
  title={The proper treatment of quantification in ordinary {English}},
  author={Montague, Richard},
  booktitle={Approaches to natural language},
  editor={Hintikka, K. Jaakko J. and Moravcsik, Julius M.E. and Suppes, Patrick},
  pages={221--242},
  year={1973},
  publisher={Dordrecht}
}

@article{montague1970aug,
  title={Universal grammar},
  author={Montague, Richard},
  journal={Theoria},
  volume={36},
  number={3},
  pages={373--398},
  year={1970},
  publisher={Blackwell Synergy}
}

@incollection{montague1970befl,
  title={English as a formal language},
  author={Montague, Richard},
  booktitle={Linguaggi nella Societa e nella Tecnica},
  editor={Visentini, Bruno and others},
  publisher={Edizioni di Comunità},
  pages={189--224},
  year={1970}
}
3
  • 1
    By "chronologically" you mean "in order of local citation" so as to get "1970a,b,1973" in the text? By the way, Societa in the third item should be Società
    – egreg
    Oct 17, 2012 at 13:25
  • I mean that (as far as I can determine) 'Universal grammar' was in fact published before 'English as a formal language', so it makes sense to cite them in that order.
    – Mohan
    Oct 17, 2012 at 13:42
  • (+Thanks for the typographical correction.)
    – Mohan
    Oct 17, 2012 at 13:49

2 Answers 2

7

Since the sorting order is 1. year, 2. lexicographic by title, you can supply a mock argument to the title: write this in your LaTeX document

\newcommand{\mockalph}[1]{}

and insert the titles respectively as

title={{\mockalph{bbbbb}}Universal grammar},

title={{\mockalph{ccccc}}English as a formal language},

so that the ordering will be with respect to bbbbb and ccccc, which won't be printed anyway.

Why not aaaaa for the first? Well, if you discover a book by Montague that's been printed before "Universal grammar", …

1

use sort option

\usepackage[sort]{natbib}
4
  • Thanks! Unfortunately I simplified things a little too much to get my MWE... I'm actually using \documentclass[natbib]{svmono} rather than \documentclass{article}+\usepackage{natbib}. Is there a way to use sort with svmono?
    – Mohan
    Oct 17, 2012 at 13:43
  • 1
    Yes, \documentclass[natbib,sort]{svmono}
    – deimi
    Oct 17, 2012 at 13:50
  • Ah... that seems to have sorted the citations in a postprocessing fashion. What I actually wanted was to swap the labels '1970a' and '1970b' so that 1970a referred to the work that was published first rather than the one whose title began earlier in the alphabet.
    – Mohan
    Oct 17, 2012 at 13:56
  • That's right. In this case sort option do postprocessing. If you wish to swap bibitem entries (swaping bibitem entries will print labels '1970a,b' in the order you want) just and labels to the 'year' entries in .bib file, i.e., year={1970a} for 'montague1970aug' article and year={1970b} for 'montague1970befl' and rerun bibtex.
    – deimi
    Oct 17, 2012 at 14:47

You must log in to answer this question.

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