著者名にユーザー定義コマンドが含まれる著者の引用に関する問題

著者名にユーザー定義コマンドが含まれる著者の引用に関する問題

パッケージをとpolskiと同時に使用すると問題が発生します。次のように定義されているパッケージのコマンドのみを使用します。imakeidxbiblatex\dywizpolski\def\dywiz{\kern0sp\discretionary{-}{-}{-}\penalty10000\hskip0sp\relax}

このコマンドは、2 つの部分 (ハイフン付き) の単語のハイフネーションを制御するために使用されます。ファイル内で索引付けする必要のある著者名に使用する場合を除いて、すべて正常に動作しますbib

テキストでコマンドを使用すると、ファイル\index{Kowalski\dywiz Jankowski, Karol}に次のエントリが作成されますind\indexentry{Kowalski\dywiz Jankowski, Karol}{1}これは素晴らしいことです。

コマンドを使用するとauthor = {Kowalski\dywiz Jankowski, Karol}bibファイル内のテキストに不要なスペースが入り、参考文献に不要なスペースが入り、索引に余分な項目が入ります (ファイル\indexentry{Kowalski\kern 0sp\discretionary {-}{-}{-}\penalty 10000\hskip 0sp\relax Jankowski, Karol}{1}内のエントリのためind)。

author = {Kowalski\dywiz{}Jankowski, Karol}部分的な解決策は、ファイル内でコマンドを使用することです。これにより、テキストと参考文献内の不要なスペースが排除されますが、残念ながら、インデックスに余分なエントリが 1 つ追加されます (ファイル内のbibエントリのため)。\indexentry{Kowalski\kern 0sp\discretionary {-}{-}{-}\penalty 10000\hskip 0sp\relax {}Jankowski, Karol}{1}ind

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}

結果:

ここに画像の説明を入力してください

まとめると、私には2つの問題があります。

  1. を使用する場合、場合によっては不要なスペースが発生します\dywiz
  2. ファイル内の著者名でユーザー定義のコマンドを使用すると、そのコマンドはファイル内に完全な明示的な形式 (ではなく )bibで書き込まれます。ind\indexentry{Kowalski\kern 0sp\discretionary {-}{-}{-}\penalty 10000\hskip 0sp\relax Jankowski, Karol}{1}\indexentry{Kowalski\dywiz Jankowski, Karol}{1}

関連情報