¿Cómo ordenar citas por apariencia usando BibTeX?

259

Por defecto (usando el plainestilo) BibTeX ordena las citas alfabéticamente.

¿Cómo ordenar las citas por orden de aparición en el documento?

Brendan
fuente
36
Pregunta útil (votada), pero ¿no debería pertenecer a tex.stackexchange.com ?
Proyecto Chthonic
12
@ChthonicProject, no creo que tex.stackexchange.com comenzó hasta 2010 y esta pregunta es de 2008. Además, la pregunta sería demasiado antigua para migrar, por lo que sigue viva aquí.
Richard Erickson el
1
Eliminar los archivos .aux y .bbl y reconstruir
Emad Aghayi

Respuestas:

195

Hay tres buenas respuestas a esta pregunta.

  • Use el unsrtestilo de bibliografía, si está satisfecho con su formato de lo contrario
  • Use la herramienta makebst (enlace) para diseñar su propio estilo de bibliografía

Y mi recomendación personal:

  • Use el biblatexpaquete (enlace) . Es la herramienta de bibliografía más completa y flexible del mundo de 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}
Will Robertson
fuente
2
Una ventaja aparente del paquete biblatex que me hizo aceptar esta respuesta es que permite editar estilos de referencia usando macros TeX en lugar de vudú extraño de BibTeX. Otros paquetes pueden ser mejores para una solución más rápida / confiable.
Brendan
1
Necesito agregar eso si está usando biblatex. Sería mejor usar \ addbibresource en lugar de \ bibliografía. Entonces\addbibresource{journals.bib,phd-references.bib}
Custodio
126

Cambio

\bibliographystyle{plain}

a

\bibliographystyle{ieeetr}

Luego, reconstruya varias veces para reemplazar los archivos .auxy .bblque se crearon cuando utilizó el estilo plano.

O simplemente eliminar las .auxy los .bblarchivos y reconstruir.

Si usa MiKTeX, no debería necesitar descargar nada extra.

Riaz
fuente
44
¡Gracias! Excelente y simple solución!
Antillar Maximus
¡Excelente! Gracias por la solución simple.
Su Majestad el
44
si está escribiendo un documento para la publicación de ACM, entonces unsrtsería mejor que ieeetrya que este último está destinado al papel IEEE que tiene un formato ligeramente diferente. unsrty abbrvproduce el mismo tipo de formato. Es posible que desee echar un vistazo a este enlace
Ash Catchem
¡La respuesta simple surge! Mientras Will Robertson 's biblatex-centric respuesta es en última instancia el camino a seguir para la comunidad de látex, continua falta de LyX de soporte incorporado para biblatexes un bloqueador enorme (y cada vez más embarazoso). ¡Han pasado ocho años desde que esta pregunta se planteó por primera vez! Nunca asimilaré las prioridades de desarrollador de LyX. Es 2016. Los autos sin conductor y las supercomputadoras portátiles son una cosa, pero aquí seguimos encadenados a la misma piedra de vergüenza BibTeX execrable.
Cecil Curry
1
No funciona en la aplicación Overleaf. Los eliminé en Overleaf por overleaf.com/learn/how-to/Clearing_the_cache pero no soluciona el problema.
Emad Aghayi
21

Solo una breve nota: estoy usando una versión modificada de plain.bst en el directorio con mis archivos Latex; Resulta que ordenar por orden de aparición es un cambio relativamente fácil; solo encuentra el código:

...
ITERATE {presort}

SORT
...

... y comentarlo - Lo cambié a:

...
%% % avoid sort:
%% ITERATE {presort}
%%
%% SORT
...

... y luego, después de correr bibtex, pdflatex, pdflatex- las citas se ordenarán por orden de aparición (es decir, serán sin clasificar :)).

¡Salud!

EDITAR: acabo de darme cuenta de que lo que escribí está realmente en el comentario de @ChrisN: " ¿puedes editarlo para eliminar el comando SORT ";)

sdaau
fuente
18

Lo mejor que se me ocurrió es usar el unsrtestilo, que parece ser un plainestilo ajustado . es decir

\bibliographystyle{unsrt}
\bibliography{bibliography}

Sin embargo, ¿qué pasa si mi estilo no es el predeterminado?

Brendan
fuente
44
Si está utilizando un estilo BibTeX personalizado, ¿puede editarlo para eliminar el comando SORT?
ChrisN
Por defecto, la página wiki te recomienda sin formato. Si copia y pega descuidadamente, usará el estilo simple en lugar del estilo no insertado. en.wikibooks.org/wiki/LaTeX/Bibliography_Management
Andras Gyomrey
12

Respondió su propia pregunta unsrt: debe usarse cuando desee referencias a una lista 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 me puedo imaginar vivir sin ella.

lindelof
fuente
77
natbib solo afecta la composición tipográfica de los comandos \ cite en el documento mismo. Dicho esto, se distribuye con unsrtnat.bst para lograr el efecto buscado por el póster original. (Recomendaría biblatex en estos días sobre natbib, a menos que la estabilidad absoluta sea lo más importante)
Will Robertson,
5

Soy un poco nuevo en Bibtex (y en Latex en general) y me gustaría revivir esta publicación anterior, ya que descubrí que apareció en muchas de mis consultas de búsqueda en Google sobre el pedido de una bibliografía en Latex.

Estoy proporcionando 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.

Aquí hay un ejemplo del archivo .tex principal 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 archivo .bib en sí:

@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í: http://en.wikibooks.org/wiki/LaTeX/Bibliography_Management

HeWhoLikesWaffles
fuente
3

A menudo uso el estilo de bibliografía natbibporque proporciona un conjunto bastante completo de formatos y etiquetas para nosotros.

Tung
fuente
2

con unsrtel problema es el formato use \bibliographystyle{ieeetr}para obtener referencias en orden de cita en el documento.

Thiem Nguyen
fuente
Su reclamo sobre el formato parece contradecir la respuesta aceptada (y muy votada). ¿Podrías aclarar?
Zero3
0

El paquete datatool ofrece una buena manera de ordenar la bibliografía por un criterio arbitrario, convirtiéndola 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}
kebs
fuente
0

Si está utilizando amsrefs, anularán todo lo anterior, así que comente:

\usepackage{amsrefs}

Invitado
fuente
1
¡Bienvenido a Stack Overflow! Su respuesta no parece responder realmente a la pregunta planteada. Su información podría ser valiosa, pero probablemente sea más adecuada como comentario para una de las otras respuestas (una vez que haya obtenido la reputación necesaria para publicar comentarios).
Zero3
0

Yo uso natbiben 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}
Tshilidzi Mudau
fuente
0

Agregue esto si desea que el número de citas aparezca en orden en el documento, solo se ordenarán en la página de referencia:

\bibliographystyle{unsrt}
Malak
fuente