% \copyleft Connan le Barbare (aka Guillaume Connan) \copyright
% This work may be distributed and/or mofified under the conditions
% or the LaTeX Project Public Licence, either v1.3 or (at your option)
% any later version. The latest version is in
%   http://www.latex-project.org/lppl/
% This work consists of the files tablor.sty, tablor-xetex.sty,  tablor.cfg, tablor.tex,
% tablor.pdf and tablor.html




\documentclass[11pt]{article}
\usepackage{etex}
\usepackage[height=250mm,width=183mm]{geometry}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage[upright]{kpfonts}
\usepackage{bold-extra}
\usepackage[scaled=0.85]{luximono}
\usepackage[xcas]{tablor}
\usepackage{listings,keystroke}
\usepackage{graphicx,bclogo,amssymb,amsbsy,amsfonts,amstext,amscd,amsopn,amsxtra}
% bclogo est téléchargeable ici : http://melusine.eu.org/syracuse/wiki/doku.php/mc/bclogo


\usepackage{tocloft}
%ajoute de l'espace entre le
%numero de chapitre (chap) et le titre
%dans la table des matieres

\addtolength{\cftsecnumwidth}{2em}
\addtolength{\cftsubsecnumwidth}{1em}

% pour une TdM hyperactive...
\usepackage[dvips,colorlinks=true,linkcolor=blue]{hyperref}

% quelques gris

\usepackage{color}
\definecolor{0.9white}{rgb}{.9,.9,.9}
\definecolor{0.8white}{rgb}{.8,.8,.8}
\definecolor{0.2white}{rgb}{.2,.2,.2}
\definecolor{0.4white}{rgb}{.4,.4,.4}
\definecolor{0.6white}{rgb}{.6,.6,.6}
\definecolor{0.1white}{rgb}{.1,.1,.1}
\definecolor{bleu}{rgb}{0.4,0.2,1} \newrgbcolor{bleu}{0.4 0.2 1}
\definecolor{orange}{rgb}{0.589999,0.269997,0.080004}
\definecolor{rouge}{rgb}{1,0,0} \newrgbcolor{rouge}{1 0 0}
% style des listings


\newcommand\lat{\lstset{numbers=none,language=[LaTeX]{TeX},xleftmargin=10pt,%
keywordstyle =\color{bleu}\bfseries,basicstyle=\ttfamily\color{0.1white},commentstyle=\normalfont\scriptsize\slshape,breaklines=true,backgroundcolor=\color{green!20},frame=trBL,framerule=1pt,framesep=4pt,rulesep=1pt,showstringspaces=false,stringstyle=\slshape,captionpos=b}
}


\newcommand\xcas{\lstset{numbers=none,language=XCAS,xleftmargin=10pt,%
keywordstyle =\color{rouge!70!black}\bfseries,basicstyle=\ttfamily\color{0.1white},commentstyle=\normalfont\scriptsize\slshape,breaklines=true,backgroundcolor=\color{orange!20},frame=trBL,framerule=1pt,framesep=4pt,rulesep=1pt,showstringspaces=false,stringstyle=\slshape,captionpos=b}
}



% petits environnements bclogo



\newenvironment{DANGER}[1]{%
\begin{bclogo}[logo=\bctakecare,arrondi=0.1,couleur=0.9white]{#1}}
{\end{bclogo}}

\newenvironment{Idee}[1]{%
\begin{bclogo}[logo=\bclampe,arrondi=0.1,couleur=0.9white]{#1}}
{\end{bclogo}}



% style des sections
\usepackage{sectsty}


\sectionfont{\LARGE \color{0.2white}}
\subsectionfont{\color{0.4white}}
\renewcommand\thesection{\Roman{section} -}
\renewcommand\thesubsection{\alph{subsection}. }
\subsubsectionfont{\color{0.6white}}
\renewcommand\thesubsubsection{\roman{subsection}. }

\graphicspath{{./figures/}}



% titre

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

\author{Guillaume \textsc{Connan} \\ \href{http://tehessin.tuxfamily.org/}{http://tehessin.tuxfamily.org/}\\
avec l'efficace participation de Jean-Michel \textsc{Boucart}\\
Forum d'aide ~:~\href{http://gconnan.free.fr/punbb/upload/index.php}{http://gconnan.free.fr/punbb/upload/index.php}}

\date{9 mai 2010 - Version 4.07}








%%
%
%  Début du document
%
%%




\begin{document}

\setlength{\parindent}{0mm}

\maketitle


\vspace{1cm}

\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{Nouveautés}

\subsection{Changements depuis la version 3.00}


\begin{figure}[!h]
              \begin{DANGER}{Attention~!}
              À  partir de la  version 4.03  de \texttt{tablor},  il est
              nécessaire     d'avoir    la    nouvelle     version    de
              tableauVariation.mp (la 2.1  datant de décembre 2008) mais
              pour  l'instant   elle  n'est  pas   présente  sur  CTAN~!
              Récupérez     plutôt     le     fichier    à     l'adresse
              \href{http://download.tuxfamily.org/tehessinmath/les\_sources/tableauVariation.mp}{http://download.tuxfamily.org/tehessinmath/les\_sources/tableauVariation.mp}.

Cela ne posera de problèmes que si vous utilisez l'environnement TVZ.
               \end{DANGER}
               \end{figure}



La version 4.01 n'est  malheureusement plus compatible avec les versions
antérieures car une option supplémentaire a été ajoutée pour traiter les
fonctions trigonométriques.

Une  possibilité  a de  plus  été ajoutée  pour  réduire  la taille  des
tableaux.

Les tableaux de signes courts (TSc) ont un argument de plus pour traiter
les valeurs interdites (version 4.01).


Une extension pour une compilation via Xe\TeX{} a été
créé~:~\verb+tablor-xetex.sty+ (version  4.01) ne fonctionnant  que sous
unix.



Un   environnement  TVPC  a   été  créé   pour  traiter   les  fonctions
prolongeables par continuité (version 4.02).


Une  possibilité  a  été ajoutée  pour  donner  un  nom à  une  fonction
nécessitant l'emploi d'une macro \LaTeX{} (version 4.02b).


Les frontières  des zones interdites  sont assorties  de doubles
barres si nécessaire. (version 4.03)


Un  nouvel environnement  TVIex  est  créé pour  avoir  les racines  des
valeurs intermédiaires sous forme exacte quand c'est possible.(version 4.04)

Un bug dans tous les TVI est corrigé.(Version 4.04).

Un bug dû à une mise à  jour de XCAS (version 4.04-b compatible avec les
précédentes).

Des bugs dans TVapp et TVIapp corrigés (version 4.04-c... puis 4.04-d).

Bug dans TVc (version 4.04-h)

Nouvel environnement  TVS pour des  tableaux de variations  de fonctions
dont on ne connait qu'une liste d'images (version 4.05).


Petites modifs  dans le  code pour s'adapter  aux nouvelles  versions de
MetaPOST et  pour contrer certains  bugs dus à  certaines configurations
personnelles de xcas (4.05-b).


Création de l'option windows  : on peu maintenant déclarer l'utilisation
de  l'OS windows  en option  sans aller  modifier le  fichier tablor.cfg
(version 4.06).


Nouveau \verb+tablor.cfg+ : on peut régler l'epsilon de XCAS qui fixe le
seuil  du   zéro  des  flottants.   Il  est  réglé  à   $10^{-100}$  par
défaut. Il faut une version  récente de XCAS, postérieure au 20 novembre
2009. (version tablor : 4.06-c)


Tableaux    en   couleurs    !    Merci   à    \texttt{fp}   du    forum
\href{http://forum.mathematex.net/latex-f6/tableau-de-variations-redige-en-bleu-t10826.html}{\texttt{mathematex}}
(version tablor : 4.07)

\xcas
\begin{lstlisting}[caption={}]
//reglage de epsilon : seuil du zero de giac 
epsilon:=1e-100;
\end{lstlisting}

\subsection{Professor.sty}


\texttt{tablor.sty}  a   fait  des   petits...  Grâce  à   une  efficace
collaboration  avec Denis \textsc{LE  FUR}, vous  disposez à  présent de
toute  une panoplie  d'outils similaires  pour tracer  des  courbes, des
histogrammes, des arbres de probabilités, des graphes probabilistes, des
lissages par moyennes  mobiles et j'en passe et  des meilleures... Allez
découvrir                 ces                 trésors                sur
\href{http://mathsp.tuxfamily.org/spip.php?rubrique46}{http://mathsp.tuxfamily.org/spip.php?rubrique46}.



\subsection{Plugin TeXmacs}


Emmanuël Corcelle a écrit un plugin pour que les utilisateurs de TeXmacs
puissent     eux     aussi     profiter    de     \texttt{tablor}     et
\texttt{professor}. Pour cela visitez le site \href{http://corcelle.wordpress.com/}{http://corcelle.wordpress.com/}




\section{Comment ça marche~?}

\subsection{Principe général}

On entre une instruction qu'on envoie via  \LaTeX{} à \texttt{XCAS} qui effectue un certain nombre de
calculs (résolution d'équations,  calcul de limites). \texttt{XCAS} renvoie un  résultat sous la forme
d'un script \texttt{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~:

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


\xcas

\begin{lstlisting}
maple_mode(0); // au cas où certains travailleraient en mode maple, mupad ou ti
read("config.cxx"); // pour configurer la 1ère colonne (signe de ou sign of etc.)
read("XcasTV.cxx"); // giac charge le programme 
read("XCasTV.user"); // giac lit les paramètres rentrés dans le source
tex et fabrique à la volée le source MetaPOST.
\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{TV}+ et \verb+\end{TV}+.
 


\end{itemize}

\subsection{Code XCAS}

Toutes les procédures suivent le même principe~:

\begin{itemize}
\item la plus grande partie s'occupe de créer les lignes du tableaux à
      l'aide de nombreux tests et boucles;
\item   ensuite,   on   regroupe   ces  lignes   dans   une   variable
      \texttt{MetaLfc};

\item on exporte le tableau à l'aide des trois dernières lignes~:

\xcas

\begin{lstlisting}
sortie:=fopen("XCasmpfc.mp"); // on crée un fichier XCasmpfc.mp
fprint(sortie,Unquoted,MetaLfc); // on y met MetaLfc
fclose(sortie); // on ferme XCasmpfc.mp
\end{lstlisting}




\lat
\end{itemize}




\begin{figure}[!h]
              \begin{Idee}{Autres collaborations XCAS/\LaTeX{}}
On peut  suivre ce même  principe pour créer d'autres  associations de
vos outils préférés. Voir par exemple~:

\href{http://gconnan.free.fr/?page=53}{http://gconnan.free.fr/?page=53}

et 

\href{http://melusine.eu.org/syracuse/giac/}{http://melusine.eu.org/syracuse/giac/}
               \end{Idee}
               \end{figure}





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

\begin{figure}[!h]
  \begin{Idee}{Conseils en lignes}
    N'hésitez pas à explorer la page suivante : 

\href{http://mathsp.tuxfamily.org/spip.php?article186}{http://mathsp.tuxfamily.org/spip.php?article186}

surtout si vous êtes sur XP :-)

De nombreux problèmes ont été réglés sur le forum~: \href{http://gconnan.free.fr/punbb/upload/index.php}{http://gconnan.free.fr/punbb/upload/index.php}
    \end{Idee}
  \end{figure}


  \begin{figure}[!h]
    \begin{Idee}{MikTeX et TeXLive}
      \texttt{tablor}      est      présent      sur      MikTeX      et
      TeXLive. \texttt{tableauVariation.mp} est sur
      MikTeX mais la version n'est pas à jour (à la date du 7 février 2009).
      \end{Idee}
    \end{figure}


\begin{itemize}

\item Il faut avoir installé \texttt{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 \texttt{MetaPOST} 
\texttt{tableauVariation.mp} de Frédéric Mazoit~:
\href{http://download.tuxfamily.org/tehessinmath/les\_sources/tableauVariation.mp}{http://download.tuxfamily.org/tehessinmath/les\_sources/tableauVariation.mp}~;

Pour  ceux  qui  sont guère  habitués  à  \texttt{MetaPOST},  cela  ne  pose aucun  problème  car  les
scripts  et compilations  \texttt{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 \texttt{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} mais ce  n'est pas recommandé car il
 faut activer le shell-escape le moins possible et toujours sous contrôle~;



\begin{figure}[!h]
  \begin{Idee}{shell-escape sur KILE}
    On peut  créer une compilation en allant dans les menus de configuration, l'associer à un raccourci clavier et hop, quand on veut une compil rapide c'est facile.

On va dans \texttt{configuration>kile>outils>nouvel outil}

On l'appelle par exemple shellEscape et on le base sur LateX

Ensuite en commande on met \texttt{latex} (ou \texttt{pdflatex})
et en option \verb+-shell-escape -interaction=nonstopmode '%source'+
et on clique sur OK.

Ensuite on va dans \texttt{configuration>raccourci clavier > rechercher sh}.
On tombe sur shellEscape. On clique sur personnaliser et on choisi un raccourci, par exemple
la touche windows et s (S-s en langage emacs...)

Et voilà : quand on veut compiler un document appelant tablor, on appuie sur windows+s.
    \end{Idee}
  \end{figure}






\begin{figure}[!h]

              \begin{Idee}{shell-escape sur TeXnicCenter}
       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}.

Pour faire comprendre à \texttt{Microsoft Windows XP} où trouver \texttt{giac}, vous pouvez modifier le \texttt{path} en suivant
ces instructions~: 

Demarrer->Panneau de configuration->Système onglet Avancé->Variable d'environnement. Il faut cliquer sur la ligne PATH puis sur le bouton modifier
et là il faut ajouter 

\begin{center}
  \verb+;C:\repertoire_d'installation_de_xcas+
\end{center}



(Merci à Gaëtan et à Daniel).
\end{Idee}
               
      \end{figure}         



\item il  faut avoir  à disposition les  extensions \texttt{fancyvrb},
      \texttt{filecontents}, \texttt{ifthen} et \texttt{ifpdf};

\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  une version  récente de \texttt{MiKTeX}  ou \texttt{TeXLive},
  \texttt{tablor} est déjà installé. Pour les
  utilisateurs de  \texttt{Unix}, vous  devez savoir  comment faire... Par  commodité, vous  pouvez en
  profiter pour  installer la  version \texttt{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}

\item    il   faut   installer    le   fichier    de   configuration
      \texttt{tablor.cfg}   dans   le  même
      répertoire de \texttt{tablor.sty}  ce qui est fait automatiquement
      soit par décompression  d'une archive \texttt{tablor.zip} soit par
      l'intermédiaire des distributions \texttt{MikTeX} et \texttt{TeXLive}.



\end{itemize}






\begin{figure}[!h]
              \begin{DANGER}{Conflit d'extensions}
              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{DANGER}{Commandes créées}
 Huit nouvelles commandes sont crées~:~\verb+\tv, \tvbis, \nettoyer, \initablor,+

  \verb+ \dresse, \dressetoile, \executGiacmp+.
 Attention aux conflits si de  tels noms existent quelque part dans vos
              fichiers personnels.
               \end{DANGER}
               




\section{Comment l'utiliser~?}



\begin{figure}[!h]
  \begin{Idee}{Faut-il savoir utiliser MetaPOST et XCAS~?}
    Non~!  Tous  les  appels  à   ces  logiciels  se  font  sans  aucune
    intervention de l'utilisateur. 
    \end{Idee}
  \end{figure}



\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 sous Linux ou Mac~:

\lat

\begin{lstlisting}
\documentclass{article}
\usepackage{graphicx}
\usepackage[french]{babel} % or eunozer langouage
\usepackage[xcas]{tablor} % xcas en option : cf plus loin
\end{lstlisting}

Le préambule sera toujours sous Windows~:

\lat

\begin{lstlisting}
\documentclass{article}
\usepackage{graphicx}
\usepackage[french]{babel} % or eunozer langouage
\usepackage[xcas,windows]{tablor} % xcas et windows en option : cf plus loin
\end{lstlisting}



% \begin{figure}[!h]
%               \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é \texttt{giac/XCAS}  sur son
    ordinateur  et on  ne  met rien  si  \texttt{giac/XCAS} n'est  pas
    installé ou (et) que l'on a récupéré un
    fichier \texttt{tex} avec  les fichiers sources \texttt{MetaPOST}; Ainsi,  \texttt{tablor} ne fera
    pas appel à \texttt{giac/XCAS} et se contentera de compiler les fichiers \texttt{MetaPOST}.




\subsection{L'option windows}

Si vous utilisez encore Windows\textregistered, déclarez-le en option~:~

\begin{lstlisting}
\usepackage[xcas,windows]{tablor}
\end{lstlisting}

Pour les utilisateurs de Linux et Mac, il n'y a rien à déclarer...

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

\subsubsection*{Contenu}

{\small


\begin{lstlisting}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%  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. 


%========================================
%  I - Configuration du préambule MetaPOST
%========================================

\begin{filecontents*}{enteteMP.cfg}
input tableauVariation;
verbatimtex
%&latex
\documentclass{article}
\usepackage[upright]{fourier} % ou mathpazo, lmodern, etc. ou rien !
\usepackage{amsmath}
\renewcommand\mbox[1]{ #1 } % pour les mbox intempestifs de xcas
\renewcommand\cdot{ } % idem pour les cdot
\begin{document}
\catcode`\@=0 % pour utiliser le @
etex 
\end{filecontents*}




%=================================
% II - Déclaration de l'éditeur utilisé
% ================================
% 
% Remplacez "emacsclient -c" par la commande qui lance un autre editeur que 
% votre éditeur favori pour afficher les tableaux a modifier. 
% Laissez une espace avant de fermer l'accolade.

\newcommand{\editeur}{emacsclient -c }




%=================================
%III - 1ere colonne
%=================================
%
%permet de configurer les termes dans la premiere colonne des
%tableaux : "signe de" ou "sign of" ou "" etc.
%



\begin{VerbatimOut}{config.cxx}

//reglage de epsilon : seuil du zero de giac 
epsilon:=1e-100;

// POUR LES TV, TVI,TVZ,TVapp,TSq,TSa
// pour la ligne signe 
lsic:="
newLigneSignes(btex $\\hbox{ Signe de }\\atop{\\displaystyle ";

// POUR LES TV, TVI,TVZ,TVapp
// pour la ligne variation 
lvic:="
newLigneVariations(btex $\\hbox{  Variations de }\\atop{\\displaystyle ";

\end{VerbatimOut}



%% you may prefer

% \begin{VerbatimOut}{config.cxx}

% // FOR TV, TVI,TVZ,TVapp,TSq,TSa
% // for the signs 
% lsic:="
% newLigneSignes(btex $\\hbox{ Sign of }\\atop{\\displaystyle ";

% // POUR LES TV, TVI,TVZ,TVapp
% // for the variations 
% lvic:="
% newLigneVariations(btex $\\hbox{  Variations of }\\atop{\\displaystyle ";

%\end{VerbatimOut}



%% ou si vous préférez que ni signe ni variation n'apparaissent



% \begin{VerbatimOut}{config.cxx}

% // POUR LES TV, TVI,TVZ,TVapp,TSq,TSa
% // pour la ligne signe 
% lsic:="
% newLigneSignes(btex ${\\displaystyle ";

% // POUR LES TV, TVI,TVZ,TVapp
% // pour la ligne variation 
% lvic:="
% newLigneVariations(btex ${\\displaystyle ";

% \end{VerbatimOut}



\end{lstlisting}
}



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

\subsubsection*{Rôle}

\begin{itemize}
\item La première partie permet de configurer le préambule \texttt{tex} qui sera utilisé par
\texttt{MetaPOST}  pour   créer  les  tableaux.   La  ligne  contenant
l'extension des fontes est en particulier optionnelle~:~vous pouvez la
modifier, voire la supprimer selon vos choix de fontes;


\item si vous utilisez \texttt{ Microsoft-Windows}, il faudra décommenter la
ligne spécifiée afin que les commandes \texttt{unix} soient remplacées
automatiquement par des commandes \texttt{dos};


\item l'éditeur sera appelé dans certains cas pour modifier
    l'aspect des  tableaux dans les fichiers  sources \texttt{MetaPOST}. Il faudra  choisir un éditeur
  comme par exemple \texttt{emacs, xemacs, texmaker, vi, winshell, notepad, vim, kate, gedit,
      textmate,texshop}, \texttt{kile}, etc. 
Pour éviter  certains problèmes, choisissez  un autre éditeur  que celui
que vous utilisez pour \LaTeX{} afin que la fenêtre s'ouvre sans problème.

Voir aussi le paragraphe~\ref{modif};

\item par  défaut, on voit  apparaître dans la  première colonne des  tableaux «~signe de  ~» ou
  «~variations  de ~».  Vous pouvez  modifier ces  réglages ici  comme indiqué;  deux  exemples sont
  donnés~:~en anglais ou en n'écrivant que les expressions.

\item  on peut régler l'epsilon de XCAS qui fixe le
seuil du zéro des flottants. Il est réglé à $10^{-100}$ par défaut.
\end{itemize}


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


Les   fichiers  \texttt{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 \texttt{MetaPOST} des tableaux s'appelle \verb+Waouh\_Tab.mp+

\medskip

Si tout s'est bien passé, on doit supprimer les fichiers \texttt{log} de \texttt{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} % or eunozer langouage
\usepackage[xcas]{tablor} % options modifiables

\begin{document}

\initablor

...

\nettoyer

\end{document}
\end{lstlisting}


\section{Facteur de réduction}

Si vous trouvez le tableau  trop grand, vous pouvez utilisez la commande
\verb+\ech{nombre}+  où  \texttt{nombre}  représente le  coefficienr  de
réduction ou d'agrandissement du tableau.

Par exemple, comparez~:

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

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

\end{center}

et 

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

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

\end{center}

\begin{figure}[!h]
              \begin{DANGER}{Remise à l'échelle 1}
              N'oubliez pas  de remettre à  l'échelle 1 en entrant  à la
              suite de l'environnement \verb+\ech{1}+
               \end{DANGER}
               \end{figure}



\section{Tableaux en couleur}

Grâce à la très efficace intervention de \texttt{fp} du forum
\href{http://forum.mathematex.net/latex-f6/tableau-de-variations-redige-en-bleu-t10826.html}{\texttt{mathematex}},
on peut à présent avoir des tableaux en couleur. Cette couleur est noire
par défaut.  Si on veut égayer  sa présentation, on  utilise la commande
\verb+\coultab{couleur}+  où \verb+couleur+  est  le nom  de la  couleur
désirée selon les standards \textbf{MetaPOST}~:
\begin{itemize}
\item \verb+blue+, \verb+red+, \verb+green+, etc.
\item pour les gris : \verb+0.1white+, \verb+0.2white+, etc.
\item un code RGB : \verb+(0.4,0.2,1)+, etc.
\end{itemize}

\begin{lstlisting}[caption={}]
\coultab{blue}
\begin{TV}
TV([0,2],[],"f","x",x^2,1,n,\tv)
\end{TV}
\end{lstlisting}


\coultab{blue}
\begin{center}
  \begin{TV}
    TV([0,2],[],"f","x",x^2,1,n,\tv)
    \end{TV}
  \end{center}
\coultab{black}





\section{Nom des fonctions et commandes \LaTeX{}}

Si  vous voulez  donner un  nom de  fonction nécessitant  l'emploi d'une
commande \LaTeX{}, il  faudra utiliser le caractère \verb+@+  au lieu de
\verb+\+.

Par  exemple,  pour nommer  une  fonction  $\varphi$,  il faudra  entrer
\verb+@varphi+~:


\begin{lstlisting}
\begin{TSq}
TSq("@varphi",[-45*x-27],[2-x],[-infinity,+infinity],n,\tv)
\end{TSq}
\end{lstlisting}


\begin{center}
  
\begin{TSq}
TSq("@varphi",[-45*x-27],[2-x],[-infinity,+infinity],n,\tv)
\end{TSq}

\end{center}



\section{Utilisation du moteur Xe\LaTeX}


On peut à présent compiler  via Xe\LaTeX{} en utilisant l'extension dédiée
\verb+tablor-xetex.sty+  qui ne fonctionnera  que dans  un environnement
UNIX  puisqu'elle utilise  un script  \texttt{shell} pour  convertir les
sorties MetaPOST en \texttt{pdf} :


\begin{lstlisting}
  
\ifxetex

\begin{filecontents*}{convert-mp-pdf.sh}
#!/bin/sh
mpost -interaction nonstopmode $1 ;

cat>$1.tex<<EOF
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[frenchb]{babel}
\usepackage{graphicx}
\usepackage{pst-eps}
\thispagestyle{empty}
\begin{document}
\begin{TeXtoEPS}
\includegraphics{$1.0}
\end{TeXtoEPS}
\end{document}
EOF
latex $1
dvips -o $1.eps -E $1.dvi
epstopdf $1.eps;
## Fin de convert-mp-pdf.sh
\end{filecontents*}

%$>>


\immediate\write18{chmod 775 ./convert-mp-pdf.sh}

\fi

\end{lstlisting}



Il  n'y a  rien à  faire.  Cette version  peut même  être utilisée  avec
pdf\LaTeX{} ou pdf\TeX{}~!




\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,lignes,trigo,\tv)
\end{lstlisting}

\begin{itemize}

\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$, $\varphi$, 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{lignes} 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 le paramètre  \texttt{trigo} est à remplacer par  \texttt{t} si la
      fonction étudiée est trigonométrique et par tout autre symbole sinon~;
\item on termine par \verb+\tv+, une commande permettant de numéroter les tableaux en interne.

\end{itemize}

\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;7]$.


On obtient~:

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


après avoir entré~:

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



\item Si on veut la même fonction sur \textbf{R} avec le signe de la dérivée~:

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

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

\item Avec la même fonction sur \textbf{R} avec uniquement le signe de la dérivée~:



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

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




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

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

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

\end{center}


\item Pour la fonction $x\mapsto \sin(x)+\frac{1}{2}$ on n'oublie pas le
      paramètre \texttt{t}~:

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

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




\item Il y aura  des problèmes pour des équations $f'(x)=0$ que  \texttt{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{Tableaux dont on ne connaît qu'une liste d'images}

Au début du cours de Seconde, il peut être utile de créer des tableaux à
partir de liste d'images.

On  rentre  la  liste  des   abscisses,  la  liste  des  ordonnées  avec
éventuellement les limites à gauche  et à droite des valeurs interdites,
les valeurs interdites  éventuelles, le nom de la fonction  et le nom de
la variable.

\subsubsection{Sans valeur interdite}

\begin{lstlisting}
\begin{TVS}
TVS([1,2,3,4],[-1,5,2,9],[],"f","x",\tv)
\end{TVS}
\end{lstlisting}

\begin{TVS}
TVS([1,2,3,4],[-1,5,2,9],[],"f","x",\tv)
\end{TVS}

\subsubsection{Avec valeurs interdites}


\begin{lstlisting}
  \begin{TVS}
TVS([1,2,3,4],[-1,-infinity,+infinity,2,9],[2],"f","x",\tv)
\end{TVS}
\end{lstlisting}

\begin{TVS}
TVS([1,2,3,4],[-1,-infinity,+infinity,2,9],[2],"f","x",\tv)
\end{TVS}


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



\begin{TVS}
TVS([1,2,3,4],[-1,-infinity,+infinity,2,+infinity],[1,2,4],"f","x",\tv)
\end{TVS}

\subsection{Tableau de variation avec «~zone(s) interdite(s)~»}


Pour certaines fonctions, tout un (ou plusieurs) intervalle(s) est(sont) exclu(s) de l'ensemble de définition.

Par  exemple,  la  fonction  $x\mapsto  \sqrt{x^2-1}$  est  définie  sur  $]-\infty;  -1]\cup[1;
+\infty[$.

On utilise alors l'environnement \texttt{TVZ} (Z comme zone...).


\begin{lstlisting}
\begin{TVZ}
  TVZ([-infinity,+infinity],[],[[-1,1]],"@varphi","x",sqrt(x^2-1),1,n,\tv)
\end{TVZ}
\end{lstlisting}


\begin{center}
  \begin{TVZ}
  TVZ([-infinity,+infinity],[],[[-1,1]],"@varphi","x",sqrt(x^2-1),1,n,\tv)
\end{TVZ}
\end{center}


\begin{figure}[!h]
              \begin{DANGER}{Listes des intervalles interdits}
              Le troisième argument est une liste  d'intervalles : la liste des «~zones interdites~»
              qui peut éventuellemnt se réduire à un seul intervalle comme dans l'exemple précédent.
               \end{DANGER}
               \end{figure}

Voici       un      exemple       comportant       plusieurs      zones       interdites~:~$x\mapsto
\ln\big((x-5)^2-1\big)+\ln\big(x^2-1\big)$


\begin{lstlisting}
\begin{TVZ}
  TVZ([-infinity,+infinity],[-1,1,4,6],[[-1,1],[4,6]],"f","x",ln((x-5)^2-1)+ln(x^2-1),1,n,\tv)
\end{TVZ}
\end{lstlisting}



\begin{center}
  \begin{TVZ}
 TVZ([-infinity,+infinity],[-1,1,4,6],[[-1,1],[4,6]],"f","x",ln((x-5)^2-1)+ln(x^2-1),1,n,\tv)
\end{TVZ}
\end{center}


\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,trigo,\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,n,\tv)
\end{TVI}
\end{lstlisting}


et on obtient~:

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

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,n,\tv)
\end{TVI}
\end{lstlisting}


et on obtient~:

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




\subsection{Tableau   des   variations   avec   théorème   des   valeurs
  intermédiaires et racines sous forme exacte}

Si l'on veut mettre en  évidence les solutions de l'équation $f(x)=a$ et
qu'on  veut  faire apparaître  les  racines  sous  forme exacte  et  pas
seulement sous forme d'$\alpha_i$, on utilise l'environnement
\texttt{TVIex}.

La syntaxe est la même que \texttt{TVI}~:

\begin{lstlisting}
TVIex([borne inf,borne sup],[valeurs interdites],"nom fonction","nom variable",expression en fonction de x,t,a,trigo,\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{TVIex}
TVIex([-10,+infinity],[-1,1],"f","x",x^2/(x^2-1),1,10,n,\tv)
\end{TVIex}
\end{lstlisting}


et on obtient~:

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

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


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


et on obtient~:

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

Avec une équation trigonométrique~:

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

\begin{TVIex}
TVIex([-pi,pi],[],"@cos","x",cos(x),1,1/2,t,\tv)
\end{TVIex}


\begin{figure}[!h]
  \begin{DANGER}{Racines formelles non calculables}
    XCAS peut ne  pas pouvoir trouver une expression  exacte des racines
    et affichera un message barbare du style~:

\texttt{Unable to isolate x in ...}

Le tableau ne sera alors pas construit et vous aurez un message d'erreur.
    \end{DANGER}
  \end{figure}


\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
\texttt{fsolve} de \texttt{XCAS} utilisée à bon  escient. On appelera les environnements \texttt{TVapp} et
\texttt{TVIapp} ainsi que leurs associés étoilés.

Voyons sur un exemple.

\subsubsection*{Exemple}

On veut résoudre l'équation $\ln(x)=\mathrm{e}^{-x}$ sur $]0,+\infty[$.

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


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


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


\begin{figure}[!h]
              \begin{DANGER}
 {TVapp et TVIapp ne sont pas infaillibles~!~!}

Chercher  \emph{toutes} les  approximations des  racines de  la dérivées
c'est se lancer dans la théorie du tout c'est-à-dire concilier la
   recherche de solutions approchées pouvant être extrêmement proches 
sur    des intervalles pouvant être extrêmement   étendus. Un concepteur 
de logiciel de calcul formel s'y refuse. Je devais m'y coller par souci
d'efficacité. 
 Normalement, le  code 
devrait fonctionner pour \emph{la plupart} des cas étudiés par des profs pas 
trop  sadiques. Ça ralentit  légèrement la  compilation. Le  balayage se
fait avec une précision de 
0,1. C'est sûr qu'on peut trouver de nombreux exemples qui ne 
fonctionneront pas mais plus on veut resserrer les mailles du filet, 
plus on passe de temps à les tricoter sauf dans le cas des fonctions 
polynomiales grâce à XCAS.

 Se pose aussi le problème des 
images et des tests de signes et de leurs approximations. Par exemple

\begin{lstlisting}
\begin{TVapp}
TVapp([0,+infinity],[0],"g","x",1/3*x^3-0.0015*x^2+2e-06*x,1,\tv)
\end{TVapp}
\end{lstlisting}

renvoie un tableau curieux car les images des racines de la dérivées 
sont de l'ordre de $10^{-10}$. 


% \begin{TVapp}
% TVapp([0,+infinity],[0],"g","x",1/3*x^3-0.0015*x^2+2e-06*x,1,\tv)
% \end{TVapp}

Ça  peut  s'arranger en  donnant  en  argument supplémentaire le  nombre  de
chiffres affichés. Cela  rendrait les différentes versions incompatibles
et le jeu n'en vaut pas forcément la chandelle.
               \end{DANGER}
               \end{figure}




\subsection{Tableaux de variations de fonctions prolongeables par continuité}

On  peut avoir prolongée  une fonction  par continuité  et donc  ne plus
avoir de double barre sur la  ligne des variations mais toujours une sur
la ligne du signe de la dérivée.

On entre trois listes~:
\begin{enumerate}
\item les bornes de l'intervalle d'étude, comme toujours~;
\item les valeurs où la fonction sera prolongée par continuité~;
\item les valeurs où la fonction n'est pas dérivable.
\end{enumerate}

Cela donne pour $x\mapsto {\rm e}^{-1/x^2}$~:


\begin{lstlisting}
\begin{TVPC}
TVPC([-infinity,+infinity],[0],[0],"g","t",e^(-1/x^2),1,n,\tv); 
\end{TVPC}
\end{lstlisting}


\begin{TVPC}
TVPC([-infinity,+infinity],[0],[0],"g","t",e^(-1/x^2),1,n,\tv); 
\end{TVPC}



\subsection{Tableaux de variations et courbes paramétrées}

On peut  obtenir le tableau de  variations correspondant à  des courbes paramétrées définies  par un
système du type~:

\[\begin{cases} x=f(t) \\ 
      y=g(t)
\end{cases}\]

La syntaxe est la suivante~:

\begin{lstlisting}
 \begin{TVP}
TVP(IE,VI,["x","y"],"t",[x(t),y(t)],a,trigo,n,\tv)
 \end{TVP}
\end{lstlisting}


avec  \texttt{IE}  l'intervalle d'étude,  \texttt{VI}  la liste  des  listes  de valeurs  interdites
respectives pour les deux fonctions, \texttt{a} pour  avoir un tableau complet ou partiel comme dans
les autres  "TV", enfin \texttt{trigo}  qui vaut \texttt{t} si  interviennent des
fonctions trigonométrqiues, autre chose
sinon.


\begin{figure}[!h]
              \begin{DANGER}{Version de XCAS}
              L'utilisation de TVP implique l'utilisation d'une version de XCAS d'une date postérieure au 14 juin
              2008 !
               \end{DANGER}
               \end{figure}


\subsubsection{Cas des fonctions trigonométriques}

Étudions par exemple sur $\left[0\ ;\ \frac{\pi}{2}\right]$


\[
\begin{cases} x(t)=\cos(3t) \\
 y(t)=\sin(4t)
\end{cases}\]

\begin{lstlisting}
  
 \begin{TVP}
 TVP([0,pi/2],[[],[]],["x","y"],"t",[cos(3*t),sin(4*t)],1,t,\tv)
 \end{TVP}

\end{lstlisting}
 
 \begin{TVP}
 TVP([0,pi/2],[[],[]],["x","y"],"t",[cos(3*t),sin(4*t)],1,t,\tv)
 \end{TVP}



\subsubsection{Les autres cas}



Étudions par exemple sur $]-\infty\ ;\ +\infty[$


\[
\begin{cases} 
x(t)=\frac{t^2}{(t+1)(t-2)} \\ 
y(t)=\frac{t^2(t+2)}{t+1}
\end{cases}
\]

\begin{lstlisting}
\begin{TVP}
TVP([-infinity,+infinity],[[-1,2],[-1]],["x","y"],"t",[t^2/((t+1)*(t-2)),t^2*(t+2)/(t+1)],1,n,\tv)
\end{TVP}
\end{lstlisting}



\begin{TVP}
TVP([-infinity,+infinity],[[-1,2],[-1]],["x","y"],"t",[t^2/((t+1)*(t-2)),t^2*(t+2)/(t+1)],1,n,\tv)
\end{TVP}



\section{Tableaux de signes}


\subsection{Cas du produit de deux facteurs affines}

Pour étudier le signe de $(-2x+3)(-x+5)$ sur \textbf{R}, 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}


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




\begin{figure}[!h]
              \begin{DANGER}{Nouveauté à partir de la version 2.08}
Par souci de cohérence  avec l'environnement TSq, on doit rajouter maintenant  en premier argument le
nom de la fonction produit dans l'environnement TS.
               \end{DANGER}
               \end{figure}








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("P",[-2*x+3,x^2-1,x^2+1,x-1,x^2-2],[-infinity,+infinity],n,\tv);
\end{TS}
\end{lstlisting}

On obtient~:


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



Ou bien, sur un intervalle borné~:

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


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



\subsection{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],trigo,\tv)
\end{TSq}
\end{lstlisting}

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

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




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

 Sur un intervalle borné~:

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


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




\subsection{Signe d'une seule expression}


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

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



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

avec valeurs interdites~:

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


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

valeurs interdites et fonction trigonométrique~:

\begin{lstlisting}
\begin{TSc}
TSc(tan(x),[0,2*pi],[pi/2,3*pi/2],t,\tv)
\end{TSc}
\end{lstlisting}


\begin{TSc}
TSc(tan(x),[0,2*pi],[pi/2,3*pi/2],t,\tv)
\end{TSc}


\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 \texttt{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,n,\tv)
\end{TV*}
\end{lstlisting}

l'éditeur que vous avez mis en option (voir le paragraphe~\ref{option}) est directement lancé et le fichier
\texttt{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é.

\begin{figure}[!h]
              \begin{DANGER}{Choix de l'éditeur}
              Évitez    de   choisir   votre    éditeur   habituel~:~sur
              \texttt{Linux}   prenez  par  exemple   \texttt{gedit}  ou
              \texttt{kate},       sur      \texttt{Windows}      prenez
              \texttt{wordpad}, etc.
               \end{DANGER}
               \end{figure}



Par exemple, je tape~:

\begin{lstlisting}
\begin{TS*}{100}
    TS("F",[3*x+2,5*x^2-1],[-50,50],n,\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*}{105}
    TS("F",[3*x+2,5*x^2-1],[-50,50],n,\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é \texttt{XCAS}. Voir le paragraphe~\ref{prefix} pour plus de détails.


\section{Merci...}

\begin{itemize}

\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 \texttt{XCAS};

\item à Jean-Michel \textsc{Boucart}  pour ses précieuses et efficaces
      améliorations de la partie \LaTeX{} du code.


\end{itemize}


\section{Erreurs habituelles}


Avez-vous rendu possible le \texttt{shell-escape}~? Avez-vous installé
toutes les extensions listées en début de ce document~? Est-ce que \texttt{XCAS}
 est dans votre \texttt{PATH}~?

La première chose est d'analyser le fichier \texttt{log}.

En cas de problème, n'hésitez  pas à me contacter à l'adresse indiquée
sur mon site en joignant  le fichier \texttt{log}.



\section{\texttt{Tablor} et Emacs}

Pour les heureux  utilisateurs de tempo, voici  quelques lignes pour faciliter votre  vie à rajouter
dans un fichier \texttt{latex-tempo}: 

\begin{lstlisting}
;;
;;            TABLOR
;;;
;cas tableau de variation
      ("TV" (& > "\\begin{center}"n>
		 "\\begin{TV}" n>
"TV(["(p "debut de l'intervalle:")","(p "fin de l'intervalle:")"],"
		 "["(p "liste de valeurs interdites (,) :")"],"
		 "\""(p "nom de la fonction :")"\","
		 "\""(p "nom de la variable :")"\","
		 ""(p "expression de la fonction (utiliser x) :")","
""(p "type de tableau (1:complet, 0:sans signe, 2:que le signe) :")","
""(p "trigo ? (t:oui, n:non) :")","
		 "\\tv)" n>
	       "\\end{TV}" n>
	       "\\end{center}" > % ))
      ;cas TVI
      ("TVI" (& > "\\begin{center}"n>
		  "\\begin{TVI}" n>
"TVI(["(p "debut de l'intervalle:")","(p "fin de l'intervalle:")"],"
		  "["(p "liste de valeurs interdites (,) :")"],"
		  "\""(p "nom de la fonction :")"\","
		  "\""(p "nom de la variable :")"\","
		  ""(p "expression de la fonction (utiliser x) :")","
""(p "type de tableau (1:complet, 0:sans signe, 2:que le signe) :")","
""(p "trigo ? (t:oui, n:non) :")","
		  ""(p "f(x)=l pour la valeur l :")","
		  "\\tv)" n>
		  "\\end{TVI}" n>
		  "\\end{center}" > % ))
      ;cas signe produit
      ("TS" (& > "\\begin{center}"n>
		  "\\begin{TS}" n>
		  "TS(\""(p "nom du produit :")"\","
                 "["(p "liste des facteurs (,) :")"],"
        "["(p "debut de l'intervalle:")","(p "fin de l'intervalle:")"],"
	""(p "trigo ? (t:oui, n:non) :")","
		  "\\tv)" n>
		  "\\end{TS}" n>
		  "\\end{center}" > % ))
      ;cas signe quotient
      ("TSq" (& > "\\begin{center}"n>
		  "\\begin{TSq}" n>
		  "TSq(\""(p "nom du quotient :")"\","
		  "["(p "liste des facteurs du numerateur (,) :")"],"
		  "["(p "liste des facteurs du denominateur (,) :")"],"
	"["(p "debut de l'intervalle:")","(p "fin de l'intervalle:")"],"
	""(p "trigo ? (t:oui, n:non) :")","
		  "\\tv)" n>	
		  "\\end{TSq}" n>
		  "\\end{center}" > % ))

; Tableau signe court
 ("TSc" (& > "\\begin{center}"n>
		  "\\begin{TSc}" n>
		  "TSc("(p "expression :")",""["
(p "debut de l'intervalle:")","
(p "fin de l'intervalle:")"],""["
(p "liste de valeurs interdites (,) :")"],"""
(p "trigo ? (t:oui, n:non) :")","
		  "\\tv)" n>
		  "\\end{TSc}" n>
		  "\\end{center}" > % ))

       ;cas tableau de variation avec zone interdite
      ("TVZ" (& > "\\begin{center}"n>
		 "\\begin{TV}" n>
"TVZ(["(p "debut de l'intervalle:")","(p "fin de l'intervalle:")"],"
		 "["(p "liste de valeurs interdites (,) :")"],"
		  "["(p "liste des zones interdites ([,],[,]) :")"],"
		 "\""(p "nom de la fonction :")"\","
		 "\""(p "nom de la variable :")"\","
		 ""(p "expression de la fonction (utiliser x) :")","
""(p "type de tableau (1:complet, 0:sans signe, 2:que le signe) :")","
""(p "trigo ? (t:oui, n:non) :")","
		 "\\tv)" n>
	       "\\end{TV}" n>
	       "\\end{center}" > % ))
;cas TVP
      ("TVP" (& > "\\begin{center}"n>
                  "\\begin{TVI}" n>
"TVP(["(p "debut de l'intervalle:")","(p "fin de l'intervalle:")"],"
                  "[["(p "liste de valeurs interdites de x(t)(,) :")"],"
                   "["(p "liste de valeurs interdites de y(t)(,) :")"]],"
                  "[\""(p "nom de la fonction x :")"\","
                   "\""(p "nom de la fonction y :")"\"],"
                  "\""(p "nom de la variable :")"\","
                  "["(p "expression de la fonction x (utiliser t) :")","
                  ""(p "expression de la fonction y (utiliser t) :")"],"
""(p "type de tableau (1:complet, 0:sans signe, 2:que le signe) :")","
                  ""(p "t si fonctions trigo, n sinon :")","
                  "\\tv)" n>
                  "\\end{TVP}" n>
                  "\\end{center}" > % ))
\end{lstlisting}

Merci à \href{http://phil.pham.free.fr/}{Phil Pham}.


\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,n,\tv)
\end{TVI}
\end{lstlisting}

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


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


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


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

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

\stepcounter{TVn}

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

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



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

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

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

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






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

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


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

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


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

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




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

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





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

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


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

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

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

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




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

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

\stepcounter{TVn}


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

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





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

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

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



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


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



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



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



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


\begin{lstlisting}
\begin{TVZ}
  TVZ([-infinity,+infinity],[],[[-1,1]],"f","x",(sqrt(x^2-1))*(x^2-4),1,n,\tv)
\end{TVZ}
\end{lstlisting}

 \begin{TVZ}
  TVZ([-infinity,+infinity],[],[[-1,1]],"f","x",(sqrt(x^2-1))*(x^2-4),1,n,\tv)
  \end{TVZ}
   
  \begin{lstlisting}
\begin{TVZ}
  TVZ([-infinity,+infinity],[-1,1],[[-1,1]],"f","x",ln(x^2-1),1,n,\tv)
\end{TVZ}
  \end{lstlisting}

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



  \begin{lstlisting}
\begin{TVP}
TVP([0,pi/2],[[],[]],["x","y"],"t",[cos(3*t),sin(4*t)],1,t,\tv)
\end{TVP}
  \end{lstlisting}



\begin{TVP}
TVP([0,pi/2],[[],[]],["x","y"],"t",[cos(3*t),sin(4*t)],1,t,\tv)
\end{TVP}


\begin{lstlisting}
\begin{TVP}
TVP([0,2*pi],[[],[]],["x","y"],"t",[t-2*sin(t),-1+2*cos(t)],1,t,\tv)
\end{TVP}
\end{lstlisting}


\begin{TVP}
TVP([0,2*pi],[[],[]],["x","y"],"t",[t-2*sin(t),-1+2*cos(t)],1,t,\tv)
\end{TVP}


% \begin{lstlisting}
%  \begin{TVZ}
%  TVZ([-infinity,+infinity],[],[[-1,1],[4,6]],"f","x",sqrt((x-5)^2-1)+sqrt(x^2-1),1,n,\tv)
% \end{TVZ}
% \end{lstlisting}



% \begin{center}
%   \begin{TVZ}
%  TVZ([-infinity,+infinity],[],[[-1,1],[4,6]],"f","x",sqrt((x-5)^2-1)+sqrt(x^2-1),1,n,\tv)
% \end{TVZ}
% \end{center}



\begin{lstlisting}
  \begin{TVP}
    TVP([0,pi/2],[[],[]],["f","g"],"t",[(sin(3*t)),(sin(4*t))],1,t,\tv)
    \end{TVP}
\end{lstlisting}


\begin{center}
  \begin{TVP}
    TVP([0,pi/2],[[],[]],["f","g"],"t",[(sin(3*t)),(sin(4*t))],1,t,\tv)
    \end{TVP}
  \end{center}

\begin{lstlisting}
\begin{TS}
  TS(" f ",[cos(x)-1/2,sin(x)+1/2],[0,2*pi],t,\tv)
\end{TS}
\end{lstlisting}


\begin{center}
\begin{TS}
  TS(" f ",[cos(x)-1/2,sin(x)+1/2],[0,2*pi],t,\tv)
\end{TS}
\end{center}

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

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




% \lat

% \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,n,\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}
%         TV([-20,20],[],"f","x",3*x^3-5*x^2+2*x-7,0,n,\tv)
% \end{TV}

% \item Tableau 2 \Rep

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

% \item Tableau 3 \Rep

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


% \item Tableau 4 \Rep

% \begin{TSc}
%         TSc(3*x^3-5*x^2+2*x-7,[-20,20],n,\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,n,\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}
%         TV([-20,20],[],"f","x",3*x^3-5*x^2+2*x-7,0,n,\tv)
% \end{TV}

% \item Tableau 2 \Rep

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

% \item Tableau 3 \Rep

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


% \item Tableau 4 \Rep

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


% \end{enumerate}

% \end{enumerate}



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

% Étudions sa dérivée~:


% \begin{TVIapp}
%  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}
%  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 \textbf{R} par $f(x)=\frac{1}{2}\bigl(x+(1-x){\rm e}^{2x}\bigr)$

% Étudions sa dérivée~:


% \begin{TVIapp}
%  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}
%  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: 
