parent
346b8b25f0
commit
49964ce786
@ -0,0 +1,135 @@
|
||||
% -*- coding: utf-8; -*-
|
||||
\documentclass[a4paper,12pt]{article}
|
||||
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage[french,british]{babel}
|
||||
|
||||
|
||||
%%%%%%%%% Gestion de la correction
|
||||
|
||||
\usepackage{ifthen}
|
||||
\usepackage{framed}
|
||||
\usepackage{environ}
|
||||
\usepackage{xcolor}
|
||||
\colorlet{shadecolor}{gray!10!red!5}
|
||||
|
||||
\ifdefined\iscorrec % Définition depuis le script d'appel
|
||||
\else
|
||||
\def\iscorrec{1} % 0=> sujet, 1=>corrigé
|
||||
\fi
|
||||
|
||||
%%% \begin{correction}....\end{correction}
|
||||
% le contenu ne s'affiche que si \iscorrec=1
|
||||
|
||||
\NewEnviron{correction}{\ifthenelse{\iscorrec=1}{%
|
||||
\medskip\medskip\par\begin{shaded}\noindent{\bf Solution:} \BODY \end{shaded}
|
||||
}{}}
|
||||
|
||||
|
||||
%%%%%%%%% Paramètres individuels du sujet
|
||||
|
||||
%%% Valeurs par défaut (pour une compilation isolée)
|
||||
|
||||
\ifdefined\assignedparameters\else
|
||||
\def\assignedparameters{1,1,1,1} % dans cet exemple, 4 paramètres requis
|
||||
\fi
|
||||
|
||||
%%% Liste permettant d'accéder aux assignedparameters: \ListAP[1], \ListAP[2], etc.
|
||||
|
||||
\usepackage{listofitems}
|
||||
\ifx\assignedparameters\empty % (erreur de \readlist dans ce cas)
|
||||
\else
|
||||
\readlist*\ListAP{\assignedparameters}
|
||||
\fi
|
||||
|
||||
%%% Switch de versions, définie ici "à vide" pour mettre du renewcommand plus tard
|
||||
|
||||
\newcommand{\switch}{}
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
\begin{document}
|
||||
|
||||
\noindent BUT, 1ère année \hfill 2021-22
|
||||
|
||||
\begin{center} \Large Examen de math \end{center}
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%
|
||||
|
||||
\subsection*{Exercice 1}
|
||||
|
||||
|
||||
\def\versionExo{\ListAP[1]}
|
||||
|
||||
\ifnum\versionExo=1
|
||||
MF1
|
||||
\fi
|
||||
\ifnum\versionExo=2
|
||||
PB1
|
||||
\fi
|
||||
\ifnum\versionExo=3
|
||||
FG1
|
||||
\fi
|
||||
\ifnum\versionExo=4
|
||||
PL1
|
||||
\fi
|
||||
|
||||
\subsection*{Exercice 2}
|
||||
|
||||
\def\versionExo{\ListAP[2]}
|
||||
|
||||
\ifnum\versionExo=1
|
||||
MF2
|
||||
\fi
|
||||
\ifnum\versionExo=2
|
||||
PB2
|
||||
\fi
|
||||
\ifnum\versionExo=3
|
||||
FG2
|
||||
\fi
|
||||
\ifnum\versionExo=4
|
||||
PL2
|
||||
\fi
|
||||
|
||||
\subsection*{Exercice 3}
|
||||
|
||||
\def\versionExo{\ListAP[3]}
|
||||
\ifnum\versionExo=1
|
||||
MF3
|
||||
\fi
|
||||
\ifnum\versionExo=2
|
||||
PB3
|
||||
\fi
|
||||
\ifnum\versionExo=3
|
||||
FG3
|
||||
\fi
|
||||
\ifnum\versionExo=4
|
||||
PL3
|
||||
\fi
|
||||
|
||||
\subsection*{Exercice 4}
|
||||
|
||||
\def\versionExo{\ListAP[4]}
|
||||
|
||||
\ifnum\versionExo=1
|
||||
MF4
|
||||
\fi
|
||||
\ifnum\versionExo=2
|
||||
PB4
|
||||
\fi
|
||||
\ifnum\versionExo=3
|
||||
FG4
|
||||
\fi
|
||||
\ifnum\versionExo=4
|
||||
PL4
|
||||
\fi
|
||||
|
||||
\end{document}
|
||||
|
||||
|
@ -0,0 +1,49 @@
|
||||
=======================================================================================
|
||||
Exemple 2 : idem + génération de sujets individualisés avec latex
|
||||
=======================================================================================
|
||||
|
||||
|
||||
assignation.ods : coordonnées et assignation des sujets pour chaque étudiant
|
||||
|
||||
Examen.tex : sources du sujet d'examen (incluant différentes versions possibles + corrections)
|
||||
|
||||
|
||||
GÉNÉRATION DES SUJETS
|
||||
======================
|
||||
|
||||
- Ouvrir un terminal dans ce répertoire, taper 'ruby genere_sujets.rb'
|
||||
|
||||
- Lit "assignation.ods", récupère les paramètres de chaque étudiant, et génère son sujet individuel en conséquence, avec pdflatex.
|
||||
|
||||
- Les emplacements des sujets, nom de fichier d'assignation, etc, se configurent : ouvrir le fichier genere_sujets.rb avec un éditeur de texte
|
||||
|
||||
- Lire les sources dans 'Examen.tex' afin de comprendre le lien entre "assignation.ods" et les variables latex correspondantes
|
||||
|
||||
|
||||
ENVOI DES SUJETS
|
||||
================
|
||||
|
||||
- Ouvrir un terminal dans ce répertoire, taper 'ruby envoie_sujets.rb'
|
||||
|
||||
- Fonctionne exactement comme dans l'exemple 1
|
||||
|
||||
|
||||
AIDE À LA CORRECTION
|
||||
====================
|
||||
|
||||
- Fonctionne exactement comme dans l'exemple 1 (les RENDUS ne sont pas remis ici, voir l'exemple 1)
|
||||
|
||||
|
||||
Exécutables requis:
|
||||
==================
|
||||
|
||||
Pour tous les scripts:
|
||||
- ruby (avec les quelques "gem" requis installés -- a priori ils sont plutôt standard)
|
||||
- unoconv (version ligne de commande de libreoffice)
|
||||
|
||||
Pour la génération basique de sujets:
|
||||
- pdflatex
|
||||
|
||||
Pour l'aide à la correction:
|
||||
- un navigateur de fichier, lecteur de photos, lecteur de pdf, etc.
|
||||
- wmctrl (manipulation des fenêtres x11 en ligne de commande) -- optionnel
|
Loading…
Reference in new issue