Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

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}
}
share|improve this question
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 '12 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 '12 at 13:42
    
(+Thanks for the typographical correction.) –  Mohan Oct 17 '12 at 13:49

2 Answers 2

up vote 5 down vote accepted

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", …

share|improve this answer

use sort option

\usepackage[sort]{natbib}
share|improve this answer
    
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 '12 at 13:43
1  
Yes, \documentclass[natbib,sort]{svmono} –  deimi Oct 17 '12 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 '12 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 '12 at 14:47

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.