summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorManuel Pégourié-Gonnard <mpg@elzevir.fr>2008-05-16 16:13:11 +0000
committerManuel Pégourié-Gonnard <mpg@elzevir.fr>2008-05-16 16:13:11 +0000
commit68c951c7f1014e7cfe936aa3de9e0b992280be10 (patch)
tree9408e2f89f85491587ba3350ce814f92bb3a5394 /Master
parent5fb6577c47cfacface48ccd80ba4b532b603cb08 (diff)
tablor v2.05 (2008/05/14)
git-svn-id: svn://tug.org/texlive/trunk@8181 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/latex/tablor/Figures.zipbin161346 -> 175060 bytes
-rw-r--r--Master/texmf-dist/doc/latex/tablor/tablor.html356
-rw-r--r--Master/texmf-dist/doc/latex/tablor/tablor.pdfbin331007 -> 469785 bytes
-rw-r--r--Master/texmf-dist/doc/latex/tablor/tablor.tex332
-rw-r--r--Master/texmf-dist/tex/latex/tablor/tablor.cfg8
-rw-r--r--Master/texmf-dist/tex/latex/tablor/tablor.sty140
-rw-r--r--Master/texmf-dist/tex/latex/tablor/tablorutf8.sty2393
7 files changed, 510 insertions, 2719 deletions
diff --git a/Master/texmf-dist/doc/latex/tablor/Figures.zip b/Master/texmf-dist/doc/latex/tablor/Figures.zip
index c9be5218fe3..ae85df1bd44 100644
--- a/Master/texmf-dist/doc/latex/tablor/Figures.zip
+++ b/Master/texmf-dist/doc/latex/tablor/Figures.zip
Binary files 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 @@
<pre>
<span class="font-latex-sedate">\NeedsTeXFormat</span>{LaTeX2e}[1995/12/01]
-<span class="font-latex-sedate">\ProvidesPackage</span>{tablor}[24/03/2008 v2.03 la machine &#224; cr&#233;er des tableaux de signes et variations]
+<span class="font-latex-sedate">\ProvidesPackage</span>{<span class="flyspell-duplicate">tablor</span>}[14/05/2008 v2.05 la machine &#224; cr&#233;er des tableaux de signes et variations]
<span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\copyleft</span></span><span class="comment"> Connan le Barbare </span><span class="font-latex-sedate"><span class="comment">\copyright</span></span><span class="comment">
</span><span class="comment-delimiter">% </span><span class="comment">avec l'efficace participation de Jean-Michel </span><span class="comment"><span class="flyspell-incorrect">Boucart</span></span><span class="comment">
</span>
-<span class="comment-delimiter">%% </span><span class="comment">Cr&#233;e 14 environnements :
+<span class="comment-delimiter">%% </span><span class="comment">Cr&#233;e 16 environnements :
</span><span class="comment-delimiter">%% </span><span class="comment">tableau de signes de 2 facteurs affines
</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\begin</span></span><span class="comment">{TSa}
</span><span class="comment-delimiter">% </span><span class="comment">TSa(-2,3,-1,5,</span><span class="font-latex-sedate"><span class="comment">\tv</span></span><span class="comment">);
@@ -110,7 +116,14 @@
</span><span class="comment-delimiter">% </span><span class="comment">TV([0,+infinity],[0],"h","x",ln(x)-(ln(x))^2,1,</span><span class="font-latex-sedate"><span class="comment">\tv</span></span><span class="comment">)
</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\end</span></span><span class="comment">{TV}
</span><span class="comment-delimiter">%</span><span class="comment">
-</span><span class="comment-delimiter">% </span><span class="comment">tableau avec valeurs </span><span class="comment"><span class="flyspell-incorrect">interm&#233;diares</span></span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="comment">tableau de variation avec zones interdites
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\begin</span></span><span class="comment">{TVZ}
+</span><span class="comment-delimiter">% </span><span class="comment">TVZ([-infinity,+infinity],[],[[-1,1]],"f","x",sqrt(x^2-1),1,</span><span class="font-latex-sedate"><span class="comment">\tv</span></span><span class="comment">)
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\end</span></span><span class="comment">{TVZ}
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="comment">tableau avec valeurs interm&#233;diares
</span><span class="comment-delimiter">%</span><span class="font-latex-sedate"><span class="comment">\begin</span></span><span class="comment">{TVI}
</span><span class="comment-delimiter">%</span><span class="comment">TVI([-1,+infinity],[-1],"f","x",x2/sqrt(x+1)-1,1,2,</span><span class="font-latex-sedate"><span class="comment">\tv</span></span><span class="comment">)
</span><span class="comment-delimiter">%</span><span class="font-latex-sedate"><span class="comment">\end</span></span><span class="comment">{TVI}
@@ -144,29 +157,29 @@
</span>
<span class="font-latex-sedate">\RequirePackage</span>{ifthen}
-<span class="font-latex-sedate">\RequirePackage</span>{fancyvrb}
-<span class="font-latex-sedate">\RequirePackage</span>{ifpdf}
+<span class="font-latex-sedate">\RequirePackage</span>{<span class="flyspell-incorrect">fancyvrb</span>}
+<span class="font-latex-sedate">\RequirePackage</span>{<span class="flyspell-duplicate">ifpdf</span>}
<span class="comment-delimiter">% </span><span class="comment">option xcas pr&#233;sent
</span>
-<span class="font-latex-sedate">\newboolean</span>{xcas}<span class="font-latex-sedate">\setboolean</span>{xcas}{false}
+<span class="font-latex-sedate">\newboolean</span>{xcas}<span class="font-latex-sedate">\setboolean</span>{xcas}{<span class="flyspell-duplicate">false</span>}
<span class="font-latex-sedate">\DeclareOption</span>{xcas}{<span class="font-latex-sedate">\setboolean</span>{xcas}{true}}
-<span class="comment-delimiter">%% </span><span class="comment">Initialisation du choix d'OS
-</span><span class="font-latex-sedate">\newboolean</span>{windows}<span class="font-latex-sedate">\setboolean</span>{windows}{false}
+<span class="comment-delimiter">%% </span><span class="comment">Initialisation du choix </span><span class="comment"><span class="flyspell-incorrect">d'OS</span></span><span class="comment">
+</span><span class="font-latex-sedate">\newboolean</span>{windows}<span class="font-latex-sedate">\setboolean</span>{windows}{<span class="flyspell-duplicate">false</span>}
-<span class="comment-delimiter">%% </span><span class="comment">on configure tablor dans un fichier ext&#233;rieur pour la plateforme
+<span class="comment-delimiter">%% </span><span class="comment">on configure tablor dans un fichier ext&#233;rieur pour la </span><span class="comment"><span class="flyspell-incorrect">plateforme</span></span><span class="comment">
</span><span class="comment-delimiter">%% </span><span class="comment">et l'&#233;diteur
</span>
-<span class="font-latex-sedate">\IfFileExists</span>{tablor.cfg}{<span class="font-latex-sedate"><span class="keyword">\input</span></span><span class="constant">{tablor.cfg}</span>}<span class="comment">%</span><span class="font-latex-sedate"><span class="comment">\typeout</span></span><span class="comment">{pas de fichier tablor.cfg}}
+<span class="font-latex-sedate">\IfFileExists</span>{tablor.cfg}{<span class="font-latex-sedate"><span class="keyword">\input</span></span><span class="constant">{tablor.cfg}</span>}<span class="comment">%</span><span class="font-latex-sedate"><span class="comment">\typeout</span></span><span class="comment">{pas de fichier tablor.</span><span class="comment"><span class="flyspell-duplicate">cfg</span></span><span class="comment">}}
</span>
<span class="font-latex-sedate">\ProcessOptions</span><span class="font-latex-sedate">\relax</span>
-<span class="comment-delimiter">%% </span><span class="comment">pour ceux compilant via pdflatex
+<span class="comment-delimiter">%% </span><span class="comment">pour ceux compilant via </span><span class="comment"><span class="flyspell-incorrect">pdflatex</span></span><span class="comment">
</span>
<span class="font-latex-sedate">\ifpdf</span>
<span class="font-latex-sedate">\DeclareGraphicsRule</span>{*}{mps}{*}{}
@@ -174,7 +187,7 @@
<span class="comment-delimiter">%% </span><span class="comment">pour nettoyer les fichiers auxiliaires
</span>
-<span class="font-latex-sedate">\AtEndDocument</span>{<span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\rem</span> tete.* *.user XCas* Xcas* *.mpx}}
+<span class="font-latex-sedate">\AtEndDocument</span>{<span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\rem</span> tete.* *.user XCas* Xcas* *.<span class="flyspell-incorrect">mpx</span>}}
@@ -182,16 +195,16 @@
<span class="comment-delimiter">%% </span><span class="comment">En-t&#234;te pour le fichier metapost contenant les codes
</span><span class="comment-delimiter">%% </span><span class="comment">de tous les tableaux produits
</span>
- <span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=?&#167;&#163;]{tete.mp}
+ <span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=?WW]{tete.mp}
input tableauVariation;
verbatimtex
<span class="comment-delimiter">%</span><span class="comment">&amp;latex
</span> <span class="font-latex-sedate"><span class="keyword">\documentclass</span></span><span class="function-name">{article}</span>
- <span class="font-latex-warning">\\</span>?fonte
+ \?fonte
<span class="font-latex-sedate"><span class="keyword">\usepackage</span></span><span class="function-name">{amsmath}</span>
<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\Mathbold</span></span><span class="function-name">}</span>[1]{<span class="font-latex-sedate"><span class="keyword">\mbox</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\boldmath</span></span><span class="function-name"><span class="font-latex-math">$#1$</span></span><span class="font-latex-sedate"><span class="function-name">\unboldmath</span></span><span class="function-name">}</span>}
<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{document}</span>
- etex
+ <span class="flyspell-duplicate">etex</span>
<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
@@ -203,17 +216,17 @@
</span>
<span class="comment-delimiter">%% </span><span class="comment">D&#233;finit des commandes disque selon l'OS utilis&#233;
-</span><span class="font-latex-sedate">\ifthenelse</span>{<span class="font-latex-sedate">\boolean</span>{windows}}<span class="comment">%
+</span><span class="font-latex-sedate">\ifthenelse</span>{<span class="font-latex-sedate">\boolean</span>{<span class="flyspell-duplicate">windows</span>}}<span class="comment">%
</span> {<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\rem</span></span><span class="function-name">}</span>{DEL } <span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\cat</span></span><span class="function-name">}</span>{TYPE }
<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\cp</span></span><span class="function-name">}</span>{COPY }}<span class="comment">%
-</span> {<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\rem</span></span><span class="function-name">}</span>{rm }<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\cat</span></span><span class="function-name">}</span>{cat }
- <span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\cp</span></span><span class="function-name">}</span>{cp }}
+</span> {<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\rem</span></span><span class="function-name">}</span>{rm }<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\cat</span></span><span class="function-name">}</span>{<span class="flyspell-duplicate">cat</span> }
+ <span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\cp</span></span><span class="function-name">}</span>{<span class="flyspell-duplicate">cp</span> }}
<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\nettoyer</span></span><span class="function-name">}</span>[1][<span class="font-latex-sedate">\jobname</span>]<span class="comment">%
</span>{<span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\rem</span> #1.Tab.log}
-<span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{echo end &gt;&gt; #1.Tab.mp}
+<span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{echo end &gt;&gt; #1.Tab.<span class="flyspell-duplicate">mp</span>}
}
@@ -283,7 +296,7 @@
</span><span class="comment-delimiter">%%</span><span class="comment">
</span>
-<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=?&#167;&#163;]{XcasTV.cxx}
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[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&gt;2){ for(r:=1; r&lt;=nz-2;r++){ ksp:=evalf(fp(Z[r]+0.01))&gt;0;
if(ksp==1){"plus;"}else{"moins;"}
}; }
-lsf:=if(member(Z[nz-1],F)==0){""}else{"nomDefBarre;
+<span class="flyspell-duplicate">lsf</span>:=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 <span class="flyspell-duplicate">tableauVariation</span>;
verbatimtex
<span class="comment-delimiter">%</span><span class="comment">&amp;latex
</span> <span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">documentclass</span><span class="function-name">{article}</span>
@@ -395,7 +408,7 @@ if(nz&gt;2){intro+"beginTableau("+nmr+")"+
lsi+lsp+lsf+
li+
lp+
-lf
+<span class="flyspell-duplicate">lf</span>
+"
endTableau;
end";}else{intro+"beginTableau("+nmr+")"+
@@ -437,7 +450,7 @@ endTableau;
li+
lf
+"
-endTableau;
+<span class="flyspell-duplicate">endTableau</span>;
";}}else{
if(nz&gt;2){"beginTableau("+nmr+")"+
@@ -474,28 +487,44 @@ return(MetaL);
<span class="comment-delimiter">%%</span><span class="comment">
</span><span class="comment-delimiter">%%</span><span class="comment">
-</span><span class="comment-delimiter">%% </span><span class="comment">TV avec une zone interdite : on rajoute comme argument l'intervalle interdit
-</span><span class="comment-delimiter">%% </span><span class="comment">par exemple, pour sqrt(x^2-1) : TVZ([-infinity,100],[],[-1,1],"f","x",sqrt(x^2-1),1,1)
+</span><span class="comment-delimiter">%% </span><span class="comment">TV avec une zone interdite : on rajoute comme argument la liste des intervalles interdits
+</span><span class="comment-delimiter">%% </span><span class="comment">par exemple, pour sqrt(x^2-1) : TVZ([-infinity,100],[],[[-1,1]],"f","x",sqrt(x^2-1),1,1)
</span><span class="comment-delimiter">%%</span><span class="comment">
</span>
-<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=?&#167;&#163;]{XcasTVZ.cxx}
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=?WW]{XcasTVZ.<span class="flyspell-duplicate">cxx</span>}
+
TVZ(L,F,FF,nom,nomv,f,ftt,nmr):={
nl:=size(L);
-if(FF[0]&gt;L[0]){Imin:=FF[0];LL:=L}else{Imin:=L[0];LL:=[L[1]]};
-if(FF[1]&lt;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&lt;nf;k++){
+if(FF[k][0]&gt;L[0]){Imin[k]:=FF[k][0];LL:=L}else{Imin[k]:=L[0];LL:=[L[1]]};
+if(FF[k][1]&lt;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&lt;nf;k++){
+Z:=concat(Z,FF[k]);
+}
+
S:=resoudre(fp(x),x);
si size(S)&gt;0 alors pour j de 0 jusque size(S)-1 faire
- kk:=(evalf(S[j])&gt;=evalf(L[0])) and (evalf(S[j])&lt;=evalf(L[nl-1]));
- kK:=(evalf(S[j])&lt;evalf(Imin)) or (evalf(S[j])&gt;evalf(Imax));
+ for(k:=0;k&lt;nf;k++){
+ kk:=(evalf(S[j])&gt;=evalf(L[0])) and (evalf(S[j])&lt;=evalf(L[nl-1]));
+ kK:=(evalf(S[j])&lt;evalf(Imin[k])) or (evalf(S[j])&gt;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&lt;nz;k++){
-if ((Z[k]&gt;Imin)and(Z[k]&lt;Imax)){Z:=augment(Z[0..k-1],Z[k+1..nz-1]);nz:=nz-1;
-}
+
+for(j:=0;j&lt;nf;j++){
+ for(k:=1;k&lt;nz;k++){
+ if ((Z[k]&gt;Imin[j])and(Z[k]&lt;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 <span class="font-latex-math">$"+
lsi:="
newLigneSignes(btex <span class="font-latex-math">$\\hbox{ Signe de }\\atop{\\displaystyle "+nom+"'("+nomv+")}$</span> 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&gt;2){ for(r:=1; r&lt;=nz-2;r++){ ksp:=evalf(fp(Z[r]+0.01))&gt;0;
- lsp:=lsp+if(Z[r]==Imin){"debutNonDef;"}else{
- if(Z[r]==Imax){"finNonDef;"+
+
+
+
+if(nz&gt;2){ for(r:=1; r&lt;=nz-2;r++){ ksp:=evalf(fp(Z[r]+0.01))&gt;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 <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Variations de }\\atop{\\displaystyle \\Mathbold{"+nom+"}}$</span> etex);"+
@@ -549,11 +587,12 @@ newLigneVariations(btex <span class="font-latex-math">$\\hbox{\</span><span clas
");";
if(nz&gt;2){
- for(r:=1; r&lt;=nz-2;r++){
+ for(r:=1; r&lt;=nz-2;r++){
krm:=evalf(limite(f(x),x=Z[r-1],1))&lt; evalf(limite(f(x),x=Z[r],-1));
krp:=evalf(limite(f(x),x=Z[r],1))&gt; 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 <span class="font-latex-math">$"+if(lmrm==1){
+
+ lp:=lp+if(member(Z[r],IMIN)!=0){"limGauche(btex <span class="font-latex-math">$"+if(lmrm==1){
"-\\infty"}else{
latex(simplifier(limite(f(x),x=Z[r],-1)))}
+"$</span> etex,"+if(krm==1){
@@ -561,9 +600,9 @@ if(nz&gt;2){
+"debutNonDef;"
}//fsi Zr=Imin
else{
- if (Z[r]==Imax) {"finNonDef;limDroite(btex <span class="font-latex-math">$"+if(lmrp==1){
+ if (member(Z[r],IMAX)!=0) {"finNonDef;limDroite(btex <span class="font-latex-math">$"+if(lmrp==1){
"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],1)))}
- +"$</span> etex,"+if(krp==1){
+ +"$</span> etex,"+if(<span class="flyspell-duplicate">krp</span>==1){
"1);"}else{"0);"}
}
else {
@@ -587,7 +626,7 @@ if(nz&gt;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
+<span class="flyspell-duplicate">lf</span>
+"
endTableau;
end";}
@@ -689,7 +728,7 @@ if(nz&gt;2){"beginTableau("+nmr+")"+
lsi+lsp+lsf+
li+
lp+
-lf
+<span class="flyspell-duplicate">lf</span>
+"
endTableau;
@@ -714,6 +753,7 @@ return(MetaL);
}
:;
+
<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
@@ -724,7 +764,7 @@ return(MetaL);
</span>
-<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=?&#167;&#163;]{XcasTVapp.cxx}
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=?WW]{XcasTVapp.cxx}
@@ -732,7 +772,7 @@ return(MetaL);
-TVapp(L,F,nom,nomv,f,ftt,nmr):={
+<span class="flyspell-duplicate">TVapp</span>(L,F,nom,nomv,f,ftt,nmr):={
nl:=size(L);
@@ -771,7 +811,7 @@ for(j:=1;j&lt;nz;j++){
Z:=[S];
-nz:=size(Z);
+<span class="flyspell-duplicate">nz</span>:=size(Z);
l0:=" newLigneVariables(btex <span class="font-latex-math">$"+nomv+"$</span> etex);";lp:=" "; lf:=" ";lsp:=" ";
pour m de 0 jusque nz-1 faire l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[m])+"$</span> etex);
";fpour;
@@ -835,7 +875,7 @@ MetaL:=if(ftt==2){if(nz&gt;2){intro+"beginTableau("+nmr+")"+
endTableau;
end
";}else{
-intro+"beginTableau("+nmr+")"+
+<span class="flyspell-duplicate">intro</span>+"beginTableau("+nmr+")"+
l0+
lsi+lsf+"
endTableau;
@@ -877,7 +917,7 @@ end";}
MetaLfc:=if(ftt==2){if(nz&gt;2){"
-beginTableau("+nmr+")"+
+beginTableau("+<span class="flyspell-duplicate">nmr</span>+")"+
l0+lsi+lsp+lsf+"
endTableau;
@@ -920,7 +960,7 @@ lsi+lsf+
li+
lf
+"
-endTableau;
+<span class="flyspell-duplicate">endTableau</span>;
";}
}}
@@ -957,7 +997,7 @@ return(MetaL);
-<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=?&#167;&#163;]{XcasTVI.cxx}
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=?WW]{XcasTVI.cxx}
TVI(L,F,nom,nomv,f,ftt,ao,nmr):={
@@ -1001,7 +1041,7 @@ l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[nz-1])+"$</span> etex)
if(NL&gt;nz){for(k:=0;k&lt;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 <span class="font-latex-math">$"+latex(Z[kk])+"$</span> etex);"+"val(btex <span class="font-latex-math">$\\alpha_</span><span class="font-latex-subscript"><span class="font-latex-math">"</span></span><span class="font-latex-math">+aa+"$</span> etex);";aa:=aa+1;kk:=kk+1}}else{l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[kk])+"$</span> etex);";kk:=kk+1}}
+A:=A,aa;l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[kk])+"$</span> etex);"+"val(btex <span class="font-latex-math">$\\alpha_</span><span class="font-latex-subscript"><span class="font-latex-math">"</span></span><span class="font-latex-math">+aa+"$</span> <span class="flyspell-duplicate">etex</span>);";aa:=aa+1;kk:=kk+1}}else{l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[kk])+"$</span> etex);";kk:=kk+1}}
l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[nz-1])+"$</span> etex);
"};
@@ -1028,7 +1068,7 @@ if(nz&gt;2){rr:=1; if(nz==NL){for(r:=1; r&lt;=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 <span class="font-latex-math">$ $</span> etex);"}else{" "}+if(TestS==0){if(ksp==1){"plus;"}else{"moins;"}}else{" "};
}}
-else{for(r:=1; r&lt;=NL-2;r++){kspp:=evalf(fp(Z[rr]+0.01))&gt;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&lt;=NL-2;r++){kspp:=evalf(fp(Z[rr]+0.01))&gt;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]-<span class="flyspell-duplicate">ao</span>))==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 <span class="font-latex-math">$ $</span> etex);"+if(kspp==1){"plus;"}else{"moins;"};rr:=rr+1;}
@@ -1056,7 +1096,7 @@ newLigneVariations(btex <span class="font-latex-math">$\\hbox{\</span><span clas
krp:=evalf(limite(f(x),x=Z[r],1))&gt; 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 <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],-1)))}+"$</span> etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lmrp==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],1)))}+"$</span> etex,"+if(krp==1){"1);"}else{"0);"}}
+ "limGauche(btex <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],-1)))}+"$</span> etex,"+if(krm==1){"1);"}<span class="flyspell-duplicate">else</span>{"0);"}+"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lmrp==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[r],1)))}+"$</span> etex,"+if(krp==1){"1);"}else{"0);"}}
else{"valPos(btex <span class="font-latex-math">$"+latex(simplifier(f(Z[r])))+"$</span>
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
<span class="font-latex-math">$ "+ao+" $</span> etex,0.5);"
@@ -1079,7 +1119,7 @@ else{lp:=lp+if(member(Z[rr],F)){
else{"valPos(btex <span class="font-latex-math">$"+latex(simplifier(f(Z[rr])))+"$</span>
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 <span class="flyspell-duplicate">testS</span>==0
}//for nz&lt;NL
}// else nz&lt;NL
//if nz=NL
@@ -1120,7 +1160,7 @@ end";
if(ftt==0){if(nz&gt;2){intro+"beginTableau("+nmr+")"+
l0+
li+
-lp+
+<span class="flyspell-duplicate">lp</span>+
lf
+"
endTableau;
@@ -1205,7 +1245,7 @@ fprint(sortie,Unquoted,MetaLfc);
fclose(sortie);
-return(MetaL);
+return(<span class="flyspell-duplicate">MetaL</span>);
}:;
@@ -1226,7 +1266,7 @@ return(MetaL);
-<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=?&#167;&#163;]{XcasTVIapp.cxx}
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=?WW]{XcasTVIapp.cxx}
TVIapp(L,F,nom,nomv,f,ftt,ao,nmr):={
@@ -1245,7 +1285,7 @@ si size(S)&gt;0 alors pour j de 0 jusque size(S)-1 faire
kk:=(re(S[j])==S[j]);kok:=(evalf(S[j])&gt;=L[0]) and (evalf(S[j])&lt;=L[1]);
if(kk==1){if(kok==1){z:=append(z,simplifier(S[j]))}};
fpour;
-fsi;
+<span class="flyspell-duplicate">fsi</span>;
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 <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[rr],-1)))}+"$</span> etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lmrp==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[rr],1)))}+"$</span> etex,"+if(krp==1){"1);"}else{"0);"}}
+ "limGauche(btex <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[rr],-1)))}+"$</span> etex,"+if(krm==1){"1);"}<span class="flyspell-duplicate">else</span>{"0);"}+"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lmrp==1){"-\\infty"}else{latex(simplifier(limite(f(x),x=Z[rr],1)))}+"$</span> etex,"+if(krp==1){"1);"}else{"0);"}}
else{"valPos(btex <span class="font-latex-math">$"+latex(simplifier(f(Z[rr])))+"$</span>
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+"
+<span class="flyspell-duplicate">lsi</span>+lsf+"
endTableau;
end";
}
@@ -1444,7 +1484,7 @@ MetaLfc:= if(ftt==2){if(nz&gt;2){"beginTableau("+nmr+")"+
l0+lsi+lsp+lsf+"
endTableau;
-";}else{
+";}<span class="flyspell-duplicate">else</span>{
"beginTableau("+nmr+")"+
l0+
lsi+lsf+"
@@ -1483,7 +1523,7 @@ lsi+lsf+
li+
lf
+"
-endTableau;
+<span class="flyspell-duplicate">endTableau</span>;
";}
}};
@@ -1521,7 +1561,7 @@ return(MetaL);
-<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=?&#167;&#163;]{XcasTabSignL.cxx}
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=?WW]{XcasTabSignL.cxx}
TS(L,D,nmr):={
@@ -1570,7 +1610,7 @@ MetaL:=" input tableauVariation;
etex;
beginTableau("+nmr+")
-newLigneVariables(btex <span class="font-latex-math">$\\Mathbold{x}$</span> etex);
+<span class="flyspell-duplicate">newLigneVariables</span>(btex <span class="font-latex-math">$\\Mathbold{x}$</span> etex);
"+l0+li+
"
newLigneSignes(btex <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Signe du }\\atop{{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> produit}}$</span> etex);"+
@@ -1649,7 +1689,7 @@ newLigneVariables(btex <span class="font-latex-math">$\\Mathbold{x}$</span> etex
li
+
"
- newLigneSignes(btex <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Signe du }\\atop{{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> produit}}$</span> etex);"+
+ newLigneSignes(btex <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Signe du }\\atop{{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> produit}}$</span> <span class="flyspell-duplicate">etex</span>);"+
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(<span class="flyspell-duplicate">MetaL</span>);
}:;
<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
@@ -1699,8 +1739,8 @@ return(MetaL);
</span>
-<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=?&#167;&#163;]{XcasTabSignQ.cxx}
-TSq(nomf,L,Fo,D,nmr):={
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=?WW]{<span class="flyspell-duplicate">XcasTabSignQ</span>.cxx}
+<span class="flyspell-duplicate">TSq</span>(nomf,L,Fo,D,nmr):={
L:=apply(f-&gt;unapply(f,x),L);
Fo:=apply(f-&gt;unapply(f,x),Fo);
L:=concat(L,Fo);
@@ -1717,7 +1757,7 @@ pour k de 0 jusque n-1 faire
if(S[j]&gt;mini and S[j]&lt;maxi){Z:=Z,simplifier(S[j]);}
fpour;
fsi;
-fpour;
+<span class="flyspell-duplicate">fpour</span>;
pour k de 0 jusque m-1 faire
@@ -1727,7 +1767,7 @@ pour k de 0 jusque m-1 faire
if(SF[j]&gt;mini and SF[j]&lt;maxi){F:=F,simplifier(SF[j]);}
fpour;
fsi;
-fpour;
+<span class="flyspell-duplicate">fpour</span>;
@@ -1754,13 +1794,13 @@ if(mini!=-infinity and L[p](mini)==0){"
valBarre(btex 0 etex);"}else{"
"}+
if(L[p]((mini+maxi)*0.5&gt;0)){"plus;"}else{"moins;"}+if(maxi!=+infinity and L[p](maxi)==0){"
- valBarre(btex 0 etex);"}else{"
+ valBarre(btex 0 etex);"}<span class="flyspell-duplicate">else</span>{"
"}
}
lf:=if(product(L[s]((mini+maxi)*.5),s,0,n-1)&gt;0){"plus;"}else{"moins;"};
-MetaL:=" input tableauVariation;
+MetaL:=" input <span class="flyspell-duplicate">tableauVariation</span>;
verbatimtex
<span class="comment-delimiter">%</span><span class="comment">&amp;latex
</span> <span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">documentclass</span><span class="function-name">{article}</span>
@@ -1776,31 +1816,31 @@ newLigneVariables(btex <span class="font-latex-math">$\\Mathbold{x}$</span> etex
"
newLigneSignes(btex <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Signe }\\atop{{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> de "+nomf+"(x)}}$</span> 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);"}<span class="flyspell-duplicate">else</span>{"
"}}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"
+<span class="flyspell-duplicate">end</span>"
;
-MetaLfc:="
+<span class="flyspell-duplicate">MetaLfc</span>:="
beginTableau("+nmr+")
newLigneVariables(btex <span class="font-latex-math">$\\Mathbold{x}$</span> etex);
"+l0+li+
"
- newLigneSignes(btex <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Signe }\\atop{{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> de "+nomf+"(x)}}$</span> etex);"+
+ newLigneSignes(btex <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Signe }\\atop{{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> de "+nomf+"(x)}}$</span> <span class="flyspell-duplicate">etex</span>);"+
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 <span class="flyspell-duplicate">product</span>(L[s](maxi),s,0,n-1)==0){"
valBarre(btex 0 etex);"}else{"
"}}else{"nonDefBarre;"}+"
-endTableau;
+<span class="flyspell-duplicate">endTableau</span>;
"
;
@@ -1808,18 +1848,18 @@ endTableau;
-}else{
+}<span class="flyspell-duplicate">else</span>{
l0:="val(btex <span class="font-latex-math">$"+latex(D[0])+"$</span> etex);";li:=" ";lr:=" ";
pour m de 0 jusque nz-1 faire l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[m])+"$</span> etex);
";fpour;
-l0:=l0+"val(btex <span class="font-latex-math">$"+latex(D[1])+"$</span> etex);";
+l0:=l0+"val(btex <span class="font-latex-math">$"+latex(D[1])+"$</span> <span class="flyspell-duplicate">etex</span>);";
for(p:=0;p&lt;=n-1;p++){lp:="";
li:=li+"
-newLigneSignes(btex <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Signe de }\\atop{\\displaystyle \\Mathbold{"+latex(L[p](x))+"}}$</span> etex);"+
+newLigneSignes(btex <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Signe de }\\atop{\\displaystyle \\Mathbold{"+latex(L[p](x))+"}}$</span> <span class="flyspell-duplicate">etex</span>);"+
if(mini!=-infinity and L[p](mini)==0){"
valBarre(btex 0 etex);"}else{"
"}+
@@ -1834,7 +1874,7 @@ newLigneSignes(btex <span class="font-latex-math">$\\hbox{\</span><span class="f
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)&gt;0){"plus;"}else{"moins;
"}+if(maxi!=+infinity and L[p](maxi)==0){"
- valBarre(btex 0 etex);"}else{" "}
+ valBarre(btex 0 etex);"}<span class="flyspell-duplicate">else</span>{" "}
};
@@ -1842,10 +1882,10 @@ newLigneSignes(btex <span class="font-latex-math">$\\hbox{\</span><span class="f
pour t de 0 jusque nz-2 faire
lr:=lr+if(product(L[s]((Z[t]+Z[t+1])*.5),s,0,n-1)&gt;0){"plus;"}else{"moins;"}+
if(member(Z[t+1],FF)==0){"valBarre(btex 0 etex);"}else{ "nonDefBarre;"}
- fpour
+ <span class="flyspell-duplicate">fpour</span>
MetaL:=" input tableauVariation;
-verbatimtex
+<span class="flyspell-duplicate">verbatimtex</span>
<span class="comment-delimiter">%</span><span class="comment">&amp;latex
</span> <span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">documentclass</span><span class="function-name">{article}</span>
<span class="font-latex-warning">\\</span>?fonte
@@ -1862,21 +1902,21 @@ newLigneVariables(btex <span class="font-latex-math">$\\Mathbold{x}$</span> etex
newLigneSignes(btex <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Signe de}\\atop{{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> "+nomf+"(x)}}$</span> 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{"<span class="flyspell-duplicate">nonDefBarre</span>;"}+
if(product(L[s](Z[0]-0.01),s,0,n-1)&gt;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)&gt;0){"plus;"}else{"moins;"}+
+ if(product(L[s](Z[nz-1]+0.01),s,0,n-1)&gt;0){"plus;"}<span class="flyspell-duplicate">else</span>{"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"
+<span class="flyspell-duplicate">end</span>"
;
-MetaLfc:="
+<span class="flyspell-duplicate">MetaLfc</span>:="
beginTableau("+nmr+")
newLigneVariables(btex <span class="font-latex-math">$\\Mathbold{x}$</span> etex);
"+l0+
@@ -1886,14 +1926,14 @@ newLigneVariables(btex <span class="font-latex-math">$\\Mathbold{x}$</span> etex
newLigneSignes(btex <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Signe de}\\atop{{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> "+nomf+"(x)}}$</span> 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{"<span class="flyspell-duplicate">nonDefBarre</span>;"}+
if(product(L[s](Z[0]-0.01),s,0,n-1)&gt;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)&gt;0){"plus;"}else{"moins;"}+
+ if(product(L[s](Z[nz-1]+0.01),s,0,n-1)&gt;0){"plus;"}<span class="flyspell-duplicate">else</span>{"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;
+<span class="flyspell-duplicate">endTableau</span>;
"
@@ -1911,7 +1951,7 @@ fclose(sortie);
-return(MetaL);
+return(<span class="flyspell-duplicate">MetaL</span>);
}:;
<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
@@ -1926,11 +1966,11 @@ return(MetaL);
-<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=?&#167;&#163;]{XcasTabSign.cxx}
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[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);
+<span class="flyspell-duplicate">zmin</span>:=min(zA,zB);
zmax:=max(zA,zB);
Meta:= " input tableauVariation;
verbatimtex
@@ -1988,7 +2028,7 @@ return(Meta);
-<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=?&#167;&#163;]{XcasTSc.cxx}
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=?<span class="flyspell-duplicate">WW</span>]{XcasTSc.cxx}
TSc(g,D,nmr):={
f:=unapply(g,x);
Z:=NULL;
@@ -2017,39 +2057,39 @@ if(nz&gt;2){pour u de 1 jusque nz-2 faire
fpour;}
-nz:=size(Z);
+<span class="flyspell-duplicate">nz</span>:=size(Z);
l0:=" ";li:=" ";lr:=" ";
if(nz==0){l0:="val(btex <span class="font-latex-math">$"+latex(D[0])+"$</span> etex);val(btex <span class="font-latex-math">$"+latex(D[1])+"$</span> etex);";
li:=if(mini!=-infinity and f(mini)==0){"
- valBarre(btex 0 etex);"}else{"
+ valBarre(btex 0 etex);"}<span class="flyspell-duplicate">else</span>{"
"}+
if(f((mini+maxi)*0.5&gt;0)){"plus;"}else{"moins;"};
lf:=if(maxi!=+infinity and f(maxi)==0){"
- valBarre(btex 0 etex);"}else{"
+ valBarre(btex 0 etex);"}<span class="flyspell-duplicate">else</span>{"
"};
}else{
l0:="val(btex <span class="font-latex-math">$"+latex(D[0])+"$</span> etex);";li:=" ";
pour m de 0 jusque nz-1 faire l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[m])+"$</span> etex);
";
-fpour;
-l0:=l0+"val(btex <span class="font-latex-math">$"+latex(D[1])+"$</span> etex);";
+<span class="flyspell-duplicate">fpour</span>;
+l0:=l0+"val(btex <span class="font-latex-math">$"+latex(D[1])+"$</span> <span class="flyspell-duplicate">etex</span>);";
li:= if(mini!=-infinity and f(mini)==0){"
valBarre(btex 0 etex);"}else{"
"}+
-if(f(Z[0]-0.01)&gt;0){"plus;"}else{"moins;"}+"valBarre(btex 0 etex);";
+if(f(Z[0]-0.01)&gt;0){"plus;"}else{"moins;"}+"valBarre(btex 0 <span class="flyspell-duplicate">etex</span>);";
lm:=if(nz&gt;=2){for(r:=0; r&lt;=nz-2;r++){lm:=lm+if(f((Z[r]+Z[r+1])*.5)&gt;0){"plus;"}else{"moins;"}+
"valBarre(btex 0 etex);"
}}else{" "};
-lf:=if(f(Z[nz-1]+1.0)&gt;0){"plus;"}else{"moins;"}+if(maxi!=+infinity and f(maxi)==0){"valBarre(btex 0 etex);"}else{"
+<span class="flyspell-duplicate">lf</span>:=if(f(Z[nz-1]+1.0)&gt;0){"plus;"}else{"moins;"}+if(maxi!=+infinity and f(maxi)==0){"valBarre(btex 0 etex);"}else{"
"};
}};
-MetaL:=" input tableauVariation;
+<span class="flyspell-duplicate">MetaL</span>:=" input tableauVariation;
verbatimtex
<span class="comment-delimiter">%</span><span class="comment">&amp;latex
</span> <span class="font-latex-warning">\</span><span class="keyword"><span class="font-latex-warning">\</span></span><span class="keyword">documentclass</span><span class="function-name">{article}</span>
@@ -2061,23 +2101,23 @@ MetaL:=" input tableauVariation;
beginTableau("+nmr+")
newLigneVariables(btex <span class="font-latex-math">$\\Mathbold{x}$</span> etex);
"+l0+"
-newLigneSignes(btex <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Signe de }\\atop{\\displaystyle \\Mathbold{"+latex(f(x))+"}}$</span> etex);"+
+<span class="flyspell-duplicate">newLigneSignes</span>(btex <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Signe de }\\atop{\\displaystyle \\Mathbold{"+latex(f(x))+"}}$</span> etex);"+
li+lm+lf
+"
endTableau;
-end"
+<span class="flyspell-duplicate">end</span>"
;
MetaLfc:="
-beginTableau("+nmr+")
-newLigneVariables(btex <span class="font-latex-math">$\\Mathbold{x}$</span> etex);
+<span class="flyspell-duplicate">beginTableau</span>("+nmr+")
+<span class="flyspell-duplicate">newLigneVariables</span>(btex <span class="font-latex-math">$\\Mathbold{x}$</span> etex);
"+l0+"
newLigneSignes(btex <span class="font-latex-math">$\\hbox{\</span><span class="font-latex-bold"><span class="font-latex-math">\bf</span></span><span class="font-latex-math"> Signe de }\\atop{\\displaystyle \\Mathbold{"+latex(f(x))+"}}$</span> etex);"+
li+lm+lf
+"
-endTableau;
+<span class="flyspell-duplicate">endTableau</span>;
"
;
@@ -2104,7 +2144,7 @@ return(MetaL);
<span class="comment-delimiter">%%</span><span class="comment">
</span><span class="comment-delimiter">%%</span><span class="comment">
-</span><span class="comment-delimiter">%% </span><span class="comment">traitement des fichiers produits par giac/xcas
+</span><span class="comment-delimiter">%% </span><span class="comment">traitement des fichiers produits par giac/</span><span class="comment"><span class="flyspell-duplicate">xcas</span></span><span class="comment">
</span><span class="comment-delimiter">%%</span><span class="comment">
</span><span class="comment-delimiter">%%</span><span class="comment">
</span>
@@ -2118,7 +2158,7 @@ return(MetaL);
</span> <span class="comment">% exporter le source mp
</span> <span class="comment">% puis lancer metapost pour cr&#233;er
</span> <span class="comment">% l'image du tableau
-</span> <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\cat</span> XCasmpfc.mp &gt;&gt; <span class="font-latex-sedate">\Tableaux</span>.Tab.mp}
+</span> <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\cat</span> XCasmpfc.mp &gt;&gt; <span class="font-latex-sedate">\Tableaux</span>.Tab.<span class="flyspell-duplicate">mp</span>}
<span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{mpost -interaction=batchmode -jobname=<span class="font-latex-sedate">\Tableaux</span>.Tab XCasmp#1}}<span class="comment">%
</span> {<span class="comment">% sinon, si le tableau est absent, alerte.
</span> <span class="font-latex-sedate">\IfFileExists</span>{<span class="font-latex-sedate">\Tableaux</span>.Tab.<span class="font-latex-sedate">\theTVn</span>}{}{<span class="comment">%
@@ -2146,7 +2186,7 @@ return(MetaL);
</span><span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\cat</span> TSav-<span class="font-latex-sedate">\theTVn</span>.mp &gt;&gt; <span class="font-latex-sedate">\Tableaux</span>.Tab.mp}}
<span class="comment-delimiter">% </span><span class="comment">Si non, lancement des op&#233;rations de fabrication
</span>{<span class="font-latex-sedate">\executGiacmp</span>{XCas#1.giac}<span class="comment">%
-</span><span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\editeur</span> XCasmpfc.mp}
+</span><span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\editeur</span> XCasmpfc.<span class="flyspell-duplicate">mp</span>}
<span class="comment">% Modification avec l'&#233;diteur choisi
</span>
@@ -2167,7 +2207,7 @@ return(MetaL);
<span class="font-latex-sedate">\includegraphics</span>{<span class="font-latex-sedate">\Tableaux</span>.Tab.<span class="font-latex-sedate">\theTVn</span>}
<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{center}</span>
-<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVnbis</span></span><span class="variable-name">}</span> <span class="comment">% Restauration du compteur TVn
+<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVnbis</span></span><span class="variable-name">}</span> <span class="comment">% Restauration du compteur </span><span class="comment"><span class="flyspell-duplicate">TVn</span></span><span class="comment">
</span>}
@@ -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(" ");
+<span class="flyspell-duplicate">Resultat</span>:=cat(" ");
rslt := vxo[0]; RslT:=cat(rslt);
Resultat:=cat(Resultat,RslT);
fprint(Sortie,Unquoted,Resultat);
fclose(Sortie);
<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
-<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TSa}</span>
-{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>&#163;&#181;]{XCas.user}}
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{</span><span class="function-name"><span class="flyspell-duplicate">TSa</span></span><span class="function-name">}</span>
+{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>WW]{XCas.user}}
{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
<span class="font-latex-sedate">\dresse</span>{}
}
@@ -2217,11 +2257,11 @@ fclose(Sortie);
-<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasQ.giac}
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{<span class="flyspell-duplicate">XCasQ</span>.giac}
maple_mode(0);
-read("XcasTabSignQ.cxx");
-Sortie:=fopen("XCasmpQ.mp");
-vect.xcas.user := read("XCasQ.user");
+read("<span class="flyspell-duplicate">XcasTabSignQ</span>.cxx");
+Sortie:=fopen("<span class="flyspell-incorrect">XCasmpQ</span>.mp");
+vect.xcas.user := read("<span class="flyspell-duplicate">XCasQ</span>.user");
vxo := vect.xcas.user;
dim.vxo := dim(vxo);
nbr.line.vxo := dim.vxo;
@@ -2232,16 +2272,16 @@ fprint(Sortie,Unquoted,Resultat);
fclose(Sortie);
<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
-<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TSq}</span><span class="comment">%
-</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>&#163;&#181;]{XCasQ.user}}
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{</span><span class="function-name"><span class="flyspell-duplicate">TSq</span></span><span class="function-name">}</span><span class="comment">%
+</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>WW]{<span class="flyspell-duplicate">XCasQ</span>.user}}
{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dresse</span>{Q}}
-<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TSq*}</span>[1]<span class="comment">%
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{</span><span class="function-name"><span class="flyspell-duplicate">TSq</span></span><span class="function-name">*}</span>[1]<span class="comment">%
</span>{<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVnbis}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVn</span></span><span class="variable-name">}</span>
<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{#1}</span>
-<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>&#163;&#181;]{XCasQ.user}}
+<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>WW]{<span class="flyspell-duplicate">XCasQ</span>.user}}
{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{Q}}
@@ -2261,14 +2301,14 @@ fclose(Sortie);
<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TS}</span><span class="comment">%
-</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>&#163;&#181;]{XCasL.user}}
+</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>WW]{XCasL.user}}
{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dresse</span>{L}}
<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TS*}</span>[1]
{<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVnbis}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVn</span></span><span class="variable-name">}</span>
<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{#1}</span>
-<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>&#163;&#181;]{XCasL.user}}
+<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>WW]{XCasL.user}}
{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{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);
+<span class="flyspell-duplicate">Resultat</span>:=cat(Resultat,RslT);
fprint(Sortie,Unquoted,Resultat);
fclose(Sortie);
<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
@@ -2293,12 +2333,12 @@ fclose(Sortie);
<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TSc*}</span>[1]<span class="comment">%
</span>{<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVnbis}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVn</span></span><span class="variable-name">}</span>
<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{#1}</span>
-<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>&#163;&#181;]{XCasTSc.user}}
+<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>WW]{XCasTSc.user}}
{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{TSc}}
<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TSc}</span><span class="comment">%
-</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>&#163;&#181;]{XCasTSc.user}}
+</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>WW]{XCasTSc.user}}
{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dresse</span>{TSc}}
@@ -2318,14 +2358,14 @@ fclose(Sortie);
<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TV}</span><span class="comment">%
-</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>&#163;&#181;]{XCasTV.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>WW]{XCasTV.user}}<span class="comment">%
</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
<span class="font-latex-sedate">\dresse</span>{TV}}
<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TV*}</span>[1]{<span class="comment">%
</span><span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVnbis}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVn</span></span><span class="variable-name">}</span>
-<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{#1}</span>
-<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>&#163;&#181;]{XCasTV.user}}<span class="comment">%
+<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{</span><span class="variable-name"><span class="flyspell-duplicate">TVn</span></span><span class="variable-name">}{#1}</span>
+<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>WW]{XCasTV.user}}<span class="comment">%
</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{TV}}
@@ -2354,15 +2394,15 @@ fclose(Sortie);
<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVZ}</span><span class="comment">%
-</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>&#163;&#181;]{XCasTVZ.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>WW]{XCasTVZ.user}}<span class="comment">%
</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
<span class="font-latex-sedate">\dresse</span>{TVZ}}
<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVZ*}</span>[1]{<span class="comment">%
</span><span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVnbis}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVn</span></span><span class="variable-name">}</span>
<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{#1}</span>
-<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>&#163;&#181;]{XCasTVZ.user}}<span class="comment">%
-</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{TVZ}}
+<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>WW]{XCasTVZ.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{<span class="flyspell-duplicate">TVZ</span>}}
@@ -2374,13 +2414,13 @@ fclose(Sortie);
<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasTVapp.giac}
-maple_mode(0);
+<span class="flyspell-duplicate">maple</span>_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;
+<span class="flyspell-duplicate">nbr</span>.line.vxo := dim.vxo;
Resultat:=cat(" ");
rslt := vxo[0]; RslT:=cat(rslt);
Resultat:=cat(Resultat,RslT);
@@ -2389,15 +2429,15 @@ fclose(Sortie);
<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVapp}</span><span class="comment">%
-</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>&#163;&#181;]{XCasTVapp.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>WW]{XCasTVapp.user}}<span class="comment">%
</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
-<span class="font-latex-sedate">\dresse</span>{TVapp}}
+<span class="font-latex-sedate">\dresse</span>{<span class="flyspell-duplicate">TVapp</span>}}
<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVapp*}</span>[1]{<span class="comment">%
</span><span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVnbis}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVn</span></span><span class="variable-name">}</span>
<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{#1}</span>
-<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>&#163;&#181;]{XCasTVapp.user}}<span class="comment">%
-</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{TVapp}}
+<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>WW]{XCasTVapp.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{<span class="flyspell-duplicate">TVapp</span>}}
@@ -2410,13 +2450,13 @@ fclose(Sortie);
<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasTVI.giac}
-maple_mode(0);
+<span class="flyspell-duplicate">maple</span>_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;
+<span class="flyspell-duplicate">nbr</span>.line.vxo := dim.vxo;
Resultat:=cat(" ");
rslt := vxo[0]; RslT:=cat(rslt);
Resultat:=cat(Resultat,RslT);
@@ -2425,15 +2465,15 @@ fclose(Sortie);
<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVI}</span><span class="comment">%
-</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>&#163;&#181;]{XCasTVI.user}}<span class="comment">%
-</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dresse</span>{TVI}}
+</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>WW]{XCasTVI.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dresse</span>{<span class="flyspell-duplicate">TVI</span>}}
<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVI*}</span>[1]<span class="comment">%
</span>{<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVnbis}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVn</span></span><span class="variable-name">}</span>
<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{#1}</span>
-<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>&#163;&#181;]{XCasTVI.user}}<span class="comment">%
-</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{TVI}}
+<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>WW]{XCasTVI.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{<span class="flyspell-duplicate">TVI</span>}}
@@ -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);
+<span class="flyspell-duplicate">dim</span>.vxo := dim(vxo);
nbr.line.vxo := dim.vxo;
Resultat:=cat(" ");
-rslt := vxo[0]; RslT:=cat(rslt);
+rslt := vxo[0]; RslT:=cat(<span class="flyspell-duplicate">rslt</span>);
Resultat:=cat(Resultat,RslT);
fprint(Sortie,Unquoted,Resultat);
fclose(Sortie);
<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVIapp}</span><span class="comment">%
-</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>&#163;&#181;]{XCasTVIapp.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>WW]{XCasTVIapp.user}}<span class="comment">%
</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dresse</span>{TVIapp}}
<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVIapp*}</span>[1]<span class="comment">%
</span>{<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVnbis}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVn</span></span><span class="variable-name">}</span>
<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{#1}</span>
-<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>&#163;&#181;]{XCasTVIapp.user}}<span class="comment">%
+<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>WW]{XCasTVIapp.user}}<span class="comment">%
</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{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
--- a/Master/texmf-dist/doc/latex/tablor/tablor.pdf
+++ b/Master/texmf-dist/doc/latex/tablor/tablor.pdf
Binary files 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é. Un tableau est créé et ensuite ins
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ètres rentrés dans l
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éparateur est le point virgule.
\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éparateur est le point virgule.
+% \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éambule sera toujours~:
\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é \Prog{giac/XCAS} sur son
{\small
-\begin{Verbatim}
+
+\begin{lstlisting}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Fichier de configuration de tablor.sty %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -235,7 +302,7 @@ On met \texttt{xcas} si l'on a installé \Prog{giac/XCAS} sur son
% 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é \Prog{giac/XCAS} sur son
% 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 «~[upright]{fourier}~» par la fonte qui vous convient pour
\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éfixe le préfixe courant (obtenu par \verb+\jobname+)
\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 étudie d'abord la fonction $x\mapsto g'(x)$~:
\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érateur],[liste des facteurs du
\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éro de la figure.
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éduit le tableau de variation de $f$
\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[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);
@@ -427,9 +450,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);
@@ -442,21 +468,27 @@ pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
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);"+
@@ -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]<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}
-
-
-%%
-%%
-%% 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;j<size(z);j++){
- if(z[j]!=undef and (abs(z[j])>1e-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<nz;j++){
- if(Z[j]!=S[size(S)-1]){
- S:=S,Z[j]};
-}
-Z:=[S];
-
-
-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}
-
-
-
-
-
-
-
-%%
-%% 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;k<nz-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);
-if(TestS==0){A:=A,aa;l0:=l0+"val(btex $"+latex(Z[k])+"$ etex);"+"val(btex $\\alpha_"+aa+"$ etex);";aa:=aa+1;}else{l0:=l0+"val(btex $"+latex(Z[k])+"$ etex);"}}
-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}}
-l0:=l0+"val(btex $"+latex(Z[nz-1])+"$ etex);
-"};
-
-
-
-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);
- 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^(-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 nz<NL
-}// else nz<NL
-//if nz=NL
-};//if nz>2
-
-
-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;j<size(z);j++){
- if(z[j]!=undef and (abs(z[j])>1e-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<nz;j++){
- if(Z[j]!=S[size(S)-1]){
- S:=S,Z[j]};
-}
-Z:=[S];
-
-
-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;k<nz-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);
-if(TestS==0){A:=A,aa;l0:=l0+"val(btex $"+latex(Z[k])+"$ etex);"+"val(btex $\\alpha_"+aa+"$ etex);";aa:=aa+1;}else{l0:=l0+"val(btex $"+latex(Z[k])+"$ etex);"}}
-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}}
-l0:=l0+"val(btex $"+latex(Z[nz-1])+"$ etex);
-"};
-
-
-
-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);
- 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^(-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 nz<NL
-}// else nz<NL
-//if nz=NL
-};//if nz>2
-
-
-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]<maxi){Z:=Z,simplifier(S[j]);}
- fpour;
- 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 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]<maxi){Z:=Z,simplifier(S[j]);}
- fpour;
- fsi;
-fpour;
-
-
-pour k de 0 jusque m-1 faire
- SF:=resoudre(Fo[k](x),x);
- si size(SF)>0 alors pour j de 0 jusque size(SF)-1 faire
- FF:=FF,simplifier(SF[j]);
- if(SF[j]>mini and SF[j]<maxi){F:=F,simplifier(SF[j]);}
- fpour;
- fsi;
-fpour;
-
-
-
-Z:=sort(Z); // on classe les zéros dans l'ordre croissant
-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; // 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]<maxi){Z:=Z,simplifier(S[j])};
- 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);
-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 :)