1
\newlist{clause}{enumerate}{2}
\setlist[clause]{
  label*=\arabic*.,
  wide, labelwidth=2em, leftmargin=!
}

The wide option lets me remove indentation of sublists. The leftmargin option keeps my items' body flush left. But the leftmargin option seems to negate the wide option.

I want this effect:

1.    Top-level items should be the same indentation as sub-level ones.
1.1   Sub-level item labels are not indented.
1.2   I also want all item bodies to hang properly. Like long-content-in-between
      this.

MWE:

\documentclass[a4paper, oneside, 12pt, parskip=half]{scrartcl}

\usepackage{enumitem, lipsum}

\newlist{clause}{enumerate}{2}
\setlist[clause]{
  label*=\arabic*.,
  wide, labelwidth=2em
  %, leftmargin=!
}

\begin{document}

\begin{clause}
  \item Top-level
  \begin{clause}
    \item \lipsum[1]
    \item \lipsum[2]
  \end{clause}
\end{clause}

\end{document}

Accepted answer from @Bernard:

% No indents for clauses. Save space.
\newlist{clause}{enumerate}{2}

\setlist[clause] {
  label*=\arabic*.,
  wide, labelwidth=2em,
  leftmargin=!
}

\setlist[clause, 2]{
  align = left, leftmargin=0pt
}
1
  • please provide complete small document beginning with \documentclass{...} and ending with \end{document}, which show your problem.
    – Zarko
    Commented Feb 6, 2018 at 4:59

1 Answer 1

2

You have to use use a different configuration for lists at level 1 and at level 2:

\documentclass[a4paper, oneside, 12pt, parskip=half]{scrartcl}
\usepackage[showframe]{geometry}
\usepackage{enumitem, lipsum}

\newlist{clause}{enumerate}{2}
\setlist[clause, 1]{
label*=\arabic*.,
wide, labelwidth=2em,
leftmargin=!
}

\setlist[clause, 2]{
label*=\arabic*.,
labelwidth=2em, align = left,
leftmargin=0pt
}
\begin{document}

\begin{clause}
  \item Top-level
  \begin{clause}
    \item \lipsum[1]
    \item \lipsum[2]
  \end{clause}
\end{clause}

\end{document} 

enter image description here

You must log in to answer this question.