Jak zamówić cytaty według wyglądu za pomocą BibTeX?

259

Domyślnie (używając plainstylu) BibTeX porządkuje cytaty alfabetycznie.

Jak zamówić cytaty według kolejności występowania w dokumencie?

Brendan
źródło
36
Pomocne pytanie (pozytywnie ocenione), ale czy nie powinno to należeć do tex.stackexchange.com ?
Chthonic Project
12
@ChthonicProject, nie sądzę, że tex.stackexchange.com zaczęło się do 2010 roku, a to pytanie pochodzi z 2008 roku. Ponadto pytanie byłoby zbyt stare, aby je migrować, więc nadal istnieje.
Richard Erickson,
1
Usuń pliki .aux i .bbl i odbuduj
Emad Aghayi

Odpowiedzi:

195

Istnieją trzy dobre odpowiedzi na to pytanie.

  • Użyj unsrtstylu bibliografii, jeśli jesteś zadowolony z jego formatowania
  • Użyj narzędzia makebst (link) , aby zaprojektować własny styl bibliografii

I moja osobista rekomendacja:

  • Skorzystaj z biblatexpakietu (link) . Jest to najbardziej kompletne i elastyczne narzędzie bibliograficzne w świecie LaTeX.

Używając biblatex, napiszesz coś takiego

\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
źródło
2
Jedną z widocznych zalet pakietu biblatex, która skłoniła mnie do zaakceptowania tej odpowiedzi, jest możliwość edycji stylów referencyjnych przy użyciu makr TeX zamiast dziwnego voodoo BibTeX. Inne pakiety mogą być lepsze dla szybszego / bardziej niezawodnego rozwiązania.
Brendan,
1
Muszę dodać, że jeśli używasz biblatex. Lepiej byłoby użyć \ addbibresource zamiast \ bibliografii. Więc\addbibresource{journals.bib,phd-references.bib}
Custodio,
126

Zmiana

\bibliographystyle{plain}

do

\bibliographystyle{ieeetr}

Następnie przebuduj go kilka razy, aby zastąpić pliki .auxi .bblutworzone podczas zwykłego stylu.

Lub po prostu usunąć .auxi .bblpliki i odbudować.

Jeśli korzystasz z MiKTeX, nie musisz pobierać niczego dodatkowego.

Riaz
źródło
4
Dzięki! Doskonała i prosta poprawka!
Antillar Maximus
Wspaniały! Dzięki za proste rozwiązanie.
Wasza Wysokość
4
jeśli piszesz artykuł do publikacji ACM, unsrtbyłoby lepiej niż ieeetrponieważ ten ostatni jest przeznaczony dla papieru IEEE, który ma nieco inne formatowanie. unsrti abbrvtworzy ten sam typ formatowania. Możesz
rzucić
Powstaje prosta odpowiedź! Chociaż Will Robertson „s biblatex-centric odpowiedź jest dla społeczności LaTeX ostatecznie drogę naprzód, ciąg dalszy brak LyX jest z wbudowanego wsparcia dla biblatexogromna (i coraz bardziej żenujące) bloker. Minęło osiem lat od pierwszego pytania! Nigdy nie powiem priorytetów programistycznych LyX. Jest rok 2016. Samochody bez sterowników i przenośne superkomputery to coś, ale tutaj pozostajemy - przykuty do tego samego wykonalnego kamienia BibTeX.
Cecil Curry
1
Nie działa w aplikacji Overleaf. Usunąłem je w Overleaf przez overleaf.com/learn/how-to/Clearing_the_cache, ale to nie rozwiązało problemu.
Emad Aghayi
21

Krótka uwaga - używam zmodyfikowanej wersji pliku plain.bst siedzącego w katalogu z moimi plikami Latex; okazuje się, że sortowanie według kolejności wyglądu jest stosunkowo łatwą zmianą; po prostu znajdź fragment kodu:

...
ITERATE {presort}

SORT
...

... i skomentuj - zmieniłem na:

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

... a następnie, po uruchomieniu bibtex, pdflatex, pdflatex- cytatów zostaną posortowane według kolejności występowania (czyli będą nieposortowane :)).

Twoje zdrowie!

EDYCJA: właśnie zdałem sobie sprawę, że to, co napisałem, jest w komentarzu @ChrisN: „ czy możesz to edytować, aby usunąć polecenie SORT ”;)

sdaau
źródło
18

Najlepsze, co wymyśliłem, to użycie unsrtstylu, który wydaje się być ulepszonym plainstylem. to znaczy

\bibliographystyle{unsrt}
\bibliography{bibliography}

Co jednak, jeśli mój styl nie jest domyślny?

Brendan
źródło
4
Jeśli używasz niestandardowego stylu BibTeX, czy możesz go edytować, aby usunąć polecenie SORT?
ChrisN
Domyślnie strona wiki poleca ci prosty. Jeśli skopiujesz i wkleisz nieostrożnie, będziesz używać zwykłego zamiast niepustego stylu. en.wikibooks.org/wiki/LaTeX/Bibliography_Management
Andras Gyomrey
12

Odpowiedziałeś na własne pytanie --- unsrtnależy użyć, jeśli chcesz, aby odniesienia do ne były wymienione w kolejności wyglądania.

Ale możesz także rzucić okiem na natbib , niezwykle elastyczny pakiet cytatów. Nie wyobrażam sobie życia bez niego.

Lindelof
źródło
7
natbib wpływa tylko na skład poleceń \ cite w samym dokumencie. Powiedziawszy to, jest dystrybuowany wraz z unsrtnat.bst, aby osiągnąć efekt oczekiwany przez oryginalny plakat. (W dzisiejszych czasach zalecałbym biblatex zamiast natbib, chyba że najważniejsza jest absolutna stabilność.)
Will Robertson,
5

Jestem trochę nowy w Bibtex (i ogólnie w Latex) i chciałbym ożywić ten stary post, ponieważ znalazłem go w wielu moich zapytaniach w wyszukiwarce Google dotyczących zamawiania bibliografii w Latex.

Udzielam bardziej szczegółowej odpowiedzi na to pytanie w nadziei, że może to pomóc niektórym nowicjuszom napotykającym takie same trudności jak ja.

Oto przykład głównego pliku .tex, w którym nazywa się bibliografia:

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

... i przykład samego pliku .bib:

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

Uwaga: odniesienia w pliku .bib są wymienione w odwrotnej kolejności, ale odniesienia są wymienione w kolejności, w jakiej są cytowane w artykule.

Więcej informacji na temat formatowania pliku .bib można znaleźć tutaj: http://en.wikibooks.org/wiki/LaTeX/Bibliography_Management

HeWhoLikesWaffles
źródło
3

Często używam stylu bibliografii, natbibponieważ zawiera on całkiem kompletny zestaw formatów, a także znaczniki.

Tung
źródło
2

z unsrtproblemem jest format. służy \bibliographystyle{ieeetr}do uzyskiwania poprawek w kolejności cytowania w dokumencie.

Thiem Nguyen
źródło
Twoje twierdzenie dotyczące formatu wydaje się być sprzeczne z przyjętą (i mocno pozytywną) odpowiedzią. Czy możesz to wyjaśnić?
Zero3,
0

W datatool oferty pakietowe sposób miły uporządkować bibliografia przez arbitralne kryterium, przekształcając go najpierw do jakiegoś formatu bazy danych.

Krótki przykład, wzięty stąd i opublikowany dla celów:

\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
źródło
0

Jeśli akurat używasz amsrefs, zastąpią wszystkie powyższe - więc skomentuj:

\usepackage{amsrefs}

Gość
źródło
1
Witamy w Stack Overflow! Twoja odpowiedź nie wydaje się odpowiadać na postawione pytanie. Twoje informacje mogą być cenne, ale prawdopodobnie lepiej nadają się jako komentarz do jednej z pozostałych odpowiedzi (po uzyskaniu reputacji niezbędnej do publikowania komentarzy).
Zero3,
0

Używam natbibw połączeniu z bibliographystyle{apa}. Na przykład:

\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
źródło
0

Dodaj to, jeśli chcesz, aby liczba cytatów była wyświetlana w dokumencie w kolejności, w jakiej będą sortowane tylko na stronie referencyjnej:

\bibliographystyle{unsrt}
Malak
źródło