Précédent Index Suivant

7   Conclusion

Je ne me suis pas livré à une comparaison exhaustive des nombreux traducteurs de LATEX vers HTML, dont une liste très à jour peut être trouvée sur le web. HEVEA ne peut de toutes façons être comparé qu'à des traducteurs relativement complets. J'ai sélectionné latex2html, certainement le traducteur le plus connu et tth un traducteur assez semblable à HEVEA mais qui est écrit en langage C. Ces deux traducteurs sont gratuits et à peu près libres de droits. Les performances des traducteurs sur un gros document LATEX sont données par la table 2. Pour ce qui est de la qualité du HTML produit, disons que les sorties de tth et HEVEA sont plus sobres que celles de latex2html. En outre, quelques validations de la sortie des trois traducteurs montrent qu'il produisent en général du HTML conforme à la spécification, les erreurs rencontrées étant assez mineures.

On peut argumenter sans fin sur le choix de traduire les formules mathématiques par des images (comme latex2html) ou en utilisant une extension non-standard de HTML (comme tth et HEVEA). Disons que la qualité finale des images générées par la dernière version disponible de latex2html est bonne, mais que la traduction des symboles et autres constructions mathématiques en HTML est plus élégante et économique, tant en terme de taille des fichiers à transmettre que de temps de traduction, la production des images comptant pour une bonne part du temps d'exécution de latex2html.

En ce qui concerne les performances pures, latex2html est complètement disqualifié. Je pense pouvoir dire comme [6] que latex2html est inapte en pratique à la traduction de gros documents. Cet échec est dû à l'écriture de ce traducteur en Perl, l'existence même de latex2html et les progrès de sa dernière version par rapport aux précédentes sont plus un prodige de programmation qu'un exemple de développement raisonné de logiciel. Les autres chiffres révèlent qu'HEVEA fait plus que jeu égal avec un programme semblable écrit en C (en effet la version gratuite de tth ne découpe pas sa sortie en plusieurs fichiers). Il n'y a donc pas lieu de se contraindre à utiliser un langage sans système de modules, typage avancé ou gestion automatique de mémoire, pour un hypothétique avantage en efficacité pure.

Je pense en effet que l'utilisation de Caml a grandement facilité le développement d'HEVEA. Par exemple, le gestionaire de sortie ne se préocupe ni du débordement des tampons, ni de la nature du canal de sortie courant, tampon mémoire ou fichier : ces détails sont réglés une fois pour toute par le module Out, dont le code est largement utilisé par toutes les parties d'HEVEA qui produisent une sortie (cf. la figure 1). En outre le code du module Out est simple, en raison de la gestion automatique de la mémoire en Caml.

HEVEA est le traducteur rapide, configurable et de large spectre réclamé dans [6] (voir aussi [2]). HEVEA est une amélioration conséquente de l'outil spécialisé htmlgen que X. Leroy avait finalement écrit pour traduire le manuel d'Objective Caml. L'extension la plus significative est sans aucun doute la reconnaissance des définitions de commande qui rend HEVEA configurable et extensible par ses utilisateurs, sans que ceux-ci aient besoin de connaître Caml et de recompiler HEVEA.


  temps taille (.html + .gif, en ko)
HEVEA (+HACHA) 6,3 s (+ 3,9 s) 1082 + 0
tth 10,5 s 956 + 0
latex2html 30 min 1854 + 28

Table 2 : Traduction du manuel Coq (sur un Pentium 200 Mhz)


Toutefois HEVEA n'est bien entendu pas parfait. Sa configurabilité pourrait être améliorée et l'ensemble des constructions LATEX ou TeX reconnues pourraient être étendu. Le HTML produit devrait être conforme à la dernière version (4.0) de la spécification HTML. Enfin, la publication récente d'un standard pour écrire les mathématiques en HTML [3] rend caduque l'utilisation de l'extension non-conforme ``<FONT FACE=symbol>'', ainsi que la formatage approximatif des formules à l'aide de tables. Si ce standard devait être compris par les browsers de grande diffusion, alors il importerait qu'HEVEA produise du HTML étendu conforme.


Précédent Index Suivant