biber idemgender에서 macro cite : idem 갱신시 해결되지 않음

Dec 12 2020

이 질문 과 관련 cite:idem하여 컴파일러가 변수를 해결할 수 없기 때문에 매크로를 갱신하는 데 문제가 있음을 발견했습니다 idemgender.

다음은 인용 된 질문에서 파생 된 예입니다. cite:idem인수를 작은 대문자로 인쇄하도록 매크로 가 갱신됩니다.

\documentclass{article}

\usepackage[italian]{babel}

\usepackage[backend=biber, citestyle=verbose-trad2]{biblatex}

\begin{filecontents*}{\jobname.bib}

@article{bollman1966cannophori, 
  author   = {Demidov, S.S.},
  title= {N.V. Bugaev e lo sviluppo della scuola matematica moscovita},
  journaltitle = {Ricerche di storia della matematica},
  date = {1985},
  number   = {XXIX},
  pages= {113-124},
}

@incollection{bollman1998romische, 
  author = {Demidov, S.S.},
  title= {N.V. Bougaiev et la creation de l'Ecole de Moscou},
  date = {1985},
  booktitle= {Mathemata.},
  editor   = {Folkerts, M.},
  publisher= {Steiner Verlag},
  location = {Stuttgart},
  pages = {651-673},
}

\end{filecontents*}

\addbibresource{\jobname.bib}

\providecommand*{\mkidem}[1]{\textsc{#1}} 
% substitute: \mkidem for \mkibid
\renewbibmacro*{cite:idem}{\bibstring[\mkidem]{idem\thefield‌{gender}}\setunit{\p‌​rintdelim{nametitled‌​elim}}}

\begin{document}
First \footcites{bollman1998romische}{bollman1966cannophori}

And second\footcite{bollman1966cannophori}
\end{document}

LuaLateX로 컴파일 된 출력은 다음 각주를 제공합니다.

보시다시피 "Idem"대신 문서는 토큰 idemgender를 인쇄합니다 .

답변

3 moewe Dec 12 2020 at 20:22

질문의 코드에는 일을 엉망으로 만드는 보이지 않는 문자가 포함되어 있습니다. 댓글에서 코드를 복사했을 때이 사이트에서이 효과를 여러 번 보았습니다.

구체적으로 제로 폭 비 소목 사이 (U +의 200C)가 \thefield{gender}애프터뿐만 아니라 제로의 폭 비 조이너 등 (U +의 200C) 및 폭 제로 공간 (U + 200B) p\printdelim및 상기 후는 d에서 nametitled‌​elim. p코드 강조 표시를 보면 뭔가 꺼져 있음을 알 수 있습니다 . 모두 \printdelim파란색이어야하지만 \p질문의 코드에서는 파란색 만 표시됩니다 .

같은 웹 사이트 https://w3c.github.io/xml-entities/unicode-names.html 성가신 보이지 않는 캐릭터를 찾는 데 크게 도움이 될 수 있습니다.

원하지 않는 보이지 않는 문자를 제거하면 다음이 잘 작동합니다.

\documentclass{article}
\usepackage[italian]{babel}
\usepackage[backend=biber, citestyle=verbose-trad2]{biblatex}

\providecommand*{\mkidem}[1]{\textsc{#1}} 

\renewbibmacro*{cite:idem}{%
  \bibstring[\mkidem]{idem\thefield{gender}}%
  \setunit{\printdelim{nametitledelim}}}

\begin{filecontents*}{\jobname.bib}
@article{bollman1966cannophori, 
  author       = {Demidov, S.S.},
  title        = {N.V. Bugaev e lo sviluppo della scuola matematica moscovita},
  journaltitle = {Ricerche di storia della matematica},
  date         = {1985},
  number       = {XXIX},
  pages        = {113-124},
}
@incollection{bollman1998romische, 
  author    = {Demidov, S.S.},
  title     = {N.V. Bougaiev et la creation de l'Ecole de Moscou},
  date      = {1985},
  booktitle = {Mathemata},
  editor    = {Folkerts, M.},
  publisher = {Steiner Verlag},
  location  = {Stuttgart},
  pages     = {651-673},
}
\end{filecontents*}
\addbibresource{\jobname.bib}

\begin{document}
First \footcites{bollman1998romische}{bollman1966cannophori}

And second\footcite{bollman1966cannophori}
\end{document}