Wie formatiere ich das Postfix „eds“ mit Biblatex-Philosophy neu?

Wie formatiere ich das Postfix „eds“ mit Biblatex-Philosophy neu?

Ich versuche, einen Bibliographiestil mit zu finden biblatex-philosophy. Das Format, das ich für eine Arbeit mit mehreren Herausgebern benötige, ist wie folgt: Ziel

Standardmäßig werden folgende biblatex-philosophyAusgaben philosophy-modernausgegeben:

Versuchen

Der Code lautet wie folgt:

\documentclass[11pt, parskip=false]{scrartcl}

% Bibliography preamble
\usepackage[giveninits=true,style=philosophy-modern, yearleft=true]{biblatex}
\addbibresource{testbib.bib}

\DeclareFieldFormat[online]{title}{#1}

\renewcommand{\postsep}{% Add comma to end of author section
\addcomma
\null\par\nobreak\vskip\postnamesep%
\hskip-\bibhang\ignorespaces}

\begin{document}
Sentence containing citation \parencite{example2018}.

\printbibliography
\end{document}

mit dieser .bibDatei:

@book{example2018,
Edition = {4},
Publisher = {Penguin},
Title = {All Aboard the Good Ship Merriweather},
date = {1964},
Editor = {Stewart, Bryce and Karl Popper and Samantha Elizabeth O'Grady},
Location = {London}}

Wie kann das (Hrsg.) von Klammern und Punkt befreit und bei Bedarf an das Ende des Herausgeberabschnitts verschoben werden?

Der Blick ins Innere biblatexhat biblatex-philosophymich nicht weitergebracht, da es besonders knifflig und außerhalb meiner Einflussmöglichkeiten zu sein scheint.

Antwort1

Das Folgende funktioniert gut, solange nicht die gleichen Autoren gleichzeitig Autoren für ein Werk und Herausgeber für ein anderes sind. Wenn Sie den Punkt für „eds“ entfernen möchten, müssen Sie die Bibstrings in neu definieren \DefineBibliographyStrings{english}. Sehen Sie sich english.lbxalle anderen Strings an, die Sie möglicherweise neu definieren müssen, wenn Sie sie verwenden. Es gibt , compilerund viele andere Rollen.redactorreviser

\documentclass[11pt, parskip=false]{scrartcl}

% Bibliography preamble
\usepackage[giveninits=true,style=philosophy-modern, yearleft=true, uniquename=init]{biblatex}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{example2018,
Edition = {4},
Publisher = {Penguin},
Title = {All Aboard the Good Ship Merriweather},
date = {1964},
Editor = {Stewart, Bryce and Karl Popper and Samantha Elizabeth O'Grady},
Location = {London}}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\DeclareFieldFormat[online]{title}{#1}

\renewcommand{\postsep}{% Add comma to end of author section
\addcomma
\null\par\nobreak\vskip\postnamesep%
\hskip-\bibhang\ignorespaces}

\DefineBibliographyStrings{english}{%
  editor           = {ed},
  editors          = {eds},
}

\DeclareFieldFormat{editortype}{#1}
\DeclareDelimFormat{editortypedelim}{\addcomma\space}
\DeclareFieldFormat{translatortype}{#1}
\DeclareDelimFormat{translatortypedelim}{\addcomma\space}

\makeatletter
\renewbibmacro*{bbx:editor}[1]{%
  \ifboolexpr{%
    test \ifuseeditor
    and
    not test {\ifnameundef{editor}}
  }%
  {\usebibmacro{bbx:dashcheck}%
     {}%
     {\printnames{editor}%
      \usebibmacro{bbx:savehash}%
      \setunit{\printdelim{editortypedelim}}%
      \usebibmacro{#1}%
      \clearname{editor}%
      \postsep}%
   \usebibmacro{date+extradate}}%
  {\global\undef\bbx@lasthash
   \usebibmacro{date+extradate}}}%

\renewbibmacro*{bbx:translator}[1]{%
  \ifboolexpr{%
    test \ifusetranslator
    and
    not test {\ifnameundef{translator}}
  }%
  {\usebibmacro{bbx:dashcheck}%
     {}%
     {\printnames{translator}%
      \usebibmacro{bbx:savehash}%
      \setunit{\printdelim{translatortypedelim}}%
      \usebibmacro{#1}%
      \clearname{translator}%
      \postsep}%
   \usebibmacro{date+extradate}}%
  {\global\undef\bbx@lasthash
   \usebibmacro{date+extradate}}}
\makeatother

\begin{document}
Sentence containing citation \parencite{example2018,sigfridsson,knuth:ct:a,knuth:ct:b}.

\printbibliography
\end{document}

Bildbeschreibung hier eingeben

Mitviel mehrMit etwas Aufwand können wir das Obige für verschiedene Rollen durch dieselbe Autorenliste sicher machen. Dabei wird jedoch immer noch keine Sortierung vorgenommen.

\documentclass[australian, 11pt, parskip=false]{scrartcl}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[giveninits=true,style=philosophy-modern, yearleft=true, uniquename=init]{biblatex}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{example2018,
Edition = {4},
Publisher = {Penguin},
Title = {All Aboard the Good Ship Merriweather},
date = {1964},
Editor = {Stewart, Bryce and Karl Popper and Samantha Elizabeth O'Grady},
Location = {London}}
@book{example2019,
Publisher = {Penguin},
Title = {Another Ship},
date = {2017},
author = {Stewart, Bryce and Karl Popper and Samantha Elizabeth O'Grady},
Location = {London}}
@book{example2020,
Publisher = {Penguin},
Title = {Bnunb},
date = {1960},
author = {Stewart, Bryce and Karl Popper and Samantha Elizabeth O'Grady},
Location = {London}}
@book{example2021,
Publisher = {Penguin},
Title = {Znub},
date = {1961},
author = {Stewart, Bryce and Karl Popper and Samantha Elizabeth O'Grady},
Location = {London}}

@book{example2022,
Publisher = {Penguin},
Title = {Znub},
date = {2018},
author = {Stewart, Bryce and Karl Popper and Samantha Elizabeth O'Grady},
Location = {London}}


@book{example2023,
Publisher = {Penguin},
Title = {Znub},
date = {2023},
tramslator = {Stewart, Bryce and Karl Popper and Samantha Elizabeth O'Grady},
editor = {Stewart, Bryce and Karl Popper and Samantha Elizabeth O'Grady},
Location = {London}}


@book{example2024,
Publisher = {Penguin},
Title = {Znub},
date = {2024},
translator = {Stewart, Bryce and Karl Popper and Samantha Elizabeth O'Grady},
editor = {Stewart, Bryce and Karl Popper and Samantha Elizabeth O'Grady},
Location = {London}}

@book{example2025,
Publisher = {Penguin},
Title = {Znub},
date = {2025},
translator = {Stewart, Bryce and Karl Popper and Samantha Elizabeth O'Grady},
editor = {Stewart, Bryce and Karl Popper and Samantha Elizabeth O'Grady},
Location = {London}}

@online{blogWithoutAuthor,
date = {2018},
title = {Historians in the News},
maintitle = {History Matters},
organization = {The University of Sydney},
url = {http://blogs.usyd.edu.au/historymatters/2018/02/historians_in_the_news_2018.html},
urldate = {2018-02-23}
}

@online{blogWithAuthor,
date = {2018},
title = {Historians in the News},
maintitle = {History Matters},
organization = {The University of Sydney},
url = {http://blogs.usyd.edu.au/historymatters/2018/02/historians_in_the_news_2018.html},
urldate = {2018-02-23},
author = {McDonnell, Mike}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\DeclareFieldFormat[online]{title}{#1}

\renewcommand{\postsep}{% Add comma to end of author section
\addcomma
\null\par\nobreak\vskip\postnamesep%
\hskip-\bibhang\ignorespaces}

\DefineBibliographyStrings{english}{%
  editor           = {ed},
  editors          = {eds},
}

\DeclareFieldFormat{editortype}{#1}
\DeclareDelimFormat{editortypedelim}{\addcomma\space}
\DeclareFieldFormat{translatortype}{#1}
\DeclareDelimFormat{translatortypedelim}{\addcomma\space}


\makeatletter
\newbibmacro*{editorstrg:gettempa}{%
  \iffieldundef{editortype}
    {\ifboolexpr{
       test {\ifnumgreater{\value{editor}}{1}}
       or
       test {\ifandothers{editor}}
     }
       {\def\abx@tempa{editors}}
       {\def\abx@tempa{editor}}}
    {\ifbibxstring{\thefield{editortype}}
       {\ifboolexpr{
          test {\ifnumgreater{\value{editor}}{1}}
          or
          test {\ifandothers{editor}}
        }
          {\edef\abx@tempa{\thefield{editortype}s}}
          {\edef\abx@tempa{\thefield{editortype}}}}
       {\edef\abx@tempa{\thefield{editortype}}}}}

\renewbibmacro*{editorstrg}{%
  \usebibmacro{editorstrg:gettempa}%
  \printtext[editortype]{%
    \ifbibxstring{\abx@tempa}
      {\bibstring{\abx@tempa}}
      {\abx@tempa}}}

\newbibmacro*{editor+othersstrg:gettempa}{%
  \iffieldundef{editortype}
    {\ifboolexpr{
       test {\ifnumgreater{\value{editor}}{1}}
       or
       test {\ifandothers{editor}}
     }
       {\def\abx@tempa{editors}}
       {\def\abx@tempa{editor}}}
    {\ifboolexpr{
       test {\ifnumgreater{\value{editor}}{1}}
       or
       test {\ifandothers{editor}}
     }
       {\edef\abx@tempa{\thefield{editortype}s}}
       {\edef\abx@tempa{\thefield{editortype}}}}%
  \let\abx@tempb=\empty
  \ifnamesequal{editor}{translator}
    {\appto\abx@tempa{tr}%
     \appto\abx@tempb{\clearname{translator}}}
    {}%
  \ifnamesequal{editor}{commentator}
    {\appto\abx@tempa{co}%
     \appto\abx@tempb{\clearname{commentator}}}
    {\ifnamesequal{editor}{annotator}
       {\appto\abx@tempa{an}%
        \appto\abx@tempb{\clearname{annotator}}}
       {}}%
  \ifnamesequal{editor}{introduction}
    {\appto\abx@tempa{in}%
     \appto\abx@tempb{\clearname{introduction}}}
    {\ifnamesequal{editor}{foreword}
       {\appto\abx@tempa{fo}%
        \appto\abx@tempb{\clearname{foreword}}}
       {\ifnamesequal{editor}{afterword}
          {\appto\abx@tempa{af}%
           \appto\abx@tempb{\clearname{afterword}}}
          {}}}}

\renewbibmacro*{editor+othersstrg}{%
  \usebibmacro{editor+othersstrg:gettempa}%
  \ifbibxstring{\abx@tempa}
    {\printtext[editortype]{\bibstring{\abx@tempa}}\abx@tempb}
    {\usebibmacro{editorstrg}}}

\newbibmacro*{translatorstrg:gettempa}{%
  \ifboolexpr{
    test {\ifnumgreater{\value{translator}}{1}}
    or
    test {\ifandothers{translator}}
  }
  {\def\abx@tempa{translators}}
  {\def\abx@tempa{translator}}}

\renewbibmacro*{translatorstrg}{%
  \usebibmacro{translatorstrg:gettempa}%
  \printtext[translatortype]{%
    \ifbibxstring{\abx@tempa}
      {\bibstring{\abx@tempa}}
      {\abx@tempa}}}

\newbibmacro*{translator+othersstrg:gettempa}{%
  \ifboolexpr{
    test {\ifnumgreater{\value{translator}}{1}}
    or
    test {\ifandothers{translator}}
  }
    {\def\abx@tempa{translators}}
    {\def\abx@tempa{translator}}%
  \ifnamesequal{translator}{commentator}
    {\appto\abx@tempa{co}%
     \clearname{commentator}}
    {\ifnamesequal{translator}{annotator}
       {\appto\abx@tempa{an}%
        \clearname{annotator}}
       {}}%
  \ifnamesequal{translator}{introduction}
    {\appto\abx@tempa{in}%
     \clearname{introduction}}
    {\ifnamesequal{translator}{foreword}
       {\appto\abx@tempa{fo}%
        \clearname{foreword}}
       {\ifnamesequal{translator}{afterword}
          {\appto\abx@tempa{af}%
           \clearname{afterword}}
          {}}}}

\renewbibmacro*{translator+othersstrg}{%
  \usebibmacro{translator+othersstrg:gettempa}%
  \printtext[translatortype]{\bibstring{\abx@tempa}}}

\renewbibmacro*{bbx:dashcheck}[2]{%
  \ifboolexpr{
    test {\iffieldequals{fullhash}{\bbx@lasthash}}
    and
    not test \iffirstonpage
    and
    (
       not bool {bbx@inset}
       or
       test {\iffieldequalstr{entrysetcount}{1}}
    )
    and test {\ifcsstrequal{bbx@thisnametype}{bbx@lastnametype}}
  }
    {#1}
    {#2}}

\renewbibmacro*{author}{%
  \global\def\bbx@thisnametype{author}%
  \ifboolexpr{
    test \ifuseauthor
    and
    not test {\ifnameundef{author}}
  }
  {\usebibmacro{bbx:dashcheck}
     {}%
     {\usebibmacro{bbx:savehash}%
      \printnames{author}%
      \iffieldundef{nameaddon}
        {}%
        {\setunit{\addspace}%
         \printfield{nameaddon}}%
      \iffieldundef{authortype}
        {}%
        {\usebibmacro{authorstrg}%
         \printtext{\addcomma\space}}
      \global\def\bbx@lastnametype{author}%
      \postsep}%
   \usebibmacro{date+extradate}}%
    {\global\undef\bbx@lasthash
     \global\undef\bbx@lastnametype
     \usebibmacro{date+extradate}}}

\renewbibmacro*{bbx:editor}[1]{%
  \begingroup
  \usebibmacro{#1:gettempa}%
  \global\edef\bbx@thisnametype{\abx@tempa}%
  \endgroup
  \ifboolexpr{%
    test \ifuseeditor
    and
    not test {\ifnameundef{editor}}
  }%
  {\usebibmacro{bbx:dashcheck}%
     {}%
     {\printnames{editor}%
      \usebibmacro{bbx:savehash}%
      \setunit{\printdelim{editortypedelim}}%
      \usebibmacro{#1}%
      \global\edef\bbx@lastnametype{\abx@tempa}%
      \global\edef\bbx@cleanup{\abx@tempb}%
      \postsep}%
   \clearname{editor}%
   \bbx@cleanup
   \usebibmacro{date+extradate}}%
  {\global\undef\bbx@lasthash
   \global\undef\bbx@lastnametype
   \usebibmacro{date+extradate}}}%

\renewbibmacro*{bbx:translator}[1]{%
  \begingroup
  \usebibmacro{#1:gettempa}%
  \global\edef\bbx@thisnametype{\abx@tempa}%
  \endgroup
  \ifboolexpr{%
    test \ifusetranslator
    and
    not test {\ifnameundef{translator}}
  }%
  {\usebibmacro{bbx:dashcheck}%
     {}%
     {\printnames{translator}%
      \usebibmacro{bbx:savehash}%
      \setunit{\printdelim{translatortypedelim}}%
      \usebibmacro{#1}%
      \global\edef\bbx@lastnametype{\abx@tempa}%
      \global\edef\bbx@cleanup{\abx@tempb}%
      \postsep}%
   \clearname{translator}%
   \bbx@cleanup
   \usebibmacro{date+extradate}}%
  {\global\undef\bbx@lasthash
   \global\undef\bbx@lastnametype
   \usebibmacro{date+extradate}}}
\makeatother


\begin{document}
Sentence containing citation \parencite{example2018, sigfridsson, knuth:ct:a, knuth:ct:b, example2019, example2020, example2021, example2022, example2023, example2024, example2025}.

\parencite{blogWithoutAuthor, blogWithAuthor, westfahl:frontier, westfahl:space}

\printbibliography
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen