Por padrão (usando o plain
estilo), o BibTeX ordena citações em ordem alfabética.
Como ordenar as citações por ordem de aparência no documento?
Por padrão (usando o plain
estilo), o BibTeX ordena citações em ordem alfabética.
Como ordenar as citações por ordem de aparência no documento?
Respostas:
Existem três boas respostas para essa pergunta.
unsrt
estilo bibliográfico, se estiver satisfeito com a formatação, caso contráriomakebst
(link) para criar seu próprio estilo de bibliografiaE minha recomendação pessoal:
biblatex
pacote (link) . É a ferramenta bibliográfica mais completa e flexível do mundo LaTeX.Usando biblatex
, você escreveria algo como
\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}
mudança
\bibliographystyle{plain}
para
\bibliographystyle{ieeetr}
Em seguida, reconstrua-o algumas vezes para substituir os arquivos .aux
e .bbl
que foram criados quando você usou o estilo simples.
Ou simplesmente apagar os .aux
e .bbl
arquivos e reconstruir.
Se você usa o MiKTeX, não precisa baixar nada extra.
unsrt
seria melhor do que, ieeetr
já que este último é destinado ao papel IEEE, que tem uma formatação ligeiramente diferente. unsrt
e abbrv
produz o mesmo tipo de formatação. Você pode querer dar uma olhada neste link
biblatex
centric resposta é em última análise, o caminho a seguir para a comunidade LaTeX, contínua falta de do LyX suporte embutido para biblatex
é um bloqueador enorme (e cada vez mais embaraçoso). Faz oito anos desde que esta pergunta foi feita pela primeira vez! Nunca vou entender as prioridades do desenvolvedor do LyX. É 2016. Carros sem motorista e supercomputadores portáteis são uma coisa, mas aqui permanecemos - acorrentados à mesma execrável pedra de vergonha BibTeX.
Apenas uma breve observação - estou usando uma versão modificada do plain.bst no diretório com meus arquivos Latex; acontece que ordenar por ordem de aparência é uma mudança relativamente fácil; basta encontrar o trecho de código:
...
ITERATE {presort}
SORT
...
... e comente - eu virei para:
...
%% % avoid sort:
%% ITERATE {presort}
%%
%% SORT
...
... e, em seguida, após a execução bibtex
, pdflatex
, pdflatex
- as citações serão ordenadas por ordem de aparecimento (ou seja, eles serão indiferenciados :)).
Felicidades!
EDIT: acabei de perceber que o que escrevi está realmente no comentário de @ChrisN: " você pode editá-lo para remover o comando SORT ";)
O melhor que eu criei é usar o unsrt
estilo, que parece ser um plain
estilo aprimorado . ie
\bibliographystyle{unsrt}
\bibliography{bibliography}
No entanto, e se meu estilo não for o padrão?
Você respondeu à sua própria pergunta --- unsrt
deve ser usada quando você desejar que as referências sejam listadas na ordem de aparência.
Mas você também pode querer dar uma olhada no natbib , um pacote de citação extremamente flexível. Não consigo imaginar viver sem ele.
Sou um pouco novo no Bibtex (e no Latex em geral) e gostaria de reviver esse post antigo, pois descobri que ele apareceu em muitas das minhas pesquisas no Google sobre o pedido de uma bibliografia no Latex.
Estou fornecendo uma resposta mais detalhada a esta pergunta, na esperança de que possa ajudar alguns novatos por aí enfrentando as mesmas dificuldades que eu.
Aqui está um exemplo do arquivo .tex principal no qual a bibliografia é chamada:
\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 um exemplo do próprio arquivo .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"
}
Observe que as referências no arquivo .bib são listadas na ordem inversa, mas as referências são listadas na ordem em que são citadas no artigo.
Mais informações sobre a formatação do seu arquivo .bib podem ser encontradas aqui: http://en.wikibooks.org/wiki/LaTeX/Bibliography_Management
com unsrt
o problema é o formato. use \bibliographystyle{ieeetr}
para obter referências em ordem de citação no documento.
O pacote datatool oferece uma boa maneira de classificar a bibliografia por um critério arbitrário, convertendo-o primeiro em algum formato de banco de dados.
Exemplo curto, retirado daqui e publicado para o registro:
\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 você estiver usando amsrefs
eles substituirão todos os itens acima - então, comente:
\usepackage{amsrefs}
Eu uso natbib
em combinação com bibliographystyle{apa}
. Por exemplo:
\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}