Comment grouper des références bibliographiques multiples ?#

Prenons un exemple :

% Un fichier .bib créé par le document avec l'environnement filecontents
\begin{filecontents}[nosearch,overwrite]{\jobname.bib}
  @book{sylda,
    title = {La Syldavie},
    author = {Remi, Georges},
    year = {1938}              }
  @book{bordu,
    title = {La Bordurie},
    author = {Remi, Georges},
    year = {1938}              }
  @book{polde,
    title = {La Poldévie},
    author = {Remi, Georges},
    year = {1935}              }
  @book{saori,
    title = {Le Sao Rico},
    author = {Remi, Georges},
    year = {1941}              }
  @book{gopal,
    title = {Le Gopal},
    author = {Remi, Georges},
    year = {1939}              }
  \end{filecontents}

% Le document LaTeX
\documentclass[french]{article}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \usepackage{babel}          % Réglages linguistiques (avec french)
  \pagestyle{empty}           % N'affiche pas de numéro de page

\begin{document}
Nous devons à Georges \textsc{Remi} de nombreux ouvrages incontournables, 
tout particulièrement \cite{sylda,bordu,polde,saori}.
\bibliographystyle{plain-fr}
\nocite{*}
\bibliography{\jobname}
\end{document}

Vous pourrez noter que vous allez obtenir les références dans l’ordre de leur entrée, ce qui n’est pas très heureux. Bien sûr, vous pourriez vous amuser à trier les références dans la commande \cite, mais cette tâche manuelle devrait être éventuellement refaite si le fichier .bib change… et le résultat restera visuellement médiocre.

1.  Avec l’extension cite#

L’extension cite trie les références par ordre numérique et détecte les séquences, ce qui donne un résulat plus élégant.

% Un fichier .bib créé par le document avec l'environnement filecontents
\begin{filecontents}[nosearch,overwrite]{\jobname.bib}
  @book{sylda,
    title = {La Syldavie},
    author = {Remi, Georges},
    year = {1938}              }
  @book{bordu,
    title = {La Bordurie},
    author = {Remi, Georges},
    year = {1938}              }
  @book{polde,
    title = {La Poldévie},
    author = {Remi, Georges},
    year = {1935}              }
  @book{saori,
    title = {Le Sao Rico},
    author = {Remi, Georges},
    year = {1941}              }
  @book{gopal,
    title = {Le Gopal},
    author = {Remi, Georges},
    year = {1939}              }
  \end{filecontents}

% Le document LaTeX
\documentclass[french]{article}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \usepackage{babel}          % Réglages linguistiques (avec french)
  \pagestyle{empty}           % N'affiche pas de numéro de page
  \usepackage{cite}

\begin{document}
Nous devons à Georges \textsc{Remi} de nombreux ouvrages incontournables, 
tout particulièrement \cite{sylda,bordu,polde,saori}.
\bibliographystyle{plain-fr}
\nocite{*}
\bibliography{\jobname}
\end{document}

2.  Avec l’extension natbib#

L’extension natbib, avec les options numbers et sort&compress, fait la même chose quand elle est utilisée avec ses propres styles bibliographiques (plainnat.bst et unsrtnat.bst).

% Un fichier .bib créé par le document avec l'environnement filecontents
\begin{filecontents}[nosearch,overwrite]{\jobname.bib}
  @book{sylda,
    title = {La Syldavie},
    author = {Remi, Georges},
    year = {1938}              }
  @book{bordu,
    title = {La Bordurie},
    author = {Remi, Georges},
    year = {1938}              }
  @book{polde,
    title = {La Poldévie},
    author = {Remi, Georges},
    year = {1935}              }
  @book{saori,
    title = {Le Sao Rico},
    author = {Remi, Georges},
    year = {1941}              }
  @book{gopal,
    title = {Le Gopal},
    author = {Remi, Georges},
    year = {1939}              }
  \end{filecontents}

% Le document LaTeX
\documentclass[french]{article}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \usepackage{babel}          % Réglages linguistiques (avec french)
  \pagestyle{empty}           % N'affiche pas de numéro de page
  \usepackage[numbers, sort&compress]{natbib}

\begin{document}
Nous devons à Georges \textsc{Remi} de nombreux ouvrages incontournables, 
tout particulièrement \cite{sylda,bordu,polde,saori}.
\bibliographystyle{plainnat}
\nocite{*}
\bibliography{\jobname}
\end{document}

3.  Avec biblatex#

De son côté, biblatex a un style intégré, numeric-comp, pour obtenir ce résultat.

% Un fichier .bib créé par le document avec l'environnement filecontents
\begin{filecontents}[nosearch,overwrite]{\jobname.bib}
  @book{sylda,
    title = {La Syldavie},
    author = {Remi, Georges},
    year = {1938}              }
  @book{bordu,
    title = {La Bordurie},
    author = {Remi, Georges},
    year = {1938}              }
  @book{polde,
    title = {La Poldévie},
    author = {Remi, Georges},
    year = {1935}              }
  @book{saori,
    title = {Le Sao Rico},
    author = {Remi, Georges},
    year = {1941}              }
  @book{gopal,
    title = {Le Gopal},
    author = {Remi, Georges},
    year = {1939}              }
  \end{filecontents}

% Le document LaTeX
\documentclass[french]{article}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \usepackage{babel}          % Réglages linguistiques (avec french)
  \pagestyle{empty}           % N'affiche pas de numéro de page
  \usepackage[style=numeric-comp]{biblatex}

  \addbibresource{\jobname.bib}

\begin{document}
Nous devons à Georges \textsc{Remi} de nombreux ouvrages incontournables, 
tout particulièrement \cite{sylda,bordu,polde,saori}.
\nocite{*}
\printbibliography
\end{document}