如何快速美观地排版深层多页枚举?

如何快速美观地排版深层多页枚举?

考虑一个数学证明,其中有一个跨越多页的嵌套案例区别:

\documentclass{article}
\pagestyle{empty}
\usepackage{enumitem}%\setlistdepth{6}%% do we need this?
\begin{document}
\setlist[description]{nosep,font=\normalfont,style=sameline}
\begin{description}
\item[Case \(i=0\).] 5 lines.
\item[Case \(i=1\).] 3 lines.
  \begin{description}
  \item[Case \(a0t0a1\).] 1 line
    \begin{description}
    \item[Case \ldots.] 6 lines
    \item[Case \ldots.]\strut
      \begin{description}
      \item[Case \ldots.] 9 lines
      \item[Case \ldots.] 11 lines
        \begin{description}
        \item [Case \ldots.] 6 lines
        \item [Case \ldots.] 7 lines
        \item [Case \ldots.] 5 lines
        \item [Case \ldots.] 6 lines
        \end{description}
      \end{description}
    \end{description}
  \item[Case \(a0n0a1\).] 2 lines
    \begin{description}
    \item[Case \ldots.] 4 lines
    \item[Case \ldots.] 3 lines
      \begin{description}
      \item[Case \ldots.] 3 lines
      \item[Case \ldots.] 5 lines
      \item[Case \ldots.] 3 lines
        \begin{description}
        \item[Case \ldots.] 4 lines
        \item[Case \ldots.] 5 lines
          \begin{description}
          \item[Case \ldots.] 5 lines
          \item[Case \ldots.] 6 lines
          \item[None of the two previous subcases.] 10 lines
          \end{description}
        \end{description}
      \end{description}
    \end{description}
  \end{description}
\item[Case \(2\le i \le n{-}1\).] 2 lines
  \begin{description}
  \item[Case \(c\neq 0\).] 1 line
    \begin{description}
    \item[Case \ldots.] 7 lines
    \item[Case \ldots.]\strut
      \begin{description}
      \item[Case \ldots.] 2 lines
        \begin{description}
        \item[Case \ldots.] 6 lines
        \item[Case \ldots.]\strut
          \begin{description}
          \item[Case \ldots.] 7 lines
          \item[Case \ldots.] 15 lines
          \end{description}
        \end{description}
      \item[Case \ldots.] 7 lines
      \end{description}
    \end{description}
  \item[Case \(c=0\).] 6 lines
  \end{description}
\item[Case \(i=n\).] 2 lines
\end{description}
\end{document}

运行pdflatex结果

带有非枚举案例项的输出

由于我们的非最小示例跨越多页(并且由于数学中的矩阵和案例拆分,有些行比平时高),缩进对读者的帮助不如将整个内容放在一页上那么大。

我们当前的解决方案是按层次枚举案例:

\documentclass{article}
\pagestyle{empty}
\usepackage{enumitem}
% \setlistdepth{6}%% do we need this?
\newlength{\origlabelsep}
\setlength{\origlabelsep}{\labelsep}
\newlist{deepEnum}{enumerate}{6}
\setlist[deepEnum,1]{nosep,font=\normalfont,style=sameline,label*=Case \arabic*,labelsep=0pt}
\setlist[deepEnum,2,3,4,5,6]{nosep,font=\normalfont,style=sameline,label*=.\arabic*}
\newcommand{\deepEnumItem}[1]{\item: #1.}
\newcommand{\deepEnumItemAndSkip}[1]{\item: #1.\hskip\origlabelsep\relax}
\begin{document}
\setlength{\leftmarginv}{16pt}%% any non ad-hoc number?
\setlength{\leftmarginvi}{15pt}%% any non ad-hoc number?
\begin{deepEnum}
  \deepEnumItemAndSkip{\(i=0\)}5 lines.
  \deepEnumItemAndSkip{\(i=1\)}3 lines.
  \begin{deepEnum}
    \deepEnumItemAndSkip{\(a0t0a1\)}1 line
    \begin{deepEnum}
      \deepEnumItemAndSkip{\ldots}6 lines
      \deepEnumItem{\ldots}\strut
      \begin{deepEnum}
        \deepEnumItemAndSkip{\ldots}9 lines
        \deepEnumItemAndSkip{\ldots}11 lines
        \begin{deepEnum}
          \deepEnumItemAndSkip{\ldots}6 lines
          \deepEnumItemAndSkip{\ldots}7 lines
          \deepEnumItemAndSkip{\ldots}5 lines
          \deepEnumItemAndSkip{\ldots}6 lines
        \end{deepEnum}
      \end{deepEnum}
    \end{deepEnum}
    \deepEnumItemAndSkip{\(a0n0a1\)}2 lines
    \begin{deepEnum}
      \deepEnumItemAndSkip{\ldots}4 lines
      \deepEnumItemAndSkip{\ldots}3 lines
      \begin{deepEnum}
        \deepEnumItemAndSkip{\ldots}3 lines
        \deepEnumItemAndSkip{\ldots}5 lines
        \deepEnumItemAndSkip{\ldots}3 lines
        \begin{deepEnum}
          \deepEnumItemAndSkip{\ldots}4 lines
          \deepEnumItemAndSkip{\ldots}5 lines
          \begin{deepEnum}
            \deepEnumItemAndSkip{\ldots}5 lines
            \deepEnumItemAndSkip{\ldots}6 lines
            \deepEnumItemAndSkip{None of the two previous subcases}10 lines
          \end{deepEnum}
        \end{deepEnum}
      \end{deepEnum}
    \end{deepEnum}
  \end{deepEnum}
  \deepEnumItemAndSkip{\(2\le i \le n{-}1\)}2 lines
  \begin{deepEnum}
    \deepEnumItemAndSkip{\(c\neq 0\)}1 line
    \begin{deepEnum}
      \deepEnumItemAndSkip{\ldots}7 lines
    \item: \ldots.\strut
      \begin{deepEnum}
        \deepEnumItemAndSkip{\ldots}2 lines
        \begin{deepEnum}
          \deepEnumItemAndSkip{\ldots}6 lines
          \deepEnumItemAndSkip{\ldots}\strut
          \begin{deepEnum}
            \deepEnumItemAndSkip{\ldots}7 lines
            \deepEnumItemAndSkip{\ldots}15 lines
          \end{deepEnum}
        \end{deepEnum}
        \deepEnumItemAndSkip{\ldots}7 lines
      \end{deepEnum}
    \end{deepEnum}
    \deepEnumItemAndSkip{\(c=0\)}6 lines
  \end{deepEnum}
  \deepEnumItemAndSkip{\(i=n\)}2 lines
\end{deepEnum}
\end{document}

运行pdflatex结果

带枚举案例项的输出

  1. 有没有更好的图形方式来表示大小写区别?

  2. 我们需要吗\setlistdepth{6}?虽然我在非最小代码中看到了它(所以它可能曾经有用过),但现在我看不出它在这里有什么用处。添加此命令会产生相同的 PDF 文件,直到元数据。

  3. 在我们的解决方案中,在句号结束语义项名称后添加跳过非常麻烦,需要根据可见文本是否在同一行上跟随或行的其余部分是否为空来使用单独的宏。此外,\deepEnumItemAndSkip{\ldots}stuff\deepEnumItemAndSkip{\ldots} stuff会产生不同的结果(而\item stuff\item stuff会产生相同的结果)。有没有更好的方法可以自动有条件地添加这个水平空格?

  4. 在我们的解决方案中,深度 5 的左边距与深度 4 的左边距太近,深度 6 的左边距与深度 5 的左边距太近。我们希望确保深度左边距的增加

相关内容