Como encomendar citações por aparência usando BibTeX?


259

Por padrão (usando o plainestilo), o BibTeX ordena citações em ordem alfabética.

Como ordenar as citações por ordem de aparência no documento?


36
Pergunta útil (votada), mas isso não deveria pertencer a tex.stackexchange.com ?
Chthonic Project

12
@ChthonicProject, não acho que o tex.stackexchange.com tenha começado até 2010 e essa pergunta seja de 2008. Além disso, a pergunta seria muito antiga para migrar, então ela permanece aqui.
Richard Erickson

1
Exclua os arquivos .aux e .bbl e reconstrua
Emad Aghayi

Respostas:


195

Existem três boas respostas para essa pergunta.

  • Use o unsrtestilo bibliográfico, se estiver satisfeito com a formatação, caso contrário
  • Use a ferramenta makebst (link) para criar seu próprio estilo de bibliografia

E minha recomendação pessoal:

  • Use o biblatexpacote (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}

2
Uma vantagem aparente do pacote biblatex que me levou a aceitar essa resposta é que ele permite editar estilos de referência usando macros TeX em vez de um voodoo estranho do BibTeX. Outros pacotes podem ser melhores para uma solução mais rápida / confiável.
Brendan

1
Eu preciso acrescentar que se você estiver usando o biblatex. Seria melhor usar \ addbibresource em vez \ bibliography. Então\addbibresource{journals.bib,phd-references.bib}
Custodio

126

mudança

\bibliographystyle{plain}

para

\bibliographystyle{ieeetr}

Em seguida, reconstrua-o algumas vezes para substituir os arquivos .auxe .bblque foram criados quando você usou o estilo simples.

Ou simplesmente apagar os .auxe .bblarquivos e reconstruir.

Se você usa o MiKTeX, não precisa baixar nada extra.


4
Obrigado! Correção excelente e simples!
Antillar Maximus 27/09/12

Ótimo! Obrigado pela solução simples.
Vossa Majestade

4
se você estiver escrevendo um artigo para a publicação ACM, unsrtseria melhor do que, ieeetrjá que este último é destinado ao papel IEEE, que tem uma formatação ligeiramente diferente. unsrte abbrvproduz o mesmo tipo de formatação. Você pode querer dar uma olhada neste link
Ash Catchem

A resposta simples surge! Enquanto Will Robertson 's biblatexcentric 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.
Cecil Curry

1
Não funciona no aplicativo Overleaf. Eu os removi no Overleaf por overleaf.com/learn/how-to/Clearing_the_cache, mas isso não resolve o problema.
Emad Aghayi

21

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 ";)


18

O melhor que eu criei é usar o unsrtestilo, que parece ser um plainestilo aprimorado . ie

\bibliographystyle{unsrt}
\bibliography{bibliography}

No entanto, e se meu estilo não for o padrão?


4
Se você estiver usando um estilo BibTeX personalizado, poderá editá-lo para remover o comando CLASSIFICAR?
ChrisN

Por padrão, a página wiki recomenda a você simplesmente. Se você copiar e colar de forma descuidada, estará usando o estilo simples, em vez do estilo não-irregular. en.wikibooks.org/wiki/LaTeX/Bibliography_Management
Andras Gyomrey

12

Você respondeu à sua própria pergunta --- unsrtdeve 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.


7
O natbib afeta apenas a composição dos comandos \ cite no próprio documento. Dito isto, é distribuído com unsrtnat.bst para alcançar o efeito desejado pelo pôster original. (Eu recomendo biblatex estes dias sobre natbib, a menos que a estabilidade absoluta é mais importante.)
Will Robertson

5

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


3

Costumo usar o estilo bibliográfico natbibporque ele fornece um conjunto bastante completo de formatos, além de tags para nós.


2

com unsrto problema é o formato. use \bibliographystyle{ieeetr}para obter referências em ordem de citação no documento.


Sua reivindicação sobre o formato parece contradizer a resposta aceita (e fortemente votada). Você poderia esclarecer?
Zero3

0

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}

0

Se você estiver usando amsrefseles substituirão todos os itens acima - então, comente:

\usepackage{amsrefs}


1
Bem-vindo ao Stack Overflow! Sua resposta não parece realmente responder à pergunta. Suas informações podem ser valiosas, mas provavelmente são mais adequadas como comentário para uma das outras respostas (depois de obter a reputação necessária para postar comentários).
Zero3

0

Eu uso natbibem 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}

0

Adicione isso se desejar que o número de citações apareça em ordem no documento, elas serão desordenadas apenas na página de referência:

\bibliographystyle{unsrt}
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.