![Рабочий пример](https://rvso.com/image/400357/%D0%A0%D0%B0%D0%B1%D0%BE%D1%87%D0%B8%D0%B9%20%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80.png)
Я использую biblatex-sbl. В примечаниях первая цитата "статьи" и "сборника" должна быть такой:
Краузе, Йенс-Уве: «Die Spätantike (284-565 n. Chr.)», в: Герке, Ганс-Иоахим/Шнайдер, Хельмут (ред.): История античности. Ein Studienbuch, Штутгарт 52019, 429–499.
В следующих примечаниях следует указать:
Краузе, Йенс-Уве, «Die Spätantike (284-565 прим. Хр.)», 429–499.
Короче говоря: я хочу, чтобы после имени автора ссылки на «сборник» (а также на «статью») ставилось двоеточие; во всех остальных примечаниях должна стоять запятая.
Вот мой 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}
решение1
Для этого нам нужно сделать три вещи. Это не так очевидно, как я подозревал, что заставляет меня задуматься, есть ли еще какие-то проблемы с разделителями, зависящими от контекста, в biblatex-sbl
. (например, я бы подумал, что мне нужно указать I want context citecommand
with \printdelim
, но без этого это не работает.
Измените разделитель перед заголовком в новом
cite:incollection
драйвере с\newunit
на\nametitledelim
в контекстеcitecommand
.\setunit{\printdelim[citecommand]{nametitledelim}}% \usebibmacro{title}%
Исправьте драйвер
cite:article
иcite:book
(и любой другой) для использования\nametitledelim
в контекстеcitecommand
, а не\newunit
перед заголовком.\xpatchbibdriver{cite:article} {\newunit \usebibmacro{title}} {\setunit{\printdelim[citecommand]{nametitledelim}}% \usebibmacro{title}} {} {} \xpatchbibdriver{cite:book} {\newunit \usebibmacro{title}} {\setunit{\printdelim[citecommand]{nametitledelim}}% \usebibmacro{title}} {} {}
Определите
\nametitledelim
в контекстеcitecommand
, чтобы двоеточие печаталось только для первой ноты, а запятая — для последующих нот.\DeclareDelimFormat[citecommand]{nametitledelim}{% \ifciteseen {\addcomma\space} {\addcolon\space}}
Рабочий пример
Обновленный рабочий пример, который, надеюсь, отвечает всем вашим требованиям из последних нескольких вопросов. Включает в себя очистку кода и исправления. Я переключаюсь на шрифт Linux Libertine O, который имеет маленькие заглавные буквы.
\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}