Castex est un script python qui compile des documents pdfLaTeX avec des calculs formels effectués par le moteur mathématique giac.

Fonctionnement
Castex a été inspiré par pgiac, mais il adopte une syntaxe style LaTeX.

On commence par préparer un fichier source qui mélange un texte et des calculs entourés par la commande \giac{...}. Ce fichier est ensuite filtré par castex qui produit un document pdf. Voici un exemple "hello world". On écrit
Hello world
\giac{2+2}
dans un fichier hello.cas et on tape en ligne de commande :
python castex.py hello
Castex s'occupe alors de calculs (à l'aide de giac) et de compilation (à l'aide de latex). En particulier, une préamble LaTeX est automatiquement ajoutée. On obtient donc le surprenant résultat dans le fichier hello.pdf :

Il existe trois versions de la commande \giac :
  1. \giac{p:=2+2} :
    cela affiche la commande et le résultat, tout comme dans l'exemple ci-dessus.
  2. \giac*{p:=2+2} :
    cela n'affiche que le résultat (c-à-d. 4) incrusté dans le texte.
  3. \giac**{p:=2+2} :
    cela n'affiche que la commande transformé par latex et incrustée dans le texte. Le calcul est tout de même effectué et la variable p est donc affectée. C'est utile pour des définitions et affectiations de variables, car le résultat est pratiquement identique à la commande.
On peut imaginer aussi une quatrième commande de ce type qui ne ferait pas de calcul mais seulement le formatage latex (en fait giac dispose d'une telle fonctionalité).

Voici un exemple plus élaboré avec quelques graphiques (en fait castex est en version 0.1 alpha, c'est donc plutôt un fichier test qu'un vrai exemple...): On peut remaquer que les données pour les images sont calculées par giac mais les fichiers graphiques sont générés par castex.

Motivation
Le fichier produit par castex ressemble un peu à une feuille de calcul maple ou xcas. Avec un éditeur de texte bien configuré pour lancer une compilation (Texmaker ou Notepad++) et une bonne visionneuse pdf à côté, qui refraîchi l'affichage en temps réel (Sumatra), on peut même imaginer de travailler avec castex/giac d'une manière presque interactive.
Ceci ne remplacera bien évidemment pas l'interactivite de xcas : à chaque fois on execute l'ensemble de commandes, puis la compilation prend un peu de temps. Mais castex pourrait être commode pour préparer les comptes rendus d'une session interactive. On peut mettre ici plus d'accent sur les explications que sur les commandes et les calculs. Puis, le mode compilateur force une rédaction progressive, pas toujour favorisée par le fonctionnement d'une feuille de calcul interactive.

Installation (windows).
Bien évidemment, il faut d'abord instaler latex, python (version 2.*) et giac/xcas.
Pour faire les calculs formel, castex utilise pygiac, une classe python communiquant avec giac.
Pour produire des graphiques, castex a besoin du package python matplotlib (il est bien inclus dans la distribution python(x,y) recommandée ci-dessus).

Castex a été testé avec MiKTeX et python(x,y) qui contient par ailleurs pas mal de packages intéressants. Avec tout cela, il suffit de mettre castex.py et pygiac.py dans un même dossier de son choix.
En ce moment, castex est testé et fonctionne sous windows, mais à terme il devrait être indépendant du système.

Téléchargement : castex.py et pygiac.py.