Voir aussi la page LaTeX
Cette contribution vous explique comment permettre à vos utilisateurs de rentrer des formules en
simplement en tapant les formules en TeX (ou LaTeX) entre des balises $...$.
![]()
Pour cela, il faut que les formules soient compilées quelque part. Celà requiert a priori un serveur où latex est installé et où vous avez un accès "shell", c’est-à-dire où vous pouvez exécuter des commandes. Mais une autre solution est de faire faire le travail de compilation par un serveur quelque part sur internet, à qui vous soumettez des requêtes de formules à compiler et qui vous sert les images correspondantes. Ici nous laissons le choix, il y a un serveur hébergé par spip.org : http://math.spip.org/ et vous pouvez également (si vous avez la possibilité c’est préférable), compiler chez vous.
Puisqu’un ou plusieurs groupes de personnes sont d’accord pour mettre à disposition de la communauté SPIP un serveur générant ces images, ce raccourci pourra devenir standard à terme. La charge ne sera pas excessive, car le client SPIP comme le serveur de TeX disposent d’un cache.
Essais avec
; ce résultat est obtenu à partir du script tex2im (http://www.nought.de/tex2im.html), à installer dans /usr/local/bin/ ou ailleurs sur votre (notre) serveur, et du filtre avant_typo() ci-dessous, à installer dans ecrire/mes_options.php3.
Voici une formule sympa : $\sum_{i=0}^5 x_i^2$ ; elle s’affichera ainsi : ![]()
La même avec mimeTeX : (attention il faut mettre
\Bigsum au lieu de \sum).
Voir aussi http://c2.com/cgi/wiki?MathWiki et http://en.wikipedia.org/wiki/Wikipe....
Cette astuce est utilisée ici : http://ens.math.univ-montp2.fr/SPIP...
Afin de conserver un fonctionnement normal aux sites voulant afficher des $ ces raccourcis ne sont disponibles que si vous mettez
<math>quelque part avant dans le texte ; il est aussi possible de mettre<math>$...$</math>pour refermer le mode math et afficher des $ norrmalement, comme ici.
En voici une autre encore plus sympa : ![\left[ \begin{array}{rrrr} S_{11} & S_{21} & S_{31} \\ S_{12} & S_{22} & S_{32} \\ S_{13} & S_{23} & T_{33} \end{array} \right] \left[ \begin{array}{rrrr} S_{11} & S_{21} & S_{31} \\ S_{12} & S_{22} & S_{32} \\ S_{13} & S_{23} & T_{33} \end{array} \right]](local/cache-TeX/5ba08f8a3a8412c41273ec0e581b701d.png)
Et encore : 
Et plus complet encore :
![[C_3] = {\color{red} \langle \vec k_{3L} \vec k_{3L}^{\:\adj} \rangle }= \left[ \begin{array}{rrrr} S_{11} & S_{21} & S_{31} \\ S_{12} & S_{22} & S_{32} \\ S_{13} & S_{23} & S_{33} \end{array} \right] [C_3] = {\color{red} \langle \vec k_{3L} \vec k_{3L}^{\:\adj} \rangle }= \left[ \begin{array}{rrrr} S_{11} & S_{21} & S_{31} \\ S_{12} & S_{22} & S_{32} \\ S_{13} & S_{23} & S_{33} \end{array} \right]](local/cache-TeX/bad44c47e3d723026c3a9872268ed5cb.png)
Un dernier pour la route :
![H_0d_M = \frac{1}{\left|\Omega_k\right|^{1/2}}\ \mathrm{sinn}\left\{ \left|\Omega_k\right|^{1/2} \int_0^{z_1} (1+z)^2(1+\Omega_\mathrm{M}z)-z(2+z)\Omega_\Lambda]^{-1/2}dz\right\} H_0d_M = \frac{1}{\left|\Omega_k\right|^{1/2}}\ \mathrm{sinn}\left\{ \left|\Omega_k\right|^{1/2} \int_0^{z_1} (1+z)^2(1+\Omega_\mathrm{M}z)-z(2+z)\Omega_\Lambda]^{-1/2}dz\right\}](local/cache-TeX/d00976d28c8a261ecfad80a26f7f0239.png)
![]()
Voici ce qui se passe si vous essayez d’envoyer une commande dangereuse : $\input fichier.txt$ donne ![]()
Ancien code :
Le code client TeX est intégré en standard dans SPIP (à partir de la version 1.8alpha2). Voir ci-dessous le code du serveur.
mes_options.php3 ; pour passer en mode client/serveur il faut renseigner l’adresse du serveur (par exemple http://math.spip.org/tex.php?) :
Si vous avez un accès shell et un serveur en ligne 24h/24, et que vous voulez héberger un serveur compilateur, contactez nous, il vous faudra installer, en plus de tex2im (http://www.nought.de/tex2im.html) le script suivant :
Code du serveur tex.php :
(ARNO*) Il manque le support de symboles mathématiques usuels, notamment pouvoir écrire « x\in\mathbb(R) » (pour « x est un réel »).
Ce qui demande des choses en plus :
installer les fontes mathématiques de l’AMS sur la machine ;
installer les styles AMS (amsfont.sty et amssymb.sty) pour LaTeX ;
créer un fichier d’entête, par exemple « tex_header.tex », qui contient la ligne suivante :
installer ce fichier d’entête au même niveau que tex.php (par exemple) ;
ajouter dans « tex.php » un complément aux options :
pas encore testé, mais c’est le principe.
(Kri) Je suis d’accord, il faut inclure les paquetages standards, amstex en particulier. J’ai résolu le problème en patchant un peu tex2im pour lui mettre un "format" contenant ces paquetages, c’est un fichier binaire produit par initex et /dump qui accélère notablement la compilation. En nommant header.tex le fichier suivant :
Alors,
initex \&latex header.texfabriqueheader.fmtqu’on peut demander à LaTeX de charger à l’intérieur de tex2im patché (en gros j’enlève la portion autour de documentclass et je rajoute le format à charger) :Cela n’empêche pas de mettre encore une en-tête ailleurs que tex2im ira chercher.
Remarquez que cette solution de remplacement d’une formule par le résultat d’un traitement n’est pas propre à latex, s’il existe une manière de coder quelquechose au clavier, représentant un certain objet (par exemple de la musique), et que vous connaissez un logiciel traducteur qui produit un format qu’on peut inclure dans une page html, rien n’empêche d’utiliser la même méthode pour faire tourner le logiciel sur les parties incluses.