Table des matières (masquer)
1. Sans aucune installation
EN COURS DE REDACTION….
LaTeXMathML is a JavaScript program has been created by modifying Peter Jipsen’s ASCIIMathML.js script.
2. Sans trop d’installation
Il existe des serveurs publics pour générer des vignettes LATEX
- http://www.forkosh.dreamhost.com/mimetex.cgi
- http://math.spip.org/tex.php # serveur LatexRender pour sites Spip
Pour les utiliser il suffit de les appeler :
- http://www.forkosh.dreamhost.com/mimetex.cgi?x=\frac{1-t^2}{1+t^2}
- http://math.spip.org/tex.php?x=\frac{1-t^2}{1+t^2}
Le site forkosh propose un rendu basé sur un système nommé mimetex il s’agit d’un exécutable autonome ne nécessitant pas l’installation de LATEX pour fonctionner en revanche le serveur Web doit être capable d’utiliser des cgi.
Le second utilise une autre méthode basée sur un procédé nommé tex2im qui est un outil utilisant un système LATEX installé pour produire des images à partir des formules.
Dans ce document, nous allons voir comment installer ces outils sur un serveur web.
3. Avec installation sous Linux
3.1 Installation de Mimetex
Tout se trouve sur http://www.forkosh.com/mimetex.html. Nous allons télécharger le nécessaire pour la compilation de l’éxécutable mimetex, le compiler, installer mimetex.php et modifiez le fichier local/config.php :
$ wget http://www.forkosh.com/mimetex.zip && unzip mimetex.zip $ cc -DAA mimetex.c gifsave.c -lm -o mimetex.cgi $ sudo mv mimetex.cgi /var/www/cgi-bin
le répertoire /var/www/cgi-bin étant à remplacer par le répertoire ou votre serveur Apache va chercher ses scripts cgi.
Faites maintenant un test : http://monServeur/mimetex.cgi?x=\frac{1-t^2}{1+t^2}
3.2 Installation de tex2im
LATEX et imagemagick doivent être installés sur votre machine.
$ wget http://www.nought.de/tex2im-1.8.tar.gz && tar zxf tex2im-1.8.tar.gz $ sudo mv tex2im-1.8/tex2im /usr/local/bin/ $ sudo chmod 755 /usr/local/bin/tex2im
Faites maintenant un test :
$ tex2im "\frac{1-t^2}{1+t^2}"
$ display out.png
Il reste maintenant à permettre au serveur d’accéder à cette application : copiez-collez ce script dans un fichier nommé tex.php:
<?php
//
// Serveur d'images TeX developpe pour SPIP par
// Philippe Riviere <fil@rezo.net>
// et Benjamin Sonntag <benjamin@sonntag.fr>
// Distribue sous licence GNU/GPL
// © 2004 - v0.2
// [->ChangeLog] : ajout d'une box
//
// Necessite l'installation de TeX, [->ImageMagick] , et du script
// qui fait la glue entre les deux : tex2im, lui-meme etant
// disponible a http://www.nought.de/tex2im.php sous GNU/GPL
// Cache du serveur
$cache_dir = "CACHE/spiTeX";
if (!is_dir($cache_dir))
mkdir ($cache_dir);
// Supprimer les codes dangereux pour [->551] ;
// extrait de http://www.mayer.dial.pipex.com/tex.htm
function math_ignore_dangerous($texte) {
$danger = "include|def|command|loop|repeat|open|toks|".
"output|input|catcode|name|\^\^|every|errhelp|".
"errorstopmode|scrollmode|nonstopmode|batchmode|read|".
"write|csname|newhelp|uppercase|lowercase|relax|".
"aftergroup|afterassignment|expandafter|noexpand|".
"special";
if (ereg("($danger)",$texte,$regs))
return "\\textrm{\color{red}Don't ``$regs[1]'' me.}";
return $texte;
}
function math_enhance($tex) {
// Correction pour forcer la ligne de base
$tex = "\\setbox1=\\hbox{\$\\displaystyle ".$tex."\$}\n"
."\\newdimen\\haut\n\\newdimen\prof\n"
."\\haut=\\ht1\n\\prof=\\dp1\n"
."\\ifdim\\haut>\\prof\\prof=\\haut\\else\\haut=\\prof\\fi\n"
."\\advance\haut by .5em\n"
."\\color{white}\\vrule height \\haut depth \\prof width 0.1pt\\color{black}\\box1";
return $tex;
}
function math_($texte) {
// Options de tex2im
// -z = fond transparent ; -a bascule le statut de l'antialisaing ; -r = resolution
$options = "-z -a -r 110x110";
// pour passer le fichier tex_header.tex en options (ajout d'includes)
$options .= " -x tex_header.tex";
global $cache_dir;
$fichier = "$cache_dir/".md5(trim($texte)).'.png';
if (!file_exists($fichier) OR (filemtime($fichier)<filemtime("spitex.php"))) {
$texte = math_ignore_dangerous($texte);
$texte = escapeshellarg(math_enhance($texte));
// Petit bricolage Nico : convert avec l'option -trim débarasse l'image des bords blancs inutiles
$cmd = "/usr/local/bin/tex2im $options -o $fichier $texte && convert $fichier -trim $fichier";
exec($cmd);
}
return $fichier;
}
// Retourner l'image demandee
header("Content-Type: image/png");
readfile(math_(urldecode($_SERVER['QUERY_STRING'])));
?>
et le contenu suivant dans le fichier tex_header.tex:
\usepackage{amssymb}
% Définition des symboles pour les ensembles de nombres
\def\NN{\mathbb N}
\def\ZZ{\mathbb Z}
\def\QQ{\mathbb Q}
\def\RR{\mathbb R}
\def\CC{\mathbb C}
Toujours dans le répertoire du serveur web,
$ sudo ln -s tex.php spitex.php $ sudo mkdir CACHE $ sudo mkdir CACHE/spiTeX $ sudo chmod 777 -R CACHE/
Faites maintenant un test : http://monServeur/tex.php?x=\frac{1-t^2}{1+t^2}
PLus d’infos sur
- http://www.spip-contrib.net/Serveur-TeX
- http://www.nought.de/tex2im.html
- http://wiki.unelectronlibre.info/spip/installer_un_serveur_ortho_et_tex
4. Avec installation sous Windows
4.1 Installation de Mimetex
Rendez-vous sur la page http://www.forkosh.dreamhost.com/source_mimetex.html#quickbuild vous trouverez des binaires pré-compilés, en ce qui nous concerne mimetex.exe pour windows. Dézippez l’archive et installez-la le répertoire cgi-bin de votre serveur web (qui accepte évidemment les cgi !).
5. Un cas concret : installation d’un wiki gérant le LATEX
- Voyez d’abord comment installer PmWiki
- Téléchargez le fichier mimetex.php et déposez-le (après l’avoir dézippé) dans le répertoire cookbook de votre installation pmwiki. Enfin modifiez local/config.php en ajoutant à la fin du fichier :
$MimetexUrl = 'http://www.forkosh.dreamhost.com/mimetex.cgi'; # serveur public mimetex
#$MimetexUrl = 'http://math.spip.org/tex.php'; # serveur Spip tex2im
#$MimetexUrl = '/cgi-bin/mimetex.exe'; # serveur local mimetex windows
#$MimetexUrl = '/cgi-bin/mimetex.cgi'; # serveur local mimetex linux
#$MimetexUrl = 'tex.php'; # serveur local tex2im
include_once('cookbook/mimetex.php');
Les # correspondent à des commentaires; commentez et décommentez les lignes en fonction de votre choix de serveur.
Et maintenant faites des maths !
{\$ \int_0^{+\infty} e^{-x^2} dx = \frac{\sqrt\pi}2 \$ }
