In biber idemgender bei Erneuerung des Makros nicht gelöst cite: idem

Dec 12 2020

In Bezug auf diese Frage habe ich Probleme bei der Erneuerung des Makros festgestellt, cite:idemda der Compiler die Variable nicht auflösen kann idemgender.

Hier ist ein Beispiel, das aus der zitierten Frage abgeleitet wurde. Das Makro cite:idemwird erneuert, um sein Argument in Small Caps zu drucken.

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

Die mit LuaLateX kompilierte Ausgabe enthält die folgenden Fußnoten:

Wie Sie sehen können, druckt das Dokument anstelle von "Idem" den Token- Idemgender .

Antworten

3 moewe Dec 12 2020 at 20:22

Der Code in der Frage enthält einige unsichtbare Zeichen, die die Dinge durcheinander bringen. Ich habe diesen Effekt mehrmals auf dieser Site gesehen, als Code aus den Kommentaren kopiert wurde.

Insbesondere gibt es einen Nicht-Joiner mit einer Breite von Null (U + 200c) zwischen \thefieldund {gender}sowie einen Nicht-Joiner mit einer Breite von Null (U + 200c) und einen Raum mit einer Breite von Null (U + 200b) nach dem pIn \printdelimund und nach dem din nametitled‌​elim. Sie können sehen, dass etwas mit dem nicht pstimmt, wenn Sie sich die Code-Hervorhebung ansehen: Alle \printdelimsollten blau sein, aber nur das \pist blau im Code aus der Frage.

Eine Website wie https://w3c.github.io/xml-entities/unicode-names.html kann sehr hilfreich sein, um diese lästigen unsichtbaren Zeichen zu finden.

Wenn ich die unerwünschten unsichtbaren Zeichen entferne, funktioniert das Folgende einwandfrei

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