michal-h21 / make4ht

Build system for tex4ht
131 stars 15 forks source link

Cannot generate html with chinese text, seems like fonts are missing. #105

Closed cjohn001 closed 1 year ago

cjohn001 commented 1 year ago

Hello together, I am currently trying to use make4ht to generate a html file in chinese language. Unfortunately, it seems like fonts are missing, see output below:

\documentclass{article}
\usepackage{tex4ht}
\usepackage{CJK}
\setcounter{secnumdepth}{0}

\begin{document}

\begin{CJK}{UTF8}{gbsn}
例如,您可以使用 BIA 秤或体脂卡尺测量您的体脂百分比。
\end{CJK}

\end{document}

I get the following output. Please note, I also tried with gkai insteak of gbsn for CJK package. This also does not work. Would be great if someone could provide a direction how to solve the issue. I am on a Macbook with MacTex installed. PDF file generation works fine.

make4ht -f html5 introduction_zh_html.tex
[STATUS]  make4ht: Conversion started
[STATUS]  make4ht: Input file: introduction_zh_html.tex
--- warning --- Couldn't find font `gbsnu30.htf' (char codes: 0--246)

----------------------------------------------------
environment file
----------------------------------------------------
% unix/tex4ht.env (2019-03-07), generated from tex4ht-env.tex, and
% modified by hand for TeX Live (unix).
% Copyright 2009-2019 TeX Users Group
% Copyright 1997-2009 Eitan M. Gurari
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
% version 1.3c of this license or (at your option) any
% later version. The latest version of this license is in
%   http://www.latex-project.org/lppl.txt
% and version 1.3c or later is part of all distributions
% of LaTeX version 2005/12/01 or later.
%
% This work has the LPPL maintenance status "maintained".
%
% The Current Maintainer of this work
% is the TeX4ht Project <http://tug.org/tex4ht>.
%
% If you modify this program, changing the
% version identification would be appreciated.%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Notes:                                                            %
%  1. Empty lines might be harmful                                  %
%  2. Tagged script segments <tag>...</tag> are scanned only if     %
%     their names are specified within -ctag switches of tex4ht.c   %
%     and t4ht.c. When -c switches are not supplied, a -cdefault    %
%     is implicitly assumed.                                        %
%        The tags <tag> and </tag>, but not their bodies, are       %
%     ignored if they are not located at the start of their lines.  %
%  3. Place this file in your work directory and/or root directory  %
%     and/or in directory `xxx' of your choice. In the latest case, %
%     compile tex4ht.c and t4ht.c with `#define ENVFILE xxx', or    %
%     provide the address of the file to tex4ht and t4ht throught   %
%     the -e switch                                                 %
%  4. Under kpathsea, the substring `%%~' may be employed in        %
%     commands to indirectly obtain the value of ${TEXMFDIST}.      %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% * Replace `path', and possibly what follows, with appropriate     %
%   content                                                         %
% * A path may start with:                                          %
%   ~ for environment variable HOME                                 %
%   ~~ for environment variable TEX4HTTFM                           %
%   %%~ for ${TEXMFDIST} of KPATHSEA                                %
% * A ! requests recursive search into subdirectories               %
% * Multiple t and i entries are allowed                            %
% * When supported by kpathsea                                      %
%   + t entries are ignored                                         %
%   + the path before /ht-fonts/ is ignored in i records that don't %
%     represent real addresses                                      %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%
tpath/tex/texmf/fonts/tfm/!
%
<default>
i%%~/tex4ht/ht-fonts/iso8859/1/!
i%%~/tex4ht/ht-fonts/ascii/!
i%%~/tex4ht/ht-fonts/alias/!
i%%~/tex4ht/ht-fonts/mozilla/!
i%%~/tex4ht/ht-fonts/unicode/!
</default>

<mozhtf>
i%%~/tex4ht/ht-fonts/mozilla/!
i%%~/tex4ht/ht-fonts/unicode/!
i%%~/tex4ht/ht-fonts/ascii/!
i%%~/tex4ht/ht-fonts/alias/!
</mozhtf>

<iso2htf>
i%%~/tex4ht/ht-fonts/iso8859/2/!
i%%~/tex4ht/ht-fonts/ascii/!
i%%~/tex4ht/ht-fonts/alias/!
i%%~/tex4ht/ht-fonts/unicode/!
</iso2htf>

<iso5htf>
i%%~/tex4ht/ht-fonts/iso8859/5/!
i%%~/tex4ht/ht-fonts/ascii/!
i%%~/tex4ht/ht-fonts/alias/!
i%%~/tex4ht/ht-fonts/unicode/!
</iso5htf>

<iso7htf>
i%%~/tex4ht/ht-fonts/iso8859/7/!
i%%~/tex4ht/ht-fonts/ascii/!
i%%~/tex4ht/ht-fonts/alias/!
i%%~/tex4ht/ht-fonts/unicode/!
</iso7htf>

<iso8htf>
i%%~/tex4ht/ht-fonts/iso8859/8/!
i%%~/tex4ht/ht-fonts/ascii/!
i%%~/tex4ht/ht-fonts/alias/!
i%%~/tex4ht/ht-fonts/unicode/!
</iso8htf>

<iso15htf>
i%%~/tex4ht/ht-fonts/iso8859/15/!
i%%~/tex4ht/ht-fonts/ascii/!
i%%~/tex4ht/ht-fonts/alias/!
i%%~/tex4ht/ht-fonts/unicode/!
</iso15htf>

<koi8rhtf>
i%%~/tex4ht/ht-fonts/koi/8r/!
i%%~/tex4ht/ht-fonts/ascii/!
i%%~/tex4ht/ht-fonts/alias/!
i%%~/tex4ht/ht-fonts/unicode/!
</koi8rhtf>

<symhtf>
i%%~/tex4ht/ht-fonts/symbol/!
i%%~/tex4ht/ht-fonts/unicode/!
i%%~/tex4ht/ht-fonts/ascii/!
i%%~/tex4ht/ht-fonts/alias/!
</symhtf>

<win1251htf>
i%%~/tex4ht/ht-fonts/win/1251/!
i%%~/tex4ht/ht-fonts/unicode/!
i%%~/tex4ht/ht-fonts/ascii/!
i%%~/tex4ht/ht-fonts/alias/!
</win1251htf>

<unihtf>
i%%~/tex4ht/ht-fonts/unicode/!
i%%~/tex4ht/ht-fonts/ascii/!
i%%~/tex4ht/ht-fonts/alias/!
</unihtf>

<emspkhtf>
i%%~/tex4ht/ht-fonts/html-speech/!
i%%~/tex4ht/ht-fonts/unicode/!
i%%~/tex4ht/ht-fonts/ascii/!
i%%~/tex4ht/ht-fonts/alias/!
i%%~/tex4ht/ht-fonts/css/emacspeak/!
</emspkhtf>

<jsmlhtf>
i%%~/tex4ht/ht-fonts/jsml/!
i%%~/tex4ht/ht-fonts/unicode/!
i%%~/tex4ht/ht-fonts/ascii/!
i%%~/tex4ht/ht-fonts/alias/!
</jsmlhtf>

%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% dvi-to-xxx                                                        %
%   choose one G-script                                             %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% dvips options                                                     %
%   magnification: -x mag  (e.g., -x 1200)                          %
%   page size:     -T x,y  (e.g., -T 14in,14in)                     %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
<netpbm>
Gdvips -Ppdf -mode ibmvga -D 110 -f %%1 -pp %%2  > zz%%4.ps
Ggs -sDEVICE=ppm -r110 -sOutputFile=zz%%4.ppm -q -dbatch -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -dNOPAUSE zz%%4.ps -c quit
Gmv zz%%4.ppm temp.ppm
Gpnmcrop  temp.ppm > zz%%4.ppm
Gpnmtopng -interlace -transparent 1,1,1 zz%%4.ppm > %%3
 Gppmtopng -interlace -transparent 1,1,1 zz%%4.ppm > %%3
Grm zz%%4.ps
Grm zz%%4.ppm
Grm temp.ppm
% Gppmtogif -interlace -transparent 1,1,1 zz%%4.ppm > %%3 
</netpbm>
<convert>
 G.png
 Gdvips -E -q -Ppdf -f %%1 -pp %%2 > zz%%4.ps
 Ggs -sDEVICE=pngalpha -sOutputFile=%%3 -r110x110 -dEPSCrop -dBackgroundColor=16#ffffff -dTextAlphaBits=2 -dGraphicsAlphaBits=2 -q -dbatch -dNOPAUSE zz%%4.ps -c quit
 Grm zz%%4.ps    
G.svg
Gdvisvgm -n -p %%2 --exact -c 1.4,1.4 -s %%1 > %%3  
G.
%echo "dbg: got to dvips to png via gs (unix dvips convert)"
Gdvips -E -q -Ppdf -f %%1 -pp %%2 > zz%%4.ps
Ggs -sDEVICE=pngalpha -sOutputFile=%%3 -r110x110 -dEPSCrop -dBackgroundColor=16#ffffff -dTextAlphaBits=2 -dGraphicsAlphaBits=2 -q -dbatch -dNOPAUSE zz%%4.ps -c quit
Grm zz%%4.ps 
%--------- alternative instructions for old versions of convert
% Gconvert -trim -density 110x110 -transparent "#FFFFFF" zz%%4.ps %%3
% Gconvert -crop 0x0 +repage -density 110x110 -transparent "#FFFFFF" zz%%4.ps %%3
% Gconvert -crop 0x0 +page -density 110x110 -transparent "#FFFFFF" zz%%4.ps %%3
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
</convert>
 <dvipng>
G.png
%echo "dbg: got to dvi to png via (dvipng)"
Gdvipng -T tight -D 144 -bg Transparent -pp %%2:%%2 %%1 -o %%3
G.gif
Gdvipng -T tight -D 144 -bg Transparent -gif -pp %%2:%%2 %%1 -o %%3
G.svg
Gdvisvgm -n -p %%2 --exact -c 1.4,1.4 -s %%1 > %%3  
G.
Gdvipng -T tight -D 144 -bg Transparent -pp %%2:%%2 %%1 -o %%3
% avoiding convert for mactex.
% Gdvips -Ppdf -mode ibmvga -D 110 -f %%1 -pp %%2 > zz%%4.ps
% Gconvert -crop 0x0 -density 110x110 -transparent '#FFFFFF' zz%%4.ps %%3
%Grm zz%%4.ps
  </dvipng>

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Default scripts, shifted rightward 1 pos
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 s--- needs --- %%1.idv[%%2] ==> %%3 ---
 b--- characters ---
 g.png
% empty bitmaps                                                     %
 Ecopy  empty.png %%1%%2
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
%
% * Address for an automatically created bookkeeping file           %
% * Ignored under kpathsea                                          %
% * The work directory is assumed for a default                     %
 l~/tex4ht.dir/tex4ht.fls
%
% t4ht -d%%2                                                        %
Mmv %%1 %%2%%3
Ccp %%1 %%2%%3
% t4ht -d%%2 -m%%1                                                  %
Achmod %%1 %%2%%3
% removed protection                                                %
S*
%
<javahelp>
.html mv %%1.html %%1.tmp
.html java -classpath  %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -s javahelp.4xt -o %%1.html %%1.tmp
.jhm echo "java -jar ${HOME}/jh2.0/javahelp/bin/jhindexer.jar -db %%0-doc/%%1-jhs %%1*.html"
.jhm echo "--- Warning ---  Beware of leftover %%1*.html files from other compilations"
.jhm java -jar ${HOME}/jh2.0/javahelp/bin/jhindexer.jar -db %%0-doc/%%1-jhs %%1*.html
</javahelp>
<javahelp1>
.jhm java -jar ${HOME}/jh1.1.3/javahelp/bin/jhindexer.jar -db %%0-doc/%%1-jhs %%1*.html
</javahelp1>

<emspk>
.html mv %%1.html %%1.tmp
.html java -classpath  %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -o %%1.html %%1.tmp
</emspk>

<jsml>
.jsml mv %%1.jsml %%1.tmp
.jsml java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -o %%1.jsml %%1.tmp
</jsml>

<docbk>
.xml cp %%1.xml %%1.tmp
.xml java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -o %%1.xml %%1.tmp
</docbk>

<xhtml>
.html mv %%1.html %%1.tmp
.html java -classpath  %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -s xhtml.4xt -o %%1.html %%1.tmp
.xht mv %%1.xht %%1.tmp
.xht java -classpath  %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -s xhtml.4xt -o %%1.xht %%1.tmp
.xml mv %%1.xml %%1.tmp
.xml java -classpath  %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -s xhtml.4xt -o %%1.xml %%1.tmp
</xhtml>

<xhtmml>
.html mv %%1.html %%1.tmp
.html java -classpath  %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -s xhtmml.4xt -o %%1.html %%1.tmp
.xht mv %%1.xht %%1.tmp
.xht java -classpath  %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -s xhtmml.4xt -o %%1.xht %%1.tmp
.xml mv %%1.xml %%1.tmp
.xml java -classpath  %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -s xhtmml.4xt -o %%1.xml %%1.tmp
</xhtmml>

<ooxtpipes>
.4oo mv %%0.4oo %%0.tmp
.4oo java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -o %%0.4oo %%0.tmp
.4om mv %%1.4om %%1.tmp
.4om java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -o %%1.4om %%1.tmp
</ooxtpipes>
%
<validatehtml>
 .html xmllint --noout --valid --html %%1.html
</validatehtml>
<validate>
 .xml xmllint --noout --valid %%1.xml
 .html xmllint --noout --valid %%1.html
 .css mycssparser %%1.css
</validate>
 %
<oo>
%%% openoffice                                                      %
.4oo mkdir sxw-%%0.dir
.4os mkdir sxw-%%0.dir/Pictures
.4os mv    %%1.4os         sxw-%%0.dir/settings.xml
.4oo mv    %%0.4oo         sxw-%%0.dir/content.xml
%                                                                   %
.4om mkdir sxw-%%0.dir/%%1
.4om mv    %%1.4om         sxw-%%0.dir/%%1/content.xml
.4om cp    sxw-%%0.dir/settings.xml  sxw-%%0.dir/%%1/settings.xml
%                                                                   %
.4of mkdir sxw-%%0.dir/META-INF
.4of mv    %%1.4of         sxw-%%0.dir/META-INF/manifest.xml
%                                                                   %
.4ot mv    %%1.4ot         sxw-%%0.dir/meta.xml
.4oy mv    %%1.4oy         sxw-%%0.dir/styles.xml
% .4og cp  --parents %%1   Pictures
% .4og mkdir -p              sxw-%%0.dir/Pictures/%%1
% .4og rmdir                 sxw-%%0.dir/Pictures/%%1
.4og cp    %%1             sxw-%%0.dir/Pictures/
%-- sxw --                                                          %
.4ox cd sxw-%%0.dir; zip -r %%0.sxw * ; cd ..
%                                                                   %
.4ox mv    sxw-%%0.dir/%%0.sxw .
%                                                                   %
.4ox rm    %%1.4ox
.4ox rm -r -f sxw-%%0.dir
%-- odt --                                                          %
.4od cd sxw-%%0.dir; zip -r %%0.odt * ; cd ..
%                                                                   %
.4od mv    sxw-%%0.dir/%%0.odt .
%                                                                   %
.4od rm    %%1.4od
.4od rm -r -f sxw-%%0.dir
%%% end openoffice                                                  %
</oo>
%
% end of file
----------------------------------------------------
--- warning --- Couldn't find font `gbsnu6b.htf' (char codes: 32--253)
--- warning --- Couldn't find font `gbsnu52.htf' (char codes: 0--255)
--- warning --- Couldn't find font `gbsnu76.htf' (char codes: 0--254)
--- warning --- Couldn't find font `gbsnu91.htf' (char codes: 2--220)
--- warning --- Couldn't find font `gbsnu6d.htf' (char codes: 1--252)
--- warning --- Couldn't find font `gbsnu5c.htf' (char codes: 1--251)
--- warning --- Couldn't find font `gbsnu81.htf' (char codes: 2--254)
--- warning --- Couldn't find font `gbsnu62.htf' (char codes: 6--255)
--- warning --- Couldn't find font `gbsnu79.htf' (char codes: 1--253)
--- warning --- Couldn't find font `gbsnu75.htf' (char codes: 4--255)
--- warning --- Couldn't find font `gbsnu4e.htf' (char codes: 0--255)
--- warning --- Couldn't find font `gbsnu53.htf' (char codes: 0--253)
--- warning --- Couldn't find font `gbsnu60.htf' (char codes: 0--250)
--- warning --- Couldn't find font `gbsnuff.htf' (char codes: 1--229)
--- warning --- Couldn't find font `gbsnu59.htf' (char codes: 2--255)
--- warning --- Couldn't find font `gbsnu4f.htf' (char codes: 1--254)
[STATUS]  make4ht: Conversion finished
cjohn001 commented 1 year ago

Hello, solved by using luatex make4ht -l

michal-h21 commented 1 year ago

Thanks for the report. It is true that it is better to use the -l option, as it should work with CJK fonts out of the box, but it was not so hard to add font mapping files also for the TFM version of the fonts, so they should be supported in TeX Live soon as well.

cjohn001 commented 1 year ago

@michal-h21 thanks for the info