이름에 사용자 정의 명령이 있는 작성자 인용 문제

이름에 사용자 정의 명령이 있는 작성자 인용 문제

polski와 동시에 패키지를 사용하는 데 문제가 있습니다 . 나는 다음과 같이 정의된 패키지의 명령만 사용합니다.imakeidxbiblatex\dywizpolski\def\dywiz{\kern0sp\discretionary{-}{-}{-}\penalty10000\hskip0sp\relax}

이 명령은 두 부분(하이픈으로 연결된) 단어의 하이픈 넣기를 제어하는 ​​데 사용됩니다. 파일에서 색인을 생성해야 하는 작성자 이름에 사용할 때를 제외하고는 모든 것이 잘 작동합니다 bib.

텍스트에서 명령을 사용하면 파일 \index{Kowalski\dywiz Jankowski, Karol}에 다음 항목이 표시됩니다 ind. \indexentry{Kowalski\dywiz Jankowski, Karol}{1}훌륭합니다.

command 를 사용하면 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}부분적인 해결책은 내 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}

결과:

여기에 이미지 설명을 입력하세요

요약하자면 두 가지 문제가 있습니다.

  1. 를 사용할 때 어떤 경우에는 불필요한 공간이 있습니다 \dywiz.
  2. 파일 의 작성자 이름에 사용자 정의 명령을 사용하면 bib해당 명령이 파일에 완전히 명시적인 형식으로 기록됩니다 ind( \indexentry{Kowalski\kern 0sp\discretionary {-}{-}{-}\penalty 10000\hskip 0sp\relax Jankowski, Karol}{1}단순한 대신 \indexentry{Kowalski\dywiz Jankowski, Karol}{1}).

관련 정보