Biblatex: Mitarbeiterfeld

Biblatex: Mitarbeiterfeld

Ich habe mir in den letzten Tagen die Haare gerauft beim Versuch, Biblatex so zu konfigurieren, dass einzelne und mehrere Mitarbeiter an Bibliografieeinträgen beteiligt sein können.Entnervtes Seufzen.

Angesichts dieses Beispiels:

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

Wie kann ich elegant erreichen:

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

im Ergebnis und With collaborator:wenn nur ein Mitarbeiter beteiligt wäre?

Zu Ihrer Information, meine derzeit unbefriedigendste "Lösung" besteht darin, collaborator =die annotator =Stelle zu ändern, an der es in meinen .bib-Dateien erscheint, und hinzuzufügen

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

zu meinem Biblatex-Konfigurationscode. (Das ist in vielerlei Hinsicht eindeutig eine schreckliche „Lösung“)

Antwort1

Ich denke, dass die beste Möglichkeit, Ihnen zu ermöglichen, „Collaborator“ in der Datenbank zu haben und trotzdem die Standardstile zu verwenden, ohne mit irgendwelchen Treibern herumzufummeln, das Hinzufügen einer Sourcemap ist (Sie benötigen Biber 1.0+ und Biblatex 2.0+).

Die „Magie“ liegt hier im \DeclareSourcemapAbschnitt, der im Wesentlichen wie folgt funktioniert:

  1. Identifizieren Sie Einträge mit einem Mitarbeiterfeld: Wenn der Eintrag kein solches Feld hat, verarbeiten Sie ihn nicht weiter:\step[fieldsource=collaborator, final=true]

  2. Kopieren Sie das Mitarbeiterfeld in das Editorfeld:\step[fieldtarget=editora, origfieldval]

  3. Setzen Sie das Editoratype-Feld auf „Collaborator“:\step[fieldset=editoratype, fieldvalue=collaborator

Wenn Sie mit der „Standard“-Formatierung („In Zusammenarbeit mit“) zufrieden sind, ist das alles, was Sie brauchen. Etwas mehr Komplexität entsteht, weil Sie ein anderes Format wünschen, nämlich „Mit Mitarbeitern“. Das Problem dabei ist, dass die Standard-Biblatex-Stile in der Zeichenfolge „bytype“ nicht versuchen, zwischen einzelnen und mehreren Namen zu unterscheiden. An diesem Punkt haben Sie drei Möglichkeiten:

  1. Wenn Sie es einfach halten möchten, lassen Sie sich auf die Gegebenheiten ein und akzeptieren Sie ein Format, das für einen oder mehrere Mitarbeiter funktioniert, wie z. B. das Standardformat. Das ist am einfachsten und wahrscheinlich auch das Beste, es sei denn, Sie sind an die Formel „mit Mitarbeitern“ gebunden. In diesem Fall könnten Sie den gesamten zweiten Zuordnungsschritt sowie \newbibliographystringdie Definition einer bycollaboratorsZeichenfolge löschen.

  2. Wenn Sie „korrekt“ sein wollen, schreiben Sie interne Makros neu, um mehrere Namen zu identifizieren und entsprechend unterschiedliche Einführungszeichenfolgen zu drucken. Dies wäre ziemlich viel Arbeit und wahrscheinlich mehr, als wirklich gerechtfertigt ist.

  3. Unterscheiden Sie in der .bibDatei selbst zwischen einem und mehreren Kollaborateuren, indem Sie „Kollaborateur“ für einen und „Kollaborateure“ für zwei verwenden. Was BibLatex betrifft, handelt es sich dann um ganz unterschiedliche „Typen“ („Kollaborateure“ könnten für sie genauso gut „Rübenbändiger“ sein), aber durch die Definition einer geeigneten bibstringPluralform ist das Problem gelöst. Das ist nicht perfekt, aber es scheint akzeptabel, und deshalb habe ich es hier getan.

Das Endergebnis unter Berücksichtigung Ihrer geringfügig geänderten Eingabe, sodass aus „Mitarbeiter“ „Mitarbeiter“ wird (aus den oben erläuterten Gründen), ist wie folgt:

Bildbeschreibung hier eingeben

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

Antwort2

Gemäß dem Handbuch von Biblatex können Mitarbeiter verwaltet werden, indem die Liste in einem Editorfeld festgelegt und verwendet wird editortype=collaborator.

Für BibLaTeX bedeutet dies semantisch, dass Sie berücksichtigen möchten, dass Sie keinen Editoreintrag, sondern einen Mitarbeitereintrag angeben, da die neuen Schlüssel nicht zu sehr vervielfacht werden sollten, um den Standard beizubehalten.

Sie können auch angeben, wie auf den Mitarbeiter verwiesen werden soll.

  • Standardmäßig wird das collaboratorSchlüsselwort in collaboratoroder collab.für die Kurzversion übersetzt.
  • Das bycollaboratorSchlüsselwort lässt sich mit in collaboration withoder übersetzen in collab with.
  • Sie können auch die Taste verwenden , die in oder collaboratorsübersetzt .collaboratorscollab.

Beachten Sie jedoch, dass sich das Verhalten auf meinem Computer nicht ganz so zu verhalten scheint, wie in der Dokumentation beschrieben, und dass die Übersetzungen der Schlüsselwörter nicht für alle Sprachen verfügbar sind.

Außerdem folgen diesen Schlüsseln % FIXME: unsurein den Sprachdateien eine Menge weiterer, sodass es möglicherweise immer noch nicht ganz richtig funktioniert.

Wenn Sie biblatex eine Liste mit Namen geben, sollten Sie jeden Namen durch andein Schlüsselwort trennen, da das Komma als Trennzeichen zwischen Vor- und Nachnamen erkannt wird. Daher interpretiert biblatex Ihren Eintrag als David Spurettund John Collier.

Sie sollten also ungefähr Folgendes haben:

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

Ich denke, das sollte für Sie funktionieren. In meinem Testdokument erhalte ich in englischer Sprache Folgendes:

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

Dies scheint so ziemlich das zu sein, was Sie erwarten.

Antwort3

Hier ist ein Beispiel aus einem anderen Buch mit demselben Problem. Diese Lösung stammt von MathSciNet. noteIn einem solchen Fall wird das Feld verwendet.

@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},
}

verwandte Informationen