Control de sangría línea por línea con clase de memorias

Control de sangría línea por línea con clase de memorias

Tengo problemas para controlar la sangría de líneas individuales mientras mantengo la sangría francesa en cada nivel. Es un poco difícil para mí describirlo, así que creo que quedará más claro con una imagen:
Texto de ejemplo con sangría francesa dentro de líneas y sangría jerárquica entre líneas

Hay dos cosas que lo dificultan:

  1. Hay muchas colas largas, por lo que la sangría colgante es imprescindible.
  2. Hay muchos lugares donde la sangría jerárquica llega a 3 o 4 niveles, por lo que no es factible que todas las sangrías francesas acaben en el mismo lugar.

Lo más cerca que he estado es usando patverseen el verseentorno que viene con memoir, pero eso solo me permite compensar la primera línea de cada nueva porción sangrada; todo el texto ajustado se alinea de una manera que hace imposible sangrar dos o más veces:
Ejemplo de texto donde el texto se ajusta al segundo nivel de sangría

He considerado usar descriptionentornos anidados, pero quiero que el espacio entre líneas sea el mismo que el del texto normal. Probablemente podría solucionarse, pero parece un poco complicado de usar, así que quería saber si había algo mejor antes de intentar hacerlo funcionar.

Una última cosa: por ahora, planeo usar el memoirpaquete. Si eso hace que este esquema de sangría sea demasiado complicado de marcar, estoy dispuesto a dejarlo pasar, pero idealmente me gustaría una solución que funcione bien con memoir.

Respuesta1

Aquí hay una versión que simplemente usa un itemizeentorno con configuraciones mínimas creadas usando el enumitempaquete. No es necesario utilizar un descriptionentorno porque no tiene ninguna etiqueta, por lo que itemizees el más apropiado. Puedes jugar con la configuración como quieras para obtener el espacio que desees. Utilicé la noseptecla para eliminar todo el espaciado vertical de la lista y configuré el margen del nivel superior para que esté alineado con el resto del texto.

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

salida de código

información relacionada