diff --git a/amc-templates-vdi/[en] EPFL_templates/MC-TF-OPEN_en.tgz b/amc-templates-vdi/[en] EPFL_templates/MC-TF-OPEN_en.tgz index 1351321..5d0b74a 100644 Binary files a/amc-templates-vdi/[en] EPFL_templates/MC-TF-OPEN_en.tgz and b/amc-templates-vdi/[en] EPFL_templates/MC-TF-OPEN_en.tgz differ diff --git a/amc-templates-vdi/amc-templates-vdi.zip b/amc-templates-vdi/amc-templates-vdi.zip new file mode 100644 index 0000000..9c1115b Binary files /dev/null and b/amc-templates-vdi/amc-templates-vdi.zip differ diff --git a/amc-templates/amc_template/README b/amc-templates/amc_template/README deleted file mode 100644 index a67b96f..0000000 --- a/amc-templates/amc_template/README +++ /dev/null @@ -1,54 +0,0 @@ -Guide rapide d'utilisation du modèle : --------------------------- - -1) Placez vos questions QCM et TF dans le(s) sous-dossier(s) 'questions/[langue]/'. -Ajoutez les questions dans le fichiers section_1.tex -Concernant le mixage des questions, veuillez demander au CePRO si vous désirez avoir un autre mixage pour les questions à choix multiple que toutes les questions et réponses mélangées. - -Veuillez utiliser les préfixes pour les types de questions : -SCQ : question avec une seule réponse correcte possible -MCQ : question avec plusieurs réponses correctes possibles -TF- : question vrai/faux - -Par exemple : -\begin{question}{SCQ-complexes-A} ... -\begin{questionmult}{MCQ-complexes-A} ... -\begin{question}{TF-XXX} ... - -Créer un fichier par question -Mettez un ID unique pour chaque question. Le seul caractère spécial autorisé est le tiret - - ---- -2) Placez vos fichiers multimédias (le cas échéant) dans les sous-dossiers "media". -Dans les commandes "\includegraphics" de vos fichiers de questions, préfixez votre chemin d'accès avec le même nom de dossier. ex : -\includegraphics[width=0.5\textwidth]{media/BarreQuiGlisse2.eps} - ---- -3) Placez vos questions ouvertes dans le fichier 'extra_section.tex'. Veuillez demander au CePRO si vous avez des besoins particuliers. -Veuillez utiliser le préfixe OPEN- pour vos questions ouvertes -Mettez un ID unique pour chaque question. Le seul caractère spécial autorisé est le tiret - - -Insérez vos corrector box -\correcteurXXX{OPEN-A}{~} ... - ---- -4) Editez le fichier exam-info.tex avec les informations sur l'examen. - ---- -5) Editez le fichier 'first_page.tex' avec les instructions pour l'examen. Les instructions à adapter sont entre les lignes - -%%% INSTRUCTIONS D'EXAMEN À ADAPTER - commencer - [...] -%%% INSTRUCTIONS D'EXAMEN À ADAPTER - FIN - ---- -6) Dans un terminal Linux ou MacOS : -- Exécutez "./build.sh" pour construire le PDF. -- Exécutez "./clean.sh" pour supprimer les fichiers temporaires et le PDF. - ---- -Notes : ------- - -* Pour les paquets supplémentaires, veuillez les ajouter dans le fichier 'packages.tex', sous la ligne %% Additional packages -* Pour les commandes supplémentaires, veuillez les ajouter dans le fichier 'commands.tex' diff --git a/amc-templates/amc_template/build.sh b/amc-templates/amc_template/build.sh deleted file mode 100755 index ee3bbd6..0000000 --- a/amc-templates/amc_template/build.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -pdflatex -halt-on-error -interaction batchmode exam.tex > /dev/null 2>&1 && rm -f exam.amc exam.aux exam.log && echo "OK" && exit 0 - -# Otherwise run pdflatex in interactive mode -rm -f exam.amc exam.aux exam.log -echo "An error occured. Starting over in interactive mode." -echo -n "Press ENTER to continue, Ctrl-C to exit." -read ans -pdflatex exam.tex diff --git a/amc-templates/amc_template/clean.sh b/amc-templates/amc_template/clean.sh deleted file mode 100755 index 6f1de77..0000000 --- a/amc-templates/amc_template/clean.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -rm -f exam.amc exam.aux exam.log exam.pdf -exit 0 diff --git a/amc-templates/amc_template/exam.dvi b/amc-templates/amc_template/exam.dvi deleted file mode 100644 index 2822b74..0000000 Binary files a/amc-templates/amc_template/exam.dvi and /dev/null differ diff --git a/amc-templates/amc_template/exam.tex b/amc-templates/amc_template/exam.tex index 82f579a..e5cfaf4 100644 --- a/amc-templates/amc_template/exam.tex +++ b/amc-templates/amc_template/exam.tex @@ -1,83 +1,86 @@ \documentclass[a4paper]{article} \usepackage[utf8]{inputenc} %Unicode \usepackage[T1]{fontenc} \usepackage{xcolor} \usepackage{fix-cm} \usepackage[lang=FR,bloc]{automultiplechoice} % Color used for signature box \definecolor{light-Gray}{gray}{0.95} \input{./packages.tex} \input{./commands.tex} \input{./style_extra.tex} + + + %%% increase the space between header and bottom for AMC control dots \renewcommand{\baselinestretch}{1.10}% ESPACEMENT VERTICAL \geometry{includeheadfoot,hmargin=2.25cm,headheight=2cm,headsep=0.2cm} \geometry{footskip=.8cm,top=.5cm,bottom=1.1cm,paper=a4paper} \newcommand{\TRUE}{ \bareme{b=1,m=-1} \begin{choiceshoriz}[o] \bonne{VRAI} \mauvaise{FAUX} \end{choiceshoriz} \medskip } \newcommand{\FALSE}{ \bareme{b=1,m=-1} \begin{choiceshoriz}[o] \mauvaise{VRAI} \bonne{FAUX} \end{choiceshoriz} \medskip } %%% Randomseed \input{./random-seed.tex} %%% Exam info \input{./exam-info.tex} \begin{document} %%% Import sections \input{./sections.tex} \def\multiSymbole{} \makeatletter \def\AMCforcecorrect{\AMC@correctrue} \makeatother \AMCforcecorrect \newcommand{\sujet}{ \onecopy{1}{ \setcounter{equation}{0} \input{./first_page.tex} \input{./random-sections.tex} % \input{./header_1.tex} % \input{./questions/fr/mc1.tex} % \input{./questions/fr/mc2.tex} % \input{./questions/fr/mc3.tex} % % \input{./header_2.tex} % \input{./questions/fr/tf1.tex} % \input{./questions/fr/tf2.tex} \input{./extra_section.tex} % Make sure that all the exams have the same number of pages (otherwise Repro will not be able to print!) \loop \ifnum \thepage < \totalPages \clearpage ~ \repeat \AMCassociation{\ID} } } \csvreader[head to column names]{./students.csv}{}{\sujet} \end{document} diff --git a/local/epfl/check-scipers b/local/epfl/check-scipers index 034d5c5..3406547 100755 --- a/local/epfl/check-scipers +++ b/local/epfl/check-scipers @@ -1,163 +1,167 @@ #!/usr/bin/env php $iline) { $iline = explode($options['iseparator'], $iline); // Format input_student $input_student = array(); foreach (array_keys($oformat) as $key) { switch ($key) { case 'id': - $input_student[$key] = $i+1; + if (array_key_exists($key, $iformat)) { + $input_student[$key] = $iline[$iformat[$key]]; + } else { + $input_student[$key] = $i+1; + } break; default: if (array_key_exists($key, $iformat)) { $input_student[$key] = $iline[$iformat[$key]]; } else { $input_student[$key] = null; } } } # Add empty email if needed if (array_key_exists('email', $input_student) and is_null($input_student['email'])) $input_student['email'] = 'n/a'; # Add version number if needed if (array_key_exists('version', $input_student) and is_null($input_student['version'])) { $input_student['version'] = $options['oversions'][($input_student['id']-1) % $nb_of_versions]; } # fetch LDAP data $LDAP->find_by_sciper($input_student['sciper'], 'student', 1); $output_student = $LDAP->get_entries(); if (is_array($output_student) && count($output_student) == 1) { $output_student = $output_student[0]; } else { $output_student = array( 'found' => 0 ); } # add some info if ((bool)$output_student['found']) { $output_student['status'] = 'OK'; } else { $output_student['status'] = 'NOT FOUND'; } # Merge info $merged_student = array_merge($input_student, $output_student); # Print line $oline = array(); foreach (array_keys($oformat) as $key) $oline[] = $merged_student[$key]; echo implode($options['oseparator'], $oline)."\n"; } # Add extra students $nb_of_extra_exams = $options['oextras']; $first_extra_id = $i+2; $current_extra = 1; for ($extra_id = $first_extra_id; $extra_id < $first_extra_id+$nb_of_extra_exams; $extra_id++) { $oline = array(); foreach (array_keys($oformat) as $key) { switch ($key) { case 'id': $oline[] = $extra_id; break; case 'sciper': $oline[] = 999000 + $current_extra; break; case 'name': $oline[] = 'Spare-'.$current_extra; break; case 'section': $oline[] = 'XXX'; break; case 'version': $oline[] = $options['oversions'][($extra_id-1) % $nb_of_versions]; break; default: $oline[] = 'n/a'; break; } } $current_extra++; echo implode($options['oseparator'], $oline)."\n"; } exit; ?>