UK TeX FAQ -- question label interruptlist

### Interrupting enumerated lists

It's often convenient to have commentary text, 'outside' the list, between successive entries of a list. In the case of `itemize` lists this is no problem, since there's never anything to distinguish successive items, while in the case of `description` lists, the item labels are under the user's control so there's no automatic issue of continuity.

For `enumerate` lists, the labels are generated automatically, and are context-sensitive, so the context (in this case, the state of the enumeration counter) needs to be preserved.

The belt-and-braces approach is to remember the state of the enumeration in your own counter variable, and then restore it when restarting enumerate:

>     \newcounter{saveenum}
>      ...
>     \begin{enumerate}
>       ...
>       \setcounter{saveenum}{\value{enumi}}
>     \end{enumerate}
>     <Commentary text>
>     \begin{enumerate}
>       \setcounter{enumi}{\value{saveenum}}
>       ...
>     \end{enumerate}

This is reasonable, in small doses... Problems (apart from sheer verbosity) are getting the level right ("should I use counter `enumi`, `enumii`, ...") and remembering not to nest the interruptions (i.e., not to have a separate list, that is itself interrupted) in the "commentary text").

The mdwlist package defines commands `\``suspend` and `\``resume` that simplify the process:

>     \begin{enumerate}
>       ...
>     \suspend{enumerate}
>     <Commentary text>
>     \resume{enumerate}
>       ...
>     \end{enumerate}

The package allows an optional name (as in `\``suspend[id]{enumerate}`) to allow you to identify a particular suspension, and hence provide a handle for manipulating nested suspensions.

If you're suspending a fancy-enumeration list, you need to re-supply the optional "item label layout" parameters required by the enumerate package when resuming the list, whether by the belt-and-braces approach, or by the mdwlist `\``resume{enumerate}` technique. The task is a little tedious in the mdwlist case, since the optional argument has to be encapsulated, whole, inside an optional argument to `\``resume`, which requires use of extra braces:

>     \begin{enumerate}[\textbf{Item} i]
>       ...
>     \suspend{enumerate}
>     <comment>
>     \resume{enumerate}[{[\textbf{Item} i]}]
>     ...
>     \end{enumerate}

The enumitem package, in its most recent release, will allow you to resume lists, at one level only:

>     \begin{enumerate}
>     ...
>     \end{enumerate}
>     <comment>
>     \begin{enumerate}[resume]
>     ...
>     \end{enumerate}

which feels just as "natural" as the mdwtools facility, and has the advantage of playing well with the other excellent facilities of enumitem.

`enumerate.sty`
  Distributed as part of macros/latex/required/tools (zip, browse)
`enumitem.sty`
  macros/latex/contrib/enumitem (zip, browse)
`mdwlist.sty`
  Distributed as part of macros/latex/contrib/mdwtools (zip, browse)

This question on the Web: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=interruptlist