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.
2 Answers
use enumitem (I wrote enumerate)
- 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.David Carlisle– David Carlisle2019-12-11 17:07:26 +00:00Commented Dec 11, 2019 at 17:07
- 9This is most likely the most useful not-the-answer-to-the-question post I've seen so far.jthulhu– jthulhu2022-12-28 22:13:03 +00:00Commented Dec 28, 2022 at 22:13
- 1This sounds as if you should deprecate
enumerate. If I had known earlier that upgrading toenumitemis an official recommendation (which suggests better overall support and compatibility with other packages), I would have saved myself a few years of dealing withenumerate. ¢2Christoph Thiede– Christoph Thiede2024-04-18 18:06:34 +00:00Commented 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.David Carlisle– David Carlisle2024-04-18 18:31:58 +00:00Commented 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.samcarter_is_at_topanswers.xyz– samcarter_is_at_topanswers.xyz2025-05-10 14:41:34 +00:00Commented May 10 at 14:41
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
labelandrefkeys 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.
- 12You forgot to mention that the
shortlabelsoption\usepackage[shortlabels]{enumitem}allows you to use the same syntax as theenumeratepackage, which makes its use much less verbose and much more pleasant.AndréC– AndréC2019-12-10 19:52:51 +00:00Commented Dec 10, 2019 at 19:52