¿Cómo modificar el orden de clasificación para colocar referencias de URL en línea al final de la bibliografía?

¿Cómo modificar el orden de clasificación para colocar referencias de URL en línea al final de la bibliografía?

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.

captura de pantalla

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 .bstarchivo -.

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:

ingrese la descripción de la imagen aquí

Alternativamente, biblatexse 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

  1. copie abbrvnat.bst en el directorio del proyecto ( $ cp /usr/share/texlive/texmf-dist/bibtex/bst/natbib/abbrvnat.bst ./myabbrtnat.bst)
  2. 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).

  3. editar el archivo copiado:

    1. En la ENTRYsección, después de key, agregue un nuevo campo llamado sortkeyen su propia línea.
    2. Hay una función autor.sort. Lo modifiqué para manejar el campo 'clasificación' para anular el campo de autor:

(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

  1. En el archivo principal de látex: cambie a\bibliographystyle{myabbrvnat}

  2. Para cada elemento de bibliografía cuyo orden deba modificarse, agregue un campo sortkeycon 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:

resultado

información relacionada