\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,正如它所說,它將忽略緊跟在末尾包含它的命令後面的任何空格。

當粗心的輸入在某些字串的開頭或結尾包含空格時,這兩個命令就會發揮作用,而該字串要在“乾淨”間距很重要的位置使用,例如行頭或腳註之前,如此處的範例所示。

還有一些假空格,%在標示 的地方用 刪除<--

相關內容