2008-09-27 13 views
197

De forma predeterminada (utilizando el estilo plain) BibTeX ordena las citas alfabéticamente.¿Cómo pedir citas por aparición usando BibTeX?

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

+24

Pregunta útil (votada), pero ¿no debería pertenecer a http://tex.stackexchange.com/? –

+8

@ChthonicProject, no creo tex.stackexchange.com comenzó hasta 2010 y esta pregunta es a partir de 2008. Además, la cuestión sería demasiado viejo para migrar, por lo que vive aquí. –

Respuesta

140

Hay tres buenas respuestas a esta pregunta.

  • utilizar el estilo unsrt bibliografía, si usted es feliz con su formato de lo contrario
  • Utilice la herramienta 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 en el mundo LaTeX.

Usando biblatex, que iba a escribir algo así 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} 
+1

Una ventaja aparente del paquete biblatex que me llevó a aceptar esta respuesta es que permite editar los estilos de referencia utilizando macros TeX en lugar del extraño vudú de BibTeX. Otros paquetes pueden ser mejores para una solución más rápida/más confiable. – Brendan

+0

Necesito agregar eso si estás usando biblatex. Sería mejor utilizar \ addbibresource en su lugar \ bibliografía. Por lo tanto, '\ addbibresource {journals.bib, phd-references.bib}' – Custodio

10

Lo mejor que se me ocurrió está utilizando el estilo unsrt, que parece ser un estilo ajustado plain. es decir,

\bibliographystyle{unsrt} 
\bibliography{bibliography} 

¿Qué pasa si mi estilo no es el predeterminado?

+3

Si está usando un estilo BibTeX personalizada, puede editarlo para eliminar el comando SORT? – ChrisN

+0

Por defecto, la página wiki recomienda que llano. Si copia y pega descuidadamente, usará el estilo simple en lugar de unsrt. http://en.wikibooks.org/wiki/LaTeX/Bibliography_Management –

11

Ha respondido a su propia pregunta --- unsrt se va a utilizar cuando se quiere referencias a NE enumeran en el orden del APARIENCIA.

Pero también puede ser que desee echar un vistazo a natbib, un paquete de citación extremadamente flexible. No puedo imaginar vivir sin eso.

+7

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

2

con unsrt el problema es el formato. use \bibliographystyle{ieeetr} para obtener refencias por orden de cita en el documento.

+0

Su afirmación sobre el formato parece contradecir la respuesta aceptada (y muy subida de tono). ¿Podrías aclarar? – Zero3

92

Cambio

\bibliographystyle{plain} 

a

\bibliographystyle{ieeetr} 

luego reconstruir un par de veces para reemplazar los .aux y .bbl archivos que se hicieron cuando utilizó el estilo llano.

Si utiliza MiKTeX que no es necesario descargar nada extra.

+2

¡Gracias! ¡Solución excelente y simple! –

+0

¡Impresionante! Funciona de la caja sin complicaciones, gracias –

+0

¡Genial! Gracias por la simple solución. – Faq

12

Sólo una breve nota - Estoy usando una versión modificada del plain.bst sentado en el directorio con los archivos de látex; Resulta que ordenar por orden de aparición es un cambio relativamente fácil; acaba de encontrar el trozo de código:

... 
ITERATE {presort} 

SORT 
... 

... y comentarlo - Le di la vuelta a:

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

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

¡Salud!

EDIT: acabo de dar cuenta de que lo que he escrito es en realidad en el comentario de @ChrisN: "puede modificarlo para eliminar el comando ORDENAR";)

3

que a menudo utilizan el estilo de bibliografía, ya que proporciona natbib un conjunto bastante completo de formatos y etiquetas para nosotros.

0

El paquete datatool ofrece una buena manera de ordenar la bibliografía por un criterio arbitrario, convirtiéndola por primera vez en un formato de base de datos.

ejemplo corto, tomada from here y fijó 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} 
0

Si sucede utilizar amsrefs que harán caso omiso de todo lo anterior - por lo comente:

\usepackage{amsrefs}

+0

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

4

I 'm un poco nuevo en Bibtex (y al látex en general) y me gustaría revivir este antiguo puesto ya que encontré que surgió en muchas de mis Google búsqueda investigaciones sobre el ordenamiento de una bibliografía de látex.

estoy proporcionando una respuesta más detallada a esta pregunta con la esperanza de que podría ayudar a algunos novatos por ahí que enfrentan las mismas dificultades que yo.

Aquí se muestra 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 archivo .bib 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" 
} 

Nota del 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.

Más información sobre el formato del archivo .bib se puede encontrar aquí: http://en.wikibooks.org/wiki/LaTeX/Bibliography_Management

0

utilizo natbib en combinación con bibliographystyle{apa}. Por ejemplo:

\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}