exit trouble shooting

Trouble Shooting

 Bitmaps  LaTeX  Fonts  C programs  Scripts  Environment File  tex4ht.sty / *.4ht  DVI Code  JavaScript  Subscripts and Superscripts

Bitmaps

Bad Quality of Pictures

Increase the density (number of dots per inch) when converting the pictures, and then sub-sample the picture. Specifically, replace in ‘tex4ht.env’ the switch

-density 110x100

with the switch

-density 220x220 -geometry 50%

or with another switch of the form

-density ...x... -geometry ...%

The -density switch increases the number of pixels per inch, and the -geometry option reduces that number. The process smoothes (anti-aliases) the edges. Typically screens display about 72 to 100 dots per inch.

The type of fonts in use may also affect the quality of the output. In particular, Type 1 (scalable outlines) fonts offer better outcome than Type 3 (bitmapped) fonts.

Direct Translations of EPS Figures

The quality of the bitmaps of EPS figures may be improved by converting the figures directly, without transmitting them through the dvi code. For instance, the \includegraphics command in the presence of the following configuration provides such a route.

       \Configure{graphics*} 
         {eps} 
         {\Needs{"convert \csname Gin@base\endcsname.eps 
                               \csname Gin@base\endcsname.gif"}% 
          \Picture[pict]{\csname Gin@base\endcsname.gif}% 
         } 

The following script provides a more efficient and general approach.

       \Configure{graphics*} 
         {eps} 
         {\openin15=\csname Gin@base\endcsname.\PictExt\relax 
          \ifeof15 
             \Needs{"convert \csname Gin@base\endcsname.eps 
                             \csname Gin@base\endcsname.\PictExt"}% 
          \fi 
          \closein15 
          \Picture[pict]{\csname Gin@base\endcsname.\PictExt}% 
         } 
Truncated and empty gifs

Such a behavior might result from pictures which end up off the dvi page limits. A larger paper size may be requested from dvips through the switch ‘-T offset’ (e.g., -T 14in,14in). The dvips command is activated from tex4ht.env.

Truncated and empty gifs for Xfig pictures

Some Xfig files are made up of overlapping picture environments, with TeX4ht viewing the components as defining independent figures. The problem can be solved by importing the Xfig files into pictorial environments of TeX4ht.

   \newenvironment{mypic}{\Picture*{}}{\EndPicture} 
   \begin{mypic} \input{xfig-file}   \end{mypic} 

Alternatively, PDF-based translations into bitmaps might also offer a solution.

LaTeX

Unable to find a newly installed file

The TeX engine might require an update of a search directory: the ls-R database for installations employing kpathsea (run texhash), the data base directory in the case of MiKTeX (select tart -> Programs -> MiKTeX -> Refresh', or run \`'initexmf -u' from a DO session, to update it).

Fonts

Can’t find/open file foo.tfm

Linux, Netscape, and the SYMBOL font

To display the SYMBOL fonts in Netscape on Linux add

Netscape*documentFonts.charset*adobe-fontspecific: iso-8859-1

to the ~/.Xdefaults file

C programs

tex4ht.c doesn’t compile ... ERROR:3396: ‘DIR’ undeclared (first use this function)...

Consider adding the switch ‘-DHAVE_DIRENT_H’ to the command line. For instance,

gcc -o tex4ht tex4ht.c -DENVFILE='"path/tex4ht.dir/texmf/tex4ht/base/unix/tex4ht.env"' -DHAVE_DIRENT_H

Scripts

Bad end-of-line characters in htlatex.bat/httex.bat/htexi.bat/ht.bat

Remove undesirable trailing characters in the lines of the scripts, introduced by the utilities which download the files.

DOS/WINDOW platforms use an endline pair of characters: a carriage return and a line feed (0Dx,0Ax hexadecimal; 13,10 decimal). MAC platforms use only a single carriage feed character (0Dx; 13dec). UNIX platforms use only a single line feed character (0Ax; 10 dec).

Can’t find/open file ‘xxx.dvi’ or ‘xxx.lg’

In some platforms, the operating systems pass on the quotes of the parameters of htlatex, httex, and httexi to the utilities tex4ht and t4ht. In such cases, the utilities issue complaints of the above nature for file names ‘xxx’ other than those being compiled. The problem can be resolved by installing a filter named ‘htcmd’, and submitting the tex4ht and t4ht commands to the filter. Backslash characters ‘\’ might need replacements with double backslash characters ‘\\’ or forward slash characters ‘/’.

For instance, if htlatex.bat contains a command line of the form ‘C:\tex4ht\t4ht %1 %4’, then after introducing the filter the modified command line will take the form ‘C:\\tex4ht\\htcmd C:\\tex4ht\\t4ht %1 %4’.

Environment File

Can’t find/open file ‘tex4ht.env’

The switch -hV on the calling tex4ht command shows where the file is being searched. The following are possible solutions to the problem.

No permission for system call: ...

Make sure that the ‘S’ records in tex4ht.env don’t end with invisible spaces, and that the file ends with the record ‘% end of file’.

Problems with argument -d... of t4ht

The specified directory must be augmented by a slash character /.

Problems with the convert utility

The OpenOffice script in tex4ht.env fails to work for MS Windoes

Try replacing the given script with the following non-concurrent script.

<oo> 
%%% openoffice                                                     % 
.4os mkdir Pictures 
.4os move  %%1.4os settings.xml 
.4os move  %%0.xml content.xml 
% 
.4om mkdir %%1 
.4om move  %%1.4om      %%1\content.xml 
.4om copy  settings.xml %%1\settings.xml 
% 
.4of mkdir META-INF 
.4of move  %%1.4of META-INF\manifest.xml 
% 
.4ot move  %%1.4ot    meta.xml 
.4oy move  %%1.4oy    styles.xml 
.4og move  %%1        Pictures\%%1 
% 
.4ox zip -m %%0.sxw Pictures 
.4ox zip -m %%0.sxw settings.xml 
.4ox zip -m %%0.sxw content.xml 
.4ox zip -m -r %%0.sxw %%0-m* 
.4ox zip -m -r %%0.sxw META-INF 
.4ox zip -m %%0.sxw meta.xml 
.4ox zip -m %%0.sxw styles.xml 
.4ox zip -m %%0.sxw Pictures/* 
% 
%%% end openoffice                                                  % 
</oo> 

tex4ht.sty / *.4ht

Foreign content in <title>...</title> elements

Use the \Configure{@TITLE}{...} command to redefine for the these elements the harmful macros that appear in headers of logical units like \title and \chapter. For instance, the definition \Configure{@TITLE}{\def\LaTeX{LaTeX}} for the source \title{with \LaTeX}.

Problematic commands in titles of logical divisions

Commands within titles of divisions might need protection when transported by tex4ht to other locations. The command \Configure{NoSection}{..before...}{...after...} may be used for such a purpose.

DVI Code

XDVI/DVIWINDO/YAP... hang on \special command

The dvi code produced by tex4ht is not valid for use with other utilities. Recompile the source file without the presence of tex4ht, to provide a proper code to your dvi viewer.

JavaScript

onovermouse’ package option

This option currently relies on the JavaScript utility overlib.js of Erik Bosrup. The file might need to be fixed at line 234, by introducing ‘return "";’ instead of ‘return;’ (an already reported problem).

Subscripts and Superscripts

Loss of structural information

Subscripts and superscripts are among the weakest points of tex4ht. In order to recognize them for non-bitmap representations, TeX4ht changes the category codes of ‘^’ and ‘_’, upon reaching the \begin{document} instruction, and ignores the operations if introduced earlier.

The ideal solution would have been to get the superscript and subscript operations, as well as the empty bases ‘{}’, marked upon request by the native compilers in the dvi code. Currently, that is just a good night dream.

The solutions I use are,

  1. Redefine in the *.4ht files macros that appear in libraries, by replacing there the ‘_’ and ‘^’ operations with \sb and \sp macros. The danger in this approach is that occasionally users provide new meanings to existing control sequences, without tex4ht taking it into account.
  2. Prepare cfg files, for sources which don’t belong to me, consisting of redefinitions for the the sensitive macros. Then I reload the redefinitions under the eyes of tex4ht. For instance, the configuration file test.cfg
    \Preamble{} 
     
    \renewcommand{\FQED}[2]{F_{#1#2}} 
    \renewcommand{\Mlones}{M^2} 
    \renewcommand{\bzms}{M^2_{_0}} 
     
    \begin{document} 
    \EndPreamble 

    for a source test.tex, and a compilation invoked through the command ‘mzlatex test "test"’.

  3. Use \sb and \sp, instead of ‘_’ and ‘^’, in preambles of files I write, or push the definitions to after the \begin{document} statement.