![使用 tocloft 新命令设置自定义列表的制表符长度](https://linux22.com/image/422870/%E4%BD%BF%E7%94%A8%20tocloft%20%E6%96%B0%E5%91%BD%E4%BB%A4%E8%AE%BE%E7%BD%AE%E8%87%AA%E5%AE%9A%E4%B9%89%E5%88%97%E8%A1%A8%E7%9A%84%E5%88%B6%E8%A1%A8%E7%AC%A6%E9%95%BF%E5%BA%A6.png)
我有一些重叠的项目增量数字,以及我定义的自定义列表的项目标题。
该条目是使用自定义命令插入的,如下所示,但我不明白如何设置制表符,以便项目名称(在下图 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