372

Sometimes, I want to have enumerate lists in LaTeX start at other than the first value (1, a, i, etc.) How can I make an enumerate list start at an arbitrary value?

447

You can change the counter named enumi, like this:

\begin{enumerate}
  \setcounter{enumi}{4}
  \item fifth element
\end{enumerate}

(If you have lists at deeper levels of nesting, the relevant counters are enumii, enumiii and enumiv.)

  • How do you start at (a) from the very beginning and not (1)? – John Molokach Jul 8 '15 at 15:23
  • @JohnMolokach See tex.stackexchange.com/questions/2291/… (look at top two answers at least). – ShreevatsaR Jul 8 '15 at 15:38
  • Thanks. I think for what I need, I'll just use \begin{enumerate} \begin{enumerate} lettered items \end{enumerate} numbered items \end{enumerate} – John Molokach Jul 8 '15 at 19:22
  • 6
    @JohnMolokach That will indent it an extra level, and make it look ugly. Better to do it right, e.g. simply \usepackage{enumerate} at the top and use \begin{enumerate}[(a)] etc. Anyway, it's up to you. This question was about starting at something other than the first index, e.g. starting at (e) instead of (a), but I can see how the title is ambiguous. – ShreevatsaR Jul 8 '15 at 19:25
  • If you want the first item to start at 0, you need to be sure to set the counter to -1. – Jonathan Geisler Sep 30 at 3:40
56

The enumitem package provides a simple solution to very many common problems that are related to minor tweaks of enumerate/itemize/description. In this case, you can use the start parameter. Also have a look at the resume parameter.

  • 9
    I would just like to make explicit that the "resume" parameter causes the counter to continue from the previous "enumerate" environment. – Austin Mohr Jan 9 '14 at 5:37
  • 1
    To be more explicit "resume"parameter causes the counter to continue from the previous "enumerate" environment in the current block. For example \begin{enumerate} \item 1 \end{enumerate} \begin{defn} \begin{enumerate} \item 1 \item 2 \end{enumerate} \end{defn} \begin{enumerate} \item This will be 2 \end{enumerate} – Dr. Dinesh J. Karia Nov 16 '16 at 7:16
  • 2
    For people looking for a MWE using resume you can find one here – codeaviator Oct 3 '17 at 12:14
  • FYI: enumitem with \begin{enumerate}[resume] is nice but not compatible with the paralist package's compactenum environment. – orbeckst Sep 6 at 17:27
36

If you only want to alter the starting value, the easiest way is:

\documentclass{article}

\begin{document}

\begin{enumerate}\addtocounter{enumi}{41}
  \item This item is numbered `42.'
    \begin{enumerate}\addtocounter{enumii}{5}% This cannot be more than 25
      \item This one is ``numbered'' `(f)'
    \end{enumerate}
\end{enumerate}

\end{document}

While you can have six layers of nested list environments (itemize, description, enumerate), you can have no more than 4 of one type. The counters enumi through enumiv control the index of each item's label. You can increment (as shown) or decrement (add a negative value) all 4 levels.

Note, though, that this won't be entirely arbitrary. Levels enumerated alphabetically cannot have items after an item labeled 'z.' (You could, however, add a negative amount to the appropriate counter to get it back to the `a' label.)

(Now that I see the other answer, I wonder why I always opt for the relative \addtocounter rather than the absolute \settocounter?)

  • 1
    \addtocounter is safer in that it ensures monotonicity when used mid-list. – equaeghe Mar 19 '14 at 10:22
  • Doesn't work with 0. – Vorac Feb 25 '18 at 16:32

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.