代码之家  ›  专栏  ›  技术社区  ›  c4757p

乳胶中列表的最大嵌套级别

  •  25
  • c4757p  · 技术社区  · 15 年前

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

    5 回复  |  直到 10 年前
        1
  •  5
  •   Norman Ramsey    15 年前

    您需要复制 \enumerate \itemize 从文件 latex.ltx 将代码从

      \ifnum \@itemdepth >\thr@@\@toodeep\else
    

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

    您还需要定义计数器 enumv ,控制序列 \labelitemv 以及一堆其他的东西来支撑深度5。

    注意:如果您想在.sty文件之外执行此操作,则需要用

    \makeatletter
    ....
    \makeatother
    

    总之,这是一个相当详细的工作,但如果你习惯于黑客乳胶,这是相当直接的。如果任务看起来太多,而且你没有时间学习,你可以尝试在这里或其他地方张贴一个赏金:—)

        2
  •  29
  •   Alex    12 年前

    使用Enumitem包的解决方案

    1. 如果没有安装enumitem.sty的版本3,则 download enumitem.sty manually 并将其放入项目的文件夹中。
    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 使用的乳胶比第3版旧。
    • 如果仍然出现“嵌套太深”错误,则对于所使用的列表类型,renewlist命令将丢失。
    • 如果得到“package enumitem error:undefined label.”,那么其中一个级别的标签没有用 \setlist[itemize,$LEVEL] ... 命令
        3
  •  14
  •   Nocia    13 年前

    您可以使用Enumitem包。在你只需要把你想要的深度放进去之后:

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

    您的列表最多可以有9个嵌套级别,很简单;-)

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

    希望有帮助!

        4
  •  3
  •   Sam Starling    12 年前

    您也可以使用 itemize-environment 在一个 enumerate-environment .

        5
  •  2
  •   D.Shawley    15 年前

    iirc,限制是默认情况下提供的枚举计数器数。我从来没有这样做过,但你可能想检查 LaTeX Wikibook 为了一些提示。上一次我不得不认真调整列表时,我又回到了使用基于 TeX for the Impatient .