Looking for Computer Science  & Information Technology online courses ?
Check my new web site: https://www.yesik.it !

Si vous avez déjà consulté des pages scientifiques sur Wikipedia, vous avez peut-être constaté que MediaWiki est capable d'afficher des formules mathématiques.

Par défaut, sur une installation de MediaWiki cette possibilité est désactivée. En effet, elle repose sur LaTeX pour la génération d'images contenant les formules. Et sur texvc, un programme spécifique écrit en OCaml pour valider les formules avant leur traitement. Autant dire que ce ne sont pas des conditions faciles à remplir en hébergement mutualisé.

Heureusement, il existe des solutions alternatives. Ainsi, nous allons voir ici qu'il est aussi possible d'utiliser mimeTex pour afficher des formules mathématiques dans MediaWiki.

Compiler mimeTex

mimeTex – disponible à l'adresse http://www.forkosh.com/mimetexmanual.html – est un utilitaire disponible sous licence GNU General Public License (GPL). Il est capable de générer un GIF à partir d'une formule mathématique compatible avec les formules de TeX/LaTeX. Mais s'il gère des formules compatibles, mimeTex reste cependant entièrement autonome. Il ne nécessite donc pour son fonctionnement ni l'installation de LaTeX, ni celle de fichiers de polices de caractères, ni même de convertisseur graphique (ImageMagick, GhostView, etc.).

mimeText est livré sous forme de code source téléchargeable à l'adresse http://www.forkosh.com/mimetex.zip. Pour obtenir l'exécutable, vous devrez compiler ces sources sur votre serveur. Ce qui implique que vous ayez un accès shell à votre serveur, et qu'un compilateur C y soit installé (généralement gcc sous Linux).

Si c'est le cas, connectez-vous à votre serveur et procédez:

# Connexion au serveur'
sh$ ssh mon-nom@mon-serveur
password: **********

# Téléchargement de mimeTex
mon-nom$ mkdir mimetex
mon-nom$ cd  mimetex 
mon-nom$ wget http://www.forkosh.com/mimetex.zip

# Décompression de l'archive
mon-nom$ unzip  mimetex.zip
Archive:  mimetex.zip
  inflating: README                  
  inflating: COPYING                 
  inflating: mimetex.c               
  inflating: mimetex.h               
  inflating: gfuntype.c              
  inflating: texfonts.h              
  inflating: gifsave.c               
  inflating: mimetex.html       

# Compilation
mon-nom$ cc -DAA mimetex.c gifsave.c -lm -o mimetex.cgi

Si cette étape c'est bien passée, vous devriez trouver dans le dossier courant l'exécutable mimetex.cgi.

Si vous ne pouvez pas compiler...

Si vous ne pouvez pas compiler mimeTex, soit parce que vous n'avez pas d'accès shell à votre serveur, soit parce que les outils de compilation ne sont pas disponibles sur votre hébergement mutualisé, vous trouverez un certain nombre de versions pré-compilées à l'adresse suivante:

Upload bit X.png

Bit X dans FileZilla — Dans FileZilla, il est possible de vérifier qu'un fichier est marqué exécutable (bit x) dans la boîte de dialogue qui s'affiche en choisissant File attributes... après un clic-droit sur le nom d'un fichier sur le serveur.

Vous pourrez y télécharger une archive ZIP pour votre système. Cette archive contient les sources de mimeTex ainsi que le CGI déjà compilé.

Après avoir uploadé le CGI, je vous conseille aussi de vérifier qu'il est bien marqué comme exécutable. Sur un serveur Linux, celà implique de s'assurer que le bit x est positionné.

Installer

mimeTex.png

Une fois mimeTex compilé, vous pouvez en tester le fonctionnement à l'aide du shell.

Si vous exécutez la commande mimetex.cgi, vous devriez voir apparaître (sous la forme d'un ASCII Art) la formule f(x)=x².

L'installation de mimeTex consiste à copier le programme mimetex.cgi dans le répertoire CGI de votre serveur web. En hébergement mutualisé sous Apache, c'est sans doute un répertoire du nom cgi-bin à la racine de votre dossier personnel:

# Copie du CGI
mon-nom$ cp mimetex.cgi $HOME/cgi-bin

A ce stade, vous pouvez vérifier le fonctionnement du script CGI et valider la configuration de votre serveur web en vous rendant à l'adresse http://www.mon-nom-de-domaine.com/cgi-bin/mimetex.cgi?x^2+y^2. Vous devriez voir apparaître dans votre navigateur une image correspondant à l'équation passée après le point d'interrogation dans l'URL.

Patcher MediaWiki

Reste à patcher MediaWiki, c'est à dire apporter une modification au code pour utiliser mimeTex.

Dans le fichier $MEDIAWIKI_HOME/includes/math.php, cherchez la fonction renderMath, et remplacez la par la version suivante:

public static function renderMath( $tex, $params=array() ) {
    return '<img class="tex" src="/cgi-bin/mimetex.cgi?' 
                 . rawurlencode($tex) 
                 . '" alt="LaTeX: ' 
                 . htmlspecialchars($tex) 
                 . '">';
}

Enfin reste à activer le rendu des formules mathématiques. À la fin de votre fichier $MEDIAWIKI_HOME/LocalSettings.php, ajoutez la ligne suivante:

$wgUseTeX = true;

Et voilà: vous pouvez désormais utiliser la balise <math>...</math> pour insérer des formules TeX dans les pages de votre wiki et elle seront converties en image pour s'afficher dans le navigateur des clients.

Piège:

Avec ce système, la formule est envoyée via une requête GET.

Ce qui implique une limite à la taille maximale de la formule. Il est difficile de donner un ordre de grandeur fiable. Mais normalement, vous devriez pouvoir tabler sur quelques milliers de caractères. Néanmoins, il est toujours possible – surtout en hébergement mutualisé – que le serveur soit configuré avec une limite bien plus faible. A garder en tête si mimeTex semble ne pas fonctionner avec une formule complexe mais valide.

Ressources