Latex2html

Je donne ici les étapes qui m’ont permis de convertir ma
thèse écrite en LATeχ  en HTML avec latex2html (installé sur mon Mac avec fink).

Quelques mots sur ma thèse en LATeχ 
J’ai créé plusieurs répertoires correspondant chacun à un chapitre. Ces chapitres sont ensuite appelés dans mon fichier principal these.tex via la commande \include. Comme c’est une thèse en physique il y a pas mal de formules et de signes bizarres que j’utilise souvent ( 7Be , 8B, 23892U et plusieurs autres déclinaisons).
J’ai donc défini des macros dans un fichier these.sty que je charge ensuite dans mon fichier these.tex avec \usepackage{these}.

Étapes de conversion
Recopier l’ensemble de votre répertoire de thèse (en theseHTML par exemple). Toutes les étapes que je décris maintenant se font dans ce répertoire.
Modifier le fichier principal où sont appelés vos fichiers LATeχ  et le renommer
en these_html.tex par exemple. Supprimer tous vos \usepackage, et mettez ce qui suit (pour exemple mon fichier these_html.tex):

\documentclass[11pt]{book}
\usepackage[french]{babel}
\usepackage{epsfig}
\usepackage{html}
\setcounter{tocdepth}{2}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}

—–> \include{VOTRE 1er FICHIER LATeχ  }

Je vous conseil de ne pas convertir toute votre thèse en un bloc mais plutôt include par include et de vérifier à chaque fois si la conversion est bonne. Il faut enlever aussi l’appel à la bibliographie. Pour ma part j’ai laissé les \chapter dans mon fichier these_html.tex. Si vous avez définis des macros dans un fichier annexe (pour moi c’est le fichier these.sty), vous devez les déclarer dans un fichier .latex2html-init qui est chargé au lancement de la commande latex2html. Comme latex2html est écrit en Perl, ces déclarations doivent être écrit en Perl et non pas en LATeχ  .

Je donne quelques exemples de macros que j’utilise en LATeχ  et leurs analogues en Perl.

Je distingue trois cas.

  1. Macro très simple sans argumentExemple $\nue$ (pour νe -neutrino de type électronique-) défini dans mon fichier these.sty par la ligne:
    \newcommand{\nue}{\ensuremath{\nu_\mathrm{e}}}.
    La commande suivante, placée dans .latex2html-init, permet de redéfinir $\nue$ pour l’ensemble de mes fichiers LATEχ

    sub do_cmd_nue {"ν<sub>e</sub>"}.
  2. Macro simple avec deux arguments
    La macro $\isotopes{n}{X}$ me permet d’écrire pour un n et X donnés:
    nX (exemple 7Be -atome de béryllium 7-). Cette macro est
    définie dans mon fichier these.sty par: \newcommand{\isotopes}[2]{\ensuremath{^{#1}}\mathrm{#2}}.
    Il s’agit pour latex2html via une commande Perl de récupérer les deux arguments de cette macro et de bien les agancer. La commande suivante dans le fichier .latex2html-init permet de le faire:

    sub do_cmd_isotopes{
    local($_) = @_;
    s/$next_pair_pr_rx//o; $chiffre = $;
    s/$next_pair_pr_rx//o; $atome = $;
    join('',"<sup>$chiffre</sup>$atome", $_);
    }
  3. Macro un peu plus complexe avec trois arguments
    La macro $\atomes{n1}{n2}{X}$ me permet d’écrire pour n1, n2 et X donnés:n1n2X(exemple 23892U-atome d’uranium 238 à 92 protons-). Notez que c’est beaucoup plus beau en Lateχ quant HTML (si quelqu’un trouve plus beau je suis preneur).
    Cette macro est définie dans mon fichier these.sty par:

    \newlength{\subwidth}
    \newcommand{\atomes}[3]{%
    \ensuremath{
    \settowidth{\supwidth}{$\scriptstyle #1$}%
    \settowidth{\subwidth}{$\scriptstyle #2$}%
    \ifdim \supwidth&gt;\subwidth \subwidth\supwidth\fi%
    \vphantom{#3}^{\makebox[\subwidth][r]{$\scriptstyle #1$}}%
    _{\makebox[\subwidth][r]{$\scriptstyle #2$}}\mathrm{#3}}}

    Il s’agit pour latex2html via une commande Perl de récupérer les trois arguments de cette macro et de bien les agancer. La commande suivante dans le fichier .latex2html-init permet de le faire:

    sub do_cmd_atomes{
    local($_) = @_;
    s/$next_pair_pr_rx//o; $chiffre1 = $&amp;;
    s/$next_pair_pr_rx//o; $chiffre2= $&amp;;
    s/$next_pair_pr_rx//o; $atome = $&amp;;
    join('',"<sup>$chiffre1</sup>","<sub>$chiffre2</sub>","$atome",$_);
    }

Remplacer l’ensemble de vos macros dans le fichier .latex2html-init. Rajouter ensuite ces quelques lignes (qui sont mieux que les défauts proposés) au début du fichier latex2html-init:

$LANGUAGE_TITLES = ' french';
$BODYTEXT = "text=\"\#000000\" bgcolor=\"\#FFFFFF\"";
$WHITE_BACKGROUND = 1;
$LATEX_COLOR = "\\pagecolor{white}";
$PSTOIMG = "$PERL /sw/bin/pstoimg";

Si on veut des .png pour les figures au lieu des .gif:
$IMAGE_TYPE = $IMAGE_TYPES[1];

Vous pouvez alors lancer la conversion:

latex2html -no_math -html_version 3.2,math -local_icons these_html.
L’option -local_icons permet d’avoir les icons « pervious », « up » et « next » dans le repertoire courant. Relancer la commande précendente à chaque nouveau include que vous mettez dans votre fichier these_html.tex. Terminer en mettant l’appel de la bibliographie.

Quelques liens utiles, voir très utiles:

http://www.orcca.on.ca/MathML/texmml/textomml.html
http://www.htmlhelp.com/reference/html40/entities/symbols.html
http://www-texdev.ics.mq.edu.au/l2h/docs/manual/
http://www.yoyodesign.org/doc/w3c/mathml2/byalpha.htmlhttp://www.cims.nyu.edu/~barnett/thesis/latex2html_tips.html

Cette entrée a été publiée dans Informatique, avec comme mot(s)-clef(s) . Vous pouvez la mettre en favoris avec ce permalien.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *