如何增加定义列表中编号和标题的间隔以避免重叠

如何增加定义列表中编号和标题的间隔以避免重叠

我正在处理一个定义列表 (LOD),本质上就是下面这段代码中显示的定义列表(编号除外)。我遇到的问题是,对于较大的数字,LOD 上的编号和标题有一些重叠。我想增加 LOD 所有定义(项目)的编号和标题之间的分离。我尝试使用\setlength{\cftdefnumwidth}{}(我在类似问题中找到的)但不起作用(“未定义控制序列”)。如何增加 LOD 中每个项目的编号和标题之间的间隔?

接下来是我的 LOD 的 MWE,上面有五个项目,每个第 n 个项目的编号为 10^(n-1),以展示我遇到的问题。稍后会附上一张图,显示代码生成的 PDF。

\documentclass{report}    
\usepackage{tocloft}

\newlistof{definitions}{def}{Definitions} %making of the list

\newcommand{\defil}[1]  %creating the command for adding definitions to the list (and numbering them)
{%
    \refstepcounter{definitions}
    \addcontentsline{def}{definitions}
    {\protect\numberline{\thedefinitions}#1}\par
}
        
\begin{document}
\listofdefinitions %including the list

\defil{lorem ipsum} %adding element "lorem ipsum" to the list of definitions

\addtocounter{definitions}{8} %adding one digit to the numbering
\defil{lorem ipsum} %adding element "lorem ipsum" to the list of definitions

\addtocounter{definitions}{89} %adding one digit to the numbering
\defil{lorem ipsum} %adding element "lorem ipsum" to the list of definitions

\addtocounter{definitions}{899} %adding one digit to the numbering
\defil{lorem ipsum} %adding element "lorem ipsum" to the list of definitions

\addtocounter{definitions}{8999} %adding one digit to the numbering
\defil{lorem ipsum} %adding element "lorem ipsum" to the list of definitions

\end{document}

上述代码的结果

答案1

我通过在序言中添加以下文字解决了这个问题:

\makeatletter
  \renewcommand\l@definitions{\@dottedtocline{1}{5em}{3em}}
\makeatother

第三个参数(包含“3em”的参数)对应于 numwidth,即包含编号的框的大小。增加此参数的值将增加所需的间隔。这里您可以找到创建自己的 [blank] 列表问题的完整解决方案。通过在网站上搜索“numwidth”,您将找到一篇帖子,其中更详细地描述了此代码的作用。

相关内容