# Exemple de calculs interactifs dans un fichier LATEX compilé en HTML et PDF.

### B. Parisse
Institut Fourier
UMR 5582 du CNRS
Université de Grenoble

### Juillet 2015

## Table des matières

## Index

- giaccmd, 3
- giaccmdbigmath, 3
- giaccmdmath, 3
- giacinput, 3
- giacinputbig, 3
- giacinputbigmath, 3
- giacinputmath, 3
- giacjs, 3
- giacjshere, 3, 3

- giaclink, 3
- giaconload, 3
- giaconloadhide, 3
- giacprog, 3
- giacslider, 3
- index, 3
- table, 3

## 1 Description

Ce source LATEX illustre l’utilisation du moteur de calcul formel Giac lorsqu’on le compile en HTML avec hevea (testé avec `hevea 2.23, 2.25`). Il est possible de compiler à la fois vers HTML5 et vers PDF en compilant avec icas sous linux.

## 2 Installation

Vous devez installer hevea et recopier giacfr.tex et hevea.sty dans le même répertoire que votre fichier source. Vous pouvez télécharger une copie du source testfr.tex de ce fichier et vérifier votre installation en le compilant
`hevea testfr`

## 3 Utilisation

La commande`\begin{giacjshere}`, `\begin{giacjs}` ou `\begin{giacjshere}` doit figurer juste après `\begin{document}`, selon que l’on va charger le moteur de calcul `giac.js` de la même faç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 `\end{giacjs}`, `\end{giacjshere}` ou `\end{giacjshere}` doit figurer juste avant `\end{document}`. Pour que les liens du tableau de bord Table et Index fonctionnent, vous devez imprimer la table des matières et l’index au début du document, comme dans ce fichier (commandes `\tableofcontents` et `\printindex` juste après `\begin{giacjshere}` et commande `\makeindex` juste avant `\begin{document}`).

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

Pour cacher le champ de saisie et donner un nom au bouton, utiliser `\giachidden{}{}` ou `\giachiddenmath{}{}` par exemple factor(x^10-1)
ou
factor(x^10-1)

Pour créer une commande hors-ligne avec réponse en MathML (ou sous forme de graphique 2d) utilisez `\giacinputbigmath{}` ou `\giaccmdbigmath{}{}`, ces commandes acceptent aussi un argument optionnel de style :
`\giacinputbigmath{factor(x^100-1)}`

factor(x^100-1)
`\giacinputbigmath[style="width:600px;height:20px;font-size:large"]{factor(x^100-1)}`
factor(x^100-1)
`\giaccmdbigmath{factor}{x^100-1}`
x^100-1
`\giaccmdbigmath[style="width:600px;height:20px;font-size:large"]{factor}{x^100-1}`
x^100-1

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

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

Attention, pour toutes ces commandes, il faut remplacer dans le source latex le signe `<` par `&lt;` et `>` par `&gt;` sinon ces caractères sont interprétés comme des délimieturs HTML.

La même chose avec un programme ou une commande de plusieurs lignes avec `\begin{giacprog}...\end{giacprog}` :

    f(x):={
      local y;
      si x<0 alors y:=-x; sinon y=x; fsi;
      return y;
    }

Ici on peut utiliser les caractères `<` et `>`. Attention, il ne pas utiliser cet environement dans un autre environement (itemize, enumerate...). Si vous souhaitez que le programme soit interprété au chargement de la page HTML, utilisez `giaconload` (ou `giaconloadhide` pour masquer l’entrée) au lieu de `giacprog`. Par exemple `\begin{giaconloadhide}h(x):=x^3:;\end{giaconloadhide}` puis `\begin{giaconload}plot(h(x),x=-1..1)\end{giaconload}`

    h(x):=x^3:;

onload

    plot(h(x),x=-1..1);

onload

La commande `\giacslider{}{}{}{}{}` permet de créer une variable modifiable par le lecteur à la souris et des calculs qui dépendent de cette variable :
`\giacslider{a}{-5}{5}{0.1}{2.3}{plot(x^2+a*x)}`

= plot(x^2+a*x) Not evaled

Pour créer un lien utiliser `\giaclink{}`, par exemple un lien vers Xcas offline :
`\giaclink{http://www-fourier.univ-grenoble-alpes.fr/\%7eparisse/xcasfr.html#+factor(x^4-1)&+a:=idn(3)&}`
Tester en ligne

## 4 Postprocessing

On peut utiliser `hevea --mathjax` du fork `https://github.com/YannickChevalier/hevea-mathjax` pour laisser MathJax faire le rendu des formules mathématiques. On peut alors convertir en mathml en utilisant itex2mml `https://golem.ph.utexas.edu/~distler/blog/itex2MML.html` Attention, il faut remplacer `\(` et `\)` par `$`, certains caractères ne sont pas supportés (par exemple `\` ), et `\begin``{equation}` ou `eqnarray` n’est pas supporté.

## 5 Tortue logo

efface; avance 30;

> Ce document a été traduit de LATEX par H E V E A