testfr.tex 8.31 KB
Newer Older
1 2
% Pour compiler ce fichier, vous devez d'abord installer
% hevea: http://hevea.inria.fr
3
% giacfr.tex: http://www-fourier.ujf-grenoble.fr/~parisse/giac/giacfr.tex
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
% copier hevea.sty dans le repertoire courant
% ensuite vous pouvez tester avec la commande hevea test 
\documentclass[a4paper,11pt]{article}
%\textwidth 11,8 cm
%\textheight 17 cm
\textheight 23 cm
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{stmaryrd}
\usepackage{makeidx}
\usepackage{times}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[francais]{babel}
\usepackage{latexsym}
\usepackage{graphicx}
%\usepackage{pst-plot}
\usepackage{ifpdf}
\ifpdf
 \usepackage[pdftex,colorlinks]{hyperref}
\else
 \usepackage[ps2pdf,
            breaklinks=true,
            colorlinks=true,
            linkcolor=red,
            citecolor=green
            ]{hyperref}
\fi

\input{giacfr.tex}
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
\usepackage[auto]{mathjax}
\renewcommand{\jax@meta}{\begin{rawhtml}<script language="javascript"> 
var ua = window.navigator.userAgent;  
var old_ie = ua.indexOf('MSIE ');  
var new_ie = ua.indexOf('Trident/');  
if ((old_ie > -1) || (new_ie > -1) || Boolean(window.chrome)){
 (function () {
  var script = document.createElement("script");
  script.type = "text/javascript";
  script.src  = "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_CHTML";
  document.getElementsByTagName("head")[0].appendChild(script);
})();
}
</script>
\end{rawhtml}}
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69


\newtheorem{thm}{Théorème}
\newtheorem{defn}[thm]{D\'efinition}
\newtheorem{prop}[thm]{Proposition}
\newtheorem{lemma}[thm]{Lemme}
\newtheorem{example}[thm]{Exemple}


\newcommand{\R}{{\mathbb{R}}}
\newcommand{\C}{{\mathbb{C}}}
\newcommand{\Z}{{\mathbb{Z}}}
\newcommand{\N}{{\mathbb{N}}}
\newcommand{\Q}{{\mathbb{Q}}}
\newcommand{\tr}{\mbox{tr\,}}

\makeindex

\title {Exemple de calculs interactifs dans un fichier \LaTeX\ compil\'e
70
en HTML et PDF.}
71 72 73 74 75 76 77
\author{B. Parisse\\Institut Fourier\\UMR 5582 du CNRS
\\Université de Grenoble}

\date{Juillet 2015}


\begin{document}
78
\begin{giacjshere}
79 80
%\loadgiacjs
%\loadgiacjsonline
81 82
Un $x$
$$ 1/2 $$
83 84 85 86 87 88 89 90 91 92
 
\maketitle

\tableofcontents

\printindex

\section{Description}
Ce source \LaTeX\ illustre l'utilisation du moteur de calcul formel Giac
lorsqu'on le compile en HTML avec {\tt hevea} (test\'e avec
93 94 95
\verb|hevea 2.23, 2.25|).  Il est possible de compiler \`a la fois
vers HTML5 et vers PDF en compilant avec {\tt icas} sous linux.

96 97 98 99 100 101 102 103 104 105 106 107 108 109

\section{Installation}
Vous devez installer
\ahref{http://hevea.inria.fr}{hevea} 
et recopier
\ahref{http://www-fourier.ujf-grenoble.fr/\%7eparisse/giac/giacfr.tex}{giacfr.tex}
et \ahref{http://hevea.inria.fr/distri/hevea.sty}{hevea.sty}
dans le m\^eme r\'epertoire que votre fichier source.
Vous pouvez t\'el\'echarger une copie du source
\ahref{http://www-fourier.ujf-grenoble.fr/\%7eparisse/giac/testfr.tex}{testfr.tex}
de ce fichier et v\'erifier votre installation en le compilant\\
\verb|hevea testfr|

\section{Utilisation} 
110 111 112 113 114 115 116 117
La commande\verb|\begin{giacjshere}|\index{giacjshere}, 
\verb|\begin{giacjs}|\index{giacjs} ou \verb|\begin{giacjsonline}|\index{giacjsonline}
doit figurer juste apr\`es \verb|\begin{document}|, selon que l'on va charger le moteur
de calcul \verb|giac.js| de la m\^eme fa\c{c}on que la page HTML,
depuis une installation de Xcas sur le disque dur
ou depuis le serveur de l'Institut Fourier. La
commande correspondante \verb|\end{giacjs}|, \verb|\end{giacjshere}| 
ou \verb|\end{giacjsonline}| 
118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
doit figurer juste avant \verb|\end{document}|.
Pour que les liens du tableau de bord Table et Index fonctionnent,
vous devez imprimer la table des mati\`eres et l'index au d\'ebut du
document, comme dans ce fichier (commandes \verb|\tableofcontents|\index{table} et
\verb|\printindex|\index{index} juste apr\`es
\verb|\begin{giacjsonline}| et commande \verb|\makeindex| 
juste avant \verb|\begin{document}|).

Pour cr\'eer une commande en ligne avec r\'eponse en MathML (ou
graphique 2d) utilisez
\verb|\giacinputmath{}|,
par exemple\\ \verb|\giacinputmath{factor(x^10-1)}|\index{giacinputmath}
\giacinputmath{factor(x^10-1)}
On peut ajouter un argument optionnel pour changer le style~:\\
\verb|\giacinputmath[style="width:200px;height:20px;font-size:large"]{factor(x^10-1)}|\\
\giacinputmath[style="width:200px;height:20px;font-size:large"]{factor(x^10-1)}
Vous pouvez imposer la commande appliqu\'ee avec
\verb|\giaccmdmath{}{}|,
par exemple\\ \verb|\giaccmdmath{factor}{x^4-1}|\index{giaccmdmath} 
\giaccmdmath{factor}{x^4-1}
et ajouter un argument de style\\
\verb|\giaccmdmath[style="width:200px;height:20px;font-size:large"]{factor}{x^4-1}|\\
\giaccmdmath[style="width:200px;height:20px;font-size:large"]{factor}{x^4-1}

142 143 144 145 146 147 148
Pour cacher le champ de saisie et donner un nom au bouton, 
utiliser \verb|\giachidden{}{}| 
ou \verb|\giachiddenmath{}{}| 
par exemple
\giachidden{factor(x^10-1)}{reponse} ou
\giachiddenmath{factor(x^10-1)}{reponse}
 
149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178
Pour cr\'eer une commande hors-ligne avec r\'eponse en MathML (ou sous forme de graphique 2d)
utilisez \verb|\giacinputbigmath{}| ou 
\verb|\giaccmdbigmath{}{}|, ces commandes
acceptent aussi un argument optionnel de style~:\\
\verb|\giacinputbigmath{factor(x^100-1)}|\index{giacinputbigmath}\\
\giacinputbigmath{factor(x^100-1)}\\
\verb|\giacinputbigmath[style="width:600px;height:20px;font-size:large"]{factor(x^100-1)}|\\
\giacinputbigmath[style="display:none;width:600px;height:20px;font-size:large"]{factor(x^100-1)}\\
\verb|\giaccmdbigmath{factor}{x^100-1}|\index{giaccmdbigmath}\\
\giaccmdbigmath{factor}{x^100-1}\\
\verb|\giaccmdbigmath[style="width:600px;height:20px;font-size:large"]{factor}{x^100-1}|\\
\giaccmdbigmath[style="width:600px;height:20px;font-size:large"]{factor}{x^100-1}


Pour une commande avec r\'eponse en mode texte ou sous forme de graphique 2d 
utiliser \verb|\giacinput|ou
\verb|\giacinputbig|\index{giacinputbig}, 
par exemple\\ \verb|\giacinput{factor(x^4-1)}|\index{giacinput}  donne~:\\
\giacinput{factor(x^4-1)}\\
La m\^eme avec un argument de style optionnel de la ligne de commande\\ 
\verb|\giacinput[style="width:200px;height:20px;font-size:large"]{plot(sin(x))}|\\
\giacinput[style="width:200px;height:20px;font-size:large"]{plot(sin(x))}

Un bouton avec une commande qui sera appliqu\'ee \`a un argument avec
\verb|\giaccmd|, ici \verb|\giaccmd{factor}{x^4-1}|\index{giaccmd}~:\\
\giaccmd{factor}{x^4-1}\\
accepte aussi un argument de style optionnel~:\\
\verb|\giaccmd[style="width:200px;height:20px;font-size:large"]{factor}{x^4-1}|\\
\giaccmd[style="width:200px;height:20px;font-size:large"]{factor}{x^4-1}

179 180 181 182 183 184
{\bf Attention}, pour toutes ces commandes, il faut remplacer dans le
source latex le signe \verb|<| par
\verb|&lt;| et \verb|>| par \verb|&gt;| sinon ces caract\`eres
sont interpr\'et\'es comme des d\'elimieturs HTML.

La m\^eme chose avec un programme ou une commande de plusieurs lignes
185 186 187 188 189 190 191 192
avec \verb|\begin{giacprog}...\end{giacprog}|\index{giacprog}~:
\begin{giacprog}
f(x):={
  local y;
  si x<0 alors y:=-x; sinon y=x; fsi;
  return y;
}
\end{giacprog}
193 194 195 196 197
Ici on peut utiliser les caract\`eres \verb|<| et \verb|>|. Attention, il 
ne pas utiliser cet environement dans un autre environement (itemize,
enumerate...).
Si vous souhaitez que le programme soit interpr\'et\'e au chargement
de la page HTML, utilisez \verb|giaconload| au lieu de \verb|giacprog|.
198 199 200 201 202

La commande \verb|\giacslider{}{}{}{}{}|
permet de cr\'eer une variable
modifiable par le lecteur \`a la souris et des calculs qui
d\'ependent de cette variable~:\\
203 204
\verb|\giacslider{a}{-5}{5}{0.1}{2.3}{plot(x^2+a*x)}|\index{giacslider} \\
\giacslider{a}{-5}{5}{0.1}{2.3}{plot(x^2+a*x)}
205 206 207 208 209 210

Pour cr\'eer un lien utiliser \verb|\giaclink{}|, par
exemple un lien vers Xcas offline~:\\
\verb|\giaclink{http://www-fourier.ujf-grenoble.fr/\%7eparisse/xcasfr.html#+factor(x^4-1)&+a:=idn(3)&}|\index{giaclink}\\
\giaclink{http://www-fourier.ujf-grenoble.fr/\%7eparisse/xcasfr.html#+factor(x^4-1)&+a:=idn(3)&}

211 212 213 214 215 216 217 218 219 220 221
\section{Postprocessing}
On peut utiliser \verb|hevea --mathjax| du fork 
\verb|https://github.com/YannickChevalier/hevea-mathjax|
pour laisser MathJax faire le rendu des formules math\'ematiques.
On peut alors convertir en mathml en utilisant itex2mml
\verb|https://golem.ph.utexas.edu/~distler/blog/itex2MML.html|
Attention, il faut remplacer \verb|\(| et \verb|\)| par \verb|$|,
certains caract\`eres ne sont pas support\'es (par exemple \verb|\ |),
et \verb|\begin{equation}| ou \verb|eqnarray| n'est pas support\'e.

\end{giacjshere}
222
\end{document}