This is the file fonts.txt of the CJK macro package ver. 4.8.5 (16-Oct-2021). The fonts --------- This file describes how to set up CJK fonts inside of LaTeX 2e. For a description how to install TrueType or bitmap fonts please refer to the INSTALL file. CJK.sty uses NFSS (New Font Selection Scheme, part of LaTeX 2e) which has some advantages over the font selection offered with pmC (for plain TeX and LaTeX 2.09): o TeX fonts are loaded only on demand. This is especially useful with Asian logographs. If you have e.g., three Chinese characters in your text, pmC must load the whole Chinese font (about 85 TeX subfonts), whereas LaTeX 2e loads only three subfonts normally. o As long as the limit of 256 TeX fonts is not exceeded, you can use as many CJK fonts as you like (e.g., simplified and traditional Chinese characters together with Japanese fonts in different sizes) ---pmC is limited to two sizes and can only have two CJK fonts at the same time. In the web2c TeX package (for Unix) you find a patch which allows the use of more than 256 TeX fonts (up to about 1000; this is a standard feature of web2c 7.2 and newer versions). Omega can use up to approx. 65000 fonts. o You need not care about the right size of CJK fonts in footnotes, etc. They obey the NFSS (except encoding). Of course you must have access to CJK fonts. . Use pdftex and dvipdfmx which can handle TrueType fonts directly. It is very easy to set up dvipdfmx for handling CJK subfonts; with pdftex this is more complicated. See the file doc/pdf/HOWTO.txt for more information. . Use fontforge to convert TrueType fonts to PS subfonts. Such subfonts work with virtually all dvi drivers. The directory utils/subfonts contain some scripts which help in the conversion process. . Use hbf2gf for HBF pixel fonts to convert them to TFM and PK fonts. . Use ttf2pk (and ttf2tfm) to convert TrueType fonts to TFM and PK fonts. If you chose one font per active character as with the pmC macros, you would waste character space (256 characters per font are possible starting with TeX 3). Therefore CJK.sty expects the whole CJK font split in TeX subfonts with 256 characters each. An example: GuoBiao-encoded simplified characters in song style at 12pt: ^ ^ ^^ ^^ first byte second byte TeX subfont offset ----------------------------------------------- 0xA1 0xA1-0xFE gsso1201 0 0xA2 0xA1-0xFE gsso1201 94 0xA3 0xA1-0xE4 gsso1201 188 0xA3 0xE5-0xFE gsso1202 0 0xA4 0xA1-0xFE gsso1202 26 0xA5 0xA1-0xFE gsso1202 120 . . . 0xFE 0xA1-0xFE gsso1235 38 To convert bitmap fonts to PK files with hbf2gf, you must get the appropriate HBF (Hanzi Bitmap Font) header files or create if you can't find the right one; these HBF files document CJK fonts completely. The HBF specification can be found here: http://www.ibiblio.org/pub/packages/ccic/software/info/HBF-1.1/ Various bitmap fonts together with HBF header files are collected here: http://www.ibiblio.org/pub/packages/ccic/software/fonts/ The font definition files ------------------------- CJK fonts can be installed as easy as normal TeX fonts! (Well, probably this is the first time you have to install a font for TeX---I strongly recommend that you process and read the `fntguide' documentation which is part of the LaTeX 2e base package. There you can also find a description of size commands.) CJK.sty defines six new size commands: `CJK' corresponds to `' (empty) `sCJK' corresponds to `s' `CJKfixed' corresponds to `fixed' `sCJKfixed' corresponds to `sfixed' `CJKsub' corresponds to `sub' `CJKssub' corresponds to `ssub' . For dnp fonts (i.e., real dnp fonts and Watanabe dnp fonts) and Watanabe jfonts (which both use the same font encoding scheme) two additional commands are provided: `DNP' corresponds to `' (empty) `DNPgen' corresponds tp `gen' . Note that PS Wadalab fonts don't use these size functions (but are still in DNP font order). For poor-man's boldface these size commands have been defined: `CJKb', `sCJKb', `CJKfixedb', `sCJKfixedb', `DNPb', `DNPgenb' . They are completely identical to its counterparts without the final `b'. The only reason to use them is to make the fifth parameter of \DeclareFontShape for bold series different from the one for medium series (LaTeX2e uses this parameter as a macro name to execute loading-settings, thus they must not be equal). The difference between the size functions just introduced and the original commands defined by LaTeX 2e is that a CJK size function defines a class of fonts: if you say as an example \DeclareFontShape{C00}{song}{m}{n}{<6> <7> <8> sCJKfixed * b5so07}{} , LaTeX 2e searches for fonts named b5so0701 - b5so0755 if the font size is 6, 7, or 8 pt; in other words, the CJK size functions append two digits to the font name to select the proper subfonts. These digits are defined in the `\CJK@...Encoding' macros; the macro \CJK@plane holds the current value (in pmC compatibility mode and for UTF8 encoding, \CJK@plane holds hexadecimal numbers; see JISdnp.enc for the dnp subfont names which are again different). Here a more detailed example: \DeclareFontFamily{C10}{fs}{} \DeclareFontShape{C10}{fs}{m}{n}{<-> CJK * gsfs14}{} \DeclareFontShape{C10}{fs}{bx}{n}{<-> CJKb * gsfs14}{\CJKbold} This defines a GB encoded font (LaTeX font encoding `C10') which has fangsong shape (fs) in medium series (m) and emulated bold extended (bx) series. The names of the subfonts are gsfs1401 - gsfs1432; all sizes are available. (This is actually a font definition for a bitmap font which corresponds to a size of 14pt if the printer resolution were 300 dpi; hbf2gf magnifies it to any desired size.) The corresponding CJK environment would be \begin{CJK*}{GB}{fs} ... \end{CJK*} . To be consistent with the CJK package it is recommended that for each font shape `m' and `bx' series are defined (some PS font styles from PSNFSS define `b' instead of `bx'; in this case you should add a font substitution entry in the FD file). The default CJK FD files define a `song' shape for each encoding except for KS so that \begin{CJK*}{your-encoding}{} ... \end{CJK*} works (note the empty last parameter). See below for an additional reason. Here a table of the CJK (font) encodings and the corresponding NFSS font encodings. Chinese: Bg5 C00 Bg5pmC C01 Bg5+ C09 GB C10 GBpmC C11 GBK C19 GBt C20 GBtpmC C21 CNS1-7 C31-37 Japanese: JIS C40 JISpmC C41 JISdnp C42 JISwn C43 JIS2 C50 JIS2dnp C52 SJIS -> kana C49 (additionally) Korean: KS -> hanja C60 -> hangul C61 KSpmC C62 KSHL -> hangulHL C63 -> symbolHL C64 -> hanjaHL C65 Unicode: UTF8 C70 CEF: CEFX C80 CEFY C81 [Thai: C90] Some remarks: o An NFSS font encoding for the CJK package consists of the letter `C' followed by two digits; the first represents the CJK (input) encoding, the second the CJK font encoding. Some CJK encodings need more than one NFSS encoding to fully represent all characters. Note: Since LaTeX version 1996/12/01, the name of an FD file consists only of lowercase letters, e.g., c00fs.fd. o You can't use the NFSS encodings (as defined above) directly! You should always use the CJK interface (the exception is Thai; please read cjk-enc.txt and thaifont.txt for details). o According to the NFSS rules the family name must not be longer than five characters. In early versions of CJK the family `fangsong' was used. This is no longer allowed and has been replaced with `fs'. This restriction is mainly for ancient operating systems like MS-DOS which are limited to 8.3 filenames; today, there is no reason any more to artificially shorten the family name. o If you declare an NFSS font encoding in the standard way the corresponding FD file for the default font is loaded. Since a font encoding can be defined only in the preamble, all CJK font encodings must be registered before the document starts even if you use only one or two encodings. For the CJK package this would cause the loading of almost 30 font definition files (see the table above) which is inacceptable. To avoid this overhead NFSS is faked with some rudimentary definitions just enough to pass the NFSS tests of LaTeX 2e. Of course this has a disadvantage: an unknown CJK family causes an error instead of switching to the fallback family usually defined with \DeclareFontSubstitution. Nevertheless, replacing an undefined series or shape works correctly. Setting up cyberbit.ttf for UTF-8 encoding ------------------------------------------ Note 1: I strongly discourage the use of this font, especially for CJKV scripts. The main reason is that correct glyph shapes depend on the language; this means that a glyph representation form for a given Unicode value looks differently in Japanese, Korean, and Chinese (a famous example is character U+9038). Cyberbit doesn't provide such different glyph shapes. Note 2: The following describes a setup for dvipdfmx only. Furthermore, it assumes a recent TeXLive installation. 1. Copy cyberbit.ttf to your local TeXLive tree; a proper location is /texmf-local/fonts/truetype/cyberbit/ (on e.g. Windows) or ~/texmf/fonts/truetype/cyberbit/ (on e.g. GNU/Linux) or something similar. indicates the root directory of TeXLive's texmf tree, for example C:\TeXLive2007 or /usr/local/texlive2007. 2. In the file /texmf/fonts/map/dvipdfm/dvipdfmx/cid-x.map there is already an entry for cyberbit.ttf. Remove the comment character in front of the line. 3. Change to an empty directory and create TFM files with the following call on the command line: ttf2tfm cyberbit.ttf -q cyberb@Unicode@ 4. Move all resulting TFM files to /texmf-local/fonts/bitstrea/cyberb/ or ~/texmf/fonts/bitstrea/cyberb or something similar. 5. Say mktexlsr on the command line to regenerate TeXLive's file name database. That's it. Within the CJK package, the font can be activated with \begin{CJK}{UTF8}{song} ---End of fonts.txt---