Muitas vezes, é conveniente ter texto de comentário, ‘fora’ da lista, entre duas entradas consecutivas de uma lista. No caso de lista
itemize
, isso não é problema, uma vez que nunca há algo para distinguir itens sucessivos; no caso de listas tipo
description
, os rótulos dos itens estão sob o controle do usuário, não havendo, portanto, qualquer problema automático de continuidade.
Para listas tipo enumerate
, os rótulos são gerados automaticamente e são sensíveis ao contexto, ou seja, é necessário que o contexto (nesse caso, o estado do contador de numeração) seja preservado.
O método de precaução é lembrar o estado da numeração na variável de seu contador e, depois, restaurá-lo ao reiniciar a numeração:
\newcounter{saveenum} ... \begin{enumerate} ... \setcounter{saveenum}{\value{enumi}} \end{enumerate}\begin{enumerate} \setcounter{enumi}{\value{saveenum}} ... \end{enumerate}
Isso é razoável, em pequenas doses… As dificuldades (fora a verbosidade) são obter o nível certo (“eu deveria usar o contador enumi, enumii, …”) e se lembrar de não encaixar as interrupções (ou seja, não ter uma lista separada que seja, ela mesma, interrompida) no “texto de comentário”.
O pacote mdwlist define comandos \suspend
e
\resume
que simplificam o processo:
O pacote aceita um nome opcional (como em\begin{enumerate} ... \suspend{enumerate}\resume{enumerate} ... \end{enumerate}
\suspend
[id]
{enumerate}
) para permitir que você identifique uma suspensão específica e, assim, fornece um identificador para manipular interrupções encaixadas.
Se você interromper uma lista de numeração sofisticada,
vai precisar fornecer novamente os parâmetros opcionais de “layout dos rótulos dos itens” exigidos pelo pacote enumerate ao retomar a lista, seja pela abordagem de precaução ou pela técnica que utiliza mdwlist
\resume
{enumerate}
. A tarefa é um pouco entediante no caso do mdwlist, pois o argumento opcional tem que ser encapsulado, inteiro, dentro de um argumento opcional do \resume
,
que requer o uso de chaves extras:
O pacote enumitem, em sua versão mais recente, também permite retomar listas:\begin{enumerate}[\textbf{Item} i] ... \suspend{enumerate}\resume{enumerate}[{[\textbf{Item} i]}] ... \end{enumerate}
Isso é tão “natural” quanto o recurso do mdwtools, e tem a vantagem de funcionar bem com os outros excelentes recursos do enumitem.\begin{enumerate} ... \end{enumerate}\begin{enumerate}[resume] ... \end{enumerate}
O Expdlist tem uma maneira simples de permitir a colocação de comentários, com seu comando
\listpart
. O argumento do comando se torna um comentário entre itens da lista:
Isso, como você perceberá, significa que nem precisa pensar em suspender ou retomar a lista, e é claro que funciona igualmente bem em qualquer um dos ambientes de lista (acho que não é realmente necessário para qualquer um, exceto para o\begin{enumerate} \item item 1 \item item 2 \listpart{interpolated comment} \item item 3 \end{enumerate}
enumerate
).
O Enumitem também permite suspensão e retomada de listas em múltiplos níveis:
No entanto, o ‘comentário encaixado’ interpolado na enumeração encaixada aparece como se fosse um segundo parágrafo do “outer item 2”, o que dificilmente é satisfatório.\begin{enumerate} \item outer item 1 \end{enumerate}\begin{enumerate}[resume] \item outer item 2 % nested enumerate \begin{enumerate} \item inner item 1 \end{enumerate} % resume nested enumerate \begin{enumerate}[resume] \item inner item 2 \end{enumerate} \item outer item 3 % end outer enumerate \end{enumerate}
This question on the Web: http://latex.net.br/faq/FAQ-interruptlist.html
Do you have any question? Ask on: latex.net.br - we love qood questions!