Problem beim Zitieren von Autoren, deren Namen benutzerdefinierte Befehle enthalten

Problem beim Zitieren von Autoren, deren Namen benutzerdefinierte Befehle enthalten

Ich habe ein Problem polskidamit, package gleichzeitig mit imakeidxund zu verwenden biblatex. Ich verwende nur den Befehl \dywizvon package polski, der definiert ist als\def\dywiz{\kern0sp\discretionary{-}{-}{-}\penalty10000\hskip0sp\relax}

Der Befehl dient zur Steuerung der Silbentrennung zweiteiliger (mit Bindestrich versehener) Wörter. Alles funktioniert einwandfrei, außer wenn ich ihn für die Namen von Autoren verwende, die ebenfalls in der bibDatei indexiert werden müssen.

\index{Kowalski\dywiz Jankowski, Karol}Wenn ich einen Befehl im Text verwende, erhalte ich diesen Eintrag in der indDatei: \indexentry{Kowalski\dywiz Jankowski, Karol}{1}Das ist großartig.

Wenn ich den Befehl verwende author = {Kowalski\dywiz Jankowski, Karol}, erhalte ich in meiner bibDatei unnötige Leerzeichen im Text, unnötige Leerzeichen in der Bibliografie und ein zusätzliches Element in meinem Index (aufgrund eines Eintrags \indexentry{Kowalski\kern 0sp\discretionary {-}{-}{-}\penalty 10000\hskip 0sp\relax Jankowski, Karol}{1}in meiner indDatei).

Eine Teillösung besteht darin, den Befehl author = {Kowalski\dywiz{}Jankowski, Karol}in meiner bibDatei zu verwenden. Dadurch werden unpassende Leerzeichen im Text und in der Bibliographie eliminiert, aber leider entsteht dadurch ein zusätzlicher Eintrag in meinem Index (aufgrund des Eintrags \indexentry{Kowalski\kern 0sp\discretionary {-}{-}{-}\penalty 10000\hskip 0sp\relax {}Jankowski, Karol}{1}in meiner indDatei).

MWE:

\documentclass{article}

\usepackage[indexing=cite,style=verbose-trad1,dashed=false]{biblatex}

\usepackage[nonewpage]{imakeidx}
\makeindex[columns=1]

%remove titles from index
\renewbibmacro*{citeindex}{%
    \ifciteindex
        {\indexnames{labelname}%
         \indexnames{editor}%
         \indexnames{editora}%
         \indexnames{editorb}%
         \indexnames{translator}%
     \indexnames{commentator}}
        {}} 

\def\dywiz{\kern0sp\discretionary{-}{-}{-}\penalty10000\hskip0sp\relax} %actually I use \usepackage{polski} but the result is the same

    
\begin{filecontents}{\jobname.bib}
@book{plbook1,
  author        = {Kowalski\dywiz Jankowski, Karol}, %spurious space in both text citation and the bibliography, extra entry in index
  title         = {Book1 title},
}

@book{plbook2,
  author        = {Kowalski\dywiz{}Jankowski, Karol}, %no spurious space but one more extra entry in index
  title         = {Book2 title},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}

\cite{plbook1} %this produces \indexentry{Kowalski\kern 0sp\discretionary {-}{-}{-}\penalty 10000\hskip 0sp\relax  Jankowski, Karol}{1}

\cite{plbook2} %this produces \indexentry{Kowalski\kern 0sp\discretionary {-}{-}{-}\penalty 10000\hskip 0sp\relax {}Jankowski, Karol}{1}

\index{Kowalski\dywiz Jankowski, Karol} %this produces \indexentry{Kowalski\dywiz Jankowski, Karol}{1}

\printindex

\printbibliography

\end{document}

Ergebnis:

Bildbeschreibung hier eingeben

Zusammenfassend habe ich zwei Probleme:

  1. Bei der Verwendung entsteht in manchen Fällen unnötiger Platz \dywiz.
  2. Die Verwendung benutzerdefinierter Befehle in den Autorennamen in der bibDatei führt dazu, dass der Befehl in vollständig expliziter Form in die Datei geschrieben wird ind( \indexentry{Kowalski\kern 0sp\discretionary {-}{-}{-}\penalty 10000\hskip 0sp\relax Jankowski, Karol}{1}statt nur \indexentry{Kowalski\dywiz Jankowski, Karol}{1}).

verwandte Informationen