Texte différent sur le corrigé ou dans catalogue grâce à une variable indiquant le contexte (questionnaire, corrigé ou catalogue)

Added by Al DUS over 9 years ago

Bonjour !

D'abord plus j'utilise cet outil plus je le trouve adapté par avance à ce que je veux faire ! La preuve d'une grande maturation sur des cas réels. Bravo !

Si j'ai bien compris, "catalogue" présente l'ensemble des réponses correctes aux questions susceptibles d'être proposées dans un QCM. Au-delà des cases cochées, j'ai des questions ouvertes qui nécessitent une rédaction de la part de l'étudiant. Le correcteur coche ensuite des cases qui lui sont réservées pour indiquer par exemple correct, partiellement correct, incorrect.

Existe-t-il une variable ou des variables qui permettent de distinguer que le texte est compilé en vue d'être le questionnaire ou au contraire un corrigé ou un catalogue ?

Cela me permettrait de faire apparaître une réponse rédigée voire des commentaires pour aider le correcteur à cocher les cases d'évaluation. Cela est d'autant plus nécessaire quand les questions sont tirées au hasard dans un lot de questions possibles.


Replies (15)

RE: Texte différent sur le corrigé ou dans catalogue grâce à une variable indiquant le contexte (questionnaire, corrigé ou catalogue) - Added by Alexis Bienvenüe over 9 years ago

Vous pouvez utiliser \explain,

\begin{question}{combustion}
Quel gaz apparaît lors de la combustion incomplète du butane~?
\begin{reponses}
\bonne{Le monoxyde de carbone.}
\mauvaise{Le dioxyde de carbone.}
\mauvaise{Le dioxygène.}
\end{reponses}
\explain{Le monoxyde de carbone est un gaz incolore, inodore et toxique.}
\end{question}

ou bien définir une commande similaire:
\makeatletter
\def\surcorrections#1{\ifAMC@correchead #1\fi}
\makeatother

RE: Texte différent sur le corrigé ou dans catalogue grâce à une variable indiquant le contexte (questionnaire, corrigé ou catalogue) - Added by Frédéric Bréal over 9 years ago

Est-ce que cette commande

\makeatletter
\def\surcorrections#1{\ifAMC@correchead #1\fi}
\makeatother

permettrait de différencier une mauvaise réponse et d'afficher en conséquence un texte prédéfini.

RE: Texte différent sur le corrigé ou dans catalogue grâce à une variable indiquant le contexte (questionnaire, corrigé ou catalogue) - Added by Alexis Bienvenüe over 9 years ago

Non : elle permet seulement d'écrire quelque chose uniquement sur le document corrigé, et non sur le sujet.

RE: Texte différent sur le corrigé ou dans catalogue grâce à une variable indiquant le contexte (questionnaire, corrigé ou catalogue) - Added by Alexis Bienvenüe over 9 years ago

Ce sont des programmes perl qui se chargent du calcul des notes, et de l'annotation des copies, en effet.

RE: Texte différent sur le corrigé ou dans catalogue grâce à une variable indiquant le contexte (questionnaire, corrigé ou catalogue) - Added by Al DUS over 9 years ago

\explain{...} n'est pas "défini" sur ma version. Par contre l'alternative définie tel qu'indiqué \surcorrection fonctionne parfaitement bien.

RE: Texte différent sur le corrigé ou dans catalogue grâce à une variable indiquant le contexte (questionnaire, corrigé ou catalogue) - Added by Frédéric Bréal over 9 years ago

J'aimerais effacer les consignes sur le corrigé. J'ai créé cette fonction sur la base de l'exemple précédent.
Cela fonctionne mais à l'envers, les consignes s'affichent sur le mode corrigé.

\makeatletter
\def\EffacementConsignesCorrige{\ifAMC@correchead}
\makeatother
\EffacementConsignesCorrige
Ici les consignes
\fi

J'ai essayé

\makeatletter
\def\EffacementConsignesCorrige{\ifAMC@correcheadtrue}
\makeatother

et

\makeatletter
\def\EffacementConsignesCorrige{\ifAMC@correcheadfalse}
\makeatother

J'ai l'erreur
Undefined control sequence. Extra \fi.

Je préférerais cette solution à l'exemple proposé à Al Dus pour des questions mise en page du fichier tex et de compréhension de latex.

Merci

RE: Texte différent sur le corrigé ou dans catalogue grâce à une variable indiquant le contexte (questionnaire, corrigé ou catalogue) - Added by Al DUS over 9 years ago

Il me semble que ceci devrait fonctionner:

\makeatletter
\def\ConsigneHorsCorrige #1{\if\not AMC@correchead #1 \fi}
\makeatother

Les consignes à effacer du corrigé seraient alors encapsulées par \ConsigneHorsCorrigé de la manière suivante:

\ConsigneHorsCorrigé{Voici une consigne qui n'est pas destinée à apparaître dans le corrigé}

A tester !

RE: Texte différent sur le corrigé ou dans catalogue grâce à une variable indiquant le contexte (questionnaire, corrigé ou catalogue) - Added by Al DUS over 9 years ago

... ou encore en utilisant la syntaxe proposée, genre environnement :

\ConsignesEffaceesDuCorrige
Ici les consignes
\fi

avec

\makeatletter
\def\ConsignesEffaceesDuCorrige{\if\not AMC@correcheadtrue}
\makeatother

RE: Texte différent sur le corrigé ou dans catalogue grâce à une variable indiquant le contexte (questionnaire, corrigé ou catalogue) - Added by Al DUS over 9 years ago

Oups, erreur sur le nom de la variable ! Il faut lire:

\makeatletter
\def\ConsignesEffaceesDuCorrige{\if\not AMC@correchead}
\makeatother

RE: Texte différent sur le corrigé ou dans catalogue grâce à une variable indiquant le contexte (questionnaire, corrigé ou catalogue) - Added by Frédéric Bréal over 9 years ago

La commande \if\not ne fonctionne pas. Soit tout s'affiche cas 1 soit rien cas 2. J'ai fait ceci, basé sur l'exemple, mais cela ne me plaît pas car je dois appeler la commande dans le sujet. J'aurais préféré la solution genre environnement, cela aurait été plus facile pour ma lecture du sujet.

\makeatletter
\def\EffacementConsignesCorrige{\ifAMC@correchead
\makeatother
\else
Ici les consignes
\fi}

RE: Texte différent sur le corrigé ou dans catalogue grâce à une variable indiquant le contexte (questionnaire, corrigé ou catalogue) - Added by Alexis Bienvenüe over 9 years ago

J'aurais préféré la solution genre environnement

Pour transformer une commande en environnement : package environ.

RE: Texte différent sur le corrigé ou dans catalogue grâce à une variable indiquant le contexte (questionnaire, corrigé ou catalogue) - Added by Frédéric Bréal over 9 years ago

J'ai mis un temps certain avent de comprendre que la commande \BODY\\ était nécessaire pour inscrire un texte qui n'est pas dans l'argument.
Dans le préambule :

\usepackage{environ}
\makeatletter
\NewEnviron{EffacementConsignesSiCorrige}{
\ifAMC@correchead
\vspace*{-1em}
\else
\BODY\\
\fi
}
\makeatother

Ici je n'ai pas mis d'argument, juste afficher les consignes.
Dans le sujet :

\begin{EffacementConsignesSiCorrige}
Ici mes consignes
\end{EffacementConsignesSiCorrige}

RE: Texte différent sur le corrigé ou dans catalogue grâce à une variable indiquant le contexte (questionnaire, corrigé ou catalogue) - Added by Frédéric Bréal over 9 years ago

J'ai créé un environnement similaire pour la commande \explain (version test)
En argument : le texte à afficher. Je m'en sers pour effacer le cadre des réponses ouvertes (gain de place sur le corrigé à imprimer)

\makeatletter
\NewEnviron{EffacementCadreAMCOpenSiCorrige}[1]{
\ifAMC@correchead
\explain{#1}
\vspace{2ex}
\else
\BODY\\
\fi
}
\makeatother
\begin{question}{Texte03}
\'A l'aide d'un schéma légendé, expliquez l'expérience de \emph{Pline l'Ancien}.
\begin{EffacementCadreAMCOpenSiCorrige}{Voir schéma question \AMCref{Schema}. \vspace{-3ex}}
\AMCOpen{lines=3,dots=false,lineheight=0.8cm}{\mauvaise{1}\scoring{1}\bonne{2}\scoring{2}}
\end{EffacementCadreAMCOpenSiCorrige}
\end{question}

(1-15/15)