Por defecto (usando el plain
estilo) BibTeX ordena las citas alfabéticamente.
¿Cómo ordenar las citas por orden de aparición en el documento?
Por defecto (usando el plain
estilo) BibTeX ordena las citas alfabéticamente.
¿Cómo ordenar las citas por orden de aparición en el documento?
Respuestas:
Hay tres buenas respuestas a esta pregunta.
unsrt
estilo de bibliografía, si está satisfecho con su formato de lo contrariomakebst
(enlace) para diseñar su propio estilo de bibliografíaY mi recomendación personal:
biblatex
paquete (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}
\addbibresource{journals.bib,phd-references.bib}
Cambio
\bibliographystyle{plain}
a
\bibliographystyle{ieeetr}
Luego, reconstruya varias veces para reemplazar los archivos .aux
y .bbl
que se crearon cuando utilizó el estilo plano.
O simplemente eliminar las .aux
y los .bbl
archivos y reconstruir.
Si usa MiKTeX, no debería necesitar descargar nada extra.
unsrt
sería mejor que ieeetr
ya que este último está destinado al papel IEEE que tiene un formato ligeramente diferente. unsrt
y abbrv
produce el mismo tipo de formato. Es posible que desee echar un vistazo a este enlace
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 biblatex
es 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.
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 ";)
Lo mejor que se me ocurrió es usar el unsrt
estilo, que parece ser un plain
estilo ajustado . es decir
\bibliographystyle{unsrt}
\bibliography{bibliography}
Sin embargo, ¿qué pasa si mi estilo no es el predeterminado?
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.
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
con unsrt
el problema es el formato use \bibliographystyle{ieeetr}
para obtener referencias en orden de cita en el documento.
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}
Si está utilizando amsrefs
, anularán todo lo anterior, así que comente:
\usepackage{amsrefs}
Yo 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}