Zeilenweise Einrückungssteuerung mit der Memoir-Klasse

Zeilenweise Einrückungssteuerung mit der Memoir-Klasse

Ich habe Probleme, die Einrückung einzelner Zeilen zu steuern und gleichzeitig die hängende Einrückung auf jeder Ebene beizubehalten. Es ist ein bisschen schwer für mich, das zu beschreiben, daher denke ich, dass es mit einem Bild am deutlichsten wird:
Beispieltext mit hängendem Einzug innerhalb der Zeilen und hierarchischem Einzug über die Zeilen hinweg

Zwei Dinge erschweren das Ganze:

  1. Es gibt viele lange Zeilen, daher ist ein hängender Einzug ein Muss
  2. An vielen Stellen reicht die hierarchische Einrückung über drei oder vier Ebenen, sodass es nicht möglich ist, dass alle hängenden Einrückungen an der gleichen Stelle landen.

Am nächsten komme ich dem Ergebnis, indem ich patversedie versemitgelieferte Umgebung verwende memoir. Damit kann ich aber nur die erste Zeile jedes neuen Einzugs versetzen. Der gesamte umbrochene Text wird so ausgerichtet, dass er nicht zweimal oder öfter eingerückt werden kann:
Textbeispiel, bei dem der Text bis zur zweiten Einrückungsebene umbrochen wird

Ich habe überlegt, verschachtelte descriptionUmgebungen zu verwenden, aber ich möchte, dass der Zeilenabstand der gleiche ist wie bei normalem Text. Das ließe sich wahrscheinlich beheben, aber die tatsächliche Verwendung scheint ein bisschen umständlich, also wollte ich wissen, ob es etwas Besseres gibt, bevor ich versuche, es zum Laufen zu bringen.

Eine letzte Sache: Im Moment plane ich, das memoirPaket zu verwenden. Wenn dadurch die Markierung dieses Einrückungsschemas zu kompliziert wird, bin ich bereit, darauf zu verzichten, aber im Idealfall hätte ich gerne eine Lösung, die gut mit funktioniert memoir.

Antwort1

Hier ist eine Version, die nur eine itemizeUmgebung mit minimalen Einstellungen verwendet, die mit dem enumitemPaket erstellt wurde. Es ist nicht nötig, eine descriptionUmgebung zu verwenden, da Sie überhaupt kein Etikett haben, daher itemizeist dies am besten geeignet. Sie können mit den Einstellungen beliebig herumspielen, um den gewünschten Abstand zu erhalten. Ich habe den nosepSchlüssel verwendet, um alle vertikalen Abstände aus der Liste zu entfernen, und den Rand der obersten Ebene so eingestellt, dass er mit dem Rest des Textes bündig abschließt.

\documentclass{memoir}
\usepackage{enumitem}
\newlist{nolabel}{itemize}{4}
\setlist[nolabel]{label={},nosep,labelwidth=0pt,labelsep=0pt}
\setlist*[nolabel,1]{leftmargin=*}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\begin{nolabel}
\item This is a line at the first level of the list. Here’s how it wraps when the line is very long:
\begin{nolabel}
    \item This is a line at the second level of the list.
    \item This is another line at the second level.
    \begin{nolabel}
        \item This is a third level item.
        \item This a another third level item.
    \end{nolabel}
    \item This is a third second level item.
    \end{nolabel}
\item This is a final first level item.
\end{nolabel}
\lipsum[1]
\end{document}

Ausgabe des Codes

verwandte Informationen