\newcommand abschließendes Leerzeichen mit tocloft

\newcommand abschließendes Leerzeichen mit tocloft

Ich musste meinem aktuellen Dokument mithilfe des tocloft-Pakets eine „Liste mit ergänzenden Materialien“ hinzufügen. Derzeit habe ich in meiner Präambel den folgenden Code:

\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}
}

Im Text habe ich:

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

Dies funktioniert wie vorgesehen, aber ich habe ein Leerzeichen am Ende der Referenz. Ich habe einige der vorgeschlagenen Lösungen für das Leerzeichen am Ende des Makros ausprobiert (wie das xspace-Paket oder \suppmat/ usw.), aber keine scheint das Leerzeichen zu entfernen. Ich habe das Gefühl, dass es sich um einen kleinen Konflikt mit dem tocloft-Paket handelt.

Irgendwelche Ideen? Danke!

Antwort1

\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}%%%%%
}

%%%%Ihr Makro hat jedes Mal 4 Leerzeichen hinzugefügt, ich habe sie mit „Sie brauchen nur eins “ auskommentiert und %außerdem entfernt, \xspacedass es, wenn Sie dies verwenden, das allerletzte Token in der Definition sein muss. An der Stelle, an der Sie es hatten, hätte es immer nur das folgende Leerzeichen in der Definition gesehen und daher nie ein Leerzeichen hinzugefügt.

verwandte Informationen