Wie bestelle ich Zitate nach Erscheinungsbild mit BibTeX?


259

Standardmäßig (unter Verwendung des plainStils) ordnet BibTeX Zitate alphabetisch an.

Wie ordne ich die Zitate nach der Reihenfolge des Erscheinens im Dokument?


36
Hilfreiche Frage (positiv bewertet), aber sollte diese nicht zu tex.stackexchange.com gehören ?
Chthonic Project

12
@ChthonicProject, ich glaube nicht, dass tex.stackexchange.com erst 2010 gestartet wurde und diese Frage aus dem Jahr 2008 stammt. Außerdem wäre die Frage zu alt, um migriert zu werden, sodass sie hier weiterlebt.
Richard Erickson

1
Löschen Sie die .aux- und .bbl-Dateien und erstellen Sie sie neu
Emad Aghayi

Antworten:


195

Auf diese Frage gibt es drei gute Antworten.

  • Verwenden Sie den unsrtBibliografiestil, wenn Sie mit der Formatierung anderweitig zufrieden sind
  • Verwenden Sie das makebst (Link-) Tool, um Ihren eigenen Bibliografiestil zu entwerfen

Und meine persönliche Empfehlung:

  • Verwenden Sie das biblatexPaket (Link) . Es ist das vollständigste und flexibelste Bibliografie-Tool in der LaTeX-Welt.

Mit würden biblatexSie so etwas schreiben

\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
Ein offensichtlicher Vorteil des biblatex-Pakets, der mich veranlasst hat, diese Antwort zu akzeptieren, besteht darin, dass Referenzstile mit TeX-Makros und nicht mit seltsamem BibTeX-Voodoo bearbeitet werden können. Andere Pakete sind möglicherweise besser für eine schnellere / zuverlässigere Lösung.
Brendan

1
Ich muss das hinzufügen, wenn Sie Biblatex verwenden. Es wäre besser, \ addbibresource anstelle von \ bibliography zu verwenden. Also\addbibresource{journals.bib,phd-references.bib}
Custodio

126

Veränderung

\bibliographystyle{plain}

zu

\bibliographystyle{ieeetr}

Erstellen Sie es dann einige Male neu, um die .auxund .bblDateien zu ersetzen , die bei Verwendung des einfachen Stils erstellt wurden.

Oder löschen Sie einfach die .auxund .bblDateien und erstellen Sie sie neu.

Wenn Sie MiKTeX verwenden, sollten Sie nichts extra herunterladen müssen.


4
Vielen Dank! Hervorragende und einfache Lösung!
Antillar Maximus

Toll! Danke für die einfache Lösung.
Majestät

4
Wenn Sie ein Papier für die ACM-Veröffentlichung schreiben, ist unsrtdies besser als ieeetrdas letztere, da letzteres für IEEE-Papier mit einer etwas anderen Formatierung gedacht ist. unsrtund abbrverzeugt die gleiche Art der Formatierung. Vielleicht möchten Sie einen Blick auf diesen Link
werfen

Die einfache Antwort ergibt sich! Während Will Robertson ‚s biblatex-centric Antwort letztlich der Weg nach vorne für die LaTeX - Community, LyX anhalt Mangel an integrierten Unterstützung ist für biblatexeine enorme (und zunehmend peinlich) Blocker. Es ist acht Jahre her, seit diese Frage zum ersten Mal gestellt wurde! Ich werde niemals die Entwicklerprioritäten von LyX einschränken. Es ist 2016. Fahrerlose Autos und tragbare Supercomputer sind eine Sache, aber hier bleiben wir - angekettet an denselben schrecklichen BibTeX-Stein der Schande.
Cecil Curry

1
In der Overleaf-Anwendung funktioniert dies nicht. Ich habe sie in Overleaf von overleaf.com/learn/how-to/Clearing_the_cache entfernt, aber das Problem wird dadurch nicht behoben .
Emad Aghayi

21

Nur eine kurze Anmerkung - Ich verwende eine modifizierte Version von plain.bst , die sich mit meinen Latex-Dateien im Verzeichnis befindet. Es stellt sich heraus, dass das Sortieren nach Erscheinungsreihenfolge eine relativ einfache Änderung ist. Finden Sie einfach den Code:

...
ITERATE {presort}

SORT
...

... und kommentiere es - ich drehte es zu:

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

... und dann, nach dem Laufen bibtex, pdflatex, pdflatex- werden die Zitate nach der Reihenfolge ihres Auftretens sortiert werden (das heißt, sie werden unsortiert sein :)).

Prost!

BEARBEITEN: habe gerade festgestellt, dass das, was ich geschrieben habe, tatsächlich in dem Kommentar von @ChrisN enthalten ist: "Kannst du es bearbeiten, um den SORT-Befehl zu entfernen ? ";)


18

Das Beste, was ich mir ausgedacht habe, ist die Verwendung des unsrtStils, der ein optimierter plainStil zu sein scheint . dh

\bibliographystyle{unsrt}
\bibliography{bibliography}

Was ist jedoch, wenn mein Stil nicht die Standardeinstellung ist?


4
Wenn Sie einen benutzerdefinierten BibTeX-Stil verwenden, können Sie ihn bearbeiten, um den Befehl SORT zu entfernen?
ChrisN

Standardmäßig empfiehlt die Wiki-Seite, dass Sie einfach sind. Wenn Sie unachtsam kopieren und einfügen, verwenden Sie den einfachen Stil anstelle des unsrt-Stils. en.wikibooks.org/wiki/LaTeX/Bibliography_Management
Andras Gyomrey

12

Sie haben Ihre eigene Frage beantwortet --- unsrtist zu verwenden, wenn Sie Verweise auf ne in der Reihenfolge ihres Auftretens auflisten möchten.

Vielleicht möchten Sie aber auch einen Blick auf natbib werfen , ein äußerst flexibles Zitierpaket. Ich kann mir nicht vorstellen, ohne sie zu leben.


7
natbib wirkt sich nur auf den Satz der \ cite-Befehle im Dokument selbst aus. Allerdings wird es mit unsrtnat.bst verteilt, um den vom Originalplakat gewünschten Effekt zu erzielen. (Ich würde Biblatex heutzutage gegenüber Natbib empfehlen, es sei denn, absolute Stabilität ist am wichtigsten.)
Will Robertson

5

Ich bin ein bisschen neu in Bibtex (und in Latex im Allgemeinen) und möchte diesen alten Beitrag wiederbeleben, da ich festgestellt habe, dass er in vielen meiner Google-Suchanfragen zur Bestellung einer Bibliographie in Latex aufgetaucht ist.

Ich gebe eine ausführlichere Antwort auf diese Frage in der Hoffnung, dass dies einigen Anfängern helfen könnte, die mit den gleichen Schwierigkeiten konfrontiert sind wie ich.

Hier ist ein Beispiel für die Haupt-.tex-Datei, in der die Bibliographie aufgerufen wird:

\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}

... und ein Beispiel für die .bib-Datei selbst:

@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"
}

Beachten Sie, dass die Verweise in der .bib-Datei in umgekehrter Reihenfolge aufgeführt sind, die Verweise jedoch in der Reihenfolge, in der sie im Dokument angegeben sind.

Weitere Informationen zur Formatierung Ihrer .bib-Datei finden Sie hier: http://en.wikibooks.org/wiki/LaTeX/Bibliography_Management


3

Ich verwende oft den Bibliographiestil, natbibweil er einen ziemlich vollständigen Satz von Formaten sowie Tags für uns liefert.


2

mit unsrtdem problem ist das format. Verwenden Sie \bibliographystyle{ieeetr}diese Option, um Referenzen in der Reihenfolge des Zitierens im Dokument abzurufen.


Ihre Behauptung über das Format scheint der akzeptierten (und stark positiv bewerteten) Antwort zu widersprechen. Könnten Sie das klarstellen?
Zero3

0

Das datatool- Paket bietet eine gute Möglichkeit, die Bibliographie nach einem beliebigen Kriterium zu sortieren, indem sie zuerst in ein Datenbankformat konvertiert wird.

Kurzes Beispiel, von hier genommen und für die Aufzeichnung gepostet:

\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

Wenn Sie zufällig verwenden amsrefs, überschreiben sie alle oben genannten Punkte - kommentieren Sie also Folgendes aus:

\usepackage{amsrefs}


1
Willkommen bei Stack Overflow! Ihre Antwort scheint die gestellte Frage nicht wirklich zu beantworten. Ihre Informationen könnten wertvoll sein, eignen sich jedoch wahrscheinlich besser als Kommentar zu einer der anderen Antworten (sobald Sie den erforderlichen Ruf zum Posten von Kommentaren erhalten haben).
Zero3

0

Ich benutze natbibin Kombination mit bibliographystyle{apa}. Z.B:

\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

Fügen Sie dies hinzu, wenn die Anzahl der Zitate in der angegebenen Reihenfolge im Dokument angezeigt werden soll. Sie werden nur auf der Referenzseite unsortiert:

\bibliographystyle{unsrt}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.