Le langage LaTeX
Le document applicatif interne
S'exercer au brouillon
Le module Formulo permet d'insérer des formules mathématiques dans les documents HTML grâce au langage LaTeX, inventé par Donald Knuth, l'un des pionniers de l'algorithmique et de la programmation.
Au sein d'un document applicatif (décrit en HTML), avec Formulo on définit des formules mathématiques grâce au langage LaTeX, via la balise <formule width="···">expression en LaTeX</formule>.
Pour un ajustement fin de la position on peut ajouter un décalage par rapport à la position d'origine, avec les attributs facultatifs dx="···" et dy="···" (on peut n'en mettre qu'un des deux, l'autre étant considéré comme nul par défaut).
On peut exprimer la largeur et les décalages en px (pixel) ou en em, (unité liée à la police ≈ la largeur d'un M) ; par exemple : "200px" et "-5em". Pour plus de détails, on pourra étudier la largeur et l'ajustement des formules sur un exemple didactique.
Pour simplifier la saisie on peut omettre tous les backslashes (\) dans la plupart des expressions mathématiques usuelles.
On peut construire de telles expressions sans rien connaître à LaTeX, grâce à CodeCogs. Un simple copier-coller suffit alors, comme le lecteur pourra l'expérimenter dans l'étude de cas.
fournit (après chargement) les formules :
Pour connaître l'identifiant d'une formule il suffit de cliquer dessus. Lorsqu'un identifiant n'est pas fourni dans la balise de définition de la formule il est calculé par Formulo. Lorsqu'une formule est clonée, c'est l'identifiant originel qui apparaît lors du clic (mathématiquement c'est bien ainsi qu'on procède, puisqu'il s'agit de la même formule).
cacher ('la partie HTML')
RAPPEL : toute instruction linguistique est testable via la mémoire à instructions, quel que soit le document applicatif.
On crée dynamiquement une formule par l'instruction : formule (identifiant) .définie .par (expression en LaTeX, largeur) ; on peut omettre l'identifiant et donc se contenter de l'instruction formule .définie .par (expression en LaTeX, largeur) ; alors l'identifiant est déterminé par Formulo sous la forme la formule ··· où ··· est le numéro de la formule, dans l'ordre de création. On peut aussi omettre la largeur, alors prise dans Formulo.L par défaut.
Cette fonction retourne un source HTML, que l'on convient ensuite d'écrire où bon nous semble. Cependant, seul l'ajout d'un identifiant (unique) permet ensuite de déplacer la formule, ou bien de la cloner.
On peut préfixer formule par nouvelle. , puisque nouvelle est un objet prédéfini dans AlgoDok pour autoriser cette forme linguistique, usuelle pour les développeurs habitués à la programmation par objets.
Il ne reste plus qu'à écrire (F1 + " " + F2) .sur ("le brouillon").
Comme en Javascript on doit utiliser \\ pour désigner un backslash
dans les chaînes de caractères, puisqu'un seul backslash est un caractère
d'échappement (exemple : \t désigne le caractère de tabulation),
Formulo permet de l'omettre dans les formules aux formes usuelles
(exemples : frac au lieu de \frac, pi au lieu de \pi,
sqrt au lieu de \sqrt).
On peut aussi ajouter un décalage : formule (identifiant) .décalée .de (dx, dy) .définie .par (expression en LaTeX, largeur).
On peut aussi préciser la largeur avec une variante de ce qui précède, plus linguistique : formule (identifiant) .de .largeur (valeur) .définie .par (expression en LaTeX).
Chaque taille (width, dx ou dy) est un entier (unité par défaut : le pixel) ou un nombre décimal avec une unité, comme "-3.5em" ou "4px".
Certaines valeurs exploitées par Formulo peuvent être modifiées dynamiquement, sans nécessité de modification de l'ILO. Ceci permet donc à d'autres modules, en quelque sorte, de modifier dynamiquement cette dernière.
On doit noter que la disparition du signifiant formule
dénature
la sémantique française du module…
Pour que les formules soient appelées calcul, de largeur 8em par défaut et avec l'article le comme préfixe du signifiant :
cacher ('la partie ILO')
Mais le lecteur peut en créer dynamiquement, à partir des exemples suivants (à condition d'exécuter ("le script 1") pour voir les formules) :
On rappelle que le backslash étant un caractère d'échappement en Javascript, dans une instruction il faut veiller à tous les doubler (\\) afin qu'ils soient pris en compte comme tels. C'est pourquoi ce module complète automatiquement les manques sur les balises LaTeX les plus courantes.
cacher ("l'étude de cas")
On peut aussi utiliser MathJax, mais alors il faut ajouter explicitement en fin de document l'initialisation de Formulo avant que MathJax fasse son travail, puisque ce dernier ne comprend que le langage LaTeX pur :
<script> if(objet('MathJax')) Formulo.ini(); </script>
Dans ce cas le module Formulo n'exploite donc pas sa feuille de style puisque la mise en forme est laissée entièrement à MathJax qui construit des structures HTML avec ses propres feuilles de style, contrairement à LaTeXcogs qui construit seulement des images, habillées alors par Formulo.
L'inconvénient d'installer MathJax sur un site particulier est d'occuper un volume complet de plus de 150 Mo, à comparer aux… 56 Ko pour installer AlgoDok + Formulo (puisque sans MathJax les images construites sont sur serveur annexe). C'est pourquoi il est préférable d'utiliser MathJax directement sur le site natif, par exemple avec :
<script src=
"http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
cacher ('Avec MathJax')