diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/CJK/doc/CJK.txt')
-rw-r--r-- | Master/texmf-dist/doc/latex/CJK/doc/CJK.txt | 1224 |
1 files changed, 0 insertions, 1224 deletions
diff --git a/Master/texmf-dist/doc/latex/CJK/doc/CJK.txt b/Master/texmf-dist/doc/latex/CJK/doc/CJK.txt deleted file mode 100644 index fc123102a06..00000000000 --- a/Master/texmf-dist/doc/latex/CJK/doc/CJK.txt +++ /dev/null @@ -1,1224 +0,0 @@ - -This is the LaTeX2e style package CJK Version 4.7.0 (17-Oct-2006) -================================================================= - -It is freely distributable under the GNU Public License. - - - ************************************************** - * * - * You need LaTeX 2e version 2001/06/01 or newer! * - * * - ************************************************** - - -Usage ------ - -Use CJK.sty as a package, e.g., - - \documentclass{article} - \usepackage[<option>]{CJK} . - -See section `Caveats' below for the available options. Normally, you don't -need them. - -Two new environments, - - \begin{CJK}[<fontencoding>]{<encoding>}{<family>} - ... - \end{CJK} - -and - - \begin{CJK*}[<fontencoding>]{<encoding>}{<family>} - ... - \end{CJK*} - -are defined. The parameters have the following meaning: - - <encoding> These character sets and encodings are currently - implemented in CJK.enc: - - Bg5 (For traditional Chinese. Mainly used in Taiwan. - Character set: Big 5. - Encoding: Big 5 without UDA2 and UDA3.) - Bg5+ (For traditional Chinese. Obsolete. - Character set: Big 5+. - Encoding: GBK.) - - HK (For traditional Chinese. Used in Hong Kong. - Character set: Big 5 + HKSCS-2004. - Encoding: Full Big 5.) - - GB (For simplified Chinese. Mainly used in - PR China. Also called `EUC-CN'. - Character set: GB 2312-1980. - Encoding: EUC.) - GBt (For traditional Chinese. Rarely used in - PR China. - Character set: GB/T 12345-1990. - Encoding: EUC.) - GBK (For Chinese. An extension of GB 2312. - Character set: GBK. - Encoding: GBK.) - - JIS (For Japanese. - Character set: JIS X 0208:1997. - Encoding: EUC.) - JIS2 (Japanese supplementary character set, - Character set: JIS X 0212-1990. - Encoding: EUC.) - SJIS (For Japanese. Used mainly on PCs. Also known - as `MS Kanji'. - Character sets: - 1-byte characters from JIS X 0201-1997 - (half-width katakana), - 2-byte characters from JIS X 0208:1997. - Encoding: SJIS.) - - KS (For Korean. Also called `EUC-KR'. - Character set: KS X 1001:1992 = KS C 5601-1992. - Encoding: EUC.) - - UTF8 (Unicode Transformation format 8, also called - `UTF-2' or `FSS-UTF'. - Character set: Unicode. - Encoding: UTF-8.) - - CNS1 (Chinese National Standard Plane 1, - Character set: CNS 11643-1992 plane 1. - Encoding: EUC.) - CNS2 - ... - CNS7 (Character set: CNS 11643-1992 plane 2 - 7. - Encoding: EUC.) - - CEFX (reserved CEF character set for IRIZ. - Encoding: EUC.) - CEFY (private CEF character set. - Encoding: EUC.) - - Note: The value `HK' can be also used for complete Big 5 - support which needs user-defined areas 2 and 3 - (UDA2 and UDA3), located in the ranges - 0x8E40-0xA0FE and 0x8140-0x8DFE, respectively. - - For details on HKSCS-2004 see - - http://www.info.gov.hk/digital21/eng - /hkscs/download/e_sect3_2004.pdf - - - These encodings (except Big 5, Big 5+, HK, GBK, SJIS, and - UTF-8) are simplified EUC (Extended Unix Code) character - sets without single shifts. The used character set slot - G1 stands for two-byte encodings with byte values taken - from the GR (Graphic Right) character range 0xA1-0xFE - (as defined in ISO 2022). - - Note that CNS1 and CNS2 contain almost the same - characters in the same order as Big 5 (but in EUC). - - For CEF and CNS character sets see CEF.txt also. - - Big 5+ and GBK have exactly the same encoding layout - (but their origins differ). - - Additionally, the following encodings *with* single - shifts are implemented, using some of the above defined - character sets: - - EUC-JP (for Japanese. - Character sets: - Half-width katakana (from JIS X 0201-1997), - JIS X 0208:1997, - JIS X 0212-1992.) - - EUC-TW (for traditional Chinese. - Character sets: - CNS 11643-1992 planes 1-7.) - - EUC-JP, EUC-TW, and UTF-8 encodings can't be used in - preprocessed mode (see below) because it makes no sense. - (To be more precise, UTF-8 sequences with more than two - bytes can't be used.) - - - If you use this parameter it is the same as you would - have used \CJKenc: Writing e.g., - - \begin{CJK}{Bg5}{...} - ... - - is identical to - - \begin{CJK}{}{...} - \CJKenc{Bg5} - ... - - Note: A `character set' is an ordered collection of - glyphs. The order of the glyphs is just for - defining purposes and for reference. - - An `encoding' is an ordering scheme to access a - character set. LaTeX 2e also uses the term `input - encoding'. - - A character set can have many encodings - (cf. JIS X 0208 -> EUC, SJIS). - - An encoding can be used for many character sets - (cf. EUC -> KS X 1001, GB 2312, etc.). - - Sometimes, the character set has the same name - as the encoding (Big 5, Big 5+, GBK). - - For more details I suggest to read the document - cjk.inf from Ken Lunde; it is available from - - ftp://ftp.ora.com/pub/examples/cjkvinfo/ - doc/cjk.inf - - A really thorough reference is his latest book - `CJKV Information Processing' (O'Reilly). - - Throughout this CJK documentation, `encoding' - refers to the valid encoding/character set - combinations defined just above. - - <fontencoding> These font encodings are currently defined: `' (empty; - the default), `pmC' (available for Bg5, GB, GBt, JIS, - and KS), `dnp' (for JIS and SJIS), `wn' (for JIS), and - `HL' (for KS). - - `Font encoding' means the order of characters in the - subfonts itselves. A change of the font encoding neither - alters the meaning of a CJK character nor changes the - character code in the selected encoding. - - The font encoding `pmC' is defined for compatibility - with the pmC package (which is obsolete). It is not - encouraged to use this font encoding because of wasting - subfonts. If possible, convert your original CJK bitmap - fonts with hbf2gf (see hbf2gf.txt) or other tools to CJK - encodings. - - `dnp' implements the character order of the Dai Nippon - Printing fonts and is only available for JIS and SJIS - encoding. `wn' (only available for JIS) is the font - encoding for watanabe jfonts. There exists a linking - package which maps the watanabe jfonts onto the dnp - naming scheme (thus you can use the real dnp fonts for - printing and the mapped jfonts for previewing). See the - documentation files in the `japanese' subdirectory for - further details. - - `HL' allows the use of the new HLaTeX fonts (starting - with version 1.0); note that the definition of fonts is - rather different compared to HLaTeX. See the section - `Korean input' below for a detailed description. - - You can change the font encoding per encoding with the - command \CJKfontenc; the first parameter is the - encoding, the second the font encoding. - - <family> It is impossible to know in advance what fonts are - available at your site; look at the example FD (font - definition) files how to create or modify appropriate FD - files suiting your needs. See fonts.txt also for further - hints. - - If this parameter is empty, the default value given in - CJK.enc is selected: `song' for all encodings except KS - (which defaults to `mj'). If you use this parameter it - is the same as you would have used \CJKfamily; all - encodings then use this family: - - \begin{CJK}{...}{song} - ... - - is identical to - - \begin{CJK}{...}{} - \CJKfamily{song} - ... - - You can change the families per encoding (and font - encoding) with the command \CJKencfamily; the first - parameter is the encoding, the second the family, the - optional argument is the font encoding. This overrides - the default value. - - Note that \CJKfamily or a non-empty `family' parameter - of the CJK environment overrides any \CJKencfamily - commands. Say `\CJKfamily{}' to enable \CJKencfamily - again. - - - The CJK* environment swallows unprotected spaces and newlines after a - CJK character (the usual habit for Chinese and Japanese text), whereas - CJK does not (for European and Korean text). You can switch between - these two `modes' with \CJKspace (CJK* -> CJK) and \CJKnospace (CJK -> - CJK*). - - If you use cjk-enc.el, you don't need to specify a CJK environment. This - is done automatically. See cjk-enc.txt for details. - - -This is a typical example: - - \begin{CJK*}{GB}{kai} - ... - Chinese simplified text in GB encoding - ... - \end{CJK*} - - -How it works ------------- - -Asian logographs can't be represented completely with one byte per -character. (At least) two bytes are needed, and the most common encoding -schemes (UTF-8, GB, Big 5, JIS, KS, etc.) have a certain range for the first -byte (usually 0xA1-0xFE or a part of it) which signals that this and the -next byte represent an Asian logograph. This means almost all plain ASCII -characters (characters between 0x00 and 0x7E) are left undisturbed, and the -remaining character codes (0x80-0xFF) are assigned to a CJK encoding, -creating a multiple-byte encoding with 1-byte and 2-byte characters (and -even 3-byte and 4-byte characters for UTF-8). - -The character 0x7F is reserved also for the CJK package. See the section -`Preprocessors' below. - -Encodings like EUC-TW access additional character sets using escape -characters (0x8E and 0x8F) which signals that the next character comes -from another character set (which is `shifted' to the GR range); up to -four bytes are needed for a single character. Example: - - 0x8E 0xA3 0xB7 0xCE - - 0x8E is a single shift escape character; 0xA3 selects CNS plane 3, and - 0xB7CE is the character code (in GR representation) in this plane. - -CJK.sty makes the character codes 0x7F and 0x81-0xFE active inside of the -CJK environment and assigns macros to the active characters which then -select the proper font and character. The real mechanism is a bit more -complex to assure robustness (it was borrowed and modified from LaTeX 2e's -inputenc.sty) and correct handling of punctuation characters. - -* emTeX users: you must activate 8bit input and output while creating the -* LaTeX2e format file! Do this by using the switches -o and -8 (additional -* to the iniTeX switch -i). -* -* Example: -* -* tex386 -i -o -8 latex.ltx - - -Some internals --------------- - -Internally three levels (bindings, encodings, character macro sets) are -defined: - - active characters - | - +--------------> bindings (standard, SJIS, UTF8) - | - active character macros - | - +--------------> encodings (GB, Big 5, ...) + - | font encodings (none, dnp, wn, pmC, HL) - | - subfont selecting macros - | - +--------------> character macro sets (standard, Big 5, ...) - | - character selecting macros - -User-selectable are only the encoding and the font encoding (as explained -above); the other levels are selected by the CJK package. - -These levels correspond to the following internal macros: - - \CJK@xxxxBinding (`xxxx.bdg' files): - Possible values for `xxxx' are: standard, SJIS, UTF8, EUC-JP, and - EUC-TW. - - \CJK@xxxxEncoding (`xxxx.enc' files): - Possible values for `xxxx' are: standard, extended, Bg5, SJIS, KS, UTF8, - pmCsmall, pmCbig, JISdnp, SJISdnp, KSHL, EUC-JP, and EUC-TW. - - \CJK@xxxxChr (`xxxx.chr' files): - Possible values for `xxxx' are: standard, Bg5, KS, SJIS, UTF8, pmC, - HLaTeX, EUC-JP, and EUC-TW. - -In preprocessed mode (see below), no bindings are used. - - -And now a more detailed description of the various encodings. Please note -that you should never access these macros directly. - - \CJK@standardEncoding is used for EUC encodings with the first and second - byte in the range 0xA1-0xFE (GB, GBt, JIS, JIS2, CNS, CEF). - - \CJK@extendedEncoding is used for Big 5+ and GBK encodings. The first byte - is in the range 0x81-0xFE, the second byte in the range 0x40-0xFE (with a - gap at 0x7F). - - \CJK@Bg5Encoding is used for Big 5 encoding with the first byte in the - range 0xA1-0xFE and the second byte in the range 0x40-0xFE (with a gap - from 0x7F-0xA0). - - \CJK@SJISEncoding is used for SJIS encoding; one-byte characters are in - the range 0xA1-0xDF, two-byte characters have the first byte in the ranges - 0x81-0x9F and 0xE0-0xEF, the second byte runs from 0x40 to 0xFC except - 0x7F. Since SJIS only squeezes the JIS X 0208 character set into a new - scheme without changing the ordering, fonts produced by hbf2gf or ttf2pk - look the same for EUC and SJIS encoding except one-byte SJIS characters. - For more details see below the section `SJIS encoding'. - - \CJK@KSEncoding is used for the KS X 1001 character set in EUC encoding. - Two sets of subfonts are defined, one for Hangul syllables and elements, - and a second for Hanja. For more details see below the section `Korean - input'. - - \CJK@UTF8Encoding is used for Unicode in UTF-8 encoding. The first byte is - in the range 0xC0-0xDF for two-byte values, 0xE0-0xEF for three-byte - values, and 0xF0-0xF4 for four-byte values. The other byte(s) are in the - range 0x80-0xBF. Note that CJK expects two hexadecimal digits as a running - number in the font name (as defined in UTF8.enc) instead of two decimal - digits for subfonts covering characters up to U+FFFF. Subfonts for Unicode - values greater than 0xFFFF use four hexadecimal digits in the font name. - Select the option `unicode yes' in the hbf2gf config file if you use - hbf2gf to transform bitmap fonts in HBF format to PK fonts as used by - CJK.sty . Three commands (\CJKCJKchar, \CJKhangulchar, and \CJKlatinchar) - control the handling of intercharacter glue: \CJKCJKchar (the default) - selects CJK style (using \CJKglue), \CJKhangulchar selects hangul style - (using \CJKtolerance), and \CJKlatinchar selects none of them. This - encoding does not work in preprocessed mode. - - \CJK@pmCsmallEncoding and \CJK@pmCbigEncoding can be activated with - \pmCsmall (this is the default) and \pmCbig inside the CJK environment. - Note that the original pmC fonts have two character sizes per font (the - bigger ones with an offset of -128); Bg5pmC encoded fonts cannot contain - big characters. The names of the fonts in the FD files reflect the - modifications added by Marc Leisher <mleisher@nmsu.edu> to the original - poor man's Chinese (pmC) package written by Thomas Ridgeway - <ridgeway@blackbox.hacc.washington.edu>. - - \CJK@JISdnpEncoding is the JIS X 0208 character set in EUC encoding with - dnp fonts. The main difference (besides the offsets) is the composition of - real font names; a dnp font name consists of name stem + subfont name + - designsize: an example is dmjkata10. Note that the wadalab PS fonts omit - the designsize part in the font names, thus it is sufficient (and even - better) to use the `CJK' size functions in FD files instead of the `DNP' - ones. \CJK@JISwnEncoding is similar to JISdnp encoding but uses Watanabe - jfonts; \CJK@SJISdnpEncoding maps SJIS onto dnp encoded fonts. - - \CJK@KSHLEncoding finally uses the new fonts of the HLaTeX package for - Korean; three internal encodings are necessary to represent it. See the - next section for details. - - \CJK@EUC-TWEncoding and \CJK@EUC-JPEncoding are quite similar to - \CJK@standardEncoding but implement single shift access additionally. They - can't be used in preprocessed mode. - - -Korean input ------------- - -There is already a package which handles Hangul and Hanja (but no other -CJK character sets): HLaTeX. - -To use KS encoding, say - - \begin{CJK}{KS}{} - ... - \end{CJK} . - -These font switches are available inside the environment: - - hangul fonts from former hlatex (in the han font packages): - - * \mj MyoungJo (default) - \gt Gothic - \gs BootGulssi - \gr Graphic - \dr Dinaru - - hangul fonts from former jhtex (in the han1 font packages): - - * \hgt Hangul Gothic - * \hmj Hangul MyoungJo (MunHwaBu fonts) - * \hpg Hangul Pilgi - \hol Hangul Outline (MyoungJo) - - -If a font is marked with a star, real bold series are available. All other -bold fonts are defined using poor man's boldface (see below the section -`Poor man's boldface'). - -See the file INSTALL how to get these fonts. Both `han' and `han1' packages -contain bitmap fonts only (in PK format). - -Note that the font switches are abbreviations for \CJKencfamily and not for -\CJKfamily. - - -For characters with the first byte in the ranges 0xA1-0xAF (except 0xA4) and -0xC9-0xFD (graphic characters, hanja, archaic hangul, etc.) fonts with the -encoding C60 are used. C61 is assigned to hangul fonts (for hangul elements -with the first byte 0xA4 and hangul characters in the range 0xB0-0xC8). This -enables the use of many hangul fonts and perhaps only one or two different -hanja fonts. If you want to use C60 encoding for hangul characters also say -\CJKhanja. The opposite command is \CJKhangul (of course this works only if -you have hangul characters in the C60 font). - -Archaic hangul elements (KS X 1001 0xA4D5-0xA4FE) and the character -KS X 1001 0xA4D4 are only accessible if \CJKhanja is active. - -You should convert your KS X 1001 hanja fonts using hbf2gf (or ttf2pk) as -described above. - - -To use HLaTeX fonts, say - - \begin{CJK}[HL]{KS}{} - ... - \end{CJK} . - -All HLaTeX fonts are PS fonts; these font switches are available inside the -environment (as defined in HLaTeX 1.0; this differs from older versions): - - \bm Bom - * \dn Dinaru - * \gr Graphic - + \gs Gungseo - + * \gt Gothic - \jgt Jamo Gothic - \jmj Jamo Myoungjo - \jnv Jamo Novel - \jsr Jamo Sora - + * \mj Myoungjo - * \pg Pilgi - \pga Pilgia - \ph Pen Heulim - \pn Pen - + \sh Shinmun Myoungjo - + \tz Typewriter - \vd Vada - \yt Yetgul - -If a font is marked with an asterisk, real bold series are available. All -other fonts are defined using poor man's boldface (see below). Only fonts -marked with a plus sign are available for hanja too; the other font families -are mapped to these six hanja families. For backwards compatibility, \ol and -\sm are defined also; both are now equivalent to \mj. - -UN Koaung-Hi <koaunghi@kornet.net>, the author of HLaTeX, defines three -groups of fonts: hangul, hanja, and symbols. The CJK package needs three -internal encodings (C63 for hanja, C64 for symbols, and C65 for hangul) to -represent the font encoding scheme of HLaTeX. - -HLaTeX options: - -The option `hardbold' has been integrated into the FD files---I consider the -fact whether you have bold series available or not as a fundamental local -font setup decision which should be coded into the FD files and not into the -document. As a consequence you have to change your FD files to emulate the -`softbold' option with CJK's poor man's boldface. Example: - - \DeclareFontShape{C63}{gt}{bx}{n}{<-> CJK * wgtb}{} - -should be changed to - - \DeclareFontShape{C63}{gt}{bx}{n}{<-> CJKb * wgt}{\CJKbold} . - -and similar font definitions too. - -[Well, it is not really necessary to modify the FD files to emulate the - `softbold' option: just insert the appropriate \DeclareFontShape and/or - \DeclareFontFamily commands in the preamble of your document.] - -Finally a warning: Please bear in mind that CJK does not emulate the -behaviour of HLaTeX, it only supports its fonts. - - -Big 5 encoding --------------- - -See below the section `Preprocessors' for the preferred input method using -bg5conv. - -The characters `\', `{', and `}' are used as second bytes in the Big 5 -encoding. This collides with TeX. If you write Big 5 text mixed with other -encodings (and you don't want/can't use Mule, Emacs or bg5conv), you should -use the Bg5text environment which changes the category codes of these -characters. The command prefix is now the forward slash `/', and the -grouping characters are `(' and `)', respectively. - -An example: - - \begin{CJK}{Bg5}{song} - \begin{Bg5text} - ... - /begin(center) - ... - /end(center) - ... - /end(Bg5text) - \end{CJK} - -To get the `/', `(', and `)' characters, write `//', `/(', and `/)' inside -the Bg5text environment. - -This environment is ugly, and some commands like \newcommand don't work in -it. Starting with CJK version 3.0 it is also possible to use different -encodings in preprocessed mode, thus this environment is almost obsolete. - -Instead of using the Bg5text environment you can protect the offending -second bytes with a backslash, i.e., `\{', `\}', `\\' (using a non-Chinese -editor). This doesn't increase the readability of the Chinese text, but for -short texts it is perhaps more comfortable. Alas, it doesn't work in page -header commands because the macros `\{', etc., are not expanded. - -Be careful not to use any commands inside the Bg5text environment which -write something into an external file (commands like \chapter, etc.). - -If it is not possible to avoid Big 5 character codes with `\', `{', or `}' -outside of the Bg5text environment (e.g., having Big 5 text in a \chapter or -\section command), you can replace them with the \CJKchar macro manually: - - \section{This is a problematic Big 5 character: \CJKchar{169}{92}} - -The parameters are the first and second byte of the Big 5 character code. -You can also use hexadecimal or octal notation. See commands.txt for a full -description of \CJKchar. - -An environment `HKtext' similar to `Bg5text' is defined for the `HK' -encoding; the same restrictions as explained above hold. - - -SJIS encoding -------------- - -See below the section `Preprocessors' for the preferred input method using -sjisconv. - -Shift-JIS encoding is widely used on PCs for Japanese. A special feature is -the simultaneous use of one-byte and two-byte encoded characters which arose -because of backwards compatibility. The two-byte encoded character set is -completely identical to the JIS X 0208 character set, even the ordering is -the same. Thus there is no need for special two-byte SJIS FD files; the font -definition files for JIS X 0208 are used. - -The situation is different for one-byte SJIS characters, the so called -`half-width' Katakana (encoding C49) from JIS X 0201. Usually you should use -full-width Katakana fonts too to get a typographically correct output. The -exception is a typewriter font which should really have only the half width -of normal Kanji or Katakana to represent screen snapshots or similar things. -The use of C49 encoding can be controlled with the \CJKhwkatakana and -\CJKnohwkatakana macros (see commands.txt for more information). - -Fonts in C49 encoding scheme must have the character glyphs at the code -points 0xA1-0xDF. - -An environment `SJIStext' similar to `Bg5text' is defined; the same -restrictions as explained in the previous section hold. - - -Big 5+ and GBK encodings ------------------------- - -See below the section `Preprocessors' for the preferred input method using -extconv. - -These relatively new encodings are used in some older MS Windows versions in -Taiwan (Big 5+) and Mainland China (GBK). Both encodings implement the whole -CJK character repertory of Unicode in the Basic Multilingual Plane -(U+4E00-U+9FFF, approx. 21000 characters) and a few other characters but -still try to be backwards compatible. All code points of Big 5 are identical -to the code points in Big 5+, and the same holds for GB 2312-1980 and GBK. -Note that the default CJK font encodings for Big 5+ and Big 5 are *not* -compatible. The same is true for GBK and GB2312. - -Two new environments, `Bg5+text' and `GBKtext' similar to `Bg5text' are -defined also; the same restrictions as above hold. - - -CJK captions ------------- - -To use the supplied caption files you need the koma-script package. The main -reason why I choose these style files instead of the standard classes is the -fact that the author of koma-script is willing to support CJK. On the other -hand, the philosophy of the LaTeX 2e maintainers is not to add new features -to the standard classes. - -The koma-script style files are maintained by Markus Kohm -(Markus.Kohm@gmx.de); they are available at the CTAN hosts. - - -If you say \CJKcaption{<caption>} inside of a CJK environment, the file -<caption>.cpx is loaded (.cpx is a preprocessed version of .cap) - -Example: - - \documentclass{scrartcl}% this is a KOMA-script class - \usepackage{CJK} - - \begin{document} - \begin{CJK*}{GB}{kai} - \CJKcaption{GB}% loading GB.cpx - - \chapter{blablabla}% is formatted in Chinese - - ... - - \end{CJK*} - \end{document} - - -Note that for Korean three caption files are available: hanja.cap for -captions using hanja (this corresponds to HLaTeX's `hanja' option) and -two caption files (hangul.cap and hangul2.cap) using hangul. - -For GBK encoding use the GB.cap file. Similarly, use Big5.cap for Big 5+ -encoding. - -In case you want to edit a CAP file, you must create its corresponding -CPX file too. After editing, preprocess the file with - - bg5conv < xxx.cap > xxx.cpx - -(for caption files in SJIS encoding use sjisconv instead), then change -the file name identification strings in the CPX file accordingly. - -In UTF-8 encoding, the following caption files are available. - - ja Japanese - ko-Hang Korean using Hangul - ko-Hang2 another version using Hangul - ko-Hani Korean using Hanja - zh-Hans Chinese simplified - zh-Hant Chinese traditional - -Since those files are identical to its encoding-specific counterparts, -only CPX versions are provided. - - -Underlining and other font effects ----------------------------------- - -Full support for Donald Arseneau's ulem.sty package (beginning with version -2000-05-26) is available by using CJKulem.sty (which loads ulem.sty -automatically). No changes to ulem's interface. - -Even more font effects specific to CJK scripts can be found in CJKfntef.sty; -usage examples can be found in the file CJKfntef.tex . - - -Poor man's boldface -------------------- - -Most CJK fonts available in the public domain do not have bold series. To -emulate boldface by printing the character three times with slight -horizontal offsets some special features are used: - - CJK uses \CJKsymbol internally instead of \symbol to access CJK - characters (after the correct font has been selected). This macro - honours the \ifCJK@bold@ flag; if set it emulates boldface. The default - value of the horizontal offset is 0.015em; to change it you should - redefine \CJKboldshift, the macro which holds this shift. - - \ifCJK@bold@ can be set and unset globally with the commands \CJKbold - and \CJKnormal. These commands are intended to be used with - \DeclareFontShape as follows: - - \DeclareFontShape{C00}{CNS}{m}{n}{<-> CJK * csso12}{} - \DeclareFontShape{C00}{CNS}{bx}{n}{<-> CJKb * csso12}{\CJKbold} - - It should be never necessary to use \CJKnormal since \selectfont has - been modified to always reset \ifCJK@bold@ and to call the - loading-settings (i.e., the sixth parameter) of \DeclareFontShape if - a CJK size function is in use. - - Additionally, new size functions (CJKb, sCJKb, CJKfixedb, sCJKfixedb, - and others; see fonts.txt for details) have been introduced which are - completely identical to its counterparts without the final `b'. The only - reason to use them is, as shown in the above example, to make the fifth - parameter of \DeclareFontShape for bold series different from the one - for medium series (LaTeX 2e uses this parameter as a macro name to - execute loading-settings, thus they must not be equal). - - -Embedding non-CJK words into CJK text -------------------------------------- - -To enable line breaking you should separate non-CJK words and CJK characters -with horizontal space. But the ordinary space dimensions inserted by TeX -based on the current non-CJK font often looks bad because the surrounding -CJK characters are printed almost side by side (the non-stretched value of -\CJKglue is 0pt). Especially in extreme cases which happen in underfull -\hbox commands the default space distorts the CJK text too much. - -If you say \CJKtilde, the active `~' character doesn't produce an -unbreakable space; instead, the following definition is used: - - \def~{\hspace{0.25em plus 0.125em minus 0.08em}} . - -This defines a space which has a normal width of a quarter (CJK) space. See -the file japanese/shibuaki.txt for some further details. - -Here an example: - - ThisIsChineseText~test~ThisIsChineseText - - ^^^^^^ - -Simply use tilde characters instead of spaces at the border between CJK and -non-CJK characters. - -In BibTeX entries, you have to use `{~}' instead of `~'. - -The original definition of `~' is available as \nbs (non-breakable space, a -shorthand for the LaTeX command \nobreakspace). To return to the standard -`~' macro definition say \standardtilde. - -Note that the opposite is not true: To embed CJK words into non-CJK text an -ordinary space is optimal. - -If you use Mule or Emacs 20 please consider the use of cjktilde.el in -utils/lisp. This small package defines a minor mode (cjk-tilde-mode) which -exchanges the space key with the tilde key. It is convenient to bind this -mode to a key, e.g., C-insert. - -For AUC TeX you can also use cjkspace.el which is similar (but not -identical) to cjktilde.el . - - -Preprocessors -------------- - -Using the `XXXtext' environments like `Bg5text' is a mess. Thus three -preprocessors are provided to overcome the restrictions of the XXXtext -environments: bg5conv and sjisconv Big 5 and SJIS encoding, and extconv for -GBK and Big 5+ encoding characters. Compile them with - - cc -O -s -o bg5conv bg5conv.c - cc -O -s -o sjisconv sjisconv.c - cc -O -s -o extconv extconv.c - -and move the binaries to a location in your path, e.g., /usr/local/bin in -a Unix system. [`cc' is the C compiler.] - -See the batch files bg5latex[.bat], etc., for examples how to use them. - -Each Big 5, Big 5+, or GBK character (and each two-byte encoded SJIS -character) `XY' is converted into the form `^^7fX^^7fZZZ^^7f'; ZZZ is the -decimal equivalent of Y, and ^^7f is a character with the hex value 0x7F. -The use of bg5conv/sjisconv/extconv is completely transparent; no changes to -your documents are necessary. - -It is possible to mix preprocessed and non-preprocessed data; simply use -\CJKenc to change the encoding; you can use \CJKinput and \CJKinclude to -load preprocessed data (see commands.txt for a detailed description). - -If you use traditional Chinese characters within Mule or Emacs 20, it is not -necessary to call bg5conv after the use of *cjk-coding* output encoding (but -it is necessary if you write out the file in Big 5 encoding). - -Note 1: The OS/2 script files bg5latex.cmd, etc., need REXX which you - probably have to install first. - -Note 2: With extconv, you can also preprocess encodings like GB or SJIS. - This has the advantage that such data is robust against any changes - of the uc/lccodes in the range 0xA1-0xFE. Only three encodings can't - be preprocessed: UTF8, EUC-TW, and EUC-JP. - - -Customization -------------- - -In case you want to add encodings, font encodings, and related things, or if -you must change or customize some CJK settings, you should use a -configuration file called `CJK.cfg' which is loaded (if it exists) by -CJK.sty just before the final \endinput command. - - -Caveats -------- - - o You can of course use CJK environments inside of a CJK environment, - but it is possible that you must increase the so called `save size' - of TeX (with emTeX you can adjust this with -ms=...; web2c users - can control it with the `save_size' parameter in texmf.cnf). - - The CJK package has optional arguments which control the scope of - CJK environments: - - lowercase If you want to use \lowercase with encodings - inside CJK environments. You need less save size - using the `encapsulated' option if `lowercase' - is not set. You must use bg5conv (sjisconv) or - cjk-enc.el to use Big 5 (SJIS) characters with - this option. - - Use this with caution! All \lccode values in the - range 0x80-0xFF are set to zero, thus disabling - TeX's hyphenation mechanism for words which - contain characters of this range in the *input - encoding* (e.g., Latin-1 encoded words with - accents). This is due to an unfortunate mangling - of the input and output encoding mechanism in - TeX itself. - - global \lccode (if `lowercase' set), \uccode, \catcode - and the activation of the characters 0x81-0xFE - are globally modified (\lccode and \uccode reset - to 0). This is the most economical mode - concerning save size, but you can't have CJK - environments inside of CJK environments or other - environments which manipulate the character - range 0x81-0xFE. - - All CJK font selection commands are globally too! - - Packages which change some of the above values - only once (e.g., in the preamble) also don't - work after the first use of a CJK environment. - - cjk-enc.el automatically selects this option. - - local \lccode (if `lowercase' set) and \uccode - together with bindings are modified globally. - This is the default. You can stack CJK - environments. - - active If activated, bindings are local additionally. - You need this option if you want to mix - preprocessed text with non-preprocessed text in - nested CJK environments. This can happen if you - merge texts in various encodings. - - encapsulated If you want to access e.g., T1 fonts directly - (i.e., without the macros defined in t1enc.def) - or if you want to use a non-CJK LaTeX 2e input - encoding outside of the CJK environment (e.g., - `latin1' for Western European, `latin2' for - Eastern European), you must use this option. - This also ensures that \uppercase and \lowercase - (together with \MakeUppercase and - \MakeLowercase) work correctly. All values - mentioned above are local, so you can stack - environments. This option probably causes an - overflow of the save size. - - Note: All macro packages which access T1 fonts - with the macros defined in t1enc.def work in CJK - environments! E.g., the command `"s' of - german.sty works with \MakeUppercase too. - - - Say - - \usepackage[<option>]{CJK} - - to activate <option>. - - o There is another way to overcome the problem of stacked - environments. CJK implements four CJK attribute switches: \CJKenc, - \CJKfontenc, \CJKencfamily, and \CJKfamily; see commands.txt for a - detailed description. If you need two different encodings/families - at the same output line, you must use these macros. - - An example for \CJKfamily: - - \begin{CJK}{GB}{song} - ... Text in GB song ... \CJKenc{GBt} - ... Text in GBt song ... \CJKfamily{kai} - ... Text in GBt kai ... - \end{CJK} - - An example for \CJKencfamily: - - \CJKencfamily{Bg5}{fs}% fangsong - \CJKencfamily{GB}{kai} - - \begin{CJK*}{}{} - \CJKenc{Bg5} ... Text in Big 5 fangsong ... - \CJKenc{GB} ... Text in GB kai ... - \end{CJK*} - - Contrary to \begin{CJK}{...}{...} it is not necessary to start a new - line in your TeX document file after \CJKenc. - - o A similar command to \CJKchar is \Unicode{<byte1>}{<byte2>} to - access Unicode characters (real Unicode values, not UTF-8 encoded - Unicode) directly; the parameters are the first (high) and second - (low) byte of the Unicode. \Unicode works only in UTF-8 encoding; in - all other encodings you must use \CJKchar[UTF8]{<byte1>}{<byte2>} - instead. - - For Unicode characters greater than U+FFFF, put the first two bytes - into the first argument, and the third byte into the second - argument. Examples are \Unicode{"25E}{"9A} and - \CJKchar[UTF8]{"25E}{"9A} to represent U+25E9A. - - o CJK disables \MakeUppercase (preserving the command as - \CJKuppercase) if you select Big 5 or SJIS encoding without using - bg5conv or sjisconv. This usually affects the headers of the LaTeX - 2e standard classes only. - - o Because CJK.sty and MULEenc.sty insert glue between CJK (and Thai) - characters, it is possible to get unwanted line breaks in verbatim - environments if lines are too long. To avoid this, use the command - \CJKverbatim in combination with the `verbatim' package. It installs - a hook which disables \CJKglue and \Thaiglue in verbatim - environments. - - -Possible errors ---------------- - - o If you write Chinese (or Japanese) text, don't forget to suppress - the linefeed character with a trailing `%' in the CJK environment, - otherwise you get unwanted spaces in the output. On the other side, - say `\ ' or something similar inside the CJK* environment to get a - space after a CJK character. - - o To suppress a line break before a CJK character, say \CJKkern. This - command prevents the insertion of \CJKglue before the CJK character. - - You may wonder about the strange name: a small kern (2 sp) between - two CJK characters signals that the first one is a punctuation - character. - - o If you get the error message: `\CJK... undefined' or other `... - undefined ...' messages and you can't find an error, try inserting - \newpage, \clearpage, or \cleardoublepage (the latter for two-column - printing) before saying \end{CJK} or \end{CJK*}. This can happen if - LaTeX 2e writes headers, footers, or index entries (both \index and - \printindex) of a page containing CJK characters after closing the - CJK environment. - - In case of footnotes with CJK characters which are split across - pages, you have to close the CJK environment on the page on which - the particular footnote ends (probably preceded by a \newpage - command). - - o A similar message to the one mentioned in the last item can be - caused by using the \EveryShipout command from everyshi.sty; here - the reason is exactly the opposite, namely the possible use of a - non-CJK font within an implicit CJK environment. For example, if - you have - - \EveryShipout{ - \fontfamily{phv}% - \selectfont - ... - } - - it can happen that LaTeX tries to use family `phv' for a `CXX' - encoding. The solution is to specify the encoding in \EveryShipout - also: - - \EveryShipout{ - \fontfamily{phv}% - \fontencoding{T1}% - \selectfont - ... - } - - o If you get overfull \hbox'es caused by CJK characters, try to - increase \CJKglue. It defines the glue between CJK characters; the - default definition is - - \newcommand{\CJKglue}{\hskip 0pt plus 0.08\baselineskip} . - - \CJKglue is inserted by CJK.sty between CJK characters (except - punctuation characters as defined in the punctuation tables; see - CJK.enc for the lists). You should separate non-CJK text from CJK - characters with spaces to enable hyphenation, or you write - \CJKtilde and then use `~' instead of spaces to embed non-CJK text - into CJK characters. - - o If you get overfull \hbox'es caused by Hangul syllables, try to - increase \CJKtolerance. The default definition is - - \newcommand{\CJKtolerance}{400} . - - Alternatively, try to increase \emergencystretch (which is a TeX - primitive), setting it to a reasonable value. - - o It is not possible to start a new encoding inside of a verbatim - environment which has not been loaded before (CJK.sty emits an - \input ... command which causes the encoding file to be printed - verbatim instead of being executed). In this case, write a proper - \CJKenc{...} command before opening the verbatim environment. - - Example: - - \CJKenc{JIS} % this loads standard.enc and standard.chr - - \begin{verbatim} - ... - first time JIS characters appear - ... - \end{verbatim} - - - cjk-enc.el does this automatically for you. - - o If you get an error message which looks like this: - - - ! Undefined control sequence. - try@size@range ...extract@rangefontinfo font@info - <-*>@nil <@nnil - - - then you are using an unknown family for a CJK encoding. - - Reason: If you declare an NFSS font encoding in the standard way the - corresponding FD file for the default font is loaded. For the CJK - package this would be almost 30 files which is inacceptable. To - avoid this overhead NFSS is faked with some rudimentary definitions - just enough to pass the NFSS tests. Of course this has a - disadvantage: An unknown CJK family causes the above error instead - of switching to the fallback family usually defined with - \DeclareFontSubstitution. Nevertheless, replacing an undefined - series or shape works correctly. - - The CJK package's default family value is `song' for all encodings - except KS; to avoid the error just described in cases you start an - environment with an empty family parameter the files `XXXsong.fd' - for all encodings `XXX' (except for KS) are already provided. - - o It is neither possible to use a CJK character in a \cite command of - standard LaTeX, nor is it possible to use the `alpha' citation - style. This is a limitation of LaTeX and not of the CJK package. - - o Sometimes it is necessary to define or redefine a command or - environment globally in the preamble, using CJK characters. Example: - - \newtheorem{Them}{some Chinese characters}[section] - - This won't work directly because of the Chinese characters, - producing an error. The next idea is to use a CJK environment in the - preamble: - - \begin{CJK}{...}{...} - \newtheorem{Them}{some Chinese characters}}[section] - \end{CJK} - - Don't be surprised that this also fails! Most commands like - \newtheorem expand to \def which define a macro locally only; - consequently, the just defined command is undefined again after - leaving the CJK environment. - - The correct solution is to use a globally defined macro: - - \begin{CJK}{...}{...} - \gdef\ChineseTheorem{some Chinese characters} - \end{CJK} - - \newtheorem{Them}{\ChineseTheorem}[section] - - o The \makelabels command of letter.sty needs special treatment if you - have an address with CJK characters because it uses the - \AtEndDocument hook to write out its data. Since \AtEndDocument is - called by \end{document} after all environments have been closed - already, a CJK environment must be explicitly inserted into the AUX - file. Example: - - \documentclass{letter} - - \usepackage{CJK} - - \makeatletter - \AtBeginDocument{% - \if@filesw - \immediate\write\@mainaux{\string\begin{CJK*}{...}{...}}% - \fi} - \makelabels - \AtEndDocument{% - \if@filesw - \immediate\write\@mainaux{\string\end{CJK*}}% - \fi} - \makeatother - - - \begin{CJK*}{...}{...} - \address{An address\\ - with some CJK characters} - \signature{...} - \end{CJK*} - - - \begin{document} - - \begin{CJK*}{...}{...} - - \begin{letter}{Another address\\ - with some CJK characters} - \opening{...} - - Your letter text - - \closing{...} - \end{letter} - - \end{CJK*} - - \end{document} - - o A similar solution is needed if you use \bibliography and your - bibliographic database contains author names with CJK characters. - - \makeatletter - \AtBeginDocument{% - \if@filesw - \immediate\write\@mainaux{\string\begin{CJK*}{...}{...}}% - \immediate\write\@mainaux{\string\makeatletter}% - \fi} - \AtEndDocument{% - \if@filesw - \immediate\write\@mainaux{\string\end{CJK*}}% - \fi} - \makeatother - - o If you get strange error messages while using the hyperref package, - add the `CJKbookmarks' option: - - \usepackage[CJKbookmarks]{hyperref} - - o Some versions of fourier.sty cause the following error message: - - ! Undefined control sequence. - \<->futr8t ->\SetFourierSpace - - A simple solution is to insert the line - - \providecommand{\SetFourierSpace}{} - - right before loading fourier.sty . - - -Author ------- - -Werner Lemberg <wl@gnu.org> - -Kleine Beurhausstr. 1 -D-44137 Dortmund -Germany - -Tel. +49 231 165290 - -Please report any errors or suggestions to cjk-bug@ffii.org. - - ----End of CJK.txt--- |