From c6168f59843ce21988e1c11aae4861378182fdfb Mon Sep 17 00:00:00 2001
From: Manuel Pégourié-Gonnard <mpg@elzevir.fr>
Date: Tue, 13 May 2008 19:05:08 +0000
Subject: tablor v2.03

git-svn-id: svn://tug.org/texlive/trunk@8112 c570f23f-e606-0410-a88d-b1316a301751
---
 Master/texmf-dist/tex/latex/tablor/tablor.sty | 336 ++++++++++++++++++++++++--
 1 file changed, 310 insertions(+), 26 deletions(-)

(limited to 'Master/texmf-dist/tex/latex/tablor/tablor.sty')

diff --git a/Master/texmf-dist/tex/latex/tablor/tablor.sty b/Master/texmf-dist/tex/latex/tablor/tablor.sty
index 4b5a9e57334..d42c65e07c4 100644
--- a/Master/texmf-dist/tex/latex/tablor/tablor.sty
+++ b/Master/texmf-dist/tex/latex/tablor/tablor.sty
@@ -1,6 +1,6 @@
 
 \NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesPackage{tablor}[24/03/2008 v2.01 la machine � cr�er des tableaux de signes et variations]
+\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
@@ -75,6 +75,7 @@
 \newboolean{windows}\setboolean{windows}{false}
 
 
+
 %% on configure  tablor  dans un fichier ext�rieur pour la plateforme
 %% et l'�diteur
 
@@ -94,15 +95,16 @@
 
 
 
+
 %% En-t�te pour le fichier metapost contenant les codes 
 %% de tous les tableaux produits
 
- \begin{VerbatimOut}{tete.mp}
+ \begin{VerbatimOut}[commandchars=?��]{tete.mp}
   input tableauVariation;
   verbatimtex
 %&latex
      \documentclass{article}
-     \usepackage[upright]{fourier}
+      \\?fonte
      \usepackage{amsmath}
      \newcommand{\Mathbold}[1]{\mbox{\boldmath$#1$\unboldmath}}
      \begin{document}
@@ -110,6 +112,8 @@
 
   \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
@@ -191,15 +195,12 @@
 
 
 
-
-
-
 %%
 %% Code giac/Xcas pour les Tableaux de Variations
 %%
 
 
-\begin{VerbatimOut}{XcasTV.cxx}
+\begin{VerbatimOut}[commandchars=?��]{XcasTV.cxx}
 TV(L,F,nom,nomv,f,ftt,nmr):={
 nl:=size(L);
 f:=unapply(f,x);
@@ -250,11 +251,13 @@ newLigneVariations(btex $\\hbox{\\bf Variations de }\\atop{\\displaystyle \\Math
            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));
+                     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);"}}
+                                    "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);
 "}}}
@@ -270,7 +273,7 @@ intro:="input tableauVariation;
            verbatimtex
 %&latex
  \\documentclass{article}
- \\usepackage[upright]{fourier}
+ \\?fonte
  \\usepackage{amsmath}
  \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}}
  \\begin{document}
@@ -386,7 +389,249 @@ 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]<L[1]){Imax:=FF[1];LL:=L}else{Imax:=L[1];LL:=[L[0]]};
+FF:=[Imin,Imax];
+f:=unapply(f,x);
+fp:=fonction_derivee(f);
+Z:=concat(LL,F);
+Z:=concat(Z,FF);
+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));
+                             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;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;
+}
+}
+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]==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}
 
 
 %%
@@ -396,7 +641,7 @@ return(MetaL);
 
 
 
-\begin{VerbatimOut}{XcasTVapp.cxx}
+\begin{VerbatimOut}[commandchars=?��]{XcasTVapp.cxx}
 
 
 
@@ -493,7 +738,7 @@ intro:="input tableauVariation;
            verbatimtex
 %&latex
  \\documentclass{article}
- \\usepackage[upright]{fourier}
+  \\?fonte
  \\usepackage{amsmath}
  \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}}
  \\begin{document}
@@ -629,7 +874,7 @@ return(MetaL);
 
 
 
-\begin{VerbatimOut}{XcasTVI.cxx}
+\begin{VerbatimOut}[commandchars=?��]{XcasTVI.cxx}
 
 
 TVI(L,F,nom,nomv,f,ftt,ao,nmr):={
@@ -769,7 +1014,7 @@ input tableauVariation;
 verbatimtex
 %&latex
  \\documentclass{article}
- \\usepackage[upright]{fourier}
+  \\?fonte
  \\usepackage{amsmath}
  \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}}
  \\begin{document}
@@ -898,7 +1143,7 @@ return(MetaL);
 
 
 
-\begin{VerbatimOut}{XcasTVIapp.cxx}
+\begin{VerbatimOut}[commandchars=?��]{XcasTVIapp.cxx}
 
 
 TVIapp(L,F,nom,nomv,f,ftt,ao,nmr):={
@@ -1059,7 +1304,7 @@ input tableauVariation;
 verbatimtex
 %&latex
  \\documentclass{article}
- \\usepackage[upright]{fourier}
+  \\?fonte
  \\usepackage{amsmath}
  \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}}
  \\begin{document}
@@ -1193,7 +1438,7 @@ return(MetaL);
 
 
 
-\begin{VerbatimOut}{XcasTabSignL.cxx}
+\begin{VerbatimOut}[commandchars=?��]{XcasTabSignL.cxx}
 
 
 TS(L,D,nmr):={
@@ -1235,7 +1480,7 @@ MetaL:=" input tableauVariation;
            verbatimtex
 %&latex
  \\documentclass{article}
- \\usepackage[upright]{fourier}
+  \\?fonte
  \\usepackage{amsmath}
  \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}}
  \\begin{document}
@@ -1310,7 +1555,7 @@ MetaL:=" input tableauVariation;
            verbatimtex
 %&latex
  \\documentclass{article}
- \\usepackage[upright]{fourier}
+  \\?fonte
  \\usepackage{amsmath}
  \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}}
  \\begin{document}
@@ -1371,7 +1616,7 @@ return(MetaL);
 
 
 
-\begin{VerbatimOut}{XcasTabSignQ.cxx}
+\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);
@@ -1436,7 +1681,7 @@ MetaL:=" input tableauVariation;
            verbatimtex
 %&latex
  \\documentclass{article}
- \\usepackage[upright]{fourier}
+  \\?fonte
  \\usepackage{amsmath}
  \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}}
  \\begin{document}
@@ -1520,7 +1765,7 @@ MetaL:=" input tableauVariation;
 verbatimtex
 %&latex
  \\documentclass{article}
- \\usepackage[upright]{fourier}
+  \\?fonte
  \\usepackage{amsmath}
  \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}}
  \\begin{document}
@@ -1598,7 +1843,7 @@ return(MetaL);
 
 
 
-\begin{VerbatimOut}{XcasTabSign.cxx}
+\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];
@@ -1608,7 +1853,7 @@ zmax:=max(zA,zB);
            verbatimtex
 %&latex
  \\documentclass{article}
- \\usepackage[upright]{fourier}
+  \\?fonte
  \\usepackage{amsmath}
  \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}}
  \\begin{document}
@@ -1660,7 +1905,7 @@ return(Meta);
 
 
 
-\begin{VerbatimOut}{XcasTSc.cxx}
+\begin{VerbatimOut}[commandchars=?��]{XcasTSc.cxx}
 TSc(g,D,nmr):={
 f:=unapply(g,x);
 Z:=NULL;
@@ -1725,7 +1970,7 @@ MetaL:=" input tableauVariation;
            verbatimtex
 %&latex
  \\documentclass{article}
- \\usepackage[upright]{fourier}
+  \\?fonte
  \\usepackage{amsmath}
  \\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}}
  \\begin{document}
@@ -2006,6 +2251,45 @@ fclose(Sortie);
 
 
 
+
+
+
+
+\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");
-- 
cgit v1.2.3

