HOWTO

Philosophie générale

Le module de Mineure Informatique peut être vu sous plusieurs angles : la *vue enseignants*, la *vue élèves*, la *vue administration*.

La vue enseignant

L'équipe pédagogique travaille avec deux outils :

  • un site "Plone": https://info.enstb.org/enseignement/tc/MineureGlop,
  • et un "SVN": https://svn.enstb.org/ens/tc/glop/.
  • **Plone :** ces pages web rédigées de manière "collaboratives" (plus ou moins) sont le "portail" du module à l'attention des enseignants. On y trouve l'organisation générale du module au cours du semestre, les descriptifs des séances, quelques remarques, et des pointeurs vers les sujets et corrections qui sont déposés sur le SVN.

    **SVN :** ce système de gestion de versions de documents est utilisé par les enseignants qui rédigent et modifient les sujet et autres documents de la mineure. On y trouve donc les sources LaTeX des différents documents, et les versions PDF et PS.

    - Les versions PDF sont destinées à être affichées à l'écran, alors que les versions PS sont destinées à être imprimées et distribuées aux élèves, et sont agencées en deux pages par feuille (économie de papier). - Les sources LaTeX des sujets sont mis en communs avec le module de la majeure. Une petite option LaTeX mineure/majeure fait la différence lorsque cela est nécessaire, mais dans l'ensemble, ce sont les mêmes sujets. - La vue élèves. Les documents destinés aux élèves sont déposés sur "Moodle":http://formations.enst-bretagne.fr/fad/. - **Moodle :** c'est la plate-forme officielle choisie par la DE pour échanger avec les élèves. Par conséquent on évite d'utiliser les autres moyens d'échanges (fichiers par émail, dépôts sur BSCW, ou même sur Plone qui est destiné aux enseignants). Notez que pour l'organisateur du module, cela implique de la recopie de fichiers entre le SVN et Moodle... - **~lib-src :** c'est un compte utilisateur Unix un peu spécial sur lequel sont déposés notamment des sources Java utilisés pour certains TP. Ce compte est là pour des raisons historiques, mais ce fonctionnement n'est plus dans la philosophie de l'école. Cependant, cela reste bien pratique, et en attendant de trouver aussi simple on continue à l'utiliser. Par exemple, les fichiers qu'il contient sont déposés sur Moodle pour la séance de TP correspondante... mais c'est aussi bien qu'ils soient accessibles dans l'espace de fichiers Unix... - **La vue administrative.** Les fiches pédagogiques du module sont déposées sur "AUSSI":http://aussi.enst-bretagne.fr. Utilisation - "Plone":https://info.enstb.org/enseignement/tc/MineureGlop - **Votre compte.** En principe, les pages web de cette arborescence sont accessibles en lecture à tous. Elles sont modifiables par les membres de l'équipe pédagogique. Pour cela, vous devez d'abord vous créer un compte sur Plone (si cela n'est pas déjà fait) et demander à ce qu'un administrateur du Plone (Ronan ou Jérôme) vous ajoute dans le groupe "isi_tc_glop" ("isi" est l'ancien nom des modules du département Info, maintenant appelés "inf"). - **Arborescence.** - On trouve un gros répertoire "Les séances" contenant un sous répertoire par séance, et dans chaque sous-répertoire un descriptif de la séance, le sujet, un corrigé, et les documents annexes. - On trouve également plusieurs répertoires correspondant à l'organisation de chaque semestre. - **Qu'est-ce qui bouge ?** Tout est susceptible de bouger, mais selon des critères différents... - Ordonnancement des séances. Il semble que l'on soit arrivé à une solution acceptable, donc à priori on ne change plus l'ordre des séances. - Typage des séances. Dans l'école les séances sont typées "cours" "PC" "BE" "STP" "TP" selon trois grandeurs orthogonales : la durée (3h ou 1h30), la taille du groupe (toute la classe, grand groupe, petit groupe), le type de salle (salle multimédia (plutôt réservée au cours), avec ordinateurs (pour les TP et STP), ou simple (pour les BE et PC)). Vous remarquerez qu'il y a un petit problème de couverture, mais le plus grave c'est que dans la pratique il semblerait que ce ne soit pas un typage fort (i.e. concrètement, tout le monde s'en fout). Par conséquent, ne pas attacher trop d'importance au type indiqué sur le sujet (i.e. STP, PC, ...), mais s'intéresser plutôt aux indications données dans le descriptif (i.e. "petit groupe" "sur machine" etc.) - Nom du module. La nomenclature utilisée par la DE est susceptible de changer (fortement), par conséquent on n'utilise pas les nom "INF202 INF203" pour référencer les choses. - Concrètement : pour référencer les choses on n'utilise pas les noms "administratifs" (i.e. INF202-STP1), on utilise au contraire des mots-clés en français qui rappellent la thématique de la séance (i.e. "expression des besoins"). Parcourez le répertoire "Les séances", vous observerez que le titre des séances est le nom administratif (ça c'est facile à changer) mais que l'URL est basée sur un mot-clé en français... - "SVN":https://svn.enstb.org/ens/tc/glop/ - **Votre compte.** Demandez à un administrateur du SVN (Guillaume ou Ronan) de vous créer un compte. Le plus simple pour eux est de vous mettre le même accès que sous Unix, par conséquent, lorsque vous leur enverrez un mail pour demmander l'ouverture de votre compte, recopiez le résultat de la commande Unix 'ypmatch $LOGNAME passwd'. - **Interface web.** Si vous ne modifiez pas les documents déposés, l'interface web ou WebDAV vous suffit. - Interface "SVN":https://svn.enstb.org/documentation/svn/. Si vous voulez modifier des documents, vous devez utiliser l'interface SVN qui gérera les problèmes de modifications concurrentes et les versions. - Installation. Sous Debian 'apt-get install subversion'. (Pour les autres systèmes, je ne sais pas. :-) - Première utilisation (check out) : placez vous dans votre répertoire de travail et tapez 'svn co https://svn.enstb.org/ens/tc/glop'. Note : si vous avez demandé une "sauvegarde":../../../projets/rire/documentation/amanda de votre répertoire de travail, il serait bon d'exclure votre copie local de repository SVN de cette sauvegarde... - Utilisation suivantes (update) : placez vous dans le sous-répertoire svn pour lequel vous voulez récupérer la dernière version et tapez 'svn update'. - Déposer ses modifications (commit) : placez vous dans le sous-répertoire qui contient vos modifications ; éventuellement placez les fichiers nouveaux qui vous avez fait sous le contrôle de svn avec la commande 'svn add ' ; puis déposez vos modifications sur le serveur svn avec la commande 'svn commit' (on vous demande de rédiger un petit commentaire sur la nouvelle versions que vous déposez, ne racontez pas votre vie, mais soyez explicite). - **LaTeX.** Les sujets et la plupart des documents sont du LaTeX. Fabien à fait créé une feuille de style dédiée à cela (la classe "enstb.cls":https://svn.enstb.org/ens/utils/styles/trunk/doc/main.ps). - **Installation.** Vous avez besoins d'une distribution LaTeX, et de Perl. - Paquetages Debian 'apt-get install perl tetex-base tetex-bin tetex-doc tetex-extra lmodern latex-beamer pgf ps2eps' - Dans tous les cas, il va vous manquer le paquetage LaTeX 'newfile.sty'. Récupérez le fichier "'newfile.zip'":http://texcatalogue.sarovar.org/entries/newfile.html. Vous pouvez faire une recherche sur "ctan.org":http://www.ctan.org/search.html ou dans le "texcatalogue.sarovar.org":http://texcatalogue.sarovar.org/brief.html Ensuite, installez ce zip par exemple dans '/usr/local/share/texmf/tex/latex'. Dans le répertoire 'newfile', exécutez 'latex newfile.ins; latex newfile.dtx; latex newfile.dtx'. Ensuite exécutez la commande 'texhash' pour qu'il soit pris en compte automatiquement lors des compilations LaTeX. - Pour les dessins de diagrammes UML, Fabien utilise le paquetage LaTeX "pst-uml":http://www.ctan.org/tex-archive/graphics/pstricks/contrib/pst-uml/ Récupérez donc également ce paquetage sur votre miroir CTAN préféré et installez-le comme précédemment. - Récupérez également l'outil "latexmk":http://texcatalogue.sarovar.org/entries/latexmk.html. depuis votre miroir CTAN préféré. Copiez le fichier 'latexmk.pl' par exemple dans '/usr/local/bin' et créez un lien symbolique dessus (ou renomez-le) avec le nom 'latexmk' (i.e. l'extension '.pl' a disparue). Copiez également 'latexmk.1' dans '/usr/local/man/man1' (ça peut servir). - Notes : - Fabien à tendance à utiliser les toutes dernières versions de beamer et pgf. Si votre paquetage Debian n'est pas assez up-to-date, le mieux est de récupérer les dernières version sur le CVS de sourceforge : "beamer":http://sourceforge.net/cvs/?group_id=92412 et "pgf":http://sourceforge.net/cvs/?group_id=142562. Pour cela (sous root) :
    mkdir -p /usr/local/share/texmf/tex/latex 
    cd /usr/local/share/texmf/tex/latex 
    cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/latex-beamer login (le mot de passe est vide, tapez ENTREE) 
    cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/latex-beamer co -P latex-beamer 
    cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/pgf login (sans mot de passe) 
    cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/pgf co -P pgf
    cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/pgf co -P fig2pgf 
    texhash 
    cd fig2pgf; make install
    - Attention : si vous faites ça (récupérer pgf depuis Sourceforge) vous aurez certainement besoin d'installer le paquetage LaTeX "xkeyval":http://www.ctan.org/tex-archive/macros/latex/contrib/xkeyval/. Installez-le dans '/usr/local/share/texmf/tex/latex', et faites 'texhash'. - Une autre chose bonne à savoir : l'environnement 'herepscode' de la classe 'enstb.cls' (qui fait des jolies boites roses à coins ronds) utilise une petite astuce LaTeX : exécuter une commande Unix en cours de compilation LaTeX. Dans le cas présent, cet environnement génère un fichier d'instructions spéciales et appelle un script Perl dessus qui génère à son tour un fichier LaTeX et un fichier PDF qui sont insérés dans le document LaTeX en cours de compilation... Vous avez bien suivi ? Bref, tout ceci est possible grâce à la commande LaTeX '\write18{}' qui permet de lancer une commande shell en cours de compilation. Cependant, par défaut et pour des raisons de sécurité, cette fonctionnalité est désactivée dans LaTeX. Il faut alors soit lancer la commande latex avec l'option '-shell-escape' ou '-enable-write18', ou bien modifier la configuration de LaTeX sur votre système. (Sur ma distribution Debian, dans le fichier '/etc/texmf/texmf.cnf', on peut changer 'shell_escape = f' en 'shell_escape = t'.) En principe, vous n'avez rien à faire, la commande 'makeDoc.pl' lance latex avec les bonnes options... et tout devrait bien se passer... normalement... Je vous racompte ça juste au cas où vous auriez des erreurs '! LaTeX Error: File herediag1 not found.' Ca peut venir de là. Ou alors c'est que vous avez oublié d'installer l'outil 'epstopdf', ou que vous avez installé 'ps2epsi' à la place de 'ps2eps'... - **Evolution en cours de l'outil makeDoc.pl au 2 octobre 2006** Pour éviter de trop gros volumes de fichiers produits, Fabien a remplacé la **génération de fichier 2 pages par feuille** (destinée à l'impression) **en PS par du PDF**. Pour générer ces derniers, il faut pour l'instant utiliser l'option -ps (!). Attention, pour que cela fonctionne effectivement, il faut disposer de la commande "pdfnup" (qui est dans le paquet debian pdfjam). D'après Christophe, il faudrait aussi disposer du paquetage latex pdfpage. - **Compilation.** Commencez par lire la documentation rédigée par Fabien, "ici":../Glop/Compilation, "ici":https://svn.enstb.org/ens/tc/glop/README, et encore . Vous l'avez compris, on utilise plein de paquetages LaTeX, et des scripts Perl. Pour faire court, le script Perl le plus important est 'makeDoc.pl'. Ce script lance la compilation LaTeX du document passé en ligne de commande (appelé dans la pluspart des cas 'main.tex'). Par défaut makeDoc.pl compile la version de la majeure; pour la version mineure il faut préciser l'option '-mineure'. Ce script génère deux version : la version 'sujet', et la version 'correction' (le script ajoute l'option LaTeX correspondante). Pour chaque version un fichier .pdf et un fichier .ps sont générés. Donc, concrètement, makeDoc.pl s'utilise de la manière suivante : - Pour compiler un sujet (qui inclut éventuellement sa correction) : - le source LaTeX porte le nom 'main.tex' - commande : 'makeDoc.pl -mineure main.tex' - si en cours de débuggage du latex, ajouter l'option '-d' - Pour compiler un autre type de document - par exemple source LaTeX : 'le_document.tex' - commande : 'makeDoc.pl -mineure -nocor -sujet=le_document le_document.tex' - **Makefile** Par ailleurs, dans chaque répertoire concernant un sujet de mineure (i.e. les sujets spécifiques à la mineure plus les sujets communs à la mineure et la majeure; pour les sujets spécifiques à la majeure, je laisse Fabien arbitrer), j'ai ajouté un fichier 'Makefile' pour encapsuler les appels aux scripts Perls avec leurs options spécifiques. C'est juste histoire d'avoir un *constructeur* standard. Ces Makefile ont plusieurs entrées : 'all', 'mineure', 'majeure', et 'clean'. Comme vous le devinez, il suffit de taper 'make mineure' pour regénérer les documents. Ceci est valable dans chaque sous répertoire de chaque sujet, mais c'est également valable dans le répertoire racine 'svn/ens/tc/glop' qui contient également un Makefile récursif. - **update-semestre.sh** est un petit script shell qui se propose de mettre à jour la macro '\date{}' des fichiers LaTeX. Si on le lance sans argument, il se contente d'afficher les dates qu'il trouve et vous en suggère une nouvelle. - **Gestion des fichiers** - **fichiers_a_imprimer_mineure.sh** est un script shell qui récupère les documents de la mineure dans votre copie du svn et les place dans votre répertoire courant en les renommant sous la forme 'INF202-TP1.pdf', 'INF203-C1.pdf', etc. Bien évidemment ces noms sont fortement dépendant de la programmation du module ! Les documents ainsi collectés sont au format "à imprimer", c'est à dire en 2 pages par feuille. Il ne reste plus qu'à envoyer tout ces fichier à Valérie pour qu'elle les fasse imprimer et distribuer aux élèves. On gère généralement à part la première séance puisque les liste d'élève ne sont pas encore arrétées. Dans ce cas là on distribue nous même les documents en salle. - **fichiers_pour_moodle_mineure.sh** fait un peu la même chose mais il collecte les documents "à afficher" (i.e. en 1 page par feuille). On en fait une archive zip que l'on dépose et dés-archive dans le répertoire "fichiers/documents":http://formations.enst-bretagne.fr/fad/files/index.php?id=19&wdir=%2Fdocuments de Moodle. Additifs divers : **Inclure un document html dans le latex (GO)** Si le document tient en une page ou moins, on peut produire une version PS par la commande suivante : ps2html < inputfilename.html -o outputfilename.ps Si le document s'étale sur plusieurs pages, il faut générer un PS pour chaque page. On pourra utiliser pour faire cela un navigateur web en imprimant chaque page dans un fichier-pi.ps. Il faut ensuite générer la version EPS et PDF de chaque fichier (le PDF n'étant utile que si l'on souhaite produire le doc en PDF avec « pdflatex ») : ps2eps fichier-pi.ps; epstopdf fichier-pi.eps NB : l'utilisation de la commande ps2pdf est déconseillée si l'on veut préserver les hyperliens dans le PDF final. Pour insérer le ou les fichiers résultants dans le latex, on pourra utiliser l'extension graphics ainsi : \begin{figure} \includegraphics[height=\textheight]{path/filename-pi} \end{figure} Il convient de ne pas ajouter de suffixe au nom du fichier, ainsi l'outil utilisé (latex, pdflatex) trouvera le fichier qui lui convient. L'option [height=\textheight] permet éventuellement de mettre le contenu de la page importé à l'échelle de la page du document produit (si c'est la largeur qui est excédentaire, on remplacera height par width).
    fdagnat
    Last modified: Wed Nov 29 18:28:19 CET 2006