Le langage SMS est exclu sur les forums ProgBoards, tout message ne respectant pas la charte sera déplacé, modifié, ou supprimé par nos modérateurs.

Forum Web » PHP / ASP » Latex ?

neamar
Modérateur
Citer Linux Mozilla 5 - Posté le 12/05/2008 à 14:24
Bonjour !
Connaissez vous une librairie qui me permettrait d'utiliser du latex ?
Ce que je voudrais : une libraire qui me génère une image en fonction de ce que je lui passe en paramètre.

Pour l'instant, je n'ai rien trouvé de convaincant, mis à part un script CGI...malheureusement, je ne peux pas mettre de CGI sur "mon" serveur...
Des idées ?

Un exemple de mon code :


Qu'avons-nous fait ? Nous avons construit une bijection de <math>2\mathbb{N}</math> vers <math>\mathbb{N}</math>, ou encore, en renumérotant les Totobis <math>0,1,2,3,\ldots\,</math> selon <math>-1,-2,-3,-4,\ldots\,</math> une bijection de <math>\mathbb{Z}</math> vers <math>\mathbb{N}</math>



En PHP, je remplacerai tous les <math> par <img src="...." alt="..." />

Merci !
Before you criticize someone, you should walk a mile in their shoes. That way when you criticize them, you are a mile away from them and you have their shoes.

http://neamar.free.fr
Ou le portail général : http://neamar.fr
zuzuf
ProgBoarder
RemonterCiter Linux Mozilla 5 - Posté le 12/05/2008 à 15:42
je sais que wikipedia supporte ce genre de choses, mais je ne sais pas comment ça fonctionne. Tu peux faire un tour dans le code de wikimedia ou d'une de ses extensions tu trouveras peut-être.
Linux a un noyau, windows un pepin
Francesco
Modérateur
RemonterCiter Linux Firefox 2 - Posté le 12/05/2008 à 16:05
Wikipedia le fait en faisant des appels au shell, ce qui implique donc une installation fonctionelle de latex, mais sans utilisé de librairie spéciale.

En gros, le fonctionnement est le suivant : chaque formule latex trouvée dans le code wiki est inséré dans un template latex, afin de former un document complet traitable par latex. De ce document est généré une image en faisant appel à latex et, il me semble, également ImageMagick pour des conversions...
Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)
neamar
Modérateur
RemonterCiter Linux Mozilla 5 - Posté le 12/05/2008 à 16:16
Oulà ! C'est une architecture bien complexe !
D'autres idées plus envisageables pour un simple script ?
Before you criticize someone, you should walk a mile in their shoes. That way when you criticize them, you are a mile away from them and you have their shoes.

http://neamar.free.fr
Ou le portail général : http://neamar.fr
Francesco
Modérateur
RemonterCiter Linux Firefox 2 - Posté le 12/05/2008 à 16:48
Pas si complexe que cela, quand on sait que Latex est un véritable monstre pour créer les documents (clein d'oeil)
Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)
neamar
Modérateur
RemonterCiter Linux Mozilla 5 - Posté le 12/05/2008 à 17:47
J'ai trouvé une solution temporaire très sale, mais cela m'amène à une autre question, dans un registre différent :
Ma regexp est la suivante :


$donnees['Expression'] = preg_replace('#\<math\>(.+)\<\/math\>#isU', '<img src="../cgi-bin/mimetex.cgi?$1" alt="$1" />', $donnees['Expression']);


Le problème, c'est quand la balise math contient des chevrons : < ou > : dans ce cas là, mon document n'est plus valide XHTML (puisque le texte est dans le alt...évidemment, impossible d'appliquer un htmlentities ! Une idée ?
Before you criticize someone, you should walk a mile in their shoes. That way when you criticize them, you are a mile away from them and you have their shoes.

http://neamar.free.fr
Ou le portail général : http://neamar.fr
Francesco
Modérateur
RemonterCiter Linux Firefox 2 - Posté le 12/05/2008 à 18:15
et avec un CDATA ?

[edit]
Je viens de me rendre compte de mon immense bétise !
Mais en remplacant les < par &lt; et les > par &gt; au niveau de l'attribut "alt" de ton image, cela marche-t-il ?

[edit bis]
Pourquoi est-il impossible d'appliquer un htmlentities ?

Edité par Francesco ( 12/05/2008 18:30:47 )
Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)
neamar
Modérateur
RemonterCiter Linux Mozilla 5 - Posté le 12/05/2008 à 19:55
Eh bien, si j'ai par exemple le code suivant :


<strong>Exemple :</strong><math>1/X < 1</math>


je vais perdre le strong !
Tu vois le problème ?
Before you criticize someone, you should walk a mile in their shoes. That way when you criticize them, you are a mile away from them and you have their shoes.

http://neamar.free.fr
Ou le portail général : http://neamar.fr
Francesco
Modérateur
RemonterCiter Linux Firefox 2 - Posté le 12/05/2008 à 20:05
Sauf si tu n'applique le htmlentities que sur la formule de math. Le but, si j'ai bien compris, étant pour ta formule d'voir une image du style

<img src="..." alt="1/X" />

Alors, il ne suffit d'appliquer le htmlentities que sur ta formule, et rien d'autre. Et non sur l'ensemble de ton document.

[edit]
Je viens de tilter qu'avec la fonction preg_replace, tu ne peux pas le faire. Utilise la fonction preg_replace_callback à la place, et là, tu pourra le faire.

Edité par Francesco ( 12/05/2008 20:07:30 )
Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)
neamar
Modérateur
RemonterCiter Linux Mozilla 5 - Posté le 12/05/2008 à 20:31
Tiens ! Je ne savais pas qu'on pouvait mettre une fonction de callback avec preg !
Ca ouvre de nouveaux horizons !
Merci Francesco !
Before you criticize someone, you should walk a mile in their shoes. That way when you criticize them, you are a mile away from them and you have their shoes.

http://neamar.free.fr
Ou le portail général : http://neamar.fr
Francesco
Modérateur
RemonterCiter Linux Firefox 2 - Posté le 12/05/2008 à 20:32
Mais de rien (clein d'oeil)
Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)

Poster une réponse

STOP aux fautes volontaires !
Message
Formatage
Note: pour partager du code source, merci d'utiliser le wall !
Smileys (sourire) (yekyek) (clein d'oeil) (désapprouve) (triste) (cool) (langue) (confus) (gêné) (neutre) (eek) (surpris) (diable) (flèche) (exclamation) (question) (diable) (idée) (méchant)
Pseudonyme
Recopiez le code
v6 © Computaid SPRL 2005-2008 - Tous droits réservés - Hébergé par eTigris - Page générée en 0,038 s - Crédits - Stats
1 connecté