64

How can I cite a range of papers, the output is a range of numbers, instead of a list of numbers? In other words, when I type

... some dummy text here is due to me \cite{me1, me2, me3, me4} ...

I want the output to be

... some dummy text here is due to me [3-6] ...

instead of

... some dummy text here is due to me [3.4.5.6] ...

(I use LaTeX, and am currently using the amsart class and whatever it includes. But I am open to other suggestions.)

55

The cite, natbib, and biblatex packages, at least, will all do this.


A minimal example which demonstrates the behaviour is:

\documentclass{article}
\begin{document}
hello \cite{article-full,book-full,mastersthesis-full}
\bibliographystyle{unsrt}
\bibliography{xampl}
\end{document}

If you have basic bibliography needs, adding \usepackage{cite} will produce the desired behaviour.

If you have more complex bibliography needs, nowadays I recommend biblatex as a first choice, although natbib has a long and distinguished history in this space and is possibly a better option if you want a more ‘stable’ solution.

For biblatex, you would now write this example as:

\documentclass{article}
\usepackage[style=numeric-comp]{biblatex}
\bibliography{xampl}
\begin{document}
hello \cite{article-full,book-full,mastersthesis-full}
\printbibliography
\end{document}

Noting that you need to process the bibliography using biber instead of bibtex. (You can use bibtex by adding backend=bibtex to the package options, but I'm not sure if that is currently recommended for new documents.)

If you are using natbib, a minimal example would be:

\documentclass{article}
\usepackage[numbers,sort&compress]{natbib}
\begin{document}
hello \citep{article-full,booklet-full,mastersthesis-full}
\bibliographystyle{unsrtnat}
\bibliography{xampl}
\end{document}
  • 3
    Ah, the cite package. That gives a minimal work solution to my problem. Thanks. – Willie Wong Oct 7 '10 at 15:50
  • 1
    (I also realized that the amsrefs package can do it, but I didn't feel like retyping 92 citation entries.) – Willie Wong Oct 7 '10 at 15:52
  • warning -- biblatex hasn't been tested with amsart, and i can't predict whether it will work; i'm inclined to think it may not be totally smooth sailing. – barbara beeton Dec 30 '11 at 21:32
  • Hi will, is there any chance of expanding the answer? This seems to be high up on google, but it is a bit unspecific. Just as the question :-( – Johannes_B Aug 27 '17 at 9:45
  • @Johannes_B — thanks for noticing; what do you think of the new text? – Will Robertson Aug 27 '17 at 11:51
39

if you add

\usepackage[numbers,sort&compress]{natbib}

to your preamble, you should get the expected result.

  • one question! In the case of the 'cite' package, it ok to use: '\usepackage[numbers,sort&compress]{cite}' – Josh Jun 23 '13 at 14:31
  • 1
    If I test it, I see that \usepackage[square,numbers,sort&compress]{natbib} seems to be the same as \usepackage{cite} if using the plain bibliography style. The options of the cite package can be found in its documentation (numbers isn't one of them...). – Habi Jun 24 '13 at 15:06
29

Using biblatex, sorting and compressing numeric keys is achieved with

\usepackage[style=numeric-comp]{biblatex}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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