4 Jan 09

Listes numérotées continues avec LaTeX

Catégorie : LaTeX

J’ai bien galéré pendant deux trois heures avant de trouver la solution, alors je pense que ça vaut le coup de la partager.

Voilà, lorsqu’on fait une liste numérotée en LaTeX, les éléments sont numérotés de 1 à n. Mais si je place du texte et que je veux ensuite continuer ma liste numérotée, la numérotation redémarre à 1. Or je voulais avoir quelque chose du genre :

1.1 la première question
1.2 la deuxième question
1.3 la troisième question

blabla entre les deux listes

1.4 la quatrième question
1.5 la cinquième question
...

ou chaque question est précédée du numéro du chapitre suivi du numéro de la question. Pour ne pas que chaque énumération reparte à 1, l’astuce consiste à placer le compteur de la première énumération dans une variable auxiliaire lorsqu’on arrive à la fin de l’énumération. Puis, en début d’énumération, on remet cette valeur auxiliaire dans le compteur de l’énumération.

Sans plus tarder, le code à placer dans le préambule du document (ou dans un fichier de classe) :

\newcounter{numq}
\newcounter{aux}[chapter]
\newenvironment{questions}{%
\begin{list}{ \textbf{\thechapter.\arabic{numq} \(\triangleright\)\ }}
{\usecounter{numq}%
\setcounter{numq}{\theaux}%
\setlength{\labelwidth}{1cm}%
\setlength{\labelsep}{0.1cm}%
\setlength{\leftmargin}{1cm}
\setlength{\itemindent}{0cm}}}{ \end{list}\setcounter{aux}{\thenumq} }

avec quelques fioritures pour avoir un affichage un peu plus sympa. Remarquez que la numérotation des énumérations repart à 1 à chaque changement de chapitre (\newcounter{aux}[chapter]), mais reste continue dans un même chapitre.

Pour utiliser le nouvel environnement questions, on écrira :

\begin{questions}
\item première question
\item deuxième question
\item troisième question
\end{questions}

le blabla entre les deux énumérations

\begin{questions}
\item quatrième question
\item cinquième question
\end{questions}

Ce qui donne après compilation :

C’est pas beau ça ?