9

I'm trying to create a styling for certain numbered lists where they are formatted as normal paragraphs; i.e., a paragraph indent before the label, with all subsequent lines of each item unindented. This matches the Chicago Manual of Style's recommendations for vertical lists in paragraph style (section 6.128):

When items in a numbered list consist of very long sentences, or of several sentences, and the list does not required typographic prominence, the items may be set in regular text style as numbered paragraphs, with only the first line indented, punctuated as normal prose.

I'm using the enumitem package for (1) style numerals and other things. After checking out the excellent breakdown of list-related widths in the memoir manual (esp. figure 8.2), I've got it working, but only by changing what I think is actually correct. (It's amazing how good the memoir manual is as a reference for normal LaTeX!)

What I think should work is:

\begin{enumerate}[label=(\arabic*),leftmargin=0pt,itemindent=\dimexpr\parindent+\labelwidth+\labelsep,listparindent=\parindent]

(See this other question for use of \dimexpr.)

That is, have a zero left margin, and then set \itemindent (first line of item indent) so that it represents a paragraph indent plus room for the label and its separator.

However, this actually adds slightly too much space for the first lines. If I get rid of the \labelsep in the itemindent sum, it works (or at least looks aligned properly visually).

\begin{enumerate}[label=(\arabic*),leftmargin=0pt,itemindent=\dimexpr\parindent+\labelwidth,listparindent=\parindent]

Can anyone explain what's going on here? I suspect it's something to do with how enumitem is using labelwidth internally... Also, let me know if you think this isn't the correct interpretation of the Chicago wording!

EDIT: If you want a full LaTeX document to see the issue, here's one I prepared earlier (Blue Peter style):

\documentclass[11pt,a4paper,twoside,notitlepage]{article}

\usepackage{enumitem}

\begin{document}

\section{Enumerate Layout Tests}

First \emph{with} use of {\textbackslash}labelsep in the itemindent sum:

\begin{enumerate}[label=(\arabic*),leftmargin=0pt,itemindent=\dimexpr\parindent+\labelwidth+\labelsep,listparindent=\parindent]

\item My first long long long
long long long long long
long long long long long
long long long long long
long long long long long
long long long long long
long long long long long item.

With a second paragraph!

\item My second long long long
long long long long long
long long long long long
long long long long long
long long long long long
long long long long long
long long long long long item.

\end{enumerate}

And a second paragraph to show the standard paragraph indent position. But with lots of text
text text text text text
text text text text text
text text text text text
text text text text text
text text text text text
to check multi-line paragraphs.

OK, now \emph{without} use of {\textbackslash}labelsep in the itemindent sum:

\begin{enumerate}[label=(\arabic*),leftmargin=0pt,itemindent=\dimexpr\parindent+\labelwidth,listparindent=\parindent]

\item My first long long long
long long long long long
long long long long long
long long long long long
long long long long long
long long long long long
long long long long long item.

With a second paragraph!

\item My second long long long
long long long long long
long long long long long
long long long long long
long long long long long
long long long long long
long long long long long item.

\end{enumerate}

\end{document}

2 Answers 2

8

lockstep's answer is the right one if you're using (or able to use) V3+ of the enumitem package (i.e., use the wide argument). He also highlights the root cause of my issue in his comments. Still, the correct answer to my question is really a solution to my pre-V3 attempt, which I've worked through myself. (Many thanks to lockstep for the pointers.)

I drew up the image below to help visualise the subtlety of the lengths, where \labelsep is 'independent' of \itemindent. The enumitem manual (even the V2.2 version) does discuss this.

Visualising list lengths

(Of course lengths can be negative so this isn't the full story.)

The solution is complicated by the dependencies of one length on the others. In V3, enumitem allows you to control this by setting which the dependent length is (using a \<length>=! syntax); see the manual. To achieve the same as their wide option in V2.2, I reused the settings that underlie it (spelt out in the manual), but manually calculated the dependent length. We end up with this:

\begin{enumerate}[label=(\arabic*),align=left,leftmargin=0pt,labelindent=\parindent,%
labelwidth=0pt,labelsep=1.8em,listparindent=\parindent,%
itemindent=\dimexpr\labelindent+\labelwidth+\labelsep-\leftmargin]

Note the slight hack where I manually set \labelsep; 1.8em looks to almost exactly match the separation 'normally' applied.

To use this in a macro style, I used the environ package, since it doesn't seem possible for a normal \newcommand macro to be expanded for the enumerate environment's arguments. (Please comment if this is possible with a normal macro.)

% Allow environments to be defined that have their contents inserted into 
% another environment (within a macro).
\usepackage{environ}

\NewEnviron{parStyleList}{
\begin{enumerate}[label=(\arabic*),align=left,leftmargin=0pt,labelindent=\parindent,%
labelwidth=0pt,labelsep=1.8em,listparindent=\parindent,%
itemindent=\dimexpr\labelindent+\labelwidth+\labelsep-\leftmargin]%
\BODY\end{enumerate}} 

Then use as:

\begin{parStyleList}
\item Blah
\item Blah
\end{parStyleList}
1
  • So a different expression is required if labelindent + labelwidth >leftmargin and different formula when labelindent + labelwidth <leftmargin
    – js bibra
    Nov 8, 2019 at 1:31
7

Since version 3 of enumitem you may simply use the wide option to create lists that resemble ordinary paragraphs. See section 3.9 of the manual for details.

\documentclass{article}

\usepackage{enumitem}
\setlist[enumerate]{label=(\arabic*),wide,nosep}

\usepackage{lipsum}

\begin{document}

\lipsum[1]

\begin{enumerate}
\item \lipsum[1-2]
\end{enumerate}

\end{document}

enter image description here

7
  • Ah. This is new in V3 of enumitem and I'm using V2.2 (from the default Ubuntu 12.04 package installation). I'll upgrade... Plus my downloaded manual matched this; I got a bit confused being asked to refer to 'nonexistent' section 3.9 until it clicked :-) Nov 27, 2012 at 16:01
  • Having said this, I'd still like to know why my solution wasn't working properly. Nov 27, 2012 at 16:01
  • @monsieurRigsby I think the following quote from section 3.3 of the manual provides the answer: "Remember labelsep spans part of leftmargin [...] This is often somewhat confusing[...]"
    – lockstep
    Nov 27, 2012 at 16:14
  • 1
    Note that lockstep edited his answer to make clear it was for V3+, so my first comment isn't the didn't-read-the-answer idiocy it appears as! Actually, are there any meta questions on the etiquette of this kind of thing? I see lots of questions where the comments no longer make sense because of these correcting edits (and, as in this case, they can sometimes give a misleading impression of the exchange). Of course lockstep is making the answer better which is the most important thing, but an explicit comment to accompany the edit would seem one way to preserve the sense of the 'conversation'. Nov 27, 2012 at 16:21
  • Aha, good spot with section 3.3 of the new manual. Happy to accept the answer now (but will wait a bit just to check for any others). Hope my 'etiquette' query didn't come across as too impolite... Nov 27, 2012 at 16:23

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .