Numérotation des questions dans la classe exam

Tout ce qui concerne le langage LaTeX et ses variantes. Ce langage est supporté par le forum via les balises tex.

Modérateur : gdm_tex

Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
drebinew
Utilisateur débutant
Utilisateur débutant
Messages : 1
Inscription : mardi 15 décembre 2020, 14:22
Statut actuel : Enseignant

Numérotation des questions dans la classe exam

Message par drebinew »

Bonjour tout le monde.

Je suis enseignant et je fais des contrôles en LaTeX. J'ai découvert il n'y a pas longtemps la classe exam, bien pratique pour cela. J'ai cependant un problème pour numéroter les questions comme je l'entends. Le problème est en fait un problème de compteurs et/ou de structures conditionnelles.
J'aimerais que chaque numéro de question rappelle le numéro de la section et, s'il y en a une, le numéro de la sous-section.
Voici le code que j'utilise s'il y a des sous-sections :

Code : Tout sélectionner

\documentclass[11pt]{exam}
\usepackage[utf8]{inputenc}

\renewcommand\thesubsection{\arabic{subsection}}
\renewcommand\thequestion{\thesection.\thesubsection.\arabic{question}}

Et si il n'y en a pas :

Code : Tout sélectionner

\documentclass[11pt]{exam}
\usepackage[utf8]{inputenc}

\renewcommand\thequestion{\thesection.\arabic{question}}

Tout le problème, c'est que je fais parfois des contrôles dans lesquels certaines sections ont des sous-sections et d'autres non. Si, dans une section, il n'y a pas de sous-section, le premier code remplace le numéro de sous-section par 0. Je préfèrerais qu'il n'affiche rien. J'imagine que les structures conditionnelles sont idéales pour gérer cela. Voici ce que j'ai essayé :

Code : Tout sélectionner

\documentclass[11pt]{exam}
\usepackage[utf8]{inputenc}
\usepackage{ifthen}

\def \absent {0}
\renewcommand\thesubsection{\arabic{subsection}}
\renewcommand\thequestion{
    \ifx\thesubsection\absent
        \thesection.\arabic{question}
    \else
        \thesection.\thesubsection.\arabic{question}
    \fi}
Le problème, c'est qu'il semble que la condition du \if n'est jamais vérifiée, et que, si la section 2 n'a pas de sous-section, la première question sera numérotée 2.0.1.

N'étant expert ni en compteurs ni en structures conditionnelles en LaTeX, je n'arrive pas à comprendre d'où vient le problème.

Merci d'avance.
marco56
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 964
Inscription : jeudi 25 novembre 2010, 22:10

Re: Numérotation des questions dans la classe exam

Message par marco56 »

Un ECM mettant en évidence le pb serait un "plus".
balf
Utilisateur chevronné
Utilisateur chevronné
Messages : 4014
Inscription : mercredi 02 janvier 2008, 23:18

Re: Numérotation des questions dans la classe exam

Message par balf »

Bonsoir,

Si l'on essaye de faire ça avec \ifnumcomp de l'extension etoolbox, cela fonctionne, apparemment :

Code : Tout sélectionner

\documentclass[11pt]{exam}
\usepackage[T1]{fontenc}
\usepackage{erewhon} 
\usepackage[french]{babel} 

\usepackage{etoolbox} 
\renewcommand\thesubsection{\arabic{subsection}}
\renewcommand\thequestion{%
 \ifnumcomp{\thesubsection}{=}{0}{\thesection.\arabic{question}}%
 {\thesection.\thesubsection.\arabic{question}}%
}

\begin{document}

\section{Une petite section d’essai}
    \begin{questions}
    \question Une question sur les questions.
    \question Une autre question oiseuse: celle de l’œuf et de la poule. 
    \end{questions}

\subsection{Une sous-section}
    \begin{questions}
      \question Comment Antonin Artaud traduit-il «\,\emph{Humpty-Dumpty}\,» dans \emph{Through the Looking Glass} ?
    \end{questions}

\end{document} 
B. A.
numeros_des_questions.pdf
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.