>>From: [EMAIL PROTECTED]
>>Date: Tue, 11 Feb 2003 10:42:26 +0100
>>To: [EMAIL PROTECTED]
>>Cc: [EMAIL PROTECTED]
>>Subject: Re: URL en HTML
>>
>>
>>[EMAIL PROTECTED] wrote:
>>>>>Date: Tue, 11 Feb 2003 08:53:22 +0100
>>>>>From: [EMAIL PROTECTED]
>>>>>To: [EMAIL PROTECTED]
>>>>>Subject: URL en HTML
>>>>> (...)
>>>>>Je cherche � exporter un document (lyx 1.2.3) en html.
>>>>>Je n'arrive pas � �crire/d�finir ce qu'il faut pour avoir des URL 
>>>>>lisibles, et avec le lien ad hoc.
>>>>>J'utilise "Insert URL". Le lien g�n�r� est bien celui indiqu�, mais le 
>>>>>texte associ� est uniquement le caract�re suivant la "boite" URL. Je 
>>>>>m'attendrais � ce que ce soit le texte sp�cifi� dans "Name".
>>>>>NB: La generation de HTML se fait par 'lyx --export html' qui appelle 
>>>>>'hevea'.
>>
>>> Oui, on pourrait penser que Name est �quivalent � Anchor, mais
>>> ce n'est aps le cas (� mon avis, parce que Lyx ne pr�juge pas
>>> du traducteur).
>>
>>Oui...
>>
>>D'apres ce que j'ai compris, le flux g�n�r� est lyx->latex->html.
>>Donc, je suis all� voir dans le fichier latex export�, et pour une URL 
>>sp�cifi� Name:'LyX' et URL:'http://www.lyx.org', je vois:
>>  \item LyX \url{http://www.lyx.org}.\end{itemize}
>>Je ne connais pas grand chose � latex, mais cette traduction me semble 
>>�trange. Je me serais attendu � avoir au moins une ligne du style:
>>  \item \url{http://www.lyx.org}LyX.\end{itemize}
>>Voire plus proche de ce que j'aurais �crit en latex
>>  \href{http://www.lyx.org}{Lyx}.
>>
>>Je comprend qu'avec cette syntaxe, la limite du texte (name) de l'url ne 
>>soit pas d�fini pour les traducteurs "avals"...
>>
>>> Il n'y a gu�re que l'ERT pour r�soudre ce probl�me, ou une
>>> encapsulation du traducteur dans un script qui effectue
>>> un pr�filtrage pour interpr�ter � Name � comme � Anchor �.
>>> Pour latex2html, j'utilise la commande htmladdnormallinkfoot
>>> qui met l'URL en note de bas de page dans la version papier
>>> et une ancre sur le � Name � dans la version �lectronique html
>>> (et avec tex2pdf, une ancre sur la note de bas de page dans la version PDF)
>>
>>La... j'ai rien compris... probablement parce que je n'ai pas assez de 
>>connaissance de latex...:-(
>>  ERT? Anchor? htmladdnormallinkfoot?
ERT = (La)TeX dans le source LyX (Evil Red Text, � l'origine  - avant
les inserts cliquables pour cacher le code source - ce n'�tait
pas beau :-)
Anchor = nom de la zone de texte � laquelle on raccroche l'URL
htmladdnormallinkfoot = commande latex2html (definie dans html.sty
install� avec latex2html) qui met l'URL en note dans la version papier
er cr�e un lien avedc ancre dans la version �lectronique.

>>Tu veux dire qu'il fait "pre-processer" le fichier Lyx pour faire les 
>>transformations? Quant � traiter le fichier latex, pourquoi pas, mais je 
>>ne vois pas comment un outil peut s'en sortir alors qu'on a perdu les 
>>limites de l'url.

Pas en LyX, je vois �a:
\begin_inset LatexCommand \url[Lyx]{http://www.lyx.org/}
ou �a:
\begin_inset LatexCommand \htmlurl[CPAN]{http://www.cpan.org}
(la diff�rence entre les deux commandes doit venir de mod�les de
documents sp�cifiques]).



>>
>>Peut etre pourrais tu donner quelques exemples? Lignes de commandes 
>>utilis�es?

En p.j., un script perl que ne n'ai pas test� depuis longtemps,
sous toutes r�serves.

Appel pr�servant l'original lyx:
#!/bin/csh
#
mkdir lyx2html
cp -r $1.lyx lyx2html

cd lyx2html
rm -f *.tex
url2h $1.lyx
lyx -e latex $1.lyx
url2h $1.tex
exit

>>
>>Merci, et d�sol� pour la naivet� de mes questions.

Je crains que ce ne soit moi qui ne m'explique pas assez :-(

-- 
Jean-Pierre
#!/usr/local/bin/perl
#

$| = 1;

if ($ARGV[0] eq "-h" || $ARGV[0] eq "") {
&usage; exit;
}

# pas de s�parateur : lecture du fichier comme une cha�ne
undef $/;
$argv=join(' ',@ARGV);
 
BOUCLE:     while (@ARGV) {
        $ARG = shift @ARGV;
       if (!open(IN, "<$ARG")) 
           { print "Erreur ouverture fichier $ARG\n";
             next BOUCLE;
           }
        ($rac,$suf)=($ARG=~m/(.*)\.(.*?)$/m);
        print "$rac.$suf\n";
       $file= <IN>;
       close IN;
# on applique le filtre
        if ($suf eq "lyx") {
        $file=~s/\\begin_inset LatexCommand \\htmlurl\[(.*?)\]\{(.*?)\}.*?\\end_inset 
/\\latex latex 
\\htmladdnormallink\{$1\}\{$2\}\~
\\begin\{latexonly\}
\\url\{$2\}
\\end\{latexonly\}
\\layout Standard
/gs ;
        $file=~s/\\begin_inset LatexCommand \\url\[(.*?)\]\{(.*?)\}.*?\\end_inset 
/\\latex latex 
\\htmladdnormallink\{$1\}\{$2\}\~
\\begin\{latexonly\}
\\url\{$2\}
\\end\{latexonly\}
\\layout Standard
    /gs;
        $file=~s/\\begin_inset LatexCommand \\htmlurl\{(.*?)\}.*?\\end_inset /\\latex 
latex 
\\htmladdnormallink\{\\url\{$1\}\}\{$1\}\~
\\layout Standard
/gs ;
        $file=~s/\\begin_inset LatexCommand \\url\{(.*?)\}.*?\\end_inset /\\latex 
latex 
\\htmladdnormallink\{\\url\{$1\}\}\{$1\}\~
\\layout Standard
    /gs;
}

        $file=~s/\~(\\begin\{latexonly\})/\n$1/gs if ($suf eq "tex");
        open(OUT,">$ARG");
        print OUT $file;
        close OUT;
    }

sub usage {
    print "Usage: url2h [-h(elp)]  <file1> <file2> ... \n(star convention allowed, 
e.g. url2h *.lyx)\nConverts \\htmlurl macros into ERT \\htmladdnormallink macros.
Keeps the original typesetting. 
Run url2h on the exported .tex file to
provide the required newline before latexonly environment.
Be sure to add \\usepackage{url} and \\usepackage{html} in the preamble";
}


Répondre à