Scripts to support CJK-LaTeX

by Mike Fabian <>

The tiny Perl-script 'sfd2map' converts .sfd files (as used by CJK-LaTeX) to .map files (as used by ttf2pt1).

Actually I currently don't use that script stand-alone for performance reasons.

Currently I use such a conversion in another small script 'cjk-latex-config' (attached as well) which creates .tfm files usable with CJK-LaTeX from TrueType fonts as listed in /etc/ttf2pk/ When called like
  cjk-latex-config --type1
this script will use ttf2pt1 to generate .pfb files as well from these TrueType fonts to be used with CJK-LaTeX.

The .sfd files cannot be directly used as input to ttf2pt1 because the format of the .map files which ttf2pt1 expects is slightly different, therefore I made the 'sfd2map' converter script.

But then I noticed that I would have to parse the generated map file *again* to get a list of the plane numbers to use. That seemed to be a bit wastful because I had just parsed the .sfd file to convert it to .map, therefore I included sfd2map as a function in 'cjk-latex-config' as well and collected the plane numbers during the conversion.

But 'cjk-latex-config' is maybe a little bit SuSE specific, therefore I kept 'sfd2map' also as a standalong script. Use it if you like.

'cjk-latex-config' calls another small script 'cjk-latex-t1mapgen' to generate a file containing something like
  cyberb00 BitstreamCyberbit-Roman-00
  cyberb01 BitstreamCyberbit-Roman-01
  cyberb02 BitstreamCyberbit-Roman-02
after all .pfb files have been generated.

Maybe this is also SuSE specific, I'm not sure about in what directories the relevant files are stored on other Linux-like systems.

I'm not yet sure whether they work on other systems beside SuSE Linux. They have hard coded path names where to find the TrueType fonts,, the TeX fonts etc and cjk-latex-config checks whether freetype-tools.rpm is installed. freetype-tools.rpm might have another name for other distributions and for distributions which don't use rpm this check can't work anyway.

These are small details and it should not be difficult to adapt the scripts for other Linux-like systems though.