Suggestion : possibilité de bouts de texte seulement dans l'énoncé/le corrigé, etc.

Added by Yann Salmon about 3 years ago

Dans ma première utilisation d'AMC, j'ai été confronté au problème de la génération d'un corrigé qui ne soit pas trop long, que j'ai résolu en faisant disparaitre les paragraphes de consignes de la version corrigée.

Je l'ai fait en bricolant par dessus AMC (cf. https://sourcesup.renater.fr/scm/browser.php?group_id=5479&scm_plugin=scmgit&path=/anonscm/gitweb?p=typo-cpge/typo-cpge.git;a=blob;f=latex/ysamc.cls), mais ce serait sans doute plus élégant si AMC avait le symétrique de la commande explain.


Replies (7)

RE: Suggestion : possibilité de bouts de texte seulement dans l'énoncé/le corrigé, etc. - Added by Frédéric Bréal about 3 years ago

Je me suis créé un nouvel environnement pour effacer des paragraphes superflus.

\makeatletter
\NewEnviron{EffacementSiCorrige}{ %
\ifAMC@correc
%\vspace*{0.5em}
\else
\BODY%\\
\fi
}
\makeatother

J'ai également renommé la commande explain qui ne fonctionne pas en correction individuelle.
\makeatletter
\renewcommand{\explain}[1]{ %
    \ifAMC@correc%
    \AMCif@env{question}{\par\noindent{\AMC@loc@explain#1}}{\AMC@error@explain}\vspace{1ex}%
    \else%
    \AMCif@env{question}{}{\AMC@error@explain}%
    \fi%
}
\makeatother

Et une commande pour afficher n'importe où dans la correction.
\makeatletter
\newcommand{\AffichageSiCorrige}[1]{\ifAMC@correc #1\fi}
\makeatother

RE: Suggestion : possibilité de bouts de texte seulement dans l'énoncé/le corrigé, etc. - Added by Stefan DEGROOTE about 3 years ago

Bonjour,

merci pour tout ce travail d'assistance.
Pourriez-vous m'indiquer à quel endroit vous mettez le bout de code permettant de créer un nouvel environnement qui efface des paragraphes superflus ?
\makeatletter
\NewEnviron{EffacementSiCorrige}{
\ifAMC@correc
\vspace*{0.5em}
\else
\BODY%\\
\fi
}
\makeatother

Merci d'avance.
S. DEGROOTE

RE: Suggestion : possibilité de bouts de texte seulement dans l'énoncé/le corrigé, etc. - Added by Frédéric Bréal about 3 years ago

Ne jamais encadrer des questions avec cet environnement.

\documentclass[a4paper]{article}

\usepackage[utf8x]{inputenc}    
\usepackage[T1]{fontenc}

\usepackage[francais,bloc,completemulti]{automultiplechoice}    

%Pour effacer les consignes dans le corrigé
\makeatletter
\NewEnviron{EffacementSiCorrige}{ %
\ifAMC@correc
%\vspace*{0.5em}
\else
\BODY%\\
\fi
}
\makeatother

\begin{document}

\exemplaire{10}{    

%%% debut de l'en-tête des copies :    

\noindent{\bf QCM  \hfill TEST}

\vspace*{.5cm}
\begin{minipage}{.4\linewidth}
\centering\large\bf Test\\ Examen du 01/01/2008\end{minipage}
\champnom{\fbox{    
                \begin{minipage}{.5\linewidth}
                  Nom et prénom :

                  \vspace*{.5cm}\namefielddots   
                  \vspace*{1mm}
                \end{minipage}
         }}

\begin{EffacementSiCorrige}
\begin{center}\em
Durée : 10 minutes.

  Aucun document n'est autorisé.   L'usage de la calculatrice est interdit.

  Les questions faisant apparaître le symbole \multiSymbole{} peuvent   présenter zéro, une ou plusieurs bonnes réponses. Les autres ont   une unique bonne réponse.

  Des points négatifs pourront être affectés à de \emph{très   mauvaises} réponses.
\end{center}
\vspace{1ex}
\end{EffacementSiCorrige}

%%% fin de l'en-tête

\begin{question}{prez}    
  Parmi les personnalités suivantes, laquelle a été présidente
  de la république française~?
  \begin{reponses}
    \bonne{René Coty}
    \mauvaise{Alain Prost}
    \mauvaise{Marcel Proust}
    \mauvaise{Claude Monet}
  \end{reponses}
\end{question}

\begin{questionmult}{pref}    
  Parmi les villes suivantes, lesquelles sont des préfectures~?
  \begin{reponses}
    \bonne{Poitiers}
    \mauvaise{Sainte-Menehould}
    \bonne{Avignon}
  \end{reponses}
\end{questionmult}
}   
\end{document}

RE: Suggestion : possibilité de bouts de texte seulement dans l'énoncé/le corrigé, etc. - Added by Stefan DEGROOTE about 3 years ago

Bonsoir,
merci pour votre exemple qui fonctionne dans certains cas mais pas dans celui que je cherche à faire.
Votre environnement fonctionne si, par exemple, je cherche à faire disparaître un texte simple.
Par contre, quand je tente de faire disparaître dans la correction le cadre que je laisse à mes étudiants pour répondre, la compilation est stoppée.
Le code qui ne semble pas fonctionner est un code du style :

\begin{EffacementSiCorrige}
% Cadre pour la réponse de l'étudiant(e)
\AMCOpen{lines=1,dots=false,lineheight=14cm}
\end{EffacementSiCorrige}

J'ai alors le message d'erreur suivant :

ERR>Extra }, or forgotten \endgroup.
ERR>Extra \else.
ERR>Extra \fi.

Par contre, pas d'erreur si je compile un code du style :
\begin{EffacementSiCorrige}
% Cadre pour la réponse de l'étudiant(e)
BlaBlaBla
\end{EffacementSiCorrige}

Si vous avez une idée, je suis preneur bien sûr.
Merci encore de votre investissement.
Cordialement,
S. DEGROOTE

RE: Suggestion : possibilité de bouts de texte seulement dans l'énoncé/le corrigé, etc. - Added by Frédéric Bréal about 3 years ago

Il vous manque la 2de option de AMCopen

\begin{EffacementSiCorrige}
% Cadre pour la réponse de l'étudiant(e)
\AMCOpen{lines=1,dots=false,lineheight=14cm}{Indiquez votre barème ici}
\end{EffacementSiCorrige}

RE: Suggestion : possibilité de bouts de texte seulement dans l'énoncé/le corrigé, etc. - Added by Stefan DEGROOTE about 3 years ago

Merci beaucoup !!!
je n'y aurai pas penser puisque je calcule mon barème avec d'autres environnements que je crée pour prendre en compte des degrés de certitude.
Il m'a juste suffit de rajouter des {} à la suite du AMCOpen et tout fonctionne :

\begin{EffacementSiCorrige}
% Cadre pour la réponse de l'étudiant(e)
\AMCOpen{lines=1,dots=false,lineheight=14cm}{}
\end{EffacementSiCorrige}

Merci encore.
Merci pour ce support toujours efficace.
Cordialement,
S. DEGROOTE

RE: Suggestion : possibilité de bouts de texte seulement dans l'énoncé/le corrigé, etc. - Added by Stefan DEGROOTE about 3 years ago

Stefan DEGROOTE wrote:

Merci beaucoup !!!
je n'y aurai pas pensé puisque je calcule mon barème avec d'autres environnements que je crée pour prendre en compte des degrés de certitude.
Il m'a juste suffit de rajouter des {} à la suite du AMCOpen et tout fonctionne :

egin{EffacementSiCorrige}
% Cadre pour la réponse de l'étudiant(e)
AMCOpen{lines=1,dots=false,lineheight=14cm}{}
end{EffacementSiCorrige}

Merci encore.
Merci pour ce support toujours efficace.
Cordialement,
S. DEGROOTE

(1-7/7)