En biber idemgender no se resuelve al renovar macro cite: idem

Dec 12 2020

Con referencia a esta pregunta, encontré problemas al renovar la macro cite:idemya que el compilador no puede resolver la variable idemgender.

A continuación se muestra un ejemplo derivado de la pregunta citada. La macro cite:idemse renueva para imprimir su argumento en minúsculas.

\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}

El resultado, compilado con LuaLateX, da las siguientes notas al pie:

Como puede ver, en lugar de "Idem", el documento imprime el token idemgender .

Respuestas

3 moewe Dec 12 2020 at 20:22

El código de la pregunta contiene algunos caracteres invisibles que estropean las cosas. He visto este efecto varias veces en este sitio cuando se copió el código de los comentarios.

Específicamente hay un cero-anchura no Joiner (U + 200c) entre \thefieldy {gender}así como un no-Joiner cero-anchura (U + 200c) y un espacio de anchura cero (U + 200b) después de la pen \printdelimy y después de la den nametitled‌​elim. Puede ver que algo está mal psi observa el código resaltado: Todo \printdelimdebe ser azul, pero solo \pes azul en el código de la pregunta.

Un sitio web como https://w3c.github.io/xml-entities/unicode-names.html puede ayudar mucho a encontrar esos molestos personajes invisibles.

Cuando elimino los caracteres invisibles indeseables, lo siguiente funciona bien

\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}