Erhalten eines „und“ vor dem letzten Block/Element in \cite in BibLaTeX, wenn Elemente komprimiert sind

Erhalten eines „und“ vor dem letzten Block/Element in \cite in BibLaTeX, wenn Elemente komprimiert sind

Ich möchte mithilfe von BibLaTeX einen \textciteBefehl auf Grundlage des Numeric-Comp-Stils erstellen, der statt [1-3, 5] die Referenzen 1-3 und 5 anzeigt und statt [1-3, 5-7] die Referenzen 1-3 und 5-7 ausgibt.

Ersteres konnte ich mit dem folgenden MWE erreichen, Letzteres jedoch nicht:

\documentclass{article}
\usepackage{filecontents}
\usepackage[style=numeric-comp]{biblatex}

% Cite without square brackets - with Ref./Refs.
\NewBibliographyString{refname}
\NewBibliographyString{refsname}
\DefineBibliographyStrings{english}{%
    refname = {Ref\adddot},
    refsname = {Refs\adddot}
}
\DeclareCiteCommand{\textcite}
{%
    \ifnum\thecitetotal=1
    \bibstring{refname}%
    \else%
    \bibstring{refsname}%
    \fi%
    \addnbspace%
    \usebibmacro{cite:init}%
    \usebibmacro{prenote}%
    \renewcommand*{\multicitedelim}{\iflastcitekey{\addspace\bibstring{and}\addspace}{\addcomma\addspace}}%
}
{\usebibmacro{citeindex}\usebibmacro{cite:comp}}
{}
{\usebibmacro{cite:dump}\usebibmacro{postnote}}


\begin{filecontents*}{\jobname.bib}
@book{A,
    title = {A Bla},
    author = {A Foo}
}

@book{B,
    title = {B Bla},
    author = {B Foo}
}

@book{C,
    title = {C Bla},
    author = {C Foo}
}

@book{D,
    title = {D Bla},
    author = {D Foo}
}

@book{E,
    title = {E Bla},
    author = {E Foo}
}

@book{F,
    title = {F Bla},
    author = {F Foo}
}

@book{G,
    title = {G Bla},
    author = {G Foo}
}
\end{filecontents*}
\addbibresource{\jobname.bib}

\begin{document}
    \nocite{*}
    
    Cite commands should stay like this (i.e. no and): \cite{A,B,C,E,F,G}

    These textcites work: \textcite{A,C,E,G} ; \textcite{A,B,C,E}
    
    This textcite misses the final and: \textcite{A,C,E,F,G}
    
    This textcite has two ands: \textcite{A,C,D,F}
    
    \printbibliography
\end{document}

Ausgabe des MWE:

Ausgabe des MWE

Ich denke, das Problem besteht darin, dass beim Komprimieren von Zitaten der letzte Citekey innerhalb eines komprimierten Intervalls liegt und daher überhaupt kein Zitatlisten-Trennzeichen gedruckt wird. Gibt es einen Test, mit dem ich überprüfen könnte, welches das letzte tatsächlich gedruckte Trennzeichen ist, auch wenn es nicht vor dem letzten Citekey steht? Beachten Sie auch, dass es im letzten Beispiel irgendwie zwei „unds“ gibt. Ich denke, das Problem besteht wieder darin, dass dies \iflastcitekeynicht wirklich wie erwartet funktioniert.

verwandte Informationen