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?

Brendan
fonte
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}
Will Robertson
fonte
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.

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

sdaau
fonte
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?

Brendan
fonte
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.

lindelof
fonte
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

HeWhoLikesWaffles
fonte
3

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

Tung
fonte
2

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

Thiem Nguyen
fonte
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}
kebs
fonte
0

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

\usepackage{amsrefs}

Convidado
fonte
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}
Tshilidzi Mudau
fonte
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}
Malak
fonte