Latex中列表的最大嵌套级别

c47*_*57p 26 latex

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

Ale*_*lex 29

解决方案使用enumitem包

  1. 如果您没有安装enumitem.sty的版本3,请手动下载enumitem.sty并将其放入项目的文件夹中.
  2. 对于逐项列表,请将以下内容添加到文档的前导中:
\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",那么enumitem.sty该LaTeX使用的版本早于版本3.
  • 如果仍然出现"Too deep nested"错误,则表示您使用的列表类型缺少renewlist命令
  • 如果你得到"Package enumitem Error:Undefined label.",那么其中一个级别的标签没有用\setlist[itemize,$LEVEL] ...命令定义


小智 14

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

\usepackage{enumitem}
...
\setlistdepth{9}
Run Code Online (Sandbox Code Playgroud)

并且您的列表最多可以有9个嵌套级别,很容易;-)

从3.0开始,这个功能在软件包中可用(例如Ubuntu安装了2.2).如果您有旧版本,请将其替换为:http: //ctan.mackichan.com/macros/latex/contrib/enumitem/enumitem.sty

希望有所帮助!

  • 对我不起作用。我复制了最近的 enumitem.sty 并可以调用 \setlistdepth{9} - 但我仍然收到“嵌套太深”错误。 (3认同)

Nor*_*sey 5

您需要复制文件的定义\enumerate\itemize从文件中latex.ltx更改代码

  \ifnum \@itemdepth >\thr@@\@toodeep\else
Run Code Online (Sandbox Code Playgroud)

  \ifnum \@itemdepth >4\@toodeep\else
Run Code Online (Sandbox Code Playgroud)

你还需要定义计数器enumv,控制序列\labelitemv和一堆其他东西以支持深度5.

注意如果您想在.sty文件之外执行此操作,则需要包围新定义

\makeatletter
....
\makeatother
Run Code Online (Sandbox Code Playgroud)

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