\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 つのスペースを追加していましたが、私はそれらを%%%%(必要なのは 1 つだけです%) でコメントアウトし、これを使用する場合は定義の最後のトークンである必要があることも削除しました\xspace。あなたがそれを持っていた場所では、定義で常に次のスペースが認識されるため、スペースが追加されることはありません。

関連情報