AMC

Correction automatisée de formulaires QCM

Source au format AMC-TXT

Pour les utilisateurs qui ne souhaitent pas se mettre à LaTeX, AMC embarque un filtre qui rédige pour vous le fichier LaTeX à partir d'une représentation en texte simple de votre questionnaire. Ce format est appelé AMC-TXT, et ce chapitre détaille la syntaxe à utiliser. Si vous souhaitez profiter de la puissance de LaTeX pour la rédaction de vos questionnaires, passez au chapitre suivant.

Commençons par un exemple simple de fichier source utilisable par AMC :

# AMC-TXT source
PaperSize: A4
Lang: FR
Title: Mon premier questionnaire

Presentation: Veuillez répondre aux questions
ci-dessous du mieux que vous pouvez.

* Quelle est la capitale du Cameroun ?
+ Yaoundé
- Douala
- Kribi

** Parmi les nombres suivants,
lesquels sont positifs ?
+ 2
- -2
+ 10
[Important]Important

Le fichier qui contient la description de votre sujet doit être codé en UTF-8. C'est le codage par défaut de plusieurs éditeurs de texte, dont fait partie gedit par exemple. N'utilisez pas d'éditeur de texte permettant d'appliquer des mise en forme à votre texte, comme OpenOffice/LibreOffice ou abiword : ils n'enregistrent pas seulement votre texte, mais beaucoup d'autres informations de mise en forme qu'AMC ne sait pas lire...

[Note]Note

La police de caractères qui sera utilisée par défaut pour votre questionnaire est la police libertine. C'est une police libre qui définit un très grand nombre de caractères de toutes langues. Cette police doit être installée sur votre système pour que votre sujet puisse être préparé (c'est le cas si vous installez AMC sur debian ou Ubuntu avec les paquets qu'il recommande).

Vous remarquez dès maintenant la structure du fichier de description du questionnaire : il commence par quelques définitions ou options générales de mise en forme, puis viennent les questions.

Commentaires

Vous pouvez écrire des commentaires dans votre fichier AMC-TXT sur des lignes commençant par le caractère #. Ces lignes seront tout simplement ignorées par AMC.

Options générales

Voici les options que vous pouvez utiliser au début de votre fichier (dans n'importe quel ordre) :

PaperSize:

Indique le format de papier utilisé. Parmi les valeurs possibles, on trouve A3, A4, A5, A6, B3, B4, B5, B6, letter, legal, ANSIA, ANSIB, ANSIC, ANSID, ANSIE.

Lang:

donne la langue dans laquelle le questionnaire est écrit. Pour l'instant, les seules langues disponibles sont FR (français), ES (espagnol), DE (allemand), IT (Italien), NL (Néerlandais), NO (Norvégien), PT (portugais), JA (Japonais, voir la section intitulée « En japonais ») et AR (arabe, voir la section intitulée « En langue arabe »). Si vous n'utilisez pas cette option, ce sera l'anglais qui sera choisi.

Title:

Le titre de l'examen, qui sera écrit en haut de la copie.

Presentation:

Un texte introductif pour l'examen, présentant par exemple la durée, les consignes...

RandomSeed:

Si le mélange des question et des réponses ne nous convient pas, on peut toujours en changer en modifiant la graine du générateur aléatoire utilisé pour le mélange, grâce à cette option. Si la valeur fournie (à choisir entre 1 et 4194303) est modifiée, alors le mélange sera différent. Bien entendu, une fois les copies d'examen imprimées, il ne faut surtout pas modifier cette valeur !

[Note]Note

La valeur est enregistrée dans le fichier xy (sous la forme \rngstate{1}{1527384}). La valeur par défaut est 1527384.

ShuffleQuestions:

Si cette option est mise à 1 (c'est la valeur par défaut), les questions ne seront pas dans le même ordre dans chaque copie. Si vous lui donnez la valeur 0, les questions ne seront pas mélangées.

Code:

Affectez à cette option une valeur entière n (par exemple 8) pour demander la présence de cases à cocher pour que les étudiants codent leur numéro d'étudiant sur n chiffres.

CodeDigitsDirection:

Donnez à cette option la valeur horizontal ou vertical pour imposer la direction suivant laquelle les chiffres du code seront présentés. Si vous n'utilisez pas cette option, AMC choisira en fonction de la taille du code (direction horizontale pour un petit nombre de chiffres, et verticale pour un grand nombre de chiffres).

Columns:

Si vous donnez à cette option une valeur n entière supérieure à 1, le questionnaire sera écrit sur n colonnes.

CompleteMulti:

Cette option prend la valeur 1 par défaut, ce qui signifie qu'une réponse "Aucune des réponses ci-dessus n'est correcte" sera ajoutée à la fin de toutes les questions multiples de votre questionnaire. Sans celle-ci, il serait impossible de faire la différence entre "l'étudiant ne répond pas à cette question" et "l'étudiant pense qu'aucune des réponses proposées n'est exacte". Si vous ne souhaitez pas que cette dernière réponse soit ajoutée, donnez la valeur 0 à cette option.

L-None:

Cette option indique un texte qui remplacera Aucune des réponses ci-dessus n'est correcte (voir option précédente) pour votre questionnaire.

QuestionBlocks:

Si cette option prend la valeur 1 (sa valeur par défaut), toutes vos questions seront enfermées dans des boîtes (invisibles), de sorte qu'elles ne puissent pas être coupées sur deux pages, ou sur plusieurs colonnes. Avec la valeur 0, les questions pourront être coupées ci besoin, ce qui peut gagner de la place mais perd en lisibilité.

L-Question:

Cette option sert à remplacer le mot Question dans votre questionnaire si vous utilisez une autre langue que celle indiquée par l'option Lang.

L-Name:

Cette option sert à remplacer le texte Nom et prénom inscrit dans le cadre où l'étudiant doit inscrire son identité.

L-Student:

Cette option sert à remplacer le petit texte qui demande de coder son numéro d'étudiant et d'inscrire son nom sur les copies (quand l'option Code a été utilisée).

TitleWidth:

Largeur de la zone prévue pour le titre, dans le cas où on n'utilise pas Code:. La valeur par défaut est .47\linewidth.

NameFieldWidth:

Largeur de la zone destinée à l'écriture du nom et prénom de l'étudiant. On peut utiliser les unités usuelles en LaTeX. La valeur par défaut est 5.8cm si on utilise Code:, et .47\linewidth sinon.

NameFieldLines:

Nombre de lignes prévues pour l'écriture du nom et prénom de l'étudiant. La valeur par défaut est 2 si on utilise Code:, et 1 sinon.

NameFieldLinespace:

Interligne dans la zone destinée à l'écriture du nom et prénom de l'étudiant. La valeur par défaut est .5em.

Pages:

Donne un nombre de pages minimal pour le sujet. Si un sujet comporte moins de pages que cette valeur, des pages blanches seront ajoutées. Dans le cas de l'utilisation d'une feuille de réponses séparée, cette option peut être écrite sous la forme s+r (par exemple 4+2), où s sera le nombre de pages minimal pour la partie sujet et s+r le nombre de pages minimal pour le sujet complet.

ManualDuplex:

Avec la valeur 1 (ce n'est pas la valeur par défaut), chaque sujet sera constitué d'un nombre pair de pages, de telle sorte que tous les sujets pourront être imprimés manuellement à partir du fichier PDF sujet en mode recto/verso (sans l'utilisation de cette option, le début d'une copie pourraît être sur le verso de la fin de la copie précédente).

SingleSided:

Avec la valeur 1 (ce n'est pas la valeur par défaut), aucune page blanche ne sera ajoutée entre le sujet et la feuille de réponses séparée, même si le sujet comporte un nombre impair de pages. Ceci peut être utile quand les sujets sont imprimés en recto simple, ou quand il n'est pas nécessaire de séparer physiquement le sujet de la feuille de réponses.

BoxColor:

Permet de choisir une couleur pour les cases qui peuvent être cochées par les étudiants, afin de perturber le moins possible la saisie automatique à partir des scans (red, pour rouge, est une valeur commune, mais on peut aussi penser à un gris clair). La couleur fournie doit être une couleur valide pour xcolor (voir la documentation du paquet LaTeX xcolor pour plus de détails), comme red, magenta, pink, lightgray, cyan, ou bien sous la forme #RRGGBB, comme #FFBEC8 pour un rouge clair.

DefaultScoringS:

Donne le barème par défaut pour les questions simples (Reportez-vous à la section intitulée « Barème » pour la description des barèmes possibles). La valeur par défaut à cette option est le barème qui donne un point à la bonne réponse, et zéro aux autres.

DefaultScoringM:

Donne le barème par défaut pour les questions multiples (Reportez-vous à la section intitulée « Barème » pour la description des barèmes possibles). La valeur par défaut de cette option est haut=2, ce qui correspond à un barème donnant deux points pour une réponse parfaitement exacte, et qui enlève un point à chaque erreur (case cochée alors qu'elle ne devrait pas l'être, ou case non-cochée alors qu'elle devrait l'être), sans passer en-dessous de zéro.

LaTeX:

Si cette option prend la valeur 1, tous les textes de votre questionnaire sont considérés comme étant écrits en TeX (ou LaTeX). Vous pourrez ainsi écrire des formules mathématiques comme $\sqrt{a+b}$. Avec la valeur 0 (valeur par défaut), vos textes seront reproduits sans modification.

LaTeX-Preambule:

Donne des commandes LaTeX à ajouter dans le préambule (par exemple des \usepackage).

LaTeX-BeginDocument:

Donne des commandes LaTeX à ajouter au début de l'environnement document (par exemple des définitions de macros).

Disable:

Donne une liste de convertisseurs à désactiver, séparés par des virgules. Les convertisseurs disponibles sont verbatim (voir la section intitulée « Verbatim »), images (voir la section intitulée « Inclusion d'images »), embf (voir la section intitulée « Gras, italique, typewriter, souligné ») et local_latex (voir la section intitulée « Petits morceaux de LaTeX »).

PackageOptions:

Donne des options supplémentaires à transmettre au paquet LaTeX automultiplechoice (voir la section intitulée « Options du paquet »).

Sujet avec feuille de réponses séparée

Dans le cas d'un sujet avec feuille de réponses séparée, vous pourrez considérer l'emploi des options suivantes :

SeparateAnswerSheet:

Donner la valeur 1 à cette option pour obtenir une feuille de réponses séparée.

AnswerSheetTitle:

Donne le titre à inscrire en tête de la feuille de réponse.

AnswerSheetPresentation:

Donne le texte de présentation de la feuille de réponse. On pourra, par exemple, y préciser que les réponses doivent uniquement être données sur cette feuille.

AnswerSheetColumns:

Nombre de colonnes pour la feuille de réponses.

AutoMarks:

Donner la valeur 1 à cette option pour utiliser l'option automarks (voir la section intitulée « Options du paquet »).

Questions

Les questions simples (qui acceptent une et une seule bonne réponse) commencent par un * en début de ligne, et les questions multiples (celles qui peuvent comporter zéro, une ou plusieures bonnes réponses), commencent par un ** en début de ligne. Vient ensuite le texte de la question, puis les réponses, introduites par un + quand la réponse est correcte ou un - quand elle ne l'est pas.

Options pour les questions

Des options particulières peuvent être indiquées pour chaque question, entre crochets, juste après l'étoile (ou les deux étoiles pour des questions multiples) qui commence la question (sans espace avant), comme dans l'exemple suivant :

*[ordered,horiz,id=addition] Combien font
un plus un ?
- 0
- 1
+ 2

Les options disponibles sont les suivantes :

horiz

Avec cette option, les réponses se suivront horizontalement plutôt que verticalement une par ligne.

columns=n

Avec cette option, les réponses seront réparties sur n colonnes.

ordered

Avec cette option, les réponses ne seront pas mélangées dans chaque copies : elles resteront toujours dans l'ordre indiqué.

id=xxxx

Avec cette option, le nom xxxx sera donné à la question. Ce nom apparaît dans les fichiers de notes exportés par AMC pour identifier la question plus facilement. Il ne doit comporter que des caractères simples non accentués.

name a le même rôle que l'option id. Cette option est présente pour assurer la compatibilité avec d'anciennes versions, préférez l'utilisation de id.

indicative

Indique que le score affecté à cette question ne sera pas pris en compte pour le score final de l'étudiant.

next

Avec cette option, la question suivra toujours la question précédente, même lorsque l'on demande de mélanger les questions avec l'option générale ShuffleQuestions.

first

Avec cette option, la question sera toujours insérée en début de groupe (voir la section intitulée « Groupes de questions »).

last

Avec cette option, la question sera toujours insérée en fin de groupe (voir la section intitulée « Groupes de questions »).

Barèmes particuliers

Si vous voulez utiliser un barème particulier pour une question ou une réponse, vous pouvez l'indiquer entre accolades, après le signe *, **, +, ou -, et après les éventuelles options, comme dans l'exemple suivant. Reportez-vous à la section intitulée « Barème » pour la syntaxe de description des barèmes à utiliser.

*{b=2,m=-1} Quelle est la capitale de la France ?
+ Paris
- Lille
-{-2} Ouagadougou

**[ordered,horiz,id=positifs]{haut=1} Parmi les nombres suivants,
lesquels sont positifs ?
- -2
+ 2
+ 10

Questions ouvertes

Les questions peuvent être transformées en questions ouvertes en indiquant des options (voir la section intitulée « Questions ouvertes ») entre < et >, comme dans l'exemple suivant :

*<lines=4> Décrivez la lune.
-[O]{0} O
-[P]{1} P
+[V]{2} V

Lors de l'utilisation de questions ouvertes, les options générales suivantes peuvent être intéressantes :

L-OpenText:

Texte à ajouter après les questions pour demander aux étudiants d'écrire la résponse sur la feuille de réponses séparée (dans le cas où celle-ci est utilisée).

L-OpenReserved:

Texte (court) à ajouter à côté des cases à cocher des questions ouvertes, indiquant aux étudiants que ces cases sont réservées aux correcteurs.

Lignes multiples

Tout texte peut se continuer sur la ou les lignes suivantes (même si certaines sont vides), pourvu qu'elles ne puissent pas être interprétées comme un début de définition d'option générale, un début de question ou de réponse. Considérons par exemple l'écriture de question suivante :

* Combien font 2
  + 2 ?
- 0
+ 4
- 10

Cette écriture suit bien la syntaxe AMC-TXT, mais ne correspond pas à ce que l'on voulait écrire : ici, la deuxième ligne sera considérée comme une réponse possible, et non comme la suite de la question !

Un problème similaire sera rencontré dans la portion de fichier source suivante, où "Chopin:" sera considéré comme une définition d'option générale :

* Vous connaissez sans doute Frédéric
  Chopin: c'est un compositeur. De quel pays est-il
  originaire ?
+ la Pologne
- le Vénézuela
- la Suisse

La version correcte est la suivante :

* Vous connaissez sans doute Frédéric Chopin:
  c'est un compositeur. De quel pays est-il
  originaire ?
+ la Pologne
- le Vénézuela
- la Suisse

Notez enfin que pour passer à la ligne suivante, il faut laisser une ligne vide dans le fichier source de l'examen, comme ceci :

Description: Titre

Description de l'examen sur la ligne suivante.

** Question difficile.

Combien y a-t-il d'étoiles dans le ciel ?

- une
- deux
- dix millions

Titre

Vous pouvez insérer un titre en l'entourant de [== et ==].

Verbatim

Pour obtenir un bloc de texte verbatim (par exemple pour un code informatique), entourez-le de [verbatim] et [/verbatim] :

* Qu'est-ce que le code suivant écrit ?
[verbatim]
main( )
{
    printf("hello, world\n");
}
[/verbatim]

+ [| hello, world |]
- [| hello |]
- [| world |]

Gras, italique, typewriter, souligné

Les parties du textes à écrire en gras devront être entourées de [* et *]. Les parties à mettre en italique devront être entourées de [_ et _]. Pour avoir une police façon machine à écrire typewriter, le texte devra être encadré par [| et |]. Pour souligner, encadrer le texte par [/ et /].

** Choisissez parmi les expressions suivantes celles
   où le mot en italique est [*un adjectif*].
+ Une balle [_bleue_]
- Un [_livre_] rose
+ Quelle [_belle_] histoire !

Inclusion d'images

Vous pouvez inclure des images dans votre document suivant la syntaxe suivante :

![height=2cm]images/oiseau.png!

Dans cet exemple, l'image images/oiseau.png située dans le répertoire du projet sera insérée avec une hauteur de 2cm. Les options que l'on peut utiliser entre les crochets sont celles de la commande LaTeX \includegraphics (par exemple, width=1cm, ou keepaspectratio). Pour obtenir une image centrée sur une ligne et ayant pour largeur les trois quarts de la ligne, on utilisera de même :

!{center}[width=.75\linewidth]images/carte.pdf!

Petits morceaux de LaTeX

Vous pouvez inclure quelques segments de code LaTeX dans votre description en les incluant entre des double crochets, comme dans l'exemple suivant :

Les questions marquées d'un [[\multiSymbole{}]] peuvent avoir zéro, une ou plusieurs bonnes réponses.

Groupes de questions

Vous pouvez demander à ce que certaines questions restent groupées lors du mélange des questions, et ajouter un texte introductif avant ce groupe de questions (et un autre texte après), en utilisant la syntaxe suivante :

*( Les trois questions suivantes concernent Martin Luther King.

* En quelle année est-il né ?
- 1901
+ 1929
- 1968

* En quelle année est-il mort ?
- 1945
- 1515
+ 1968
- 1999

* Dans quelle ville est-il né ?
+ Atlanta
- Memphis
- New York

*) Fin des questions sur Martin Luther King. 

Vous pouvez ajouter des options à l'ouverture du groupe, comme suit :

*([shuffle=false,columns=2] Les trois questions suivantes concernent Martin Luther King.

Les options suivantes sont acceptées :

shuffle=xxx

En donnant la valeur true ou false, on demande à mélanger ou non les questions de ce groupe. La valeur par défaut est celle utilisée globalement par l'option ShuffleQuestions.

columns=n

Donne le nombre de colonnes dans lesquelles seront mises en forme les questions.

group=nom

Donne un nom au groupe (celui-ci ne sera pas visible sur le sujet, mais uniquement dans le fichier LaTeX généré à partir du fichier source AMC-TXT).

numquestions=n

Avec cette option, les n premières questions du groupes seront utilisées. Si les questions sont mélangées, cela permettra de sélectionner n questions au hasard.

[Note]Note

Les questions utilisant l'option first ou last ne sont pas concernées (et sont toujours insérées). Par ailleurs, les suites de questions regroupées en utilisant l'option next ne comptent que pour une seule question.

needspace=dim

Donne une hauteur (avec l'unité : par exemple 4cm) nécessaire pour commencer l'énoncé de ce groupe. Si la place encore disponible dans la page courante est inférieure à cette valeur, alors l'énoncé du groupe commencera sur la page suivante.

En langue arabe

La rédaction d'un questionnaire en langue arabe comporte quelques spécificités. Vous utiliserez bien entendu l'option

Lang: AR

Mais vous devrez également prêter attention aux options suivantes :

ArabicFont:

C'est la police de caractères qui sera utilisée pour les textes en arabe. Par défaut, AMC utilisera Rasheeq, une police du projet ArabEyes (disponible dans la paquet ttf-arabeyes sur debian et ubuntu par exemple).

[Note]Note

Pour pouvoir insérer des textes en d'autres caractères dans votre questionnaire, vous devrez utiliser l'option LaTeX pour passer en mode LaTeX, et englober toutes les portions de texte en caractères non-arabes par la commande LaTeX \textLR comme dans \textLR{la commande xelatex}.

En japonais

Vous pourrez construire des questionnaires incluant des caractères japonais grâce à l'option

Lang: JA

AMC fera les ajustements nécessaires pour permettre un bon rendu de ces caractères.

[Avertissement]Avertissement

Dans ce cas, AMC utilisera pTex comme moteur LaTeX. Une version récente de pTex est nécessaire. La distribution texlive 2009, disponible par exemple sur certaines anciennes versions de distributions linux, n'est pas suffisante.

Inclusion de fichiers annexes

Vous pouvez inclure le contenu d'autres fichiers à tout moment comme suit :

IncludeFile: fichier-a-inclure.txt
[Avertissement]Avertissement

Faites très attention si le fichier à inclure est utilisé par plusieurs projets ! Supposons par exemple que /home/alexis/questions-a.txt est inclus à la fois dans le projet A et le projet B. Vous avez déjà traité le projet A, et êtes en train de vous occuper du projet B. Vous ajoutez une questions dans le fichier /home/alexis/questions-a.txt, et vous modifier le barème d'une question qui existait déjà. Si vous relancez l'extraction du barème et la notation sur le sujet A, AMC verra apparaître une nouvelle question pour laquelle aucune saisie n'a été effectuée, ce qui posera des problèmes dans toute la notation !