
Considere uma prova matemática com uma longa distinção de maiúsculas e minúsculas aninhadas abrangendo várias 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
nele rende
Como nosso exemplo não mínimo abrange várias páginas (e algumas linhas são mais altas do que o normal devido a matrizes e divisões de maiúsculas e minúsculas dentro da matemática), o recuo não ajuda o leitor tanto quanto se todo o conteúdo estivesse em uma página.
Nossa solução atual é enumerar os casos hierarquicamente:
\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
nele rende
Alguma maneira gráfica melhor de representar a distinção de casos?
Nós precisamos
\setlistdepth{6}
? Embora eu veja isso em meu código não mínimo (provavelmente já foi útil), não consigo ver como isso ajuda aqui agora. Adicionar este comando produz o mesmo arquivo PDF até metadados.Em nossa solução, adicionar um salto após os pontos finais que encerram os nomes dos itens semânticos é complicado, exigindo macros separadas dependendo se o texto visível segue na mesma linha ou se o resto da linha está vazio. Além disso,
\deepEnumItemAndSkip{\ldots}stuff
e\deepEnumItemAndSkip{\ldots} stuff
produzem resultados diferentes (enquanto\item stuff
e\item stuff
produzem o mesmo resultado). Existe alguma maneira melhor de automatizar a adição condicional desse espaço horizontal?Na nossa solução, a margem esquerda para a profundidade 5 estava muito próxima da margem esquerda para a profundidade 4, e a margem esquerda para a profundidade 6 estava muito próxima da margem esquerda para a profundidade 5. Queríamos garantir que o aumento da margem esquerda da profundidade