From c6168f59843ce21988e1c11aae4861378182fdfb Mon Sep 17 00:00:00 2001 From: Manuel Pégourié-Gonnard 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]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} %% @@ -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