QCM avec cases à cocher

Tout ce qui concerne le langage LaTeX et ses variantes. Ce langage est supporté sur 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.
marco56
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 864
Inscription : jeudi 25 novembre 2010, 22:10

QCM avec cases à cocher

Message par marco56 »

Bonsoir,
En ces temps un peu surréalistes, j'envisage de donner un devoir sous forme de QCM.
Problème, lorsque je mets le code ci-dessous, j'ai une cas pour le premier choix puis des signes "valid" pour les suivants.
Vous avez eu ce genre de souci ou bien je m'y prends mal ?

Code : Tout sélectionner

\documentclass{article}

\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[scale=.9]{geometry}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{tikz}
\usepackage{hyperref}

\newcommand*{\mtcode}{123456}
%%%
\begin{document}


\begin{Form}
\TextField[bordercolor=1 0 0,width=10em,charsize=0pt,name=box]{NOM : }
\vspace{1cm}

\begin{enumerate}
\item 

\ChoiceMenu[name=Q1,radio,default=-0]{Angle $\alpha_m$ :}{\qquad $\dfrac{h}{\sqrt{h^2 + d_m^2}}$=0,\qquad $\dfrac{h}{d_m}$=1,\qquad $\dfrac{d_m}{h}$=0}

\item \ChoiceMenu[name=Q2,radio,default=-0]{Positions}{\qquad $\dfrac{f' \, \left( m - a\right)}{f' + d_m - a} \leqslant \overline{OA} \leqslant f'$=2,\qquad $\dfrac{f \, \left( m - a\right)}{f' - d_m + a} \leqslant \overline{OA} \leqslant f'$=0,\qquad $\dfrac{f'}{f' + d_m - a} \leqslant \overline{OA} \leqslant f'$=0}

\item 
\ChoiceMenu[name=Q3,radio,default=-0]{Angle $\alpha$}{$\dfrac{h}{f'}$=1,$\dfrac{f'}{h}$=0,$\dfrac{2 \, h}{f'}$=0,$\dfrac{2 \, f'}{h}$=0}

\item 
\ChoiceMenu[name=Q3,radio,default=-0]{Grossissement $G$}{ $12$=1,$25$=0,$4$=0}

%\item \ChoiceMenu[radio,default=Male,name=sex]{Sex:}{Male,Female}
%
%\item \ChoiceMenu[combo,name=country,default=France]{Country:}{Spain,Uganda,Moon,Other}
%
%\item \CheckBox[name=highschool]{High School}
%
%\item \ChoiceMenu[radio,radiosymbol=\ding{108},
%default=male,name=sex,charsize=14pt]
%{Sex:}{Male=male,Female=female}
\end{enumerate}

\vspace{2cm}
\TextField[password,bordercolor=1 0 0,width=10em,charsize=0pt,name=boxcode]{code : }
%
%
\PushButton[name=verificationcode,bordercolor=1 1 1,
onclick=
{
if (this.getField("boxcode").value==\mtcode)
{
this.getField("obtenirscore").value=(this.getField("Q1").value+this.getField("Q2").value+this.getField("Q3").value);
}
else
{
this.getField("obtenirscore").value="Code incorrect";
}
this.getField("boxcode").value="";
}
]
{\tikz\node[rounded corners, draw=black!80, fill=black!20]  {\bf score final :};}
\TextField[name=obtenirscore,bordercolor=1 1 1,width=10em,charsize=0pt,readonly=true]{}
\end{Form}

\end{document}

code 123456

evariste_G
Utilisateur chevronné
Utilisateur chevronné
Messages : 1448
Inscription : vendredi 19 décembre 2008, 19:13
Localisation : Bordeaux

Re: qcm avec cases à cocher

Message par evariste_G »

Bonjour.
Il semble que chez moi, cela fonctionne (windows 10).
capture.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Mathématiques, LaTeX et Python : http://www.mathweb.fr

pzorba75
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 201
Inscription : mardi 20 août 2013, 04:50
Localisation : Paris

Re: qcm avec cases à cocher

Message par pzorba75 »

Egalement sous overleaf.com. À condition d'exporter le pdf produit en sortie.
On se lasse de tout, excepté d'apprendre.
Virgile

marco56
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 864
Inscription : jeudi 25 novembre 2010, 22:10

Re: qcm avec cases à cocher

Message par marco56 »

Ah ! Donc cela est lié, soit à Ubuntu, soit à mon éditeur...
Bon apparemment, c'est Ubuntu.
capture-qcm.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.

marco56
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 864
Inscription : jeudi 25 novembre 2010, 22:10

Re: qcm avec cases à cocher

Message par marco56 »

Retour : j'ai ouvert le fichier avec Master Pdf et c'est ok.
Dis-moi, evariste_G, tu as entré le bon code pour avoir accès à la note, rassure-moi ?

rebouxo
Modérateur global
Modérateur global
Messages : 6962
Inscription : mercredi 15 février 2006, 13:18
Localisation : le havre

Re: qcm avec cases à cocher

Message par rebouxo »

Avec acroread cela donne quoi ?
Olivier
A line is a point that went for a walk. Paul Klee.
Par solidarité, pas de MP.

marco56
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 864
Inscription : jeudi 25 novembre 2010, 22:10

Re: qcm avec cases à cocher

Message par marco56 »

Je n'avais pas acroread, je l'ai installé mais c'est la même chose qu'avec masterpdf
Bon, je suis toujours en train de creuser mes pdf avec formulaires.
Je croyais avoir trouver mon bonheur avec :
https://www.auto-multiple-choice.net/au ... atex.shtml
mais je ne parviens pas à mettre des cases à cocher.

J'ai bien avancé mon devoir avec Form sauf que le score ne se fait pas (peut-être parce que j'ai trop de questions).
Par ailleurs, certains étudiants ont du mal à remplir le pdf ou la version remplie qu'ils me renvoient ne m'apparaît pas remplie...

Si vous avez des idées, je suis preneur.

marco56
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 864
Inscription : jeudi 25 novembre 2010, 22:10

Re: QCM avec cases à cocher

Message par marco56 »

Je suis à nouveau sur un QCM et je ne comprends pas mon erreur.
Ce premier code fonctionne chez moi avec Acrobat ou MasterPDF :

Code : Tout sélectionner

\documentclass{article}

\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[scale=.9]{geometry}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{tikz}
\usepackage{hyperref}

\newcommand*{\mtcode}{123456}
%%%
\begin{document}


\begin{Form}
\TextField[bordercolor=1 0 0,width=10em,charsize=0pt,name=box]{NOM : }
\vspace{1cm}

\begin{enumerate}
\item

\ChoiceMenu[name=Q1,radio,default=-0]{Angle $\alpha_m$ :}{\qquad $\dfrac{h}{\sqrt{h^2 + d_m^2}}$=0,\qquad $\dfrac{h}{d_m}$=1,\qquad $\dfrac{d_m}{h}$=0}

\item \ChoiceMenu[name=Q2,radio,default=-0]{Positions}{\qquad $\dfrac{f' \, \left( m - a\right)}{f' + d_m - a} \leqslant \overline{OA} \leqslant f'$=2,\qquad $\dfrac{f \, \left( m - a\right)}{f' - d_m + a} \leqslant \overline{OA} \leqslant f'$=0,\qquad $\dfrac{f'}{f' + d_m - a} \leqslant \overline{OA} \leqslant f'$=0}

\item
\ChoiceMenu[name=Q3,radio,default=-0]{Angle $\alpha$}{$\dfrac{h}{f'}$=1,$\dfrac{f'}{h}$=0,$\dfrac{2 \, h}{f'}$=0,$\dfrac{2 \, f'}{h}$=0}

\item
\ChoiceMenu[name=Q4,radio,default=-0]{Grossissement $G$}{ $12$=1,$25$=0,$4$=0}

\end{enumerate}

\vspace{2cm}
\TextField[password,bordercolor=1 0 0,width=10em,charsize=0pt,name=boxcode]{code : }
%
%
\PushButton[name=verificationcode,bordercolor=1 1 1,
onclick=
{
if (this.getField("boxcode").value==\mtcode)
{
this.getField("obtenirscore").value=(this.getField("Q1").value+this.getField("Q2").value+this.getField("Q3").value+this.getField("Q4").value);
}
else
{
this.getField("obtenirscore").value="Code incorrect";
}
this.getField("boxcode").value="";
}
]
{\tikz\node[rounded corners, draw=black!80, fill=black!20]  {\bf score final :};}
\TextField[name=obtenirscore,bordercolor=1 1 1,width=10em,charsize=0pt,readonly=true]{}
\end{Form}

\end{document}
Ce deuxième code ne fonctionne pas pour calculer le score :

Code : Tout sélectionner

\documentclass[a4paper,10pt]{article}
\usepackage[utf8x]{inputenc}			% Utilisation du UTF8
\usepackage{textcomp}				% Accents dans les titres
\usepackage[francais %,greek
]{babel}

\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[scale=.9]{geometry}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{tikz}
\usepackage{enumitem}
\usepackage{hyperref}

\newcommand{\MN}{\mathcal{N}}
\newcommand*{\mtcode}{123456}
\usepackage{fancybox}
\newenvironment{cadreombre}%
{\vskip 3mm\begin{Sbox}\begin{minipage}{14cm}}%
{\end{minipage}\end{Sbox}\setlength{\fboxsep}{3mm}\begin{center}\shadowbox{\TheSbox}\end{center}}

\newcommand{\numentour}[1]{\scalebox{0.8}{\pscirclebox[fillstyle=solid,fillcolor=yellow!40,linecolor=red]{\textcolor{black}{#1}}}}	
%%%



\begin{document}

\begin{Form}
\TextField[bordercolor=1 0 0,width=20em,charsize=0pt,name=box]{NOM prénom : }
\vspace{1cm}

\setenumerate[1]{font= \large \bfseries, label=\Roman*.}
\setenumerate[2]{font=\bfseries, label=\arabic*-, wide=0pt}


\begin{enumerate}
\item \textbf{\large Mécanique}

\begin{enumerate}

\item \ChoiceMenu[name=Q1,radio,default=-0]{}{\hspace*{0.8mm} \qquad A=1 , \qquad B=0 , \qquad C=0 , \qquad D=0, \qquad E = 0}

\item \ChoiceMenu[name=Q2,radio,default=-0]{}{\hspace*{0.8mm} \qquad A=1 , \qquad B=0 , \qquad C=0 , \qquad D=0, \qquad E = 0}

\item \ChoiceMenu[name=Q3,radio,default=-0]{}{\hspace*{0.8mm} \qquad A=1 , \qquad B=0 , \qquad C=0 , \qquad D=0, \qquad E = 0}

\item \ChoiceMenu[name=Q4,radio,default=-0]{}{\hspace*{0.8mm} \qquad A=1 , \qquad B=0 , \qquad C=0 , \qquad D=0, \qquad E = 0}

\item \ChoiceMenu[name=Q5,radio,default=-0]{}{\hspace*{0.8mm} \qquad A=1 , \qquad B=0 , \qquad C=0 , \qquad D=0, \qquad E = 0}

\item \ChoiceMenu[name=Q6,radio,default=-0]{}{\hspace*{0.8mm} \qquad A=1 , \qquad B=0 , \qquad C=0 , \qquad D=0, \qquad E = 0}

\end{enumerate}


\end{enumerate}

\vspace{2cm}
\TextField[password,bordercolor=1 0 0,width=10em,charsize=0pt,name=boxcode]{code : }
%
%
\PushButton[name=verificationcode,bordercolor=1 1 1,
onclick=
{
	if (this.getField("boxcode").value==\mtcode)
	{
		this.getField("obtenirscore").value=
		(this.getField("Q1").value+this.getField("Q2").value+this.getField("Q3").value
		+this.getField("Q4").value+this.getField("Q5").value+this.getField("Q6").value
);
}
else
{
this.getField("obtenirscore").value="Code incorrect";
}
this.getField("boxcode").value="";
}
]
{\tikz\node[rounded corners, draw=black!80, fill=black!20]  {\bf score final :};}
\TextField[name=obtenirscore,bordercolor=1 1 1,width=10em,charsize=0pt,readonly=true]{}
\end{Form}

\end{document}
Vous voyez où je me suis trompé ?
Je vais me coucher car cela fait 3 heures que je suis dessus...

Arathorn
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 209
Inscription : mercredi 24 avril 2013, 19:47

Re: QCM avec cases à cocher

Message par Arathorn »

Pour auto-multiple-choice, il faut utiliser l'option pdfform du paquet pour avoir des cases à cocher.
Pan contre, il faut utiliser la version test avec un MAC https://project.auto-multiple-choice.ne ... opics/9901 pour que tout fonctionne.
Adobe reader semble recommandé (je ne trouve plus le message de la personne qui en parlait).
Un script permet d'utiliser moodle https://github.com/nennigb/amc2moodle.

marco56
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 864
Inscription : jeudi 25 novembre 2010, 22:10

Re: QCM avec cases à cocher

Message par marco56 »

Merci mais je n'utilise pas auto-multiple-choice.
Je ne comprends juste pas pourquoi un code fonctionne et pas l'autre.

marco56
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 864
Inscription : jeudi 25 novembre 2010, 22:10

Re: QCM avec cases à cocher

Message par marco56 »

Bon, j'ai avancé : apparemment, il y a 2 conflits :
- le package enumitem
- le fait qu'il y ait plusieurs pages
Si quelqu'un a des idées, sinon, je vais bipasser ces deux soucis. C'est pénible mais bon, j'ai 2 pages et je peux me débrouiller sans enumitem.

[edit] Apparemment, il y a un autre souci que le nombre des pages. Désolé pour le bruit.

marco56
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 864
Inscription : jeudi 25 novembre 2010, 22:10

Re: QCM avec cases à cocher

Message par marco56 »

Bon, j'ai avancé mais du fait des soucis que j'ai rencontrés (un même fichier ne fonctionne plus d'une compil à l'autre...), je suis passé sur AMC.
Je n'ai pas utilisé pdfform pour l'instant et tout fonctionne correctement. J'ai fait un test avec une copie, cela semble correct.
J'ai 42 copies de 14 pages. La mise en pages n'est pas extraordinaire par contre et certains packages sont conflictuels : geometry reste sans effet, pstricks est bloquant, bref...
Bonne fin de semaine.

Arathorn
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 209
Inscription : mercredi 24 avril 2013, 19:47

Re: QCM avec cases à cocher

Message par Arathorn »

certains packages sont conflictuels : geometry reste sans effet, pstricks est bloquant,
Je tape

Code : Tout sélectionner

\geometry{…}
car le paquet geometry est, je crois, déjà chargé pour positionner les 4 marques.
Pour pstricks, il faut modifier le moteur dans préférences puis Général et Moteur LaTeX par défaut et choisir Laex - dvipdf ou xelatex.

marco56
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 864
Inscription : jeudi 25 novembre 2010, 22:10

Re: QCM avec cases à cocher

Message par marco56 »

Ok, merci, j'ai fait les modifications, je ne vais pas revenir en arrière pour l'instant. Je teste mercredi prochain.
Pour simplifier, j'ai fait un programme python avec dans chaque nom de fichier pdf, le nom de chaque élève ainsi que son identifiant.