我必须使用 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
如果您确实使用了它,它必须是定义中的最后一个标记。在您拥有它的地方,它总是会在定义中看到以下空格,因此永远不会添加空格。