¿Cómo componer enumeraciones profundas y de varias páginas de forma agradable y rápida?

¿Cómo componer enumeraciones profundas y de varias páginas de forma agradable y rápida?

Considere una prueba matemática con una larga distinción de casos anidados que abarca varias páginas:

\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}

Correr pdflatexsobre él produce

salida con elementos de casos no enumerados

Como nuestro ejemplo no mínimo abarca varias páginas (y algunas líneas son más altas de lo habitual debido a matrices y divisiones de casos dentro de las matemáticas), la sangría no ayuda al lector tanto como si todo el contenido estuviera en una sola página.

Nuestra solución actual es enumerar los casos jerárquicamente:

\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}

Correr pdflatexsobre él produce

salida con elementos de casos enumerados

  1. ¿Alguna mejor forma gráfica de representar la distinción de casos?

  2. Necesitamos \setlistdepth{6}? Aunque lo veo en mi código no mínimo (por lo que probablemente fue útil alguna vez), no veo cómo ayuda aquí ahora. Agregar este comando produce el mismo archivo PDF hasta los metadatos.

  3. En nuestra solución, agregar un salto después de los puntos que terminan los nombres de elementos semánticos es engorroso y requiere macros separadas dependiendo de si el texto visible sigue en la misma línea o si el resto de la línea está vacío. Además, \deepEnumItemAndSkip{\ldots}stuffy \deepEnumItemAndSkip{\ldots} stuffproduce resultados diferentes (mientras que \item stuffy \item stuffproduce el mismo resultado). ¿Alguna forma mejor de automatizar la adición condicional de este espacio horizontal?

  4. En nuestra solución, el margen izquierdo para la profundidad 5 estaba demasiado cerca del margen izquierdo para la profundidad 4, y el margen izquierdo para la profundidad 6 estaba demasiado cerca del margen izquierdo para la profundidad 5. Queríamos asegurarnos de que el aumento del margen izquierdo desde la profundidad

información relacionada