Téhessin le Rezéen

professor.sty

Tablor évolue et grandit grâce à la collaboration de Denis Le Fur. Un système plus vaste comprend maintenant un noyau central, professor.sty qui fait fonctionner de nombreux modules dont tablor. Tous les détails sont sur le site de Denis : professor.sty

Une NOUVEAUTÉ professor pour calculer des produits de matrices, des inverses, des déterminants en direct dans un document LaTeX. Téléchargez le nouveau pro-mat.sty
Merci à Alain MATTHES pour ses conseils tikz...
Voici un GUIDE D'UTILISATION : et (26 mai 2009)

tablor.sty

Je viens d'écrire une petite extension LaTeX tablor.sty pour créer des tableaux de signes et de variations depuis latex en utilisant XCAS pour les calculs et MetaPOST pour les tableaux.
On rentre par exemple:
\begin{TV} TV([-10,+infinity],[-1,1],"g","t",x^2/(x^2-1),1,n,\tv) \end{TV} et on obtient le tableau de variation de x->x^2/(x^2-1). La documentation est ici~:
Le fichier tablor.sty est téléchargeable là : avec le fichier de configuration tablor.cfg ou tout simplement l'ensemble des fichiers sous forme d' archive.

Pour poser des questions au sujet de tablor, allez sur le forum, rubrique tablor.

Merci à Jean-Michel BOUCART qui a grandement amélioré la partie LaTeX de l'extension et à fp du forum mathematex pour les tableaux en couleur.

Les tableaux sont construits à partir du fichier : tableauVariation.mp de Frédéric Mazoit. ATTENTION ! Ce fichier a été mis à jour le 3 décembre 2008 avec la possibilité de mettre des doubles barres aux extrémités des zones interdites (debutNonDefStrict finNonDefStrict).


Les appels à giac ont été améliorés grâce à Yves Delhaye Yves Delhaye
Merci à Bernard pour XCAS.

Un environnement tablor-xetex.sty a été créé pour utiliser tablor avec XeLaTeX (sous UNIX uniquement).

La dernière version (4.07) a été mise en ligne le 10 mai 2010 à 00:00 : attention aux changements ! L'extension est présente sur CTAN, MiKTeX et TeXLive.

Tablor sous TeXmacs

Emmanuël Corcelle vient d'écrire un plugin afin d'utiliser tablor sous TeXmacs.
L'archive se trouve ici :
Voici deux captures d'écrans permettant de comprendre le fonctionnement :
- pour lancer une session Tablor : - pour créer un tableau : et voici l'export PDF de la session texmacs :

Configuration de tempo sous emacs pour tablor

Pour les heureux utilisateurs de tempo, voici quelques lignes pour faciliter votre vie :


;;
;;            TABLOR
;;;
;cas tableau de variation
      ("TV" (& > "\\begin{center}"n>
                 "\\begin{TV}" n>
"TV(["(p "debut de l'intervalle:")","(p "fin de l'intervalle:")"],"
                 "["(p "liste de valeurs interdites (,) :")"],"
                 "\""(p "nom de la fonction :")"\","
                 "\""(p "nom de la variable :")"\","
                 ""(p "expression de la fonction (utiliser x) :")","
""(p "type de tableau (1:complet, 0:sans signe, 2:que le signe) :")","
                 "\\tv)" n>
               "\\end{TV}" n>
               "\\end{center}" > % ))
      ;cas TVI
      ("TVI" (& > "\\begin{center}"n>
                  "\\begin{TVI}" n>
"TVI(["(p "debut de l'intervalle:")","(p "fin de l'intervalle:")"],"
                  "["(p "liste de valeurs interdites (,) :")"],"
                  "\""(p "nom de la fonction :")"\","
                  "\""(p "nom de la variable :")"\","
                  ""(p "expression de la fonction (utiliser x) :")","
""(p "type de tableau (1:complet, 0:sans signe, 2:que le signe) :")","
                  ""(p "f(x)=l pour la valeur l :")","
                  "\\tv)" n>
                  "\\end{TVI}" n>
                  "\\end{center}" > % ))
      ;cas signe produit
      ("TS" (& > "\\begin{center}"n>
                  "\\begin{TS}" n>
                  "TS(\""(p "nom du produit :")"\","
                 "["(p "liste des facteurs (,) :")"],"
        "["(p "debut de l'intervalle:")","(p "fin de l'intervalle:")"],"        
                  "\\tv)" n>
                  "\\end{TS}" n>
                  "\\end{center}" > % ))
      ;cas signe quotient
      ("TSq" (& > "\\begin{center}"n>
                  "\\begin{TSq}" n>
                  "TSq(\""(p "nom du quotient :")"\","
                  "["(p "liste des facteurs du numerateur (,) :")"],"
                  "["(p "liste des facteurs du denominateur (,) :")"],"
        "["(p "debut de l'intervalle:")","(p "fin de l'intervalle:")"],"
                  "\\tv)" n>    
                  "\\end{TSq}" n>
                  "\\end{center}" > % ))
       ;cas tableau de variation avec zone interdite
      ("TVZ" (& > "\\begin{center}"n>
                 "\\begin{TV}" n>
"TVZ(["(p "debut de l'intervalle:")","(p "fin de l'intervalle:")"],"
                 "["(p "liste de valeurs interdites (,) :")"],"
                  "["(p "liste des zones interdites ([,],[,]) :")"],"
                 "\""(p "nom de la fonction :")"\","
                 "\""(p "nom de la variable :")"\","
                 ""(p "expression de la fonction (utiliser x) :")","
""(p "type de tableau (1:complet, 0:sans signe, 2:que le signe) :")","
                 "\\tv)" n>
               "\\end{TV}" n>
               "\\end{center}" > % ))
;cas TVP
      ("TVP" (& > "\\begin{center}"n>
                  "\\begin{TVI}" n>
"TVP(["(p "debut de l'intervalle:")","(p "fin de l'intervalle:")"],"
                  "[["(p "liste de valeurs interdites de x(t)(,) :")"],"
                   "["(p "liste de valeurs interdites de y(t)(,) :")"]],"
                  "[\""(p "nom de la fonction x :")"\","
                   "\""(p "nom de la fonction y :")"\"],"
                  "\""(p "nom de la variable :")"\","
                  "["(p "expression de la fonction x (utiliser t) :")","
                  ""(p "expression de la fonction y (utiliser t) :")"],"
""(p "type de tableau (1:complet, 0:sans signe, 2:que le signe) :")","
                  ""(p "1 si fonctions trigo, 0 sinon :")","
                  "\\tv)" n>
                  "\\end{TVP}" n>
                  "\\end{center}" > % ))
Merci à Phil Pham. Philippe a également sévi pour insérer des snippets tablor avec YASNIPPETS. Contactez-le.

Autres exemples d'appel de XCAS sous LATEX

  • Des environnements LATEX pour exécuter XCAS à l'intérieur d'un fichier . Visualiser un ECM ICI Merci à Yves Delhaye et Bernard Parisse.
  • Voici un petit script qui fait appel à xcas/giac sous LaTeX pour obtenir un diaporama illustrant le CRIBLE D'ÉRATOSTHÈNE : , et html (1er février)
  • Voici un autre petit script qui fait appel à xcas/giac sous LaTeX pour obtenir des INTÉGRATIONS PAR PARTIES : , et html (1er février)
  • Programme XCAS pour résoudre les problèmes de PROGRAMMATION LINÉAIRE : tout d'abord une doc expliquant le fonctionnement et . Vous y trouverez également comment obtenir instantanément le polygone des contraintes dans un environnement LaTeX faisant appel à giac/XCAS. Voici la visualisation du résultat de la session XCAS et la session XCAS elle-même ou encore uniquement le programme XCAS. (7 février 08)
  • Voici un petit source pour obtenir P(X<t) lorsque X~N(m,s) avec affichage de la table de la loi centrée réduite au format tex, coloration de la colonne et de la ligne et explication du changement de variable aléatoire:

    Voici le code :
    
    \documentclass[12pt]{article}
    \usepackage[height=250mm,width=183mm]{geometry}
    \usepackage[T1]{fontenc}
    \usepackage[french]{babel}
    \usepackage[upright]{fourier}
    \usepackage{amsmath}
    \usepackage{colortbl}
    \usepackage{fancyvrb}
    \usepackage{ifplatform}
    
    
    
     
    
    \begin{VerbatimOut}{XCAStablenorm.cxx}
    tablenormale(L):={
    local pp,pd,j,k,t,T,u,Ti,Tbis,TT,XCAStablenormx,m,s,x;
    m:=L[0];s:=L[1];x:=L[2];
    tt:=evalf((x-m)/s);
    if(tt<0){tp:=-tt}else{tp:=tt};
    
    pp:=trunc(10*(tp));
    pd:=floor((tp-pp*0.1)*100); 
    // on fixe le nombre de chiffres après la virgule, ici 5
    DIGITS:=5;
    pd:=pd+1;
    pp:=pp+1;
    
    T:=[[0,seq(0.00+k*0.01,k=0..9)],seq([0.0+j*0.1,seq(evalf(normal_cdf(j*0.1+m*0.01)),m=0..9)],j=0..29)];
    u:=seq("c|",k=0..10);
    u[pd]:=">{\\columncolor[gray]{0.7}}c|";
    Ti:="";
    for(k:=0;k<size(u);k++){Ti:=Ti+u[k]};
    Tbis:=[seq([seq(10,j=0..ncols(T)-1)],nrows(T)-1)];
    Tbis:=for(k:=0;k<nrows(T);k++){Tbis[k]:=[seq(string(T[k,j])+"&",j=0..ncols(T)-2),string(T[k,ncols(T)-1])+if(k
      mod 10 ==0){"\\\\\\hline"}else{" \\\\ "}]};
    Tbis[0]:=subsop(Tbis[0],0="t &");
    Tbis[pp]:=subsop(Tbis[pp],0="\\rowcolor[gray]{0.7}"+Tbis[pp,0]);
    TT:="
    
    Voici le tableau donnant $\\Phi(t)=\\mathbb{P}(X<t)$ dans le cas $t\\in[0;2.99]$~:
    {\\small
    
    \\begin{center}";
    TT:=TT+"\\begin{tabular}{|"+Ti+"}\\hline ";
    for(k:=0;k<=nrows(Tbis)-1;k++){for(j:=0;j<=ncols(Tbis)-1;j++){TT:=TT+Tbis[k,j]}};
    XCAStablenormx:=TT+"\\end{tabular}"+"
    \\end{center}
    }
    \\bigskip
    
    On   veut   calculer    $\\mathbb{P}(X<"+x+")$   sachant   que   $X\\sim
    \\mathcal{N}("+m+","+s+")$.
    Comme la variable r\\'eduite $T=\\frac{X-"+m+"}{"+s+"}$ suit la loi $\\mathcal{N}(0,1)$ alors $X<"+x+"$
    \\'equivaut \\`a $T<"+latex((x-m)/s)+"$.
    
    "+
    if(tt<0){"Comme "+tt+" est n\\'egatif, on utilise le fait que $\\Phi(-t)=1-\\Phi(t)$
    On lit dans la table de la loi normale
    $\\mathbb{P}(T<"+latex((x-m)/s)+")\\approx
    1-\\mathbb{P}(T<"+round((tp)*100)*0.01+")\\approx
    "+simplify(1-normal_cdf(round((tp)*100)*0.01)) +"$"}
    else{
    "On lit dans la table de la loi normale
    $\\mathbb{P}(T<"+latex((x-m)/s)+")\\approx
    \\mathbb{P}(T<"+round((tp)*100)*0.01+")\\approx
     "+simplify(normal_cdf(round((tp)*100)*0.01)) +"$"};
    
    //return(XCAStablenormx);
    
    sortix:=fopen("XCAStablenormex.tex");
    fprint(sortix,Unquoted,XCAStablenormx);
    fclose(sortix);
    }:;
    
        
    \end{VerbatimOut}
    
    
    
    \begin{VerbatimOut}{XCAStablenorm.giac}
    maple_mode(0);
    read("XCAStablenorm.cxx");
    Sortie:=fopen("XCAStablenormex.tex");
    donnees:=read("XCAStablenorm.user");
    Resultat:=expr(donnees);
    fprint(Sortie,Unquoted,Resultat);
    fclose(Sortie);
    \end{VerbatimOut}
    
    
    
    \newenvironment{XCAStablenorm}
    {\VerbatimEnvironment\begin{VerbatimOut}{XCAStablenorm.user}}
    {\end{VerbatimOut}
    %% si WINDOWS :
    \ifwindows
    \immediate\write18{giac XCAStablenorm.giac}
    \else
    %% si GNU_LINUX ou MAC :
    \immediate\write18{giac < XCAStablenorm.giac}
    \fi
    \input{XCAStablenormex}
    }
    
    
    
    
    
    
    
    
    
    \begin{document}
    
    
    % voici par exemple P(X<1.96) lorsque X suit la loi normale de moyenne 1
    % et d'écart-type 0.5
    % La syntaxe est donc [moyenne,écart-type,t] pour P(X<t) avec X~N(moyenne,écart-type)
    
    \begin{XCAStablenorm}
    tablenormale([1,0.5,1.96])
    \end{XCAStablenorm}
    
    
    \end{document}
    %%% Local Variables: 
    %%% TeX-master: t
    %%% End: 
    
    
    
        
    (20 mars 2011)

pgiac

Jean-Michel SARLAT a créé de magnifiques scripts perl pour relier XCAS, LaTeX et MetaPOST : pfgiac pour les figures et pgiac... pour tout le reste ! Vous pouvez télécharger pgiac

Alors...

... Avec LaTeX, XCAS, pgiac et tablor, comment corriger le Bac sans effort...


Voici un petit corrigé de certains exercices de Bac assisté par nos brillants outils réunis : et et le fichier pgiac
Voici des exercices pour les spé ATS et leurs corrigés obtenus avec la même équipe :
et et le fichier pgiac

Le fichier de Jean-Michel est maintenant pourvu de nombreuses options. N'hésitez pas à visiter de temps en temps la page pgiac
Rajouter dans .emacs pour ceux qui ont la chance d'utiliser cet outil les lignes suivantes :

;; pgiac
(setq auto-mode-alist
(append '(("\\.w\\' " . LaTeX-mode) ) auto-mode-alist) )



(defvar  guillaume-pgiac-command

"pgiac -f eps %s.w && latex -interaction=nonstopmode %s.tex &&
latex -interaction=nonstopmode %s.tex && dvips -o %s.ps %s.dvi && ps2pdf %s.ps %s.pdf && kghostview %s.pdf &")
(defun guillaume-pgiac () (interactive) (save-buffer) (let ((fnse (file-name-sans-extension (buffer-file-name)))) (shell-command (format guillaume-pgiac-command fnse fnse fnse fnse fnse fnse fnse fnse fnse)))) (add-hook 'LaTeX-mode-hook '(lambda nil (define-key LaTeX-mode-map [(super c) (super g)] 'guillaume-pgiac))) (defvar guillaume-pgiacf-command "pgiac -f pdf %s.w && pdflatex -interaction=nonstopmode %s.tex && pdflatex -interaction=nonstopmode %s.tex && kpdf %s.pdf &") (defun guillaume-pgiacf () (interactive)
(save-buffer)
(let ((fnse (file-name-sans-extension (buffer-file-name))))
(shell-command (format guillaume-pgiacf-command fnse fnse fnse fnse fnse fnse fnse))))
(add-hook 'LaTeX-mode-hook '(lambda nil (define-key LaTeX-mode-map [(super c) (super f)] 'guillaume-pgiacf)))

Il ne reste plus qu'à taper S-c S-g dans le fichier .w pour voir s'afficher la visualisation ps.