35

Is there an advantage to using the enumerate package over the enumitem package or vice versa? I use enumitem and my co-worker uses enumerate, and we're trying to decide which should be used when we collaborate.

0

2 Answers 2

105

use enumitem (I wrote enumerate)

5
  • 13
    @Tvde1 well enumitem has a full enumerate emulation so it does everything enumerate does plus a lot more and has the benefit of nearly 30 years of tex development, the basic code of enumerate hasn't changed since 1991. Commented Dec 11, 2019 at 17:07
  • 9
    This is most likely the most useful not-the-answer-to-the-question post I've seen so far. Commented Dec 28, 2022 at 22:13
  • 1
    This sounds as if you should deprecate enumerate. If I had known earlier that upgrading to enumitem is an official recommendation (which suggests better overall support and compatibility with other packages), I would have saved myself a few years of dealing with enumerate. ¢2 Commented Apr 18, 2024 at 18:06
  • 2
    @ChristophThiede it's difficult to officially defer to a package over which you have no control no way of fixing bugs or anything else, but undoubtedly enumitem does a lot more than enumerate and for example the latex companion, even 2nd edition from 15 years ago would say that. Commented Apr 18, 2024 at 18:31
  • 1
    @John Votes are an important rating mechanism of the site - please don't encourage abuse just to get to some arbitrary numbers. Commented May 10 at 14:41
38

The enumitem package is far more flexible when compared with enumerate. The latter provides an optional argument where you can specify the item number format using a generic representation while the former provides a key-value interface where one can specify number format representation in addition to a host of other list-related settings (or perform these settings globally). Here are two examples:

  • Parenthesized lowercase roman numerals:

     % enumerate interface \begin{enumerate}[(i)] % Your list here \end{enumerate} % enumitem interface \begin{enumerate}[label = (\roman*)] % Your list here \end{enumerate} 
  • Bracketed uppercase alphabetic characters

     % enumerate interface \begin{enumerate}[{[A]}] % Your list here \end{enumerate} % enumitem interface \begin{enumerate}[label = {[\Alph*]}] % Your list here \end{enumerate} 

The interface provided by enumitem is more intuitive and verbose (you specify label explicitly, including the counter representation format \Alph rather than A). Additionally, enumitem provides a host of other options, including

  • separate label and ref keys for alternative references to labels,
  • spacing adjustments (vertical and horizontal),
  • in-line list enumeration,
  • list continuation,
  • new list style generation,
  • ...

In short, enumitem provides a modern, user-friendly, key-value interface to many list manipulations, while enumerate is only geared towards short-hand list representation.

1
  • 12
    You forgot to mention that the shortlabels option \usepackage[shortlabels]{enumitem} allows you to use the same syntax as the enumerate package, which makes its use much less verbose and much more pleasant. Commented Dec 10, 2019 at 19:52

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.