Mehrere Zeichenfolgen in einem Biblatex-Feld – mehrere Referenzen

Mehrere Zeichenfolgen in einem Biblatex-Feld – mehrere Referenzen

eprintSo wie ich es verstehe, akzeptieren Biblatex-Felder nur relatedeinen einzigen String/Schlüssel, obwohl ich möchte, dass sie auf zwei oder mehr Elemente/Adressen verweisen.

Hier ein Beispiel, das vielleicht verdeutlicht, was ich meine (das Beispiel erfordert drei Durchläufe: latex --> biber --> latex):

\begin{filecontents}{MyBib.bib}
@Article{Barney:Notes,
  author =   {Rachel Barney},
  title =    {Notes on Plato on the \mkbibemph{Kalon} and the Good},
  journaltitle = {Classical Philology},
  year =     2010,
  commentator =  {Paula Gottlieb},
  eprint =   {10.1086/657026, 10.1086/659326}, %the first number is
                                     % the article, the second one the
                                     % comment, which I want to appear in one entry
  eprinttype =   {jstor},
  volume =   105,
  number =   4,
  pages =    {363-77, 378-80} % the same as with eprint
  }

@Article{Derrida:Pharmacie1-1,
  author =   {Jacques Derrida},
  title =    {La pharmacie de Platon},
  journaltitle = {Tel Quel},
  year =     1968,
  volume =   32,
  pages =    {3-48}
}

@Article{Derrida:Pharmacie1-2,
  author =   {Jacques Derrida},
  title =    {La pharmacie de Platon},
  journaltitle = {Tel Quel},
  year =     1968,
  volume =   33,
  pages =    {18-59}
}

@InBook{Derrida:Pharmacie2,
  title =    {La pharmacie de Platon},
  year =     1993,
  bookauthor =   {Jacques Derrida},
  author =   {Jacques Derrida},
  gender =   {sm},
  booktitle =    {La Diss{\'e}mination},
  bookauthor =   {Jacques Derrida},
  publisher =    {{\'E}dition Points},
  location =     {Paris},
  pages =    {77-213}, % perhaps: {77-148, 149-213}
  related =  {Derrida:Pharmacie1-1}, % both articles are reprinted in one book,
                   % the unity of the deconstructed separation, which might duly be called 
                          % the voice of the separated unification as voiced deconstruction
                          % of no-pposites
  related =      {Derrida:Pharmacie1-2},
  relatedstring ={Nachdruck von}
}
\end{filecontents}
\documentclass{scrartcl}
\usepackage{filecontents}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\input{ix-utf8enc.dfu}
\usepackage[english]{babel}
\usepackage{xpatch}
\usepackage[pdftex]{hyperref}
\usepackage{csquotes}
\usepackage[style=philosophy-modern, sorting=nyvt,
            backend=biber, citetracker=constrict,
            opcittracker=constrict, 
            idemtracker=constrict, relatedformat=parens, 
            autolang=hyphen, clearlang=true]{biblatex}
\addbibresource{MyBib.bib}
\begin{document}

\nocite{*}
\printbibliography
\end{document}

Wenn ich im Derrida-Fall die beiden Schlüssel durch ein Komma trenne, erhalte ich die Referenz zwei Mal, getrennt durch einen Zeilenumbruch.

Antwort1

Um die beiden crossrefs richtig zu machen, setzen Sie sie einfach in das gleiche crossrefFeld. Um meinen Kommentar oben zu zitieren

Sie müssen die beiden zusammengehörenden Einträge in ein relatedFeld setzen (natürlich durch Komma getrennt), sonst nimmt Biber nur das letzte Vorkommen des Feldes und ignoriert alle vorherigen (ich hätte eine Warnung von Biber erwartet, aber es kam keine. Sie können dieses Verhalten sehr deutlich sehen, wenn Sie authoreinem Eintrag ein zweites (anderes) Feld hinzufügen.)

@InBook{Derrida:Pharmacie2,
  title         = {La pharmacie de Platon},
  year          = 1993,
  bookauthor    = {Jacques Derrida},
  author        = {Jacques Derrida},
  gender        = {sm},
  booktitle     = {La Diss{\'e}mination},
  bookauthor    = {Jacques Derrida},
  publisher     = {{\'E}dition Points},
  location      = {Paris},
  pages         = {77-213}, % perhaps: {77-148, 149-213}
  related       = {Derrida:Pharmacie1-1,Derrida:Pharmacie1-2},
  relatedtype   = {reprintof},
  %relatedstring = {Nachdruck von}
}

Da Sie geschrieben haben relatedstring ={Nachdruck von}, relatedtype = {reprintof}scheint es hier zu passen.

Mir scheint jedoch, dass das defaultzugehörige Makro biblatex-philosophyein wenig durcheinander geraten ist und reprintofauch verstümmelt wird, sodass wir stattdessen sagen müssen, biblatexwas damit zu tun ist:

\newbibmacro*{related:reprintof}[1]{%
  \entrydata*{#1}{%
    \usedriver
      {\ifnameundef{savedauthor}
         {\ifnameundef{savededitor}
            {}
            {\ifnamesequal{editor}{savededitor}
               {\clearname{editor}}
               {}}}
         {\ifnamesequal{author}{savedauthor}
            {\clearname{author}}
            {}}%
       \renewbibmacro*{related:init}{}%
       \DeclareNameAlias{sortname}{default}%
       \ifbibmacroundef{date+extrayear}
         {}
         {\renewbibmacro*{date+extrayear}{}%
          \renewbibmacro*{date}{\printdate}}%
       \renewbibmacro*{pageref}{}}
      {\thefield{entrytype}}}}

Wenn wir den Standard weiter definieren, related:defaultum

\renewbibmacro*{related:default}[1]{%
  \entrydata*{#1}{%
    \usedriver
      {\renewcommand*{\labelnamepunct}{\addcolon\space}%
       \renewbibmacro*{author/translator+others}{\printnames{author}}%
       \iffieldsequal{savedjournaltitle}{journaltitle}%
         {\renewbibmacro*{journal}{\bibstring{ibidem}}%
          \ifboolexpr{test {\iffieldsequal{savedvolume}{volume}} and test {\iffieldsequal{savednumber}{number}}}
            {\renewbibmacro*{volume+number+eid}{}}
            {}%
         }
         {}
       \ifnameundef{savedauthor}
         {\ifnameundef{savededitor}
            {}
            {\ifnamesequal{editor}{savededitor}
               {\clearname{editor}}
               {}}}
         {\ifnamesequal{author}{savedauthor}
            {\clearname{author}}
            {}}%
       \renewbibmacro*{related:init}{}%
       \DeclareNameAlias{sortname}{default}%
       \ifbibmacroundef{date+extrayear}
         {}
         {\renewbibmacro*{date+extrayear}{}%
          \renewbibmacro*{date}{\printdate}}%
       \renewbibmacro*{pageref}{}}
      {\thefield{entrytype}}}}

Aktualisieren related:defaultdruckt jetzt einen ibidemHinweis, wenn das Journal des zugehörigen Eintrags mit dem Journal des übergeordneten Eintrags übereinstimmt.

Und behandeln Sie die Barney:Noteswie folgt, beachten Sie, dass Gottlieb:responseist ein dataonly, und das relatedFeld der Barney:NotesBezugnahme aufGottlieb:response

@Article{Barney:Notes,
  author =   {Rachel Barney},
  title =    {Notes on Plato on the \mkbibemph{Kalon} and the Good},
  journaltitle = {Classical Philology},
  year =     2010,
  doi =   {10.1086/657026},
  volume =   105,
  number =   4,
  pages =    {363-377},
  related={Gottlieb:response},
  relatedstring = {Commentary:},
}

@Article{Gottlieb:response,
  author =   {Paula Gottlieb},
  title =    {Response to Barney},
  journaltitle = {Classical Philology},
  year =     2010,
  doi =   {10.1086/659326},
  volume =   105,
  number =   4,
  pages =    {378-380},
  options = {dataonly},
}

Ich denke, wir können ein durchaus wünschenswertes Ergebnis erzielen.

MWE

\documentclass{scrartcl}
\usepackage{filecontents}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{xpatch}
\usepackage[pdftex]{hyperref}
\usepackage{csquotes}
\usepackage{filecontents}
\usepackage[style=philosophy-modern, sorting=nyvt,
            backend=biber, citetracker=constrict,
            opcittracker=constrict,
            idemtracker=constrict, relatedformat=parens,
            autolang=hyphen, clearlang=true]{biblatex}

\begin{filecontents*}{\jobname.bib}
@Article{Barney:Notes,
  author =   {Rachel Barney},
  title =    {Notes on Plato on the \mkbibemph{Kalon} and the Good},
  journaltitle = {Classical Philology},
  year =     2010,
  doi =   {10.1086/657026},
  volume =   105,
  number =   4,
  pages =    {363-377},
  related={Gottlieb:response},
  relatedstring = {Commentary:},
}

@Article{Gottlieb:response,
  author =   {Paula Gottlieb},
  title =    {Response to Barney},
  journaltitle = {Classical Philology},
  year =     2010,
  doi =   {10.1086/659326},
  volume =   105,
  number =   4,
  pages =    {378-380},
  options = {dataonly},
}


@Article{Derrida:Pharmacie1-1,
  author =   {Jacques Derrida},
  title =    {La pharmacie de Platon},
  journaltitle = {Tel Quel},
  year =     1968,
  volume =   32,
  pages =    {3-48}
}

@Article{Derrida:Pharmacie1-2,
  author =   {Jacques Derrida},
  title =    {La pharmacie de Platon},
  journaltitle = {Tel Quel},
  year =     1968,
  volume =   33,
  pages =    {18-59}
}

@InBook{Derrida:Pharmacie2,
  title =    {La pharmacie de Platon},
  year =     1993,
  bookauthor =   {Jacques Derrida},
  author =   {Jacques Derrida},
  gender =   {sm},
  booktitle =    {La Diss{\'e}mination},
  bookauthor =   {Jacques Derrida},
  publisher =    {{\'E}dition Points},
  location =     {Paris},
  pages =    {77-213}, % perhaps: {77-148, 149-213}
  related =  {Derrida:Pharmacie1-1,Derrida:Pharmacie1-2},
  relatedtype = {reprintof},
  %relatedstring ={Nachdruck von}
}
\end{filecontents*}

\newbibmacro*{related:reprintof}[1]{%
  \entrydata*{#1}{%
    \usedriver
      {\ifnameundef{savedauthor}
         {\ifnameundef{savededitor}
            {}
            {\ifnamesequal{editor}{savededitor}
               {\clearname{editor}}
               {}}}
         {\ifnamesequal{author}{savedauthor}
            {\clearname{author}}
            {}}%
       \renewbibmacro*{related:init}{}%
       \DeclareNameAlias{sortname}{default}%
       \ifbibmacroundef{date+extrayear}
         {}
         {\renewbibmacro*{date+extrayear}{}%
          \renewbibmacro*{date}{\printdate}}%
       \renewbibmacro*{pageref}{}}
      {\thefield{entrytype}}}}

\renewcommand*{\relateddelim}{\adddot\space}

%\renewbibmacro*{related:clearauthors}{}

\renewbibmacro*{related:default}[1]{%
  \entrydata*{#1}{%
    \usedriver
      {\renewcommand*{\labelnamepunct}{\addcolon\space}%
       \renewbibmacro*{author/translator+others}{\printnames{author}}%
       \iffieldsequal{savedjournaltitle}{journaltitle}%
         {\renewbibmacro*{journal}{\bibstring{ibidem}}%
          \ifboolexpr{test {\iffieldsequal{savedvolume}{volume}} and test {\iffieldsequal{savednumber}{number}}}
            {\renewbibmacro*{volume+number+eid}{}}
            {}%
         }
         {}
       \ifnameundef{savedauthor}
         {\ifnameundef{savededitor}
            {}
            {\ifnamesequal{editor}{savededitor}
               {\clearname{editor}}
               {}}}
         {\ifnamesequal{author}{savedauthor}
            {\clearname{author}}
            {}}%
       \renewbibmacro*{related:init}{}%
       \DeclareNameAlias{sortname}{default}%
       \ifbibmacroundef{date+extrayear}
         {}
         {\renewbibmacro*{date+extrayear}{}%
          \renewbibmacro*{date}{\printdate}}%
       \renewbibmacro*{pageref}{}}
      {\thefield{entrytype}}}}

\addbibresource{\jobname.bib}
\begin{document}

\nocite{*}
\printbibliography
\end{document}

Bildbeschreibung hier eingeben

Die Lösungen hier sind möglicherweise etwas fragil und können in anderen Anwendungsfällen nicht funktionieren. Aber die Standardbehandlung verwandter Einträge philosophy-modernscheint einige Fehler und schlaue Neudefinitionen zu enthalten, denen ich entgegenwirken musste.

verwandte Informationen