Forums » Utilisation d'AMC (french) »
formatage des questions ouvertes
Added by Stéphane Chaudy over 7 years ago
Avant toute chose, je remercie Alexis pour son travail que je trouve fabuleux !
J'utilise beaucoup les question ouvertes mais comme je n'ai pas trop de photocopies sur mon compte au lycée, je cherche à optimiser la place. Je me suis donc plongé dans la doc pour essayer de formater correctement les questions ouvertes. Par ailleurs, j'ai des questions très courtes (équilibrer une équation) ou bien assez longues (définitions) donc je cherche une solution qui permette de faire varier facilement la hauteur et en particulier de faire une hauteur minimale.
Jusqu'à présent j'ajoutais une ligne \vpsace{-1cm} à la fin de la question pour remonter les questions aux minimum mais cela ne me satisfaisait pas trop.
J'ai donc essayé contentcommand=vspace{-1cm} mais apparemment contentcommand= n'accepte pas d'argument (même avec une fonction perso).
Du coup, je suis allé gratter dans le code source de /usr/share/texmf/tex/latex/AMC/automultiplechoice.sty (pardon Alexis !) et j'ai trouvé deux choses qui pourraient peut-être être améliorées (voir première ligne du post !) :
- tout d'abord j'ai commenté la ligne 1515 qui ajoute un espace vertical de 7mm après les questions Open
\ifKV@AMCOpen@lineup\else
\par\nobreak\noindent
\hspace*{\fill}{
\fboxrule=\AMCopen@framerule
\fcolorbox{\AMCocol@FrameRule}{white}{
\csname\AMCopen@contentcommand\endcsname
}}
% \vspace{7mm} <<<<<<<<<<<<<<<<<<<<<< AJOUT DE % EN DEBUT DE LIGNE ICI
\par
\fi
- ensuite le paramètre lin\AMCopen@lineses=0 dans \AMCOpen{lines=0} ne fait pas 0 ligne mais 1 ligne car la boucle s'execute avant le test.
Du coup, dans la fonction \AMCopen@lines, j'ai ajouté un test lines=0 qui shunte l'espacement :
\newcommand\AMCopen@lines{
\ifnum \AMCopen@Lines>0 <<<<<<<<<<<<<<<<<<<<<< 1er AJOUT ICI
\begin{minipage}{\AMCopen@Width}
\loop\vspace{\AMCopen@LineHeight}
\hspace*{.5em}\ifAMC@correc\smash{\AMCopen@answer}\def\AMCopen@answer{}\fi
\ifKV@AMCOpen@dots
\dotfill\hspace*{.5em}
\fi
\ifnum\AMCopen@Lines>\@ne\par\advance\AMCopen@Lines\m@ne\repeat
\end{minipage}
\fi <<<<<<<<<<<<<<<<<<<<<< 2eme AJOUT ICI
}
Au final, cela fait ce que je veux mais peut-être y a-t-il une solution plus simple !
voili,voilou
Steph
Replies (13)
RE: formatage des questions ouvertes - Added by Alexis Bienvenüe over 7 years ago
apparemment contentcommand= n'accepte pas d'argument (même avec une fonction perso).
En effet. Par contre, vous pouvez définir votre propre commande :
\def\contenu{ ... tout ce que vous voulez ... }
puis utiliser
contentcommand=contenu
.
je suis allé gratter dans le code source de /usr/share/texmf/tex/latex/AMC/automultiplechoice.sty (pardon Alexis !)
Il ne faut pas s'excuser pour cela, bien au contraire ! Le logiciel libre est fait pour ça.
% \vspace{7mm} <<<<<<<<<<<<<<<<<<<<<< AJOUT DE % EN DEBUT DE LIGNE ICI
Il est vrai que cet espace devrait être paramétrable. Je vais faire la modification.
\AMCOpen{lines=0} ne fait pas 0 ligne mais 1 ligne
A priori il devrait y avoir quelque chose dans le cadre réservé à la réponse, c'est pourquoi je n'imaginais pas qu'il soit souhaitable d'utiliser lines=0
. Pouvez-vous expliquer pourquoi vous souhaitez le faire (un petit exemple concret serait parfait) ?
Par ailleurs, vous devriez pouvoir contourner le problème en utilisant contentcommand=relax
.
RE: formatage des questions ouvertes - Added by Stéphane Chaudy over 7 years ago
J'utilise une ligne unique pour les équations chiliques à équilibrer : 1 ligne = 1 équation !
Comme vous le suggérez, j'ai essayé d'utiliser contentcommand mais je n'ai pas réussi. Du coup, j'ai préféré prendre le problème à la source :-) car cela m'a semblé une modification logique de pouvoir demander lines=0.
Si j'ai bien compris le code, à priori, il ne devrait pas y avoir d'impact sur d'autres formatages(par exemple, les réponses séparées) mais rien n'est moins sûr car le code est long et complexe et je n'utilise que des questionnaires sur une page.
Voici un exemple d'equation (j'utilise le package mhchem pour le formatage de la chimie, il n'est pas forcément installé par défaut).
Pour finir, je glisse une petite question : existe-t-il une doc technique (autre que le code) sur la structure du logiciel lui-même (j'avoue que mon perl est un peu rouillé) ?
\documentclass[10pt,a4paper]{article} \usepackage[utf8x]{inputenc} \usepackage[T1]{fontenc} \usepackage{tablists} \usepackage[francais,bloc]{automultiplechoice} \usepackage{graphicx} \usepackage[version=3]{mhchem} \usepackage[french]{babel} \def\AMCotextReserved{\emph{Prof}} \begin{document} \element{cours}{ \begin{question}{eq4} Équilibrer :\quad \ce{Fe2O3 +\quad H2 ->\quad Fe +\quad H2O} \AMCOpen{annotate=FALSE,framerule=0pt,dots=FALSE,lines=0}{ \mauvaise{0}\scoring{0} \mauvaise{0.5}\scoring{0.5} \mauvaise{1}\scoring{1} \bonne{1.5}\scoring{1.5}} \end{question}} \exemplaire{1}{ \begin{tabular}{c|c} \begin{minipage}{0.45\linewidth}code élève\\\AMCcodeH{code}{2}\end{minipage}& \champnom{\fbox{\begin{minipage}{.45\linewidth} Nom et prénom : \vspace*{.6cm}\end{minipage} }} \end{tabular} %\melangegroupe{cours} \restituegroupe{cours} \clearpage } \end{document}
RE: formatage des questions ouvertes - Added by Stéphane Chaudy over 7 years ago
J'ai oublié le classique exercice qui se termine par : vous rédigerez la solution au dos de la feuille !
RE: formatage des questions ouvertes - Added by Alexis Bienvenüe over 7 years ago
Merci : je vois mieux quel genre de choses vous voulez faire.
Votre solution ne passera pas bien avec une feuille de réponse séparée.
J'ai ajouté l'option lineuptext
à \AMCopen
à partir de la révision hg:ae76a95360d9. Avec cette option, vous pouvez par exemple écrire :
\begin{question}{eq4} Équilibrer. \AMCOpen{lineup=true, lineuptext={\ce{\quad Fe2O3 +\quad H2 ->\quad Fe +\quad H2O}}}{ \mauvaise{0}\scoring{0} \mauvaise{0.5}\scoring{0.5} \mauvaise{1}\scoring{1} \bonne{1.5}\scoring{1.5}} \end{question}
et
\begin{question}{eq5} Voici une question très complexe ! \AMCOpen{lineup=true, lineuptext={\par\textit{Vous rédigerez la réponse au dos de la feuille}}}{ \mauvaise{0}\scoring{0} \mauvaise{0.5}\scoring{0.5} \mauvaise{1}\scoring{1} \bonne{1.5}\scoring{1.5}} \end{question}
Voir le fichier PDF joint pour le résultat obtenu avec ou sans feuille de réponses séparée.
standard.pdf - Sans feuille de réponses séparée (38.5 kB)
separateanswersheet.pdf - Avec feuille de réponses séparée (41.3 kB)
RE: formatage des questions ouvertes - Added by Stéphane Chaudy over 7 years ago
Cela me semble parfait, merci !
RE: formatage des questions ouvertes - Added by Pierre x over 7 years ago
Bonjour,
Je me permets de répondre dans ce fil qui correspond en partie à ce que je souhaite faire.
Je voudrais diminuer l'espacement vertical entre deux questions ouvertes.
J'essaye d'ajouter une ligne \vpsace{-1cm} entre les questions, mais ça ne fonctionne pas (message d'erreur).
Quelle est la bonne méthode ?
Merci.
RE: formatage des questions ouvertes - Added by Stéphane Chaudy over 7 years ago
Tu as peut-être un message d'erreur car tu as écris \vpsace{-1cm} et non \vspace{-1cm} :-D
Blague à part, pour ma part, je place un \vspace{-2cm} juste avant le \end{question} et cela fonctionne.
Mais je pense que c'est une méthode de sauvage :-)
Steph
RE: formatage des questions ouvertes - Added by Pierre x over 7 years ago
Oui, tu as trouvé !
J'écrivais \vpsace au lieu de \vspace ... tout ça car j'ai bêtement copié/collé ton message initial dans lequel il y avait une coquille.
Évidemment, en relisant un peu, j'aurai du m'en rendre compte !
Merci.
Question subsidiaire, est-il possible d'avoir un intitulé personnalisé au lieu de «question» devant le numéro d'une question ouverte ?
RE: formatage des questions ouvertes - Added by Frédéric Bréal over 7 years ago
- Pour un devoir sans feuille de réponses séparée, la commande à modifier est :
\def\AMCbeginQuestion#1#2{\par\noindent{\bf Question #1} #2\hspace*{1em}}
avec # 1 le numéro de la question et # 2 le symbole des questions multiples.
- J'utilise ceci pour avoir juste Q.xx avec le 0 fantôme pour un alignement.
\def\AMCbeginQuestion#1#2{\par\noindent{\textbf{Q.\ifthenelse{#1<10}{\phantom{0}}{}#1}}#2\hspace{0.5ex}}%
- Pour une question ponctuelle il faudra certainement encadrer la question par des { et } pour éviter que la modification soit propagée.
{ % accolade ouverte \def\AMCbeginQuestion#1#2{\par\noindent{blabla} #2\hspace*{1em}} \begin{question{aaa} reblalbla \AMCOpen{}{} \end{question} } % fermeture accolade
RE: formatage des questions ouvertes - Added by Pierre x over 7 years ago
Ça fonctionne parfaitement, je te remercie !
RE: formatage des questions ouvertes - Added by simon RAMBEAU about 2 years ago
Alexis Bienvenüe wrote:
J'ai ajouté l'option
lineuptext
àAMCopen
à partir de la révision hg:ae76a95360d9. Avec cette option, vous pouvez par exemple écrire :\begin{question}{eq5}
Voici une question très complexe !
\AMCOpen{lineup=true,
lineuptext={\par\textit{Vous rédigerez la réponse au dos de la feuille}}}{
\mauvaise{0}\scoring{0}
\mauvaise{0.5}\scoring{0.5}
\mauvaise{1}\scoring{1}
\bonne{1.5}\scoring{1.5}}
\end{question}
Bonjour à tous, pardons de déterrer un sujet vieux de 5 ans, mais après de nombreuse recherche sur le net et sur le forum, la réponse proposée est celle qui ce rapproche le plus de ce que je cherche.
Je veux également proposer une question ouverte, sans cadre réponse, mais avec une annotation du type "répondre au dos de la feuille"
La seule différence c'est que je cherche la commande en latex...
Pouvez vous m'aider ? Merci d'avance.
RE: formatage des questions ouvertes - Added by Frédéric Bréal about 2 years ago
C'est à vous de taper votre texte.
\begin{question}{eq5} Voici une question très complexe ! \AMCOpen{lineup=true, lineuptext={\par Répondre au dos de la feuille}}{ \mauvaise{0}\scoring{0} \mauvaise{0.5}\scoring{0.5} \mauvaise{1}\scoring{1} \bonne{1.5}\scoring{1.5}} \end{question}
RE: formatage des questions ouvertes - Added by simon RAMBEAU about 2 years ago
pfff, en relisant à tête reposée, je me rends compte que c'était déjà du latex. Moralité, ne pas essayer de comprendre passé minuit.
Du coup la commande donnée fonctionne très bien.
Merci la communauté !!
(1-13/13)