In welches Feld platziert man üblicherweise eine abgestufte Autorschaft wie etwa "Unter Mitarbeit von Max Mustermann und Erika Musterfrau" bzw. "Unter Mitwirkung von Max Mustermann und Erika Musterfrau" bei Büchern (@book)? Ist

Öffne in Overleaf
note={Unter Mitarbeit von Max Mustermann und Erika Musterfrau}

bzw.

Öffne in Overleaf
note={Unter Mitwirkung von Max Mustermann und Erika Musterfrau}

in der .bib-Datei üblich? Oder nutzt man lieber das Feld subtitle dazu? Oder Teile von title? Wie ist es gedacht (wenn überhaupt)? (Sollte es jemand interesieren: ich verwende aktuell \usepackage[backend=biber,style=alphabetic,sortcites=true,maxbibnames=99,useprefix=true,dateabbrev=true]{biblatex}, aber das kann sich ändern; meine Frage ist stilübergreifend.)

gefragt 23 Feb '19, 01:20

user0's gravatar image

user0
1021227
Akzeptiert-Rate: 0%

bearbeitet 23 Feb '19, 01:40

Standard-BibTeX sieht für @book die notwendigen Felder author, editor, title, publisher und year, sowie die optionalen Felder volume, number, series, address, edition, month und note vor. Ich würde diese Information wahrscheinlich so wie du in note unterbringen, sodass ich die BibTeX-Datei mit anderen Formaten »recyclen« kann und nicht an biblatex gebunden bin. Im Endeffekt ist komplett dir überlassen, wo du das einträgst. Wie du siehst existiert kein Standardfeld, wie z.B. coauthor oder so.

(23 Feb '19, 06:22) Henri

In biblatex gibt es dafür tatsächlich ein Feld, nämlich editor. Auch wenn es auf den ersten Blick nicht so scheint, kann man mit editortype die Rolle des Editors festlegen. Hier ein kurzer Auszug aus der Anleitung dazu:

alt text

Öffne in Overleaf
% arara: pdflatex
% arara: biber
% arara: pdflatex
% arara: pdflatex
\begin{filecontents*}{\jobname.bib}
@book{beispielbuch,
  author = {Normalverbraucher, Otto},
  title = {Beispielbuch},
  year = {1900},
  editor = {Mustermann, Max and Musterfrau, Erika},
  editortype = {collaborator},
}
\end{filecontents*}
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{biblatex}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{beispielbuch}
\printbibliography
\end{document}

alt text

Permanenter link

beantwortet 23 Feb '19, 07:16

Henri's gravatar image

Henri
15.7k133943
Akzeptiert-Rate: 46%

3

Obwohl ich es längst besser wissen sollte, bin ich immer wieder überrascht, was biblatex alles bereits beherrscht. Man kann gar nicht oft genug in dessen Anleitung stöbern. Das ist wie bei pgf oder KOMA-Script. Jedes Mal, wenn man in der Anleitung blättert oder häufig auch beim Lesen von Antworten hier auf TeXwelt, findet man wieder etwas, was man schon lange mal hätte brauchen können.

(23 Feb '19, 11:59) gast3

Ich dachte, "editor" wäre ein Redakteur/Schriftleiter, und "consultant" wäre ein Berater. Das ist teilweise spezieller, teilweise etwas anderes als abgestufte Coautorschaft.

(23 Feb '19, 21:48) user0

@IjonTichy Ich habe das Feld editortype auch nur durch Zufall gefunden, weil ich wissen wollte, welche Unterschiede es zwischen den notwendigen Felder in BibTeX und biblatex gibt. Dabei fiel mir editora, editorb, editorc auf, was mich zu editortype brachte.

(23 Feb '19, 23:39) Henri

@user0 Wenn editor schon belegt ist kannst du editora, editorb oder editorc nutzen. Der entsprechende editor<a,b,c>type muss dann natürlich auch angepasst werden.

(23 Feb '19, 23:41) Henri

Ja, allerdings alles nur wenn Max und Erika tatsächlich eine der Rollen Redakteur, Schriftleiter, Berater usw. übernahmen, und keine Rolle der abgestuften Autorschaft. Diese Rolle hätte hingegen jemand, der/die vergleichsweise wenig Inhalt beitrug. Wie du oben bereits in deinem Kommentar schriebest, ist note vermutlich doch das passendste. Man hätte vermutlich so etwas wie coauthor, authora, authorb, authorc gebraucht, was aber nicht vorhanden ist.

(26 Feb '19, 20:32) user0

@user0 Dann wirst du nicht darum herumkommen dir einen eigenen biblatex-Stil zu schreiben. Eventuell musst du dafür sogar biber anfassen, wenn du willst, dass die neuen Felder in der Sortierung berücksichtigt werden. Das geht allerdings weit über die ursprüngliche Frage hinaus.

(26 Feb '19, 22:10) Henri
Ergebnis 5 von 6 show 1 more comments

Wenn Du unzufrieden damit bist, editora zu verwenden, da es sich hier nicht um Herausgeber im weiteren Sinne handelt, sondern um Autoren, dann wirst Du nicht umhin kommen, selbst etwas Hand anzulegen. Es ist recht einfach, den Code für editorx zu kopieren und zu authorx umzumodeln. (Es sei erwähnt, dass ich es zwar verstehen kann, dass Du der Meinung bist, editorx sei nicht ganz passend, andererseits sind die Punkte 2 und 3 auf Seite 12 von btxdoc sehr zutreffend. Gerade hier stellt sich die Frage, wie häufig Du auf ähnliche Situationen triffst, und was Du gewinnst, wenn Du editorx nicht verwendest.)

Öffne in Overleaf
\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage{filecontents}
\begin{filecontents}{authorx.dbx}
\DeclareDatamodelFields[type=list, datatype=name]{
  authora,
  authorb,
  authorc}
\DeclareDatamodelFields[type=field, datatype=key]{
  authoratype,
  authorbtype,
  authorctype}
\DeclareDatamodelEntryfields[article]{
  authora,
  authoratype,
  authorb,
  authorbtype,
  authorc,
  authorctype}
\end{filecontents}

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

\DeclareNameAlias{byauthora}{byauthor}
\DeclareNameAlias{byauthorb}{byauthor}
\DeclareNameAlias{byauthorc}{byauthor}

\newbibmacro*{byauthorx}{%
  \ifnameundef{authora}
    {}
    {\usebibmacro{bytypestrg}{authora}{author}%
     \setunit{\addspace}%
     \printnames[byauthora]{authora}%
     \newunit}%
  \ifnameundef{authorb}
    {}
    {\usebibmacro{bytypestrg}{authorb}{author}%
     \setunit{\addspace}%
     \printnames[byauthorb]{authorb}%
     \newunit}%
  \ifnameundef{authorc}
    {}
    {\usebibmacro{bytypestrg}{authorc}{author}%
     \setunit{\addspace}%
     \printnames[byauthorc]{authorc}%
     \newunit}}

\renewbibmacro*{byauthor}{%
  \ifboolexpr{
    test \ifuseauthor
    or
    test {\ifnameundef{author}}
  }
    {}
    {\usebibmacro{bytypestrg}{author}{author}%
     \setunit{\addspace}%
     \printnames[byauthor]{author}}%
  \usebibmacro{byauthorx}}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{elk,
  author      = {Anne Elk},
  title       = {A Theory on Brontosauruses},
  year        = {1972},
  authora     = {Humphrey Appleby and James Hacker},
  authoratype = {collaborator},
}
\end{filecontents}

\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
\cite{sigfridsson,elk}
\printbibliography
\end{document}

Die Ausgabe ist die, die Du auch mit editorx bekommen würdest.

Elk, Anne (1972). A Theory on Brontosauruses. Unter Mitarb. von Humphrey Appleby und James Hacker.

Wenn die authorx aber noch zur Sortierung oder für andere Features (uniquename, uniquelist, labelalpha) herangezogen werden sollen, dann ist mehr Arbeit nötig.


Damit es nicht verloren geht, hier eine (vielleicht nicht ganz ausgereifte) Erweiterung, bei der die authorxen zusammen mit dem Autor vor dem Titel stehen. Der konkrete Code ist für alphabetic gedacht, funktioniert also mit allen Standardstilen, außer denen, deren Bibliographiestil auf authortitle und authoryear aufbaut. Eine ähnliche Methode wäre dort aber anwendbar.

Öffne in Overleaf
\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage{filecontents}
\begin{filecontents}{authorx.dbx}
\DeclareDatamodelFields[type=list, datatype=name]{
  authora,
  authorb,
  authorc}
\DeclareDatamodelFields[type=field, datatype=key]{
  authoratype,
  authorbtype,
  authorctype}
\DeclareDatamodelEntryfields[article]{
  authora,
  authoratype,
  authorb,
  authorbtype,
  authorc,
  authorctype}
\end{filecontents}

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

\DeclareNameAlias{authora}{author}
\DeclareNameAlias{authorb}{author}
\DeclareNameAlias{authorc}{author}
\DeclareNameAlias{byauthora}{byauthor}
\DeclareNameAlias{byauthorb}{byauthor}
\DeclareNameAlias{byauthorc}{byauthor}

\newbibmacro*{authorxstrg}[1]{%
  \iffieldundef{#1type}
    {}
    {\printtext[#1type]{%
       \ifbibxstring{\thefield{#1type}}
         {\ifboolexpr{
            test {\ifnumgreater{\value{#1}}{1}}
            or
            test {\ifandothers{#1}}
          }
            {\bibstring{\thefield{#1type}s}}
            {\bibstring{\thefield{#1type}}}}
         {\thefield{#1type}}}}}

\newbibmacro*{authorx}{%
  \ifboolexpr{    test {\ifnameundef{authora}}
              and test {\ifnameundef{authorb}}
              and test {\ifnameundef{authorc}}  }
    {}
    {\bibstring{with}%
     \setunit{\addspace}%
     \printnames{authora}%
     \setunit{\printdelim{authortypedelim}}%
     \usebibmacro{authorxstrg}{authora}%
     \clearname{authora}%
     \printnames{authorb}%
     \setunit{\printdelim{authortypedelim}}%
     \usebibmacro{authorxstrg}{authorb}%
     \clearname{authorb}%
     \printnames{authorc}%
     \setunit{\printdelim{authortypedelim}}%
     \usebibmacro{authorxstrg}{authorc}%
     \clearname{authorc}
     \setunit{\printdelim{nameyeardelim}}}}

\renewbibmacro*{author}{%
  \ifboolexpr{
    test \ifuseauthor
    and
    not test {\ifnameundef{author}}
  }
    {\usebibmacro{bbx:dashcheck}
       {\bibnamedash}
       {\usebibmacro{bbx:savehash}%
        \printnames{author}%
        \iffieldundef{authortype}
          {\setunit{\printdelim{nameyeardelim}}}
          {\setunit{\printdelim{authortypedelim}}}}%
     \iffieldundef{authortype}
       {}
       {\usebibmacro{authorstrg}%
        \setunit{\printdelim{nameyeardelim}}}%
     \usebibmacro{authorx}}%
    {\global\undef\bbx@lasthash
     \usebibmacro{labeltitle}%
     \setunit*{\printdelim{nonameyeardelim}}}%
  \usebibmacro{date+extradate}}

\newbibmacro*{byauthorx}{%
  \ifnameundef{authora}
    {}
    {\usebibmacro{bytypestrg}{authora}{author}%
     \setunit{\addspace}%
     \printnames[byauthora]{authora}%
     \newunit}%
  \ifnameundef{authorb}
    {}
    {\usebibmacro{bytypestrg}{authorb}{author}%
     \setunit{\addspace}%
     \printnames[byauthorb]{authorb}%
     \newunit}%
  \ifnameundef{authorc}
    {}
    {\usebibmacro{bytypestrg}{authorc}{author}%
     \setunit{\addspace}%
     \printnames[byauthorc]{authorc}%
     \newunit}}

\renewbibmacro*{byauthor}{%
  \ifboolexpr{
    test \ifuseauthor
    or
    test {\ifnameundef{author}}
  }
    {}
    {\usebibmacro{bytypestrg}{author}{author}%
     \setunit{\addspace}%
     \printnames[byauthor]{author}}%
  \usebibmacro{byauthorx}}

\NewBibliographyString{with}
\DefineBibliographyStrings{german}{
  with = {mit},
}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{elk,
  author      = {Anne Elk},
  title       = {A Theory on Brontosauruses},
  year        = {1972},
  authora     = {Humphrey Appleby and James Hacker},
  authoratype = {collaborator},
}
\end{filecontents}

\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
\cite{sigfridsson,elk}
\printbibliography
\end{document}
Permanenter link

beantwortet 27 Feb '19, 07:37

moewe's gravatar image

moewe
3.7k36
Akzeptiert-Rate: 42%

bearbeitet 28 Feb '19, 07:08

2

Wenn die Ausgabe von authorx dieselbe wie die von editorx hat man wirklich nichts gewonnen. Das Wort author ist nicht mal kürzer als editor. Trotzdem +1 für die schöne Antwort.

(27 Feb '19, 08:22) Henri
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×222

gestellte Frage: 23 Feb '19, 01:20

Frage wurde gesehen: 5,690 Mal

zuletzt geändert: 28 Feb '19, 07:08