Latex中列表的最大嵌套级别

时间:2009-12-20 14:19:32

标签: latex

有没有办法在Latex中增加列表的最大嵌套级别(枚举等)?我需要一个级别的五个级别,谷歌没有找到任何东西......

5 个答案:

答案 0 :(得分:29)

使用enumitem包的解决方案

  1. 如果您没有安装enumitem.sty的版本3,那么download enumitem.sty manually并将其放入项目的文件夹中。
  2. 对于逐项列表,请将以下内容添加到文档的前导码中:
  3. \usepackage{enumitem}
    \setlistdepth{9}
    
    \setlist[itemize,1]{label=$\bullet$}
    \setlist[itemize,2]{label=$\bullet$}
    \setlist[itemize,3]{label=$\bullet$}
    \setlist[itemize,4]{label=$\bullet$}
    \setlist[itemize,5]{label=$\bullet$}
    \setlist[itemize,6]{label=$\bullet$}
    \setlist[itemize,7]{label=$\bullet$}
    \setlist[itemize,8]{label=$\bullet$}
    \setlist[itemize,9]{label=$\bullet$}
    
    \renewlist{itemize}{itemize}{9}
    

    对于其他列表类型,必须进行调整。

    疑难解答帮助

    • 如果你得到“!未定义的控制序列。\ setlistdepth”,LaTeX使用的版本enumitem.sty早于版本3.
    • 如果仍然出现“Too deep nested”错误,则表示您使用的列表类型缺少renewlist命令
    • 如果您收到“Package enumitem Error:Undefined label。”,则其中一个级别的标签未使用\setlist[itemize,$LEVEL] ...命令进行定义

答案 1 :(得分:14)

您可以使用enumitem包。在您需要放置所需的深度级别之后:

\usepackage{enumitem}
...
\setlistdepth{9}

您的列表最多可以有9个嵌套级别,方便; - )

此功能在3.0以后的软件包中可用(例如Ubuntu安装了2.2)。如果您有旧版本,只需将其替换为: http://ctan.mackichan.com/macros/latex/contrib/enumitem/enumitem.sty

希望有所帮助!

答案 2 :(得分:5)

您需要从文件\enumerate复制\itemizelatex.ltx的定义,然后从

更改代码
  \ifnum \@itemdepth >\thr@@\@toodeep\else

  \ifnum \@itemdepth >4\@toodeep\else

你还需要定义计数器enumv,控制序列\labelitemv以及其他一些支持深度为5的东西。

N.B。如果您想在.sty文件之外执行此操作,则需要通过

包围新定义
\makeatletter
....
\makeatother

总而言之,这是一项相当多的细节工作,但如果你习惯于攻击LaTeX,那就相当简单了。如果任务看起来太多,而你没有时间学习,你可以尝试在这里或其他地方发布奖金: - )

答案 3 :(得分:3)

您也可以在itemize-environment内使用enumerate-environment

答案 4 :(得分:2)

IIRC,限制在于默认提供的枚举计数器的数量。我从来没有这样做,但你可能想查看LaTeX Wikibook的一些提示。我最后一次认真调整列表时,我最终回归到使用基于TeX for the Impatient中某些内容的直接TeX宏。