
Deseo darle menos peso a las entradas @misc en mi bibliografía moviéndolas al final, después de las publicaciones de conferencias académicas. Por lo demás, me gusta la forma en que abbrvnat presenta los elementos de la bibliografía. También estoy usando natbib para obtener citas numéricas y compactación.
De forma predeterminada, ordena las citas por nombre de autor (lo cual está bien), y cuando no hay ningún nombre de autor disponible, parece estar usando otra cosa (¿título?) como campo de clasificación en la bibliografía.
¿Cuál es la forma más sencilla de enviar todas las referencias @misc al final del documento, manteniendo su orden relativo?
Un documento de ejemplo:
\documentclass[11pt]{article}
\usepackage[hyphens]{url}
\usepackage[numbers,sort&compress]{natbib}
\begin{document}
Articles: \cite{bogus, greenwade93}
Website: \cite{example}
\bibliographystyle{abbrvnat}
\bibliography{biblio}
\end{document}
\bibliographystyle{myabbrvnat}
\bibliography{biblio}
Bibliografía de ejemplo:
@misc{example,
title = {{Example.org Home Page}},
howpublished = {\url{http://example.org/}},
note = {Accessed: June 2017.}
}
@article{bogus,
aurhor = {Bogus Redwade},
title = {A Bogus Article},
year = {1993},
}
@article{greenwade93,
author = {George D. Greenwade},
title = {The {C}omprehensive {T}ex {A}rchive {N}etwork ({CTAN})},
year = {1993},
journal = {TUGBoat},
volume = {14},
number = {3},
pages = {342--351}
}
En ese ejemplo, me gustaría que el sitio web se moviera al final de la lista. Si hay varios sitios web, se debe mantener su orden relativo.
Respuesta1
Dado que está dispuesto a modificar el archivo de bibliografía, puede utilizar la solución alternativa conocida \noopsort
(consultehttps://tex.stackexchange.com/search?q=noopsort) para ordenar las entradas varias después del resto. Debido a que la clasificación se realiza por autor, también debe cambiar el campo de título de las entradas misceláneas a autor. Para esta solución no es necesario cambiar el .bst
archivo -.
Ejemplo:
@PREAMBLE{ {\providecommand{\noopsort}[1]{}} }
@misc{example,
author = {{\noopsort{zzz-example}}{Example.org Home Page}},
howpublished = {\url{http://example.org/}},
note = {Accessed: June 2017.}
}
Resultado:
Alternativamente, biblatex
se puede utilizar sin cambiar el archivo de bibliografía, imprimiendo secciones de referencia separadas según el tipo. Adaptado dehttps://tex.stackexchange.com/a/6966:
\printbibliography[nottype=misc,title={References}]
\vspace{-6mm}
\printbibliography[heading=none,type=misc]
El pequeño problema aquí es que la segunda sección de bibliografía, incluso sin título, todavía introduce algún espacio adicional que debe eliminarse (por ejemplo, con un negativo vspace
).
Respuesta2
Encontré una forma, pero requiere editar el archivo BST. Lo cual parece excesivo. Sin embargo, el archivo bst parece ser responsable de la clasificación.
Primero intenté cambiar lo que pensé que era la clave de la entrada, por ejemplo, cambiar @misc{foo,...}
a, @misc{z-foo,...}
pero esto no tuvo ningún efecto, así que profundicé más.
Paso 1. Edite el archivo bst
- copie abbrvnat.bst en el directorio del proyecto (
$ cp /usr/share/texlive/texmf-dist/bibtex/bst/natbib/abbrvnat.bst ./myabbrtnat.bst
) En la parte superior del archivo, observe que dice: "Las obras con autores y años idénticos se clasifican además por clave de cita, para preservar la secuencia natural". Abbrvnat ordena primero por autores. Lo que probablemente significa que ordena con la tupla:
(author(s), year, key)
.editar el archivo copiado:
- En la
ENTRY
sección, después dekey
, agregue un nuevo campo llamadosortkey
en su propia línea. - Hay una función autor.sort. Lo modifiqué para manejar el campo 'clasificación' para anular el campo de autor:
- En la
(algunos tipos de citas no utilizan el autor para ordenar (por ejemplo, ordenados por editor), por lo que es posible que sea necesario replicar esto en otros lugares dependiendo de su bibliografía)
FUNCTION {author.sort}
{ sortkey empty$
{ author empty$
{ key empty$
{ "to sort, need author or key in " cite$ * warning$
""
}
{ key sortify }
if$
}
{ author sort.format.names }
if$
}
{ sortkey sortify }
if$
}
Paso 2. Utilice el BST modificado
En el archivo principal de látex: cambie a
\bibliographystyle{myabbrvnat}
Para cada elemento de bibliografía cuyo orden deba modificarse, agregue un campo
sortkey
con el nuevo valor que debe usarse para determinar su orden.Antepongo "zz-" al nombre de la entrada si quiero enviarla al final.
En texto:
...
Website: F~\cite{example-f}, E~\cite{example-e}, A~\cite{example-a}
...
Y biblio:
@misc{example-a,
sortkey = {axample}, % will go before others - starts with 'a'
title = {{Axample.org Home Page}},
howpublished = {\url{http://example.org/}},
}
@misc{example-e,
sortkey = {zzz-example}, % send to the back. prefix with 'zzz-'
title = {{Example.org Home Page}},
howpublished = {\url{http://example.org/}},
}
@misc{example-f,
sortkey = {zzz-fxample}, % send to the back. prefix with 'zzz-'
title = {{Fxample.org Home Page}},
howpublished = {\url{http://example.org/}},
}
Produce: