\documentclass[12pt]{article}
\usepackage[height=250mm,width=183mm]{geometry}
\usepackage[upright]{fourier}
\usepackage{preambule}
\usepackage[xcas]{tablor}

\usepackage[dvips,colorlinks=true,linkcolor=orange]{hyperref}



\newcommand{\lat}{
\lstset{numbers=none,language=[LaTeX]{TeX},xleftmargin=10pt,%
keywordstyle =\color{0.2white}\usefont{OT1}{cmtt}{b}{n},basicstyle=\ttfamily,commentstyle=\normalfont\scriptsize\slshape,
    backgroundcolor=\color{0.8white},breaklines=true}
}

\renewcommand{\xcas}{\lstset{numbers=none,language=XCAS,xleftmargin=10pt,%
keywordstyle =\color{0.2white}\usefont{OT1}{cmtt}{b}{n},basicstyle=\ttfamily,commentstyle=\normalfont\scriptsize\slshape,
    backgroundcolor=\color{0.8white},breaklines=true}
}


\title{\texttt{tablor.sty} \\La machine à créer des tableaux de signes et de variations }

\author{Guillaume \textsc{Connan} \\ \href{http://gconnan.free.fr}{http://gconnan.free.fr}\\
avec l'efficace participation de Jean-Michel \textsc{Boucart}}

\date{24 mars 2008 - Version 2.01}

\begin{document}

\maketitle

\initablor

\section{Ça sert à quoi~?}

Il  s'agit d'obtenir rapidement  un tableau  de signe  ou un  tableau de  variation en  entrant un
minimum de commandes.

\section{Comment ça marche~?}

\subsection{Principe général}

On entre une instruction qu'on envoie via  \LaTeX{} à \Prog{XCAS} qui effectue un certain nombre de
calculs (résolution d'équations,  calcul de limites). \Prog{XCAS} renvoie un  résultat sous la forme
d'un script \Prog{MetaPOST} qui est compilé. Un  tableau est créé et ensuite inséré dans le document
\texttt{tex}.


\subsection{Rentrons dans les détails}

En utilisant  un environnement \texttt{tablor}, de  nombreux fichiers sont créés  dans le répertoire
courant puis effacés par la commande \texttt{nettoyer} si vous le souhaitez~:

\bez
\item des  fichiers d'extension  \texttt{.cxx}~:~il s'agit  du fichier le  plus important.  C'est le
  programme  \Prog{XCAS} qui  «~fabrique~» le  tableau.  Vous pouvez  l'utilisez tel  quel dans  une
  session \Prog{XCAS} ou \Prog{giac}.
\item des fichiers d'extension \texttt{.giac} qui  regroupent des instructions lues et exécutées par
  \Prog{giac}.
Les lignes importantes sont~:

\begin{lstlisting}
read("XcasTV.cxx"); // giac charge le programme 
Sortie:=fopen("XCasmpTV.mp"); // la sortie portera l'extension metapost
vect.xcas.user := read("XCasTV.user"); // giac lit les paramètres rentrés dans le fichier tex
\end{lstlisting}

\item des  fichiers d'extension \texttt{.user} qui  sont créés par \LaTeX{}  grâce à l'environnement
  \texttt{VerbatimOut} de  l'extension \texttt{fancyvrb} : il s'agit  en fait de la  commande qui se
  trouve par exemple entre \verb+\begin{TVI}+ et \verb+\end{TVI}+.
 

\ez

\section{De quoi a-t-on besoin~?}

\bez

\item Il faut avoir installé \Prog{XCAS}, logiciel multi-plateforme de calcul et de programmation~:

\href{http://www-fourier.ujf-grenoble.fr/\%7Eparisse/giac\_fr.html}{http://www-fourier.ujf-grenoble.fr/\%7Eparisse/giac\_fr.html};

\item il faut avoir le fichier de macros \Prog{MetaPOST} 
\texttt{tableauVariation.mp} de Frédéric Mazoit~:

\href{http://frederic.mazoit.free.fr/LaTeX\_metapost/tableauVariations/}{http://frederic.mazoit.free.fr/LaTeX\_metapost/tableauVariations/};

Pour  ceux  qui  sont guère  habitués  à  \Prog{MetaPOST},  cela  ne  pose aucun  problème  car  les
scripts  et compilations  \Prog{MetaPOST}  se font  automatiquement.  Il suffit  de  créer dans  son
\texttt{texmf} personnel  une arborescence du style~:  \texttt{./texmfperso/metapost/tablor/} et d'y
placer \texttt{tableauVariation.mp} puis  un \texttt{rehash}. C'est exactement la  même démarche que
pour installer une nouvelle extension \LaTeX{}.


\item  il faut être en mode \texttt{shell-escape} pour autoriser
 les sorties de la compilation \texttt{tex}. Pour \Prog{emacs}, on rajoute en 
 fin de fichier \verb+%%% LaTeX-command: "latex --shell-escape" ***+; pour les autres éditeurs, il faut modifier
 la commande de compilation. Sinon, on peut modifier le fichier \texttt{texmf.cnf}
 pour que le mode soit automatisé en modifiant la ligne suivante~:~\texttt{shell-escape t};

\item il faut avoir à disposition l'extension \texttt{fancyvrb};

\item pour ceux qui compilent avec \texttt{pdf\LaTeX{}}, il n'y a aucun problème et rien à faire car \texttt{tablor}
  contient déjà ce qu'il faut pour s'adapter~:
    \verb+\ifpdf \DeclareGraphicsRule{*}{mps}{*}{} \fi+

\item il faut installer le fichier  \texttt{tablor.sty} dans son \texttt{texmf} personnel. Pour ceux
  qui ont \Prog{MiKTeX} sous \Prog{windows}, il suffit d'aller le chercher dans les dépôts. Pour les
  utilisateurs de  \Prog{Unix}, vous  devez savoir  comment faire... Par  commodité, vous  pouvez en
  profiter pour  installer la  version \Prog{Unix}  de \emph{MiKTeX package  manager}. J'ai  fait un
  petit script pour vous y aider ici : \href{http://gconnan.free.fr/?page=52}{http://gconnan.free.fr/?page=52}




\ez


\begin{figure}
              \begin{DANGER}
         
Pour         les         utilisateurs         de        TeXnicCenter,         observez         cette
\href{http://img221.imageshack.us/img221/27/capture20080114215233hu7.png}{explication}             du
paramétrage du \texttt{shell-escape}. On peut par exemple mettre~:\\
\texttt{-enable-write18 --shell-escape --src -interaction=nonstopmode "\%Wm"}.\\
Sur TeXmaker, c'est \texttt{latex -enable-write18 --shell-escape -interaction=nonstopmode \%.tex}.


\smallskip
Pour faire comprendre à \texttt{Microsoft Windows XP} où trouver \Prog{giac}, vous pouvez modifier le \texttt{path} en suivant
ces instructions~: \\
Demarrer->Panneau de configuration->Système onglet Avancé->Variable d'environnement.\\
Le séparateur est le point virgule.
(Merci à Gaëtan et à Daniel).

               \end{DANGER}
               \end{figure}


\begin{figure}
              \begin{DANGER}
              L'extension  \verb+fancybox+   rentre  en  conflit   avec  \verb+fancyvrb+  qu'utilise
              \verb+tablor+ car elles définissent toutes deux différemment l'environnement \verb+VerbatimOut+.
               \end{DANGER}
               \end{figure}


\begin{figure}
              \begin{DANGER}
 Huit nouvelles commandes sont crées~:~\verb+\tv, \tvbis, \nettoyer, \initablor, \Tableaux,+
  \verb+ \dresse, \dressetoile, \executGiacmp+.
 Attention aux conflits si de  tels noms existent quelque part dans vos
              fichiers personnels.
               \end{DANGER}
               \end{figure}




\begin{figure}
              \begin{DANGER}
Le fichier \texttt{tablor.sty}  est codé en \texttt{latin-1}. Certains devront  donc le convertir en
\texttt{utf-8}. 
               \end{DANGER}
               \end{figure}



\section{Comment l'utiliser~?}

\subsection{Préambule}

Les ECM donnés  en exemple ne dépendent pas du  moteur de compilation~:~\texttt{\LaTeX{}+dvi+dvips} ou
\texttt{pdf\LaTeX{}} conviennent.

Le préambule sera toujours~:

\lat

\begin{lstlisting}
\documentclass{article}
\usepackage{graphicx}
\usepackage[french]{babel}
\usepackage[upright]{fourier}
\usepackage[xcas]{tablor} % option modifiable
\end{lstlisting}



\begin{figure}
              \begin{Idee}
              Les fontes utilisées  dans les tableaux sont \verb+[upright]{fourier}+.  Il est tout à
              fait  possible  d'utiliser   d'autres  fontes.  Il  suffit  de   modifier  le  fichier
              \texttt{tablor.sty} en remplaçant partout où il apparaît \verb+[upright]{fourier}+ par \verb+lmodern+ ou ce
              que vous voulez. Ce n'est pas très pratique,  mais cela évite de le mettre en option à
              chaque utilisation et on utilise souvent la même fonte dans ses documents.
               \end{Idee}
               \end{figure}



\subsection{L'option xcas}\label{option}


On  met \texttt{xcas} si  l'on a installé \Prog{giac/XCAS}  sur son
    ordinateur et  on ne  met rien si  \Prog{giac/XCAS} n'est  pas installé et  qu'on a  récupéré un
    fichier \texttt{tex} avec  les fichiers sources \Prog{MetaPOST}; Ainsi,  \texttt{tablor} ne fera
    pas appel à \Prog{giac/XCAS} et se contentera de compiler les fichiers \Prog{MetaPOST};
  


\subsection{Fichier \texttt{tablor.cfg}}

Voici son contenu~:

\begin{Verbatim}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%  Fichier de configuration de tablor.sty  %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% La mise à jour de ce fichier permet d'adapter certains paramètres du package tablor.sty 
% au poste de travail et aux habitudes des utilisateurs. 

% Déclaration du système d'exploitation :
% =====================================

% Si vous utilisez Microsoft-Windows, dé-commentez la ligne suivante :

% \setboolean{windows}{true}

% Déclaration de l'éditeur utilisé
% ================================
% 
% Remplacez "texmaker" par la commande qui lance votre éditeur favori. 
% Laissez une espace avant de fermer l'accolade.

\newcommand{\editeur}{texmaker }
\end{Verbatim}

Vous le placerez dans la même arborescence que \texttt{tablor.sty} et le modifierez si besoin est.


L'éditeur  sera appelé  dans certains cas pour modifier
    l'aspect des  tableaux dans les fichiers  sources \Prog{MetaPOST}. Il faudra  choisir un éditeur
  comme par exemple \texttt{emacs, xemacs, texmaker, vi, winshell, notepad, vim, kate, gedit,
      textmate,texshop}, \texttt{kile}, etc. Voir aussi le paragraphe~\vref{modif}.




\subsection{Initialisation de \texttt{tablor} et préfixe des tableaux}\label{prefix}


Les   fichiers  \Prog{MetaPOST}   des  tableaux   sont  regroupés   dans  un   fichier   de  suffixe
\texttt{.Tab.mp}.   Le   préfixe  est   par   défaut   celui   du  fichier   \texttt{tex}   appelant
\texttt{tablor}. Il est possible, pour des raisons de classement personnel, de modifier ce préfixe à
la suite du \verb+\begin{document}+ en entrant~:

  \begin{lstlisting}
\initablor
  \end{lstlisting}

si l'on veut avoir comme préfixe le préfixe courant (obtenu par \verb+\jobname+) ou bien~:

 \begin{lstlisting}
\initablor[Waouh]
  \end{lstlisting}

si l'on veut que le fichier \Prog{MetaPOST} des tableaux s'appelle \verb+Waouh.Tab.mp+

\medskip

Si tout s'est bien passé, on doit supprimer les fichiers \texttt{log} de \Prog{MetaPOST} et clore le
fichier \texttt{.Tab.mp} en entrant juste avant \verb+\end{document}+ la commande~:

\begin{lstlisting}
  \nettoyer
\end{lstlisting}


ou bien, selon les cas~:

\begin{lstlisting}
\nettoyer[Waouh]
  \end{lstlisting}
 


\medskip

\textbf{En résumé}, notre fichier \texttt{tex} aura cette ossature~:


\begin{lstlisting}
\documentclass{article}
\usepackage{graphicx}
\usepackage[french]{babel}
\usepackage[upright]{fourier}
\usepackage[xcas]{tablor} % options modifiables

\begin{document}

\initablor

...

\nettoyer

\end{document}
\end{lstlisting}





\section{Tableaux des variations}

\subsection{Tableau standard}

L'environnement s'appelle \texttt{TV}. On utilise une commande au format \texttt{XCAS}~:

\xcas

\begin{lstlisting}
TV([borne inf,borne sup],[valeurs interdites],"nom fonction","nom variable",expression en fonction de x,t,\tv)
\end{lstlisting}

\bez

\item  \texttt{[borne inf,borne  sup]}  désigne les  bornes  de l'ensemble  de  définition. On  note
  $+\infty$~:~\texttt{+infinity} et $-\infty$~:~\texttt{-infinity}. N'oubliez pas
  les crochets~!
\item \texttt{[valeurs interdites]} désigne la liste des valeurs interdites;
\item  \texttt{"nom fonction"}  désigne la  lettre représentant  la fonction  telle que  vous voulez
  qu'elle apparaisse : $f$, $g$, $\f$, etc.
\item \texttt{"nom variable"}~:~même  chose pour la variable, selon que vous  voulez la désigner par
  $x$, $t$, etc. N'oubliez pas les guillemets~!
\item \texttt{expression en fonction de x} désigne l'expression de la fonction. Attention~! Utilisez
  ici toujours $x$ pour désigner la variable;
\item le  paramètre \texttt{t} est à remplacer par 1 si vous voulez voir apparaître une ligne
  avec le signe de la dérivée, par 0 si vous ne voulez pas de cette ligne et par 2 si vous ne voulez
  que le signe de la dérivée.
\item on termine par \verb+\tv+, une commande permettant de numéroter les tableaux en interne.

\ez

\lat

Voyons à présent quelques exemples.

\begin{enumerate}
\item Le tableau de variation sans signe de la dérivée de la fonction $f~:~x\mapsto x^2$ sur $[-5\pv7]$.


On obtient~:

\begin{TV}
TV([-5,7],[],"f","x",x^2,0,\tv);
\end{TV}


après avoir entré~:

\begin{lstlisting}
\begin{TV}
TV([-5,7],[],"f","x",x^2,0,\tv)
\end{TV}
\end{lstlisting}



\item Si on veut la même fonction sur $\bbr$ avec le signe de la dérivée~:

  \begin{lstlisting}
\begin{TV}
TV([-infinity,+infinity],[],"f","x",x^2,1,\tv)
\end{TV}
  \end{lstlisting}

\begin{TV}
TV([-infinity,+infinity],[],"f","x",x^2,1,\tv)
\end{TV}

\item Avec la même fonction sur $\bbr$ avec uniquement le signe de la dérivée~:



  \begin{lstlisting}
\begin{TV}
TV([-infinity,+infinity],[],"f","x",x^2,2,\tv)
\end{TV}
  \end{lstlisting}

\begin{TV}
TV([-infinity,+infinity],[],"f","x",x^2,2,\tv)
\end{TV}




\item Voici ce que cela donne pour $g~:~t\mapsto \frac{t^2}{t^2-1}$ sur $[-10\pv +\infty[$~:

  \begin{lstlisting}
\begin{TV}
TV([-10,+infinity],[-1,1],"g","t",x^2/(x^2-1),1,\tv)
\end{TV}
  \end{lstlisting}

  \begin{center}
    
  
\begin{TV}
TV([-10,+infinity],[-1,1],"g","t",x^2/(x^2-1),1,\tv)
\end{TV}

\end{center}


\item Il y aura  des problèmes pour des équations $f'(x)=0$ que  \Prog{XCAS} ne saurait pas résoudre
  de  manière  formelle.   Il  faudrait  alors  utiliser  une   résolution  numérique  et  remplacer
  \texttt{resoudre} par \texttt{fsolve}.  Mais dans les études demandées au  Bac, l'étude des signes
  de la dérivée est  possible formellement. Dans les cas plus exotiques, on  peut faire le tableau «~à
  la main~».
\end{enumerate}


\subsection{Tableau des variations avec théorème des valeurs intermédiaires}

Si l'on  veut mettre en  évidence les solutions  de l'équation $f(x)=a$, on  utilise l'environnement
\texttt{TVI}.

La syntaxe est~:

\begin{lstlisting}
TVI([borne inf,borne sup],[valeurs interdites],"nom fonction","nom variable",expression en fonction de x,t,a,\tv)
\end{lstlisting}

Les paramètres sont les mêmes que pour \texttt{TV} mais on ajoute la valeur \texttt{a} bien sûr.


Par exemple, pour $f~:~x\mapsto \frac{x^2}{x^2-1}$ et l'équation $f(x)=10$ on entre~:

\begin{lstlisting}
\begin{TVI}
TVI([-10,+infinity],[-1,1],"f","x",x^2/(x^2-1),1,10,\tv)
\end{TVI}
\end{lstlisting}


et on obtient~:

\begin{TVI}
TVI([-10,+infinity],[-1,1],"f","x",x^2/(x^2-1),1,10,\tv)
\end{TVI}

Les solutions sont notées $\alpha_1$, $\alpha_2$, etc.

Si l'équation est plutôt $f(x)=-1$~:


\begin{lstlisting}
\begin{TVI}
TVI([-10,+infinity],[-1,1],"f","x",x^2/(x^2-1),1,-1,\tv)
\end{TVI}
\end{lstlisting}


et on obtient~:

\begin{TVI}
TVI([-10,+infinity],[-1,1],"f","x",x^2/(x^2-1),1,-1,\tv)
\end{TVI}





\subsection{Tableaux de variations avec approximation des zéros de la dérivée}

Il n'est  parfois pas possible d'obtenir  une valeur formelle des  zéros de la dérivée.  On est donc
amené à rechercher une  approximation numérique de ces zéros. Cela est  possible grâce à la commande
\code{fsolve} de \Prog{XCAS} utilisée à bon  escient. On appelera les environnements \code{TVapp} et
\code{TVIapp} ainsi que leurs associés étoilés.

Voyons sur un exemple.

\paragraph*{Exemple}


Soit $g$ la fonction $x\mapsto \ln(x)-x\E^{2-x} $.

On étudie d'abord la fonction $x\mapsto g'(x)$~:

\begin{lstlisting}
\begin{TVIapp}
 TVIapp([0,+infinity],[0],"g'","x",diff(ln(x)-x*exp(2-x),x),1,0,\tv)
\end{TVIapp}
\end{lstlisting}


\begin{TVIapp}
 TVIapp([0,+infinity],[0],"g'","x",diff(ln(x)-x*exp(2-x),x),1,0,\tv)
 \end{TVIapp}

On en déduit le tableau suivant~:


\begin{lstlisting}
\begin{TVapp*}{201}
  TVapp([0,+infinity],[0],"g","x",ln(x)-x*exp(2-x),1,\tv)
\end{TVapp*}
\end{lstlisting}



\begin{TVapp*}{201}
TVapp([0,+infinity],[0],"g","x",ln(x)-x*exp(2-x),1,\tv)
\end{TVapp*}


\subsection{Tableaux de signes}


\subsubsection*{Cas du produit de deux facteurs affines}

Pour étudier le signe de $(-2x+3)(-x+5)$ sur $\bbr$, on entre~:

\begin{lstlisting}
\begin{TSa}
 TSa(-2,3,-1,5,\tv);
\end{TSa}
\end{lstlisting}


On obtient~:

\begin{TSa}
TSa(-2,3,-1,5,\tv);
\end{TSa}


\subsubsection*{Cas du produit d'un nombre quelconque de facteurs quelconques sur un intervalle quelconque}

Certains  cas  pathologiques  ne  vont  pas  fonctionner,  mais sinon,  pour  étudier  le  signe  de
\[(-2x+3)(x^2-1)(x^2+1)(x-1)(x^2-2)\]  on entre  cette  fois  les expressions  sous  cette forme  en
précisant l'intervalle d'étude~:

\begin{lstlisting}
\begin{TS}
 TS([-2*x+3,x^2-1,x^2+1,x-1,x^2-2],[-infinity,+infinity],\tv);
\end{TS}
\end{lstlisting}

On obtient~:


\begin{TS}
 TS([-2*x+3,x^2-1,x^2+1,x-1,x^2-2],[-infinity,+infinity],\tv);
\end{TS}



Ou bien, sur un intervalle borné~:

\begin{lstlisting}
\begin{TS}
TS([x-10,x+10],[-15,10],\tv)
\end{TS}
\end{lstlisting}


\begin{TS}
TS([x-10,x+10],[-15,10],\tv)
\end{TS}



\subsubsection*{Signe d'un quotient}

On entre dans deux listes différentes les facteurs du numérateur et du dénominateur~:


\begin{lstlisting}
\begin{TSq}
TSq("nom du quotient",[liste des facteurs du numérateur],[liste des facteurs du dénominateur],[inf,sup])
\end{TSq}
\end{lstlisting}

Par exemple, pour étudier le signe de $\dfrac{(-2x+3)(-4x+5)}{(x^2-16)(x-2)}$ sur $\bbr$~:

\begin{lstlisting}
\begin{TSq}
TSq("Q",[-2*x+3,-4*x+5],[x^2-16,x-2],[-infinity,+infinity],\tv)
\end{TSq}
\end{lstlisting}




\begin{TSq}
TSq("Q",[-2*x+3,-4*x+5],[x^2-16,x-2],[-infinity,+infinity],\tv)
\end{TSq}

Sur un intervalle borné~:

\begin{lstlisting}
\begin{TSq}
TSq("Q",[x-10],[x+10],[-infinity,10],\tv)
\end{TSq}
\end{lstlisting}


\begin{TSq}
TSq("Q",[x-10],[x+10],[-infinity,10],\tv)
\end{TSq}




\subsubsection*{Signe d'une seule expression}


On  utilise  l'environnement   \texttt{TSc}  comme  \emph{Tableau  de  Signe   court}  en  précisant
l'expression étudiée et l'intervalle considéré~:

\begin{lstlisting}
\begin{TSc}
TSc((x-10)*(x+5),[-10,10],\tv)
\end{TSc}
\end{lstlisting}



\begin{TSc}
TSc((x-10)*(x+5),[-10,10],\tv)
\end{TSc}







% \section{Nettoyage}

% L'extension \texttt{tablor}  contient également  une commande \verb+\nettoyer+,  qui, comme  son nom
% l'indique, fait le ménage~:~on efface tous les fichiers auxiliaires créés et on garde uniquement les
% fichiers eps créés par \Prog{MetaPOST} ayant une extension sous forme de numéro.

% Il suffit de taper \verb+\nettoyer+ juste avant le \verb+\end{document}+

% \begin{figure}
%               \begin{DANGER}
%               Pour les utilisateurs de Microsoft Windows, il faudra remplacer \texttt{rm} par \texttt{DEL}
%                \end{DANGER}
%                \end{figure}

% \smallskip

% On   peut   également   stocker   les   tableaux   dans  un   autre   dossier   avec   la   commande
% \verb+\bouger{destination}+,  qui,  comme   son  nom  l'indique,  copie  les   fichiers  eps  vers
% \texttt{destination}. Il faudra le taper après \verb+\nettoyer+

% \begin{lstlisting}
% \nettoyer
% \bouger{/home/moi/Desktop/}

% \end{document}

% \end{lstlisting}


% \begin{figure}
%               \begin{DANGER}
%               Pour les utilisateurs de Microsoft Windows, il faudra remplacer \texttt{cp} par \texttt{XCOPY}
%                \end{DANGER}
%                \end{figure}




\section{Comment modifier les tableaux à partir des fichiers MetaPOST~?}\label{modif}


\subsection{Tableau par tableau}

Il est impossible  de prévoir toutes les  requêtes des différents utilisateurs. Le  style du tableau
produit peut  néanmoins vous  déplaire. Vous pouvez  le modifier  en intervenant directement  sur le
fichier \Prog{MetaPOST}  créé pour  chaque tableau. Pour  cela, il  suffit d'ajouter une  étoile au  nom de
l'environnement utilisé  et de donner  un numéro à  votre nouvelle figure  pour qu'elle ne  soit pas
écrasée par les compilations suivantes. Numérotez à partir de 100 par exemple.

Si vous tapez~:

\begin{lstlisting}
\begin{TV*}{100}
    TV([-1,+infinity],[],"f","x",x-ln(x+1),1,\tv)
\end{TV*}
\end{lstlisting}

l'éditeur que vous avez mis en option (voir le paragraphe~\vref{option}) est directement lancé et le fichier
\Prog{MetaPOST} correspondant à votre tableau qui portera le numéro 100
est affiché. Vous  pouvez alors le modifier,  taper sur \Ctrl + \keystroke{S}  pour l'enregistrer et
\Ctrl +  \keystroke{Q} pour fermer l'éditeur\footnote{Ces  combinaisons de touches  correspondent à la
  plupart des éditeurs mais ne sont pas universelles : vérifiez pour celui que vous avez choisi.}. La compilation s'achève alors automatiquement comme
pour un environnement non étoilé.





Par exemple, je tape~:

\begin{lstlisting}
\begin{TS*}{100}
    TS([3*x+2,5*x^2-1],[-50,50],\tv)
\end{TS*}
\end{lstlisting}


et apparaît une fenêtre de l'éditeur (ici \TeX maker) avec le fichier correspondant au tableau. Je le modifie à
volonté~:

\begin{center}
  \includegraphics[height=9cm]{capture.eps}
\end{center}


Je  tape  sur  \Ctrl  +  \keystroke{S}   puis  \Ctrl  +  \keystroke{Q}  et  la  compilation  reprend
automatiquement pour m'afficher le tableau voulu~:


\begin{center}
  \begin{TS*}{106}
    TS([3*x+2,5*x^2-1],[-50,50],\tv)
  \end{TS*}
\end{center}



Une fois  la modification faite, on  ne vous redemandera  pas d'effectuer de modifications,  sauf si
vous changez le numéro de la figure.

\subsection{Traitement global dans un unique fichier MetaPOST}\label{global}

Un fichier \texttt{préfixe.Tab.mp} est  créé où sont copiés les sources de  chaque tableau. Vous pouvez
ainsi retravailler globalement sur les tableaux si  besoin ou les transmettre à une personne n'ayant
pas installé \Prog{XCAS}. Voir le paragraphe~\vref{prefix} pour plus de détails.


\section{Merci...}

\bez

\item à \href{http://frederic.mazoit.free.fr/LaTeX\_metapost/tableauVariations/}{Frédéric \textsc{Mazoit}} pour son fichier \texttt{tableauVariation.mp};

\item à \href{http://www.yvesdelhaye.be/?Generateur-d-interrogations-le}{Yves \textsc{Delhaye}} pour ses idées sur le \texttt{shell-escape}

\item          à         \href{http://www-fourier.ujf-grenoble.fr/\%7Eparisse/giac\_fr.html}{Bernard
    \textsc{Parisse}} pour \Prog{XCAS}.

\ez


\section{Galerie}

Voici quelques exemples de tableaux~:

\begin{lstlisting}
\begin{TVI}
TVI([-1,+infinity],[-1],"f","x",x^2/sqrt(x+1)-1,1,2,\tv)
\end{TVI}
\end{lstlisting}

\begin{TVI}
TVI([-1,+infinity],[-1],"f","x",x^2/sqrt(x+1)-1,1,2,\tv)
\end{TVI}


\begin{lstlisting}
\begin{TVI}
TVI([-1/2,+infinity],[],"f","x",x^2,1,2,\tv)
\end{TVI}
\end{lstlisting}


\begin{TVI}
TVI([-1/2,+infinity],[],"f","x",x^2,1,2,\tv)
\end{TVI}


\begin{lstlisting}
\begin{TVI}
TVI([0,+infinity],[0],"f","x",ln(x),1,2,\tv)
\end{TVI}
\end{lstlisting}

\begin{TVI}
TVI([0,+infinity],[0],"f","x",ln(x),1,2,\tv)
\end{TVI}

\begin{lstlisting}
\begin{TV}
TV([1,+infinity],[],"f","x",-ln(x),1,\tv)
\end{TV}
\end{lstlisting}

\begin{TV}
TV([1,+infinity],[],"f","x",-ln(x),1,\tv)
\end{TV}



\begin{lstlisting}
\begin{TVI}
TVI([-pi,pi],[],"f","x",cos(x),1,1/2,\tv)
\end{TVI}
\end{lstlisting}

\begin{TVI}
TVI([-pi,pi],[],"f","x",cos(x),1,1/2,\tv)
\end{TVI}

\begin{lstlisting}
\begin{TV}
TV([0,2*pi],[],"f","x",cos(x),1,\tv)
\end{TV}
\end{lstlisting}

\begin{TV}
TV([0,2*Pi],[],"f","x",cos(x),1,\tv)
\end{TV}


\begin{figure}
              \begin{DANGER}
              Il y  aura des  problèmes si vous  demandez un  tableau des variations  d'une fonction
              périodique sur un intervalle
              d'amplitude supérieure à la période, mais est-ce vraiment utile ?...
               \end{DANGER}
               \end{figure}



\begin{lstlisting}
\begin{TVI}
TVI([0,pi],[pi/2],"h","t",tan(x),1,7,\tv)
\end{TVI}
\end{lstlisting}

\begin{TVI}
TVI([0,pi],[pi/2],"h","t",tan(x),1,7,\tv)
\end{TVI}



\begin{lstlisting}
\begin{TVI}
TVI([-1,1],[],"f","x",(1-x)*sqrt(1-x^2),1,1,\tv)
\end{TVI}
\end{lstlisting}

\begin{TVI}
TVI([-1,1],[],"f","x",(1-x)*sqrt(1-x^2),1,1,\tv)
\end{TVI}

\begin{lstlisting}
\begin{TV}
TV([-1,+infinity],[-1],"f","x",ln(1+x)-(x-x^2/2+x^3/3),1,\tv)
\end{TV}
\end{lstlisting}

\begin{TV}
TV([-1,+infinity],[-1],"f","x",ln(1+x)-(x-x^2/2+x^3/3),1,\tv)
\end{TV}


\begin{lstlisting}
\begin{TS}
TS([-2*x+3,x-1,x+1,x^2+3*x+1],[-10,+infinity],\tv);
\end{TS}
\end{lstlisting}

\begin{TS}
TS([-2*x+3,x-1,x+1,x^2+3*x+1],[-10,+infinity],\tv);
\end{TS}

\begin{lstlisting}
\begin{TVI}
TVI([-infinity,+infinity],[],"f","x",(x+2)*exp(x-1)-1,1,0,\tv)
\end{TVI}
\end{lstlisting}

\begin{TVI}
TVI([-infinity,+infinity],[],"f","x",(x+2)*exp(x-1)-1,1,0,\tv)
\end{TVI}




\begin{lstlisting}
\begin{TVI}
TVI([-infinity,+infinity],[],"f","x",1+(-2*x+1)*exp(2*x),1,0,\tv)
\end{TVI}
\end{lstlisting}

\begin{TVI}
TVI([-infinity,+infinity],[],"f","x",1+(-2*x+1)*exp(2*x),1,0,\tv)
\end{TVI}




\begin{lstlisting}
\begin{TV}
TV([0,+infinity],[],"f","x",ln(exp(x)+x)-x,1,\tv)
\end{TV}
\end{lstlisting}

\begin{TV}
TV([0,+infinity],[],"f","x",ln(exp(x)+x)-x,1,\tv)
\end{TV}





\begin{lstlisting}
\begin{TVI}
TVI([0,pi],[],"f","x",cos(x)-x,1,0,\tv)
\end{TVI}
\end{lstlisting}

\begin{TVI}
TVI([0,pi],[],"f","x",cos(x)-x,1,0,\tv)
\end{TVI}

\begin{lstlisting}
\begin{TVI}
TVI([0,+infinity],[0],"f","x",ln(x)-(ln(x))^2,1,-1,\tv)
\end{TVI}
\end{lstlisting}



\begin{TVI}
TVI([0,+infinity],[0],"f","x",ln(x)-(ln(x))^2,1,-1,\tv)
\end{TVI}



\begin{lstlisting}
\begin{TSc}
TSc((x-10)*(x+10),[-10,10],\tv)
\end{TSc}
\end{lstlisting}



\begin{TSc}
TSc((x-10)*(x+10),[-10,10],\tv)
\end{TSc}







\begin{lstlisting}
\begin{enumerate}
\item 

 Selon le tableau de variation de la fonction $f$
    ci-dessous, on peut affirmer que \ldots
     
\begin{TV}
        TV([-5,10],[],"f","x",(5/2)*x^2-2*x+12,0,\tv)
\end{TV}

\VF
\begin{itemize}

    \item[\ldots] 5 n'a pas d'antécédent \Rep
    \item[\ldots] 5 n'a pas d'image \Rep
    \item[\ldots] 5 a deux antécédents \Rep
    \item[\ldots] 5 a une image supérieure à celle de $\sqrt{2}$\Rep
  
\end{itemize}



\item Soit $f$ la fonction définie par $f~:~x\mapsto 3x^3-5x^2+2x-7$.  Les tableaux suivants peuvent
  correspondre à $f$~:

\VF

  \begin{enumerate}


 \item Tableau 1 \Rep

\begin{TV*}{1001}M
        TV([-20,20],[],"f","x",3*x^3-5*x^2+2*x-7,0,\tv)
\end{TV*}

\item Tableau 2 \Rep

\begin{TV*}{1002}
        TV([-20,20],[],"f","x",-3*x^3+5*x^2-2*x+7,0,\tv)
\end{TV*}

\item Tableau 3 \Rep

\begin{TSc*}{1003}
        TSc(-3*x^3+5*x^2-2*x+7,[-20,20],\tv)
\end{TSc*}


\item Tableau 4 \Rep

\begin{TSc*}{1004}
        TSc(3*x^3-5*x^2+2*x-7,[-20,20],\tv)
\end{TSc*}


\end{enumerate}

\end{enumerate}

\end{lstlisting}





\begin{enumerate}
\item 

 Selon le tableau de variation de la fonction $f$
    ci-dessous, on peut affirmer que \ldots
     
\begin{TV}
        TV([-5,10],[],"f","x",(5/2)*x^2-2*x+12,0,\tv)
\end{TV}

\VF
\begin{itemize}

    \item[\ldots] 5 n'a pas d'antécédent \Rep
    \item[\ldots] 5 n'a pas d'image \Rep
    \item[\ldots] 5 a deux antécédents \Rep
    \item[\ldots] 5 a une image supérieure à celle de $\sqrt{2}$\Rep
  
\end{itemize}



\item Soit $f$ la fonction définie par $f~:~x\mapsto 3x^3-5x^2+2x-7$.  Les tableaux suivants peuvent-ils
  correspondre à la fonction $f$~:

\VF

  \begin{enumerate}


 \item Tableau 1 \Rep


\begin{TV*}{102}
        TV([-20,20],[],"f","x",3*x^3-5*x^2+2*x-7,0,\tv)
\end{TV*}

\item Tableau 2 \Rep

\begin{TV*}{103}
        TV([-20,20],[],"f","x",-3*x^3+5*x^2-2*x+7,0,\tv)
\end{TV*}

\item Tableau 3 \Rep

\begin{TSc*}{104}
        TSc(-3*x^3+5*x^2-2*x+7,[-20,20],\tv)
\end{TSc*}


\item Tableau 4 \Rep

\begin{TSc*}{105}
        TSc(3*x^3-5*x^2+2*x-7,[-20,20],\tv)
\end{TSc*}


\end{enumerate}

\end{enumerate}



\begin{lstlisting}
On considère la fonction $f$ définie sur $\bbr$ par $f(x)=\frac{1}{2}\bigl(x+(1-x)\E^{2x}\bigr)$

Étudions sa dérivée~:


\begin{TVIapp*}{202}
 TVIapp([-infinity,+infinity],[],"f'","x",diff(1/2*(x+(1-x)*exp(2*x)),x),1,0,\tv)
 \end{TVIapp*}

On en déduit le tableau de variation de $f$


\begin{TVapp*}{203}
 TVapp([-infinity,+infinity],[],"f","x",1/2*(x+(1-x)*exp(2*x)),1,\tv)
 \end{TVapp*}
\end{lstlisting}

On considère la fonction $f$ définie sur $\bbr$ par $f(x)=\frac{1}{2}\bigl(x+(1-x)\E^{2x}\bigr)$

Étudions sa dérivée~:


\begin{TVIapp*}{202}
 TVIapp([-infinity,+infinity],[],"f'","x",diff(1/2*(x+(1-x)*exp(2*x)),x),1,0,\tv)
 \end{TVIapp*}

On en déduit le tableau de variation de $f$


\begin{TVapp*}{203}
 TVapp([-infinity,+infinity],[],"f","x",1/2*(x+(1-x)*exp(2*x)),1,\tv)
 \end{TVapp*}




\pagebreak

\tableofcontents

\nettoyer



%\bouger{/home/moi/Desktop/}

\end{document}

%%% Local Variables: 
%%% mode: latex
%%% TeX-master: t
%%% End: 
