From 68c951c7f1014e7cfe936aa3de9e0b992280be10 Mon Sep 17 00:00:00 2001 From: Manuel Pégourié-Gonnard Date: Fri, 16 May 2008 16:13:11 +0000 Subject: tablor v2.05 (2008/05/14) git-svn-id: svn://tug.org/texlive/trunk@8181 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/tablor/Figures.zip | Bin 161346 -> 175060 bytes Master/texmf-dist/doc/latex/tablor/tablor.html | 356 +-- Master/texmf-dist/doc/latex/tablor/tablor.pdf | Bin 331007 -> 469785 bytes Master/texmf-dist/doc/latex/tablor/tablor.tex | 332 ++- Master/texmf-dist/tex/latex/tablor/tablor.cfg | 8 +- Master/texmf-dist/tex/latex/tablor/tablor.sty | 140 +- Master/texmf-dist/tex/latex/tablor/tablorutf8.sty | 2393 --------------------- 7 files changed, 510 insertions(+), 2719 deletions(-) delete mode 100644 Master/texmf-dist/tex/latex/tablor/tablorutf8.sty diff --git a/Master/texmf-dist/doc/latex/tablor/Figures.zip b/Master/texmf-dist/doc/latex/tablor/Figures.zip index c9be5218fe3..ae85df1bd44 100644 Binary files a/Master/texmf-dist/doc/latex/tablor/Figures.zip and b/Master/texmf-dist/doc/latex/tablor/Figures.zip differ diff --git a/Master/texmf-dist/doc/latex/tablor/tablor.html b/Master/texmf-dist/doc/latex/tablor/tablor.html index 4070357a6b8..0668506334f 100644 --- a/Master/texmf-dist/doc/latex/tablor/tablor.html +++ b/Master/texmf-dist/doc/latex/tablor/tablor.html @@ -25,6 +25,12 @@ color: #9932cc; font-weight: bold; } + .flyspell-duplicate { + /* flyspell-duplicate-face */ + color: #cdad00; + font-weight: bold; + text-decoration: underline; + } .flyspell-incorrect { /* flyspell-incorrect-face */ color: #ff4500; @@ -83,13 +89,13 @@
 
 \NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesPackage{tablor}[24/03/2008 v2.03 la machine à créer des tableaux de signes et variations]
+\ProvidesPackage{tablor}[14/05/2008 v2.05 la machine à créer des tableaux de signes et variations]
 
 % \copyleft Connan le Barbare \copyright
 % avec l'efficace participation de Jean-Michel Boucart
 
 
-%% Crée 14 environnements :
+%% Crée 16 environnements :
 %% tableau de signes de 2 facteurs affines
 % \begin{TSa}
 % TSa(-2,3,-1,5,\tv);
@@ -110,7 +116,14 @@
 % TV([0,+infinity],[0],"h","x",ln(x)-(ln(x))^2,1,\tv)
 % \end{TV}
 %
-% tableau avec valeurs intermédiares
+% tableau de variation avec zones interdites
+%
+% \begin{TVZ}
+%   TVZ([-infinity,+infinity],[],[[-1,1]],"f","x",sqrt(x^2-1),1,\tv)
+% \end{TVZ}
+%
+%
+% tableau avec valeurs intermédiares
 %\begin{TVI}
 %TVI([-1,+infinity],[-1],"f","x",x2/sqrt(x+1)-1,1,2,\tv)
 %\end{TVI}
@@ -144,29 +157,29 @@
 
 
 \RequirePackage{ifthen}
-\RequirePackage{fancyvrb}
-\RequirePackage{ifpdf}
+\RequirePackage{fancyvrb}
+\RequirePackage{ifpdf}
 
 
 % option xcas présent 
 
 
-\newboolean{xcas}\setboolean{xcas}{false}
+\newboolean{xcas}\setboolean{xcas}{false}
 \DeclareOption{xcas}{\setboolean{xcas}{true}}
 
-%% Initialisation du choix d'OS
-\newboolean{windows}\setboolean{windows}{false}
+%% Initialisation du choix d'OS
+\newboolean{windows}\setboolean{windows}{false}
 
 
 
-%% on configure  tablor  dans un fichier extérieur pour la plateforme
+%% on configure  tablor  dans un fichier extérieur pour la plateforme
 %% et l'éditeur
 
-\IfFileExists{tablor.cfg}{\input{tablor.cfg}}%\typeout{pas de fichier tablor.cfg}}
+\IfFileExists{tablor.cfg}{\input{tablor.cfg}}%\typeout{pas de fichier tablor.cfg}}
 
 \ProcessOptions\relax
 
-%% pour ceux compilant via pdflatex
+%% pour ceux compilant via pdflatex
 
 \ifpdf
 \DeclareGraphicsRule{*}{mps}{*}{}
@@ -174,7 +187,7 @@
 
 %% pour nettoyer les fichiers auxiliaires
 
-\AtEndDocument{\immediate\write18{\rem tete.* *.user XCas* Xcas* *.mpx}}
+\AtEndDocument{\immediate\write18{\rem tete.* *.user XCas* Xcas* *.mpx}}
 
 
 
@@ -182,16 +195,16 @@
 %% En-tête pour le fichier metapost contenant les codes 
 %% de tous les tableaux produits
 
- \begin{VerbatimOut}[commandchars=?§£]{tete.mp}
+ \begin{VerbatimOut}[commandchars=?WW]{tete.mp}
   input tableauVariation;
   verbatimtex
 %&latex
      \documentclass{article}
-      \\?fonte
+     \?fonte
      \usepackage{amsmath}
      \newcommand{\Mathbold}[1]{\mbox{\boldmath$#1$\unboldmath}}
      \begin{document}
-     etex 
+     etex 
 
   \end{VerbatimOut}
 
@@ -203,17 +216,17 @@
 
 
 %% Définit des commandes disque selon l'OS utilisé
-\ifthenelse{\boolean{windows}}%
+\ifthenelse{\boolean{windows}}%
     {\newcommand{\rem}{DEL } \newcommand{\cat}{TYPE }
       \newcommand{\cp}{COPY }}%
-    {\newcommand{\rem}{rm }\newcommand{\cat}{cat }
-      \newcommand{\cp}{cp }}
+    {\newcommand{\rem}{rm }\newcommand{\cat}{cat }
+      \newcommand{\cp}{cp }}
 
 
 
 \newcommand{\nettoyer}[1][\jobname]%
 {\immediate\write18{\rem #1.Tab.log}
-\immediate\write18{echo end >> #1.Tab.mp}
+\immediate\write18{echo end >> #1.Tab.mp}
 }
 
 
@@ -283,7 +296,7 @@
 %%
 
 
-\begin{VerbatimOut}[commandchars=?§£]{XcasTV.cxx}
+\begin{VerbatimOut}[commandchars=?WW]{XcasTV.cxx}
 TV(L,F,nom,nomv,f,ftt,nmr):={
 nl:=size(L);
 f:=unapply(f,x);
@@ -324,7 +337,7 @@ if(nz>2){ for(r:=1; r<=nz-2;r++){      ksp:=evalf(fp(Z[r]+0.01))>0;
                                                 if(ksp==1){"plus;"}else{"moins;"}
                                                   }; }
 
-lsf:=if(member(Z[nz-1],F)==0){""}else{"nomDefBarre;
+lsf:=if(member(Z[nz-1],F)==0){""}else{"nomDefBarre;
 "}
 lm0:=limite(f(x),x=Z[0],1)==-infinity;
      li:="
@@ -352,7 +365,7 @@ lnz:=limite(f(x),x=Z[nz-1],-1)==-infinity;
 "};    
     
 
-intro:="input tableauVariation;
+intro:="input tableauVariation;
            verbatimtex
 %&latex
  \\documentclass{article}
@@ -395,7 +408,7 @@ if(nz>2){intro+"beginTableau("+nmr+")"+
 lsi+lsp+lsf+
 li+
 lp+
-lf
+lf
 +"
 endTableau;
 end";}else{intro+"beginTableau("+nmr+")"+
@@ -437,7 +450,7 @@ endTableau;
 li+
 lf
 +"
-endTableau;
+endTableau;
 
 ";}}else{
 if(nz>2){"beginTableau("+nmr+")"+
@@ -474,28 +487,44 @@ return(MetaL);
 
 %%
 %%
-%% TV avec une zone interdite : on rajoute comme argument l'intervalle interdit
-%% par exemple, pour sqrt(x^2-1) : TVZ([-infinity,100],[],[-1,1],"f","x",sqrt(x^2-1),1,1)
+%% TV avec une zone interdite : on rajoute comme argument la liste des intervalles interdits
+%% par exemple, pour sqrt(x^2-1) : TVZ([-infinity,100],[],[[-1,1]],"f","x",sqrt(x^2-1),1,1)
 %%
 
-\begin{VerbatimOut}[commandchars=?§£]{XcasTVZ.cxx}
+\begin{VerbatimOut}[commandchars=?WW]{XcasTVZ.cxx}
+
 
 TVZ(L,F,FF,nom,nomv,f,ftt,nmr):={
 nl:=size(L);
-if(FF[0]>L[0]){Imin:=FF[0];LL:=L}else{Imin:=L[0];LL:=[L[1]]};
-if(FF[1]<L[1]){Imax:=FF[1];LL:=L}else{Imax:=L[1];LL:=[L[0]]};
-FF:=[Imin,Imax];
-f:=unapply(f,x);
+nf:=size(FF);
+ Ff:=NULL;IMIN:=NULL;IMAX:=NULL;
+for(k:=0;k<nf;k++){
+if(FF[k][0]>L[0]){Imin[k]:=FF[k][0];LL:=L}else{Imin[k]:=L[0];LL:=[L[1]]};
+if(FF[k][1]<L[1]){Imax[k]:=FF[k][1];LL:=L}else{Imax[k]:=L[1];LL:=[L[0]]};
+ Ff:=Ff,[Imin[k],Imax[k]];
+ IMIN:=IMIN,Imin[k];
+ IMAX:=IMAX,Imax[k];
+ }
+ FF:=[Ff];
+ IMIN:=[IMIN];
+ IMAX:=[IMAX];
+ f:=unapply(f,x);
 fp:=fonction_derivee(f);
 Z:=concat(LL,F);
-Z:=concat(Z,FF);
+
+for(k:=0;k<nf;k++){
+Z:=concat(Z,FF[k]);
+}
+
 S:=resoudre(fp(x),x);
   si size(S)>0 alors   pour j de 0 jusque size(S)-1 faire 
-                             kk:=(evalf(S[j])>=evalf(L[0])) and (evalf(S[j])<=evalf(L[nl-1]));
-                             kK:=(evalf(S[j])<evalf(Imin)) or (evalf(S[j])>evalf(Imax));
+                         for(k:=0;k<nf;k++){  
+                           kk:=(evalf(S[j])>=evalf(L[0])) and (evalf(S[j])<=evalf(L[nl-1]));
+                             kK:=(evalf(S[j])<evalf(Imin[k])) or (evalf(S[j])>evalf(Imax[k]));
                              Kk:=(kk) and kK;
                           if(Kk==1){Z:=append(Z,simplifier(S[j]))};
-                          fpour
+                          }
+                        fpour
   fsi;
 
 Z:=sort(Z); 
@@ -510,9 +539,12 @@ pour u de 1 jusque nz-2 faire
      fsi;
 fpour;
 nz:=size(Z);
-for(k:=1;k<nz;k++){
-if ((Z[k]>Imin)and(Z[k]<Imax)){Z:=augment(Z[0..k-1],Z[k+1..nz-1]);nz:=nz-1;
-}
+
+for(j:=0;j<nf;j++){
+ for(k:=1;k<nz;k++){
+   if ((Z[k]>Imin[j])and(Z[k]<Imax[j])){Z:=augment(Z[0..k-1],Z[k+1..nz-1]);nz:=nz-1;
+   }
+  }
 }
 nz:=size(Z);
 
@@ -525,21 +557,27 @@ pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+
                           
 lsi:="
 newLigneSignes(btex $\\hbox{ Signe de }\\atop{\\displaystyle "+nom+"'("+nomv+")}$ etex);"+
-     if(Z[0]==Imin){"debutNonDef;"}else{if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
+if(member(Z[0],IMIN)!=0){"debutNonDef;"}else{if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
                                                     if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
                                                     if(sign(fp(Z[0]+10^(-5)))==1){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
                                                          if(sign(fp((Z[0]+10^(-5))))==1){"plus;"}else{"moins;"} }}}
- 
-if(nz>2){ for(r:=1; r<=nz-2;r++){      ksp:=evalf(fp(Z[r]+0.01))>0;                     
-                                               lsp:=lsp+if(Z[r]==Imin){"debutNonDef;"}else{
-                                                       if(Z[r]==Imax){"finNonDef;"+
+
+
+
+if(nz>2){ for(r:=1; r<=nz-2;r++){ ksp:=evalf(fp(Z[r]+0.01))>0; 
+                                               lsp:=lsp+if(member(Z[r],IMIN)!=0){"debutNonDef;"}else{
+                                                       if(member(Z[r],IMAX)!=0){"finNonDef;"+
                                                 if(ksp==1){"plus;"}else{"moins;"}}else{
                                                  if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
                                                 if(ksp==1){"plus;"}else{"moins;"}
                                                   }}}}; 
 
-lsf:=if(Z[0]==Imax){"finNonDef;"}else{if(member(Z[nz-1],F)==0){""}else{"nomDefBarre;
+
+
+lsf:=if(member(Z[0],IMAX)!=0){"finNonDef;"}else{if(member(Z[nz-1],F)==0){""}else{"nomDefBarre;
 "}}
+
+
 lm0:=limite(f(x),x=Z[0],1)==-infinity;
      li:="
 newLigneVariations(btex $\\hbox{\\bf Variations de }\\atop{\\displaystyle \\Mathbold{"+nom+"}}$ etex);"+
@@ -549,11 +587,12 @@ newLigneVariations(btex $\\hbox{\$"+if(lmrm==1){
+
+     lp:=lp+if(member(Z[r],IMIN)!=0){"limGauche(btex $"+if(lmrm==1){
              "-\\infty"}else{
                 latex(simplifier(limite(f(x),x=Z[r],-1)))}
          +"$ etex,"+if(krm==1){
@@ -561,9 +600,9 @@ if(nz>2){
          +"debutNonDef;"
        }//fsi Zr=Imin
       else{
-        if (Z[r]==Imax) {"finNonDef;limDroite(btex $"+if(lmrp==1){
+        if (member(Z[r],IMAX)!=0) {"finNonDef;limDroite(btex $"+if(lmrp==1){
              "-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],1)))}
-         +"$ etex,"+if(krp==1){
+         +"$ etex,"+if(krp==1){
              "1);"}else{"0);"}          
        }
         else {
@@ -587,7 +626,7 @@ if(nz>2){
                }//felse(member Zr F)
                } //felse(Zr=Imax)
               }//felse(Zr=Imin)
-             };//ffor 
+           };//ffor 
          }//fsi nz
 
 lnz:=limite(f(x),x=Z[nz-1],-1)==-infinity;
@@ -646,7 +685,7 @@ end";}else{intro+"beginTableau("+nmr+")"+
         l0+
 lsi+lsf+
 li+
-lf
+lf
 +"
 endTableau;
 end";}
@@ -689,7 +728,7 @@ if(nz>2){"beginTableau("+nmr+")"+
 lsi+lsp+lsf+
 li+
 lp+
-lf
+lf
 +"
 endTableau;
 
@@ -714,6 +753,7 @@ return(MetaL);
  }
 :;
 
+
 \end{VerbatimOut}
 
 
@@ -724,7 +764,7 @@ return(MetaL);
 
 
 
-\begin{VerbatimOut}[commandchars=?§£]{XcasTVapp.cxx}
+\begin{VerbatimOut}[commandchars=?WW]{XcasTVapp.cxx}
 
 
 
@@ -732,7 +772,7 @@ return(MetaL);
 
 
 
-TVapp(L,F,nom,nomv,f,ftt,nmr):={
+TVapp(L,F,nom,nomv,f,ftt,nmr):={
 
 
 nl:=size(L);
@@ -771,7 +811,7 @@ for(j:=1;j<nz;j++){
 Z:=[S]; 
 
 
-nz:=size(Z);
+nz:=size(Z);
 l0:=" newLigneVariables(btex $"+nomv+"$ etex);";lp:=" "; lf:=" ";lsp:=" ";
 pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
 ";fpour; 
@@ -835,7 +875,7 @@ MetaL:=if(ftt==2){if(nz>2){intro+"beginTableau("+nmr+")"+
 endTableau;
 end
 ";}else{
-intro+"beginTableau("+nmr+")"+
+intro+"beginTableau("+nmr+")"+
         l0+
 lsi+lsf+"
 endTableau;
@@ -877,7 +917,7 @@ end";}
 
 MetaLfc:=if(ftt==2){if(nz>2){"
 
-beginTableau("+nmr+")"+
+beginTableau("+nmr+")"+
         l0+lsi+lsp+lsf+"
 endTableau;
 
@@ -920,7 +960,7 @@ lsi+lsf+
 li+
 lf
 +"
-endTableau;
+endTableau;
 
 ";}
 }}
@@ -957,7 +997,7 @@ return(MetaL);
 
 
 
-\begin{VerbatimOut}[commandchars=?§£]{XcasTVI.cxx}
+\begin{VerbatimOut}[commandchars=?WW]{XcasTVI.cxx}
 
 
 TVI(L,F,nom,nomv,f,ftt,ao,nmr):={
@@ -1001,7 +1041,7 @@ l0:=l0+"val(btex $"+latex(Z[nz-1])+"$ etex)
 if(NL>nz){for(k:=0;k<NL-1;k++){TestS:=(sign(evalf(LL[k]-ao))==sign(evalf(LL[k+1]-ao))) or (sign(evalf(LL[k]-ao))==0.0)or (sign(evalf(LL[k+1]-ao))==0.0);
 TestL:=(abs(LL[k])==abs(LL[k+1]));
 if(TestS==0){ if( TestL==1 ){l0:=l0}else{
-A:=A,aa;l0:=l0+"val(btex $"+latex(Z[kk])+"$ etex);"+"val(btex $\\alpha_"+aa+"$ etex);";aa:=aa+1;kk:=kk+1}}else{l0:=l0+"val(btex $"+latex(Z[kk])+"$ etex);";kk:=kk+1}}
+A:=A,aa;l0:=l0+"val(btex $"+latex(Z[kk])+"$ etex);"+"val(btex $\\alpha_"+aa+"$ etex);";aa:=aa+1;kk:=kk+1}}else{l0:=l0+"val(btex $"+latex(Z[kk])+"$ etex);";kk:=kk+1}}
 l0:=l0+"val(btex $"+latex(Z[nz-1])+"$ etex);
 "};
 
@@ -1028,7 +1068,7 @@ if(nz>2){rr:=1; if(nz==NL){for(r:=1; r<=NL-2;r++){ TestS:=(sign(evalf(LL[r
                                  lsp:=lsp+if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
                                   if(ksp==1){"plus;"}else{"moins;"}+if(TestS==0){"valBarre(btex $  $ etex);"}else{" "}+if(TestS==0){if(ksp==1){"plus;"}else{"moins;"}}else{" "};
                                              }}
-else{for(r:=1; r<=NL-2;r++){kspp:=evalf(fp(Z[rr]+0.01))>0;TestS:=(sign(evalf(LL[r]-ao))==sign(evalf(LL[r+1]-ao))) or (sign(evalf(LL[r]-ao))==0.0)or (sign(evalf(LL[r+1]-ao))==0.0);
+else{for(r:=1; r<=NL-2;r++){kspp:=evalf(fp(Z[rr]+0.01))>0;TestS:=(sign(evalf(LL[r]-ao))==sign(evalf(LL[r+1]-ao))) or (sign(evalf(LL[r]-ao))==0.0)or (sign(evalf(LL[r+1]-ao))==0.0);
                                           TestL:=(abs(LL[r])==abs(LL[r+1]));
                       if(TestS==0){if( TestL==1 ){lsp:=lsp}else{lsp:=lsp+if(member(Z[rr],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
                                   if(kspp==1){"plus;"}else{"moins;"}+"valBarre(btex $  $ etex);"+if(kspp==1){"plus;"}else{"moins;"};rr:=rr+1;}
@@ -1056,7 +1096,7 @@ newLigneVariations(btex $\\hbox{\$"+if(lmrm==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],-1)))}+"$ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
+                                    "limGauche(btex $"+if(lmrm==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],-1)))}+"$ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
                                           else{"valPos(btex          $"+latex(simplifier(f(Z[r])))+"$
                                             etex,"+if(sign(evalf(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);"}}}+if(TestS==0){"valPos(btex
                                             $ "+ao+" $ etex,0.5);"
@@ -1079,7 +1119,7 @@ else{lp:=lp+if(member(Z[rr],F)){
                                           else{"valPos(btex          $"+latex(simplifier(f(Z[rr])))+"$
                                             etex,"+if(sign(evalf(fp(Z[rr]-0.01)))==sign(fp(Z[rr]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);
                                                             "}}};rr:=rr+1;
-}//else testS==0
+}//else testS==0
 }//for nz<NL
 }// else nz<NL
 //if nz=NL
@@ -1120,7 +1160,7 @@ end";
 if(ftt==0){if(nz>2){intro+"beginTableau("+nmr+")"+
         l0+
 li+
-lp+
+lp+
 lf
 +"
 endTableau;
@@ -1205,7 +1245,7 @@ fprint(sortie,Unquoted,MetaLfc);
 fclose(sortie);
 
 
-return(MetaL);
+return(MetaL);
  }:;
 
 
@@ -1226,7 +1266,7 @@ return(MetaL);
 
 
 
-\begin{VerbatimOut}[commandchars=?§£]{XcasTVIapp.cxx}
+\begin{VerbatimOut}[commandchars=?WW]{XcasTVIapp.cxx}
 
 
 TVIapp(L,F,nom,nomv,f,ftt,ao,nmr):={
@@ -1245,7 +1285,7 @@ si size(S)>0 alors   pour j de 0 jusque size(S)-1 faire
                              kk:=(re(S[j])==S[j]);kok:=(evalf(S[j])>=L[0]) and (evalf(S[j])<=L[1]);
                           if(kk==1){if(kok==1){z:=append(z,simplifier(S[j]))}};
                           fpour;
-fsi;
+fsi;
 
 
 S:=NULL;
@@ -1365,7 +1405,7 @@ if(TestS==0){if( TestL==1 ){lp:=lp}else{  lp:=lp+if(member(Z[rr],F)) {
 }// else testL==1
 }//testS==0
 else{lp:=lp+if(member(Z[rr],F)){
-                                    "limGauche(btex $"+if(lmrm==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[rr],-1)))}+"$ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[rr],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
+                                    "limGauche(btex $"+if(lmrm==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[rr],-1)))}+"$ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[rr],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
                                           else{"valPos(btex          $"+latex(simplifier(f(Z[rr])))+"$
                                             etex,"+if(sign(evalf(fp(Z[rr]-0.01)))==sign(fp(Z[rr]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);
                                                             "}}};rr:=rr+1;
@@ -1402,7 +1442,7 @@ endTableau;
 end";}else{
 intro+"beginTableau("+nmr+")"+
         l0+
-lsi+lsf+"
+lsi+lsf+"
 endTableau;
 end";
 }
@@ -1444,7 +1484,7 @@ MetaLfc:= if(ftt==2){if(nz>2){"beginTableau("+nmr+")"+
         l0+lsi+lsp+lsf+"
 endTableau;
 
-";}else{
+";}else{
 "beginTableau("+nmr+")"+
         l0+
 lsi+lsf+"
@@ -1483,7 +1523,7 @@ lsi+lsf+
 li+
 lf
 +"
-endTableau;
+endTableau;
 
 ";}
 }};
@@ -1521,7 +1561,7 @@ return(MetaL);
 
 
 
-\begin{VerbatimOut}[commandchars=?§£]{XcasTabSignL.cxx}
+\begin{VerbatimOut}[commandchars=?WW]{XcasTabSignL.cxx}
 
 
 TS(L,D,nmr):={
@@ -1570,7 +1610,7 @@ MetaL:=" input tableauVariation;
  etex;
 
 beginTableau("+nmr+")
-newLigneVariables(btex $\\Mathbold{x}$ etex);
+newLigneVariables(btex $\\Mathbold{x}$ etex);
    "+l0+li+
     "
  newLigneSignes(btex $\\hbox{\\bf Signe du }\\atop{{\\bf produit}}$ etex);"+
@@ -1649,7 +1689,7 @@ newLigneVariables(btex $\\Mathbold{x}$ etex
                      li
                      +
     "
- newLigneSignes(btex $\\hbox{\\bf Signe du }\\atop{{\\bf produit}}$ etex);"+
+ newLigneSignes(btex $\\hbox{\\bf Signe du }\\atop{{\\bf produit}}$ etex);"+
                if(mini!=-infinity and product(L[s](mini),s,0,n-1)==0){"
                                 valBarre(btex 0 etex);"}else{"
                               "}+  
@@ -1685,7 +1725,7 @@ endTableau;
 sortie:=fopen("XCasmpfc.mp");
 fprint(sortie,Unquoted,MetaLfc);
 fclose(sortie);
-return(MetaL);
+return(MetaL);
  }:;
 
 \end{VerbatimOut}
@@ -1699,8 +1739,8 @@ return(MetaL);
 
 
 
-\begin{VerbatimOut}[commandchars=?§£]{XcasTabSignQ.cxx}
-TSq(nomf,L,Fo,D,nmr):={
+\begin{VerbatimOut}[commandchars=?WW]{XcasTabSignQ.cxx}
+TSq(nomf,L,Fo,D,nmr):={
 L:=apply(f->unapply(f,x),L);
 Fo:=apply(f->unapply(f,x),Fo);
 L:=concat(L,Fo);
@@ -1717,7 +1757,7 @@ pour k de 0 jusque n-1 faire
                           if(S[j]>mini and S[j]<maxi){Z:=Z,simplifier(S[j]);}
                       fpour;
   fsi;
-fpour;
+fpour;
 
 
 pour k de 0 jusque m-1 faire 
@@ -1727,7 +1767,7 @@ pour k de 0 jusque m-1 faire
                           if(SF[j]>mini and SF[j]<maxi){F:=F,simplifier(SF[j]);}
                       fpour;
   fsi;
-fpour;
+fpour;
 
 
 
@@ -1754,13 +1794,13 @@ if(mini!=-infinity and L[p](mini)==0){"
                                 valBarre(btex 0 etex);"}else{"
                               "}+ 
 if(L[p]((mini+maxi)*0.5>0)){"plus;"}else{"moins;"}+if(maxi!=+infinity and L[p](maxi)==0){"
-                                valBarre(btex 0 etex);"}else{"
+                                valBarre(btex 0 etex);"}else{"
                               "}
 
 }
            lf:=if(product(L[s]((mini+maxi)*.5),s,0,n-1)>0){"plus;"}else{"moins;"};
 
-MetaL:=" input tableauVariation;
+MetaL:=" input tableauVariation;
            verbatimtex
 %&latex
  \\documentclass{article}
@@ -1776,31 +1816,31 @@ newLigneVariables(btex $\\Mathbold{x}$ etex
     "
  newLigneSignes(btex $\\hbox{\\bf Signe }\\atop{{\\bf  de "+nomf+"(x)}}$ etex);"+
               if(member(mini,FF)==0){if(mini!=-infinity and product(L[s](mini),s,0,n-1)==0){"
-                                valBarre(btex 0 etex);"}else{"
+                                valBarre(btex 0 etex);"}else{"
                               "}}else{"nonDefBarre;"}+  lf+
                                if(member(maxi,FF)==0){if(maxi!=+infinity and product(L[s](maxi),s,0,n-1)==0){"
                                 valBarre(btex 0 etex);"}else{"
                               "}}else{"nonDefBarre;"}+"
 endTableau;
-end"
+end"
 ;
 
 
 
 
-MetaLfc:=" 
+MetaLfc:=" 
 beginTableau("+nmr+")
 newLigneVariables(btex $\\Mathbold{x}$ etex);
    "+l0+li+
     "
- newLigneSignes(btex $\\hbox{\\bf Signe }\\atop{{\\bf  de "+nomf+"(x)}}$ etex);"+
+ newLigneSignes(btex $\\hbox{\\bf Signe }\\atop{{\\bf  de "+nomf+"(x)}}$ etex);"+
               if(member(mini,FF)==0){if(mini!=-infinity and product(L[s](mini),s,0,n-1)==0){"
                                 valBarre(btex 0 etex);"}else{"
                               "}}else{"nonDefBarre;"}+  lf+
-                               if(member(maxi,FF)==0){if(maxi!=+infinity and product(L[s](maxi),s,0,n-1)==0){"
+                               if(member(maxi,FF)==0){if(maxi!=+infinity and product(L[s](maxi),s,0,n-1)==0){"
                                 valBarre(btex 0 etex);"}else{"
                               "}}else{"nonDefBarre;"}+"
-endTableau;
+endTableau;
 
 "
 ;
@@ -1808,18 +1848,18 @@ endTableau;
 
 
 
-}else{
+}else{
 
 
 l0:="val(btex $"+latex(D[0])+"$ etex);";li:=" ";lr:=" "; 
 pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
 ";fpour; 
-l0:=l0+"val(btex $"+latex(D[1])+"$ etex);";
+l0:=l0+"val(btex $"+latex(D[1])+"$ etex);";
 
 
 for(p:=0;p<=n-1;p++){lp:="";                                     
      li:=li+"
-newLigneSignes(btex $\\hbox{\\bf Signe de }\\atop{\\displaystyle \\Mathbold{"+latex(L[p](x))+"}}$ etex);"+
+newLigneSignes(btex $\\hbox{\\bf Signe de }\\atop{\\displaystyle \\Mathbold{"+latex(L[p](x))+"}}$ etex);"+
            if(mini!=-infinity and L[p](mini)==0){"
                                 valBarre(btex 0 etex);"}else{"
                               "}+ 
@@ -1834,7 +1874,7 @@ newLigneSignes(btex $\\hbox{\else{" "}
                               
     };  
 
@@ -1842,10 +1882,10 @@ newLigneSignes(btex $\\hbox{\fpour
 
 MetaL:=" input tableauVariation;
-verbatimtex
+verbatimtex
 %&latex
  \\documentclass{article}
   \\?fonte
@@ -1862,21 +1902,21 @@ newLigneVariables(btex $\\Mathbold{x}$ etex
  newLigneSignes(btex $\\hbox{\\bf Signe de}\\atop{{\\bf "+nomf+"(x)}}$ etex);"+
                if(member(mini,FF)==0){if(mini!=-infinity and product(L[s](mini),s,0,n-1)==0){"
                                 valBarre(btex 0 etex);"}else{"
-                              "}}else{"nonDefBarre;"}+  
+                              "}}else{"nonDefBarre;"}+  
                          if(product(L[s](Z[0]-0.01),s,0,n-1)>0){"plus;"}else{"moins;"}+
                          if(member(Z[0],FF)==0){"valBarre(btex 0 etex);"}else{ "nonDefBarre;"}+
                          lr+
-                         if(product(L[s](Z[nz-1]+0.01),s,0,n-1)>0){"plus;"}else{"moins;"}+
+                         if(product(L[s](Z[nz-1]+0.01),s,0,n-1)>0){"plus;"}else{"moins;"}+
                                if(member(maxi,FF)==0){if(maxi!=+infinity and product(L[s](maxi),s,0,n-1)==0){"
                                 valBarre(btex 0 etex);"}else{" "}}else{"nonDefBarre;"}+"
 endTableau;
-end"
+end"
 ;
 
 
 
 
-MetaLfc:="
+MetaLfc:="
 beginTableau("+nmr+")
 newLigneVariables(btex $\\Mathbold{x}$ etex);
    "+l0+
@@ -1886,14 +1926,14 @@ newLigneVariables(btex $\\Mathbold{x}$ etex
  newLigneSignes(btex $\\hbox{\\bf Signe de}\\atop{{\\bf "+nomf+"(x)}}$ etex);"+
                if(member(mini,FF)==0){if(mini!=-infinity and product(L[s](mini),s,0,n-1)==0){"
                                 valBarre(btex 0 etex);"}else{"
-                              "}}else{"nonDefBarre;"}+  
+                              "}}else{"nonDefBarre;"}+  
                          if(product(L[s](Z[0]-0.01),s,0,n-1)>0){"plus;"}else{"moins;"}+
                          if(member(Z[0],FF)==0){"valBarre(btex 0 etex);"}else{ "nonDefBarre;"}+
                          lr+
-                         if(product(L[s](Z[nz-1]+0.01),s,0,n-1)>0){"plus;"}else{"moins;"}+
+                         if(product(L[s](Z[nz-1]+0.01),s,0,n-1)>0){"plus;"}else{"moins;"}+
                                if(member(maxi,FF)==0){if(maxi!=+infinity and product(L[s](maxi),s,0,n-1)==0){"
                                 valBarre(btex 0 etex);"}else{" "}}else{"nonDefBarre;"}+"
-endTableau;
+endTableau;
 
 "
 
@@ -1911,7 +1951,7 @@ fclose(sortie);
 
 
 
-return(MetaL);
+return(MetaL);
  }:;
 
 \end{VerbatimOut}
@@ -1926,11 +1966,11 @@ return(MetaL);
 
 
 
-\begin{VerbatimOut}[commandchars=?§£]{XcasTabSign.cxx}
+\begin{VerbatimOut}[commandchars=?WW]{XcasTabSign.cxx}
 TSa(a,b,c,d,nmr):={
 zA:=resoudre(a*x+b=0,x)[0];
 zB:=resoudre(c*x+d=0,x)[0];
-zmin:=min(zA,zB);
+zmin:=min(zA,zB);
 zmax:=max(zA,zB);
   Meta:= " input tableauVariation;
            verbatimtex
@@ -1988,7 +2028,7 @@ return(Meta);
 
 
 
-\begin{VerbatimOut}[commandchars=?§£]{XcasTSc.cxx}
+\begin{VerbatimOut}[commandchars=?WW]{XcasTSc.cxx}
 TSc(g,D,nmr):={
 f:=unapply(g,x);
 Z:=NULL;
@@ -2017,39 +2057,39 @@ if(nz>2){pour u de 1 jusque nz-2 faire
 fpour;}
 
 
-nz:=size(Z);
+nz:=size(Z);
 l0:=" ";li:=" ";lr:=" "; 
 if(nz==0){l0:="val(btex $"+latex(D[0])+"$ etex);val(btex $"+latex(D[1])+"$ etex);";
 li:=if(mini!=-infinity and f(mini)==0){"
-                                valBarre(btex 0 etex);"}else{"
+                                valBarre(btex 0 etex);"}else{"
                               "}+ 
 if(f((mini+maxi)*0.5>0)){"plus;"}else{"moins;"};
 lf:=if(maxi!=+infinity and f(maxi)==0){"
-                                valBarre(btex 0 etex);"}else{"
+                                valBarre(btex 0 etex);"}else{"
                               "};
 
 }else{
 l0:="val(btex $"+latex(D[0])+"$ etex);";li:=" ";
 pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
 ";
-fpour; 
-l0:=l0+"val(btex $"+latex(D[1])+"$ etex);";
+fpour; 
+l0:=l0+"val(btex $"+latex(D[1])+"$ etex);";
                                      
 li:= if(mini!=-infinity and f(mini)==0){"
                                 valBarre(btex 0 etex);"}else{"
                               "}+ 
-if(f(Z[0]-0.01)>0){"plus;"}else{"moins;"}+"valBarre(btex 0 etex);";                               
+if(f(Z[0]-0.01)>0){"plus;"}else{"moins;"}+"valBarre(btex 0 etex);";                               
 
 lm:=if(nz>=2){for(r:=0; r<=nz-2;r++){lm:=lm+if(f((Z[r]+Z[r+1])*.5)>0){"plus;"}else{"moins;"}+
                                       "valBarre(btex 0 etex);" 
                            }}else{" "}; 
 
-lf:=if(f(Z[nz-1]+1.0)>0){"plus;"}else{"moins;"}+if(maxi!=+infinity and f(maxi)==0){"valBarre(btex 0 etex);"}else{"
+lf:=if(f(Z[nz-1]+1.0)>0){"plus;"}else{"moins;"}+if(maxi!=+infinity and f(maxi)==0){"valBarre(btex 0 etex);"}else{"
                               "};
 }};  
 
 
-MetaL:=" input tableauVariation;
+MetaL:=" input tableauVariation;
            verbatimtex
 %&latex
  \\documentclass{article}
@@ -2061,23 +2101,23 @@ MetaL:=" input tableauVariation;
 beginTableau("+nmr+")
 newLigneVariables(btex $\\Mathbold{x}$ etex);
    "+l0+"
-newLigneSignes(btex $\\hbox{\\bf Signe de }\\atop{\\displaystyle \\Mathbold{"+latex(f(x))+"}}$ etex);"+
+newLigneSignes(btex $\\hbox{\\bf Signe de }\\atop{\\displaystyle \\Mathbold{"+latex(f(x))+"}}$ etex);"+
                      li+lm+lf
                      +"
 endTableau;
-end"
+end"
 ;
 
 
 MetaLfc:="
 
-beginTableau("+nmr+")
-newLigneVariables(btex $\\Mathbold{x}$ etex);
+beginTableau("+nmr+")
+newLigneVariables(btex $\\Mathbold{x}$ etex);
    "+l0+"
 newLigneSignes(btex $\\hbox{\\bf Signe de }\\atop{\\displaystyle \\Mathbold{"+latex(f(x))+"}}$ etex);"+
                      li+lm+lf
                      +"
-endTableau;
+endTableau;
 
 "
 ;
@@ -2104,7 +2144,7 @@ return(MetaL);
 
 %%
 %%
-%% traitement des fichiers produits par giac/xcas
+%% traitement des fichiers produits par giac/xcas
 %%
 %%
 
@@ -2118,7 +2158,7 @@ return(MetaL);
                                    % exporter le source mp
                                    % puis lancer metapost pour créer
                                    % l'image du tableau
-         \immediate\write18{\cat XCasmpfc.mp >> \Tableaux.Tab.mp}
+         \immediate\write18{\cat XCasmpfc.mp >> \Tableaux.Tab.mp}
          \immediate\write18{mpost -interaction=batchmode -jobname=\Tableaux.Tab  XCasmp#1}}%
          {% sinon, si le tableau est absent, alerte.
          \IfFileExists{\Tableaux.Tab.\theTVn}{}{% 
@@ -2146,7 +2186,7 @@ return(MetaL);
 \immediate\write18{\cat TSav-\theTVn.mp >> \Tableaux.Tab.mp}}
 % Si  non,  lancement des opérations de fabrication 
 {\executGiacmp{XCas#1.giac}% 
-\immediate\write18{\editeur XCasmpfc.mp}
+\immediate\write18{\editeur XCasmpfc.mp}
 
   % Modification avec l'éditeur choisi
 
@@ -2167,7 +2207,7 @@ return(MetaL);
   \includegraphics{\Tableaux.Tab.\theTVn}
 \end{center}
 
-\setcounter{TVn}{\theTVnbis}    % Restauration du compteur TVn
+\setcounter{TVn}{\theTVnbis}    % Restauration du compteur TVn
 }
 
 
@@ -2196,15 +2236,15 @@ vect.xcas.user := read("XCas.user");
 vxo := vect.xcas.user;
 dim.vxo := dim(vxo);
 nbr.line.vxo := dim.vxo;
-Resultat:=cat(" "); 
+Resultat:=cat(" "); 
 rslt := vxo[0]; RslT:=cat(rslt);
 Resultat:=cat(Resultat,RslT);
 fprint(Sortie,Unquoted,Resultat);
 fclose(Sortie);
 \end{VerbatimOut}
 
-\newenvironment{TSa}
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCas.user}}
+\newenvironment{TSa}
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\WW]{XCas.user}}
 {\end{VerbatimOut}
           \dresse{}
 }
@@ -2217,11 +2257,11 @@ fclose(Sortie);
 
 
 
-\begin{VerbatimOut}{XCasQ.giac}
+\begin{VerbatimOut}{XCasQ.giac}
 maple_mode(0);
-read("XcasTabSignQ.cxx");
-Sortie:=fopen("XCasmpQ.mp");
-vect.xcas.user := read("XCasQ.user");
+read("XcasTabSignQ.cxx");
+Sortie:=fopen("XCasmpQ.mp");
+vect.xcas.user := read("XCasQ.user");
 vxo := vect.xcas.user;
 dim.vxo := dim(vxo);
 nbr.line.vxo := dim.vxo;
@@ -2232,16 +2272,16 @@ fprint(Sortie,Unquoted,Resultat);
 fclose(Sortie);
 \end{VerbatimOut}
 
-\newenvironment{TSq}%
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasQ.user}}
+\newenvironment{TSq}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\WW]{XCasQ.user}}
 {\end{VerbatimOut}\dresse{Q}}
 
 
 
-\newenvironment{TSq*}[1]%
+\newenvironment{TSq*}[1]%
 {\setcounter{TVnbis}{\theTVn}
 \setcounter{TVn}{#1}
-\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasQ.user}}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\WW]{XCasQ.user}}
 {\end{VerbatimOut}\dressetoile{Q}}
 
 
@@ -2261,14 +2301,14 @@ fclose(Sortie);
 \end{VerbatimOut}
 
 \newenvironment{TS}%
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasL.user}}
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\WW]{XCasL.user}}
 {\end{VerbatimOut}\dresse{L}}
 
 
 \newenvironment{TS*}[1]
 {\setcounter{TVnbis}{\theTVn}
 \setcounter{TVn}{#1}
-\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasL.user}}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\WW]{XCasL.user}}
 {\end{VerbatimOut}\dressetoile{L}}
 
 
@@ -2282,7 +2322,7 @@ dim.vxo := dim(vxo);
 nbr.line.vxo := dim.vxo;
 Resultat:=cat(" "); 
 rslt := vxo[0]; RslT:=cat(rslt);
-Resultat:=cat(Resultat,RslT);
+Resultat:=cat(Resultat,RslT);
 fprint(Sortie,Unquoted,Resultat);
 fclose(Sortie);
 \end{VerbatimOut}
@@ -2293,12 +2333,12 @@ fclose(Sortie);
 \newenvironment{TSc*}[1]%
 {\setcounter{TVnbis}{\theTVn}
 \setcounter{TVn}{#1}
-\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTSc.user}}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\WW]{XCasTSc.user}}
 {\end{VerbatimOut}\dressetoile{TSc}}
 
 
 \newenvironment{TSc}%
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTSc.user}}
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\WW]{XCasTSc.user}}
 {\end{VerbatimOut}\dresse{TSc}}
 
 
@@ -2318,14 +2358,14 @@ fclose(Sortie);
 \end{VerbatimOut}
 
 \newenvironment{TV}%
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTV.user}}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\WW]{XCasTV.user}}%
 {\end{VerbatimOut}
 \dresse{TV}}
 
 \newenvironment{TV*}[1]{%
 \setcounter{TVnbis}{\theTVn}
-\setcounter{TVn}{#1}
-\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTV.user}}%
+\setcounter{TVn}{#1}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\WW]{XCasTV.user}}%
 {\end{VerbatimOut}\dressetoile{TV}}
 
 
@@ -2354,15 +2394,15 @@ fclose(Sortie);
 \end{VerbatimOut}
 
 \newenvironment{TVZ}%
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVZ.user}}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\WW]{XCasTVZ.user}}%
 {\end{VerbatimOut}
 \dresse{TVZ}}
 
 \newenvironment{TVZ*}[1]{%
 \setcounter{TVnbis}{\theTVn}
 \setcounter{TVn}{#1}
-\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVZ.user}}%
-{\end{VerbatimOut}\dressetoile{TVZ}}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\WW]{XCasTVZ.user}}%
+{\end{VerbatimOut}\dressetoile{TVZ}}
 
 
 
@@ -2374,13 +2414,13 @@ fclose(Sortie);
 
 
 \begin{VerbatimOut}{XCasTVapp.giac}
-maple_mode(0);
+maple_mode(0);
 read("XcasTVapp.cxx");
 Sortie:=fopen("XCasmpTVapp.mp");
 vect.xcas.user := read("XCasTVapp.user");
 vxo := vect.xcas.user;
 dim.vxo := dim(vxo);
-nbr.line.vxo := dim.vxo;
+nbr.line.vxo := dim.vxo;
 Resultat:=cat(" "); 
 rslt := vxo[0]; RslT:=cat(rslt);
 Resultat:=cat(Resultat,RslT);
@@ -2389,15 +2429,15 @@ fclose(Sortie);
 \end{VerbatimOut}
 
 \newenvironment{TVapp}%
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVapp.user}}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\WW]{XCasTVapp.user}}%
 {\end{VerbatimOut}
-\dresse{TVapp}}
+\dresse{TVapp}}
 
 \newenvironment{TVapp*}[1]{%
 \setcounter{TVnbis}{\theTVn}
 \setcounter{TVn}{#1}
-\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVapp.user}}%
-{\end{VerbatimOut}\dressetoile{TVapp}}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\WW]{XCasTVapp.user}}%
+{\end{VerbatimOut}\dressetoile{TVapp}}
 
 
 
@@ -2410,13 +2450,13 @@ fclose(Sortie);
 
 
 \begin{VerbatimOut}{XCasTVI.giac}
-maple_mode(0);
+maple_mode(0);
 read("XcasTVI.cxx");
 Sortie:=fopen("XCasmpTVI.mp");
 vect.xcas.user := read("XCasTVI.user");
 vxo := vect.xcas.user;
 dim.vxo := dim(vxo);
-nbr.line.vxo := dim.vxo;
+nbr.line.vxo := dim.vxo;
 Resultat:=cat(" "); 
 rslt := vxo[0]; RslT:=cat(rslt);
 Resultat:=cat(Resultat,RslT);
@@ -2425,15 +2465,15 @@ fclose(Sortie);
 \end{VerbatimOut}
 
 \newenvironment{TVI}%
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVI.user}}%
-{\end{VerbatimOut}\dresse{TVI}}
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\WW]{XCasTVI.user}}%
+{\end{VerbatimOut}\dresse{TVI}}
 
 
 \newenvironment{TVI*}[1]%
 {\setcounter{TVnbis}{\theTVn}
 \setcounter{TVn}{#1}
-\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVI.user}}%
-{\end{VerbatimOut}\dressetoile{TVI}}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\WW]{XCasTVI.user}}%
+{\end{VerbatimOut}\dressetoile{TVI}}
 
 
 
@@ -2446,24 +2486,24 @@ read("XcasTVIapp.cxx");
 Sortie:=fopen("XCasmpTVIapp.mp");
 vect.xcas.user := read("XCasTVIapp.user");
 vxo := vect.xcas.user;
-dim.vxo := dim(vxo);
+dim.vxo := dim(vxo);
 nbr.line.vxo := dim.vxo;
 Resultat:=cat(" "); 
-rslt := vxo[0]; RslT:=cat(rslt);
+rslt := vxo[0]; RslT:=cat(rslt);
 Resultat:=cat(Resultat,RslT);
 fprint(Sortie,Unquoted,Resultat);
 fclose(Sortie);
 \end{VerbatimOut}
 
 \newenvironment{TVIapp}%
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVIapp.user}}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\WW]{XCasTVIapp.user}}%
 {\end{VerbatimOut}\dresse{TVIapp}}
 
 
 \newenvironment{TVIapp*}[1]%
 {\setcounter{TVnbis}{\theTVn}
 \setcounter{TVn}{#1}
-\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVIapp.user}}%
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\WW]{XCasTVIapp.user}}%
 {\end{VerbatimOut}\dressetoile{TVIapp}}
 
 
diff --git a/Master/texmf-dist/doc/latex/tablor/tablor.pdf b/Master/texmf-dist/doc/latex/tablor/tablor.pdf
index 9da5fd2ad8f..58e9301be17 100644
Binary files a/Master/texmf-dist/doc/latex/tablor/tablor.pdf and b/Master/texmf-dist/doc/latex/tablor/tablor.pdf differ
diff --git a/Master/texmf-dist/doc/latex/tablor/tablor.tex b/Master/texmf-dist/doc/latex/tablor/tablor.tex
index 7415079fefb..5c8db7e2e25 100644
--- a/Master/texmf-dist/doc/latex/tablor/tablor.tex
+++ b/Master/texmf-dist/doc/latex/tablor/tablor.tex
@@ -1,9 +1,15 @@
 \documentclass[12pt]{article}
 \usepackage[height=250mm,width=183mm]{geometry}
+\usepackage[T1]{fontenc}
+\usepackage[french]{babel}
+
+\usepackage[xcas]{tablor}
+\usepackage{listings,keystroke}
+\usepackage{graphicx,bclogo}
+
+% bclogo est téléchargeable ici : http://melusine.eu.org/syracuse/wiki/doku.php/mc/bclogo
+
 
-\usepackage{preambule}
-\usepackage{lmodern}
-\usepackage{tablor}
 \usepackage{tocloft}
 %ajoute de l'espace entre le
 %numero de chapitre (chap) et le titre
@@ -11,28 +17,78 @@
 
 \addtolength{\cftsecnumwidth}{2em}
 
-\usepackage[dvips,colorlinks=true,linkcolor=orange]{hyperref}
-
 
 
+\usepackage[dvips,colorlinks=true,linkcolor=0.2white]{hyperref}
+\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}
 \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}
+    backgroundcolor=\color{0.8white},breaklines=true,morecomment=[l]\%}
 }
 
-\renewcommand{\xcas}{\lstset{numbers=none,language=XCAS,xleftmargin=10pt,%
+\newcommand{\xcas}{\lstset{numbers=none,language=mupad,xleftmargin=10pt,%
 keywordstyle =\color{0.2white}\usefont{OT1}{cmtt}{b}{n},basicstyle=\ttfamily,commentstyle=\normalfont\scriptsize\slshape,
     backgroundcolor=\color{0.8white},breaklines=true}
 }
 
 
+\newenvironment{DANGER}[1]{%
+\begin{bclogo}{\attention}{#1}{0.9white}{0.1}}
+{\end{bclogo}}
+
+\newenvironment{Idee}[1]{%
+\begin{bclogo}{\coeur}{#1}{0.9white}{0.1}}
+{\end{bclogo}}
+
+
+
+% sections
+\usepackage{sectsty}
+
+
+\sectionfont{\LARGE \sffamily\color{0.2white}}
+\subsectionfont{\sffamily\color{0.4white}}
+\renewcommand\thesection{\Roman{section} -}
+\renewcommand\thesubsection{\alph{subsection}. }
+\subsubsectionfont{\sffamily\color{0.6white}}
+\renewcommand\thesubsubsection{\roman{subsection}. }
+
+
+
+
+
+%%%% Macros pour un Vrai-Faux
+
+\usepackage{pifont}
+
+\newcommand{\Q}{\mbox{\ding{114}\hspace{-.7em}\raisebox{.2ex}[1ex]{\ding{51}}}}
+
+\newcommand{\VF}{%
+	\hfill\makebox[1cm][s]{\bf V\hfill F}
+	}
+	
+\newcommand{\Rep}[1][]{%
+	\ifthenelse{\equal{#1}{v}}{%
+		\hfill\makebox[1cm][s]{\Q\hfill \ding{114}}}{%
+		\ifthenelse{\equal{#1}{f}}{%
+			\hfill\makebox[1cm][s]{\ding{114} \hfill\Q}}{%
+			\hfill\makebox[1cm][s]{\ding{114} \hfill\ding{114}}}}}
+
+
+
+
 \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{12 mai 2008 - Version 2.03}
+\date{14 mai 2008 - Version 2.05}
 
 \begin{document}
 
@@ -49,9 +105,9 @@ minimum de commandes.
 
 \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
+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}.
 
 
@@ -60,14 +116,17 @@ d'un script \Prog{MetaPOST} qui est compil
 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
+\begin{itemize}
 \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}.
+  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
-  \Prog{giac}.
+  \texttt{giac}.
 Les lignes importantes sont~:
 
+
+\xcas
+
 \begin{lstlisting}
 read("XcasTV.cxx"); // giac charge le programme 
 Sortie:=fopen("XCasmpTV.mp"); // la sortie portera l'extension metapost
@@ -79,30 +138,30 @@ vect.xcas.user := read("XCasTV.user"); // giac lit les param
   trouve par exemple entre \verb+\begin{TVI}+ et \verb+\end{TVI}+.
  
 
-\ez
+\end{itemize}
 
 \section{De quoi a-t-on besoin~?}
 
-\bez
+\begin{itemize}
 
-\item Il faut avoir installé \Prog{XCAS}, logiciel multi-plateforme de calcul et de programmation~:
+\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 \Prog{MetaPOST} 
+\item il faut avoir le fichier de macros \texttt{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
+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 \Prog{emacs}, on rajoute en 
+ 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};
@@ -114,9 +173,9 @@ pour installer une nouvelle extension \LaTeX{}.
     \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
+  qui ont \texttt{MiKTeX} sous \texttt{windows}, il suffit d'aller le chercher dans les dépôts. 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}
@@ -124,32 +183,31 @@ pour installer une nouvelle extension \LaTeX{}.
 
 
 
-\ez
+\end{itemize}
 
 
-\begin{figure}
-              \begin{DANGER}
-         
-Pour         les         utilisateurs         de        TeXnicCenter,         observez         cette
+
+              \begin{Idee}{shell-escape}
+       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"}.\\
+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~: 
 
-\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.\\
+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}
-
+\end{Idee}
+               
+               
 
 \begin{figure}
-              \begin{DANGER}
+              \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}
@@ -157,7 +215,7 @@ Le s
 
 
 \begin{figure}
-              \begin{DANGER}
+              \begin{DANGER}{Commandes créées}
  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
@@ -168,15 +226,23 @@ Le s
 
 
 
+% \begin{figure}
+%               %\begin{DANGER}
+% Le fichier \texttt{tablor.sty} est codé en \texttt{latin-1}. Les utilisateurs de
+% \texttt{utf-8} devront donc utiliser \texttt{tablorutf8.sty} à la place. 
+%                %\end{DANGER}
+%                \end{figure}
+
+
 \begin{figure}
-              \begin{DANGER}
-Le fichier \texttt{tablor.sty} est codé en \texttt{latin-1}. Les utilisateurs de
-\texttt{utf-8} devront donc utiliser \texttt{tablorutf8.sty} à la place. 
+              \begin{DANGER}{La lettre W}
+              L'option \texttt{commandchars}  de \texttt{fancyvrb} utilise  la lettre W  qui devient
+              ainsi  «~protégée~» et par  suite inutilisable  pour nommer  une fonction.  Tout autre
+              caractère hors alphabet posait soit des problèmes d'encodage, soit était utilisé par XCAS...
                \end{DANGER}
                \end{figure}
 
 
-
 \section{Comment l'utiliser~?}
 
 \subsection{Préambule}
@@ -212,10 +278,10 @@ Le pr
 \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};
+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é et  qu'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};
   
 
 
@@ -225,7 +291,8 @@ On  met \texttt{xcas} si  l'on a install
 
 {\small
 
-\begin{Verbatim}
+
+\begin{lstlisting}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %  Fichier de configuration de tablor.sty  %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -235,7 +302,7 @@ On  met \texttt{xcas} si  l'on a install
 
 % Déclaration du système d'exploitation :
 % =====================================
-
+%
 % Si vous utilisez Microsoft-Windows, dé-commentez la ligne suivante :
 
 % \setboolean{windows}{true}
@@ -243,35 +310,35 @@ On  met \texttt{xcas} si  l'on a install
 % Déclaration de l'éditeur utilisé
 % ================================
 % 
-% Remplacez "texmaker" par la commande qui lance votre éditeur favori. 
+% Remplacez "kile" par la commande qui lance votre éditeur favori. 
 % Laissez une espace avant de fermer l'accolade.
 
-\newcommand{\editeur}{texmaker }
+\newcommand{\editeur}{kile }
 
 
 % Déclaration des fontes utilisées
 % ================================
 %
-% Remplacez "[upright]{fourier}" par la fonte qui vous convient pour les maths
-% (lmodern, mathpazo, etc.)
+% Remplacez "lmodern" par la fonte qui vous convient pour les maths
+% (fourier, mathpazo, etc.)
 
 
-\newcommand{\fonte}{usepackage[upright]{fourier}}
+\newcommand{\fonte}{usepackage{lmodern}}
 
 
-\end{Verbatim}
+\end{lstlisting}
 }
 
-
+\xcas
 
 Vous le placerez dans la même arborescence que \texttt{tablor.sty} et le modifierez si besoin est.
 
 \subsubsection*{Éditeur}
 
 L'éditeur  sera appelé  dans certains cas pour modifier
-    l'aspect des  tableaux dans les fichiers  sources \Prog{MetaPOST}. Il faudra  choisir un éditeur
+    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. Voir aussi le paragraphe~\vref{modif}.
+      textmate,texshop}, \texttt{kile}, etc. Voir aussi le paragraphe~\ref{modif}.
 
 \subsubsection*{Fontes}
 
@@ -283,7 +350,7 @@ d'autres, remplacez  
 \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
+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~:
@@ -298,11 +365,11 @@ si l'on veut avoir comme pr
 \initablor[Waouh]
   \end{lstlisting}
 
-si l'on veut que le fichier \Prog{MetaPOST} des tableaux s'appelle \verb+Waouh.Tab.mp+
+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 \Prog{MetaPOST} et clore le
+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}
@@ -356,14 +423,14 @@ L'environnement s'appelle \texttt{TV}. On utilise une commande au format \texttt
 TV([borne inf,borne sup],[valeurs interdites],"nom fonction","nom variable",expression en fonction de x,t,\tv)
 \end{lstlisting}
 
-\bez
+\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$, $\f$, etc.
+  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
@@ -373,14 +440,14 @@ TV([borne inf,borne sup],[valeurs interdites],"nom fonction","nom variable",expr
   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
+\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\pv7]$.
+\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~:
@@ -400,7 +467,7 @@ TV([-5,7],[],"f","x",x^2,0,\tv)
 
 
 
-\item Si on veut la même fonction sur $\bbr$ avec le signe de la dérivée~:
+\item Si on veut la même fonction sur \textbf{R} avec le signe de la dérivée~:
 
   \begin{lstlisting}
 \begin{TV}
@@ -412,7 +479,7 @@ TV([-infinity,+infinity],[],"f","x",x^2,1,\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~:
+\item Avec la même fonction sur \textbf{R} avec uniquement le signe de la dérivée~:
 
 
 
@@ -429,7 +496,7 @@ TV([-infinity,+infinity],[],"f","x",x^2,2,\tv)
 
 
 
-\item Voici ce que cela donne pour $g~:~t\mapsto \frac{t^2}{t^2-1}$ sur $[-10\pv +\infty[$~:
+\item Voici ce que cela donne pour $g~:~t\mapsto \frac{t^2}{t^2-1}$ sur $[-10; +\infty[$~:
 
   \begin{lstlisting}
 \begin{TV}
@@ -447,7 +514,7 @@ TV([-10,+infinity],[-1,1],"g","t",x^2/(x^2-1),1,\tv)
 \end{center}
 
 
-\item Il y aura  des problèmes pour des équations $f'(x)=0$ que  \Prog{XCAS} ne saurait pas résoudre
+\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 «~à
@@ -456,12 +523,12 @@ TV([-10,+infinity],[-1,1],"g","t",x^2/(x^2-1),1,\tv)
 
 
 
-\subsection{Tableau de variation avec «~zone interdite~»}
+\subsection{Tableau de variation avec «~zone(s) interdite(s)~»}
 
 
-Pour certaines fonctions, tout un intervalle est exclu de l'ensemble de définition.
+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\pv  -1]\cup[1\pv
+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...).
@@ -469,18 +536,42 @@ On utilise alors l'environnement \texttt{TVZ} (Z comme zone...).
 
 \begin{lstlisting}
 \begin{TVZ}
-  TVZ([-infinity,+infinity],[],[-1,1],"f","x",sqrt(x^2-1),1,\tv)
+  TVZ([-infinity,+infinity],[],[[-1,1]],"f","x",sqrt(x^2-1),1,\tv)
 \end{TVZ}
 \end{lstlisting}
 
 
 \begin{center}
-  \begin{TVZ*}{2003}
-  TVZ([-infinity,+infinity],[],[-1,1],"f","x",sqrt(x^2-1),1,\tv)
-\end{TVZ*}
+  \begin{TVZ}
+  TVZ([-infinity,+infinity],[],[[-1,1]],"f","x",sqrt(x^2-1),1,\tv)
+\end{TVZ}
 \end{center}
 
 
+\begin{figure}
+              \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,\tv)
+\end{TVZ}
+\end{lstlisting}
+
+
+
+\begin{center}
+  \begin{TVZ*}{3001}
+ TVZ([-infinity,+infinity],[-1,1,4,6],[[-1,1],[4,6]],"f","x",ln((x-5)^2-1)+ln(x^2-1),1,\tv)
+\end{TVZ*}
+\end{center}
 
 
 \subsection{Tableau des variations avec théorème des valeurs intermédiaires}
@@ -538,15 +629,15 @@ TVI([-10,+infinity],[-1,1],"f","x",x^2/(x^2-1),1,-1,\tv)
 
 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.
+\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.
 
 \paragraph*{Exemple}
 
 
-Soit $g$ la fonction $x\mapsto \ln(x)-x\E^{2-x} $.
+Soit $g$ la fonction $x\mapsto \ln(x)-x e^{2-x} $.
 
 On étudie d'abord la fonction $x\mapsto g'(x)$~:
 
@@ -557,9 +648,11 @@ On 
 \end{lstlisting}
 
 
-\begin{TVIapp}
- TVIapp([0,+infinity],[0],"g'","x",diff(ln(x)-x*exp(2-x),x),1,0,\tv)
- \end{TVIapp}
+% \begin{TVIapp}
+%  TVIapp([0,+infinity],[0],"g'","x",diff(ln(x)-x*exp(2-x),x),1,0,\tv)
+%  \end{TVIapp}
+
+\stepcounter{TVn}
 
 On en déduit le tableau suivant~:
 
@@ -582,7 +675,7 @@ TVapp([0,+infinity],[0],"g","x",ln(x)-x*exp(2-x),1,\tv)
 
 \subsubsection*{Cas du produit de deux facteurs affines}
 
-Pour étudier le signe de $(-2x+3)(-x+5)$ sur $\bbr$, on entre~:
+Pour étudier le signe de $(-2x+3)(-x+5)$ sur \textbf{R}, on entre~:
 
 \begin{lstlisting}
 \begin{TSa}
@@ -645,7 +738,7 @@ TSq("nom du quotient",[liste des facteurs du num
 \end{TSq}
 \end{lstlisting}
 
-Par exemple, pour étudier le signe de $\dfrac{(-2x+3)(-4x+5)}{(x^2-16)(x-2)}$ sur $\bbr$~:
+Par exemple, pour étudier le signe de $\frac{(-2x+3)(-4x+5)}{(x^2-16)(x-2)}$ sur \textbf{R}~:
 
 \begin{lstlisting}
 \begin{TSq}
@@ -704,14 +797,14 @@ TSc((x-10)*(x+5),[-10,10],\tv)
 
 % 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.
+% fichiers eps créés par \texttt{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}
+%               %\begin{DANGER}
 %               Pour les utilisateurs de Microsoft Windows, il faudra remplacer \texttt{rm} par \texttt{DEL}
-%                \end{DANGER}
+%                %\end{DANGER}
 %                \end{figure}
 
 % \smallskip
@@ -730,9 +823,9 @@ TSc((x-10)*(x+5),[-10,10],\tv)
 
 
 % \begin{figure}
-%               \begin{DANGER}
+%               %\begin{DANGER}
 %               Pour les utilisateurs de Microsoft Windows, il faudra remplacer \texttt{cp} par \texttt{XCOPY}
-%                \end{DANGER}
+%                %\end{DANGER}
 %                \end{figure}
 
 
@@ -745,7 +838,7 @@ TSc((x-10)*(x+5),[-10,10],\tv)
 
 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
+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.
 
@@ -757,8 +850,8 @@ Si vous tapez~:
 \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
+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
@@ -804,21 +897,21 @@ vous changez le num
 
 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.
+pas installé \texttt{XCAS}. Voir le paragraphe~\ref{prefix} pour plus de détails.
 
 
 \section{Merci...}
 
-\bez
+\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 \Prog{XCAS}.
+    \textsc{Parisse}} pour \texttt{XCAS}.
 
-\ez
+\end{itemize}
 
 
 \section{Galerie}
@@ -858,6 +951,8 @@ TVI([0,+infinity],[0],"f","x",ln(x),1,2,\tv)
 TVI([0,+infinity],[0],"f","x",ln(x),1,2,\tv)
 \end{TVI}
 
+\stepcounter{TVn}
+
 \begin{lstlisting}
 \begin{TV}
 TV([1,+infinity],[],"f","x",-ln(x),1,\tv)
@@ -892,7 +987,7 @@ TV([0,2*Pi],[],"f","x",cos(x),1,\tv)
 
 
 \begin{figure}
-              \begin{DANGER}
+              \begin{DANGER}{Fonctions périodiques}
               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 ?...
@@ -967,7 +1062,7 @@ TVI([-infinity,+infinity],[],"f","x",1+(-2*x+1)*exp(2*x),1,0,\tv)
 TVI([-infinity,+infinity],[],"f","x",1+(-2*x+1)*exp(2*x),1,0,\tv)
 \end{TVI}
 
-
+\stepcounter{TVn}
 
 
 \begin{lstlisting}
@@ -1023,26 +1118,41 @@ TSc((x-10)*(x+10),[-10,10],\tv)
 
 \begin{lstlisting}
 \begin{TVZ}
-  TVZ([-infinity,+infinity],[],[-1,1],"f","x",(sqrt(x^2-1))*(x^2-4),1,\tv)
+  TVZ([-infinity,+infinity],[],[[-1,1]],"f","x",(sqrt(x^2-1))*(x^2-4),1,\tv)
 \end{TVZ}
 \end{lstlisting}
 
- \begin{TVZ*}{2004}
-  TVZ([-infinity,+infinity],[],[-1,1],"f","x",(sqrt(x^2-1))*(x^2-4),1,\tv)
-  \end{TVZ*}
+ \begin{TVZ}
+  TVZ([-infinity,+infinity],[],[[-1,1]],"f","x",(sqrt(x^2-1))*(x^2-4),1,\tv)
+  \end{TVZ}
    
   \begin{lstlisting}
 \begin{TVZ}
-  TVZ([-infinity,+infinity],[],[-1,1],"f","x",ln(x^2-1),1,\tv)
+  TVZ([-infinity,+infinity],[],[[-1,1]],"f","x",ln(x^2-1),1,\tv)
 \end{TVZ}
   \end{lstlisting}
 
- \begin{TVZ*}{2005}
-  TVZ([-infinity,+infinity],[],[-1,1],"f","x",ln(x^2-1),1,\tv)
-  \end{TVZ*}
+ \begin{TVZ}
+  TVZ([-infinity,+infinity],[],[[-1,1]],"f","x",ln(x^2-1),1,\tv)
+  \end{TVZ}
+
+
+
+\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,\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,\tv)
+\end{TVZ}
+\end{center}
+
+\lat
 
 \begin{lstlisting}
 \begin{enumerate}
@@ -1175,7 +1285,7 @@ TSc((x-10)*(x+10),[-10,10],\tv)
 
 
 \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)$
+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~:
 
@@ -1192,7 +1302,7 @@ On en d
  \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)$
+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~:
 
diff --git a/Master/texmf-dist/tex/latex/tablor/tablor.cfg b/Master/texmf-dist/tex/latex/tablor/tablor.cfg
index 07aa2e6badb..9565de82c81 100644
--- a/Master/texmf-dist/tex/latex/tablor/tablor.cfg
+++ b/Master/texmf-dist/tex/latex/tablor/tablor.cfg
@@ -18,18 +18,18 @@
 % Déclaration de l'éditeur utilisé
 % ================================
 % 
-% Remplacez "texmaker" par la commande qui lance votre éditeur favori. 
+% Remplacez "kile" par la commande qui lance votre éditeur favori. 
 % Laissez une espace avant de fermer l'accolade.
 
-\newcommand{\editeur}{texmaker }
+\newcommand{\editeur}{kile }
 
 
 % Déclaration des fontes utilisées
 % ================================
 %
-% Remplacez "[upright]{fourier}" par la fonte qui vous convient pour les maths
+% Remplacez "fourier" par la fonte qui vous convient pour les maths
 % (lmodern, mathpazo, etc.)
 
 
-\newcommand{\fonte}{usepackage[upright]{fourier}}
+\newcommand{\fonte}{usepackage{fourier}}
 
diff --git a/Master/texmf-dist/tex/latex/tablor/tablor.sty b/Master/texmf-dist/tex/latex/tablor/tablor.sty
index d42c65e07c4..a62c439f72c 100644
--- a/Master/texmf-dist/tex/latex/tablor/tablor.sty
+++ b/Master/texmf-dist/tex/latex/tablor/tablor.sty
@@ -1,12 +1,12 @@
 
 \NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesPackage{tablor}[24/03/2008 v2.03 la machine à créer des tableaux de signes et variations]
+\ProvidesPackage{tablor}[14/05/2008 v2.05 la machine à créer des tableaux de signes et variations]
 
 % \copyleft Connan le Barbare \copyright
 % avec l'efficace participation de Jean-Michel Boucart
 
 
-%% Crée 14 environnements :
+%% Crée 16 environnements :
 %% tableau de signes de 2 facteurs affines
 % \begin{TSa}
 % TSa(-2,3,-1,5,\tv);
@@ -27,6 +27,13 @@
 % TV([0,+infinity],[0],"h","x",ln(x)-(ln(x))^2,1,\tv)
 % \end{TV}
 %
+% tableau de variation avec zones interdites
+%
+% \begin{TVZ}
+%   TVZ([-infinity,+infinity],[],[[-1,1]],"f","x",sqrt(x^2-1),1,\tv)
+% \end{TVZ}
+%
+%
 % tableau avec valeurs intermédiares
 %\begin{TVI}
 %TVI([-1,+infinity],[-1],"f","x",x2/sqrt(x+1)-1,1,2,\tv)
@@ -99,12 +106,12 @@
 %% En-tête pour le fichier metapost contenant les codes 
 %% de tous les tableaux produits
 
- \begin{VerbatimOut}[commandchars=?§£]{tete.mp}
+ \begin{VerbatimOut}[commandchars=?WW]{tete.mp}
   input tableauVariation;
   verbatimtex
 %&latex
      \documentclass{article}
-      \\?fonte
+     \?fonte
      \usepackage{amsmath}
      \newcommand{\Mathbold}[1]{\mbox{\boldmath$#1$\unboldmath}}
      \begin{document}
@@ -200,7 +207,7 @@
 %%
 
 
-\begin{VerbatimOut}[commandchars=?§£]{XcasTV.cxx}
+\begin{VerbatimOut}[commandchars=?WW]{XcasTV.cxx}
 TV(L,F,nom,nomv,f,ftt,nmr):={
 nl:=size(L);
 f:=unapply(f,x);
@@ -391,28 +398,44 @@ return(MetaL);
 
 %%
 %%
-%% TV avec une zone interdite : on rajoute comme argument l'intervalle interdit
-%% par exemple, pour sqrt(x^2-1) : TVZ([-infinity,100],[],[-1,1],"f","x",sqrt(x^2-1),1,1)
+%% TV avec une zone interdite : on rajoute comme argument la liste des intervalles interdits
+%% par exemple, pour sqrt(x^2-1) : TVZ([-infinity,100],[],[[-1,1]],"f","x",sqrt(x^2-1),1,1)
 %%
 
-\begin{VerbatimOut}[commandchars=?§£]{XcasTVZ.cxx}
+\begin{VerbatimOut}[commandchars=?WW]{XcasTVZ.cxx}
+
 
 TVZ(L,F,FF,nom,nomv,f,ftt,nmr):={
 nl:=size(L);
-if(FF[0]>L[0]){Imin:=FF[0];LL:=L}else{Imin:=L[0];LL:=[L[1]]};
-if(FF[1]L[0]){Imin[k]:=FF[k][0];LL:=L}else{Imin[k]:=L[0];LL:=[L[1]]};
+if(FF[k][1]0 alors   pour j de 0 jusque size(S)-1 faire 
-                             kk:=(evalf(S[j])>=evalf(L[0])) and (evalf(S[j])<=evalf(L[nl-1]));
-                             kK:=(evalf(S[j])evalf(Imax));
+                         for(k:=0;k=evalf(L[0])) and (evalf(S[j])<=evalf(L[nl-1]));
+                             kK:=(evalf(S[j])evalf(Imax[k]));
                              Kk:=(kk) and kK;
                           if(Kk==1){Z:=append(Z,simplifier(S[j]))};
-                          fpour
+                          }
+                        fpour
   fsi;
 
 Z:=sort(Z); 
@@ -427,9 +450,12 @@ pour u de 1 jusque nz-2 faire
      fsi;
 fpour;
 nz:=size(Z);
-for(k:=1;kImin)and(Z[k]Imin[j])and(Z[k]2){ for(r:=1; r<=nz-2;r++){      ksp:=evalf(fp(Z[r]+0.01))>0;                     
-                                               lsp:=lsp+if(Z[r]==Imin){"debutNonDef;"}else{
-                                                       if(Z[r]==Imax){"finNonDef;"+
+
+
+
+if(nz>2){ for(r:=1; r<=nz-2;r++){ ksp:=evalf(fp(Z[r]+0.01))>0; 
+                                               lsp:=lsp+if(member(Z[r],IMIN)!=0){"debutNonDef;"}else{
+                                                       if(member(Z[r],IMAX)!=0){"finNonDef;"+
                                                 if(ksp==1){"plus;"}else{"moins;"}}else{
                                                  if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
                                                 if(ksp==1){"plus;"}else{"moins;"}
                                                   }}}}; 
 
-lsf:=if(Z[0]==Imax){"finNonDef;"}else{if(member(Z[nz-1],F)==0){""}else{"nomDefBarre;
+
+
+lsf:=if(member(Z[0],IMAX)!=0){"finNonDef;"}else{if(member(Z[nz-1],F)==0){""}else{"nomDefBarre;
 "}}
+
+
 lm0:=limite(f(x),x=Z[0],1)==-infinity;
      li:="
 newLigneVariations(btex $\\hbox{\\bf Variations de }\\atop{\\displaystyle \\Mathbold{"+nom+"}}$ etex);"+
@@ -466,11 +498,12 @@ newLigneVariations(btex $\\hbox{\\bf Variations de }\\atop{\\displaystyle \\Math
                          ");";
             
 if(nz>2){ 
-   for(r:=1; r<=nz-2;r++){  
+   for(r:=1; r<=nz-2;r++){ 
      krm:=evalf(limite(f(x),x=Z[r-1],1))< evalf(limite(f(x),x=Z[r],-1));
      krp:=evalf(limite(f(x),x=Z[r],1))> evalf(limite(f(x),x=Z[r+1],-1)) ;  
      lmrm:=limite(f(x),x=Z[r],-1)==-infinity;lmrp:=limite(f(x),x=Z[r],1)==-infinity;
-     lp:=lp+if(Z[r]==Imin){"limGauche(btex $"+if(lmrm==1){
+
+     lp:=lp+if(member(Z[r],IMIN)!=0){"limGauche(btex $"+if(lmrm==1){
              "-\\infty"}else{
                 latex(simplifier(limite(f(x),x=Z[r],-1)))}
          +"$ etex,"+if(krm==1){
@@ -478,7 +511,7 @@ if(nz>2){
          +"debutNonDef;"
        }//fsi Zr=Imin
       else{
-        if (Z[r]==Imax) {"finNonDef;limDroite(btex $"+if(lmrp==1){
+        if (member(Z[r],IMAX)!=0) {"finNonDef;limDroite(btex $"+if(lmrp==1){
              "-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],1)))}
          +"$ etex,"+if(krp==1){
              "1);"}else{"0);"}          
@@ -504,7 +537,7 @@ if(nz>2){
                }//felse(member Zr F)
                } //felse(Zr=Imax)
               }//felse(Zr=Imin)
-             };//ffor 
+           };//ffor 
          }//fsi nz
 
 lnz:=limite(f(x),x=Z[nz-1],-1)==-infinity;
@@ -631,6 +664,7 @@ return(MetaL);
  }
 :;
 
+
 \end{VerbatimOut}
 
 
@@ -641,7 +675,7 @@ return(MetaL);
 
 
 
-\begin{VerbatimOut}[commandchars=?§£]{XcasTVapp.cxx}
+\begin{VerbatimOut}[commandchars=?WW]{XcasTVapp.cxx}
 
 
 
@@ -874,7 +908,7 @@ return(MetaL);
 
 
 
-\begin{VerbatimOut}[commandchars=?§£]{XcasTVI.cxx}
+\begin{VerbatimOut}[commandchars=?WW]{XcasTVI.cxx}
 
 
 TVI(L,F,nom,nomv,f,ftt,ao,nmr):={
@@ -1143,7 +1177,7 @@ return(MetaL);
 
 
 
-\begin{VerbatimOut}[commandchars=?§£]{XcasTVIapp.cxx}
+\begin{VerbatimOut}[commandchars=?WW]{XcasTVIapp.cxx}
 
 
 TVIapp(L,F,nom,nomv,f,ftt,ao,nmr):={
@@ -1438,7 +1472,7 @@ return(MetaL);
 
 
 
-\begin{VerbatimOut}[commandchars=?§£]{XcasTabSignL.cxx}
+\begin{VerbatimOut}[commandchars=?WW]{XcasTabSignL.cxx}
 
 
 TS(L,D,nmr):={
@@ -1616,7 +1650,7 @@ return(MetaL);
 
 
 
-\begin{VerbatimOut}[commandchars=?§£]{XcasTabSignQ.cxx}
+\begin{VerbatimOut}[commandchars=?WW]{XcasTabSignQ.cxx}
 TSq(nomf,L,Fo,D,nmr):={
 L:=apply(f->unapply(f,x),L);
 Fo:=apply(f->unapply(f,x),Fo);
@@ -1843,7 +1877,7 @@ return(MetaL);
 
 
 
-\begin{VerbatimOut}[commandchars=?§£]{XcasTabSign.cxx}
+\begin{VerbatimOut}[commandchars=?WW]{XcasTabSign.cxx}
 TSa(a,b,c,d,nmr):={
 zA:=resoudre(a*x+b=0,x)[0];
 zB:=resoudre(c*x+d=0,x)[0];
@@ -1905,7 +1939,7 @@ return(Meta);
 
 
 
-\begin{VerbatimOut}[commandchars=?§£]{XcasTSc.cxx}
+\begin{VerbatimOut}[commandchars=?WW]{XcasTSc.cxx}
 TSc(g,D,nmr):={
 f:=unapply(g,x);
 Z:=NULL;
@@ -2121,7 +2155,7 @@ fclose(Sortie);
 \end{VerbatimOut}
 
 \newenvironment{TSa}
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCas.user}}
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\WW]{XCas.user}}
 {\end{VerbatimOut}
           \dresse{}
 }
@@ -2150,7 +2184,7 @@ fclose(Sortie);
 \end{VerbatimOut}
 
 \newenvironment{TSq}%
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasQ.user}}
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\WW]{XCasQ.user}}
 {\end{VerbatimOut}\dresse{Q}}
 
 
@@ -2158,7 +2192,7 @@ fclose(Sortie);
 \newenvironment{TSq*}[1]%
 {\setcounter{TVnbis}{\theTVn}
 \setcounter{TVn}{#1}
-\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasQ.user}}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\WW]{XCasQ.user}}
 {\end{VerbatimOut}\dressetoile{Q}}
 
 
@@ -2178,14 +2212,14 @@ fclose(Sortie);
 \end{VerbatimOut}
 
 \newenvironment{TS}%
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasL.user}}
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\WW]{XCasL.user}}
 {\end{VerbatimOut}\dresse{L}}
 
 
 \newenvironment{TS*}[1]
 {\setcounter{TVnbis}{\theTVn}
 \setcounter{TVn}{#1}
-\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasL.user}}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\WW]{XCasL.user}}
 {\end{VerbatimOut}\dressetoile{L}}
 
 
@@ -2210,12 +2244,12 @@ fclose(Sortie);
 \newenvironment{TSc*}[1]%
 {\setcounter{TVnbis}{\theTVn}
 \setcounter{TVn}{#1}
-\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTSc.user}}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\WW]{XCasTSc.user}}
 {\end{VerbatimOut}\dressetoile{TSc}}
 
 
 \newenvironment{TSc}%
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTSc.user}}
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\WW]{XCasTSc.user}}
 {\end{VerbatimOut}\dresse{TSc}}
 
 
@@ -2235,14 +2269,14 @@ fclose(Sortie);
 \end{VerbatimOut}
 
 \newenvironment{TV}%
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTV.user}}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\WW]{XCasTV.user}}%
 {\end{VerbatimOut}
 \dresse{TV}}
 
 \newenvironment{TV*}[1]{%
 \setcounter{TVnbis}{\theTVn}
 \setcounter{TVn}{#1}
-\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTV.user}}%
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\WW]{XCasTV.user}}%
 {\end{VerbatimOut}\dressetoile{TV}}
 
 
@@ -2271,14 +2305,14 @@ fclose(Sortie);
 \end{VerbatimOut}
 
 \newenvironment{TVZ}%
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVZ.user}}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\WW]{XCasTVZ.user}}%
 {\end{VerbatimOut}
 \dresse{TVZ}}
 
 \newenvironment{TVZ*}[1]{%
 \setcounter{TVnbis}{\theTVn}
 \setcounter{TVn}{#1}
-\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVZ.user}}%
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\WW]{XCasTVZ.user}}%
 {\end{VerbatimOut}\dressetoile{TVZ}}
 
 
@@ -2306,14 +2340,14 @@ fclose(Sortie);
 \end{VerbatimOut}
 
 \newenvironment{TVapp}%
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVapp.user}}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\WW]{XCasTVapp.user}}%
 {\end{VerbatimOut}
 \dresse{TVapp}}
 
 \newenvironment{TVapp*}[1]{%
 \setcounter{TVnbis}{\theTVn}
 \setcounter{TVn}{#1}
-\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVapp.user}}%
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\WW]{XCasTVapp.user}}%
 {\end{VerbatimOut}\dressetoile{TVapp}}
 
 
@@ -2342,14 +2376,14 @@ fclose(Sortie);
 \end{VerbatimOut}
 
 \newenvironment{TVI}%
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVI.user}}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\WW]{XCasTVI.user}}%
 {\end{VerbatimOut}\dresse{TVI}}
 
 
 \newenvironment{TVI*}[1]%
 {\setcounter{TVnbis}{\theTVn}
 \setcounter{TVn}{#1}
-\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVI.user}}%
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\WW]{XCasTVI.user}}%
 {\end{VerbatimOut}\dressetoile{TVI}}
 
 
@@ -2373,14 +2407,14 @@ fclose(Sortie);
 \end{VerbatimOut}
 
 \newenvironment{TVIapp}%
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVIapp.user}}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\WW]{XCasTVIapp.user}}%
 {\end{VerbatimOut}\dresse{TVIapp}}
 
 
 \newenvironment{TVIapp*}[1]%
 {\setcounter{TVnbis}{\theTVn}
 \setcounter{TVn}{#1}
-\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVIapp.user}}%
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\WW]{XCasTVIapp.user}}%
 {\end{VerbatimOut}\dressetoile{TVIapp}}
 
 
diff --git a/Master/texmf-dist/tex/latex/tablor/tablorutf8.sty b/Master/texmf-dist/tex/latex/tablor/tablorutf8.sty
deleted file mode 100644
index d89eda8b40b..00000000000
--- a/Master/texmf-dist/tex/latex/tablor/tablorutf8.sty
+++ /dev/null
@@ -1,2393 +0,0 @@
-
-\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesPackage{tablor}[24/03/2008 v2.03 la machine à créer des tableaux de signes et variations]
-
-% \copyleft Connan le Barbare \copyright
-% avec l'efficace participation de Jean-Michel Boucart
-
-
-%% Crée 14 environnements :
-%% tableau de signes de 2 facteurs affines
-% \begin{TSa}
-% TSa(-2,3,-1,5,\tv);
-% \end{TSa}
-% %%%%%% Pour des tableaux de plus de 2 facteurs
-%
-% \begin{TS}
-% TS([-2*x+3,x^2-1,x^2+1,x-1,x^2-2],[a,b],\tv);
-% \end{TS}
-%
-% pour les tableaux de signes avec quotient
-%\begin{TSq}
-%TSq("Q",[-2*x+3,-4*x+5],[x^2-16,x-2],[a,b],\tv)
-%%\end{TSq}
-% un tableau de variation :
-%
-% \begin{TV}
-% TV([0,+infinity],[0],"h","x",ln(x)-(ln(x))^2,1,\tv)
-% \end{TV}
-%
-% tableau avec valeurs intermédiares
-%\begin{TVI}
-%TVI([-1,+infinity],[-1],"f","x",x2/sqrt(x+1)-1,1,2,\tv)
-%\end{TVI}
-%%%
-% tableau de variations avec f' sans zéro formel
-%\begin{TVapp}
-% TVapp([0,+infinity],[0],"g","x",ln(x)-x*exp(2-x),1,\tv)
-% \end{TVapp}
-%
-%
-% tableau de variations avec f' sans zéro formel
-%\begin{TVIapp}
-% TVIapp([0,+infinity],[0],"g","x",ln(x)-x*exp(2-x),1,0,\tv)
-% \end{TVIapp}
-%
-%
-%%%
-% et leurs pendants étoilés qui permet l'affichage intermédiaire du 
-% fichier metapost pour le modifier
-%
-%
-%
-%
-
-
-
-
-%% extensions requises
-%% Il faudra rajouter dans le préambule \usepackage{graphicx} si vous 
-%% ne l'avez pas de base 
-
-
-\RequirePackage{ifthen}
-\RequirePackage{fancyvrb}
-\RequirePackage{ifpdf}
-
-
-% option xcas présent 
-
-
-\newboolean{xcas}\setboolean{xcas}{false}
-\DeclareOption{xcas}{\setboolean{xcas}{true}}
-
-%% Initialisation du choix d'OS
-\newboolean{windows}\setboolean{windows}{false}
-
-
-
-%% on configure  tablor  dans un fichier extérieur pour la plateforme
-%% et l'éditeur
-
-\IfFileExists{tablor.cfg}{\input{tablor.cfg}}%\typeout{pas de fichier tablor.cfg}}
-
-\ProcessOptions\relax
-
-%% pour ceux compilant via pdflatex
-
-\ifpdf
-\DeclareGraphicsRule{*}{mps}{*}{}
-\fi
-
-%% pour nettoyer les fichiers auxiliaires
-
-\AtEndDocument{\immediate\write18{\rem tete.* *.user XCas* Xcas* *.mpx}}
-
-
-
-
-%% En-tête pour le fichier metapost contenant les codes 
-%% de tous les tableaux produits
-
- \begin{VerbatimOut}[commandchars=?§£]{tete.mp}
-  input tableauVariation;
-  verbatimtex
-%&latex
-     \documentclass{article}
-      \\?fonte
-     \usepackage{amsmath}
-     \newcommand{\Mathbold}[1]{\mbox{\boldmath$#1$\unboldmath}}
-     \begin{document}
-     etex 
-
-  \end{VerbatimOut}
-
-
-
-%% Nettoie les fichiers log dont le nom dépend du choix de l'utilisateur
-%% Par défaut, c'est le nom du fichier tex courant (\jobname)
-%% Clôt le fichier metapost contenant le récapitulatif de tous les tableaux
-
-
-%% Définit des commandes disque selon l'OS utilisé
-\ifthenelse{\boolean{windows}}%
-    {\newcommand{\rem}{DEL } \newcommand{\cat}{TYPE }
-      \newcommand{\cp}{COPY }}%
-    {\newcommand{\rem}{rm }\newcommand{\cat}{cat }
-      \newcommand{\cp}{cp }}
-
-
-
-\newcommand{\nettoyer}[1][\jobname]%
-{\immediate\write18{\rem #1.Tab.log}
-\immediate\write18{echo end >> #1.Tab.mp}
-}
-
-
-
-
-%% Donne comme prefixe aux tableaux le prefixe courant
-%% Peut-être modifié par \initablor
-
-\newcommand{\Tableaux}{\jobname}
-
-%% initialise les compteurs
-
-\newcounter{TVn}
-\newcommand{\tv}{\theTVn}
-
-\newcounter{TVnbis}
-\newcommand{\tvbis}{\theTVnbis}
-
-
-
-%% permet de donner un prefixe aux tableaux produits (\jobname par défaut)
-%% effectue quelques vérifications :
-
-
-\newcommand{\initablor}[1][\jobname]{%
-\renewcommand{\Tableaux}{#1}%     Arret du nom des tableaux
-\setcounter{TVn}{0}%     Initialisation du compteur de tableaux.
-\ifthenelse{\boolean{xcas}}%    Avec l'option XCas
-{\IfFileExists{\Tableaux.Tab.mp}%      Si Tableaux.mp est présent...
-        {\immediate\write18{\rem \Tableaux.Tab.mp}}%  le détruire
-        {}%   
- \immediate\write18{\cp -f tete.mp \Tableaux.Tab.mp}% Reconstituer l'entête de Tableaux.mp
-} 
-{\IfFileExists{\Tableaux.Tab.mp}%      Sans l'option XCas, si
-                                %      Tableaux.mp existe
-{\immediate\write18{mpost -interaction=batchmode \Tableaux.Tab}}% l'exécuter pour reconstituer les figures
-{\PackageWarning{tablor}{Pas de source metapost pour creer les tableaux.}}% sinon message d'erreur
-                                % (mais pas d'arret car les tableaux
-                                % peuvent être présents )
-}}%
-
-
-
-%% commande pour lancer giac selon l'OS
-
-\makeatletter
-\newcommand{\executGiacmp}[1]{%
-\ifthenelse{\boolean{windows}}%
-{\immediate\write18{giac #1 }}%
-{\immediate\write18{giac  <#1 }}}
-\makeatother
-
-
-
-
-%%%
-%
-%%% LES SCRIPTS GIAC/XCAS
-%
-%%%
-
-
-
-
-%%
-%% Code giac/Xcas pour les Tableaux de Variations
-%%
-
-
-\begin{VerbatimOut}[commandchars=?§£]{XcasTV.cxx}
-TV(L,F,nom,nomv,f,ftt,nmr):={
-nl:=size(L);
-f:=unapply(f,x);
-fp:=fonction_derivee(f);
-Z:=concat(L,F);
-S:=resoudre(fp(x),x);
-  si size(S)>0 alors   pour j de 0 jusque size(S)-1 faire 
-                             kk:=(evalf(S[j])>=evalf(L[0])) and (evalf(S[j])<=evalf(L[nl-1]));
-                          if(kk==1){Z:=append(Z,simplifier(S[j]))};
-                          fpour
-  fsi;
-
-Z:=sort(Z); 
-nz:=size(Z);
- si Z[0]==Z[1] alors Z:=augment(Z[0],Z[2..nz-1]);nz:=nz-1; 
-     fsi;
-pour u de 1 jusque nz-2 faire 
-     si Z[u]==Z[u+1] alors Z:=augment(Z[0..u-1],Z[u+1..nz-1]);nz:=nz-1; 
-     fsi;
-fpour;
-nz:=size(Z);
-l0:=" newLigneVariables(btex $"+nomv+"$ etex);";lp:=" "; lf:=" ";lsp:=" ";
-pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
-";fpour; 
-
-       k0:= evalf(limite(f(x),x=Z[0],1))> evalf(limite(f(x),x=Z[1],-1));
-       kz:=evalf(limite(f(x),x=Z[nz-1],-1))> evalf(limite(f(x),x=Z[nz-2],1));
-                          
-lsi:="
-newLigneSignes(btex $\\hbox{ Signe de }\\atop{\\displaystyle "+nom+"'("+nomv+")}$ etex);"+
-     if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
-                                                    if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
-                                                    if(sign(fp(Z[0]+10^(-5)))==1){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
-                                                         if(sign(fp((Z[0]+10^(-5))))==1){"plus;"}else{"moins;"} }}
- 
-if(nz>2){ for(r:=1; r<=nz-2;r++){      ksp:=evalf(fp(Z[r]+0.01))>0;                     
-                                               lsp:=lsp+if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
-                                                if(ksp==1){"plus;"}else{"moins;"}
-                                                  }; }
-
-lsf:=if(member(Z[nz-1],F)==0){""}else{"nomDefBarre;
-"}
-lm0:=limite(f(x),x=Z[0],1)==-infinity;
-     li:="
-newLigneVariations(btex $\\hbox{\\bf Variations de }\\atop{\\displaystyle \\Mathbold{"+nom+"}}$ etex);"+
-           if(member(Z[0],F)==0){"valPos(btex $"+if(lm0==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[0],1)))}+"$ etex,"}
-             else{"nonDefBarre;limDroite(btex $"+if(lm0==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[0],1)))}+"$ etex,"}+                               
-           if(k0==1){"1"}else{"0"}+
-                         ");";
-            
-                     if(nz>2){ for(r:=1; r<=nz-2;r++){ krm:=evalf(limite(f(x),x=Z[r-1],1))< evalf(limite(f(x),x=Z[r],-1));
-                                                 krp:=evalf(limite(f(x),x=Z[r],1))> evalf(limite(f(x),x=Z[r+1],-1)) ;  
-                         lmrm:=limite(f(x),x=Z[r],-1)==-infinity;lmrp:=limite(f(x),x=Z[r],1)==-infinity;
-                                                  lp:=lp+if(member(Z[r],F)){
-                                    "limGauche(btex
-                                    $"+if(lmrm==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],-1)))}+"$
-                                    etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
-                                          else{"valPos(btex          $"+latex(simplifier(f(Z[r])))+"$
-                                            etex,"+if(sign(evalf(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);
-"}}}
-                                                   }; }
-
-lnz:=limite(f(x),x=Z[nz-1],-1)==-infinity;
-                           lf:=if(member(Z[nz-1],F)==0){"valPos(btex $"+if(lnz==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[nz-1],-1)))}+"$ etex,"}else{"nonDefBarre;limGauche(btex $"+if(lnz==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[nz-1],-1)))}+"$ etex,"}+                               
-           if(kz==1){"1);"}else{"0);
-"};    
-    
-
-intro:="input tableauVariation;
-           verbatimtex
-%&latex
- \\documentclass{article}
- \\?fonte
- \\usepackage{amsmath}
- \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}}
- \\begin{document}
- etex;
-
-"
-  
-
-MetaL:=if(ftt==2){if(nz>2){intro+"beginTableau("+nmr+")"+
-        l0+lsi+lsp+lsf+"
-endTableau;
-end
-";}else{
-intro+"beginTableau("+nmr+")"+
-        l0+
-lsi+lsf+"
-endTableau;
-end";
-}
-}else{ if(ftt==0){if(nz>2){intro+"beginTableau("+nmr+")"+
-        l0+
-li+
-lp+
-lf
-+"
-endTableau;
-end";}else{intro+"beginTableau("+nmr+")"+
-        l0+
-li+
-lf
-+"
-endTableau;
-end";}}else{
-if(nz>2){intro+"beginTableau("+nmr+")"+
-        l0+
-lsi+lsp+lsf+
-li+
-lp+
-lf
-+"
-endTableau;
-end";}else{intro+"beginTableau("+nmr+")"+
-        l0+
-lsi+lsf+
-li+
-lf
-+"
-endTableau;
-end";}
-}}
-
-
-
-MetaLfc:=if(ftt==2){if(nz>2){"
-
-beginTableau("+nmr+")"+
-        l0+lsi+lsp+lsf+"
-endTableau;
-
-";}else{
-intro+"beginTableau("+nmr+")"+
-        l0+
-lsi+lsf+"
-endTableau;
-
-";
-}
-}else{ if(ftt==0){if(nz>2){"beginTableau("+nmr+")"+
-        l0+
-li+
-lp+
-lf
-+"
-endTableau;
-
-";}else{"beginTableau("+nmr+")"+
-        l0+
-li+
-lf
-+"
-endTableau;
-
-";}}else{
-if(nz>2){"beginTableau("+nmr+")"+
-        l0+
-lsi+lsp+lsf+
-li+
-lp+
-lf
-+"
-endTableau;
-
-";}else{"beginTableau("+nmr+")"+
-        l0+
-lsi+lsf+
-li+
-lf
-+"
-endTableau;
-
-";}
-}}
-
-
-sortie:=fopen("XCasmpfc.mp");
-fprint(sortie,Unquoted,MetaLfc);
-fclose(sortie);
-
-
-return(MetaL);
- }:;
-
-\end{VerbatimOut}
-
-
-%%
-%%
-%% TV avec une zone interdite : on rajoute comme argument l'intervalle interdit
-%% par exemple, pour sqrt(x^2-1) : TVZ([-infinity,100],[],[-1,1],"f","x",sqrt(x^2-1),1,1)
-%%
-
-\begin{VerbatimOut}[commandchars=?§£]{XcasTVZ.cxx}
-
-TVZ(L,F,FF,nom,nomv,f,ftt,nmr):={
-nl:=size(L);
-if(FF[0]>L[0]){Imin:=FF[0];LL:=L}else{Imin:=L[0];LL:=[L[1]]};
-if(FF[1]0 alors   pour j de 0 jusque size(S)-1 faire 
-                             kk:=(evalf(S[j])>=evalf(L[0])) and (evalf(S[j])<=evalf(L[nl-1]));
-                             kK:=(evalf(S[j])evalf(Imax));
-                             Kk:=(kk) and kK;
-                          if(Kk==1){Z:=append(Z,simplifier(S[j]))};
-                          fpour
-  fsi;
-
-Z:=sort(Z); 
-nz:=size(Z);
-
-
-
- si Z[0]==Z[1] alors Z:=augment(Z[0],Z[2..nz-1]);nz:=nz-1; 
-     fsi;
-pour u de 1 jusque nz-2 faire 
-     si Z[u]==Z[u+1] alors Z:=augment(Z[0..u-1],Z[u+1..nz-1]);nz:=nz-1; 
-     fsi;
-fpour;
-nz:=size(Z);
-for(k:=1;kImin)and(Z[k] evalf(limite(f(x),x=Z[1],-1));
-       kz:=evalf(limite(f(x),x=Z[nz-1],-1))> evalf(limite(f(x),x=Z[nz-2],1));
-                          
-lsi:="
-newLigneSignes(btex $\\hbox{ Signe de }\\atop{\\displaystyle "+nom+"'("+nomv+")}$ etex);"+
-     if(Z[0]==Imin){"debutNonDef;"}else{if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
-                                                    if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
-                                                    if(sign(fp(Z[0]+10^(-5)))==1){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
-                                                         if(sign(fp((Z[0]+10^(-5))))==1){"plus;"}else{"moins;"} }}}
- 
-if(nz>2){ for(r:=1; r<=nz-2;r++){      ksp:=evalf(fp(Z[r]+0.01))>0;                     
-                                               lsp:=lsp+if(Z[r]==Imin){"debutNonDef;"}else{
-                                                       if(Z[r]==Imax){"finNonDef;"+
-                                                if(ksp==1){"plus;"}else{"moins;"}}else{
-                                                 if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
-                                                if(ksp==1){"plus;"}else{"moins;"}
-                                                  }}}}; 
-
-lsf:=if(Z[0]==Imax){"finNonDef;"}else{if(member(Z[nz-1],F)==0){""}else{"nomDefBarre;
-"}}
-lm0:=limite(f(x),x=Z[0],1)==-infinity;
-     li:="
-newLigneVariations(btex $\\hbox{\\bf Variations de }\\atop{\\displaystyle \\Mathbold{"+nom+"}}$ etex);"+
-           if(member(Z[0],F)==0){"valPos(btex $"+if(lm0==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[0],1)))}+"$ etex,"}
-             else{"nonDefBarre;limDroite(btex $"+if(lm0==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[0],1)))}+"$ etex,"}+                               
-           if(k0==1){"1"}else{"0"}+
-                         ");";
-            
-if(nz>2){ 
-   for(r:=1; r<=nz-2;r++){  
-     krm:=evalf(limite(f(x),x=Z[r-1],1))< evalf(limite(f(x),x=Z[r],-1));
-     krp:=evalf(limite(f(x),x=Z[r],1))> evalf(limite(f(x),x=Z[r+1],-1)) ;  
-     lmrm:=limite(f(x),x=Z[r],-1)==-infinity;lmrp:=limite(f(x),x=Z[r],1)==-infinity;
-     lp:=lp+if(Z[r]==Imin){"limGauche(btex $"+if(lmrm==1){
-             "-\\infty"}else{
-                latex(simplifier(limite(f(x),x=Z[r],-1)))}
-         +"$ etex,"+if(krm==1){
-             "1);"}else{"0);"}
-         +"debutNonDef;"
-       }//fsi Zr=Imin
-      else{
-        if (Z[r]==Imax) {"finNonDef;limDroite(btex $"+if(lmrp==1){
-             "-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],1)))}
-         +"$ etex,"+if(krp==1){
-             "1);"}else{"0);"}          
-       }
-        else {
-          if(member(Z[r],F)){
-         "limGauche(btex $"+if(lmrm==1){
-             "-\\infty"}else{
-                latex(simplifier(limite(f(x),x=Z[r],-1)))}
-         +"$ etex,"+if(krm==1){
-             "1);"}else{"0);"}
-         +"nonDefBarre;limDroite(btex $"+if(lmrp==1){
-             "-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],1)))}
-         +"$ etex,"+if(krp==1){
-             "1);"}else{"0);"}
-         }//fsi (member Zr F)
-          else{"valPos(btex$"+latex(simplifier(f(Z[r])))+"$etex,"+
-             if(sign(evalf(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){
-               "0.5);"}else{
-                    if(krp==1){
-                       "1);"}else{"0);"}//felse(krp)
-                    }//felse(valpos)
-               }//felse(member Zr F)
-               } //felse(Zr=Imax)
-              }//felse(Zr=Imin)
-             };//ffor 
-         }//fsi nz
-
-lnz:=limite(f(x),x=Z[nz-1],-1)==-infinity;
-                           lf:=if(member(Z[nz-1],F)==0){"valPos(btex $"+if(lnz==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[nz-1],-1)))}+"$ etex,"}else{"nonDefBarre;limGauche(btex $"+if(lnz==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[nz-1],-1)))}+"$ etex,"}+                               
-           if(kz==1){"1);"}else{"0);
-"};    
-    
-
-intro:="input tableauVariation;
-           verbatimtex
-%&latex
- \\documentclass{article}
- \\?fonte
- \\usepackage{amsmath}
- \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}}
- \\begin{document}
- etex;
-
-"
-  
-
-MetaL:=if(ftt==2){if(nz>2){intro+"beginTableau("+nmr+")"+
-        l0+lsi+lsp+lsf+"
-endTableau;
-end
-";}else{
-intro+"beginTableau("+nmr+")"+
-        l0+
-lsi+lsf+"
-endTableau;
-end";
-}
-}else{ if(ftt==0){if(nz>2){intro+"beginTableau("+nmr+")"+
-        l0+
-li+
-lp+
-lf
-+"
-endTableau;
-end";}else{intro+"beginTableau("+nmr+")"+
-        l0+
-li+
-lf
-+"
-endTableau;
-end";}}else{
-if(nz>2){intro+"beginTableau("+nmr+")"+
-        l0+
-lsi+lsp+lsf+
-li+
-lp+
-lf
-+"
-endTableau;
-end";}else{intro+"beginTableau("+nmr+")"+
-        l0+
-lsi+lsf+
-li+
-lf
-+"
-endTableau;
-end";}
-}}
-
-
-
-MetaLfc:=if(ftt==2){if(nz>2){"
-
-beginTableau("+nmr+")"+
-        l0+lsi+lsp+lsf+"
-endTableau;
-
-";}else{
-intro+"beginTableau("+nmr+")"+
-        l0+
-lsi+lsf+"
-endTableau;
-
-";
-}
-}else{ if(ftt==0){if(nz>2){"beginTableau("+nmr+")"+
-        l0+
-li+
-lp+
-lf
-+"
-endTableau;
-
-";}else{"beginTableau("+nmr+")"+
-        l0+
-li+
-lf
-+"
-endTableau;
-
-";}}else{
-if(nz>2){"beginTableau("+nmr+")"+
-        l0+
-lsi+lsp+lsf+
-li+
-lp+
-lf
-+"
-endTableau;
-
-";}else{"beginTableau("+nmr+")"+
-        l0+
-lsi+lsf+
-li+
-lf
-+"
-endTableau;
-
-";}
-}}
-
-
-sortie:=fopen("XCasmpfc.mp");
-fprint(sortie,Unquoted,MetaLfc);
-fclose(sortie);
-
-
-return(MetaL);
- }
-:;
-
-\end{VerbatimOut}
-
-
-%%
-%%
-%% Quand les solutions formelles de f'(x)=0 ne sont pas calculables
-%%
-
-
-
-\begin{VerbatimOut}[commandchars=?§£]{XcasTVapp.cxx}
-
-
-
-
-
-
-
-TVapp(L,F,nom,nomv,f,ftt,nmr):={
-
-
-nl:=size(L);
-f:=unapply(f,x);
-fp:=fonction_derivee(f);
-z0:=concat(L,F);z:=sort(z0);
-nz:=size(z);
-if(L==[-infinity,+infinity]){S:=seq(fsolve(fp(x),x,k/10,newton_solver),k=-100..100);}
-else{if(L[0]==-infinity){S:=seq(fsolve(fp(x),x,k/10,newton_solver),k=-100..L[1]);}
-else{if(L[1]==+infinity){S:=seq(fsolve(fp(x),x,k/10,newton_solver),k=L[0]..100);}
-else{S:=seq(fsolve(fp(x),x,k/10,newton_solver),k=z[0]..z[nz-1])}}};
-si size(S)>0 alors   pour j de 0 jusque size(S)-1 faire 
-                             kk:=(re(S[j])==S[j]);kok:=(evalf(S[j])>=L[0]) and (evalf(S[j])<=L[1]);
-                          if(kk==1){if(kok==1){z:=append(z,simplifier(S[j]))}};
-                          fpour;
-fsi;
-
-
-S:=NULL;
-S:=S,z[0];
-for(j:=1;j1e-15 or z[j]==0)){
-   S:=S,z[j]};
-}
-z:=[S];
-
-Z:=sort(z);
-nz:=size(Z);
-
-S:=NULL;
-S:=S,Z[0];
-for(j:=1;j evalf(limite(f(x),x=Z[1],-1));
-       kz:=evalf(limite(f(x),x=Z[nz-1],-1))> evalf(limite(f(x),x=Z[nz-2],1));
-                          
-lsi:="
-newLigneSignes(btex $\\hbox{ Signe de }\\atop{\\displaystyle "+nom+"'("+nomv+")}$ etex);"+
-     if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
-                                                    if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
-                                                    if(sign(fp(Z[0]+10^(-5)))==1){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
-                                                         if(sign(fp((Z[0]+10^(-5))))==1){"plus;"}else{"moins;"} }}
- 
-if(nz>2){ for(r:=1; r<=nz-2;r++){      ksp:=evalf(fp(Z[r]+0.01))>0;                     
-                                               lsp:=lsp+if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
-                                                if(ksp==1){"plus;"}else{"moins;"}
-                                                  }; }
-
-lsf:=if(member(Z[nz-1],F)==0){""}else{"nomDefBarre;
-"}
-lm0:=limite(f(x),x=Z[0],1)==-infinity;
-     li:="
-newLigneVariations(btex $\\hbox{\\bf Variations de }\\atop{\\displaystyle \\Mathbold{"+nom+"}}$ etex);"+
-           if(member(Z[0],F)==0){"valPos(btex $"+if(lm0==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[0],1)))}+"$ etex,"}
-             else{"nonDefBarre;limDroite(btex $"+if(lm0==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[0],1)))}+"$ etex,"}+                               
-           if(k0==1){"1"}else{"0"}+
-                         ");";
-            
-                     if(nz>2){ for(r:=1; r<=nz-2;r++){  krm:=evalf(limite(f(x),x=Z[r-1],1))< evalf(limite(f(x),x=Z[r],-1));
-                                                 krp:=evalf(limite(f(x),x=Z[r],1))> evalf(limite(f(x),x=Z[r+1],-1)) ;  
-                         lmrm:=limite(f(x),x=Z[r],-1)==-infinity;lmrp:=limite(f(x),x=Z[r],1)==-infinity;
-                                                  lp:=lp+if(member(Z[r],F)){
-                                    "limGauche(btex $"+if(lmrm==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],-1)))}+"$ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
-                                          else{"valPos(btex          $"+latex(simplifier(f(Z[r])))+"$
-                                            etex,"+if(sign(evalf(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);
-"}}}
-                                                   }; }
-
-lnz:=limite(f(x),x=Z[nz-1],-1)==-infinity;
-                           lf:=if(member(Z[nz-1],F)==0){"valPos(btex $"+if(lnz==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[nz-1],-1)))}+"$ etex,"}else{"nonDefBarre;limGauche(btex $"+if(lnz==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[nz-1],-1)))}+"$ etex,"}+                               
-           if(kz==1){"1);"}else{"0);
-"};    
-    
-
-intro:="input tableauVariation;
-           verbatimtex
-%&latex
- \\documentclass{article}
-  \\?fonte
- \\usepackage{amsmath}
- \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}}
- \\begin{document}
- etex;
-
-"
-  
-
-MetaL:=if(ftt==2){if(nz>2){intro+"beginTableau("+nmr+")"+
-        l0+lsi+lsp+lsf+"
-endTableau;
-end
-";}else{
-intro+"beginTableau("+nmr+")"+
-        l0+
-lsi+lsf+"
-endTableau;
-end";
-}
-}else{ if(ftt==0){if(nz>2){intro+"beginTableau("+nmr+")"+
-        l0+
-li+
-lp+
-lf
-+"
-endTableau;
-end";}else{intro+"beginTableau("+nmr+")"+
-        l0+
-li+
-lf
-+"
-endTableau;
-end";}}else{
-if(nz>2){intro+"beginTableau("+nmr+")"+
-        l0+
-lsi+lsp+lsf+
-li+
-lp+
-lf
-+"
-endTableau;
-end";}else{intro+"beginTableau("+nmr+")"+
-        l0+
-lsi+lsf+
-li+
-lf
-+"
-endTableau;
-end";}
-}}
-
-
-
-MetaLfc:=if(ftt==2){if(nz>2){"
-
-beginTableau("+nmr+")"+
-        l0+lsi+lsp+lsf+"
-endTableau;
-
-";}else{
-intro+"beginTableau("+nmr+")"+
-        l0+
-lsi+lsf+"
-endTableau;
-
-";
-}
-}else{ if(ftt==0){if(nz>2){"beginTableau("+nmr+")"+
-        l0+
-li+
-lp+
-lf
-+"
-endTableau;
-
-";}else{"beginTableau("+nmr+")"+
-        l0+
-li+
-lf
-+"
-endTableau;
-
-";}}else{
-if(nz>2){"beginTableau("+nmr+")"+
-        l0+
-lsi+lsp+lsf+
-li+
-lp+
-lf
-+"
-endTableau;
-
-";}else{"beginTableau("+nmr+")"+
-        l0+
-lsi+lsf+
-li+
-lf
-+"
-endTableau;
-
-";}
-}}
-
-
-sortie:=fopen("XCasmpfc.mp");
-fprint(sortie,Unquoted,MetaLfc);
-fclose(sortie);
-
-
-return(MetaL);
- }:;
-
-
-
-
-
-
-
-\end{VerbatimOut}
-
-
-
-
-
-
-
-%%
-%% Code giac/Xcas pour les Tableaux de Variations avec 
-%% Valeurs intermédiaires
-%%
-
-
-
-
-
-\begin{VerbatimOut}[commandchars=?§£]{XcasTVI.cxx}
-
-
-TVI(L,F,nom,nomv,f,ftt,ao,nmr):={
-nl:=size(L);
-f:=unapply(f,x);
-fp:=fonction_derivee(f);
-Z:=concat(L,F);
-S:=resoudre(fp(x),x);
-  si size(S)>0 alors   pour j de 0 jusque size(S)-1 faire 
-                            kk:=(evalf(S[j])>=evalf(L[0])) and (evalf(S[j])<=evalf(L[nl-1]));
-                          if(kk==1){Z:=append(Z,simplifier(S[j]))};
-                          fpour
-  fsi;
-
-Z:=sort(Z); 
-nz:=size(Z);
- si Z[0]==Z[1] alors Z:=augment(Z[0],Z[2..nz-1]);nz:=nz-1; 
-     fsi;
-pour u de 1 jusque nz-2 faire 
-     si Z[u]==Z[u+1] alors Z:=augment(Z[0..u-1],Z[u+1..nz-1]);nz:=nz-1; 
-     fsi;
-fpour;
-nz:=size(Z);
-l0:=" newLigneVariables(btex $"+nomv+"$ etex);";lp:=" "; lf:=" ";lsp:=" ";
-
-
-
-LI:=limite(f(x),x,Z[0],1);
-LF:=limite(f(x),x,Z[nz-1],-1);
-LP:=NULL;
-if(nz>2){ for(r:=1; r<=nz-2;r++){LP:=LP,if(member(Z[r],F)){limite(f(x),x,Z[r],-1),limite(f(x),x,Z[r],1)}else{f(Z[r])}}};
-if(nz>2){ LL:=[LI,LP,LF]}else{LL:=[LI,LF]};
-      
-NL:=size(LL);
-A:=NULL;aa:=1;kk:=0;
-
-if(NL==nz){for(k:=0;knz){for(k:=0;k evalf(limite(f(x),x=Z[1],-1));
-       kz:=evalf(limite(f(x),x=Z[nz-1],-1))> evalf(limite(f(x),x=Z[nz-2],1));
-                          
-lsi:="
-newLigneSignes(btex $\\hbox{ Signe de }\\atop{\\displaystyle "+nom+"'("+nomv+")}$ etex);"+
-     if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
-                                                    if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
-                                                    if(sign(fp((Z[0]+10^(-10))))==1){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
-                                                         if(sign(fp(10^(-10)+Z[0]))==1){"plus;"}else{"moins;"} }}+if(TestS==0){"valBarre(btex$  $ etex);"+ if(sign(fp(10^(-10)+Z[0]))==1){"plus;"}else{"moins;"}}else{" "}; 
-
-
-
-
- 
-if(nz>2){rr:=1; if(nz==NL){for(r:=1; r<=NL-2;r++){ TestS:=(sign(evalf(LL[r]-ao))==sign(evalf(LL[r+1]-ao))) or (sign(evalf(LL[r]-ao))==0.0)or (sign(evalf(LL[r+1]-ao))==0.0); 
-                                                 ksp:=evalf(fp(Z[r]+0.01))>0;  
-                                                 TestL:=(abs(LL[r])==abs(LL[r+1]));
-                                 lsp:=lsp+if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
-                                  if(ksp==1){"plus;"}else{"moins;"}+if(TestS==0){"valBarre(btex $  $ etex);"}else{" "}+if(TestS==0){if(ksp==1){"plus;"}else{"moins;"}}else{" "};
-                                             }}
-else{for(r:=1; r<=NL-2;r++){kspp:=evalf(fp(Z[rr]+0.01))>0;TestS:=(sign(evalf(LL[r]-ao))==sign(evalf(LL[r+1]-ao))) or (sign(evalf(LL[r]-ao))==0.0)or (sign(evalf(LL[r+1]-ao))==0.0);
-                                          TestL:=(abs(LL[r])==abs(LL[r+1]));
-                      if(TestS==0){if( TestL==1 ){lsp:=lsp}else{lsp:=lsp+if(member(Z[rr],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
-                                  if(kspp==1){"plus;"}else{"moins;"}+"valBarre(btex $  $ etex);"+if(kspp==1){"plus;"}else{"moins;"};rr:=rr+1;}
-                                   } else{lsp:=lsp+if(member(Z[rr],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
-                                  if(kspp==1){"plus;"}else{"moins;"};rr:=rr+1;}        
-}}     
-  }; 
-
-
-
-lsf:=if(member(Z[nz-1],F)==0){""}else{"nomDefBarre;"}
-lm0:=limite(f(x),x=Z[0],1)==-infinity;
-
-TestS:=(sign(evalf(LL[0]-ao))==sign(evalf(LL[1]-ao))) or (sign(evalf(LL[0]-ao))==0.0) or (sign(evalf(LL[1]-ao))==0.0);
-
-     li:="
-newLigneVariations(btex $\\hbox{\\bf Variations de }\\atop{\\displaystyle \\Mathbold{"+nom+"}}$ etex);
-"+  if(member(Z[0],F)==0){"valPos(btex $"+if(lm0==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[0],1)))}+"$ etex,"}
-             else{"nonDefBarre;limDroite(btex $"+if(lm0==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[0],1)))}+"$ etex,"}+                               
-           if(k0==1){"1);"}else{"0);"}+if(TestS==0){"valPos(btex $ "+ao+" $ etex,0.5);"}else{" "}; 
-                         
-            
-                     if(nz>2){if(nz==NL){for(r:=1; r<=nz-2;r++){TestS:=(sign(evalf(LL[r]-ao))==sign(evalf(LL[r+1]-ao))) or (sign(evalf(LL[r]-ao))==0.0)or (sign(evalf(LL[r+1]-ao))==0.0); 
-                                                 krm:=evalf(limite(f(x),x=Z[r-1],1))< evalf(limite(f(x),x=Z[r],-1));
-                                                 krp:=evalf(limite(f(x),x=Z[r],1))> evalf(limite(f(x),x=Z[r+1],-1)) ;  
-                         lmrm:=limite(f(x),x=Z[r],-1)==-infinity;lmrp:=limite(f(x),x=Z[r],1)==-infinity;
-                                                  lp:=lp+if(member(Z[r],F)) {
-                                    "limGauche(btex $"+if(lmrm==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],-1)))}+"$ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
-                                          else{"valPos(btex          $"+latex(simplifier(f(Z[r])))+"$
-                                            etex,"+if(sign(evalf(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);"}}}+if(TestS==0){"valPos(btex
-                                            $ "+ao+" $ etex,0.5);"
-                                                           }else{" "}; 
-};//for
-}else{rr:=1;for(r:=1; r<=NL-2;r++){TestS:=(sign(evalf(LL[r]-ao))==sign(evalf(LL[r+1]-ao))) or (sign(evalf(LL[r]-ao))==0.0)or (sign(evalf(LL[r+1]-ao))==0.0); 
-                                                 krm:=evalf(limite(f(x),x=Z[rr-1],1))< evalf(limite(f(x),x=Z[rr],-1));
-                                                 krp:=evalf(limite(f(x),x=Z[rr],1))> evalf(limite(f(x),x=Z[rr+1],-1)) ;  
-                         lmrm:=limite(f(x),x=Z[rr],-1)==-infinity;lmrp:=limite(f(x),x=Z[rr],1)==-infinity; TestL:=(abs(LL[r])==abs(LL[r+1]));
-if(TestS==0){if( TestL==1 ){lp:=lp}else{  lp:=lp+if(member(Z[rr],F)) {
-                                    "limGauche(btex $"+if(lmrm==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[rr],-1)))}+"$ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[rr],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
-                                          else{"valPos(btex          $"+latex(simplifier(f(Z[rr])))+"$
-                                            etex,"+if(sign(evalf(fp(Z[rr]-0.01)))==sign(fp(Z[rr]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);"}}}+"valPos(btex
-                                            $ "+ao+" $ etex,0.5);
-                                                                 ";rr:=rr+1;
-}// else testL==1
-}//testS==0
-else{lp:=lp+if(member(Z[rr],F)){
-                                    "limGauche(btex $"+if(lmrm==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[rr],-1)))}+"$ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[rr],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
-                                          else{"valPos(btex          $"+latex(simplifier(f(Z[rr])))+"$
-                                            etex,"+if(sign(evalf(fp(Z[rr]-0.01)))==sign(fp(Z[rr]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);
-                                                            "}}};rr:=rr+1;
-}//else testS==0
-}//for nz2
-
-
-lnz:=limite(f(x),x=Z[nz-1],-1)==-infinity;
-                           lf:=if(member(Z[nz-1],F)==0){"valPos(btex $"+if(lnz==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[nz-1],-1)))}+"$ etex,"}else{"nonDefBarre;limGauche(btex $"+if(lnz==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[nz-1],-1)))}+"$ etex,"}+                               
-           if(kz==1){"1);"}else{"0);"};    
-    
-
-
-intro:="
-input tableauVariation;
-verbatimtex
-%&latex
- \\documentclass{article}
-  \\?fonte
- \\usepackage{amsmath}
- \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}}
- \\begin{document}
- etex;
-
-";
-  
-
-MetaL:= if(ftt==2){if(nz>2){intro+"beginTableau("+nmr+")"+
-        l0+lsi+lsp+lsf+"
-endTableau;
-end";}else{
-intro+"beginTableau("+nmr+")"+
-        l0+
-lsi+lsf+"
-endTableau;
-end";
-}
-}else{
-if(ftt==0){if(nz>2){intro+"beginTableau("+nmr+")"+
-        l0+
-li+
-lp+
-lf
-+"
-endTableau;
-end";}else{intro+"beginTableau("+nmr+")"+
-        l0+
-li+
-lf
-+"
-endTableau;
-end";}}else{
-if(nz>2){intro+"beginTableau("+nmr+")"+
-        l0+
-lsi+lsp+lsf+
-li+
-lp+
-lf
-+"
-endTableau;
-end";}else{intro+"beginTableau("+nmr+")"+
-        l0+
-lsi+lsf+
-li+
-lf
-+"
-endTableau;
-end";}
-}};
-
-
-MetaLfc:= if(ftt==2){if(nz>2){"beginTableau("+nmr+")"+
-        l0+lsi+lsp+lsf+"
-endTableau;
-
-";}else{
-"beginTableau("+nmr+")"+
-        l0+
-lsi+lsf+"
-endTableau;
-
-";
-}
-}else{
-if(ftt==0){if(nz>2){"beginTableau("+nmr+")"+
-        l0+
-li+
-lp+
-lf
-+"
-endTableau;
-
-";}else{"beginTableau("+nmr+")"+
-        l0+
-li+
-lf
-+"
-endTableau;
-";}}else{
-if(nz>2){"beginTableau("+nmr+")"+
-        l0+
-lsi+lsp+lsf+
-li+
-lp+
-lf
-+"
-endTableau;
-
-";}else{"beginTableau("+nmr+")"+
-        l0+
-lsi+lsf+
-li+
-lf
-+"
-endTableau;
-
-";}
-}};
-
-
-
-sortie:=fopen("XCasmpfc.mp");
-fprint(sortie,Unquoted,MetaLfc);
-fclose(sortie);
-
-
-return(MetaL);
- }:;
-
-
-
-\end{VerbatimOut}
-
-
-
-
-
-
-
-%%
-%%
-%% Quand les solutions de f'(x)=0 ne sont pas formellement calculables
-%%
-
-
-
-
-\begin{VerbatimOut}[commandchars=?§£]{XcasTVIapp.cxx}
-
-
-TVIapp(L,F,nom,nomv,f,ftt,ao,nmr):={
-
-
-nl:=size(L);
-f:=unapply(f,x);
-fp:=fonction_derivee(f);
-z0:=concat(L,F);z:=sort(z0);
-nz:=size(z);
-if(L==[-infinity,+infinity]){S:=seq(fsolve(fp(x),x,k/10,newton_solver),k=-100..100);}
-else{if(L[0]==-infinity){S:=seq(fsolve(fp(x),x,k/10,newton_solver),k=-100..L[1]);}
-else{if(L[1]==+infinity){S:=seq(fsolve(fp(x),x,k/10,newton_solver),k=L[0]..100);}
-else{S:=seq(fsolve(fp(x),x,k/10,newton_solver),k=z[0]..z[nz-1])}}};
-si size(S)>0 alors   pour j de 0 jusque size(S)-1 faire 
-                             kk:=(re(S[j])==S[j]);kok:=(evalf(S[j])>=L[0]) and (evalf(S[j])<=L[1]);
-                          if(kk==1){if(kok==1){z:=append(z,simplifier(S[j]))}};
-                          fpour;
-fsi;
-
-
-S:=NULL;
-S:=S,z[0];
-for(j:=1;j1e-15 or z[j]==0)){
-   S:=S,z[j]};
-}
-z:=[S];
-
-
-
-Z:=sort(z);
-nz:=size(Z);
-
-S:=NULL;
-S:=S,Z[0];
-for(j:=1;j2){ for(r:=1; r<=nz-2;r++){LP:=LP,if(member(Z[r],F)){limite(f(x),x,Z[r],-1),limite(f(x),x,Z[r],1)}else{f(Z[r])}}};
-if(nz>2){ LL:=[LI,LP,LF]}else{LL:=[LI,LF]};
-      
-NL:=size(LL);
-A:=NULL;aa:=1;kk:=0;
-
-if(NL==nz){for(k:=0;knz){for(k:=0;k evalf(limite(f(x),x=Z[1],-1));
-       kz:=evalf(limite(f(x),x=Z[nz-1],-1))> evalf(limite(f(x),x=Z[nz-2],1));
-                          
-lsi:="
-newLigneSignes(btex $\\hbox{ Signe de }\\atop{\\displaystyle "+nom+"'("+nomv+")}$ etex);"+
-     if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
-                                                    if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
-                                                    if(sign(fp((Z[0]+10^(-10))))==1){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
-                                                         if(sign(fp(10^(-10)+Z[0]))==1){"plus;"}else{"moins;"} }}+if(TestS==0){"valBarre(btex$  $ etex);"+ if(sign(fp(10^(-10)+Z[0]))==1){"plus;"}else{"moins;"}}else{" "}; 
-
-
-
-
- 
-if(nz>2){rr:=1; if(nz==NL){for(r:=1; r<=NL-2;r++){ TestS:=(sign(evalf(LL[r]-ao))==sign(evalf(LL[r+1]-ao))) or (sign(evalf(LL[r]-ao))==0.0)or (sign(evalf(LL[r+1]-ao))==0.0); 
-                                                 ksp:=evalf(fp(Z[r]+0.01))>0;  
-                                                 TestL:=(abs(LL[r])==abs(LL[r+1]));
-                                 lsp:=lsp+if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
-                                  if(ksp==1){"plus;"}else{"moins;"}+if(TestS==0){"valBarre(btex $  $ etex);"}else{" "}+if(TestS==0){if(ksp==1){"plus;"}else{"moins;"}}else{" "};
-                                             }}
-else{for(r:=1; r<=NL-2;r++){kspp:=evalf(fp(Z[rr]+0.01))>0;TestS:=(sign(evalf(LL[r]-ao))==sign(evalf(LL[r+1]-ao))) or (sign(evalf(LL[r]-ao))==0.0)or (sign(evalf(LL[r+1]-ao))==0.0);
-                                          TestL:=(abs(LL[r])==abs(LL[r+1]));
-                      if(TestS==0){if( TestL==1 ){lsp:=lsp}else{lsp:=lsp+if(member(Z[rr],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
-                                  if(kspp==1){"plus;"}else{"moins;"}+"valBarre(btex $  $ etex);"+if(kspp==1){"plus;"}else{"moins;"};rr:=rr+1;}
-                                   } else{lsp:=lsp+if(member(Z[rr],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
-                                  if(kspp==1){"plus;"}else{"moins;"};rr:=rr+1;}        
-}}     
-  }; 
-
-
-
-lsf:=if(member(Z[nz-1],F)==0){""}else{"nomDefBarre;"}
-lm0:=limite(f(x),x=Z[0],1)==-infinity;
-
-TestS:=(sign(evalf(LL[0]-ao))==sign(evalf(LL[1]-ao))) or (sign(evalf(LL[0]-ao))==0.0) or (sign(evalf(LL[1]-ao))==0.0);
-
-     li:="
-newLigneVariations(btex $\\hbox{\\bf Variations de }\\atop{\\displaystyle \\Mathbold{"+nom+"}}$ etex);
-"+  if(member(Z[0],F)==0){"valPos(btex $"+if(lm0==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[0],1)))}+"$ etex,"}
-             else{"nonDefBarre;limDroite(btex $"+if(lm0==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[0],1)))}+"$ etex,"}+                               
-           if(k0==1){"1);"}else{"0);"}+if(TestS==0){"valPos(btex $ "+ao+" $ etex,0.5);"}else{" "}; 
-                         
-            
-                     if(nz>2){if(nz==NL){for(r:=1; r<=nz-2;r++){TestS:=(sign(evalf(LL[r]-ao))==sign(evalf(LL[r+1]-ao))) or (sign(evalf(LL[r]-ao))==0.0)or (sign(evalf(LL[r+1]-ao))==0.0); 
-                                                 krm:=evalf(limite(f(x),x=Z[r-1],1))< evalf(limite(f(x),x=Z[r],-1));
-                                                 krp:=evalf(limite(f(x),x=Z[r],1))> evalf(limite(f(x),x=Z[r+1],-1)) ;  
-                         lmrm:=limite(f(x),x=Z[r],-1)==-infinity;lmrp:=limite(f(x),x=Z[r],1)==-infinity;
-                                                  lp:=lp+if(member(Z[r],F)) {
-                                    "limGauche(btex $"+if(lmrm==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],-1)))}+"$ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
-                                          else{"valPos(btex          $"+latex(simplifier(f(Z[r])))+"$
-                                            etex,"+if(sign(evalf(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);"}}}+if(TestS==0){"valPos(btex
-                                            $ "+ao+" $ etex,0.5);"
-                                                           }else{" "}; 
-};//for
-}else{rr:=1;for(r:=1; r<=NL-2;r++){TestS:=(sign(evalf(LL[r]-ao))==sign(evalf(LL[r+1]-ao))) or (sign(evalf(LL[r]-ao))==0.0)or (sign(evalf(LL[r+1]-ao))==0.0); 
-                                                 krm:=evalf(limite(f(x),x=Z[rr-1],1))< evalf(limite(f(x),x=Z[rr],-1));
-                                                 krp:=evalf(limite(f(x),x=Z[rr],1))> evalf(limite(f(x),x=Z[rr+1],-1)) ;  
-                         lmrm:=limite(f(x),x=Z[rr],-1)==-infinity;lmrp:=limite(f(x),x=Z[rr],1)==-infinity; TestL:=(abs(LL[r])==abs(LL[r+1]));
-if(TestS==0){if( TestL==1 ){lp:=lp}else{  lp:=lp+if(member(Z[rr],F)) {
-                                    "limGauche(btex $"+if(lmrm==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[rr],-1)))}+"$ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[rr],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
-                                          else{"valPos(btex          $"+latex(simplifier(f(Z[rr])))+"$
-                                            etex,"+if(sign(evalf(fp(Z[rr]-0.01)))==sign(fp(Z[rr]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);"}}}+"valPos(btex
-                                            $ "+ao+" $ etex,0.5);
-                                                                 ";rr:=rr+1;
-}// else testL==1
-}//testS==0
-else{lp:=lp+if(member(Z[rr],F)){
-                                    "limGauche(btex $"+if(lmrm==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[rr],-1)))}+"$ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[rr],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
-                                          else{"valPos(btex          $"+latex(simplifier(f(Z[rr])))+"$
-                                            etex,"+if(sign(evalf(fp(Z[rr]-0.01)))==sign(fp(Z[rr]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);
-                                                            "}}};rr:=rr+1;
-}//else testS==0
-}//for nz2
-
-
-lnz:=limite(f(x),x=Z[nz-1],-1)==-infinity;
-                           lf:=if(member(Z[nz-1],F)==0){"valPos(btex $"+if(lnz==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[nz-1],-1)))}+"$ etex,"}else{"nonDefBarre;limGauche(btex $"+if(lnz==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[nz-1],-1)))}+"$ etex,"}+                               
-           if(kz==1){"1);"}else{"0);"};    
-    
-
-
-intro:="
-input tableauVariation;
-verbatimtex
-%&latex
- \\documentclass{article}
-  \\?fonte
- \\usepackage{amsmath}
- \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}}
- \\begin{document}
- etex;
-
-";
-  
-
-MetaL:= if(ftt==2){if(nz>2){intro+"beginTableau("+nmr+")"+
-        l0+lsi+lsp+lsf+"
-endTableau;
-end";}else{
-intro+"beginTableau("+nmr+")"+
-        l0+
-lsi+lsf+"
-endTableau;
-end";
-}
-}else{
-if(ftt==0){if(nz>2){intro+"beginTableau("+nmr+")"+
-        l0+
-li+
-lp+
-lf
-+"
-endTableau;
-end";}else{intro+"beginTableau("+nmr+")"+
-        l0+
-li+
-lf
-+"
-endTableau;
-end";}}else{
-if(nz>2){intro+"beginTableau("+nmr+")"+
-        l0+
-lsi+lsp+lsf+
-li+
-lp+
-lf
-+"
-endTableau;
-end";}else{intro+"beginTableau("+nmr+")"+
-        l0+
-lsi+lsf+
-li+
-lf
-+"
-endTableau;
-end";}
-}};
-
-
-MetaLfc:= if(ftt==2){if(nz>2){"beginTableau("+nmr+")"+
-        l0+lsi+lsp+lsf+"
-endTableau;
-
-";}else{
-"beginTableau("+nmr+")"+
-        l0+
-lsi+lsf+"
-endTableau;
-
-";
-}
-}else{
-if(ftt==0){if(nz>2){"beginTableau("+nmr+")"+
-        l0+
-li+
-lp+
-lf
-+"
-endTableau;
-
-";}else{"beginTableau("+nmr+")"+
-        l0+
-li+
-lf
-+"
-endTableau;
-";}}else{
-if(nz>2){"beginTableau("+nmr+")"+
-        l0+
-lsi+lsp+lsf+
-li+
-lp+
-lf
-+"
-endTableau;
-
-";}else{"beginTableau("+nmr+")"+
-        l0+
-lsi+lsf+
-li+
-lf
-+"
-endTableau;
-
-";}
-}};
-
-
-
-sortie:=fopen("XCasmpfc.mp");
-fprint(sortie,Unquoted,MetaLfc);
-fclose(sortie);
-
-
-return(MetaL);
- }:;
-
-
-
-\end{VerbatimOut}
-
-
-
-
-
-
-
-
-
-
-
-
-
-%%
-%% Code giac/Xcas pour les Tableaux de signes de produits
-%%
-
-
-
-
-\begin{VerbatimOut}[commandchars=?§£]{XcasTabSignL.cxx}
-
-
-TS(L,D,nmr):={
-L:=apply(f->unapply(f,x),L)
-n:=size(L);
-Z:=NULL;
-
-mini:=D[0]; maxi:=D[1];
-
-pour k de 0 jusque n-1 faire 
-  S:=resoudre(L[k](x),x);
-  si size(S)>0 alors  pour j de 0 jusque size(S)-1 faire 
-                          if(S[j]>mini and S[j]2){pour u de 1 jusque nz-2 faire 
-     si Z[u]==Z[u+1] alors Z:=Z[0..u-1],Z[u+1..nz-1];nz:=nz-1;
-     fsi;
-fpour;};
-nz:=size(Z);
-
-if(nz==0){li:="";l0:="val(btex $"+latex(D[0])+"$ etex);val(btex $"+latex(D[1])+"$ etex);";
-          for(p:=0;p<=n-1;p++){li:=li+"
-newLigneSignes(btex $\\hbox{\\bf Signe de }\\atop{\\displaystyle \\Mathbold{"+latex(L[p](x))+"}}$ etex);"+
-if(mini!=-infinity and L[p](mini)==0){"
-                                valBarre(btex 0 etex);"}else{"
-                              "}+ 
-if(L[p]((mini+maxi)*0.5>0)){"plus;"}else{"moins;"}+if(maxi!=+infinity and L[p](maxi)==0){"
-                                valBarre(btex 0 etex);"}else{"
-                              "}
-
-}
-           lf:=if(product(L[s]((mini+maxi)*.5),s,0,n-1)>0){"plus;"}else{"moins;"};
-
-MetaL:=" input tableauVariation;
-           verbatimtex
-%&latex
- \\documentclass{article}
-  \\?fonte
- \\usepackage{amsmath}
- \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}}
- \\begin{document}
- etex;
-
-beginTableau("+nmr+")
-newLigneVariables(btex $\\Mathbold{x}$ etex);
-   "+l0+li+
-    "
- newLigneSignes(btex $\\hbox{\\bf Signe du }\\atop{{\\bf produit}}$ etex);"+
-               if(mini!=-infinity and product(L[s](mini),s,0,n-1)==0){"
-                                valBarre(btex 0 etex);"}else{"
-                              "}+  lf+
-                               if(maxi!=+infinity and product(L[s](maxi),s,0,n-1)==0){"
-                                valBarre(btex 0 etex);"}else{"
-                              "}+"
-endTableau;
-end"
-;
-
-
-MetaLfc:="    beginTableau("+nmr+")
-newLigneVariables(btex $\\Mathbold{x}$ etex);
-   "+l0+li+
-    "
- newLigneSignes(btex $\\hbox{\\bf Signe du }\\atop{{\\bf produit}}$ etex);"+
-               if(mini!=-infinity and product(L[s](mini),s,0,n-1)==0){"
-                                valBarre(btex 0 etex);"}else{"
-                              "}+  lf+
-                               if(maxi!=+infinity and product(L[s](maxi),s,0,n-1)==0){"
-                                valBarre(btex 0 etex);"}else{"
-                              "}+"
-endTableau;
-"
-;
-
-}else{
-
-l0:="val(btex $"+latex(D[0])+"$ etex);";li:=" ";lr:=" "; 
-pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
-";fpour; 
-l0:=l0+"val(btex $"+latex(D[1])+"$ etex);";
-
-
-for(p:=0;p<=n-1;p++){lp:="";                                     
-     li:=li+"
-newLigneSignes(btex $\\hbox{\\bf Signe de }\\atop{\\displaystyle \\Mathbold{"+latex(L[p](x))+"}}$ etex);"+
-           if(mini!=-infinity and L[p](mini)==0){"
-                                valBarre(btex 0 etex);"}else{"
-                              "}+ 
-           if(L[p](Z[0]-0.01)>0){"plus;"}else{"moins;"};
-                               
-                           for(r:=0; r<=nz-2;r++){  
-                             lp:=lp+if(simplifier(L[p](Z[r]))==0){"
-                                valBarre(btex 0 etex);"}else{"barre;
-                              "}+ 
-                             if(L[p]((Z[r]+Z[r+1])*.5)>0){"plus;"}else{"moins;"}};
- 
-                li:=li+lp+ if(simplifier(L[p](Z[nz-1]))==0){"valBarre(btex 0 etex);"}else{"barre;"}+ 
-                          if(L[p](Z[nz-1]+1.0)>0){"plus;"}else{"moins;
-    "}+if(maxi!=+infinity and L[p](maxi)==0){"
-                                valBarre(btex 0 etex);"}else{"
-                              "}
-    };  
-
-
-pour t de 0 jusque nz-2 faire 
-                           lr:=lr+if(product(L[s]((Z[t]+Z[t+1])*.5),s,0,n-1)>0){"plus;"}else{"moins;"}+"valBarre(btex 0 etex);"                    
-                         fpour
-
-MetaL:=" input tableauVariation;
-           verbatimtex
-%&latex
- \\documentclass{article}
-  \\?fonte
- \\usepackage{amsmath}
- \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}}
- \\begin{document}
- etex;
-          beginTableau("+nmr+")
-newLigneVariables(btex $\\Mathbold{x}$ etex);
-   "+l0+
-                     li
-                     +
-    "
- newLigneSignes(btex $\\hbox{\\bf Signe du }\\atop{{\\bf produit}}$ etex);"+
-               if(mini!=-infinity and product(L[s](mini),s,0,n-1)==0){"
-                                valBarre(btex 0 etex);"}else{"
-                              "}+  
-                         if(product(L[s](Z[0]-0.01),s,0,n-1)>0){"plus;"}else{"moins;"}+"valBarre(btex 0 etex);"+
-                         lr+
-                         if(product(L[s](Z[nz-1]+0.01),s,0,n-1)>0){"plus;"}else{"moins;"}+
-                               if(maxi!=+infinity and product(L[s](maxi),s,0,n-1)==0){"
-                                valBarre(btex 0 etex);"}else{"
-                              "}+"
-endTableau;
-end"
-;
-MetaLfc:="  beginTableau("+nmr+")
-newLigneVariables(btex $\\Mathbold{x}$ etex);
-   "+l0+
-                     li
-                     +
-    "
- newLigneSignes(btex $\\hbox{\\bf Signe du }\\atop{{\\bf produit}}$ etex);"+
-               if(mini!=-infinity and product(L[s](mini),s,0,n-1)==0){"
-                                valBarre(btex 0 etex);"}else{"
-                              "}+  
-                         if(product(L[s](Z[0]-0.01),s,0,n-1)>0){"plus;"}else{"moins;"}+"valBarre(btex 0 etex);"+
-                         lr+
-                         if(product(L[s](Z[nz-1]+0.01),s,0,n-1)>0){"plus;"}else{"moins;"}+
-                               if(maxi!=+infinity and product(L[s](maxi),s,0,n-1)==0){"
-                                valBarre(btex 0 etex);"}else{"
-                              "}+"
-endTableau;
-
- ";
-}
-sortie:=fopen("XCasmpfc.mp");
-fprint(sortie,Unquoted,MetaLfc);
-fclose(sortie);
-return(MetaL);
- }:;
-
-\end{VerbatimOut}
-
-
-
-
-%%
-%% Code giac/Xcas pour les Tableaux de signes de quotients
-%%
-
-
-
-\begin{VerbatimOut}[commandchars=?§£]{XcasTabSignQ.cxx}
-TSq(nomf,L,Fo,D,nmr):={
-L:=apply(f->unapply(f,x),L);
-Fo:=apply(f->unapply(f,x),Fo);
-L:=concat(L,Fo);
-n:=size(L);
-Z:=NULL;
-m:=size(Fo);
-F:=NULL;FF:=NULL;
-mini:=D[0]; maxi:=D[1];
-
-
-pour k de 0 jusque n-1 faire 
-  S:=resoudre(L[k](x),x);
-  si size(S)>0 alors   pour j de 0 jusque size(S)-1 faire 
-                          if(S[j]>mini and S[j]0 alors pour j de 0 jusque size(SF)-1 faire 
-                          FF:=FF,simplifier(SF[j]);
-                          if(SF[j]>mini and SF[j]2){pour u de 1 jusque nz-2 faire 
-     si Z[u]==Z[u+1] alors Z:=Z[0..u-1],Z[u+1..nz-1];nz:=nz-1; // pour les zéros en double
-     fsi;
-fpour;}
-
-
-Z:=sort(Z);
-nz:=size(Z);
-if(nz>2){pour u de 1 jusque nz-2 faire 
-     si Z[u]==Z[u+1] alors Z:=Z[0..u-1],Z[u+1..nz-1];nz:=nz-1;
-     fsi;
-fpour;};
-nz:=size(Z);
-
-if(nz==0){li:="";l0:="val(btex $"+latex(D[0])+"$ etex);val(btex $"+latex(D[1])+"$ etex);";
-          for(p:=0;p<=n-1;p++){li:=li+"
-newLigneSignes(btex $\\hbox{\\bf Signe de }\\atop{\\displaystyle \\Mathbold{"+latex(L[p](x))+"}}$ etex);"+
-if(mini!=-infinity and L[p](mini)==0){"
-                                valBarre(btex 0 etex);"}else{"
-                              "}+ 
-if(L[p]((mini+maxi)*0.5>0)){"plus;"}else{"moins;"}+if(maxi!=+infinity and L[p](maxi)==0){"
-                                valBarre(btex 0 etex);"}else{"
-                              "}
-
-}
-           lf:=if(product(L[s]((mini+maxi)*.5),s,0,n-1)>0){"plus;"}else{"moins;"};
-
-MetaL:=" input tableauVariation;
-           verbatimtex
-%&latex
- \\documentclass{article}
-  \\?fonte
- \\usepackage{amsmath}
- \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}}
- \\begin{document}
- etex;
-
-beginTableau("+nmr+")
-newLigneVariables(btex $\\Mathbold{x}$ etex);
-   "+l0+li+
-    "
- newLigneSignes(btex $\\hbox{\\bf Signe }\\atop{{\\bf  de "+nomf+"(x)}}$ etex);"+
-              if(member(mini,FF)==0){if(mini!=-infinity and product(L[s](mini),s,0,n-1)==0){"
-                                valBarre(btex 0 etex);"}else{"
-                              "}}else{"nonDefBarre;"}+  lf+
-                               if(member(maxi,FF)==0){if(maxi!=+infinity and product(L[s](maxi),s,0,n-1)==0){"
-                                valBarre(btex 0 etex);"}else{"
-                              "}}else{"nonDefBarre;"}+"
-endTableau;
-end"
-;
-
-
-
-
-MetaLfc:=" 
-beginTableau("+nmr+")
-newLigneVariables(btex $\\Mathbold{x}$ etex);
-   "+l0+li+
-    "
- newLigneSignes(btex $\\hbox{\\bf Signe }\\atop{{\\bf  de "+nomf+"(x)}}$ etex);"+
-              if(member(mini,FF)==0){if(mini!=-infinity and product(L[s](mini),s,0,n-1)==0){"
-                                valBarre(btex 0 etex);"}else{"
-                              "}}else{"nonDefBarre;"}+  lf+
-                               if(member(maxi,FF)==0){if(maxi!=+infinity and product(L[s](maxi),s,0,n-1)==0){"
-                                valBarre(btex 0 etex);"}else{"
-                              "}}else{"nonDefBarre;"}+"
-endTableau;
-
-"
-;
-
-
-
-
-}else{
-
-
-l0:="val(btex $"+latex(D[0])+"$ etex);";li:=" ";lr:=" "; 
-pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
-";fpour; 
-l0:=l0+"val(btex $"+latex(D[1])+"$ etex);";
-
-
-for(p:=0;p<=n-1;p++){lp:="";                                     
-     li:=li+"
-newLigneSignes(btex $\\hbox{\\bf Signe de }\\atop{\\displaystyle \\Mathbold{"+latex(L[p](x))+"}}$ etex);"+
-           if(mini!=-infinity and L[p](mini)==0){"
-                                valBarre(btex 0 etex);"}else{"
-                              "}+ 
-           if(L[p](Z[0]-0.01)>0){"plus;"}else{"moins;"};
-                               
-                           for(r:=0; r<=nz-2;r++){  
-                             lp:=lp+if(simplifier(L[p](Z[r]))==0){"
-                                valBarre(btex 0 etex);"}else{"barre;
-                              "}+ 
-                             if(L[p]((Z[r]+Z[r+1])*.5)>0){"plus;"}else{"moins;"}};
- 
-                li:=li+lp+ if(simplifier(L[p](Z[nz-1]))==0){"valBarre(btex 0 etex);"}else{"barre;"}+ 
-                          if(L[p](Z[nz-1]+1.0)>0){"plus;"}else{"moins;
-    "}+if(maxi!=+infinity and L[p](maxi)==0){"
-                                valBarre(btex 0 etex);"}else{" "}
-                              
-    };  
-
-
-pour t de 0 jusque nz-2 faire 
-                           lr:=lr+if(product(L[s]((Z[t]+Z[t+1])*.5),s,0,n-1)>0){"plus;"}else{"moins;"}+
-                                      if(member(Z[t+1],FF)==0){"valBarre(btex 0 etex);"}else{ "nonDefBarre;"}                   
-                         fpour
-
-MetaL:=" input tableauVariation;
-verbatimtex
-%&latex
- \\documentclass{article}
-  \\?fonte
- \\usepackage{amsmath}
- \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}}
- \\begin{document}
- etex;
-          beginTableau("+nmr+")
-newLigneVariables(btex $\\Mathbold{x}$ etex);
-   "+l0+
-                     li
-                     +
-    "
- newLigneSignes(btex $\\hbox{\\bf Signe de}\\atop{{\\bf "+nomf+"(x)}}$ etex);"+
-               if(member(mini,FF)==0){if(mini!=-infinity and product(L[s](mini),s,0,n-1)==0){"
-                                valBarre(btex 0 etex);"}else{"
-                              "}}else{"nonDefBarre;"}+  
-                         if(product(L[s](Z[0]-0.01),s,0,n-1)>0){"plus;"}else{"moins;"}+
-                         if(member(Z[0],FF)==0){"valBarre(btex 0 etex);"}else{ "nonDefBarre;"}+
-                         lr+
-                         if(product(L[s](Z[nz-1]+0.01),s,0,n-1)>0){"plus;"}else{"moins;"}+
-                               if(member(maxi,FF)==0){if(maxi!=+infinity and product(L[s](maxi),s,0,n-1)==0){"
-                                valBarre(btex 0 etex);"}else{" "}}else{"nonDefBarre;"}+"
-endTableau;
-end"
-;
-
-
-
-
-MetaLfc:="
-beginTableau("+nmr+")
-newLigneVariables(btex $\\Mathbold{x}$ etex);
-   "+l0+
-                     li
-                     +
-    "
- newLigneSignes(btex $\\hbox{\\bf Signe de}\\atop{{\\bf "+nomf+"(x)}}$ etex);"+
-               if(member(mini,FF)==0){if(mini!=-infinity and product(L[s](mini),s,0,n-1)==0){"
-                                valBarre(btex 0 etex);"}else{"
-                              "}}else{"nonDefBarre;"}+  
-                         if(product(L[s](Z[0]-0.01),s,0,n-1)>0){"plus;"}else{"moins;"}+
-                         if(member(Z[0],FF)==0){"valBarre(btex 0 etex);"}else{ "nonDefBarre;"}+
-                         lr+
-                         if(product(L[s](Z[nz-1]+0.01),s,0,n-1)>0){"plus;"}else{"moins;"}+
-                               if(member(maxi,FF)==0){if(maxi!=+infinity and product(L[s](maxi),s,0,n-1)==0){"
-                                valBarre(btex 0 etex);"}else{" "}}else{"nonDefBarre;"}+"
-endTableau;
-
-"
-
-
-}
-
-
-
-
-sortie:=fopen("XCasmpfc.mp");
-fprint(sortie,Unquoted,MetaLfc);
-fclose(sortie);
-
-
-
-
-
-return(MetaL);
- }:;
-
-\end{VerbatimOut}
-
-
-
-
-%% Code giac/Xcas pour les Tableaux de signes du produit
-%% de 2 facteurs affines
-%%
-
-
-
-
-\begin{VerbatimOut}[commandchars=?§£]{XcasTabSign.cxx}
-TSa(a,b,c,d,nmr):={
-zA:=resoudre(a*x+b=0,x)[0];
-zB:=resoudre(c*x+d=0,x)[0];
-zmin:=min(zA,zB);
-zmax:=max(zA,zB);
-  Meta:= " input tableauVariation;
-           verbatimtex
-%&latex
- \\documentclass{article}
-  \\?fonte
- \\usepackage{amsmath}
- \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}}
- \\begin{document}
- etex;
-          beginTableau("+nmr+")
-   newLigneVariables(btex $\\Mathbold{x}$ etex);
-   val(btex $-\\infty$ etex);val(btex $"+latex(zmin)+"$ etex);
-val(btex $"+latex(zmax)+"$etex);
-val(btex $+\\infty$ etex); 
-   newLigneSignes(btex $\\hbox{\\bf Signe de }\\atop{\\displaystyle \\Mathbold{"+if(a==1){"x+"}else{if(a==-1){"-x+"}else{a+"x+"}}+b+"}}$ etex);"
-        +   if(a>0){"moins;"}else{"plus;"}+
-                                 if(zmin==zA){"valBarre(btex 0 etex);"}else{"barre;"}+
-                                 if(zmin==zA){si a>0 alors "plus;"; sinon "moins;";fsi}
-                                             else{si a>0 alors "moins;"; sinon "plus;"; fsi}+
-                                 if(zmin==zA){"barre;"}else{"valBarre(btex 0 etex);"}+
-                                 if(a>0){"plus;"}else{"moins;"}
-     +" 
-newLigneSignes(btex $\\hbox{\\bf Signe de }\\atop{\\displaystyle \\Mathbold{"+if(c==1){"x+"}else{if(c==-1){"-x+"}else{c+"x+"}}+d+"}}$ etex);"
-        +     if(c>0){"moins"}else{"plus"}+";"+
-                                 if(zmin==zB){"valBarre(btex 0 etex);"}else{"barre;"}+
-                                 if(zmin==zB){si c>0 alors "plus;"; sinon "moins;";fsi}
-                                             else{si c>0 alors "moins;"; sinon "plus;"; fsi}+
-                                 if(zmin==zB){"barre;"}else{"valBarre(btex 0 etex);"}+
-                                 if(c>0){"plus;"}else{"moins;"}  
-     
-   +" 
-newLigneSignes(btex $\\hbox{\\bf Signe de }\\atop{\\displaystyle \\Mathbold{("+if(a==1){"x+"}else{if(a==-1){"-x+"}else{a+"x+"}}+b+")("+if(c==1){"x+"}else{if(c==-1){"-x+"}else{c+"x+"}}+d+")}}$ etex);"
-        +   si a*c>0 alors plus; sinon moins;fsi+";"+
-                                 "valBarre(btex 0 etex);"+
-                                 si a*c>0 alors moins; sinon plus;fsi+";"+
-                                 "valBarre(btex 0 etex);"+
-                                 si a*c>0 alors plus; sinon moins;fsi+";"+"
-endTableau;
-end"
-;
-return(Meta);
- }:;
-\end{VerbatimOut}
-
-
-
-
-
-
-%%
-%% Code giac/Xcas pour les Tableaux de Signes d'expression ne contenant 
-%% qu'un seul terme
-
-
-
-
-\begin{VerbatimOut}[commandchars=?§£]{XcasTSc.cxx}
-TSc(g,D,nmr):={
-f:=unapply(g,x);
-Z:=NULL;
-mini:=D[0]; maxi:=D[1];lm:=" ";
-S:=resoudre(f(x),x);
-if(size(S)==0){
-l0:="val(btex $"+latex(D[0])+"$ etex);val(btex $"+latex(D[1])+"$ etex);";
-li:=if(mini!=-infinity and f(mini)==0){"
-                                valBarre(btex 0 etex);"}else{"
-                              "}+ 
-if(mini!=-infinity or maxi!=+infinity){if(f((mini+maxi)*0.5>0)){"plus;"}else{"moins;"}}else{if(f(0)>0){"plus;"}else{"moins;"}};
-lf:=if(maxi!=+infinity and f(maxi)==0){"
-                                valBarre(btex 0 etex);"}else{"
-                              "};
-}
-else{pour j de 0 jusque size(S)-1 faire 
-                           if(S[j]>mini and S[j]2){pour u de 1 jusque nz-2 faire 
-     si Z[u]==Z[u+1] alors Z:=Z[0..u-1],Z[u+1..nz-1];nz:=nz-1;
-     fsi;
-fpour;}
-
-
-nz:=size(Z);
-l0:=" ";li:=" ";lr:=" "; 
-if(nz==0){l0:="val(btex $"+latex(D[0])+"$ etex);val(btex $"+latex(D[1])+"$ etex);";
-li:=if(mini!=-infinity and f(mini)==0){"
-                                valBarre(btex 0 etex);"}else{"
-                              "}+ 
-if(f((mini+maxi)*0.5>0)){"plus;"}else{"moins;"};
-lf:=if(maxi!=+infinity and f(maxi)==0){"
-                                valBarre(btex 0 etex);"}else{"
-                              "};
-
-}else{
-l0:="val(btex $"+latex(D[0])+"$ etex);";li:=" ";
-pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
-";
-fpour; 
-l0:=l0+"val(btex $"+latex(D[1])+"$ etex);";
-                                     
-li:= if(mini!=-infinity and f(mini)==0){"
-                                valBarre(btex 0 etex);"}else{"
-                              "}+ 
-if(f(Z[0]-0.01)>0){"plus;"}else{"moins;"}+"valBarre(btex 0 etex);";                               
-
-lm:=if(nz>=2){for(r:=0; r<=nz-2;r++){lm:=lm+if(f((Z[r]+Z[r+1])*.5)>0){"plus;"}else{"moins;"}+
-                                      "valBarre(btex 0 etex);" 
-                           }}else{" "}; 
-
-lf:=if(f(Z[nz-1]+1.0)>0){"plus;"}else{"moins;"}+if(maxi!=+infinity and f(maxi)==0){"valBarre(btex 0 etex);"}else{"
-                              "};
-}};  
-
-
-MetaL:=" input tableauVariation;
-           verbatimtex
-%&latex
- \\documentclass{article}
-  \\?fonte
- \\usepackage{amsmath}
- \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}}
- \\begin{document}
- etex;
-beginTableau("+nmr+")
-newLigneVariables(btex $\\Mathbold{x}$ etex);
-   "+l0+"
-newLigneSignes(btex $\\hbox{\\bf Signe de }\\atop{\\displaystyle \\Mathbold{"+latex(f(x))+"}}$ etex);"+
-                     li+lm+lf
-                     +"
-endTableau;
-end"
-;
-
-
-MetaLfc:="
-
-beginTableau("+nmr+")
-newLigneVariables(btex $\\Mathbold{x}$ etex);
-   "+l0+"
-newLigneSignes(btex $\\hbox{\\bf Signe de }\\atop{\\displaystyle \\Mathbold{"+latex(f(x))+"}}$ etex);"+
-                     li+lm+lf
-                     +"
-endTableau;
-
-"
-;
-
-
-
-
-sortie:=fopen("XCasmpfc.mp");
-fprint(sortie,Unquoted,MetaLfc);
-fclose(sortie);
-
-
-
-
-return(MetaL);
- }:;
-\end{VerbatimOut}
-
-
-
-
-
-
-
-%%
-%%
-%% traitement des fichiers produits par giac/xcas
-%%
-%%
-
-
-
-
-
-\newcommand{\dresse}[1]{%
-\ifthenelse{\boolean{xcas}}{%        Avec l'option "XCas présent"
-         \executGiacmp{XCas#1.giac}% reconstituer le tableau
-                                   % exporter le source mp
-                                   % puis lancer metapost pour créer
-                                   % l'image du tableau
-         \immediate\write18{\cat XCasmpfc.mp >> \Tableaux.Tab.mp}
-         \immediate\write18{mpost -interaction=batchmode -jobname=\Tableaux.Tab  XCasmp#1}}%
-         {% sinon, si le tableau est absent, alerte.
-         \IfFileExists{\Tableaux.Tab.\theTVn}{}{% 
-         \PackageError{tablor}{Tableau absent non
-         reconstituable.}{Pour compiler il faut, soit les fichiers de
-         tableaux, soit le fichier \Tableaux.Tab.mp, soit disposer de
-         XCas.}}}
-                
-\begin{center}
-  \includegraphics{\Tableaux.Tab.\theTVn}
-\end{center}
-\stepcounter{TVn}}
-
-
-%%
-%% traitement des fichiers produits par giac/xcas avec possibilité
-%% de modifier le fichier metapost (environnement étoilé))
-%%
-
-
-
-\newcommand{\dressetoile}[1]{%
-\IfFileExists{\Tableaux.Tab.\theTVn}{% Test sur l'existence du tableau
-% Si oui, inclusion du fichier source de sauvegarde mp dans Tableaux
-\immediate\write18{\cat TSav-\theTVn.mp >> \Tableaux.Tab.mp}}
-% Si  non,  lancement des opérations de fabrication 
-{\executGiacmp{XCas#1.giac}% 
-\immediate\write18{\editeur XCasmpfc.mp}
-
-  % Modification avec l'éditeur choisi
-
-\immediate\write18{\cp -f XCasmpfc.mp TSav-\theTVn.mp}   % Sauvegarde du 
-                                 % source mp sur le disque pour une
-                                 % inclusion ultérieure dans Tableaux.mp. 
-\immediate\write18{\cat XCasmpfc.mp >> \Tableaux.Tab.mp}} % Inclusion du
-                                                     % source dans le
-                                                     % fichier
-                                                     % Tableaux 
-
-\immediate\write18{mpost -interaction=batchmode \Tableaux.Tab}% Reconstitution des tableaux
-                                % et création du dernier. L'option
-                                % pallie l'absence de end en fin de
-                                % fichier 
-
-\begin{center}
-  \includegraphics{\Tableaux.Tab.\theTVn}
-\end{center}
-
-\setcounter{TVn}{\theTVnbis}    % Restauration du compteur TVn
-}
-
-
-
-
-
-
-
-%%
-%%
-%%%
-%%%
-%%% les "giac" qui permettent d'exécuter la commande rentrée dans le fichier tex
-%%% suivis des environnements qui permettront la saisie du code giac/xcas
-%%% Les versions étoilées permettent de modifier le code metapost produit initialement
-%%%
-
-
-
-
-\begin{VerbatimOut}{XCas.giac}
-maple_mode(0);
-read("XcasTabSign.cxx");
-Sortie:=fopen("XCasmp.mp");
-vect.xcas.user := read("XCas.user");
-vxo := vect.xcas.user;
-dim.vxo := dim(vxo);
-nbr.line.vxo := dim.vxo;
-Resultat:=cat(" "); 
-rslt := vxo[0]; RslT:=cat(rslt);
-Resultat:=cat(Resultat,RslT);
-fprint(Sortie,Unquoted,Resultat);
-fclose(Sortie);
-\end{VerbatimOut}
-
-\newenvironment{TSa}
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCas.user}}
-{\end{VerbatimOut}
-          \dresse{}
-}
-
-
-
-
-
-
-
-
-
-\begin{VerbatimOut}{XCasQ.giac}
-maple_mode(0);
-read("XcasTabSignQ.cxx");
-Sortie:=fopen("XCasmpQ.mp");
-vect.xcas.user := read("XCasQ.user");
-vxo := vect.xcas.user;
-dim.vxo := dim(vxo);
-nbr.line.vxo := dim.vxo;
-Resultat:=cat(" "); 
-rslt := vxo[0]; RslT:=cat(rslt);
-Resultat:=cat(Resultat,RslT);
-fprint(Sortie,Unquoted,Resultat);
-fclose(Sortie);
-\end{VerbatimOut}
-
-\newenvironment{TSq}%
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasQ.user}}
-{\end{VerbatimOut}\dresse{Q}}
-
-
-
-\newenvironment{TSq*}[1]%
-{\setcounter{TVnbis}{\theTVn}
-\setcounter{TVn}{#1}
-\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasQ.user}}
-{\end{VerbatimOut}\dressetoile{Q}}
-
-
-\begin{VerbatimOut}{XCasL.giac}
-maple_mode(0);
-read("XcasTabSignL.cxx");
-Sortie:=fopen("XCasmpL.mp");
-vect.xcas.user := read("XCasL.user");
-vxo := vect.xcas.user;
-dim.vxo := dim(vxo);
-nbr.line.vxo := dim.vxo;
-Resultat:=cat(" "); 
-rslt := vxo[0]; RslT:=cat(rslt);
-Resultat:=cat(Resultat,RslT);
-fprint(Sortie,Unquoted,Resultat);
-fclose(Sortie);
-\end{VerbatimOut}
-
-\newenvironment{TS}%
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasL.user}}
-{\end{VerbatimOut}\dresse{L}}
-
-
-\newenvironment{TS*}[1]
-{\setcounter{TVnbis}{\theTVn}
-\setcounter{TVn}{#1}
-\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasL.user}}
-{\end{VerbatimOut}\dressetoile{L}}
-
-
-\begin{VerbatimOut}{XCasTSc.giac}
-maple_mode(0);
-read("XcasTSc.cxx");
-Sortie:=fopen("XCasmpTSc.mp");
-vect.xcas.user := read("XCasTSc.user");
-vxo := vect.xcas.user;
-dim.vxo := dim(vxo);
-nbr.line.vxo := dim.vxo;
-Resultat:=cat(" "); 
-rslt := vxo[0]; RslT:=cat(rslt);
-Resultat:=cat(Resultat,RslT);
-fprint(Sortie,Unquoted,Resultat);
-fclose(Sortie);
-\end{VerbatimOut}
-
-
-
-
-\newenvironment{TSc*}[1]%
-{\setcounter{TVnbis}{\theTVn}
-\setcounter{TVn}{#1}
-\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTSc.user}}
-{\end{VerbatimOut}\dressetoile{TSc}}
-
-
-\newenvironment{TSc}%
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTSc.user}}
-{\end{VerbatimOut}\dresse{TSc}}
-
-
-\begin{VerbatimOut}{XCasTV.giac}
-maple_mode(0);
-read("XcasTV.cxx");
-Sortie:=fopen("XCasmpTV.mp");
-vect.xcas.user := read("XCasTV.user");
-vxo := vect.xcas.user;
-dim.vxo := dim(vxo);
-nbr.line.vxo := dim.vxo;
-Resultat:=cat(" "); 
-rslt := vxo[0]; RslT:=cat(rslt);
-Resultat:=cat(Resultat,RslT);
-fprint(Sortie,Unquoted,Resultat);
-fclose(Sortie);
-\end{VerbatimOut}
-
-\newenvironment{TV}%
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTV.user}}%
-{\end{VerbatimOut}
-\dresse{TV}}
-
-\newenvironment{TV*}[1]{%
-\setcounter{TVnbis}{\theTVn}
-\setcounter{TVn}{#1}
-\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTV.user}}%
-{\end{VerbatimOut}\dressetoile{TV}}
-
-
-
-
-
-
-
-
-
-
-
-\begin{VerbatimOut}{XCasTVZ.giac}
-maple_mode(0);
-read("XcasTVZ.cxx");
-Sortie:=fopen("XCasmpTVZ.mp");
-vect.xcas.user := read("XCasTVZ.user");
-vxo := vect.xcas.user;
-dim.vxo := dim(vxo);
-nbr.line.vxo := dim.vxo;
-Resultat:=cat(" "); 
-rslt := vxo[0]; RslT:=cat(rslt);
-Resultat:=cat(Resultat,RslT);
-fprint(Sortie,Unquoted,Resultat);
-fclose(Sortie);
-\end{VerbatimOut}
-
-\newenvironment{TVZ}%
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVZ.user}}%
-{\end{VerbatimOut}
-\dresse{TVZ}}
-
-\newenvironment{TVZ*}[1]{%
-\setcounter{TVnbis}{\theTVn}
-\setcounter{TVn}{#1}
-\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVZ.user}}%
-{\end{VerbatimOut}\dressetoile{TVZ}}
-
-
-
-
-
-
-
-
-
-
-\begin{VerbatimOut}{XCasTVapp.giac}
-maple_mode(0);
-read("XcasTVapp.cxx");
-Sortie:=fopen("XCasmpTVapp.mp");
-vect.xcas.user := read("XCasTVapp.user");
-vxo := vect.xcas.user;
-dim.vxo := dim(vxo);
-nbr.line.vxo := dim.vxo;
-Resultat:=cat(" "); 
-rslt := vxo[0]; RslT:=cat(rslt);
-Resultat:=cat(Resultat,RslT);
-fprint(Sortie,Unquoted,Resultat);
-fclose(Sortie);
-\end{VerbatimOut}
-
-\newenvironment{TVapp}%
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVapp.user}}%
-{\end{VerbatimOut}
-\dresse{TVapp}}
-
-\newenvironment{TVapp*}[1]{%
-\setcounter{TVnbis}{\theTVn}
-\setcounter{TVn}{#1}
-\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVapp.user}}%
-{\end{VerbatimOut}\dressetoile{TVapp}}
-
-
-
-
-
-
-
-
-
-
-
-\begin{VerbatimOut}{XCasTVI.giac}
-maple_mode(0);
-read("XcasTVI.cxx");
-Sortie:=fopen("XCasmpTVI.mp");
-vect.xcas.user := read("XCasTVI.user");
-vxo := vect.xcas.user;
-dim.vxo := dim(vxo);
-nbr.line.vxo := dim.vxo;
-Resultat:=cat(" "); 
-rslt := vxo[0]; RslT:=cat(rslt);
-Resultat:=cat(Resultat,RslT);
-fprint(Sortie,Unquoted,Resultat);
-fclose(Sortie);
-\end{VerbatimOut}
-
-\newenvironment{TVI}%
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVI.user}}%
-{\end{VerbatimOut}\dresse{TVI}}
-
-
-\newenvironment{TVI*}[1]%
-{\setcounter{TVnbis}{\theTVn}
-\setcounter{TVn}{#1}
-\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVI.user}}%
-{\end{VerbatimOut}\dressetoile{TVI}}
-
-
-
-
-
-
-\begin{VerbatimOut}{XCasTVIapp.giac}
-maple_mode(0);
-read("XcasTVIapp.cxx");
-Sortie:=fopen("XCasmpTVIapp.mp");
-vect.xcas.user := read("XCasTVIapp.user");
-vxo := vect.xcas.user;
-dim.vxo := dim(vxo);
-nbr.line.vxo := dim.vxo;
-Resultat:=cat(" "); 
-rslt := vxo[0]; RslT:=cat(rslt);
-Resultat:=cat(Resultat,RslT);
-fprint(Sortie,Unquoted,Resultat);
-fclose(Sortie);
-\end{VerbatimOut}
-
-\newenvironment{TVIapp}%
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVIapp.user}}%
-{\end{VerbatimOut}\dresse{TVIapp}}
-
-
-\newenvironment{TVIapp*}[1]%
-{\setcounter{TVnbis}{\theTVn}
-\setcounter{TVn}{#1}
-\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVIapp.user}}%
-{\end{VerbatimOut}\dressetoile{TVIapp}}
-
-
-
-
-
-
-
-%%
-%% Zi end -> enjoy :)
-- 
cgit v1.2.3