
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 pdflatex
sobre él produce
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 pdflatex
sobre él produce
¿Alguna mejor forma gráfica de representar la distinción de casos?
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.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}stuff
y\deepEnumItemAndSkip{\ldots} stuff
produce resultados diferentes (mientras que\item stuff
y\item stuff
produce el mismo resultado). ¿Alguna forma mejor de automatizar la adición condicional de este espacio horizontal?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