latex - overleaf - ¿Cómo ordenar citas por apariencia usando BibTeX?
bibtex overleaf (11)
A menudo utilizo el estilo de bibliografía natbib
porque nos proporciona un conjunto de formatos y etiquetas bastante completo.
Por defecto (usando el estilo plain
) BibTeX ordena las citas alfabéticamente.
¿Cómo ordenar las citas por orden de aparición en el documento?
Cambio
/bibliographystyle{plain}
a
/bibliographystyle{ieeetr}
Luego reconstrúyalo varias veces para reemplazar los archivos .aux
y .bbl
que se .bbl
cuando usó el estilo simple.
O simplemente elimine los archivos .aux
y .bbl
y reconstrúyalos.
Si usas MiKTeX no deberías necesitar descargar nada extra.
El paquete datatool ofrece una buena manera de ordenar la bibliografía por un criterio arbitrario, convirtiéndolo primero en algún formato de base de datos.
Breve ejemplo, tomado de aquí y publicado para el 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}
Hay tres buenas respuestas a esta pregunta.
- Utilice el estilo de bibliografía de
unsrt
, si está satisfecho con su formato de lo contrario - Utilice la
makebst
(link) para diseñar su propio estilo de bibliografía
Y mi recomendación personal:
- Utilice el paquete
biblatex
(link) . Es la herramienta de bibliografía más completa y flexible del mundo LaTeX.
Usando biblatex
, escribirías 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}
Lo mejor que se me ocurrió es usar el estilo unsrt
, que parece ser un estilo plain
ajustado. es decir
/bibliographystyle{unsrt}
/bibliography{bibliography}
Sin embargo, ¿qué pasa si mi estilo no es el predeterminado?
Respondió su propia pregunta unsrt
debe utilizarse unsrt
cuando desee que las referencias se enumeren en el orden de aparición.
Pero también es posible que desee echar un vistazo a natbib , un paquete de citas extremadamente flexible. No puedo imaginar vivir sin ella.
Si está utilizando amsrefs
, se anulará todo lo anterior, así que comente:
/usepackage{amsrefs}
Solo una breve nota: estoy usando una versión modificada de plain.bst que está en el directorio con mis archivos de Latex; Resulta que tener una clasificación por orden de aparición es un cambio relativamente fácil; solo encuentra el código:
...
ITERATE {presort}
SORT
...
... y coméntalo - lo convertí en:
...
%% % avoid sort:
%% ITERATE {presort}
%%
%% SORT
...
... y luego, después de ejecutar bibtex
, bibtex
, bibtex
- las citas se ordenarán por orden de aparición (es decir, no se clasificarán :)).
¡Aclamaciones!
EDIT: me di cuenta de que lo que escribí está realmente en el comentario de @ChrisN: "¿ puede editarlo para eliminar el comando SORT ";)
Soy un poco nuevo en Bibtex (y en Latex en general) y me gustaría revivir este viejo post ya que descubrí que surgió en muchas de mis consultas de búsqueda de Google sobre el pedido de una bibliografía en Latex.
Estoy brindando una respuesta más detallada a esta pregunta con la esperanza de que pueda ayudar a algunos novatos que enfrentan las mismas dificultades que yo.
Este es un ejemplo del archivo principal .tex en el que se llama la bibliografía:
/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}
... y un ejemplo del propio archivo .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"
}
Tenga en cuenta que las referencias en el archivo .bib se enumeran en orden inverso, pero las referencias se enumeran en el orden en que se citan en el documento.
Puede encontrar más información sobre el formato de su archivo .bib aquí: en.wikibooks.org/wiki/LaTeX/Bibliography_Management
Uso natbib
en combinación con bibliographystyle{apa}
. P.ej:
/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}
con unsrt
el problema es el formato. use /bibliographystyle{ieeetr}
para obtener referencias en orden de citas en el documento.