使用 tocloft 新命令设置自定义列表的制表符长度

使用 tocloft 新命令设置自定义列表的制表符长度

我有一些重叠的项目增量数字,以及我定义的自定义列表的项目标题。 在此处输入图片描述

该条目是使用自定义命令插入的,如下所示,但我不明白如何设置制表符,以便项目名称(在下图 nd 的情况下)不与分配给每个项目的增量编号重叠。

\documentclass[12pt,a4paper,twoside]{report} %
\usepackage{multicol} %
\usepackage[bf,sf,center]{titlesec}
\usepackage{tocloft}
\setlength{\cftsecnumwidth}{6em}          
\setlength{\cfttabnumwidth}{6em}

\newcommand{\listexamplename}{Lista dei beni librari.}
\newlistof{benelib}{mcf}{\listexamplename}

\title{test}



\newcommand{\benelib}[9]{\markboth{#1}{#1}\begin{large}\textbf{#1}\end{large}\ {(#2)}\ $\bullet$\ {#3}\ $\bullet$ \textbf{#4},\ #5,\ #6;\ #7,\ \begin{small}#8\end{small} Spagn.\ #9.
\refstepcounter{benelib}
\addcontentsline{mcf}{benelib}
{\protect\numberline{\thebenelib}#1} \par

}

\begin{document}
\maketitle
\tableofcontents
\newpage
\listofbenelib
\newpage


\section*{Test}
\addcontentsline{toc}{chapter}{Test}
\begin{multicols}{2}
\benelib{I}{1   }{[I1 3]}{thistitile}{asdf}{testtest}{400-600}{ }{49-50}
\end{multicols}
\end{document}

我读了几个问题,但找不到将答案应用到我的具体案例的方法。我想知道如何修改代码才能使其正常工作。我的问题是如何将其用于\setlength{\cftsecnumwidth}{6em} \setlength{\cfttabnumwidth}{6em}我的自定义列表,并设置增量编号和项目名称的正确间距?

答案1

您正在寻找

\setlength\cftbenelibnumwidth{6em}

更一般地说,\numberline无论指定的宽度是多少,都可以使数字和标题永不重叠。(\@tempdima是数字的宽度,当时\numberline它起作用。)

\makeatletter
\renewcommand\numberline[1]{%
\begingroup
 \sbox\@tempboxa{#1 }%
 \ifdim\wd\@tempboxa<\@tempdima
  \wd\@tempboxa=\@tempdima
 \fi
 \usebox\@tempboxa
\endgroup
}
\makeatother

相关内容