Di default (usando lo plain
stile) BibTeX ordina le citazioni in ordine alfabetico.
Come ordinare le citazioni per ordine di apparizione nel documento?
Di default (usando lo plain
stile) BibTeX ordina le citazioni in ordine alfabetico.
Come ordinare le citazioni per ordine di apparizione nel documento?
Risposte:
Ci sono tre buone risposte a questa domanda.
unsrt
stile bibliografico, se sei soddisfatto della sua formattazione altrimentimakebst
(link) per progettare il tuo stile bibliograficoE la mia raccomandazione personale:
biblatex
pacchetto (link) . È lo strumento di bibliografia più completo e flessibile nel mondo LaTeX.Usando biblatex
, scriveresti qualcosa del genere
\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}
\addbibresource{journals.bib,phd-references.bib}
Modificare
\bibliographystyle{plain}
per
\bibliographystyle{ieeetr}
Quindi ricostruiscilo alcune volte per sostituire i file .aux
e .bbl
che sono stati creati quando hai utilizzato lo stile semplice.
O semplicemente eliminare i .aux
ei .bbl
file e ricostruire.
Se usi MiKTeX non dovresti scaricare altro.
unsrt
sarebbe meglio che ieeetr
poiché quest'ultimo è pensato per un documento IEEE che ha una formattazione leggermente diversa. unsrt
e abbrv
produce lo stesso tipo di formattazione. Potresti dare un'occhiata a questo link
biblatex
biblatex
Solo una breve nota: sto usando una versione modificata di plain.bst seduto nella directory con i miei file Latex; risulta che l'ordinamento per ordine di apparizione è un cambiamento relativamente facile; basta trovare il pezzo di codice:
...
ITERATE {presort}
SORT
...
... e commentalo - L'ho trasformato in:
...
%% % avoid sort:
%% ITERATE {presort}
%%
%% SORT
...
... e poi, dopo l'esecuzione bibtex
, pdflatex
, pdflatex
- le citazioni verranno ordinati in ordine di apparizione (che è, essi saranno indifferenziati :)).
Saluti!
EDIT: appena realizzato che ciò che ho scritto è in realtà nel commento di @ChrisN: " puoi modificarlo per rimuovere il comando SORT ";)
Il meglio che mi è venuto in mente è usare lo unsrt
stile, che sembra essere uno plain
stile ottimizzato . vale a dire
\bibliographystyle{unsrt}
\bibliography{bibliography}
Tuttavia, cosa succede se il mio stile non è quello predefinito?
Hai risposto alla tua domanda --- unsrt
deve essere usato quando desideri che i riferimenti a ne siano elencati nell'ordine di approvazione.
Ma potresti anche dare un'occhiata a natbib , un pacchetto di citazioni estremamente flessibile. Non riesco a immaginare di vivere senza di essa.
Sono un po 'nuovo su Bibtex (e su Latex in generale) e mi piacerebbe rivivere questo vecchio post da quando l'ho scoperto in molte delle mie ricerche su Google sull'ordinazione di una bibliografia in Latex.
Sto fornendo una risposta più dettagliata a questa domanda nella speranza che possa aiutare alcuni novizi là fuori che affrontano le mie stesse difficoltà.
Ecco un esempio del file .tex principale in cui si chiama la 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}
... e un esempio del file .bib stesso:
@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"
}
Nota i riferimenti nel file .bib sono elencati in ordine inverso ma i riferimenti sono elencati nell'ordine in cui sono citati nel documento.
Ulteriori informazioni sulla formattazione del file .bib sono disponibili qui: http://en.wikibooks.org/wiki/LaTeX/Bibliography_Management
con unsrt
il problema è il formato. utilizzare \bibliographystyle{ieeetr}
per ottenere riferimenti in ordine di citazione nel documento.
Il pacchetto datatool offre un buon modo per ordinare la bibliografia secondo un criterio arbitrario, convertendola prima in un formato di database.
Breve esempio, preso da qui e pubblicato per la cronaca:
\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}
Se ti capita di usare amsrefs
, avranno la precedenza su tutto quanto sopra - quindi commenta:
\usepackage{amsrefs}
Uso natbib
in combinazione con bibliographystyle{apa}
. Per esempio:
\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}