
Рассмотрим математическое доказательство с длинным вложенным различием случаев, охватывающим несколько страниц:
\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
на нем дает
Есть ли лучший графический способ представить различие между случаями?
Нужно ли нам
\setlistdepth{6}
? Хотя я вижу это в моем неминимальном коде (так что, возможно, это было полезно когда-то), я не вижу, как это помогает здесь сейчас. Добавление этой команды дает тот же файл PDF вплоть до метаданных.В нашем решении добавление пропуска после точек, завершающих имена семантических элементов, является громоздким, требующим отдельных макросов в зависимости от того, следует ли видимый текст на той же строке или остальная часть строки пуста. Более того,
\deepEnumItemAndSkip{\ldots}stuff
и\deepEnumItemAndSkip{\ldots} stuff
дают разные результаты (тогда как\item stuff
и\item stuff
дают тот же результат). Есть ли лучший способ автоматизировать условное добавление этого горизонтального пространства?В нашем решении левое поле для глубины 5 было слишком близко к левому полю для глубины 4, а левое поле для глубины 6 было слишком близко к левому полю для глубины 5. Мы хотели убедиться, что увеличение левого поля от глубины