Domanda

Di default (usando lo stile plain ) BibTeX ordina le citazioni in ordine alfabetico.

Come ordinare le citazioni per ordine di apparizione nel documento?

È stato utile?

Soluzione

Ci sono tre buone risposte a questa domanda.

  • Utilizza lo stile bibliografico unsrt , se sei soddisfatto della sua formattazione altrimenti
  • Utilizza il makebst ( link) strumento per progettare il tuo stile bibliografico

E la mia raccomandazione personale:

  • Utilizza il pacchetto biblatex ( link) . È lo strumento di bibliografia più completo e flessibile nel mondo LaTeX.

Usando biblatex , dovresti scrivere qualcosa del tipo

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

Altri suggerimenti

Cambia

\bibliographystyle{plain}

a

\bibliographystyle{ieeetr}

Quindi ricostruiscilo alcune volte per sostituire i file .aux e .bbl creati quando hai usato lo stile semplice.

O semplicemente cancella i file .aux e .bbl e ricostruisci.

Se usi MiKTeX non dovresti scaricare nulla in più.

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 aver eseguito bibtex , pdflatex , pdflatex - le citazioni verranno ordinate per ordine di apparizione (ovvero , non saranno ordinati :)).

Cheers!

EDIT: ho appena realizzato che ciò che ho scritto è in realtà nel commento di @ChrisN: " puoi modificarlo per rimuovere il comando SORT " ;)

Il meglio che ho trovato è usare lo stile unsrt , che sembra essere uno stile plain ottimizzato. cioè.

\bibliographystyle{unsrt}
\bibliography{bibliography}

Comunque cosa succede se il mio stile non è quello predefinito?

Hai risposto alla tua domanda --- unsrt deve essere usato quando vuoi che i riferimenti a ne siano elencati nell'ordine di acquisizione.

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

Notare che 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: // it .wikibooks.org / wiki / LaTeX / Bibliography_Management

Uso spesso lo stile bibliografico natbib perché fornisce un set abbastanza completo di formati e tag per noi.

con unsrt il problema è il formato. usa \ bibliographystyle {ieeetr} per ottenere riferimenti nell'ordine di citazione nel documento.

Il pacchetto datatool offre un buon modo per ordinare la bibliografia secondo un criterio arbitrario, convertendola prima in un certo 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} . Ad 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}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top