Nasser,

 Thanks. Yes, it appears that Ubuntu (up to and including Karmic) has
a slightly out of date 2002-2-1 version of latex2html, despite Debian
having it in for ages. (The upcoming Lucid release does have the
latest version: http://packages.ubuntu.com/lucid/latex2html).

Upgraded and the issue still persists. I fixed it manually by changes
to the code as below (haven't coded in Perl for ages, so did it in a
very basic kind of way). I would include a diff file but appears we
can't use attachments here...

    # Collect HTML options and figure out HTML version
    $HTML_OPTIONS = '' unless ($HTML_OPTIONS);
    $HTML_VERSION =~ s/^html|\s+//g;
    local(@HTML_VERSION) = split(/,/, $HTML_VERSION);
    foreach ( @HTML_VERSION ) {
        if (/^[\d\.]+$/) {
            # Make sure $HTML_VERSION is in the right range and in the right 
format.
            $HTML_VERSION = 0.0 + $_;
            $HTML_VERSION = 2 if ( $HTML_VERSION < 2 );
            $HTML_VERSION = 9 if ( $HTML_VERSION > 9 );
            if ($HTML_VERSION != 4.01) {
                $HTML_VERSION = sprintf("%3.1f",$HTML_VERSION);
            }
        } else {
            $HTML_OPTIONS .= "$_,";
        }
    }
    $HTML_OPTIONS =~ s/\W$//;  # remove any trailing punctuation

    print "...producing markup for HTML version $HTML_VERSION  ";
    print ($HTML_OPTIONS ? "with $HTML_OPTIONS extensions\n\n\n" : "\n\n\n");

    # load the character defs for latin-1, but don't set the charset yet
    &do_require_extension('latin1');
    $charset = $CHARSET = $PREV_CHARSET = '';

    if ($HTML_VERSION =~ /(2.0|3.0|3.2|4.01|4.0|4.1)/) {
        # Require the version specific file
        do { $_ = "$LATEX2HTMLVERSIONS${dd}html$1.pl";
             if (!(-f $_)) {  s/(\d).(\d+\.pl)$/$1_$2/ };
             if (!(-f $_)) {  s/(\d)_(\d+\.pl)$/$1-$2/ };
             require $_ || die "\n*** Could not load $_ ***\n";
             print "\nHTML version: loading $_\n";
        } unless ($HTML_VERSION =~ /2.0/);
        $DOCTYPE = "-//".(($HTML_VERSION eq "2.0")? "IETF" : "W3C")
            . "//DTD HTML $HTML_VERSION"
            .(($HTML_VERSION eq "3.2")? " Final" : "")
            .(($HTML_VERSION eq "4.01")? " Transitional" : "")
            .(($HTML_VERSION eq "4.0")? " Transitional" : "");

Basically:
-- only do the sprintf if not 4.01 (needed to make 4.0 stay as 4.0 and not 4)
-- add 4.01 to the if clause (think needs to be before 4.0 since
matches 4.0 otherwise)
-- change regular expressions afterwards from \d.pl to \d+\.pl (can be
two digits after decimal point)
-- add line so that 4.01 also Transitional in the DOCTYPE

Hope that may be of use/interest to other users.

Stuart
_______________________________________________
latex2html mailing list
[email protected]
http://tug.org/mailman/listinfo/latex2html

Reply via email to