根据最大标签的宽度更改 \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}

在此处输入图片描述

相关内容