Le but de ce document est de montrer quelques possibilités de TEX4ht pour rédiger des polycopiés sous forme PDF et HTML à partir d’une unique source LATEX. Il est partagé en deux chapitres – un tutorial sur TEX4ht, – unexemple pratique, basé sur la leçonPerformances de la logique CMOS.
Le département COMELEC a décidé de produire deux versions de ses supports de cours : – la première sous forme traditionelle (papier). Il est important que la qualité de ce docu-ment soit la même que celle des polycopiés habituellement fournis, respectant les règles de typograhie française en vigueur. Pour cela, il a été décidé d’utiliser le moteur typographique habituel des milieus scientifiques, LATEX, libre et largement utilisé. – La deuxième à destination du web (HTML). Pour simplifier la maintenance de ces supports, il a aussi été décidé de les produire à partir d’une même source. Les solutions techniques permettant de produire du LATEXet du HTML à partir d’une même source se répartissent en deux catégories : – les convertisseurs LATEX→HTML, comme TEX4ht, Hevea, TtH, LATEX2html – les convertisseurs double source→HTML et source→LATEX, comme Tbook ou DocBook. Après évaluation des différents outils, je vous propose d’adopter TEX4ht. Il permet, à partir d’une source LATEX, de produire des documents HTML. Il est suffisament configurable pour que nous puissions l’utiliser pour produire des documents d’une qualité suffisante pour les cours de BCI. Ce document a pour but de montrer quelques possibilités de cet outils, ainsi que ses limitations.
4
Chapitre 2
TEX4ht
TEX4ht au contraire d’autres convertisseurs LATEX→HTML utilise directement le moteur TEX pour produire le HTML, en encapsulant et déroutant les instructions de base LATEXet TEX. Il permet donc de produire un HTML à peu près correct pour presque tout type de contructions LATEX. Cependant on reste confronté à un certain nombre de limitations : – celles inhérentes à LATEX, comme la gestion des tableaux, des images, – celles inhérentes au HTML, comme la gestion des tableaux, des formules mathématiques, le positionnement des objets, la comptibilité entre les différents browsers Web, – celles inhérentes à l’outil de conversion. J’ai essayé de regrouper ici un certain nombre de règles d’écriture des différents objets, de façon à produire à la fois un document papier ainsi qu’un document Web correct, ainsi que quelques propositions d’ogranisation des différents documents sources.
2.1 Environnement de développement 2.1.1 Linux Ce document a été produit sous Linux, distribution Debian Sarge (testing, à jour) : alexis@snotling# uname -a Linux snotling 2.6.7-co-0.6.2 #392 Sat Jul 10 19:59:22 IDT 2004 i686 GNU/Linux alexis@snotling# 2.1.2 LATEX Il utilise la version de LATEXsuivante : alexis@snotling# latex -version TeX (Web2C 7.4.5) 3.14159 kpathsea version 3.4.5 ... De plus, pour le PDF, j’utilisepdflatex, avec la version suivante : alexis@snotling# pdflatex --version pdfTeX (Web2C 7.4.5) 3.14159-1.10b kpathsea version 3.4.5 2.1.3 TEX4ht La version de TEX4ht utilisée est la dernière en date, récupérée sur le site web d’Etan Guarani, compilée aveckpathsea.
5
CHAPITRE 2. TEX4HT
6
alexis@snotling# tex4ht --version ----------------------------tex4ht.c (2004-05-22-03:13 kpathsea) ... alexis@snotling# t4ht ----------------------------t4ht.c (2004-04-21-00:17 kpathsea) 2.1.4 Gestion des équations Pour générer des équations satisafisantes, deux options sont possibles : – utiliser MathML, qui n’est supporté que sous Mozilla (après avoir installé certaines fonts non standards) – générer une bitmap pour chaque équation : c’est l’option que j’ai retenue, au détriment du temps de chargement des pages. Pour cela, TEX4ht utilise de façon native une combinaison dedvipsetgs(ouconvert), mais ces scripts sont lents et produisent des images d’une qualité médiocre. J’ai préféré utiliser les scripts de Simen Kvaal, basés surdvi2bitmap, que j’ai légèrement modifiés. La version dedvi2bitmap utilisée est la dernière en date, compilée aveckpathsea. alexis@snotling# dvi2bitmap --version dvi2bitmap 0.12-2 Options: ENABLE GIF no _ ENABLE PNG yes _ libpng: 1.2.5 ENABLE KPATHSEA yes _ libkpathsea: kpathsea version 3.4.5 DEFAULT_TEXMFCNF=/usr/share/texmf/web2c FONT_GEN_TEMPLATE /usr/bin/mktexpk --dpi %d --bdpi %b --mag %m --mfmode %M %f $Id: dvi2bitmap.cc,v 1.100 2003/10/27 15:18:21 norman Exp $ 2.1.5 Fonts Pour la production d’une version PDF satisafaisante, le package de fonts vectoriellecm-super a été utilisé, conformément aux instructions de Stéphane Ravier. 2.1.6 Gestion des images Un des caveats de LATEXet HTML est la gestion des bitmaps (voir??page??). J’ai utilisé le programmebmeps, disponible ici pour convertir les images aux différents formats appropriés, ainsi queconvert. 2.2 Fichiers de configuration TEX4ht peut être configuré de façon très puissante. Toutes les commandes HTML et tous les environnements LATEXdisposent dehooks, permettant de contrôler la façon dont sont générés les tags HTML. 2.2.1 CSS TEX4ht permet d’utiliser des commandes CSS – implicites (internes), – explicites (déclarées à la main), – externes (dans un fichier externe).
2.2.2 Makefile Pour permettre une génération à volonté d’une version HTML ou PDF, j’ai adopté pour l’instant l’option consistant à utiliser unMakefileainsi qu’à modifier manuellement une option d’inclusion de package LATEX. La première ligne du préambulecomelec-preamble.texpermet de dire si l’on souhaite ou non générer du HTML : % à commenter avant d’appeler ’make pdf’ \usepackage[tutorial,html]{tex4ht} Il est possible de faire ceci de façon automatique, j’y travaillerai plus tard ! Pour générer du HTML : make clean && make html suivi d’éventuellement make cp Le code duMakefile: