\newcommand 尾随空格与 tocloft

\newcommand 尾随空格与 tocloft

我必须使用 tocloft 包将“补充材料列表”添加到我当前的文档中。我目前在序言中有以下代码:

\usepackage[titles]{tocloft} % Create Table of Supplementary Materials

\newcommand{\listsuppmatname}{Supplementary Materials}
\newlistof{suppmat}{smat}{\listsuppmatname}
\newcommand{\suppmat}[1]{%
   \refstepcounter{suppmat}
   \noindent{Video \thechapter.\thesuppmat\xspace}
   \addcontentsline{smat}{suppmat}
{\protect\numberline{\thechapter.\thesuppmat}#1}
}

在文中我有:

\suppmat{blah blah}\label{vid:blahblah}

这按预期工作,但引用后有一个尾随空格。我尝试了一些针对宏尾随空格的建议解决方案(例如 xspace 包或 \suppmat/ 等),但似乎都没有删除该空格。我感觉它与 tocloft 包有轻微冲突。

有什么想法吗?谢谢!

答案1

\newcommand{\listsuppmatname}{Supplementary Materials}
\newlistof{suppmat}{smat}{\listsuppmatname}
\newcommand{\suppmat}[1]{%
   \refstepcounter{suppmat}%%%%%
   \noindent{Video \thechapter.\thesuppmat}%%%%%%%%
   \addcontentsline{smat}{suppmat}%%%%%
{\protect\numberline{\thechapter.\thesuppmat}#1}%%%%%
}

您的宏每次都会添加 4 个空格,我用 注释掉了它们%%%%(您只需要一个%),我还删除了\xspace如果您确实使用了它,它必须是定义中的最后一个标记。在您拥有它的地方,它总是会在定义中看到以下空格,因此永远不会添加空格。

相关内容