401 Stimmen

Wie kann man Zitate nach ihrem Erscheinen in BibTeX ordnen?

Standardmäßig (mit dem plain Stil) ordnet BibTeX die Zitate alphabetisch.

Wie können die Zitate in der Reihenfolge ihres Erscheinens im Dokument angeordnet werden?

55 Stimmen

Hilfreiche Frage (upgevotet), aber sollte diese nicht zu tex.stackexchange.com gehören?

22 Stimmen

@ChthonicProject, Ich glaube, dass tex.stackexchange.com erst 2010 gestartet ist und diese Frage stammt aus dem Jahr 2008. Außerdem wäre die Frage zu alt, um verschoben zu werden, daher bleibt sie hier bestehen.

4 Stimmen

Lösche die .aux und .bbl Dateien und baue sie neu.

308voto

Will Robertson Punkte 58838

Es gibt drei gute Antworten auf diese Frage.

  • Verwenden Sie den unsrt Bibliographiestil, wenn Sie mit seiner Formatierung zufrieden sind
  • Verwenden Sie das makebst (Link) Tool, um Ihren eigenen Bibliographiestil zu entwerfen

Und meine persönliche Empfehlung:

  • Verwenden Sie das biblatex Paket (Link). Es ist das umfangreichste und flexibelste Bibliographiewerkzeug in der LaTeX-Welt.

Bei der Verwendung von biblatex würden Sie etwas wie folgt schreiben

\documentclass[12pt]{article}
\usepackage[sorting=none]{biblatex}
\bibliography{journals,phd-references} % Wo journals.bib und phd-references.bib BibTeX-Datenbanken sind
\begin{document}
\cite{robertson2007}
\cite{earnshaw1842}
\printbibliography
\end{document}

2 Stimmen

Eine offensichtliche Vorteil des Pakets biblatex, der mich dazu veranlasst hat, diese Antwort anzunehmen, ist, dass es ermöglicht, Referenzstile mithilfe von TeX-Makros zu bearbeiten, anstatt mit seltsamen BibTeX-Zaubereien. Andere Pakete mögen für eine schnellere/zuv.eme Lösung besser sein.

2 Stimmen

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

2 Stimmen

Ich musste \usepackage[backend=bibtex, sorting=none]{biblatex} verwenden, da die Referenzen sonst nicht angezeigt werden würden.

202voto

Ändern

\bibliographystyle{plain}

zu

\bibliographystyle{ieeetr}

Dann bauen Sie es ein paar Mal neu, um die .aux und .bbl Dateien zu ersetzen, die beim Verwenden des plain-Stils erstellt wurden.

Oder löschen Sie einfach die .aux und .bbl Dateien und bauen Sie sie neu.

Wenn Sie MiKTeX verwenden, sollten Sie nichts zusätzlich herunterladen müssen.

7 Stimmen

Wenn Sie einen Artikel für die ACM-Veröffentlichung verfassen, ist unsrt besser als ieeetr, da letzteres für IEEE-Papiere gedacht ist, die eine leicht andere Formatierung haben. unsrt und abbrv erzeugen denselben Formatierungstyp. Sie sollten sich vielleicht diesen Link ansehen.

0 Stimmen

Die einfache Antwort ergibt sich! Während Will Robertson's biblatex-zentrische Antwort letztendlich der Weg nach vorn für die LaTeX-Gemeinschaft ist, ist LyX weiterhin ein enormer (und zunehmend peinlicher) Blocker, da es keine eingebaute Unterstützung für biblatex bietet. Es sind bereits acht Jahre vergangen, seit diese Frage zum ersten Mal gestellt wurde! Ich werde nie verstehen, welche Prioritäten LyX-Entwickler haben. Es ist 2016. Fahrerlose Autos und tragbare Supercomputer sind eine Realität, doch hier bleiben wir - an den gleichen erbärmlichen BibTeX-Stein der Schande gefesselt.

0 Stimmen

Das Löschen von .aux und .bbl Dateien hat mein Problem behoben.

26voto

Brendan Punkte 18093

Das Beste, was mir eingefallen ist, ist die Verwendung des unsrt-Stils, der anscheinend ein angepasster plain-Stil ist. d.h.

\bibliographystyle{unsrt}
\bibliography{bibliography}

Was aber, wenn mein Stil nicht der Standard ist?

4 Stimmen

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

0 Stimmen

Standardmäßig empfiehlt die Wiki-Seite Ihnen "plain". Wenn Sie sorglos kopieren und einfügen, werden Sie "plain" anstelle von "unsrt" verwenden. de.wikibooks.org/wiki/LaTeX/Literaturverzeichnis-Verwaltung

0 Stimmen

Wenn dies nicht funktioniert, versuchen Sie, die .bbl-Dateien zu löschen und dann die Latex-Kompilierung erneut auszuführen.

24voto

sdaau Punkte 34279

Nur eine kurze Notiz - ich verwende eine modifizierte Version von plain.bst, die sich im Verzeichnis mit meinen Latexdateien befindet; es stellt sich heraus, dass das Sortieren nach Erscheinungsreihenfolge eine relativ einfache Änderung ist; finde einfach den Code-Abschnitt:

...
ITERATE {presort}

SORT
...

... und kommentiere ihn aus - ich habe es geändert zu:

...
%% % Sortierung vermeiden:
%% ITERATE {presort}
%%
%% SORT
...

... und dann, nachdem du bibtex, pdflatex, pdflatex ausgeführt hast - werden die Zitate in der Reihenfolge ihres Auftretens sortiert sein (das heißt, sie werden unsortiert sein :) ).

Prost!

EDIT: Gerade realisiert, dass das, was ich geschrieben habe, eigentlich im Kommentar von @ChrisN steht: "kannst du es bearbeiten, um den SORT-Befehl zu entfernen" ;)

14voto

lindelof Punkte 33162

Sie haben Ihre eigene Frage beantwortet --- unsrt sollte verwendet werden, wenn Sie möchten, dass Referenzen in der Reihenfolge des Erscheinens aufgeführt werden.

Aber Sie könnten auch einen Blick auf natbib werfen, ein extrem flexibles Zitationspaket. Ich könnte mir ein Leben ohne es nicht vorstellen.

7 Stimmen

Natbib betrifft nur die Formatierung der \cite-Befehle im Dokument selbst. Das gesagt, wird es mit unsrtnat.bst verteilt, um den vom ursprünglichen Poster gesuchten Effekt zu erzielen. (Ich würde heutzutage biblatex über natbib empfehlen, es sei denn, absolute Stabilität ist am wichtigsten.)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X