This is the file fdxfiles.txt of the CJK macro package ver. 4.8.5
(16-Oct-2021).


Extended font definition files
==============================

The CJK package modifies LaTeX's font loading mechanism to input an extended
font definition file (with suffix `.fdx') immediately after a normal font
definition file (with suffix `.fd') has been loaded. A `.fdx' file is
optional. Here a list of useful commands---note that neither whitespace nor
linebreaks produce output while macros are defined in such files, which is
quite convenient.

Immediately after selecting the proper subfont for a given input character,
the CJK package tests whether a macro

 \<encoding>/<family>/<series>/<shape>/<plane>/<code>/<direction>

is defined. If it exists, it is executed instead of calling \CJKsymbol.

For halfwidth katakana, the macro is called

 \<encoding>/<family>/<series>/<shape>/<code>/<direction>

For fonts from HLaTeX the macro is called

 \<encoding>/<family>/<series>/<shape>/<byte1>/<byte2>/<direction>

For UTF-8, only characters in the range 0x800-0x10FFFF execute the test for
this macro.

<code>, <byte1> and <byte2> are decimal numbers; <direction> is either `v'
or `h'.

The following commands are intended for `.fdx' files:

o   For vertical writing, \CJKvdef should be used to (globally) define the
   macros described above. It always prepends `<encoding>/<family>/'.
   Example from c00bsmi.fdx:

     \CJKvdef{m/n/01/1}{\def\CJK@plane{v}\selectfont\CJKsymbol{4}}

   This defines macro `\C00/bsmi/m/n/01/1/v': If glyph 1 in subfont `01'
   (`bsmilp01' in this example) should be typeset, it is replaced with
   glyph 4 from subfont `v' (`bsmilpv').

   \CJKhdef is the equivalent for horizontal writing.

o   Another macro is \CJKvlet, performing a global \let. Example (again
   from c00bsmi.fdx):

     \CJKvlet{bx/n/01/1}{m/n/01/1}

   This makes `\C00/bsmi/bx/n/01/1/v' the same as `\C00/bsmi/m/n/01/1/v'.

   \CJKhlet is the equivalent for horizontal writing.

CJKvert.sty provides additional macros:

o   Glyphs which shouldn't be rotated are available with \CJKsymbolsimple.
   Here an example from c10gbsn.fdx:

     \CJKvdef{m/n/01/17}{\CJKsymbolsimple{17}}

   If glyph 17 in subfont `01' (`gbsnlp01') is requested, it is replaced
   with itself but unrotated.

o   Some correction parameters are available to position glyphs of a given
   font (i.e., all subfonts) while \CJKvert is active.

   \CJKvdef{norotate}{}

     The default of CJKvert.sty is to rotate all glyphs using the graphicx
     package. If `norotate' is present in a `.fdx' file, glyphs accessed
     with \CJKsymbol are not rotated. `fullheight', `height' and `offset'
     are used only if `norotate' is not set.

   \CJKvdef{fullheight}{<dimension>}

     If defined, it sets the full height (height plus depth) of all CJK
     glyphs accessed with \CJKsymbol to <dimension>. In most cases this
     value is 1em.

   \CJKvdef{height}{<dimension>}

     If defined, it defines the height of all CJK glyphs accessed with
     \CJKsymbol. Consequently, the depth is set to `fullheight - height'.
     For example, the AFM file for `bsmilp01' gives 879 PS units for the
     `Ascender' value. Since 1em is 1000 PS units, a proper value for
     the `height' parameter is 0.88em.

   \CJKvdef{offset}{<dimension>}

     If defined, shift the (rotated) glyphs accessed with \CJKsymbol
     vertically by <dimension>.

   \CJKvdef{simpleoffset}{<dimension>}

     If defined, shift all glyphs accessed with \CJKsymbolsimple vertically
     by <dimension>.

o   The `offset' parameter is available to position glyphs of a given
   font (i.e., all subfonts) while \CJKhorz is active.

   \CJKhdef{offset}{<dimension>}

     If defined (and \CJKhorz being active), shift the glyphs accessed
     with \CJKsymbol vertically by <dimension>.

---End of fdxfiles.txt---