사용자 정의 이름 + 연도 + 제목 각주 형식을 정의했지만 어떤 이유로 위 첨자 앞에 선행 공백이 있습니다. 이것은 어디서 오는 거니?
명령은 다음과 같습니다.
\DeclareNameFormat{lastnameonly}{\namepartfamily}
\DeclareCiteCommand{\myfootcite}{}{%
\footnote{%
\printnames[lastnameonly]{author} (\printfield{year}), \printfield{title}
}
}{}{}
산출:
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}
답변1
가장 쉬운 일은 정의 \unskip
의 시작 부분에 추가하는 것입니다 \myfootcite
.
%% Custom command giving a mysterious space
\DeclareNameFormat{lastnameonly}{\namepartfamily}
\DeclareCiteCommand{\myfootcite}{}{%
\unskip
\footnote{%
\printnames[lastnameonly]{author} (\printfield{year}), \printfield{title}% <--
}% <--
}{}{}
이는 명령이 적용될 때 명령 삽입 바로 앞에 있는 공백을 제거하는 효과가 있습니다.
이것의 반대는 입니다 \ignorespaces
. 말 그대로 끝에 이를 포함하는 명령 바로 뒤에 오는 공백을 무시합니다.
이 두 명령은 부주의한 입력에 런닝 헤드와 같이 "깨끗한" 간격이 중요한 위치에 사용되는 일부 문자열의 시작이나 끝 부분에 공백이 포함되거나 여기에 표시된 예와 같이 각주 앞에 있을 때 유지됩니다.
%
또한 으로 표시된 지점에서 로 제거된 가짜 공백도 있었습니다 <--
.