summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/tablor/tablor.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2008-02-21 18:12:00 +0000
committerKarl Berry <karl@freefriends.org>2008-02-21 18:12:00 +0000
commita691030f2a8c6493f60ec90ef9fcc2751ed85ee6 (patch)
treef151405c4f5173f48f713fb9e18904e14d17dc7b /Master/texmf-dist/tex/latex/tablor/tablor.sty
parentf1deab4464e3af2576a3d41b7b0944324c15fc14 (diff)
tablor update (19feb08)
git-svn-id: svn://tug.org/texlive/trunk@6704 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/tablor/tablor.sty')
-rw-r--r--Master/texmf-dist/tex/latex/tablor/tablor.sty741
1 files changed, 553 insertions, 188 deletions
diff --git a/Master/texmf-dist/tex/latex/tablor/tablor.sty b/Master/texmf-dist/tex/latex/tablor/tablor.sty
index e6e687caf78..d83cf27ab00 100644
--- a/Master/texmf-dist/tex/latex/tablor/tablor.sty
+++ b/Master/texmf-dist/tex/latex/tablor/tablor.sty
@@ -1,9 +1,9 @@
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesPackage{tablor}
- [02/02/2008 v1.5
- la machine à créer des tableaux de signes et variations]
+\ProvidesPackage{tablor}[19/02/2008 v1.7 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 10 environnements :
@@ -43,32 +43,171 @@
-\newcommand{\nettoyer}{
-\immediate\write18{rm XCasmp.mp* XCasmp.log XCasmp?.mp* XCasmp?.log XCasmpTV.mp* XCasmpTV.log *.user XCasmpTVI.mp* XCasmpTVI.log
- *.giac *.cxx *mpx* *~}}
+%% extensions requises
+%% Il faudra rajouter dans le préambule \usepackage{graphicx} si vous
+%% ne l'avez pas de base
-\newcommand{\bouger}[1]{
-\immediate\write18{cp XCas* #1}}
+\RequirePackage{ifthen}
+\RequirePackage{fancyvrb}
+\RequirePackage{ifpdf}
-\newcommand{\recup}[2]{
-\immediate\write18{cp #1 #2}}
+%% liste des options : os et éditeur rapide
+\newboolean{xcas}\setboolean{xcas}{false}
+\newboolean{linux}\setboolean{linux}{false}
+\newboolean{windows}\setboolean{windows}{false}
+\newboolean{macosx}\setboolean{macosx}{false}
+\newboolean{emacs}\setboolean{emacs}{false}
+\newboolean{xemacs}\setboolean{xemacs}{false}
+\newboolean{texmaker}\setboolean{texmaker}{false}
+\newboolean{vi}\setboolean{vi}{false}
+\newboolean{winshell}\setboolean{winshell}{false}
+\newboolean{notepad}\setboolean{notepad}{false}
+\newboolean{vim}\setboolean{vim}{false}
+\newboolean{kate}\setboolean{kate}{false}
+\newboolean{gedit}\setboolean{gedit}{false}
+\newboolean{textmate}\setboolean{textmate}{false}
+\newboolean{texshop}\setboolean{texshop}{false}
-\newcounter{TVn}
+\DeclareOption{xcas}{\setboolean{xcas}{true}}
+\DeclareOption{linux}{\setboolean{linux}{true}}
+\DeclareOption{windows}{\setboolean{windows}{true}}
+\DeclareOption{mac}{\setboolean{macosx}{true}}
+\DeclareOption{emacs}{\setboolean{emacs}{true}}
+\DeclareOption{xemacs}{\setboolean{xemacs}{true}}
+\DeclareOption{texmaker}{\setboolean{texmaker}{true}}
+\DeclareOption{vi}{\setboolean{vi}{true}}
+\DeclareOption{winshell}{\setboolean{winshell}{true}}
+\DeclareOption{notepad}{\setboolean{notepad}{true}}
+\DeclareOption{vim}{\setboolean{vim}{true}}
+\DeclareOption{kate}{\setboolean{kate}{true}}
+\DeclareOption{gedit}{\setboolean{gedit}{true}}
+\DeclareOption{textmate}{\setboolean{textmate}{true}}
+\DeclareOption{texshop}{\setboolean{texshop}{true}}
+
+
+%% on peut configurer tablor dans un fichier extérieur
+
+\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{\ifthenelse{\boolean{windows}}%
+{\immediate\write18{DEL tete.* *.user XCas*.* Xcas*.* *.mpx} } %
+{\immediate\write18{rm tete.* *.user XCas* Xcas* *.mpx} }}
+
+
+
+%% En-tête pour le fichier metapost contenant les codes
+%% de tous les tableaux produits
+
+ \begin{VerbatimOut}{tete.mp}
+ input tableauVariation;
+ verbatimtex
+%&latex
+ \documentclass{article}
+ \usepackage[upright]{fourier}
+ \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
+
+
+\newcommand{\nettoyer}[1][\jobname]%
+{\ifthenelse{\boolean{windows}}%
+{\immediate\write18{DEL #1.Tab.log}
+\immediate\write18{echo end >> #1.Tab.mp}}%
+{\immediate\write18{rm #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}
-\usepackage{fancyvrb}
-%\usepackage[upright]{fourier}
+\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...
+ {\ifthenelse{\boolean{windows}}
+ {\immediate\write18{DEL \Tableaux.Tab.mp}}% le détruire
+ {\immediate\write18{rm \Tableaux.Tab.mp}}}%
+ {}%
+
+\ifthenelse{\boolean{windows}}
+ {\immediate\write18{COPY -f tete.mp \Tableaux.Tab.mp}}% Reconstituer
+ % l'entête de Tableaux.mp
+ {\immediate\write18{cp -f tete.mp \Tableaux.Tab.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]{
-\immediate\write18{giac <#1 } }
+\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}{XcasTV.cxx}
TV(L,F,nom,nomv,f,ftt,nmr):={
nl:=size(L);
@@ -144,7 +283,7 @@ intro:="input tableauVariation;
\\usepackage{amsmath}
\\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}}
\\begin{document}
- etex
+ etex;
"
@@ -152,7 +291,8 @@ intro:="input tableauVariation;
MetaL:=if(ftt==2){if(nz>2){intro+"beginTableau("+nmr+")"+
l0+lsi+lsp+lsf+"
endTableau;
-end";}else{
+end
+";}else{
intro+"beginTableau("+nmr+")"+
l0+
lsi+lsf+"
@@ -191,12 +331,79 @@ 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
+%%
+
+
-\end{VerbatimOut}
\begin{VerbatimOut}{XcasTVI.cxx}
@@ -342,7 +549,7 @@ verbatimtex
\\usepackage{amsmath}
\\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}}
\\begin{document}
- etex
+ etex;
";
@@ -390,18 +597,74 @@ endTableau;
end";}
}};
-return(MetaL);
- }:;
+MetaLfc:= if(ftt==2){if(nz>2){"beginTableau("+nmr+")"+
+ l0+lsi+lsp+lsf+"
+endTableau;
+";}else{
+"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+"
+endTableau;
-\end{VerbatimOut}
+";
+}
+}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
+%%
@@ -452,8 +715,9 @@ MetaL:=" input tableauVariation;
\\usepackage{amsmath}
\\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}}
\\begin{document}
- etex
- beginTableau("+nmr+")
+ etex;
+
+beginTableau("+nmr+")
newLigneVariables(btex $\\Mathbold{x}$ etex);
"+l0+li+
"
@@ -467,11 +731,24 @@ newLigneVariables(btex $\\Mathbold{x}$ etex);
endTableau;
end"
;
-}else{
-
+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);
@@ -513,7 +790,7 @@ MetaL:=" input tableauVariation;
\\usepackage{amsmath}
\\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}}
\\begin{document}
- etex
+ etex;
beginTableau("+nmr+")
newLigneVariables(btex $\\Mathbold{x}$ etex);
"+l0+
@@ -532,7 +809,30 @@ newLigneVariables(btex $\\Mathbold{x}$ etex);
"}+"
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);
}:;
@@ -541,8 +841,9 @@ return(MetaL);
-
-
+%%
+%% Code giac/Xcas pour les Tableaux de signes de quotients
+%%
@@ -615,7 +916,7 @@ MetaL:=" input tableauVariation;
\\usepackage{amsmath}
\\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}}
\\begin{document}
- etex
+ etex;
beginTableau("+nmr+")
newLigneVariables(btex $\\Mathbold{x}$ etex);
@@ -631,6 +932,30 @@ newLigneVariables(btex $\\Mathbold{x}$ etex);
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{
@@ -675,7 +1000,7 @@ verbatimtex
\\usepackage{amsmath}
\\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}}
\\begin{document}
- etex
+ etex;
beginTableau("+nmr+")
newLigneVariables(btex $\\Mathbold{x}$ etex);
"+l0+
@@ -694,12 +1019,61 @@ newLigneVariables(btex $\\Mathbold{x}$ etex);
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;"}+
+ 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}{XcasTabSign.cxx}
TSa(a,b,c,d,nmr):={
zA:=resoudre(a*x+b=0,x)[0];
@@ -714,7 +1088,7 @@ zmax:=max(zA,zB);
\\usepackage{amsmath}
\\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}}
\\begin{document}
- etex
+ etex;
beginTableau("+nmr+")
newLigneVariables(btex $\\Mathbold{x}$ etex);
val(btex $-\\infty$ etex);val(btex $"+latex(zmin)+"$ etex);
@@ -755,11 +1129,9 @@ return(Meta);
-
-
-
-
-
+%%
+%% Code giac/Xcas pour les Tableaux de Signes d'expression ne contenant
+%% qu'un seul terme
@@ -825,7 +1197,7 @@ MetaL:=" input tableauVariation;
\\usepackage{amsmath}
\\newcommand{\\Mathbold}[1]{\\mbox{\\boldmath$#1$\\unboldmath}}
\\begin{document}
- etex
+ etex;
beginTableau("+nmr+")
newLigneVariables(btex $\\Mathbold{x}$ etex);
"+l0+"
@@ -835,6 +1207,31 @@ newLigneSignes(btex $\\hbox{\\bf Signe de }\\atop{\\displaystyle \\Mathbold{"+la
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}
@@ -845,24 +1242,103 @@ return(MetaL);
+%%
+%%
+%% traitement des fichiers produits par giac/xcas
+%%
+%%
-%%% les "giac"
+\newcommand{\dresse}[1]{%
+\ifthenelse{\boolean{xcas}}{% Avec l'option "XCas présent"
+ \executGiacmp{XCas#1.giac}% reconstituer le tableau
+ % exporter le source mp
+ \ifthenelse{\boolean{windows}}%
+ {\immediate\write18{TYPE XCasmpfc.mp >> \Tableaux.Tab.mp}}%
+ {\immediate\write18{cat XCasmpfc.mp >> \Tableaux.Tab.mp}}%
+ \immediate\write18{mpost -interaction=batchmode -jobname=\Tableaux.Tab XCasmp#1}}%
+ {% sinon, si le tableau est absent, alerte.
+ \IfFileExists{\Tableaux.Tab.\theTVn}{}{%
+ \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}%
+ \ifthenelse{\boolean{emacs}}{\immediate\write18{emacs XCasmpfc.mp}}{}
+ \ifthenelse{\boolean{xemacs}}{\immediate\write18{xemacs XCasmpfc.mp}}{}
+ \ifthenelse{\boolean{texmaker}}{\immediate\write18{texmaker XCasmpfc.mp}}{}
+ \ifthenelse{\boolean{vi}}{\immediate\write18{vi XCasmpfc.mp}}{}
+ \ifthenelse{\boolean{winshell}}{\immediate\write18{winshell XCasmpfc.mp}}{}
+ \ifthenelse{\boolean{notepad}}{\immediate\write18{notepad XCasmpfc.mp}}{}
+ \ifthenelse{\boolean{vim}}{\immediate\write18{vim XCasmpfc.mp}}{}
+ \ifthenelse{\boolean{kate}}{\immediate\write18{kate XCasmpfc.mp}}{}
+ \ifthenelse{\boolean{gedit}}{\immediate\write18{gedit XCasmpfc.mp}}{}
+ \ifthenelse{\boolean{textmate}}{\immediate\write18{textmate XCasmpfc.mp}}{}
+ \ifthenelse{\boolean{texshop}}{\immediate\write18{texshop XCasmpfc.mp}}{}
+ % Modification avec l'éditeur choisi
+
+ \ifthenelse{\boolean{windows}}%
+ {\immediate\write18{cp -f XCasmpfc.mp TSav-\theTVn.mp}
+ \immediate\write18{cat XCasmpfc.mp >> \Tableaux.Tab.mp}}%
+ {\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");
@@ -880,15 +1356,7 @@ fclose(Sortie);
\newenvironment{TSa}
{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCas.user}}
-{\end{VerbatimOut}
- \executGiacmp{XCas.giac}
-
- \immediate\write18{mpost XCasmp}
-
-\begin{center}
- \includegraphics{XCasmp.\theTVn}
-\end{center}
-\stepcounter{TVn}
+{\end{VerbatimOut}\dresse{}
}
@@ -914,41 +1382,17 @@ fprint(Sortie,Unquoted,Resultat);
fclose(Sortie);
\end{VerbatimOut}
-\newenvironment{TSq}
+\newenvironment{TSq}%
{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasQ.user}}
-{\end{VerbatimOut}
- \executGiacmp{XCasQ.giac}
-
- \immediate\write18{mpost XCasmpQ}
-
-\begin{center}
- \includegraphics{XCasmpQ.\theTVn}
-\end{center}
-\stepcounter{TVn}
-}
-
-
-
-\newenvironment{TSq*}
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasQ.user}}
-{\end{VerbatimOut}
- \executGiacmp{XCasQ.giac}
-
-
-
-
-\immediate\write18{texmaker XCasmpQ.mp}
-
- \immediate\write18{mpost XCasmpQ}
-
-\begin{center}
- \includegraphics{XCasmpQ.\theTVn}
-\end{center}
-\stepcounter{TVn}
-}
+{\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}
@@ -966,39 +1410,16 @@ fprint(Sortie,Unquoted,Resultat);
fclose(Sortie);
\end{VerbatimOut}
-\newenvironment{TS}
+\newenvironment{TS}%
{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasL.user}}
-{\end{VerbatimOut}
- \executGiacmp{XCasL.giac}
-
- \immediate\write18{mpost XCasmpL}
-
-\begin{center}
- \includegraphics{XCasmpL.\theTVn}
-\end{center}
-\stepcounter{TVn}
-}
-
-
-
-\newenvironment{TS*}
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasL.user}}
-{\end{VerbatimOut}
- \executGiacmp{XCasL.giac}
-
-\immediate\write18{texmaker XCasmpL.mp}
-
- \immediate\write18{mpost XCasmpL}
-
-\begin{center}
- \includegraphics{XCasmpL.\theTVn}
-\end{center}
-\stepcounter{TVn}
-}
-
-
+{\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}
@@ -1016,44 +1437,19 @@ fprint(Sortie,Unquoted,Resultat);
fclose(Sortie);
\end{VerbatimOut}
-\newenvironment{TSc*}
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTSc.user}}
-{\end{VerbatimOut}
- \executGiacmp{XCasTSc.giac}
-
-\immediate\write18{texmaker XCasmpTSc.mp}
- \immediate\write18{mpost XCasmpTSc}
-\begin{center}
- \includegraphics{XCasmpTSc.\theTVn}
-\end{center}
-\stepcounter{TVn}
-}
+\newenvironment{TSc*}[1]%
+{\setcounter{TVnbis}{\theTVn}
+\setcounter{TVn}{#1}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTSc.user}}
+{\end{VerbatimOut}\dressetoile{TSc}}
-
-
-
-
-\newenvironment{TSc}
+\newenvironment{TSc}%
{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTSc.user}}
-{\end{VerbatimOut}
- \executGiacmp{XCasTSc.giac}
-
- \immediate\write18{mpost XCasmpTSc}
-
-\begin{center}
- \includegraphics{XCasmpTSc.\theTVn}
-\end{center}
-\stepcounter{TVn}
-}
-
-
-
-
-
+{\end{VerbatimOut}\dresse{TSc}}
\begin{VerbatimOut}{XCasTV.giac}
@@ -1073,32 +1469,14 @@ fclose(Sortie);
\newenvironment{TV}%
{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTV.user}}%
-{\end{VerbatimOut}%
- \executGiacmp{XCasTV.giac}
- \immediate\write18{mpost XCasmpTV}
-\begin{center}
- \includegraphics{XCasmpTV.\theTVn}
-\end{center}
-\stepcounter{TVn}
-}
-
-
-
-
-\newenvironment{TV*}%
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTV.user}}%
-{\end{VerbatimOut}%
- \executGiacmp{XCasTV.giac}
-
-\immediate\write18{texmaker XCasmpTV.mp}
-
- \immediate\write18{mpost XCasmpTV}
-\begin{center}
- \includegraphics{XCasmpTV.\theTVn}
-\end{center}
-\stepcounter{TVn}
-}
+{\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}{XCasTVI.giac}
@@ -1118,35 +1496,22 @@ fclose(Sortie);
\newenvironment{TVI}%
{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVI.user}}%
-{\end{VerbatimOut}%
- \executGiacmp{XCasTVI.giac}
- \immediate\write18{mpost XCasmpTVI}
-\begin{center}
- \includegraphics{XCasmpTVI.\theTVn}
-\end{center}
+{\end{VerbatimOut}\dresse{TVI}}
-\stepcounter{TVn}
-}
-\newenvironment{TVI*}%
-{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVI.user}}%
-{\end{VerbatimOut}%
- \executGiacmp{XCasTVI.giac}
+\newenvironment{TVI*}[1]%
+{\setcounter{TVnbis}{\theTVn}
+\setcounter{TVn}{#1}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\£µ]{XCasTVI.user}}%
+{\end{VerbatimOut}\dressetoile{TVI}}
-\immediate\write18{texmaker XCasmpTVI.mp}
- \immediate\write18{mpost XCasmpTVI}
-\begin{center}
- \includegraphics{XCasmpTVI.\theTVn}
-\end{center}
-\stepcounter{TVn}
-}
%%
-%% Zi end
+%% Zi end -> enjoy :)