Eu defini um formato personalizado de nome + ano + título de nota de rodapé, mas por algum motivo há um espaço inicial antes do sobrescrito. De onde isto está vindo?
O comando fica assim:
\DeclareNameFormat{lastnameonly}{\namepartfamily}
\DeclareCiteCommand{\myfootcite}{}{%
\footnote{%
\printnames[lastnameonly]{author} (\printfield{year}), \printfield{title}
}
}{}{}
Saída:
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}
Responder1
a coisa mais fácil de fazer é adicionar \unskip
no início da \myfootcite
definição:
%% Custom command giving a mysterious space
\DeclareNameFormat{lastnameonly}{\namepartfamily}
\DeclareCiteCommand{\myfootcite}{}{%
\unskip
\footnote{%
\printnames[lastnameonly]{author} (\printfield{year}), \printfield{title}% <--
}% <--
}{}{}
isso tem o efeito de remover o espaço que precede imediatamente a inserção do comando quando ele é aplicado.
o inverso disso é \ignorespaces
, que irá, como diz, ignorar quaisquer espaços que sigam imediatamente um comando que o inclua no final.
esses dois comandos ganham seu sustento quando uma entrada descuidada inclui espaços no início ou no final de alguma string que deve ser usada em uma posição onde o espaçamento "limpo" é importante, como um cabeçalho em execução ou precedendo uma nota de rodapé, como mostra o exemplo aqui.
também havia espaços espúrios, removidos com um %
nos pontos marcados com <--
.