web-dev-qa-db-fra.com

Comment commander les citations en apparence avec BibTeX?

Par défaut (en utilisant le style plain), BibTeX classe les citations par ordre alphabétique.

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

237
Brendan

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

  • Utilisez le style de bibliographie unsrt, si sa mise en forme vous convient, sinon
  • Utilisez l'outil makebst(lien) pour concevoir votre propre style de bibliographie.

Et ma recommandation personnelle:

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

En utilisant biblatex, vous écrivez 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}
181
Will Robertson

Changement

\bibliographystyle{plain}

à

\bibliographystyle{ieeetr}

Reconstruisez ensuite plusieurs fois pour remplacer les fichiers .aux et .bbl créés lors de l'utilisation du style brut.

Ou simplement supprimez les fichiers .aux et .bbl et reconstruisez-les.

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

119
John1923

Le meilleur que j'ai trouvé est d'utiliser le style unsrt, qui semble être un style modifié plain. c'est à dire.

\bibliographystyle{unsrt}
\bibliography{bibliography}

Mais que se passe-t-il si mon style n’est pas celui par défaut?

17
Brendan

Juste une petite note - J'utilise une version modifiée de plain.bst assis 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 tourné à:

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

À votre santé!

EDIT: je viens de me rendre compte que ce que j’écris est en fait dans le commentaire de @ChrisN: " pouvez-vous le modifier pour supprimer la commande SORT ";)

17
sdaau

Vous avez répondu à votre propre question ---unsrt doit être utilisé lorsque vous souhaitez des références à ne énumérées dans l'ordre d'apparition.

Mais vous voudrez peut-être aussi jeter un œil à natbib , un paquet de citations extrêmement flexible. Je ne peux pas imaginer vivre sans elle.

11
lindelof

Je suis un peu nouveau dans Bibtex (et dans Latex en général) et je voudrais faire revivre cet ancien message, car je l'ai trouvé dans de nombreuses requêtes de recherche Google concernant la commande d'une bibliographie dans Latex.

J'apporte une réponse plus verbeuse à cette question dans l'espoir que cela pourrait aider certains novices qui rencontrent les mêmes difficultés que moi.

Voici un exemple du fichier .tex principal dans lequel la bibliographie est appelée:

\documentclass{article}
\begin{document}

So basically this is where the body of your document goes.

``FreeBSD is easy to install,'' said no one ever \cite{drugtrafficker88}.

``Yeah well at least I've got chicken,'' said Leeroy Jenkins \cite{goodenough04}.

\newpage
\bibliographystyle{ieeetr} % Use ieeetr to list refs in the order they're cited
\bibliography{references} % Or whatever your .bib file is called
\end{document}

... et un exemple du fichier .bib lui-même:

@ARTICLE{ goodenough04,
AUTHOR    = "G. D. Goodenough and others", 
TITLE     = "What it's like to have a sick-nasty last name",
JOURNAL   = "IEEE Trans. Geosci. Rem. Sens.",
YEAR      = "xxxx",
volume    = "xx",
number    = "xx",
pages     = "xx--xx"
}
@BOOK{ drugtrafficker88,
AUTHOR    = "G. Drugtrafficker", 
TITLE     = "What it's Like to Have a Misleading Last Name",
YEAR      = "xxxx",
PUBLISHER = "Harcourt Brace Jovanovich, Inc."
ADDRESS   = "The Florida Alps, FL, USA"
}

Notez que les références dans le fichier .bib sont répertoriées dans l'ordre inverse mais les références sont répertoriées dans l'ordre dans lequel elles sont citées dans l'article.

Plus d'informations sur le formatage de votre fichier .bib peuvent être trouvées ici: http://en.wikibooks.org/wiki/LaTeX/Bibliography_Management

4
HeWhoLikesWaffles

J'utilise souvent le style de bibliographie natbib car il fournit un ensemble assez complet de formats ainsi que des balises.

3
Tung

avec unsrt le problème est le format. utilisez \bibliographystyle{ieeetr} pour obtenir les références par ordre de citation dans le document.

2
Dharmendra Yadav

Si vous utilisez amsrefs, ils remplaceront tout ce qui précède - alors commentez:

\usepackage{amsrefs}

0
Guest

J'utilise natbib en combinaison avec bibliographystyle{apa}. Par exemple:

\begin{document}

The body of the document goes here...

\newpage

\bibliography{bibliography} % Or whatever you decided to call your .bib file 

\usepackage[round, comma, sort&compress ]{natbib} 

bibliographystyle{apa}
\end{document}
0
Tshilidzi Mudau

Le paquet datatool offre un moyen agréable de trier la bibliographie selon un critère arbitraire, en la convertissant d’abord dans un format de base de données.

Petit exemple, pris d'ici et posté pour l'enregistrement:

\documentclass{article}

\usepackage{databib}

\begin{document}
% First argument is the name of new datatool database
% Second argument is list of .bib files
\DTLloadbbl{mybibdata}{acmtr}
% Sort database in order of year starting from most recent
\DTLsort{Year=descending}{mybibdata}
% Add citations
\nocite{*}

% Display bibliography
\DTLbibliography{mybibdata}
\end{document}
0
kebs