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