104

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.)

3 Answers 3

95
+50

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}
8
  • 4
    Ah, the cite package. That gives a minimal work solution to my problem. Thanks. Commented Oct 7, 2010 at 15:50
  • 1
    (I also realized that the amsrefs package can do it, but I didn't feel like retyping 92 citation entries.) Commented Oct 7, 2010 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. Commented Dec 30, 2011 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
    Commented Aug 27, 2017 at 9:45
  • @Johannes_B — thanks for noticing; what do you think of the new text? Commented Aug 27, 2017 at 11:51
53

if you add

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

to your preamble, you should get the expected result.

2
  • one question! In the case of the 'cite' package, it ok to use: '\usepackage[numbers,sort&compress]{cite}'
    – Josh
    Commented Jun 23, 2013 at 14:31
  • 2
    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
    Commented Jun 24, 2013 at 15:06
36

Using biblatex, sorting and compressing numeric keys is achieved with

\usepackage[style=numeric-comp]{biblatex}
1
  • Can confirm that it works for LyX Version 2.3.6.1, by using as configs: Tools -> Preferences -> Output -> LaTeX -> processor=biber and in Document -> Settings -> Bibliography I've put citation style = numeric-comp and bibliography style = ieee, but this latter one won't matter, I'm just being thorough about something that behaves as expected for my use case, which was appearence order and the citing range [as wanted by OP]
    – daydreamer
    Commented Jul 13, 2021 at 0:13

You must log in to answer this question.

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