Изменение \leftmargin в \enumerate в зависимости от ширины самой большой метки

Изменение \leftmargin в \enumerate в зависимости от ширины самой большой метки

Вот 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}

введите описание изображения здесь

Связанный контент