38

I am looking for advice on which of these packages to use? Under what circumstances would paralist be preferred over enumitem?

lockstep
  • 250,273
Peter Grill
  • 223,288

2 Answers2

36

I normaly use enumitem as a standard package in my documents. A quick comparison of the two in the following list: (e)-enumitem and (p)-paralist

  • In paragraph enumeration (p)
  • Enumeration as paragraph (p)
  • Resume enumeration (e)
  • Set defaults (e,p)
  • Compact lists (e,p)
  • Keyvalue args (e)
  • Change labels (e,p)
  • Change refs (e)
  • Legal or stacked list type labels (e,p)
  • Trivlist correction (e)

Enumitem is the more advanced package, for example the trivlist correction leaves the spacing environmens such as quote unchanged and the keyvalue arguments makes on the fly changes to the lables and refs easy. A big plus point is also the resuming of enumerate counters after a break.

The strong point of paralist is the in-paragraph enumerations, but it is something I do not use often.

Danie Els
  • 19,694
22

paralist also provides "compact" variants of the standard lists. You can emulate them in enumitem using the following:

\newlist{compactitem}{itemize}{3}
\setlist[compactitem]{topsep=0pt,partopsep=0pt,itemsep=0pt,parsep=0pt}
\setlist[compactitem,1]{label=\textbullet}
\setlist[compactitem,2]{label=---}
\setlist[compactitem,3]{label=*}

\newlist{compactdesc}{description}{3}
\setlist[compactdesc]{topsep=0pt,partopsep=0pt,itemsep=0pt,parsep=0pt}

\newlist{compactenum}{enumerate}{3}
\setlist[compactenum]{topsep=0pt,partopsep=0pt,itemsep=0pt,parsep=0pt}
\setlist[compactenum,1]{label=\arabic*}
\setlist[compactenum,2]{label=\alph*}
\setlist[compactenum,3]{label=\roman*}

Edit: Thanks to @Alan for pointing out my misreading. enumitem permits nesting lists up to 6 deep, at least for newly created enumerate-like lists. (That removes any quibble I had about enumitem versus native lists, since I think native lists don't nest by default that deep :-p)

I haven't figured out enumitem equivalents for the in-paragraph lists, yet, but as another answer points out, such support is being added to enumitem v3.0.

Andrew Swann
  • 95,762
Ben Lerner
  • 7,082
  • The enumitem package allows you to construct lists of arbitrary depth: \newlist{<listname>}{<type>}{<maxdepth>}. – Alan Munn May 17 '11 at 17:48
  • At least in v2.1, there's a check on maxdepth, though: \ifnum#1>#3\relax \@toodeep \else ... \fi, where #3 is the maxdepth. And there's a comment saying that for itemize and enumerate, #3 is \thr@@. I thought that meant I'd get stopped after nesting 3 deep...but maybe I'm misreading macro parameters again... – Ben Lerner May 17 '11 at 18:04
  • Well for newly created enumerate lists in v.2.2, the limit seems to be 6 (7 gives an error, so it's not quite arbitrary depth). I won't post the code in the comment. :-) BTW, if you add @Alan to your comment I'll be alerted to it. – Alan Munn May 17 '11 at 19:32
  • Here I found the solution to a problem I experienced in beamer. Compactitem from paralist did not show the bullets. – Louis Mar 12 '13 at 20:52