% les paquets nécessaires : fancyverb pour
% les environnements verbatim et pst-all 
% pour la sortie graphique (les graphiques
% xcas sont traduits en pstricks...et bientôt
% en metapost si je suis courageux...)

\documentclass[12pt]{article}
\usepackage{fancyvrb,pst-all}


% il faut être en mode shell-escape pour autoriser
% les sorties de la compil tex. Pour emacs, voir en 
% bout de fichier, pour les autres éditeurs, modifier
% la commande de compil. Sinon, aller dans texmf.cnf
% pour que le mode soit automatisé (shell-escape t)


\makeatletter
\newcommand{\executGiac}[1]{
\immediate\write18{giac  <#1 } }
\makeatother



% Pour une sortie de calcul~:
% on écrit ce script dans Xcass.in
% Il sera lu par giac.

\begin{VerbatimOut}{Xcass.in}
maple_mode(0);
Sortie:=fopen("xcass.tex");
read("xcass.out");
Resultat:=cat(latex(ans()[0]));
fprint(Sortie,Unquoted,Resultat);
fclose(Sortie);
\end{VerbatimOut}




% Pour une sortie graphique~:
% on adapte car le résultat de 
% latex(courbe) est un script pstricks

\begin{VerbatimOut}{xcasf.in}
Sortie:=fopen("xcasf.tex");
courbe:=read("xcasf.out"):;
Resultat:=cat(latex(courbe));
fprint(Sortie,Unquoted,Resultat);
fclose(Sortie);
\end{VerbatimOut}




%Sortie en mode maths centré~:
% un nouvel environnement qui sort le
% résultat calculé par giac/xcas


\newenvironment{Xcass}
{\VerbatimEnvironment\begin{VerbatimOut}{xcass.out}}
{\end{VerbatimOut}
           \executGiac{Xcass.in}
            \[\input{xcass}\]}



%Sortie en mode graphique


\newenvironment{xcasf}
{\VerbatimEnvironment\begin{VerbatimOut}{xcasf.out}}
{\end{VerbatimOut}
           \executGiac{xcasf.in}
            \input{xcasf}}



\begin{document}

% Il ne reste plus qu'à faire appel à cet environnement à l'intérieur 
% d'un fichier \LaTeX{}~:



% un commentaire

    La solution de l'équation différentielle $y"+y=0$ avec les conditions particulières $y(0)=y'(0)=1$
est fournie par XCAS grâce à la commande \texttt{desolve}. Il s'agit de la fonction
définie par~:


% on demande la solution d'une équa diff

\begin{Xcass}
desolve([y'+y=0,y(0)=2],y)[0];
\end{Xcass}

% elle est affichée


Nous obtenons également son  graphe grâce à la commande \texttt{plot}~:


% on demande le graphe correspondant

\begin{xcasf}
plot(desolve([y''+y=0,y(0)=1,y'(0)=1],y)[0],x=-Pi..Pi,color=blue);
\end{xcasf}
 



% on peut ensuite travailler sur le style, afficher les commandes en rouge
% et les résultats en bleu «~à la TeXmacs~» par exemple.

Merci à Yves Delhaye et Bernard Parisse.

\end{document}

%%% Local Variables: 
%%% mode: latex --shell-escape
%%% TeX-master: t
%%% End: