This is the file vertical.txt of the CJK macro package ver. 4.8.5 (16-Oct-2021). Vertical typesetting ==================== TeX itself can't support vertical typesetting. Nevertheless, it is possible to emulate it by rotating glyphs by 90 degrees. The CJK package supports two different approaches: o Provide fonts which already contain rotated glyphs. In this case, the only difference to normal typesetting is the emulation of bold characters by printing a character three times with slight vertical offsets instead of horizontal ones. Both hbf2gf and ttf2pk can produce rotated bitmap fonts. The major disadvantage is that it doesn't work well for outline fonts since there is no portable way to implement rotation on the font level which works for both PostScript and PDF output. You need a `.fdx' file for this option which at least contains `\CJKvdef{norotate}{}'. o Use the graphicx package to rotate glyphs. A disadvantage is that processing of a document is much slower and that documents tend to be much larger in size. On the other hand, PDF and PostScript output can be produced from identical sources since graphicx hides the implementation differences. This works even without a `.fdx' file in case CJK's default rotation parameters are fine. CJKvert.sty ----------- Loading CJKvert.sty activates vertical support. The two commands to be used in documents are \CJKvert and \CJKhorz which do the obvious. \CJKvert is the default. The two commands act locally, not globally. Use macro \CJKbaselinestretch to adjust the baseline stretch during vertical typesetting. The default value is `1.3'. Package option `usebaselinestretch' saves the \baselinestretch value set before loading CJKvert.sty. If this option is active, then new \baselinestretch = \CJKbaselinestretch * \baselinestretch after issuing \CJKvert. Otherwise, it is simply new \baselinestretch = \CJKbaselinestretch Similarly, \CJKhorz restores the old \baselinestretch value if `usebaselinestretch' is active; without the option, \baselinestretch is set to `1'. Problems with vertical typesetting ---------------------------------- Some glyphs can't be used directly for vertical typesetting; a simple rotation by 90 degrees would produce ugly results for various reasons: o Many punctuation characters have special vertical representation forms. Some fonts contain proper vertical glyphs, but many don't. In the latter case it is necessary to provide alternative methods to improve the optical appearance. o Non-rotated (latin) text within rotated (CJK) text is aligned differently as if text is written horizontally. Rotated glyphs thus must be slightly shifted. o Some fonts contain CJK glyphs without quadratic bounding boxes but only monospaced advance widths. It is then necessary to provide glyph dimensions to assure monospaced advance heights after rotation. See the documentation file `fdxfiles.txt' for details on setting up extended font definition files which can handle those items. Fonts with vertical representation forms ---------------------------------------- OpenType fonts intended for vertical typesetting normally contain a GSUB feature called `vert' which provides a mapping to vertical instead of horizontal representation forms. ttf2tfm automatically takes care of it (see below), but if such fonts have been converted to sets of Type 1 subfonts this feature is lost. A solution to this problem is to collect all vertical representation glyphs in a special Type 1 subfont. See the scripts vertical.pe, vertref.pe (for FontForge), and makefdx.pl (for Perl) in the directory utils/subfonts which do that. At the moment of this writing, only the fonts bsmi00lp.ttf and bkai00mp.ttf for traditional Chinese have been transformed to Type 1 subfonts together with a font with vertical representation glyphs (bsmilpv.pfb and bkaimpv.pfb). They are part of the corresponding CJK font bundles found on CTAN. See the file INSTALL for more information. Rotated fonts ------------- o To install a rotated font to be handled by hbf2gf, simply proceed as usual, with one difference: You have to add a line rotation yes to the hbf2gf configuration file of this font. x_offset and y_offset values must be adjusted too. Look at the example configuration file b5kr12.cfg for details---as you can see, the name of the non-rotated font (b5ka12) has been changed to `b5kr12'. o With ttf2tfm, use the `-x' switch to activate rotation. For details please refer to the man pages of ttf2tfm and ttf2pk. ---End of vertical.txt---