Таинственный пробел перед командой \footnote

Таинственный пробел перед командой \footnote

Я определил пользовательский формат сноски "имя + год + заголовок", но по какой-то причине есть начальный пробел перед надстрочным индексом. Откуда это взялось?

Команда выглядит так:

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

Выход:

введите описание изображения здесь

МВЭ:

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

решение1

проще всего добавить \unskipв начало определения \myfootcite:

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

это приводит к удалению пробела, который непосредственно предшествует вставке команды при ее применении.

Обратным этому является \ignorespaces, который, как говорится, будет игнорировать любые пробелы, которые следуют сразу за командой, включающей его в конце.

Эти две команды оправдывают себя, когда неосторожный ввод включает пробелы в начале или конце некоторой строки, которая должна использоваться в позиции, где «чистый» интервал имеет значение, например, в верхнем колонтитуле или перед сноской, как показано в приведенном здесь примере.

также имелись ложные пробелы, удаленные с помощью %в местах, отмеченных знаком <--.

Связанный контент