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?
5 Answers
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
.)
-
2
-
1@JohnMolokach See tex.stackexchange.com/questions/2291/… (look at top two answers at least). Jul 8, 2015 at 15:38
-
13@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. Jul 8, 2015 at 19:25 -
1Note that the level gets deeper when you are in an enumerate environment inside another enumerate environment. itemize environments do not count. So if you are inside an itemize environment you still use enumi and not enumii.– yannisFeb 11, 2020 at 20:05
-
5Be advised, that
\setcounter{enumi}{N}
will set the next item's value to N+1. So if you happen to end another enumeration with N being the last item and to start another enumeration with N+1, you want to set the counter to N-1 instead. Apr 28, 2020 at 9:32
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.
-
15I would just like to make explicit that the "resume" parameter causes the counter to continue from the previous "enumerate" environment. Jan 9, 2014 at 5:37
-
3To 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} Nov 16, 2016 at 7:16
-
4
-
1FYI:
enumitem
with\begin{enumerate}[resume]
is nice but not compatible with theparalist
package'scompactenum
environment.– orbeckstSep 6, 2019 at 17:27
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
?)
-
2
\addtocounter
is safer in that it ensures monotonicity when used mid-list.– equaegheMar 19, 2014 at 10:22 -
1
-
2
\addtocounter
works with 0
too:
\documentclass{article}
\begin{document}
\begin{enumerate}\addtocounter{enumi}{-1}
\item % starts with `0.`
\item % starts with `1.`
..
\end{enumerate}
\end{document}
-
1
Just to complete the answer of Jukka with a copy/pastable example:
\documentclass{article}
\usepackage{enumitem}
\begin{document}
\begin{enumerate}
\item Hello
\item I am
\end{enumerate}
\begin{enumerate}[resume]
\item a list
\item that continues
\end{enumerate}
\begin{enumerate}[start=42]
\item and go
\item beyond your hopes
\end{enumerate}
\end{document}
Note however that this solution is not compatible with beamer, while \setcounter{enumi}{3}
does work.