Comment commander des citations par apparence en utilisant BibTeX?

259

Par défaut (en utilisant le plainstyle) BibTeX trie les citations par ordre alphabétique.

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

Brendan
la source
36
Question utile (vote positif), mais cela ne devrait-il pas appartenir à tex.stackexchange.com ?
Chthonic Project
12
@ChthonicProject, je ne pense pas que tex.stackexchange.com a commencé avant 2010 et cette question date de 2008. En outre, la question serait trop ancienne pour migrer, alors elle persiste ici.
Richard Erickson
1
Supprimer les fichiers .aux et .bbl et reconstruire
Emad Aghayi

Réponses:

195

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

  • Utilisez le unsrtstyle de bibliographie, si vous êtes satisfait de sa mise en forme, sinon
  • Utilisez l' outil makebst (lien) pour concevoir votre propre style de bibliographie

Et ma recommandation personnelle:

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

En utilisant biblatex, vous écririez 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}
Will Robertson
la source
2
Un avantage apparent du paquet biblatex qui m'a fait accepter cette réponse est qu'il permet d'éditer des styles de référence en utilisant des macros TeX plutôt que d'étranges vaudous BibTeX. D'autres packages peuvent être meilleurs pour une solution plus rapide / plus fiable.
Brendan
1
Je dois ajouter que si vous utilisez biblatex. Il serait préférable d'utiliser \ addbibresource à la place \ bibliography. Donc\addbibresource{journals.bib,phd-references.bib}
Custodio
126

Changement

\bibliographystyle{plain}

à

\bibliographystyle{ieeetr}

Reconstruisez-le ensuite plusieurs fois pour remplacer les fichiers .auxet .bblcréés lors de l'utilisation du style brut.

Ou simplement supprimer les .auxet .bblfichiers et reconstruire.

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

Riaz
la source
4
Merci! Solution excellente et simple!
Antillar Maximus
Génial! Merci pour la solution simple.
Votre Majesté le
4
si vous écrivez un papier pour la publication ACM, ce unsrtserait mieux que ieeetrpuisque ce dernier est destiné au papier IEEE qui a une mise en forme légèrement différente. unsrtet abbrvproduit le même type de formatage. Vous voudrez peut-être jeter un oeil à ce lien
Ash Catchem
La réponse simple se pose! Alors que la réponsebiblatex centrée sur Will Robertson est finalement la voie à suivre pour la communauté LaTeX, le manque continu de support intégré de LyX est un énorme (et de plus en plus embarrassant) bloqueur. Cela fait huit ans que cette question a été posée pour la première fois! Je ne critiquerai jamais les priorités des développeurs de LyX. Nous sommes en 2016. Les voitures sans conducteur et les superordinateurs portables sont une chose, mais ici nous restons - enchaînés à la même pierre de honte BibTeX exécrable. biblatex
Cecil Curry
1
Cela ne fonctionne pas dans l'application Overleaf. Je les ai enlevés dans overleaf par overleaf.com/learn/how-to/Clearing_the_cache mais il ne résout pas le problème.
Emad Aghayi
21

Juste une brève note - j'utilise une version modifiée de plain.bst assise 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 commentez - je l'ai transformé en:

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

... puis, après l' exécution bibtex, pdflatex, pdflatex- les citations seront triées par ordre d'apparition (qui est, ils seront :) non triés).

À votre santé!

EDIT: vient de réaliser que ce que j'ai écrit est en fait dans le commentaire de @ChrisN: " pouvez-vous le modifier pour supprimer la commande SORT ";)

sdaau
la source
18

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

\bibliographystyle{unsrt}
\bibliography{bibliography}

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

Brendan
la source
4
Si vous utilisez un style BibTeX personnalisé, pouvez-vous le modifier pour supprimer la commande TRIER?
ChrisN
Par défaut, la page wiki vous recommande tout simplement. Si vous copiez-collez négligemment, vous utiliserez le style brut au lieu du style unsrt. en.wikibooks.org/wiki/LaTeX/Bibliography_Management
Andras Gyomrey
12

Vous avez répondu à votre propre question --- unsrtdoit être utilisé lorsque vous souhaitez que les références à ne soient répertoriées dans l'ordre d'apparition.

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

lindelof
la source
7
natbib affecte uniquement la composition des commandes \ cite dans le document lui-même. Cela dit, il est distribué avec unsrtnat.bst pour obtenir l'effet recherché par l'affiche originale. (Je recommanderais le biblatex de nos jours par rapport au natbib, à moins que la stabilité absolue ne soit la plus importante.)
Will Robertson
5

Je suis un peu nouveau pour Bibtex (et pour Latex en général) et je voudrais faire revivre cet ancien article car je l'ai trouvé dans de nombreuses recherches sur Google concernant la commande d'une bibliographie dans Latex.

J'apporte une réponse plus détaillée à cette question dans l'espoir que cela puisse aider certains novices confrontés aux 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 le document.

Vous trouverez plus d'informations sur le formatage de votre fichier .bib ici: http://en.wikibooks.org/wiki/LaTeX/Bibliography_Management

HeWhoLikesWaffles
la source
3

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

Tung
la source
2

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

Thiem Nguyen
la source
Votre affirmation sur le format semble contredire la réponse acceptée (et fortement surévaluée). Pourriez-vous clarifier?
Zero3
0

Le paquetage datatool offre un bon moyen de trier la bibliographie selon un critère arbitraire, en la convertissant d'abord en un format de base de données.

Exemple court, tiré d'ici et publié 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}
kebs
la source
0

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

\usepackage{amsrefs}

Client
la source
1
Bienvenue dans Stack Overflow! Votre réponse ne semble pas réellement répondre à la question posée. Vos informations peuvent être utiles, mais elles sont probablement mieux adaptées en tant que commentaire à l'une des autres réponses (une fois que vous avez obtenu la réputation nécessaire pour publier des commentaires).
Zero3
0

J'utilise natbiben 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}
Tshilidzi Mudau
la source
0

Ajoutez ceci si vous souhaitez que le nombre de citations apparaisse dans l'ordre dans le document, elles ne seront triées que dans la page de référence:

\bibliographystyle{unsrt}
Malak
la source