Mysteriöses Leerzeichen vor dem \footnote-Befehl

Mysteriöses Leerzeichen vor dem \footnote-Befehl

Ich habe ein benutzerdefiniertes Fußnotenformat mit Name, Jahr und Titel definiert, aber aus irgendeinem Grund steht vor der hochgestellten Zahl ein Leerzeichen. Woher kommt das?

Der Befehl sieht folgendermaßen aus:

\DeclareNameFormat{lastnameonly}{\namepartfamily}
\DeclareCiteCommand{\myfootcite}{}{%
    \footnote{%
        \printnames[lastnameonly]{author} (\printfield{year}), \printfield{title}
    }
}{}{}

Ausgabe:

Bildbeschreibung hier eingeben

MWE:

\documentclass{article}

\usepackage[backend=biber]{biblatex}
\bibliography{references.bib}
\begin{filecontents}{references.bib}
@article{smith01,
  author = {Smith, John},
  year = {2001},
  title = {Article title}
}
\end{filecontents}

%% Custom command giving a mysterious space
\DeclareNameFormat{lastnameonly}{\namepartfamily}
\DeclareCiteCommand{\myfootcite}{}{%
    \footnote{%
        \printnames[lastnameonly]{author} (\printfield{year}), \printfield{title}
    }
}{}{}

\begin{document}
There is a space \myfootcite{smith01}
\end{document}

Antwort1

Am einfachsten ist es, \unskipam Anfang der \myfootciteDefinition hinzuzufügen:

%% Custom command giving a mysterious space
\DeclareNameFormat{lastnameonly}{\namepartfamily}
\DeclareCiteCommand{\myfootcite}{}{%
    \unskip
    \footnote{%
        \printnames[lastnameonly]{author} (\printfield{year}), \printfield{title}% <--
    }% <--
}{}{}

Dies hat zur Folge, dass das Leerzeichen entfernt wird, das der Einfügung des Befehls unmittelbar vorangeht, wenn dieser angewendet wird.

Das Gegenteil davon ist \ignorespaces, das, wie der Name schon sagt, alle Leerzeichen ignoriert, die unmittelbar auf einen Befehl folgen, der es am Ende enthält.

Diese beiden Befehle sind sinnvoll, wenn eine unachtsame Eingabe Leerzeichen am Anfang oder Ende einer Zeichenfolge enthält, die an einer Position verwendet werden soll, wo es auf „saubere“ Abstände ankommt, z. B. in einer Kopfzeile oder vor einer Fußnote, wie das Beispiel hier zeigt.

%An den mit markierten Stellen gab es auch ungehörige Leerzeichen, die mit einem entfernt wurden <--.

verwandte Informationen