Biblatex: campo colaborador(es)

Biblatex: campo colaborador(es)

Me he estado arrancando los pelos los últimos días intentando configurar biblatex para manejar colaboradores únicos y múltiples en entradas de bibliografía.Suspiro exasperado.

Dado este ejemplo:

\documentclass{article}

\usepackage[style=authoryear]{biblatex}
\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@book{LadymanRoss07,
   author = {Ladyman, James and Ross, Don},
   collaborator = {David Spurrett and Collier, John},
   title = {Every Thing Must Go: Metaphysics Naturalized},
   publisher = {Oxford University Press},
   year = {2007}
}
\end{filecontents}

\addbibresource{\jobname.bib}
\nocite{*}

\begin{document}
\printbibliography
\end{document}

¿Cómo puedo lograr elegantemente:

Ladyman, James and Don Ross (2007). Every Thing Must Go: Metaphysics Naturalized. 
With collaborators: David Spurrett and John Collier. Oxford University Press.

en el resultado, y With collaborator:si solo estuviera involucrado un colaborador?

Para su información, mi "solución" más insatisfactoria actual implica cambiar collaborator =a annotator =donde aparece en mis archivos .bib y agregar

\DefineBibliographyStrings{english}{
  withannotator = With collaborators:\addspace ,
}

a mi código de configuración biblatex. (¡Esta es claramente una "solución" terrible en muchos sentidos!)

Respuesta1

Creo que la forma más apropiada de permitirle tener "colaborador" en la base de datos y seguir usando los estilos estándar sin tener que manipular ningún controlador es agregar un mapa fuente (necesitará Biber 1.0+ y biblatex 2.0+).

La "magia" aquí está en la \DeclareSourcemapsección, que básicamente funciona de la siguiente manera:

  1. Identifique entradas con un campo de colaborador: si la entrada no tiene dicho campo, no procese más:\step[fieldsource=collaborator, final=true]

  2. Copie el campo colaborador al campo editora:\step[fieldtarget=editora, origfieldval]

  3. Establezca el campo tipo de editor en "colaborador":\step[fieldset=editoratype, fieldvalue=collaborator

Si estuviera satisfecho con el formato "estándar" ("En colaboración con"), eso sería todo lo que necesitaría. Aparece un poco de complejidad adicional porque desea un formato diferente, "Con colaborador(es)". El problema aquí es que en la cadena "bytype", los estilos estándar de biblatex no intentan distinguir entre nombres únicos y múltiples. En ese punto tienes tres opciones:

  1. Si desea mantener las cosas simples, siga los pasos y acepte un formato que pueda funcionar para uno o varios colaboradores, como el predeterminado. Esto es lo más simple y, a menos que esté aferrado a la fórmula "con colaboradores", probablemente sea lo mejor. Si es así, podría eliminar todo el segundo paso del mapa, el \newbibliographystringy la definición de una bycollaboratorscadena.

  2. Si quiere ser "correcto", reescriba las macros internas para identificar varios nombres e imprima cadenas introductorias diferentes de manera adecuada. Esto supondría bastante trabajo y probablemente más de lo que es realmente justificable.

  3. Distinga en el .bibpropio archivo entre uno y varios colaboradores, utilizando "colaborador" para uno y "colaboradores" para dos. En lo que respecta a biblatex, se trata de "tipos" bastante diferentes ("colaboradores" también podrían ser "nabos" en lo que a él respecta), pero al definir una forma adecuada bibstringpara manejar la forma plural el problema se resuelve. Eso no es perfecto, pero parece aceptable, y eso es lo que he hecho aquí.

El resultado final, dada su entrada ligeramente modificada para que "colaborador" se convierta en "colaboradores" (por las razones explicadas anteriormente) es el siguiente:

ingrese la descripción de la imagen aquí

\documentclass{article}
\usepackage{filecontents}

\usepackage[style=authoryear,backend=biber]{biblatex}

\DeclareSourcemap{
 \maps[datatype=bibtex,overwrite=false]{
  \map{
    \step[fieldsource=collaborator, final=true]
    \step[fieldset=editora, origfieldval]
    \step[fieldset=editoratype, fieldvalue=collaborator]
  }
  % THIS MAP STEP IS ONLY THERE TO ENABLE US TO USE "COLLABORATORS"
  % AS WELL AS "COLLABORATOR", BECAUSE THE QUESTION WANTS TO USE THE
  % "WITH COLLABORATORS" INTRODUCTION
  \map{
    \step[fieldsource=collaborators, final=true]
    \step[fieldset=editora, origfieldval]
    \step[fieldset=editoratype, fieldvalue=collaborators]
   }
 }
}
\NewBibliographyString{bycollaborators}% ONLY FOR "WITH COLLABORATORS"

\DefineBibliographyStrings{english}{%
  bycollaborator  = {with collaborator\addcolon\space},
  % AND ONLY FOR "WITH COLLABORATORS"
  bycollaborators = {with collaborators\addcolon\space}}

\begin{filecontents}{\jobname.bib}
@book{LadymanRoss07,
   author = {Ladyman, James and Ross, Don},
   collaborators = {David Spurrett and Collier, John},
   title = {Every Thing Must Go: Metaphysics Naturalized},
   publisher = {Oxford University Press},
   year = {2007}
}
\end{filecontents}

\addbibresource{\jobname.bib}
\nocite{*}

\begin{document}
\printbibliography
\end{document}

Respuesta2

Según el manual de biblatex, el manejo de colaboradores se puede lograr configurando la lista en los campos de un editor y usando editortype=collaborator.

Para biblatex, esto indica semánticamente que desea que considere que no está dando una entrada de editor sino de colaborador, ya que no querían multiplicar demasiado las nuevas claves para mantenerlas bastante estándar.

También puedes especificar la forma en la que quieres que se refiera al colaborador.

  • De forma predeterminada, la collaboratorpalabra clave se traduce a collaboratoro collab.para la versión corta.
  • La bycollaboratorpalabra clave se traduce en in collaboration witho in collab with.
  • También puedes usar la clave collaboratorsque se traduce como collaboratorso collab..

Sin embargo, tenga en cuenta que esto no parece comportarse como se describe en la documentación de mi computadora y que las traducciones de palabras clave no están disponibles para todos los idiomas.

Además, estas claves van seguidas de un montón de % FIXME: unsurearchivos de idioma, por lo que tal vez todavía no funcione del todo correctamente.

Cuando le da a biblatex una lista de nombres, debe separar cada nombre por andpalabra clave ya que la coma se reconoce como un separador de nombre/apellido. Entonces, biblatex interpreta su entrada como David Spuretty John Collier.

Entonces deberías tener algo como esto:

@book{LadymanRoss07,
   author = {Ladyman, James and Ross, Don},
   editor = {David Spurrett and Collier, John},
   editortype = {collaborator},
   title = {Every Thing Must Go: Metaphysics Naturalized},
   publisher = {Oxford University Press},
   year = {2007}
}

Creo que esto debería funcionar para ti. En mi documento de prueba, al utilizar el idioma inglés, obtengo lo siguiente:

[1] James Ladyman and Don Ross. Every Thing Must Go: Metaphysics Naturalized. In collab.
    with David Spurrett, Collier, and John. Oxford University Press, 2007.

Esto parece ser más o menos lo que esperabas.

Respuesta3

Aquí hay un ejemplo de otro libro con el mismo problema. Esta solución es de MathSciNet. Usan el notecampo en tal caso.

@BOOK{Buergisser1997,
      AUTHOR = {B{\"u}rgisser, Peter and Clausen, Michael and Shokrollahi, M. Amin},
       TITLE = {{A}lgebraic {C}omplexity {T}heory},
      SERIES = {Grundlehren der Mathematischen Wissenschaften [Fundamental Principles of Mathematical Sciences]},
      VOLUME = {315},
        NOTE = {With the collaboration of Thomas Lickteig},
   PUBLISHER = {Springer-Verlag},
     ADDRESS = {Berlin},
        YEAR = {1997},
       PAGES = {xxiv+618},
        ISBN = {3-540-60582-7},
     MRCLASS = {68-02 (12Y05 65Y20 68Q05 68Q15 68Q25 68Q40)},
    MRNUMBER = {1440179 (99c:68002)},
  MRREVIEWER = {Alexander I. Barvinok},
}

información relacionada