diff options
Diffstat (limited to 'Master/texmf/doc/hbf2gf/hbf2gf.txt')
-rw-r--r-- | Master/texmf/doc/hbf2gf/hbf2gf.txt | 384 |
1 files changed, 0 insertions, 384 deletions
diff --git a/Master/texmf/doc/hbf2gf/hbf2gf.txt b/Master/texmf/doc/hbf2gf/hbf2gf.txt deleted file mode 100644 index a8bb9b2222d..00000000000 --- a/Master/texmf/doc/hbf2gf/hbf2gf.txt +++ /dev/null @@ -1,384 +0,0 @@ -This is the file hbf2gf.txt of the CJK macro package ver. 4.7.0 -(17-Oct-2006). - -Using hbf2gf -------------- - -hbf2gf converts CJK bitmaps with an HBF header file into GF files. - -Additional documentation can be found in the man page utils/hbf2gf/hbf2gf.1 -(pre-formatted versions of this document can be found in the `cjk-doc' -bundle of CJK). - - -Syntax: - - hbf2gf [-q] configuration_file[.cfg] - hbf2gf [options] subfont_name x_resolution [y_scale | y_resolution] - hbf2gf -t [-q] font_name - hbf2gf --version | --help - -Options: - -q make hbf2gf quiet - -p don't create a PL file - -g don't create a GF file - -n use no resolution in extension (only `.gf') - -t test for font_name (returns 0 on success) - - -Keywords in the configuration file must start a line, the appropriate values -being on the same line separated with one or more blanks or tabs. -Environment variables names start with `$'; to get a dollar sign you must -type `$$'. - -The expansion of environment variables in hbf2gf itself (without the help of -the kpathsea library) is very limited; this feature has been carried over -from previous versions. It can't expand variables set in texmf.cnf; it also -can't handle more than one directory as the variable's value. Don't use it -except for the `pk_directory' and `tfm_directory' parameters! - -Here is an example configuration file gsfs14.cfg (please refer to hbf2gf.1 -and hbf2gf.dvi for a description of the keywords) to be run under OS/2: - -hbf_header jfs56.hbf -mag_x 1 -design_size 14.4 - -y_offset -13 -comment jianti fansongti 56x56 pixel font scaled and adapted to 14.4pt - -nmb_files -1 -tfm_files yes - -output_name gsfs14 - -checksum 123456789 - -dpi_x 300 - -coding codingscheme GB 2312-80 encoded TeX text - -pk_directory $HBF_TARGET\pixel.lj\432dpi\ -tfm_directory $HBF_TARGET\tfm\ - -rm_command del -cp_command copy -long_extension off -job_extension .cmd - - -Installation of a complete set of subfonts ------------------------------------------- - -Here are the results of a sample run of the above configuration file -(assuming that the environment variable %HBF_TARGET% points to d:\china): - - input files: jfs56.a - jfs56.e, jfs56.hbf - - program call: hbf2gf gsfs14.cfg - - intermediate files: gsfs14.cmd, gsfs1401.gf - gsfs1432.gf, gsfs14.pl - - batch file call: gsfs14.cmd - - output files: d:\china\pixel.lj\432dpi\gsfs1401.pk - gsfs1432.pk, - d:\china\tfm\gsfs1401.tfm - gsfs1432.tfm - - -[gsfs: GuoBiao simple encoded FanSong style - ^ ^ ^ ^ -It's hard to overcome the DOS restriction of 8 characters in a file name if -you need two characters as a running number...] - - -Using MakeTeXPK or mktexpk --------------------------- - -***************************************************************************** -* * -* For teTeX >=1.0 and web2c >= 7.3.1, no patches are necessary for either * -* mktexpk or mktextfm. * -* * -***************************************************************************** - -The simpler way to create PK fonts is to apply the patches in the -utils/hbf2gf/scripts directory. In case you can't become root make sure that -the patched file is found in the path *before* the original MakeTeXPK (or -mktexpk) script. - -First of all, move the HBF files together with the bitmap font files to its -final destination which has to be added to the variables $MISCFONTS -(kpathsea version >= 3.3), or $T1FONTS (kpathsea > 2.6), or $DVIPSHEADERS -(kpathsea <= 2.6), which can be either modified in texmf.cnf or set in the -environment (please read the kpathsea info files how to do that). Now do the -same with all `.cfg' files; the corresponding configuration variable is -$HBF2GFINPUTS (kpathsea >= 3.2) or $TEXCONFIG (kpathsea < 3.2). - -Then, create a set of TFM files for the specified CJK bitmap font. This -should be done with the hbf2gf configuration parameters `tfm_files yes' and -`pk_files no' (to be modified in the `.cfg' files; see hbf2gf.dvi for a -detailed description of all needed keywords). After calling the produced -shell script the TFM files are installed. Note that if you change any hbf2gf -parameters which alter the appearance of the font (the metrics, to be more -exact) you must repeat this step so that TFM and PK files fit together. - -The previous step can be omitted in case you patch MakeTeXTFM or mktextfm -too so that TFM files can be created on-the-fly. - -Please note further that in case you write a new hbf2gf configuration file, -the name of that file must be the name stem of the CJK subfont (as defined -in the appropriate FD file and the hbf2gf configuration file) plus `.cfg': - - Example: - - searched: gsfs1021.pk - configuration file: gsfs10.cfg - -The final step for web2c 6.x or teTeX 0.4 is to edit texmf.cnf (the kpathsea -configuration file, usually in /usr/local/lib/texmf/web2c) and change the -two variables - - $PKFONTS.xdvi - $PKFONTS - -by appending - - :$pkdir/hbf2gf - -to define an own `mode' for hbf2gf, similar to the modes `cx', `ljfour', -etc. The TeX Directory Structure (TDS) standard suggests `modeless' for this -name which is already defined in teTeX 1.0 and web2c 7.x. - -Example: - - PKFONTS.xdvi=.:$pkdir/$MAKETEX_MODE:$pkdir/gsftopk: - $pkdir/ps2pk:$pkdir/hbf2gf - PKFONTS=.:$TEXMF/fonts//pk/$MAKETEX_MODE:$pkdir/hbf2gf - -The line break above is given for convenience only and should not appear -in the texmf.cnf file (no space before and after the `:'). - -[If you cannot become root, copy texmf.cnf into your home directory and do -the modifications there; make sure that your personal config file is found -in the search path first since web2c uses the first definition of each -variable encountered.] - -If you use hbf2gf with two parameters (as in MakeTeXPK), only one GF file -and one PL file is produced, and no batch file is created; the `pk_files' -parameter is ignored. You can control with the switches -g and -p whether a -GF or PL file is created at all. - - -Using dvidrv.btm [emTeX for DOS and OS/2] -------------------------------------------- - -This batch file does the same as MakeTeXPK and mktexpk; it is a replacement -for dvidrv.exe of emTeX which can handle ttf2pk, hbf2gf, and ps2pk -additionally (the ps2pk part is untested yet; it uses ps2pkmfj of the -4allTeX distribution and was basically copied from a similar script, also -part of 4allTeX). - -First of all, create and install a set of TFM files as described in the -previous section. - -Then configure the following variables in dvidrv.btm: - - ps2pk ... set it to `yes' if you want to use this program - ttf2pk ... ditto - hbf2gf ... ditto - - pkdir ... the place where PK files created by ps2pk, ttf2pk, - or hbf2gf should go to. dvidrv.btm adds - `\modeless\XXXdpi' resp. `\modeless\dpiXXX' to this - string (depending on the variables `pre_dpi' and - `post_dpi') - - ttfonts ... where the TrueType fonts files reside - ttfcfg ... where the auxiliary data files of ttf2pk reside - - hbfonts ... where the HBF files reside - hbfcfg ... the place where the hbf2gf configuration files are - -The last four variables in the above list support trailing `!' and `!!' for -recursive directory searching (see the dvidrv.doc of the emTeX package for -details). - -Alternatively, you can set these variables in the environment; please note -that no spaces are allowed before and after the equal sign, e.g., - - set foo=bar - -is OK, but - - set foo = bar - -fails. - -Rename dvidrv.exe to dvidrv.ori or something similar and copy dvidrv.btm to -a directory in the path. - -Don't forget to update the DVIDRVFONTS and TEXTFM environment variables if -necessary. - -Under OS/2 dvips calls mfjob or hbf2gf itself; under DOS it creates a batch -file which must be called afterwards. - - -Adjusting the font parameters ------------------------------ - -It is possible to convert bitmap fonts to PK files almost automatically. The -HBF header file already has the entry `HBF_BITMAP_BOUNDING_BOX' which -defines vertical and horizontal offsets (in pixels), but these values are -not in all cases optimal for the desired target size. If you omit `x_offset' -and `y_offset' in the CFG file, the third and fourth parameter of -`HBF_BITMAP_BOUNDING_BOX' is used (except for rotated glyphs), scaled to -design size (to say it with other words: x_offset and y_offset always apply -to the design size to be synchronous with the TFM files). - -Don't confuse scaling and magnification: Scaling here means that you choose -a (arbitrary) design size and compute scaling values (mag_x and mag_y; the -parameter names are a bit misleading) which scales the bitmap to this -particular design size at a certain (arbitrarily chosen) resolution (dpi_x -and dpi_y). Magnification means that the scaled bitmap is then magnified to -a certain target size while still using the font parameters (i.e., TFM file) -of the design size. - -In the sample, you have a 56x56 bitmap font which is scaled to 14.4pt having -a resolution of 300 dpi; here we compute the theoretical scaling value to -reach the design size (14.4pt): - - 1 pt are 300 / 72.27 = 4.1511 pixel; - 14.4 pt are 4.1511 x 14.4 = 59.78 pixel; - thus the theoretical magnification value is 59.78 / 56 = 1.0675 . - -But especially for small sizes, this may be not the best value if the font -should harmonize with, say, Knuth's Computer Modern fonts. I recommend to to -compute, say, five PK fonts, then check the CJK font with different TeX -fonts to see whether the offsets and/or the magnification value is good. The -greater the design size the finer you can control the offsets---as an -example you could use a design size of 30pt (nevertheless there is an -arbitrary compile-time constant MAX_CHAR_SIZE which limits the maximal -character size; default is 1023 pixels). - -Testing has shown that in the above example a magnification value of 1 is -better than 1.07; additionally if you use this font at 14.4pt you get the -original bitmap without any distortions introduced by scaling. - -If you have found optimal offsets, you can produce many different -magnifications of the CJK font using the same set of TFM files in analogy to -ordinary TeX fonts; as a simplification, we assume that PK files with a -resolution of XXXdpi and a design size of 10pt have the extension `.XXXpk' -(respectively come into a `XXXdpi' subdirectory)---this is the reason why in -the above example for the 14.4pt design size with 300dpi a `432dpi' target -directory has been used. Now we can use the following formula: - - your_target_size - needed_dpi = your_horizontal_resolution * ---------------- - 10.0 - -Example: Assuming that your printer has a resolution of 300 x 400dpi, -and you want 14.4pt: - - 14.4 - 300 * ---- = 432 - 10.0 - -The vertical scaling value is 400 / 300 = 1.3333. Use these values now to -call hbf2gf in METAFONT--like mode: - - hbf2gf hbf2gf.cfg 432 1.3333 - -Assuming you have created a complete set of hanja fonts (ksmj10) for 10pt -design size, the proper entry in c60mj.fd would be - - \DeclareFontShape{C60}{mj}{m}{n}{<5><6><7><8><9><10> - <10.95><12><14.4> - <17.28><20.74><24.88> CJK * ksmj10}{} - -If you use the (modified) mktexpk to create PK fonts on demand it is -sufficient to write - - \DeclareFontShape{C60}{mj}{m}{n}{<-> CJK * ksmj10}{} - -if one CJK bitmap font should cover the whole size range. - - -Compiling hbf2gf ----------------- - -You need an ANSI C compiler. - -Under Unix-like systems say - - ./configure --prefix=/usr/local/TeX \ - --with-kpathsea-include=<INCLUDEDIR> \ - --with-kpathsea-lib=<LIBDIR> - make - make install - -for a normal compilation and installation. Replace `/usr/local/TeX' with a -path to your TeX distribution. - -[Note 1: - Try to find `libkpathsea.*' on your system. Use this directory as the - argument for --with-kpathsea-lib. Then try to find `kpathsea/tex-file.h' - and use the parent directory of kpathsea as the argument for - --with-kpathsea-include. This should work in most cases. If you can't find - the library, you probably have a web2c package with statically linked - binaries. This means that you have to get the web2c sources from CTAN, - configure it with something like - - ./configure --prefix=/usr/local/TeX --datadir=/usr/local/TeX \ - --enable-shared --disable-static - - according to your setup; then change to the kpathsea directory and say - `make' and `make install' (Do the latter with caution not to overwrite - original binaries like kpsewhich). - - It even works with the source tree from the TeX Live CD! You just have - to add a proper --srcdir option to the configure script. - - Note 2: - It seems that c-auto.h created during the kpathsea library compiling - process won't be installed for some older web2c versions. You should add - it manually, i.e., copy <web2c source tree>/kpathsea/c-auto.h to the - location where the other kpathsea header files have been installed. - - Note 3: - As a last resort or for testing purposes, you can even compile hbf2gf - without any search library; a simple call to fopen() is used instead.] - - - -Use Makefile.gnu for emx + GNU make and say - - make -f Makefile.gnu - -to get a help screen with the possible options. - -[Note: It should work with djgpp too, but I haven't tested this.] - - -If necessary, `touch' hbf2gf.c (in case you don't have ctangle) to made the -time stamp of the file more recent; otherwise, the `make' program complains. - -Under some older SunOS versions, gcc (without the GNU C-library) has -problems; if possible, install the GNU C-library. Otherwise you get a bunch -of warning messages about missing prototypes which can be ignored. The only -missing function is strtoul(). If your system has gdb or some other GNU -utils, you are almost done. Search for the libiberty.a library (usually in -/usr/local/lib), copy it into the hbf2gf subdir and link it with the other -modules: - - LDFLAGS=-liberty ./configure ... - -If you don't have libiberty, replace strtoul() with strtol() in the hbf2gf.w -(or hbf2gf.c) file. - -It was reported that on the NeXT an older version of gcc has difficulties to -process the '%i' printf parameter correctly; simply replace all occurrences -with '%d' (most notably in hbf.c). - - ----End of hbf2gf.txt--- |