19

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.

28

use enumitem (I wrote enumerate)

  • 5
    @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. – David Carlisle Dec 11 '19 at 17:07
24

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 latter provides a key-value interface. 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.

  • 4
    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 Dec 10 '19 at 19:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.