this is a rather dull patch to do with $HTML_VERSION (more interesting patches will follow).
On Mon, Mar 10, 2003 at 07:42:54PM +1100, Ross Moore wrote: [about why no-one is using HTML versions 1, 2.1, 2.2 or 3.1 now] ok, and it's not important how obsolete HTML versions are handled. my point was specifically that the the html*.pl files for 2.1, 2.2 and 3.1 are never (in the Perl sense) required, because those numbers aren't matched by this regex (probably deliberately) - | if ($HTML_VERSION =~ /(2.0|3.0|3.2|4.0|4.1)/) { | # Require the version specific file | ... | } else { | print "\n You specified an invalid version: $HTML_VERSION\n" | ... | # Require all necessary version specific files | foreach ( sort <$LATEX2HTMLVERSIONS${dd}html[1-9].[0-9].pl> ) { ^ - but nor by this fileglob, because it has a . where it needs a _ and so doesn't match any files. this patch just tries to fix the fileglob. | ... | }; | } > > _if_ i have all that right, then the best course of action would be > > to stop the code rounding 4.01 to 4.0, and delete html4_1.pl. > > For compatibility with any existing documents or scripts calling > LaTeX2HTML, it would be best to catch 4_1 and make it 4.01 > where needed, as well as stopping the rounding. that's what this patch does. thanks for the point about catching 4.1 - i hadn't thought of that. i've also given 4.01 a "Transitional" DOCTYPE (like 4.0 already has). and added 4.01 to the POD's list of available versions. i moved the definitions of $TeXname et al., which depend on $HTML_VERSION, to *after* $HTML_VERSION has been parsed; because they could be defined incorrectly e.g. if $HTML_VERSION were "math,3.0". finally, i turned some string comparisons with $HTML_VERSION into numeric comparisons, like most of them already were. applies from inside the top directory of latex2html with `patch -p1'. also, please `rm versions/html4_1.pl' (i left that out of the patch to keep it fairly short). i hope you find this useful - or can tell me where i've got it wrong. diff -u -N -r latex2html-rel-2002-2-1/Changes latex2html-2002-2-1-hv/Changes --- latex2html-rel-2002-2-1/Changes Sat Apr 10 06:15:08 1999 +++ latex2html-2002-2-1-hv/Changes Wed Mar 12 06:12:28 2003 @@ -84,6 +84,7 @@ # bv = Boris Veytsman <[EMAIL PROTECTED]> # kr = Keith Refson <[EMAIL PROTECTED]> # uw = Uli Wortmann <[EMAIL PROTECTED]> +# pl = Phil Lanch <[EMAIL PROTECTED]> # # #------------------- Test Suite Manifest ---------------------------------- diff -u -N -r latex2html-rel-2002-2-1/latex2html.pin latex2html-2002-2-1-hv/latex2html.pin --- latex2html-rel-2002-2-1/latex2html.pin Fri Aug 23 06:15:01 2002 +++ latex2html-2002-2-1-hv/latex2html.pin Wed Mar 12 10:04:36 2003 @@ -3203,7 +3203,7 @@ sub special_env { # Modifies $contents in its caller local($next)=''; - local ($allow) = $HTML_VERSION ge '3.0' ? + local ($allow) = $HTML_VERSION >= 3.0 ? "[^#\$%&~\\\\{}]|\\limits" : "[^^#\$%&~_\\\\{}]"; #JKR: Use italics instead of bold #HWS: Generalize to include more symbols. # $contents =~ s/^\$(\s*($html_specials_inv_rx|$allow)*\s*)\$(.)?/ @@ -7127,7 +7127,7 @@ , " Jens Lippmann, Marek Rouchal, Martin Wilck and others" . " -->\n<HTML>\n<HEAD>\n<TITLE>".$title."</TITLE>" , &meta_information($title) - , ($CHARSET && $HTML_VERSION ge "2.1" ? + , ($CHARSET && $HTML_VERSION >= 2.1 ? "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=$this_charset\">" : "" ) , $LATEX2HTML_META @@ -9475,7 +9475,7 @@ sub revert_to_raw_tex { local($_) = @_; local($character_map) = ""; - if ( $CHARSET && $HTML_VERSION ge "2.1" ) { + if ( $CHARSET && $HTML_VERSION >= 2.1 ) { $character_map = $CHARSET; $character_map =~ tr/-/_/; } while (s/$O\s*\d+\s*$C/\{/o) { s/$&/\}/;} @@ -10333,7 +10333,7 @@ my($character_map,$enc); local ($this); - if ( $CHARSET && $HTML_VERSION ge "2.1" ) { + if ( $CHARSET && $HTML_VERSION >= 2.1 ) { # see if it is a character in the charset $character_map = ((($charset =~ /utf/)&&!$NO_UTF)? 'iso_10646' : $CHARSET ); @@ -15525,12 +15525,6 @@ . "\n<META HTTP-EQUIV=\"Content-Style-Type\" CONTENT=\"text/css\">" unless ($LATEX2HTML_META); - $TeXname = (($HTML_VERSION ge "3.0")? "T<SMALL>E</SMALL>X" : "TeX"); - $Laname = (($HTML_VERSION ge "3.0")? "L<SUP><SMALL>A</SMALL></SUP>" : "La"); - $MFname = (($HTML_VERSION ge "3.0")? "M<SMALL>ETAFONT</SMALL>" : "Metafont"); - $Xyname = (($HTML_VERSION ge "3.0")? "X<SUB><BIG>Y</BIG></SUB>" : "Xy"); - $AmSname = (($HTML_VERSION ge "3.0")? "A<SUB><BIG>M</BIG></SUB>S" : "AmS"); - $EQN_TAGS = "R" unless ($EQN_TAGS); $EQNO_START = "("; $EQNO_END = ")"; @@ -15599,10 +15593,17 @@ foreach ( @HTML_VERSION ) { if (/^[\d\.]+$/) { # Make sure $HTML_VERSION is in the right range and in the right format. + #PL: The right format is with either 1 or 2 digits after the decimal + # point. (Algorithm: Format it with exactly 2 digits after the + # point; then, if it ends with `0', remove the trailing `0'.) $HTML_VERSION = 0.0 + $_; $HTML_VERSION = 2 if ( $HTML_VERSION < 2 ); $HTML_VERSION = 9 if ( $HTML_VERSION > 9 ); - $HTML_VERSION = sprintf("%3.1f",$HTML_VERSION); + $HTML_VERSION = sprintf("%.2f",$HTML_VERSION); + $HTML_VERSION =~ s/0$//; + # For compatibility with earlier versions of LaTeX2HTML, + # in which one had to ask for 4.1 in order to get 4.01: + $HTML_VERSION = 4.01 if $HTML_VERSION == 4.1; } else { $HTML_OPTIONS .= "$_,"; } @@ -15616,18 +15617,18 @@ &do_require_extension('latin1'); $charset = $CHARSET = $PREV_CHARSET = ''; - if ($HTML_VERSION =~ /(2.0|3.0|3.2|4.0|4.1)/) { + if ($HTML_VERSION =~ /^(2\.0|3\.0|3\.2|4\.01?)$/) { # 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/ }; + if (!(-f $_)) { s/(\d)\.(\d\d?\.pl)$/$1_$2/ }; + if (!(-f $_)) { s/(\d)_(\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.0")? " Transitional" : ""); + .(($HTML_VERSION =~ /^4\.01?$/)? " Transitional" : ""); if ($HTML_OPTIONS) { local($ext); @@ -15649,11 +15650,13 @@ . " i18n table math frame latin1 unicode etc.\n"; # Require all necessary version specific files - foreach ( sort <$LATEX2HTMLVERSIONS${dd}html[1-9].[0-9].pl> ) { - last if ( $_ gt "$LATEX2HTMLVERSIONS${dd}html$HTML_VERSION.pl" ); + foreach ( sort <$LATEX2HTMLVERSIONS${dd}html[1-9]_[0-9]*.pl> ) { + my ($version) = /([1-9]_[0-9][1-9]?)\.pl$/; + $version =~ s/_/./; + last if ( $version > $HTML_VERSION ); do { print "\nloading $_" if ($DEBUG); require $_; } unless ( - ($NO_SIMPLE_MATH)&&($_ eq "$LATEX2HTMLVERSIONS${dd}html3.1.pl")); + ($NO_SIMPLE_MATH)&&($_ eq "$LATEX2HTMLVERSIONS${dd}html3_1.pl")); }; $STRICT_HTML = 0; } @@ -15664,6 +15667,12 @@ , '10pt' , 1 , '11pt' , 1 , '12pt' , 1 , %styles_loaded ); + $TeXname = (($HTML_VERSION >= 3.0)? "T<SMALL>E</SMALL>X" : "TeX"); + $Laname = (($HTML_VERSION >= 3.0)? "L<SUP><SMALL>A</SMALL></SUP>" : "La"); + $MFname = (($HTML_VERSION >= 3.0)? "M<SMALL>ETAFONT</SMALL>" : "Metafont"); + $Xyname = (($HTML_VERSION >= 3.0)? "X<SUB><BIG>Y</BIG></SUB>" : "Xy"); + $AmSname = (($HTML_VERSION >= 3.0)? "A<SUB><BIG>M</BIG></SUB>S" : "AmS"); + %declarations = ('em' , '<EM></EM>', @@ -17329,8 +17338,8 @@ =item B<-html_version> I<list> Which HTML version should be generated. Currently available are: -C<2.0>, C<3.0>, C<3.2>, C<4.0>. Some additional options that may be -added are: C<math> (parse mathematics), C<i18n> (?), +C<2.0>, C<3.0>, C<3.2>, C<4.0>, C<4.01>. Some additional options that +may be added are: C<math> (parse mathematics), C<i18n> (?), C<table> (generate tables), C<frame> (generate frames), C<latin1>...C<latin9> (use ISO-Latin-x encoding), C<unicode> (generate unicode characters). Separate the options with ',', -- Phil Lanch D95B33E3 D78D 598D A663 5CF3 2AB2 4593 C989 94B7 D95B 33E3
pgp00000.pgp
Description: PGP signature
_______________________________________________ latex2html mailing list [EMAIL PROTECTED] http://tug.org/mailman/listinfo/latex2html