% les paquets nécessaires : fancyverb pour
% les environnements verbatim et pstricks
% pour la sortie graphique (les graphiques
% xcas sont traduits en pstricks)
% ifplatform pour régler le cas de windows
% auto-pst-pdf pour pouvoir compiler avec pdflatex

\documentclass[12pt]{article}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc} % a modifier selon les cas
\usepackage{fancyvrb,pst-plot}
\usepackage{ifplatform}
\usepackage{auto-pst-pdf}

% 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. 


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

\begin{VerbatimOut}{Xcas.giac}
maple_mode(0);
Sortie:=fopen("Xcas.tex");
read("Xcas.user");
Resultat:=latex(ans());
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.giac}
Sortie:=fopen("Xcasf.tex");
courbe:=read("Xcasf.user"):;
Resultat:=latex(courbe);
fprint(Sortie,Unquoted,Resultat);
fclose(Sortie);
\end{VerbatimOut}




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

\newenvironment{Xcas}
{\VerbatimEnvironment\begin{VerbatimOut}{Xcas.user}}
{\end{VerbatimOut}
%% si WINDOWS :
\ifwindows
\immediate\write18{giac Xcas.giac}
\else
%% si GNU_LINUX ou MAC :
\immediate\write18{giac < Xcas.giac}
\fi
$\input{Xcas}$
}







%Sortie en mode graphique


\newenvironment{Xcasf}
{\VerbatimEnvironment\begin{VerbatimOut}{Xcasf.user}}
{\end{VerbatimOut}
%% si WINDOWS :
\ifwindows
\immediate\write18{giac Xcasf.giac}
\else
%% si GNU_LINUX ou MAC :
\immediate\write18{giac < Xcasf.giac}
\fi           
\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
$f(x)=$
\begin{Xcas}
desolve([y'+y=0,y(0)=2],y)[0];
\end{Xcas}

% 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.

\end{document}

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