Como encomendar citações por aparência usando BibTeX?
Pergunta
Por padrão (usando o estilo plain
) BibTeX ordens citações em ordem alfabética.
Como encomendar as citações por ordem de aparição no documento?
Solução
Há três respostas positivas a esta questão.
- Use o estilo bibliografia
unsrt
, se você está feliz com a sua formatação de outra forma - Use o
makebst
(link) ferramenta para projetar seu próprio estilo bibliografia
E a minha recomendação pessoal:
- Use o pacote
biblatex
(link) . É a ferramenta bibliografia completa e flexível mais no mundo do 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}
Outras dicas
Mudança
\bibliographystyle{plain}
para
\bibliographystyle{ieeetr}
Em seguida, reconstruí-lo algumas vezes para substituir os arquivos .aux
e .bbl
que foram feitas quando você usou o estilo simples.
Ou simplesmente apagar os arquivos .aux
e .bbl
e reconstruir.
Se você usar MiKTeX você deve não precisa baixar nada extra.
Apenas uma nota breve - Eu estou usando uma versão modificada do plain.bst sentado no diretório com os meus arquivos de látex; verifica-se ter a classificação por ordem de aparição é uma mudança relativamente fácil; apenas encontrar o pedaço de código:
...
ITERATE {presort}
SORT
...
... e comentar isso - Virei-a:
...
%% % avoid sort:
%% ITERATE {presort}
%%
%% SORT
...
... e então, depois de executar bibtex
, pdflatex
, pdflatex
- as citações serão ordenadas por ordem de aparecimento (ou seja, eles serão indiferenciados :)).
Felicidades!
EDIT: só percebi que o que eu escrevi é verdade no comentário por @ChrisN: " você pode editá-lo para remover o comando SORT ";)
O melhor que eu vim com está usando o estilo unsrt
, o que parece ser um estilo plain
beliscada. i.
\bibliographystyle{unsrt}
\bibliography{bibliography}
No entanto o que se meu estilo não é o padrão?
Você respondeu sua própria pergunta --- unsrt
é para ser usado quando você quer referências a ne listados na ordem de appeareance.
Mas você pode também querer ter um olhar para natbib , um pacote de citação extremamente flexível. Eu não posso imaginar viver sem ele.
Eu sou um pouco novo para Bibtex (e látex em geral) e eu gostaria de reviver este post velho desde que eu encontrei ele veio em muitas das minhas perguntas de pesquisa do Google sobre a ordenação de uma bibliografia em Latex.
Eu estou oferecendo uma resposta mais detalhada a esta pergunta na esperança de que ele pode ajudar alguns novatos lá fora, enfrentando as mesmas dificuldades que eu.
Aqui está um exemplo do arquivo .tex principal em que a bibliografia é chamado:
\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 as referências no arquivo .bib estão listados em ordem inversa, mas as referências são listados na ordem em que são citadas no papel.
Mais informações sobre a formatação do seu arquivo .bib pode ser encontrada aqui: http: // en .wikibooks.org / wiki / LaTeX / Bibliography_Management
Costumo usar o natbib
estilo bibliografia porque fornece conjunto bastante completo de formatos, bem como tags para nós.
com unsrt
o problema é o formato. uso \bibliographystyle{ieeetr}
para obter refences em ordem de citação no documento.
Datatool ofertas de pacotes de uma boa maneira de classificar bibliografia por um critério arbitrário, convertendo-o primeiro em algum formato de banco de dados.
exemplo Curto, tomada daqui e afixado 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 acontecer de você estar usando amsrefs
que irá substituir todos os acima - para comentário fora:
\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}