Re: [Syracuse] Retournement de correction d'exercices

Auteur: Jean-Côme Charpentier <Jean-Come.Charpentier@wanadoo.fr>
Date: mar mai 23 2006 - 20:38:13 CEST

christophe.poulain@melusine.eu.org a écrit :
> Bonsoir,
>
> je pense que Jean-Côme a la solution (ou d'autres) :)

   Sans doute pas que moi :-)

> \documentclass{article}
> \usepackage[latin1]{inputenc}
> \usepackage[T1]{fontenc}
> \usepackage[frenchb]{babel}
> \usepackage{graphicx}
>
> \newenvironment{Solu}{\rotatebox{180}{\begin{minipage}{\linewidth}}{\end{minipage}}}
>
> \begin{document}
> \exo toto
> \begin{Solu}
> tata
> \end{Solu}
> \end{document}
>
> ne marche bien évidemment pas.
> Comment faire pour obtenir l'effet désiré ?

    Bon d'abord, cela ne peut effectivement pas fonctionner parce que
dans un environnement, les commandes indiquées dans la première partie
de la définition doivent pouvoir être exécutées immédiatement. Ici, le
\rotatebox ne peut pas être exécutée puisque le contenu de la boîte
n'est pas encore connu.
   Finalement, cela devient assez logique alors. La commande \rotatebox
doit être exécutée une fois que le contenu complet est connu donc
obligatoirement dans la deuxième partie de l'environnement. Le corps de
l'environnement doit être placé dans une boîte (nommée) pour pouvoir
être utilisée ultérieurement. Reste un dernier problème : comment un
environnement peut-il mettre en boîte son propre corps. La solution est
d'utiliser l'environnement \begin{lrbox}{nom-boite} ... \end{lrbox}.
   Maintenant, il y a un autre problème sur ta façon de faire. Tu
imposes une largeur \linewidth à ta boîte. Pas de problème ) priori mais
dans ce cas, la solution doit obligatoirement être composée sous forme
d'un paragraphe sans retrait (sinon, tout va foutre le camp dans la
marge, tu ne verra rien (ou pas tout) et TeX va gueuler à propos
d'Overfull \hbox.
   Autre problème, le \rotatebox, comme son nom l'indique, fait une
rotation. Ici, la rotation de 180 degré va inverser le haut et le bas,
ce qui, je pense, était voulu, mais aussi la droite et la gauche, ce qui
me semble plus bizarre et moins courant. Je pense qu'une solution à base
de \scalebox{1}[-1]{boîte} est plus courante pour ce genre de
présentation... mais c'est toi qui vois !
   Pour bien illustrer le problème, j'ai ajouté un cadre autour de la
solution.

\documentclass{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[frenchb]{babel}
\usepackage{graphicx}
\usepackage{calc} % pour des raisons pédagogiques !

\newsavebox\zouliboite

\newenvironment{Solu}
   {
     \begin{lrbox}{\zouliboite}
       \begin{minipage}{\linewidth-2\fboxsep-2\fboxrule}
   }
   {
       \end{minipage}%
     \end{lrbox}
     \par\noindent % c'est plus sûr
     \fbox{\rotatebox{180}{\usebox{\zouliboite}}}
   }

\newcommand\exo{Non défini dans l'ECM !}
\begin{document}
\exo toto
\begin{Solu}
tata
\end{Solu}
\end{document}

   Jean-Côme Charpentier

_______________________________________________
Syracuse mailing list
Syracuse@melusine.eu.org
http://melusine.eu.org/cgi-bin/mailman/listinfo/syracuse
Received on Tue May 23 20:38:10 2006

Cette archive a été créée par hypermail 2.1.8 : mar mai 23 2006 - 21:37:01 CEST