회고록 클래스를 이용한 한 줄씩 들여쓰기 제어

회고록 클래스를 이용한 한 줄씩 들여쓰기 제어

각 수준에서 들여쓰기를 유지하면서 개별 줄의 들여쓰기를 제어하는 ​​데 문제가 있습니다. 말로 설명하기가 조금 어렵기 때문에 사진으로 보면 더 이해하기 쉬울 것 같습니다.
줄 내 들여쓰기 및 줄 전체에 계층적 들여쓰기가 있는 예제 텍스트

어려운 점은 두 가지입니다.

  1. 줄이 너무 길어서 들여쓰기는 필수
  2. 계층적 들여쓰기가 3~4단계로 들어가는 곳이 많기 때문에 모든 들여쓰기가 같은 위치에 있는 것은 불가능합니다.

내가 얻은 가장 가까운 방법은 와 함께 제공되는 환경 patverse에서 사용하는 것입니다 . 그러나 이는 새로 들여쓰기된 각 부분의 첫 번째 줄만 오프셋할 수 있습니다. 줄 바꿈된 모든 텍스트는 두 번 이상 들여쓰기가 불가능하도록 정렬됩니다.versememoir
텍스트가 두 번째 들여쓰기 수준으로 줄바꿈되는 텍스트 예

중첩된 환경을 사용하는 것을 고려했지만 description줄 간격이 일반 텍스트와 동일해지기를 원합니다. 아마도 고칠 수도 있겠지만, 실제로 사용하기에는 다소 번거로운 것 같아서, 작동시키기 전에 더 나은 것이 있는지 알고 싶었습니다.

마지막으로, 지금은 패키지를 사용할 계획입니다 memoir. 이로 인해 이 들여쓰기 체계가 마크업하기가 지나치게 복잡해지면 기꺼이 놓아주겠지만 이상적으로는 memoir.

답변1

itemize다음은 패키지 를 사용하여 만든 최소한의 설정으로 환경을 사용하는 버전입니다 enumitem. description레이블이 전혀 없기 때문에 환경을 사용할 필요가 없으므로 itemize가장 적합합니다. 원하는 간격을 얻기 위해 원하는대로 설정을 가지고 놀 수 있습니다. 나는 nosep키를 사용하여 목록에서 모든 세로 간격을 제거하고 최상위 여백을 나머지 텍스트와 동일하게 설정했습니다.

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

코드 출력

관련 정보