15. Les Macros en LaTeX

15.1. Exercices


\documentclass[french]{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[a4paper]{geometry}
\usepackage{babel}

% Déclaration des nouveaux compteurs
\newcounter{numberExercice}
\newcounter{numberQuestion}

\newcounter{numberChapter}
\newcounter{currentNumberList}
\newcounter{lastNumberList}

% Déclaration des commandes
\newcommand{\chapitre}[1]{\chapter{#1}\addtocounter{numberChapter}{1}\setcounter{lastNumberList}{0}}

% Déclarations des macros
\newcommand{\exo}{\par
\setcounter{numberQuestion}{0}
\addtocounter{numberExercice}{1}%
\noindent
\textbf{Exercice \arabic{numberExercice}}\quad}

\newcommand{\question}{\par
\addtocounter{numberQuestion}{1}%
\textbf{\arabic{numberQuestion} $\triangleright$}\quad}

% Déclaration des environnements
\newenvironment{questions}{%
	\begin{list}{%
		\arabic{numberChapter}.\arabic{currentNumberList} $\triangleright$}{%
		\usecounter{currentNumberList}\setcounter{currentNumberList}{\value{lastNumberList}}}
}{%
	\setcounter{lastNumberList}{\value{currentNumberList}}
	\end{list}
}

\begin{document}
\exo Enigmes pour vous détendre.
\question \textsc{Evariste} dispose de deux seaux non gradués : l'un de 5 litres, l'autre de 3 litres. Il y a de l'eau à volonté près de lui. Comment peut-il obtenir exactement 4 litres sans autre matériel ?
\question Un mage prétend qu'il est capable de donner le score de n'importe quel match de foot, avant même qu'il ne commence. Comment fait-il donc pour avoir raison à tous les coups (ou presque) ?

\bigskip

\exo Le présent de l'indicatif.
\question Conjuguer le verbe être à la première personne du singulier.
\question Conjuguer le verbe seoir à le troisième personne du singulier.

\bigskip

\chapitre{Premier essai}
\begin{questions}
	\item Question 1
	\item Question 2
	\item Question 3
\end{questions}
\par Blablablabla
\begin{questions}
	\item Question 4
	\item Question 5
	\item Question 6
\end{questions}

\chapitre{Deuxième essai}
\begin{questions}
	\item Question 1
	\item Question 2
	\item Question 3
\end{questions}
\par Blablablabla
\begin{questions}
	\item Question 4
	\item Question 5
	\item Question 6
\end{questions}

\end{document}