364 votes

Comment ordonner les citations par apparence en utilisant BibTeX ?

Par défaut (en utilisant l'option plain style) BibTeX ordonne les citations par ordre alphabétique.

Comment classer les citations par ordre d'apparition dans le document ?

51 votes

Question utile (upvoted), mais cela ne devrait-il pas appartenir à tex.stackexchange.com ?

21 votes

@ChthonicProject, je ne pense pas que tex.stackexchange.com ait été lancé avant 2010 et cette question date de 2008. De plus, la question serait trop vieille pour être migrée, elle vit donc ici.

3 votes

Supprimez les fichiers .aux et .bbl et reconstruisez-les.

289voto

Will Robertson Points 19581

Il y a trois bonnes réponses à cette question.

  • Utilisez le unsrt le style de bibliographie, si vous êtes satisfait de son formatage, sinon
  • Utilisez le makebst (lien) outil pour concevoir votre propre style de bibliographie

Et ma recommandation personnelle :

  • Utilisez le biblatex paquet (lien) . C'est l'outil de bibliographie le plus complet et le plus souple du monde LaTeX.

Utilisation de biblatex vous écrirez quelque chose comme

\documentclass[12pt]{article}
\usepackage[sorting=none]{biblatex}
\bibliography{journals,phd-references} % Where journals.bib and phd-references.bib are BibTeX databases
\begin{document}
\cite{robertson2007}
\cite{earnshaw1842}
\printbibliography
\end{document}

2 votes

Un avantage apparent du paquet biblatex qui m'a poussé à accepter cette réponse est qu'il permet d'éditer les styles de référence en utilisant des macros TeX plutôt qu'un voodoo BibTeX bizarre. D'autres paquets peuvent être meilleurs pour une solution plus rapide/plus fiable.

2 votes

Je dois ajouter que si vous utilisez biblatex. Il serait préférable d'utiliser \addbibresource au lieu de \bibliography. Alors \addbibresource{journals.bib,phd-references.bib}

2 votes

J'ai dû utiliser \usepackage[backend=bibtex, sorting=none]{biblatex} sinon les références n'apparaîtraient pas.

180voto

Changement

\bibliographystyle{plain}

à

\bibliographystyle{ieeetr}

Ensuite, refaites-le plusieurs fois pour remplacer la .aux et .bbl qui ont été créés lorsque vous avez utilisé le style simple.

Ou simplement supprimer le .aux et .bbl et reconstruire.

Si vous utilisez MiKTeX, vous ne devriez pas avoir besoin de télécharger quoi que ce soit d'autre.

4 votes

Merci ! Une solution excellente et simple !

0 votes

Super ! Merci pour cette solution simple.

7 votes

Si vous écrivez un article pour une publication ACM, alors unsrt serait meilleur que ieeetr car ce dernier est destiné au papier IEEE dont le format est légèrement différent. unsrt et abbrv produit le même type de mise en forme. Vous pouvez regarder ceci lien

25voto

Brendan Points 7674

La meilleure solution que j'ai trouvée est d'utiliser le unsrt qui semble être une version modifiée du style plain style, c'est-à-dire

\bibliographystyle{unsrt}
\bibliography{bibliography}

Mais que faire si mon style n'est pas celui par défaut ?

4 votes

Si vous utilisez un style BibTeX personnalisé, pouvez-vous le modifier pour supprimer la commande SORT ?

0 votes

Par défaut, la page wiki vous recommande la plaine. Si vous copiez-coller sans précaution, vous utiliserez plain au lieu de unsrt style. fr.wikibooks.org/wiki/LaTeX/Gestion_bibliographique

23voto

sdaau Points 6262

Juste une brève note - j'utilise une version modifiée de simple.bst qui se trouve dans le répertoire avec mes fichiers Latex ; il s'avère que le tri par ordre d'apparition est un changement relativement facile ; il suffit de trouver le morceau de code :

...
ITERATE {presort}

SORT
...

... et le commenter - je l'ai transformé en :

...
%% % avoid sort:
%% ITERATE {presort}
%%
%% SORT
...

... et ensuite, après avoir exécuté bibtex , pdflatex , pdflatex - les citations seront triées par ordre d'apparition (c'est-à-dire qu'elles ne seront pas triées :) ).

A la vôtre !

EDIT : je viens de réaliser que ce que j'ai écrit se trouve en fait dans le commentaire de @ChrisN : " pouvez-vous l'éditer pour enlever la commande SORT " ;)

14voto

lindelof Points 9802

Vous avez répondu à votre propre question unsrt est à utiliser lorsque vous voulez que les références soient listées dans l'ordre d'apparition.

Mais vous pouvez aussi jeter un coup d'œil à natbib un paquet de citation extrêmement flexible. Je ne peux pas imaginer vivre sans lui.

7 votes

Natbib n'affecte que la mise en page de l'image. \cite dans le document lui-même. Cela dit, il est distribué avec unsrtnat.bst pour obtenir l'effet recherché par le posteur original. (Je recommanderais de nos jours biblatex plutôt que natbib, à moins que la stabilité absolue ne soit la plus importante).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X