30

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

87

use enumitem (I wrote enumerate)

4
  • 12
    @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
  • 7
    This is most likely the most useful not-the-answer-to-the-question post I've seen so far.
    – jthulhu
    Commented Dec 28, 2022 at 22:13
  • 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 at 18:06
  • 1
    @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 at 18:31
34

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
  • 11
    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.
    – AndréC
    Commented Dec 10, 2019 at 19:52

You must log in to answer this question.

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