shige 12/29 2019
----------------

I found some problems of current latex2html (github version) for
Windows.

1) On windows, 2 or more commands cannot connect ';' in 
L2hos->syswait().

----- from here -----
--- latex2html.pin.ORG  2019-12-29 21:03:41.052544000 +0900
+++ latex2html.pin      2019-12-29 21:28:53.738308000 +0900
@@ -3870,7 +3870,9 @@
 # calls either dvips, dvipng, gs, or nothing as specified
 # by command line options
 sub call_dvips {
-    local($dvips_call);
+    # local($dvips_call);
+    # 2019-12-27 shige: 2-44)
+    local($dvips_call, $dvips_call2);
     if ($USE_PDFTEX || $USE_LUATEX) {
        # svg images are produced directly from images.pdf,
        # don't need to do anything here
@@ -3881,11 +3883,16 @@
                $dvips_call .= "-sDEVICE=png16m -r$DVIPNG_DPI -dTextAlphaBits=4 
-dGraphicsAlphaBits=4 -sOutputFile=$TMPDIR$dd$IMAGE_PREFIX%d.png 
.${dd}${PREFIX}images.pdf";
            } else {
                # did not usepackage{preview}, need to crop
-               $dvips_call = "$PDFCROP --hires " . ($DEBUG ? '--debug ' : '')
-                   . ".${dd}${PREFIX}images.pdf"
-                   . ";" . $dvips_call;
+               # $dvips_call = "$PDFCROP --hires " . ($DEBUG ? '--debug ' : '')
+               #     . ".${dd}${PREFIX}images.pdf"
+               #     . ";" . $dvips_call;
+               # 2019-12-27 shige: 2-44)
                print "\nTransforming PDF images to postscript using 
gs/ps2write ...\n";
-               $dvips_call .= "-sDEVICE=ps2write 
-sOutputFile=$TMPDIR$dd$IMAGE_PREFIX%.3d.ps .${dd}${PREFIX}images-crop.pdf\n";
+               # $dvips_call .= "-sDEVICE=ps2write 
-sOutputFile=$TMPDIR$dd$IMAGE_PREFIX%.3d.ps .${dd}${PREFIX}images-crop.pdf\n";
+               # 2019-12-27 shige: 2-44)
+               $dvips_call = "$PDFCROP --hires " . ($DEBUG ? '--debug ' : '')
+                   . ".${dd}${PREFIX}images.pdf";
+               $dvips_call2 = $dvips_call . "-sDEVICE=ps2write 
-sOutputFile=$TMPDIR$dd$IMAGE_PREFIX%.3d.ps .${dd}${PREFIX}images-crop.pdf";
            }
        }
     } else {
@@ -3899,7 +3906,10 @@
                $dvips_call = "$DVIPS -S1 -i $DVIPSOPT 
-o$TMPDIR$dd${IMAGE_PREFIX} .${dd}${PREFIX}images.dvi";
            }
        } else {
-           $dvips_call = "$DVIPS .${dd}${PREFIX}images.dvi && $PS2PDF 
.${dd}${PREFIX}images.ps";
+           # $dvips_call = "$DVIPS .${dd}${PREFIX}images.dvi && $PS2PDF 
.${dd}${PREFIX}images.ps";
+           # 2019-10-29, 2019-12-27 shige: 2-41)
+           $dvips_call = "$DVIPS .${dd}${PREFIX}images.dvi";
+           $dvips_call2 = "$PS2PDF .${dd}${PREFIX}images.ps";
            print $dvips_call, "\n";
        }
     }
@@ -3907,6 +3917,9 @@
        print $dvips_call if (($DEBUG)||($VERBOSITY > 1));
        &close_dbm_database if $DJGPP;
        L2hos->syswait($dvips_call) && print "Error: $!\n";
+       if ($dvips_call2) {
+           L2hos->syswait($dvips_call2) && print "Error: $!\n";
+       }
        &open_dbm_database if $DJGPP;
     }
 }
----- to here -----


2) In Windows, there are no tee command and alternatives.

----- from here -----
--- latex2html.pin.ORG  2019-12-29 21:03:41.052544000 +0900
+++ latex2html.pin      2019-12-29 21:33:45.524136000 +0900
@@ -4264,10 +4264,16 @@
         my $PPMTO=$IMAGE_TYPE=~m/gif/i? $PPMTOGIF : $PNMTOPNG;
         #L2hos->syswait("$PNGTOPNM $p.png|$PNMCROP -sides|tee $p.ppm|$PNMCUT 
-top $millimeter |$PNMCROP -sides|tee $p-.ppm|$PPMTO{$IMAGE_TYPE} --quiet 
$transparent >img$new_num.$IMAGE_TYPE;");
         if ($name =~ /figure|table/) {
-         L2hos->syswait("$PNGTOPNM $p.png|tee $p.ppm|$PPMTO --quiet 
$transparent >${PREFIX}img$new_num.$IMAGE_TYPE;");
+         #L2hos->syswait("$PNGTOPNM $p.png|tee $p.ppm|$PPMTO --quiet 
$transparent >${PREFIX}img$new_num.$IMAGE_TYPE;");
+         # 2019-12-12: 2-44)
+         L2hos->syswait("$PNGTOPNM $p.png >$p.ppm");
+         L2hos->syswait("$PPMTO --quiet $transparent $p.ppm 
>${PREFIX}img$new_num.$IMAGE_TYPE;");
        } else {
            #     L2hos->syswait("$PNGTOPNM $p.png|$PNMCROP -sides|tee 
$p.ppm|$PNMCUT -top $millimeter |$PNMCROP -left -right|tee $p-.ppm|$PPMTO 
--quiet $transparent >img$new_num.$IMAGE_TYPE;");
-           L2hos->syswait("$PNGTOPNM $p.png|$PNMCROP -sides|tee $p.ppm|$PPMTO 
--quiet $transparent >${PREFIX}img$new_num.$IMAGE_TYPE;");
+           # L2hos->syswait("$PNGTOPNM $p.png|$PNMCROP -sides|tee 
$p.ppm|$PPMTO --quiet $transparent >${PREFIX}img$new_num.$IMAGE_TYPE;");
+           # 2019-12-12: 2-44)
+           L2hos->syswait("$PNGTOPNM $p.png|$PNMCROP -sides >$p.ppm");
+           L2hos->syswait("$PPMTO --quiet $transparent $p.ppm 
>${PREFIX}img$new_num.$IMAGE_TYPE;");
 
        }
         $edepth{$name}=$ptdepth{$name}/$pt_per_ex{$name};
----- to here -----


3) In Windows, open file is text mode in default.

----- from here -----
--- latex2html.pin.ORG  2019-12-29 21:03:41.052544000 +0900
+++ latex2html.pin      2019-12-29 21:34:33.697865000 +0900
@@ -4273,7 +4273,9 @@
         $edepth{$name}=$ptdepth{$name}/$pt_per_ex{$name};
        # extra .5pt in depth is border from latex "preview" package
         print "edepth{$name}=$edepth{$name}\n" if ($VERBOSITY > 2);
-        open PPM,"<$p.ppm"; read(PPM,$_,30);close PPM;
+        # open PPM,"<$p.ppm"; read(PPM,$_,30);close PPM;
+       # 2019-12-12 shige: 2-44)
+        open PPM,"<$p.ppm"; binmode(PPM); read(PPM,$_,30);close PPM;
         m/^(\d+) (\d+)$/m; 
        $eheight{$name}=$2*$imgpixeloverex;     # image height in ex
         print "eheight{$name}=$ehieight{$name}\n" if ($VERBOSITY > 2);
----- to here -----


4) For some gs, GS_LIB setting may override the gs's default 
search path, and the gs may fail to find library file.

----- from here -----
--- config/config.pl.ORG        2019-12-29 21:03:30.834019000 +0900
+++ config/config.pl    2019-12-29 21:12:03.932733000 +0900
@@ -1296,7 +1296,8 @@
 EOF
         }
         else {
-           push(@right_paths,'.');
+           #push(@right_paths,'.');
+          # 2019-12-16 shige: 2-24) 
            my $item;
            foreach $item (@right_paths) {
              $item = &simplify_path($item);
----- to here -----


5) TeXLive may have Ghostscript in /texlive/YYYY/tlpkg/tlgs, but
search target file "gs_init.ps" may not be in it.

----- from here -----
--- config/config.pl.ORG        2019-12-29 21:03:30.834019000 +0900
+++ config/config.pl    2019-12-29 21:09:43.430880000 +0900
@@ -1266,10 +1266,16 @@
         my @right_paths = ();
         my $gs_lib = 0;
         my $gs_fonts = 0;
+       # 2017-04-11 shige: 2-24)
+       my $gs_stand_ps;
         Gslibpaths: foreach $path (@try_path) {
           foreach('',"$dd$gs_version","${dd}gs$gs_version") {
             my $testpath = $path . $_;
-            if(!$gs_lib && -d $testpath && -s "$testpath${dd}gs_init.ps") {
+            # if(!$gs_lib && -d $testpath && -s "$testpath${dd}gs_init.ps") {
+           # 2017-04-11, 2019-12-03 shige: 2-24)
+           if ($testpath =~ /tlgs/) { $gs_stand_ps = "landscape.ps"; }
+           else { $gs_stand_ps = "gs_init_ps"; }
+            if(!$gs_lib && -d $testpath && -s "$testpath${dd}$gs_stand_ps") {
               push(@right_paths,L2hos->path2os($testpath));
               $gs_lib = 1;
             }
----- to here -----


6) For some TeX system, we can not gswin32c directly, we should
use rungs instead.

----- from here -----
--- prefs.pm.ORG        2019-12-29 21:03:46.497975000 +0900
+++ prefs.pm    2019-12-29 21:20:20.042378000 +0900
@@ -275,7 +275,9 @@
   $prefs{'GS'} = 'gsos2';
 }
 elsif($::newcfg{'plat'} eq 'win32') {
-  $prefs{'GS'} = 'gswin32c';
+  #$prefs{'GS'} = 'gswin32c';
+  # 2019-12-12 shige: 2-24)
+  $prefs{'GS'} = 'rungs,gswin32c';
 }
 else {
   $prefs{'GS'} = 'gs';
----- to here -----


7) On Windows, absolute path name may not start by "$dd". So, by
the default code, l2h may add ".\" to absolute init file path 
"C:\Users\...".

----- from here -----
--- latex2html.pin.ORG  2019-12-29 21:03:41.052544000 +0900
+++ latex2html.pin      2019-12-29 21:22:33.775227000 +0900
@@ -421,7 +421,9 @@
 }
 &set_if_false($NO_ISOLATIN, $opt{latin});
 if ($INIT_FILE) {
-    if ($INIT_FILE !~ /^[.$dd$dd]/) {  # should start with / or .
+    # if ($INIT_FILE !~ /^[.$dd$dd]/) {        # should start with / or .
+    # 2019-12-18 shige: 2-43)
+    if ($INIT_FILE !~ /^\./ && !L2hos->is_absolute_path($INIT_FILE)) {
        $INIT_FILE = ".$dd$INIT_FILE";  # so that value of @INC has no effect
     }
     if (-f $INIT_FILE && -r _) {
----- to here -----

+========================================================+
 Shigeharu TAKENO     NIigata Institute of Technology
                       kashiwazaki,Niigata 945-1195 JAPAN
 sh...@iee.niit.ac.jp   TEL(&FAX): +81-257-22-8161
+========================================================+
_______________________________________________
latex2html mailing list
latex2html@tug.org
https://tug.org/mailman/listinfo/latex2html

Reply via email to