가장 큰 레이블의 너비를 기준으로 \enumerate의 \leftmargin 변경

가장 큰 레이블의 너비를 기준으로 \enumerate의 \leftmargin 변경

MWE는 다음과 같습니다.

\documentclass{article}
\usepackage{enumitem}
\usepackage{lipsum}

\begin{document}

\begin{enumerate}[leftmargin=1.5cm, font=\bfseries, labelsep=1em]
    \item[1-1.*] Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut 
    purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur 
    dictum gravida mauris. 
    \item[1-2.] Nam arcu libero, nonummy eget, consectetuer id, vulputate a,
    magna. Donec vehicula augue eu neque. Pellen- tesque habitant morbi tristique 
    senectus et netus et malesuada fames ac turpis egestas. Mauris ut leo. Cras 
    viverra metus rhoncus sem. 
    \begin{enumerate}[leftmargin=1.5cm, label=(\alph*)]
        \item Nulla et lectus vestibulum urna fringilla ultrices. Phasellus eu 
    tellus sit amet tortor gravida placerat.
        \item Integer sapien est, iaculis in, pretium quis, viverra ac, nunc. 
    Praesent eget sem vel leo ultrices bibendum. Aenean faucibus. 
    \end{enumerate}
    \item[1-12.*] Morbi dolor nulla, malesuada eu, pulvinar at, mollis ac, 
    nulla. Curabitur auc- tor semper nulla. Donec varius orci eget risus.
\end{enumerate}

\end{document}

모든 것이 그대로 정렬되도록 만드는 방법이 있는지 궁금합니다. 그런데 가장 큰 숫자(이 경우 1-12.*)가 여백과 왼쪽으로 정렬되고 다른 모든 항목은 이를 기준으로 정렬됩니다. . 또한 메인 목록의 텍스트(숫자 아님) 시작 부분부터 하위 목록 (a), (b) 등을 들여쓰기할 수 있기를 원합니다.

답변1

widest=다음은 키를 사용하는 솔루션입니다 enumitem.

\documentclass{article}
\usepackage[showframe]{geometry}
\usepackage{enumitem}
\usepackage{lipsum}

\begin{document}

\begin{enumerate}[widest=\bfseries1-12.*, labelindent =-0.333em, font=\bfseries, labelsep = 1em, leftmargin = *]
  \item[1-1.*] Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut
        purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur
        dictum gravida mauris.
  \item[1-2.\hphantom{*}] Nam arcu libero, nonummy eget, consectetuer id, vulputate a,
        magna. Donec vehicula augue eu neque. Pellen- tesque habitant morbi tristique
        senectus et netus et malesuada fames ac turpis egestas. Mauris ut leo. Cras
        viverra metus rhoncus sem.
        \begin{enumerate}[wide = 0pt, align = left, label=(\alph*), leftmargin=*]%leftmargin=2em
          \item Nulla et lectus vestibulum urna fringilla ultrices. Phasellus eu
                tellus sit amet tortor gravida placerat.
          \item Integer sapien est, iaculis in, pretium quis, viverra ac, nunc.
                Praesent eget sem vel leo ultrices bibendum. Aenean faucibus.
        \end{enumerate}
  \item[1-12.*] Morbi dolor nulla, malesuada eu, pulvinar at, mollis ac,
        nulla. Curabitur auc- tor semper nulla. Donec varius orci eget risus.
\end{enumerate}

\end{document} 

여기에 이미지 설명을 입력하세요

답변2

첫 번째 수준에 대해 임의의 레이블을 입력하려는 것 같으므로 설명 목록을 사용하는 것이 더 나을 수 있습니다(calc 패키지를 사용하고 설명 목록 옵션에 가장 긴 레이블을 입력하십시오).

\documentclass{article}
\usepackage{enumitem}
\usepackage{lipsum}
\usepackage{calc}

\begin{document}
\begin{description}[leftmargin=!,labelwidth=\widthof{\bfseries 1-12.*}]
    \item[1-1.*] Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut 
    purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur 
    dictum gravida mauris. 
    \item[1-2.] Nam arcu libero, nonummy eget, consectetuer id, vulputate a,
    magna. Donec vehicula augue eu neque. Pellen- tesque habitant morbi tristique 
    senectus et netus et malesuada fames ac turpis egestas. Mauris ut leo. Cras 
    viverra metus rhoncus sem. 
    \begin{enumerate}[label=(\alph*)]
        \item Nulla et lectus vestibulum urna fringilla ultrices. Phasellus eu 
    tellus sit amet tortor gravida placerat.
        \item Integer sapien est, iaculis in, pretium quis, viverra ac, nunc. 
    Praesent eget sem vel leo ultrices bibendum. Aenean faucibus. 
    \end{enumerate}
    \item[1-12.*] Morbi dolor nulla, malesuada eu, pulvinar at, mollis ac, 
    nulla. Curabitur auc- tor semper nulla. Donec varius orci eget risus.
\end{description}

\end{document}

여기에 이미지 설명을 입력하세요

관련 정보