[Résolu] Inverser l'ordre des exercices. Gestion des exos

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

[Résolu] Inverser l'ordre des exercices. Gestion des exos

Messagepar GRSG » Lundi 15 Février 2010, 09:43

Bonjour,

d'abord un exemple pour expliquer ma demande:

Code: Tout sélectionner
\begin{exercice}{1}
C'est l'exercice 1 qui paraitra en première place
\end{exercice}

\begin{exercice}{3}
C'est l'exercice qui est en deuxième position dans mon fichier source mais que je voudrais faire apparaître en troisième position après la compilation
\end{exercice}

\begin{exercice}{2}
C'est l'exercice qui est en troisième position dans mon fichier source mais que je voudrais faire apparaître en deuxième position après la compilation
\end{exercice}


Est-il possible de créer cet environnement {exercice} avec comme paramètre, son positionnement dans la feuille d'exercices après compilation?

Merci pour vos réponses.

Gabriel
Dernière édition par GRSG le Mercredi 26 Mai 2010, 09:08, édité 1 fois.
GRSG
Méga-utilisateur
 
Messages: 290
Inscription: Mercredi 08 Octobre 2008, 08:45
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: Inverser l'ordre des exercices

Messagepar GRSG » Mercredi 17 Février 2010, 08:03

Bonjour,
J'ai trouvé une solution avec la création de fichiers externes mais je pense qu'il y certainement mieux.
Code: Tout sélectionner
\documentclass{article}

\usepackage{verbatim}
\usepackage{multido}
 
\makeatletter
\newwrite\verbatim@out
\newenvironment{exo}[1]{\@bsphack
\immediate\openout \verbatim@out exercice#1.tex
\let\do\@makeother\dospecials\catcode`\^^M\active
\def\verbatim@processline{%
\immediate\write\verbatim@out{\the\verbatim@line}}%
\verbatim@start}
{}
\newcommand{\finwrite}{\immediate\closeout\verbatim@out\@esphack}
\makeatother
 
\begin{document}
\begin{exo}{1}
 Voici l'exercice 1
\end{exo}

\begin{exo}{3}
Voici l'exercice 3
\end{exo}

\begin{exo}{2}
Voici l'exercice 2
\end{exo}

\finwrite
\multido{\i=1+1}{3}
{\input{exercice\i.tex}}
\end{document}


Gabriel
GRSG
Méga-utilisateur
 
Messages: 290
Inscription: Mercredi 08 Octobre 2008, 08:45
Statut actuel: Actif et salarié | Enseignant

Re: Inverser l'ordre des exercices

Messagepar pg » Mercredi 17 Février 2010, 13:17

Mieux, je ne sais pas, mais tu peux essayer de mettre les exercices dans des boîtes, ça évite d'avoir à faire des fichiers externes.

Code: Tout sélectionner
\documentclass{article}

%\usepackage{etex}% si jamais il y a beaucoup d'exercices, permet d'augmenter le nombre de boîtes

\usepackage{multido}

\makeatletter
\def\globallrbox#1{%
  \edef\reserved@a{%
    \endgroup
    \global\setbox#1\hbox{%
      \begingroup\aftergroup}%
        \def\noexpand\@currenvir{\@currenvir}%
        \def\noexpand\@currenvline{\on@line}}%
  \reserved@a
    \@endpefalse
    \color@setgroup
      \ignorespaces}
\def\endgloballrbox{\unskip\color@endgroup}
\makeatother

\newenvironment{exo}[1]
  {\expandafter\newsavebox\expandafter{\csname boiteexo#1\endcsname}%
   \begin{globallrbox}{\csname boiteexo#1\endcsname}
   \begin{minipage}{\textwidth}\textbf{Exercice~#1.}}
  {\end{minipage}\end{globallrbox}}

\begin{document}

\begin{exo}{1}
Voici l'exercice 1
\end{exo}

\begin{exo}{3}
Voici l'exercice 3
\end{exo}

\begin{exo}{2}
Voici l'exercice 2
\end{exo}

\multido{\i=1+1}{3}
{\addvspace{\topsep}\usebox{\csname boiteexo\i\endcsname}\endgraf\addvspace{\topsep}}

\end{document}
pg
Modérateur
 
Messages: 2592
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Inverser l'ordre des exercices

Messagepar GRSG » Samedi 20 Février 2010, 07:18

OK merci;
Je vais essayer de comprendre tout çà.

En fait, j'ai besoin de cette commande pour préparer mes feuilles de colles...

Donc j'ai en source, pour un chapitre, en gros une centaine d'exercices (questions de cours, questions courtes, applications,...)
et je souhaite pouvoir faire une extraction ordonnée comme par exemple
Code: Tout sélectionner
\begin{exo}
Exercice 1 (celui là n'est pas retenu)
\end{exo}

\begin{exo}{1}
un exercice qui est à 2ème place dans le source mais à la première dans l'ordre de ma feuille
\end{exo}

\begin{exo}
Exercice (celui là non plus n'est pas retenu)
\end{exo}

\begin{exo}{3}
un exercice qui est à 4ème place dans le source mais à la troisième dans l'ordre de ma feuille
\end{exo}

\begin{exo}{2}
un exercice qui est à 5ème place dans le source mais à la deuxième dans l'ordre de ma feuille
\end{exo}



En fait (mais ce n'est peut être pas possible) s'il n'y a pas d'arguments, on ne retient pas et s'il y en a un, on le place à la demande.

Encore merci;

Gabriel
GRSG
Méga-utilisateur
 
Messages: 290
Inscription: Mercredi 08 Octobre 2008, 08:45
Statut actuel: Actif et salarié | Enseignant

Re: Inverser l'ordre des exercices

Messagepar Minibob59 » Samedi 20 Février 2010, 10:05

Il y a le logiciel TeXoMaker qui permet de gérer une base de données d'exercices et de créer ainsi des documents "compilation". Personnellement, je ne l'ai jamais essayé, mais la description du site et de ce que tu voudrais faire semblent concorder... :)
Minibob59 !
Minibob59
Kilo-utilisateur
 
Messages: 234
Inscription: Dimanche 24 Janvier 2010, 11:14
Localisation: Palaiseau
Statut actuel: Post-bac | Ecole d'ingénieur

Re: Inverser l'ordre des exercices

Messagepar projetmbc » Samedi 20 Février 2010, 10:49

Bonne indication de Minibob.
projetmbc
Péta-utilisateur
 
Messages: 1895
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Re: Inverser l'ordre des exercices

Messagepar GMaths » Samedi 20 Février 2010, 11:24

Minibob59 a écrit:Il y a le logiciel TeXoMaker qui permet de gérer une base de données d'exercices et de créer ainsi des documents "compilation". Personnellement, je ne l'ai jamais essayé, mais la description du site et de ce que tu voudrais faire semblent concorder... :)

Moi si, je l'ai essayé ... un peu... et je peux dire que c'est à manier avec précaution : pour un bien, il faut mettre en place une sauvegarde (très fréquente) du fichier xml d'une base... car il y a encore des bogues à ce niveau : des modifications non voulue de la structure d'une base (dans quelles circonstances ? je ne sais pas : je n'ai pas encore identifié le problème exact)... qui peut bloquer le logiciel ensuite !!!
Il faut pouvoir revenir à une version précédente du fichier xml modifié pour pouvoir relancer le logiciel.
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Inverser l'ordre des exercices

Messagepar GRSG » Mercredi 26 Mai 2010, 08:53

Je reprends ce topic un peu tardivement...

Je trouve certains côtés de texomaker un peu limitant comme par exemple: la recherche par mots qui se fait uniquement sur les domaines alors que c'est plus intéressant sur des mots contenus dans les fichiers sources, l'absence d'arborescence des répertoires et le pb de la construction de la feuille d'exos qui créé un nouveau fichier avec le texte en entier; s'il y a une erreur dans l'énoncé (car il y en a toujours...), on risque de la modifier sur la fiche d'exercices au lieu de la corriger sur le fichier source.

J'ai donc opté pour une autre solution.
D'abord comme dans texomake, il faut créer un fichier par exercice et sans préambule.
Ensuite pour compiler l'ensemble de ces exercices (et ça en fait beaucoup...) en créant un fichier (dvi ou pdf) par exercice ou en les regroupant sur un seul dossier, pg (encore merci) m'a résolu le problème dans le thème compiler en boucle
http://forum.mathematex.net/latex-f6/compiler-en-boucle-t10920.html
dont je remets les deux codes principaux ci-dessous:
Code tex pour compiler une série de fichiers dans un même fichier:
Code: Tout sélectionner
\documentclass{article}
\usepackage{ifthen}
\newboolean{EncoreDesExercices}
\newcounter{currentexercice}
\begin{document}

\setboolean{EncoreDesExercices}{true}
\setcounter{currentexercice}{0}
\whiledo{\boolean{EncoreDesExercices}}{%
  \stepcounter{currentexercice}%
  \IfFileExists{exo\thecurrentexercice}
    {\input{exo\thecurrentexercice}}
    {\setboolean{EncoreDesExercices}{false}}%
}
\end{document}

et un fichier .bat pour créer un fichier dvi (ou pdf) par fichier d'exercices dont le code est ci-dessous:
Code: Tout sélectionner
FOR %%f IN (exo*.tex) DO latex -jobname=%%~nf "\documentclass{article} \begin{document} \input{%%~nf} \end{document}"

Ensuite pour retrouver les fichiers à partir des mots contenus dans le fichier j'utilise un logiciel gratuit chargé sur interner dont le nom est
frigate3

qui permet d'une façon récursive de retrouver les fichiers qui m'intéressent en faisant une recherche par les mots contenus dans le fichier.
(si vous connaissez un logiciel pratique et performant de recherche de mots contenus dans un fichier, je suis preneur).
Ensuite je créé mon devoir (ici nommé devoir1.tex) à coups de input de la façon suivante:
Code: Tout sélectionner
préambule
\begin{document}
\exo
\input{chemin/nom du fichier}
\exo
\input{chemin/ nom du fichier}
...
\end{document}

Ainsi, lorsque je souhaite modifier une coquille (ou une erreur) en cliquant sur devoir1.dvi, j'accède directement sur le fichier source (je ne sais pas si mon explication est claire).
Cette approche est pratique avec le .dvi et perd de son intérêt avec la sortie en pdf.

Cette approche me permet de résoudre la question que j'avais soulevée au topic
http://forum.mathematex.net/latex-f6/creer-un-index-adapte-au-classement-des-devoirs-t10351.html


Merci à tous.
Gabriel
GRSG
Méga-utilisateur
 
Messages: 290
Inscription: Mercredi 08 Octobre 2008, 08:45
Statut actuel: Actif et salarié | Enseignant


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Bing [Bot], Google [Bot], Grapeshot [Crawler] et 10 invités