Ejemplo de trabajo

Ejemplo de trabajo

Estoy usando biblatex-sbl. En las notas, la primera cita de un "artículo" y de una "incolección" debería ser ésta:

Krause,Jens-Uwe: “Die Spätantike (284-565 n. Chr.)”, en: Gehrke, Hans-Joachim/ Schneider,Helmuth (eds.): Geschichte der Antike. Ein Studienbuch, Stuttgart 52019, 429–499.

En las siguientes notas, debería ser:

Krause,Jens-Uwe, “Die Spätantike (284-565 n. Chr.)”, 429–499.

En resumen: quiero que después del nombre del autor de una referencia de una "incolección" (y también de un "artículo") se coloquen dos puntos; en todas las demás notas debe ser una coma.

Aquí está mi MWE:

\RequirePackage[patch]{kvoptions} 
\documentclass[openany]{book} %headsepline

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@mvbook{Gehrke.19,
  author = {Gehrke, Hans-Joachim},
  title = {Geschichte der Antike. Ein Studienbuch},
  location = {Stuttgart},
  edition = {2},
  date = {2019}
}
@incollection{Krause.19,
  author={Krause, Jens-Uwe},
  gender = {sm},
  title={Die Spätantike (284-565 n. Chr.)},
  editor = {Gehrke, Hans-Joachim and Schneider, Helmuth},
  date = {2019},
  booktitle = {Geschichte der Antike. Ein Studienbuch},
  location = {Stuttgart},
  keywords = {sekundaer},
  pages={429--499},
  edition={5},
}
@article{Krug.19,
  author = {Krug, Alex},
  date = {2019},
  title = {The Time},
  journaltitle = {Revue Today},
  shortjournal = {RT},
  volume = {18,1},
  pages = {9--38},
}
@review{Wellhausen.1906,
  author={Wellhausen, Julius},
  revdauthor = {Ban, Paul},
  revdtitle={Selection, Paris/ Leipzig 1905},
  journaltitle = {Göttingische gelehrte Anzeigen},
  shortjournal = {GGA},
  volume={16,2},
  keywords = {sekundaer},
  date={1910},
  pages={16--18},
}
@thesis{Witz.2001,
  author = {Witz, John},
  title = {Narratives},
  type = {phdthesis},
  institution = {Princeton University},
  date = {2001},
  keywords = {sekundaer},
}
\end{filecontents}

\usepackage{babel} %Kommentar 


\usepackage[autostyle=true,german=quotes]{csquotes}
%\usepackage[german=guillement]{csquotes} 
\usepackage[style=sbl,backend=biber,sblfootnotes=false,ibidpage=true,sorting=nyvt,url=false,isbn=false,doi=false,clearlang=false,uniquename=false]{biblatex} 
\addbibresource{\jobname.bib}

\usepackage{xpatch}

\newbibmacro*{bookeditor}{%
  \printnames{bookeditor}}

\DeclareBibliographyDriver{cite:incollection}{%
  \ifentrytype{seminarpaper}
    {}
    {\toggletrue{inentrytype}}%
  \usebibmacro{citeindex}%
  \usebibmacro{begentry}%
  \iftoggle{blx@usefullcite}
    {}
    {\let\ifciteseen\@firstoftwo}%
  \usebibmacro{author/editor+others/translator+others}%
  \setunit{\printdelim{nametitledelim}}%
  \usebibmacro{title}%
  \ifciteseen
    {}
    {\usebibmacro{byauthor/byeditor+others/bytranslator+others}%
     \newunit
     \usebibmacro{in:}%
     \iffieldundef{booktitle}
       {}
       {\usebibmacro{bookeditor}%
        \usebibmacro{booktitle}%
        \newunit
        \usebibmacro{event+venue+date}%
        \newunit
        \usebibmacro{bybookauthor/bybookeditor+others/bybooktranslator+others}%
        \newunit}%
     \usebibmacro{volume+partof}%
     \iffieldundef{maintitle}
       {}
       {\usebibmacro{maineditor}%
        \usebibmacro{maintitle}%
        \newunit
        \usebibmacro{event+venue+date}%
        \newunit
        \usebibmacro{bymainauthor/bymaineditor+others/bymaintranslator+others}}%
     \newunit
     \printfield{volumes}%
     \newunit
     \usebibmacro{shortseries+number}%
     \newunit
     \printfield{note}%
     \usebibmacro{parens+publisher+location+date}%
     \newunit
     \usebibmacro{ebook}%
     \newunit
     \printfield{addendum}%
     \newunit
     \usebibmacro{volume+part+pages}%
     \newunit
     \usebibmacro{isbn}%
     \newunit
     \usebibmacro{doi+eprint+url}}%
  \usebibmacro{finentry}}

\DeclareBibliographyDriver{incollection}{%
  \toggletrue{inentrytype}%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/editor+others/translator+others}%
  \setunit{\printdelim{nametitledelim}}%
  \usebibmacro{title}%
  \newunit
  \ifentrytype{classictext}
    {\usebibmacro{byauthor}%
     \newunit
     \usebibmacro{bytranslator+others}}
    {\usebibmacro{byauthor/byeditor+others/bytranslator+others}}%
  \setunit{\addcomma\space}%
  \usebibmacro{in:}%
  \iffieldundef{booktitle}
    {}
    {\usebibmacro{bookeditor}%
     \usebibmacro{booktitle}%
     \newunit
     \usebibmacro{event+venue+date}%
     \newunit
     \usebibmacro{bybookauthor/bybookeditor+others/bybooktranslator+others}%
     \newunit}%
  \usebibmacro{volume+partof}%
  \iffieldundef{maintitle}
    {}
    {\usebibmacro{maineditor}%
     \usebibmacro{maintitle}%
     \newunit
     \usebibmacro{event+venue+date}%
     \newunit
     \usebibmacro{bymainauthor/bymaineditor+others/bymaintranslator+others}}%
  \newunit
  \printfield{edition}%
  \newunit
  \printfield{volumes}%
  \newunit
  \usebibmacro{shortseries+number}%
  \newunit
  \printfield{note}%
  \newunit
  \usebibmacro{publisher+location+date}%
  \newunit
  \usebibmacro{ebook}%
  \newunit
  \printfield{addendum}%
  \setunit{\addcomma\space}%
  \usebibmacro{volume+part+pages}%
  \newunit
  \usebibmacro{isbn}%
  \newunit
  \usebibmacro{doi+eprint+url}%
  \ifboolexpr{
    togl {relatedseen}
    or
    not togl {bbx:related}
  }
    {}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}%
  \usebibmacro{finentry}%
}


\xpatchbibdriver{book}
  {\newunit
   \usebibmacro{title}}
  {\setunit{\printdelim{nametitledelim}}%
   \usebibmacro{title}}
  {}
  {}


\renewcommand*{\subtitlepunct}{\addperiod\space} % Punkt zw Titel und Subtitel in Bibliogr.
\renewcommand*{\sqspace}{} % kein Abstand bei Seitenzahl mit "f." 

\DeclareFieldFormat*{citetitle}{#1}
\DeclareFieldFormat[book]{title}{#1} % Buchtitel nur normal - ohne Formatierung
\DeclareFieldFormat[thesis]{title}{#1} % Buchtitel nur normal - ohne Formatierung
\DeclareFieldFormat[review]{title}{#1} % Buchtitel nur normal - ohne Formatierung
\DeclareFieldFormat*{journaltitle}{#1}
\DeclareFieldFormat*{maintitle}{#1}
\DeclareFieldFormat*{booktitle}{#1}

\DeclareFieldFormat{shorttitle}{#1} 
\DeclareFieldFormat{shortbooktitle}{#1} 
\DeclareFieldFormat{shortmaintitle}{#1} 

\DeclareNameAlias{sortname}{family-given} % vorher last-first in Klammern
\DeclareNameAlias{author}{sortname}
\DeclareNameAlias{editor}{sortname}
\DeclareNameAlias{translator}{sortname}



\DeclareDelimFormat{multinamedelim}{\addslash\space} 
\DeclareDelimAlias{finalnamedelim}{multinamedelim} 

\renewcommand*{\mkbibnamefamily}{\textsc} 
\renewcommand*{\mkbibnameprefix}{\textsc} 
\renewcommand*{\mkbibnamegiven}{\textsc} 
\renewcommand*{\mkbibnamesuffix}{\textsc} 

%%%%%% Verursacher nr. 1 %%%%%%%%%%%%%%%%
%\DeclareFieldFormat{editortype}{\mkbibparens{#1}} 
%\DeclareDelimFormat{editortypedelim}{\addspace} 
%%%%%% Verursacher %%%%%%%%%%%%%%%%

\DeclareDelimFormat{multinamedelim}{\addslash\space} 
\DeclareDelimAlias{finalnamedelim}{multinamedelim} 

\renewcommand*{\mkbibnamefamily}{\textsc} 
\renewcommand*{\mkbibnameprefix}{\textsc} 
\renewcommand*{\mkbibnamegiven}{\textsc} 
\renewcommand*{\mkbibnamesuffix}{\textsc} 


%%\renewbibmacro*{editor+others}{% 
  %%\ifboolexpr{ 
   %% test \ifuseeditor 
   %% and 
   %% not test {\ifnameundef{editor}} 
  %%} 
    %%{\ifciteseen{% 
      %% \usebibmacro{ifidemused} 
       %%  {} 
        %% {\printnames[labelname]{editor}}% 
    %% }{\renewcommand*{\namedashpunct}{\addcomma\space}% 
      %% \usebibmacro{dashcheck} 
        %% {\bibnamedash} 
        %% {\usebibmacro{ifidemused} 
         %%   {} 
           %% {\printnames{editor}% 
             %%\usebibmacro{savehash}}}% 
      %% \setunit{\printdelim{editortypedelim}}% 
       %%\usebibmacro{editor+othersstrg}% 
      %% \usebibmacro{withname}{editor}% 
     %%}% 
     %%\clearname{editor}} 
    %%{}} 


\DefineBibliographyStrings{ngerman}{%
  reprint = {ND:}
}

  % Put reprint information in parentheses and change beginning punctuation to a
% space
\newcommand*{\begrelateddelimreprint}{\addspace}
\DeclareFieldFormat{related:reprint}{\mkbibparens{#1}}

% Set \newunitpunct to comma and remove parentheses around publication info
\renewbibmacro*{related:reprint}[1]{%
  \entrydata*{#1}{%
    \usedriver
      {\renewbibmacro*{related:init}{}%
       \renewcommand*{\newunitpunct}{\addcomma\space}%
       \renewbibmacro*{parens+publisher+location+date}{%
         \newunit
         \usebibmacro{publisher+location+date}}}
      {\ifbibliography
         {\thefield{entrytype}}
         {cite:\thefield{entrytype}}}}}

% use family, given and change \newunitpunct to a point just for related
% entries (I have serious misgivings about this as it seems very
% inconsistent.)
\usepackage{xpatch}
\xpretobibmacro{cite}
  {\iffieldequalstr{relatedtype}{reprint}
     {\DeclareNameAlias{default}{family-given}%
      \renewcommand*{\newunitpunct}{\addperiod\space}}
     {}}
  {}
  {}



\DefineBibliographyStrings{german}{ 
  editors = {Hgg\adddot}, 
} 


\renewbibmacro*{parens+publisher+location+date}{% 
\newunit
  \usebibmacro{publisher+location+date}% 
  \iffieldequalstr{relatedtype}{reprint} 
    {\renewcommand*{\newunitpunct}{\addsemicolon\space}% 
     \newunit 
     \usebibmacro{related:init}% 
     \usebibmacro{related}% 
     \global\toggletrue{relatedseen}} 
    {}} 

\renewbibmacro*{origpublisher+location+date}{% 
  \printlist{origlocation}% 
  \setunit*{\addspace}% 
  \usebibmacro{origdate}% 
  \newunit} 

\newbibmacro*{real+publisher+location+date}{% 
  \printlist{location}% 
  \iffieldundef{howpublished} 
    {} 
    {\setunit*{\addcolon\space}% 
     \printfield{howpublished}}% 
  \setunit*{\addspace}% 
  \usebibmacro{date}% 
  \newunit} 


\renewbibmacro*{publisher+location+date}{% 
  \ifboolexpr{ 
    not test {\iffieldundef{origpublisher}} 
    or 
    not test {\iffieldundef{origlocation}} 
    or 
    not test {\iffieldundef{origyear}} 
  } 
    {\usebibmacro{origpublisher+location+date}% 
     \setunit{\addspace}% 
     \printtext[parens]{% 
       \bibstring{reprint}% 
       \setunit{\addspace}% 
       \usebibmacro{real+publisher+location+date}}} 
    {\usebibmacro{real+publisher+location+date}}} 

\ExecuteBibliographyOptions[inlexicon]{% 
  skipbib=false, 
} 

\DeclareBibliographyDriver{inlexicon}{% 
  \usebibmacro{begentry}% 
  \usebibmacro{author/translator+others}% 
  \newunit 
  \usebibmacro{title}% 
  \newunit 
  \printfield{note}% 
  \newunit 
  \usebibmacro{xrefshortmaintitle+xrefshortbooktitle}% 
  \newunit 
  \usebibmacro{volume+pages}% 
  \newunit 
  \printfield{addendum}% 
  \usebibmacro{finentry}% 
}

\xpatchbibdriver{cite:book}
  {\newunit\printfield{edition}}
  {}{}{}
\xpatchbibdriver{cite:commentary}
  {\newunit\printfield{edition}}
  {}{}{}
\xpatchbibdriver{cite:suppbook}
  {\newunit\printfield{edition}}
  {}{}{}
\xpatchbibdriver{cite:incollection}
  {\newunit\printfield{edition}}
  {}{}{}
\xpatchbibdriver{book}
  {\newunit\printfield{edition}}
  {}{}{}
  \xpatchbibdriver{suppbook}
  {\newunit\printfield{edition}}
  {}{}{}
\xpatchbibdriver{incollection}
  {\newunit\printfield{edition}}
  {}{}{}
\DeclareFieldFormat{edition}{\textsuperscript{#1}}
\renewbibmacro*{date}{%
  \printfield{edition}%
  \printdate
  \setunit{\addcomma\addspace}%
  \printfield{pubstate}}

\begin{document}
  \null\vfill
  Filler text \autocite{Gehrke.19}.
  Filler text \autocite{Gehrke.19}.
  Filler text \autocite{Krause.19}.
  Filler text \autocite{Krause.19}.

  Filler text \autocite{Wellhausen.1906}.
  Filler text \autocite{Wellhausen.1906}.
  Filler text \autocite{Witz.2001}.
  Filler text \autocite{Witz.2001}.
  Filler text \autocite{Krug.19}.
  Filler text \autocite{Krug.19}.
  \printbibliography
\end{document}

Respuesta1

Para hacer esto necesitamos hacer tres cosas. Esto no es tan obvio como hubiera sospechado, lo que me hace preguntarme si hay otros problemas con los delimitadores sensibles al contexto en biblatex-sbl. (por ejemplo, habría pensado que debería especificar que quiero contexto citecommandcon \printdelim, pero no funciona sin esto.

  1. Cambie el delimitador antes del título en su nuevo cite:incollectioncontrolador de \newunita \nametitledelimen contexto citecommand.

    \setunit{\printdelim[citecommand]{nametitledelim}}%
    \usebibmacro{title}%
    
  2. Parchee el controlador cite:articley cite:book(y cualquier otro) para usarlo \nametitledelimen contexto citecommanden lugar de \newunitantes del título.

    \xpatchbibdriver{cite:article}
      {\newunit
       \usebibmacro{title}}
      {\setunit{\printdelim[citecommand]{nametitledelim}}%
       \usebibmacro{title}}
      {}
      {}
    \xpatchbibdriver{cite:book}
      {\newunit
       \usebibmacro{title}}
      {\setunit{\printdelim[citecommand]{nametitledelim}}%
       \usebibmacro{title}}
      {}
      {}
    
  3. Defina \nametitledelimen contexto citecommandpara que imprima dos puntos solo para la primera nota y una coma para las notas posteriores.

    \DeclareDelimFormat[citecommand]{nametitledelim}{%
      \ifciteseen
        {\addcomma\space}
        {\addcolon\space}}
    

Ejemplo de trabajo

Ejemplo de trabajo actualizado que, con suerte, aborda todos los requisitos de las últimas preguntas. Incluye código ordenado y corregido. Cambio a la fuente Linux Libertine O que tiene versalitas.

\documentclass{article}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@mvbook{Gehrke.19,
  author = {Gehrke, Hans-Joachim},
  title = {Geschichte der Antike. Ein Studienbuch},
  location = {Stuttgart},
  edition = {2},
  date = {2019}
}
@incollection{Krause.19,
  author={Krause, Jens-Uwe},
  gender = {sm},
  title={Die Spätantike (284-565 n.~Chr\adddot)},
  editor = {Gehrke, Hans-Joachim and Schneider, Helmuth},
  date = {2019},
  booktitle = {Geschichte der Antike. Ein Studienbuch},
  location = {Stuttgart},
  keywords = {sekundaer},
  pages={429--499},
  edition={5},
}
@article{Krug.19,
  author = {Krug, Alex},
  date = {2019},
  title = {The Time},
  journaltitle = {Revue Today},
  shortjournal = {RT},
  volume = {18,1},
  pages = {9--38},
}
@review{Wellhausen.1906,
  author={Wellhausen, Julius},
  revdauthor = {Ban, Paul},
  revdtitle={Selection, Paris/ Leipzig 1905},
  journaltitle = {Göttingische gelehrte Anzeigen},
  shortjournal = {GGA},
  volume={16,2},
  date={1910},
  pages={16--18},
}
@thesis{Witz.2001,
  author = {Witz, John},
  title = {Narratives},
  type = {phdthesis},
  institution = {Princeton University},
  date = {2001},
}
\end{filecontents}

\usepackage[style=sbl,sblfootnotes=false,ibidpage=true,sorting=nyvt,url=false,isbn=false,doi=false,clearlang=false,uniquename=false]{biblatex} 
\addbibresource{\jobname.bib}

\usepackage{xpatch}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Font and language set up %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\usepackage[ngerman]{babel}
\usepackage[autostyle=true,german=quotes]{csquotes}
\usepackage{fontspec}
\setmainfont{Linux Libertine O}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Bibliography option modifications %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\ExecuteBibliographyOptions[inlexicon]{% 
  skipbib=false, 
} 


%%%%%%%%%%%%%%%%%%%%%%%%
% Driver modifications %
%%%%%%%%%%%%%%%%%%%%%%%%

% New cite:incollection, incollection,and inlexicon drivers

\makeatletter
\DeclareBibliographyDriver{cite:incollection}{%
  \ifentrytype{seminarpaper}
    {}
    {\toggletrue{inentrytype}}%
  \usebibmacro{citeindex}%
  \usebibmacro{begentry}%
  \iftoggle{blx@usefullcite}
    {}
    {\let\ifciteseen\@firstoftwo}%
  \usebibmacro{author/editor+others/translator+others}%
  \setunit{\printdelim[citecommand]{nametitledelim}}%
  \usebibmacro{title}%
  \ifciteseen
    {}
    {\usebibmacro{byauthor/byeditor+others/bytranslator+others}%
     \newunit
     \usebibmacro{in:}%
     \iffieldundef{booktitle}
       {}
       {\usebibmacro{bookeditor}%
        \setunit{\printdelim[citecommand]{nametitledelim}}%
        \usebibmacro{booktitle}%
        \newunit
        \usebibmacro{event+venue+date}%
        \newunit
        \usebibmacro{bybookauthor/bybookeditor+others/bybooktranslator+others}%
        \newunit}%
     \usebibmacro{volume+partof}%
     \iffieldundef{maintitle}
       {}
       {\usebibmacro{maineditor}%
        \setunit{\printdelim[citecommand]{nametitledelim}}%
        \usebibmacro{maintitle}%
        \newunit
        \usebibmacro{event+venue+date}%
        \newunit
        \usebibmacro{bymainauthor/bymaineditor+others/bymaintranslator+others}}%
     \newunit
     \printfield{volumes}%
     \newunit
     \usebibmacro{shortseries+number}%
     \newunit
     \printfield{note}%
     \usebibmacro{parens+publisher+location+date}%
     \newunit
     \usebibmacro{ebook}%
     \newunit
     \printfield{addendum}%
     \newunit
     \usebibmacro{volume+part+pages}%
     \newunit
     \usebibmacro{isbn}%
     \newunit
     \usebibmacro{doi+eprint+url}}%
  \usebibmacro{finentry}}
\makeatother

\DeclareBibliographyDriver{incollection}{%
  \toggletrue{inentrytype}%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/editor+others/translator+others}%
  \setunit{\printdelim[bib]{nametitledelim}}%
  \usebibmacro{title}%
  \newunit
  \ifentrytype{classictext}
    {\usebibmacro{byauthor}%
     \newunit
     \usebibmacro{bytranslator+others}}
    {\usebibmacro{byauthor/byeditor+others/bytranslator+others}}%
  \setunit{\addcomma\space}%
  \usebibmacro{in:}%
  \iffieldundef{booktitle}
    {}
    {\usebibmacro{bookeditor}%
     \setunit{\printdelim{nametitledelim}}%
     \usebibmacro{booktitle}%
     \newunit
     \usebibmacro{event+venue+date}%
     \newunit
     \usebibmacro{bybookauthor/bybookeditor+others/bybooktranslator+others}%
     \newunit}%
  \usebibmacro{volume+partof}%
  \iffieldundef{maintitle}
    {}
    {\usebibmacro{maineditor}%
     \setunit{\printdelim{nametitledelim}}%
     \usebibmacro{maintitle}%
     \newunit
     \usebibmacro{event+venue+date}%
     \newunit
     \usebibmacro{bymainauthor/bymaineditor+others/bymaintranslator+others}}%
  \newunit
  \printfield{edition}%
  \newunit
  \printfield{volumes}%
  \newunit
  \usebibmacro{shortseries+number}%
  \newunit
  \printfield{note}%
  \newunit
  \usebibmacro{publisher+location+date}%
  \newunit
  \usebibmacro{ebook}%
  \newunit
  \printfield{addendum}%
  \setunit{\addcomma\space}%
  \usebibmacro{volume+part+pages}%
  \newunit
  \usebibmacro{isbn}%
  \newunit
  \usebibmacro{doi+eprint+url}%
  \ifboolexpr{
    togl {relatedseen}
    or
    not togl {bbx:related}
  }
    {}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}%
  \usebibmacro{finentry}}

\DeclareBibliographyDriver{inlexicon}{% 
  \usebibmacro{begentry}% 
  \usebibmacro{author/translator+others}% 
  \newunit 
  \usebibmacro{title}% 
  \newunit 
  \printfield{note}% 
  \newunit 
  \usebibmacro{xrefshortmaintitle+xrefshortbooktitle}% 
  \newunit 
  \usebibmacro{volume+pages}% 
  \newunit 
  \printfield{addendum}% 
  \usebibmacro{finentry}}

% Various driver patches
%   - use nametitledelim in cite:article and cite:book
%   - remove edition

\xpatchbibdriver{cite:article}
  {\newunit
   \usebibmacro{title}}
  {\setunit{\printdelim[citecommand]{nametitledelim}}%
   \usebibmacro{title}}
  {}
  {}
\xpatchbibdriver{cite:book}
  {\newunit
   \usebibmacro{title}}
  {\setunit{\printdelim[citecommand]{nametitledelim}}%
   \usebibmacro{title}}
  {}
  {}
\xpatchbibdriver{cite:review}
  {\usebibmacro{author/translator+others}%
   \newunit}
  {\usebibmacro{author/translator+others}%
   \setunit{\printdelim[citecommand]{nametitledelim}}}
  {}
  {}
\xpatchbibdriver{cite:thesis}
  {\newunit
   \usebibmacro{title}}
  {\setunit{\printdelim[citecommand]{nametitledelim}}%
   \usebibmacro{title}}
  {}
  {}
\xpatchbibdriver{cite:book}
  {\newunit\printfield{edition}}
  {}{}{}
\xpatchbibdriver{cite:commentary}
  {\newunit\printfield{edition}}
  {}{}{}
\xpatchbibdriver{cite:suppbook}
  {\newunit\printfield{edition}}
  {}{}{}
\xpatchbibdriver{book}
  {\newunit\printfield{edition}}
  {}{}{}
  \xpatchbibdriver{suppbook}
  {\newunit\printfield{edition}}
  {}{}{}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Punctuation and delimiter modifications %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\renewcommand*{\subtitlepunct}{\addperiod\space} % Punkt zw Titel und Subtitel in Bibliogr.
\renewcommand*{\sqspace}{} % kein Abstand bei Seitenzahl mit "f." 

\DeclareDelimFormat{multinamedelim}{\addslash\space} 
\DeclareDelimAlias{finalnamedelim}{multinamedelim} 
\DeclareDelimFormat[citecommand]{nametitledelim}{%
  \ifciteseen
    {\addcomma\space}
    {\addcolon\space}}
\DeclareDelimFormat[bib,biblist]{nametitledelim}{%
  \addperiod\space}

% Change reprint beginning punctuation to a space
\newcommand*{\begrelateddelimreprint}{\addspace}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Field format modifications %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\DeclareFieldFormat*{citetitle}{#1}
\DeclareFieldFormat[book]{title}{#1} % Buchtitel nur normal - ohne Formatierung
\DeclareFieldFormat[thesis]{title}{#1} % Buchtitel nur normal - ohne Formatierung
\DeclareFieldFormat[review]{title}{#1} % Buchtitel nur normal - ohne Formatierung
\DeclareFieldFormat*{journaltitle}{#1}
\DeclareFieldFormat*{maintitle}{#1}
\DeclareFieldFormat*{booktitle}{#1}
\DeclareFieldFormat{shorttitle}{#1} 
\DeclareFieldFormat{shortbooktitle}{#1} 
\DeclareFieldFormat{shortmaintitle}{#1} 
\DeclareFieldFormat{edition}{\textsuperscript{#1}}

% put reprint information in parentheses
\DeclareFieldFormat{related:reprint}{\mkbibparens{#1}}

\DeclareNameAlias{sortname}{family-given} % vorher last-first in Klammern
\DeclareNameAlias{author}{sortname}
\DeclareNameAlias{editor}{sortname}
\DeclareNameAlias{translator}{sortname}

\renewcommand*{\mkbibnamefamily}{\textsc} 
\renewcommand*{\mkbibnameprefix}{\textsc} 
\renewcommand*{\mkbibnamegiven}{\textsc} 
\renewcommand*{\mkbibnamesuffix}{\textsc} 


%%%%%%%%%%%%%%%%%%%%%%%%
% String modifications %
%%%%%%%%%%%%%%%%%%%%%%%%

\DefineBibliographyStrings{ngerman}{%
  editors = {Hgg\adddot}, 
  reprint = {ND:},
}


%%%%%%%%%%%%%%%%%%%%%%%%%%
% bibmacro modifications %
%%%%%%%%%%%%%%%%%%%%%%%%%%

\newbibmacro*{bookeditor}{%
  \ifnameundef{bookeditor}
    {\ifnameundef{editor}
       {}
       {\printnames{editor}%
        \setunit{\addspace}%
        \printtext[parens]{\usebibmacro{editor+othersstrg}}%
        \clearname{editor}}}%
    {\printnames{bookeditor}%
     \setunit{\addspace}%
     \printtext[parens]{\usebibmacro{editor+othersstrg}}%
     \clearname{bookeditor}}}%

\newbibmacro*{maineditor}{%
  \ifnameundef{maineditor}
    {\ifnameundef{editor}
       {}
       {\printnames{editor}%
        \setunit{\addspace}%
        \printtext[parens]{\usebibmacro{editor+othersstrg}}%
        \clearname{editor}}}%
    {\printnames{maineditor}%
     \setunit{\addspace}%
     \printtext[parens]{\usebibmacro{editor+othersstrg}}%
     \clearname{maineditor}}}

\renewbibmacro*{date}{%
  \printfield{edition}%
  \printdate
  \setunit{\addcomma\addspace}%
  \printfield{pubstate}}

% Set \newunitpunct to comma and remove parentheses around publication info
\renewbibmacro*{related:reprint}[1]{%
  \entrydata*{#1}{%
    \usedriver
      {\renewbibmacro*{related:init}{}%
       \renewcommand*{\newunitpunct}{\addcomma\space}%
       \renewbibmacro*{parens+publisher+location+date}{%
         \newunit
         \usebibmacro{publisher+location+date}}}
      {\ifbibliography
         {\thefield{entrytype}}
         {cite:\thefield{entrytype}}}}}

% use family, given and change \newunitpunct to a point just for related
% entries (I have serious misgivings about this as it seems very
% inconsistent.)
\xpretobibmacro{cite}
  {\iffieldequalstr{relatedtype}{reprint}
     {\DeclareNameAlias{default}{family-given}%
      \renewcommand*{\newunitpunct}{\addperiod\space}}
     {}}
  {}
  {}

\renewbibmacro*{parens+publisher+location+date}{% 
  \newunit
  \usebibmacro{publisher+location+date}% 
  \iffieldequalstr{relatedtype}{reprint} 
    {\renewcommand*{\newunitpunct}{\addsemicolon\space}% 
     \newunit 
     \usebibmacro{related:init}% 
     \usebibmacro{related}% 
     \global\toggletrue{relatedseen}} 
    {}} 

\renewbibmacro*{origpublisher+location+date}{% 
  \printlist{origlocation}% 
  \setunit*{\addspace}% 
  \usebibmacro{origdate}% 
  \newunit} 

\newbibmacro*{real+publisher+location+date}{% 
  \printlist{location}% 
  \iffieldundef{howpublished} 
    {} 
    {\setunit*{\addcolon\space}% 
     \printfield{howpublished}}% 
  \setunit*{\addspace}% 
  \usebibmacro{date}% 
  \newunit} 

\renewbibmacro*{publisher+location+date}{% 
  \ifboolexpr{ 
    not test {\iffieldundef{origpublisher}} 
    or 
    not test {\iffieldundef{origlocation}} 
    or 
    not test {\iffieldundef{origyear}} 
  } 
    {\usebibmacro{origpublisher+location+date}% 
     \setunit{\addspace}% 
     \printtext[parens]{% 
       \bibstring{reprint}% 
       \setunit{\addspace}% 
       \usebibmacro{real+publisher+location+date}}} 
    {\usebibmacro{real+publisher+location+date}}} 


\begin{document}
\null\vfill
Filler text \autocite{Gehrke.19}.
Filler text \autocite{Gehrke.19}.
Filler text \autocite{Krause.19}.
Filler text \autocite{Krause.19}.
Filler text \autocite{Krug.19}.
Filler text \autocite{Krug.19}.
Filler text \autocite{Wellhausen.1906}.
Filler text \autocite{Wellhausen.1906}.
Filler text \autocite{Witz.2001}.
Filler text \autocite{Witz.2001}.
\printbibliography
\end{document}

producción

información relacionada