diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-12 23:49:33 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-12 23:49:33 +0000 |
commit | 9c13b7d529c1df9b36a4a1cfae5893423f71f9f0 (patch) | |
tree | fb0eab8645d8ce722f854856b6281582007930d7 /Master/texmf-dist/tex/latex/CJK/CJK.enc | |
parent | 537a62abf2208730c27ee774a90f39a41a8cce70 (diff) |
CJK
git-svn-id: svn://tug.org/texlive/trunk@630 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/CJK/CJK.enc')
-rw-r--r-- | Master/texmf-dist/tex/latex/CJK/CJK.enc | 999 |
1 files changed, 999 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/CJK/CJK.enc b/Master/texmf-dist/tex/latex/CJK/CJK.enc new file mode 100644 index 00000000000..64766a18de4 --- /dev/null +++ b/Master/texmf-dist/tex/latex/CJK/CJK.enc @@ -0,0 +1,999 @@ +% This is the file CJK.enc of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Werner Lemberg <wl@gnu.org> +% +% Version 4.6.0 (11-Aug-2005) + +\def\fileversion{4.6.0} +\def\filedate{2005/08/11} +\ProvidesFile{CJK.enc}[\filedate\space\fileversion] + + +% we first define a macro to load an encoding file xxx.enc if +% \CJK@xxxEncoding is still undefined. \CJK@xxxEncoding will only be +% executed if it is not the actual encoding. + +\edef\CJK@actualEncoding{} + +\def\CJK@loadEncoding#1{ + \expandafter\ifx\csname CJK@#1Encoding\endcsname \relax + \CJK@input{#1.enc} + \fi + + \edef\CJK@temp{#1} + \ifx\CJK@temp \CJK@actualEncoding + \else + \csname CJK@#1Encoding\endcsname + \CJK@global\edef\CJK@actualEncoding{#1} + \fi} + +% this loads the appropriate xxx.chr file if \CJK@xxxChr is still undefined. +% \CJK@xxxChr will only be executed if it is not the actual character +% macro set. + +\edef\CJK@actualChr{} + +\def\CJK@loadChr#1{ + \expandafter\ifx\csname CJK@#1Chr\endcsname \relax + \CJK@input{#1.chr} + \fi + + \edef\CJK@temp{#1} + \ifx\CJK@temp \CJK@actualChr + \else + \csname CJK@#1Chr\endcsname + \CJK@global\edef\CJK@actualChr{#1} + \fi} + +% this loads the appropriate xxx.bdg file if \CJK@xxxBinding is still +% undefined. \CJK@xxxBinding will only be executed if it is not the +% actual binding. +% +% if the flag \ifCJK@nobind@ is set we do nothing. + +\newif\ifCJK@nobind@ + +\edef\CJK@actualBinding{} + +\def\CJK@loadBinding#1{ + \ifCJK@nobind@ + \else + \expandafter\ifx\csname CJK@#1Binding\endcsname \relax + \CJK@input{#1.bdg} + \fi + + \edef\CJK@temp{#1} + \ifx\CJK@temp \CJK@actualBinding + \else + \csname CJK@#1Binding\endcsname + \CJK@global\edef\CJK@actualBinding{#1} + \fi + \fi} + + +% define macros for individual characters (i.e. the first byte); each active +% character selects the appropriate subfont. The assignments actually +% happen in the encoding specific .enc files. + +\def\CJK@namegdef#1{ + \@tempcnta `#1 + \edef\CJK@temp{\the\@tempcnta} + \expandafter\CJK@global\expandafter\def\csname CJK@\CJK@temp\endcsname} + + +% some encodings can't be reliably processed if \MakeUppercase is active. +% The following macro disables it. It is used in the encoding specific +% .enc files. + +\ifx\CJKpreproc \relax + \def\CJK@disableMakeUppercase{ + \CJK@global\let\CJKuppercase \MakeUppercase + \CJK@global\let\MakeUppercase \relax + + \PackageWarningNoLine{CJK}{ + `\CJK@actualEncoding' encoding used in non-preprocessed mode.\MessageBreak + \protect\MakeUppercase\space disabled} + \CJK@global\let\CJK@disableMakeUppercase \relax} +\else + \let\CJK@disableMakeUppercase \relax +\fi + + +% single shifts (EUC-TW, EUC-JP) and three-byte UTF8 values can't be used +% in preprocessed mode + +\def\CJK@shiftError{ + \PackageError{CJK}{ + Single shifts in `\CJK@actualEncoding' encoding + can't be used in preprocessed mode + } + {Maybe you've forgotten to change the encoding?}} +\def\CJK@unicodeError{ + \PackageError{CJK}{ + Three-Byte UTF8 values can't be used in preprocessed mode + } + {Maybe you've forgotten to change the encoding?}} + + +% the following macro is used to map the CJK (font) encoding to the +% corresponding NFSS font encodings. It also registers the encoding; +% we define an empty macro for the font name in \DeclareFontSubstitution +% since LaTeX2e tests without a subplane appended. + +\def\CJK@mapToNFSS#1#2#3#4#5{ + \expandafter\edef\csname CJK@#1@nfssenc\endcsname{#2} + \DeclareFontEncoding{#2}{}{} + \DeclareFontSubstitution{#2}{#3}{#4}{#5} + \expandafter\def\csname #2/#3/#4/#5\endcsname{}} + + +% an ugly environment which redefines the characters `\', `{', and `}' to +% `/', `(', and `)' respectively since some CJK encodings need these +% characters as second bytes. +% +% to include \CJK@global we define the low level environment macros +% directly. + +\def\CJK@makeEnvironment#1{ + \@ifundefined{#1text}{ + \CJK@global\@namedef{#1text}{ + \catcode`\\=12 + \catcode`\{=12 + \catcode`\}=12 + \def\/{/} + \def\({(} + \def\){)} + \catcode`\/=0 + \catcode`\(=1 + \catcode`\)=2} + \CJK@global\@namedef{end#1text}{}}{}} + + +% here an overview of all encodings/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 +% SJISdnp -> kana C49 +% +% Korean: KS -> hanja C60 +% -> hangul C61 +% KSpmC C62 +% KSHL -> hangulHL C63 +% -> symbolHL C64 +% -> hanjaHL C65 +% +% Unicode: UTF8 C70 +% +% CEF: CEFX C80 +% CEFY C81 + + +% here are the punctuation tables. We suppress spaces additionally in this +% group. + +\begingroup + \catcode`\ 9\relax + + \CJK@prePunct {Bg5}{A1}{5D, 5F, 61, 63, 65, 67, 69, 6B, 6D, 6F, 71, 73, + 75, 77, 79, 7B, 7D, A1, A3, + A5, A7, A9, AB, + AD, B1, CC, CD} + \CJK@postPunct {Bg5}{A1}{41, 42, 43, 44, 45, 46, 47, 48, + 49, 4A, 4B, 4C, 4D, 4E, 4F, 50, 51, + 52, 53, 54, 57, + 5E, 60, 62, 64, 66, 68, 6A, 6C, 6E, 70, 72, 74, + 76, 78, 7A, 7C, 7E, A2, A4, + A6, A8, AA, AC} + \CJK@prePunct {Bg5}{A2}{43, 44, 45, 46, 47, 49, + 4C, 4E} + \CJK@postPunct {Bg5}{A2}{48, 4A, 4B, 4D, + 4F, 50, 51, 52, 53, 54, 55, 56, 57, 58} + + \CJK@prePunct {GB}{A1}{AE, B0, B2, B4, B6, B8, BA, BC, BE, + E7, E8, E9, EA, EC, ED} + \CJK@postPunct {GB}{A1}{A2, A3, A4, A9, AD, + AF, B1, B3, B5, B7, B9, BB, BD, BF, + C3, E3, E4, E5, E6, EB} + \CJK@prePunct {GB}{A3}{A3, A4, A8, C0, DB, FB} + \CJK@postPunct {GB}{A3}{A1, A5, A9, AC, AE, BA, BB, BF, DD, FD} + + \CJK@prePunct {JIS}{A1}{C6, C8, CA, CC, CE, D0, D2, D4, D6, D8, DA, + EF, F0, F1, F2, F4, F7, F8} + \CJK@postPunct {JIS}{A1}{A2, A3, A4, A5, A6, A7, A8, A9, AA, AB, AC, + B3, B4, B5, B6, B9, BA, BC, + C4, C7, C9, CB, CD, CF, D1, D3, D5, D7, D9, DB, + EB, EC, ED, EE, F3} + \CJK@prePunct {JIS}{A2}{A9} +% \CJK@postPunct {JIS}{A2}{} +% \CJK@prePunct {JIS}{A4}{} + \CJK@postPunct {JIS}{A4}{A1, A3, A5, A7, A9, + C3, E3, E5, E7, EE} +% \CJK@prePunct {JIS}{A5}{} + \CJK@postPunct {JIS}{A5}{A1, A3, A5, A7, A9, + C3, E3, E5, E7, EE, + F5, F6} + + \CJK@prePunct {SJIS}{81}{65, 67, 69, 6B, 6D, 6F, 71, 73, 75, 77, 79, + 8F, 90, 91, 92, 94, 97, 98, + A7} + \CJK@postPunct{SJIS}{81}{41, 42, 43, 44, 45, 46, 47, 48, 49, 4A, 4B, + 52, 53, 54, 55, 58, 59, 5B, + 63, 66, 68, 6A, 6C, 6E, 70, 72, 74, 76, 78, 7A, + 8B, 8C, 8D, 8E, 93} +% \CJK@prePunct {SJIS}{82}{} + \CJK@postPunct{SJIS}{82}{9F, A1, A3, A5, A7, + C1, E1, E3, E5, EC} +% \CJK@prePunct {SJIS}{83}{} + \CJK@postPunct{SJIS}{83}{40, 42, 44, 46, 48, + 62, 83, 85, 87, 8E, + 95, 96} + + % half-width katakana + \CJK@prePunct {C49}{}{A2} + \CJK@postPunct {C49}{}{A1, A3, A4, A5, A7, A8, A9, AA, AB, AC, AD, AE, AF, + B0, DE, DF} + + \CJK@prePunct {KS}{A1}{AE, B0, B2, B4, B6, B8, BA, BC, + CB, CC, CD, D7, EC} + \CJK@postPunct {KS}{A1}{A2, A3, A4, A5, A6, + AF, B1, B3, B5, B7, B9, BB, BD, + C6, C7, C8, C9, ED} + \CJK@prePunct {KS}{A3}{A3, A4, A8, C0, DB, DC, FB} + \CJK@postPunct {KS}{A3}{A1, A5, A9, AC, AE, BA, BB, BF, DD, FD} + + \xdef\CJK@uniPunct{30, fe, ff} % values must be lowercase for UTF 8 + + \CJK@prePunct {UTF8}{30}{08, 0A, 0C, 0E, 10, 12, 14, 16, 18, 1A, 1D, 1F, 36} + \CJK@postPunct{UTF8}{30}{01, 02, 05, 06, + 09, 0B, 0D, 0F, 11, 15, 17, 19, 1B, 1E, + 41, 43, 45, 47, 49, 63, 83, 85, 87, 8E, + 9B, 9C, 9D, 9E, + A1, A3, A5, A7, A9, C3, E3, E5, E7, EE, F5, F6, + FB, FC, FD, FE} + \CJK@prePunct {UTF8}{fe}{59, 5B, 5D, 5F, 60, 69, 6B} + \CJK@postPunct{UTF8}{fe}{50, 51, 52, 54, 55, 56, 57, 5A, 5C, 5E, 6A} + \CJK@prePunct {UTF8}{ff}{03, 04, 08, 20, 3B, 5B, E0, E1, E5, E6} + \CJK@postPunct{UTF8}{ff}{01, 05, 09, 0C, 0E, 1A, 1B, 1F, 3D, 5D, + 61, 63, 64, 65, 67, 68, 69, 6A, 6B, 6C, 6D, 6E, 6F, + 70, 9E, 9F} + + \CJK@prePunct {CNS1}{A1}{BE, C2, C6, CA, CE, D2, D6, DA, DE, E0, E2, + E4, E6, E8, EA, + EC, F0} + \CJK@postPunct{CNS1}{A1}{A2, A3, A4, A5, A6, A7, A8, A9, + AA, AC, AD, AE, AF, B0, B1, B2, + B3, B4, B5, + BF, C3, C7, CB, CF, D3, D7, DB, DF, E1, E3, + E5, E7, E9, EB} + \CJK@prePunct {CNS1}{A2}{AD, AE, E3, E4, E5, E6, E7, E9, + EC, EE} + \CJK@postPunct{CNS1}{A2}{E8, EA, EB, ED, + EF, F0, F1, F2, F3, F4, F5, F6, F7, F8} + +\endgroup + + +% dummy encoding for MULE. + +\def\CJK@@enc{\CJK@loadBinding{standard}} + +\edef\CJK@@fontenc{} + + +% traditional Chinese characters +% +% character set: Big 5 +% encoding: Big 5 +% font encoding: CJK + +\CJK@mapToNFSS{Bg5}{C00}{song}{m}{n} +\CJKencfamily{Bg5}{song} +\CJKfontenc{Bg5}{} +\@namedef{CJK@Bg5@hook}{} + +\@namedef{CJK@Bg5@enc}{ + \CJK@makeEnvironment{Bg5} + + \CJK@loadBinding{standard} + + \CJK@global\chardef\CJK@min "040% don't forget `0' before the number, + \CJK@global\chardef\CJK@max "0FE% otherwise german.sty will not work. + + \CJK@loadEncoding{Bg5} + + \CJK@global\def\CJK@spaceChar{\CJKchar{"0A1}{"040}}} + +% Chinese characters (extension of Big 5) +% +% character set: Big 5+ +% encoding: extended +% font encoding: CJK + +\CJK@mapToNFSS{Bg5+}{C09}{song}{m}{n} +\CJKencfamily{Bg5+}{song} +\CJKfontenc{Bg5+}{} +\@namedef{CJK@Bg5+@hook}{} + +\@namedef{CJK@Bg5+@enc}{ + \CJK@makeEnvironment{Bg5+} + + \CJK@loadBinding{standard} + + \CJK@global\chardef\CJK@min "040 + \CJK@global\chardef\CJK@max "0FE + + \CJK@loadEncoding{extended} + + \CJK@global\edef\CJK@punctEnc{Bg5} + + \CJK@global\def\CJK@spaceChar{\CJKchar{"0A1}{"040}}} + + +% Chinese characters +% +% character set: GB 2312-80 +% encoding: EUC +% font encoding: CJK + +\CJK@mapToNFSS{GB}{C10}{song}{m}{n} +\CJKencfamily{GB}{song} +\CJKfontenc{GB}{} +\def\CJK@GB@hook{} + +\def\CJK@GB@enc{ + \CJK@loadBinding{standard} + + \CJK@global\chardef\CJK@min "0A1 + \CJK@global\chardef\CJK@max "0FE + + \CJK@loadEncoding{standard} + + \CJK@global\edef\CJK@punctEnc{GB} + + \CJK@global\def\CJK@spaceChar{\CJKchar{"0A1}{"0A1}}} + +% traditional Chinese characters +% +% character set: GB/T 12345-90 +% encoding: EUC +% font encoding: CJK + +\CJK@mapToNFSS{GBt}{C20}{song}{m}{n} +\CJKencfamily{GBt}{song} +\CJKfontenc{GBt}{} +\def\CJK@GBt@hook{} + +\let\CJK@GBt@enc \CJK@GB@enc + +% Chinese characters (extension of GB 2312) +% +% character set: GBK +% encoding: extended +% font encoding: CJK + +\CJK@mapToNFSS{GBK}{C19}{song}{m}{n} +\CJKencfamily{GBK}{song} +\CJKfontenc{GBK}{} +\def\CJK@GBK@hook{} + +\def\CJK@GBK@enc{ + \CJK@makeEnvironment{GBK} + + \CJK@loadBinding{standard} + + \CJK@global\chardef\CJK@min "040 + \CJK@global\chardef\CJK@max "0FE + + \CJK@loadEncoding{extended} + + \CJK@global\edef\CJK@punctEnc{GB} + + \CJK@global\def\CJK@spaceChar{\CJKchar{"0A1}{"0A1}}} + + +% Japanese characters +% +% character set JIS X 0208:1997 +% encoding: EUC +% font encoding: CJK + +\CJK@mapToNFSS{JIS}{C40}{song}{m}{n} +\CJKencfamily{JIS}{song} +\CJKfontenc{JIS}{} +\def\CJK@JIS@hook{} + +\def\CJK@JIS@enc{ + \CJK@loadBinding{standard} + + \CJK@global\chardef\CJK@min "0A1 + \CJK@global\chardef\CJK@max "0FE + + \CJK@loadEncoding{standard} + + \CJK@global\edef\CJK@punctEnc{JIS} + + \CJK@global\def\CJK@spaceChar{\CJKchar{"0A1}{"0A1}}} + +% Japanese characters +% +% character set: JIS X 0208:1997 +% encoding: EUC +% font encoding: DNP + +\CJK@mapToNFSS{JISdnp}{C42}{song}{m}{n} +\CJKencfamily[dnp]{JIS}{song} + +\def\CJK@JISdnp@enc{ + \CJK@loadBinding{standard} + + \CJK@global\chardef\CJK@min "0A1 + \CJK@global\chardef\CJK@max "0FE + + \CJK@loadEncoding{JISdnp} + + \CJK@global\edef\CJK@punctEnc{JIS} + + \CJK@global\def\CJK@spaceChar{\CJKchar{"0A1}{"0A1}}} + +% Japanese characters +% +% character set: JIS X 0208:1997 +% encoding: EUC +% font encoding: DNP (watanabe) + +\CJK@mapToNFSS{JISwn}{C43}{song}{m}{n} +\CJKencfamily[wn]{JIS}{song} + +\let\CJK@JISwn@enc \CJK@JISdnp@enc + +% Japanese supplemental JIS characters +% +% character set: JIS X 0212-1990 +% encoding: EUC +% font encoding: CJK + +\CJK@mapToNFSS{JIS2}{C50}{song}{m}{n} +\CJKencfamily{JIS2}{song} +\CJKfontenc{JIS2}{} +\@namedef{CJK@JIS2@hook}{} + +\@namedef{CJK@JIS2@enc}{ + \CJK@loadBinding{standard} + + \CJK@global\chardef\CJK@min "0A1 + \CJK@global\chardef\CJK@max "0FE + + \CJK@loadEncoding{standard} + + \CJK@global\edef\CJK@punctEnc{} + + \CJK@global\def\CJK@spaceChar{\CJKchar[JIS]{"0A1}{"0A1}}} + +% Japanese supplemental JIS characters +% +% character set: JIS X 0212-1990 +% encoding: EUC +% font encoding: DNP + +\CJK@mapToNFSS{JIS2dnp}{C52}{song}{m}{n} +\CJKencfamily[dnp]{JIS2}{song} + +\@namedef{CJK@JIS2dnp@enc}{ + \CJK@loadBinding{standard} + + \CJK@global\chardef\CJK@min "0A1 + \CJK@global\chardef\CJK@max "0FE + + \CJK@loadEncoding{JISdnp} + + \CJK@global\edef\CJK@punctEnc{} + + \CJK@global\def\CJK@spaceChar{\CJKchar[JIS]{"0A1}{"0A1}}} + +% Japanese characters +% +% character sets: JIS X 0208:1997 +% half-width katakana (JIS X 0201-1997) +% encoding: SJIS +% font encoding: CJK +% +% Technical note: \CJK@altenc is used for SJIS, \CJK@altEnc for KS. + +\CJK@mapToNFSS{kana}{C49}{song}{m}{n}% used internally only +\CJKencfamily{SJIS}{song} +\CJKfontenc{SJIS}{} +\def\CJK@SJIS@hook{} + +% the relative order of JIS and SJIS encoded characters are identical +% except one byte characters. + +\def\CJK@@@SJIS@hook{ + \CJK@global\edef\CJK@enc{\CJK@JIS@nfssenc} + \CJK@global\edef\CJK@altenc{\CJK@kana@nfssenc}} + +\def\CJK@SJIS@enc{ + \CJK@makeEnvironment{SJIS} + + \CJK@loadBinding{SJIS} + + \CJK@global\chardef\CJK@min "040 + \CJK@global\chardef\CJK@max "0FC + + \CJK@loadEncoding{SJIS} + + \CJK@global\def\CJK@spaceChar{\CJKchar{"081}{"040}}} + +% Japanese characters +% +% character sets: JIS X 0208:1997 +% half-width katakana (JIS X 0201-1997) +% encoding: SJIS +% font encoding: DNP + +\CJKencfamily[dnp]{SJIS}{song} + +% the relative order of JIS and SJIS encoded characters are identical +% except one byte characters. + +\def\CJK@@@SJISdnp@hook{ + \CJK@global\edef\CJK@enc{\CJK@JISdnp@nfssenc} + \CJK@global\edef\CJK@altenc{\CJK@kana@nfssenc}} + +\def\CJK@SJISdnp@enc{ + \CJK@makeEnvironment{SJIS} + + \CJK@loadBinding{SJIS} + + \CJK@global\chardef\CJK@min "040 + \CJK@global\chardef\CJK@max "0FC + + \CJK@loadEncoding{SJISdnp} + + \CJK@global\def\CJK@spaceChar{\CJKchar{"081}{"040}}} + + +% Korean characters +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% encoding: EUC +% font encoding: CJK +% +% the increased \tolerance compensates the lack of \CJKglue for Hangul +% syllables. + +% the following commands choose between C60xxx.fd (for hanja) and C61xxx.fd +% (for hangul) for the character range 0xB0A1 - 0xC8FE. + +\newif\ifCJK@hanja@ +\CJK@hanja@false + +\DeclareRobustCommand{\CJKhanja}{ + \CJK@global\CJK@hanja@true + \edef\CJK@temp{KS} + \ifx\CJK@temp \CJK@@@enc + \edef\CJK@temp{\csname CJK@\CJK@@@enc @fontenc\endcsname} + \CJK@global\edef\CJK@altEnc{ + \csname CJK@hanja\CJK@temp @nfssenc\endcsname} + \fi} +\DeclareRobustCommand{\CJKhangul}{ + \CJK@global\CJK@hanja@false + \edef\CJK@temp{KS} + \ifx\CJK@temp \CJK@@@enc + \edef\CJK@temp{\csname CJK@\CJK@@@enc @fontenc\endcsname} + \CJK@global\edef\CJK@altEnc{ + \csname CJK@hangul\CJK@temp @nfssenc\endcsname} + \fi} + +\CJK@mapToNFSS{hanja}{C60}{mj}{m}{n}% used internally only +\CJK@mapToNFSS{hangul}{C61}{mj}{m}{n}% used internally only +\CJKencfamily{KS}{mj} +\CJKfontenc{KS}{} +\def\CJK@KS@hook{} + +\def\CJK@@@KS@hook{ + \CJK@global\edef\CJK@enc{\CJK@hanja@nfssenc} + \ifCJK@hanja@ + \CJK@global\edef\CJK@altEnc{\CJK@hanja@nfssenc} + \else + \CJK@global\edef\CJK@altEnc{\CJK@hangul@nfssenc} + \fi} + +\def\CJK@KS@enc{ + \CJK@global\def\mj{\protect\CJK@mj}% % from hLaTeX + \gdef\CJK@mj{\CJKencfamily{KS}{mj}} + \CJK@global\def\gt{\protect\CJK@gt} + \gdef\CJK@gt{\CJKencfamily{KS}{gt}} + \CJK@global\def\gs{\protect\CJK@gs} + \gdef\CJK@gs{\CJKencfamily{KS}{gs}} + \CJK@global\def\gr{\protect\CJK@gr} + \gdef\CJK@gr{\CJKencfamily{KS}{gr}} + \CJK@global\def\dr{\protect\CJK@dr} + \gdef\CJK@dr{\CJKencfamily{KS}{dr}} + + \CJK@global\def\hgt{\protect\CJK@hgt}% % from hjTeX + \gdef\CJK@hgt{\CJKencfamily{KS}{hgt}} + \CJK@global\def\hmj{\protect\CJK@hmj} + \gdef\CJK@hmj{\CJKencfamily{KS}{hmj}} + \CJK@global\def\hol{\protect\CJK@hol} + \gdef\CJK@hol{\CJKencfamily{KS}{hol}} + \CJK@global\def\hpg{\protect\CJK@hpg} + \gdef\CJK@hpg{\CJKencfamily{KS}{hpg}} + + \CJK@loadBinding{standard} + + \CJK@global\chardef\CJK@min "0A1 + \CJK@global\chardef\CJK@max "0FE + + \CJK@loadEncoding{KS} + + \CJK@global\edef\CJK@punctEnc{KS} + \CJK@global\tolerance \CJKtolerance + + \CJK@global\def\CJK@spaceChar{\CJKchar{"0A1}{"0A1}}} + + +% Korean characters +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% encoding: EUC +% font encoding: HLaTeX (version >= 0.97) + +\CJK@mapToNFSS{hangulHL}{C63}{mj}{m}{n}% used internally only +\CJK@mapToNFSS{symbolHL}{C64}{mj}{m}{n}% used internally only +\CJK@mapToNFSS{hanjaHL}{C65}{mj}{m}{n}% used internally only +\CJKencfamily[HL]{KS}{mj} + +\def\CJK@@@KSHL@hook{ + \CJK@global\edef\CJK@enc{\CJK@hanjaHL@nfssenc} + \CJK@global\edef\CJK@altEnc{\CJK@hangulHL@nfssenc} + \CJK@global\edef\CJK@symbEnc{\CJK@symbolHL@nfssenc}} + +\def\CJK@KSHL@enc{ + \CJK@global\def\bm{\protect\CJK@bm} + \gdef\CJK@bm{\CJKencfamily[HL]{KS}{bm}} + \CJK@global\def\dn{\protect\CJK@dn} + \gdef\CJK@dn{\CJKencfamily[HL]{KS}{dn}} + \CJK@global\def\gr{\protect\CJK@gr} + \gdef\CJK@gr{\CJKencfamily[HL]{KS}{gr}} + \CJK@global\def\gs{\protect\CJK@gs} + \gdef\CJK@gs{\CJKencfamily[HL]{KS}{gs}} + \CJK@global\def\gt{\protect\CJK@gt} + \gdef\CJK@gt{\CJKencfamily[HL]{KS}{gt}} + \CJK@global\def\jgt{\protect\CJK@jgt} + \gdef\CJK@jgt{\CJKencfamily[HL]{KS}{jgt}} + \CJK@global\def\jmj{\protect\CJK@jmj} + \gdef\CJK@jmj{\CJKencfamily[HL]{KS}{jmj}} + \CJK@global\def\jnv{\protect\CJK@jnv} + \gdef\CJK@jnv{\CJKencfamily[HL]{KS}{jnv}} + \CJK@global\def\jsr{\protect\CJK@jsr} + \gdef\CJK@jsr{\CJKencfamily[HL]{KS}{jsr}} + \CJK@global\def\mj{\protect\CJK@mj} + \gdef\CJK@mj{\CJKencfamily[HL]{KS}{mj}} + \CJK@global\def\ol{\protect\CJK@ol} + \gdef\CJK@ol{\CJKencfamily[HL]{KS}{mj}} + \CJK@global\def\pg{\protect\CJK@pg} + \gdef\CJK@pg{\CJKencfamily[HL]{KS}{pg}} + \CJK@global\def\pga{\protect\CJK@pga} + \gdef\CJK@pga{\CJKencfamily[HL]{KS}{pga}} + \CJK@global\def\ph{\protect\CJK@ph} + \gdef\CJK@ph{\CJKencfamily[HL]{KS}{ph}} + \CJK@global\def\pn{\protect\CJK@pn} + \gdef\CJK@pn{\CJKencfamily[HL]{KS}{pn}} + \CJK@global\def\sh{\protect\CJK@sh} + \gdef\CJK@sh{\CJKencfamily[HL]{KS}{sh}} + \CJK@global\def\sm{\protect\CJK@sm} + \gdef\CJK@sm{\CJKencfamily[HL]{KS}{mj}} + \CJK@global\def\tz{\protect\CJK@tz} + \gdef\CJK@tz{\CJKencfamily[HL]{KS}{tz}} + \CJK@global\def\vd{\protect\CJK@vd} + \gdef\CJK@vd{\CJKencfamily[HL]{KS}{vd}} + \CJK@global\def\yt{\protect\CJK@yt} + \gdef\CJK@yt{\CJKencfamily[HL]{KS}{yt}} + + \CJK@loadBinding{standard} + + \CJK@global\chardef\CJK@min "0A1 + \CJK@global\chardef\CJK@max "0FE + + \CJK@loadEncoding{KSHL} + + \CJK@global\edef\CJK@punctEnc{KS} + \CJK@global\tolerance \CJKtolerance + + \CJK@global\def\CJK@spaceChar{\CJKchar{"0A1}{"0A1}}} + + +% Unicode +% +% character set: Unicode +% encoding: UTF 8 +% font encoding: CJK + +\CJK@mapToNFSS{UTF8}{C70}{song}{m}{n} +\CJKencfamily{UTF8}{song} +\CJKfontenc{UTF8}{} +\@namedef{CJK@UTF8@hook}{} + +\@namedef{CJK@UTF8@enc}{ + \CJK@loadBinding{UTF8} + + \CJK@global\chardef\CJK@min "080 + \CJK@global\chardef\CJK@max "0BF + + \CJK@loadEncoding{UTF8} + + \CJK@global\def\CJK@spaceChar{\Unicode{"030}{"000}}} + + +% Chinese characters in CNS encoding. +% +% character set: CNS 11643-1992 +% encoding: EUC +% font encoding: CJK + +% please note that internally character codes with the 8th bit set are +% used, whereas Wittern's CEF use the seven bit form. + +% plane 1. + +\CJK@mapToNFSS{CNS1}{C31}{song}{m}{n} +\CJKencfamily{CNS1}{song} +\CJKfontenc{CNS1}{} +\@namedef{CJK@CNS1@enc}{} + +\@namedef{CJK@CNS1@enc}{ + \CJK@loadBinding{standard} + + \CJK@global\chardef\CJK@min "0A1 + \CJK@global\chardef\CJK@max "0FE + + \CJK@loadEncoding{standard} + + \CJK@global\edef\CJK@punctEnc{CNS1} + + \CJK@global\def\CJK@spaceChar{\CJKchar[CNS1]{"0A1}{"0A1}}} + +% plane 2-7. + +\CJK@mapToNFSS{CNS2}{C32}{song}{m}{n} +\CJKencfamily{CNS2}{song} +\CJKfontenc{CNS2}{} +\@namedef{CJK@CNS2@hook}{} +\CJK@mapToNFSS{CNS3}{C33}{song}{m}{n} +\CJKencfamily{CNS3}{song} +\CJKfontenc{CNS3}{} +\@namedef{CJK@CNS3@hook}{} +\CJK@mapToNFSS{CNS4}{C34}{song}{m}{n} +\CJKencfamily{CNS4}{song} +\CJKfontenc{CNS4}{} +\@namedef{CJK@CNS4@hook}{} +\CJK@mapToNFSS{CNS5}{C35}{song}{m}{n} +\CJKencfamily{CNS5}{song} +\CJKfontenc{CNS5}{} +\@namedef{CJK@CNS5@hook}{} +\CJK@mapToNFSS{CNS6}{C36}{song}{m}{n} +\CJKencfamily{CNS6}{song} +\CJKfontenc{CNS6}{} +\@namedef{CJK@CNS6@hook}{} +\CJK@mapToNFSS{CNS7}{C37}{song}{m}{n} +\CJKencfamily{CNS7}{song} +\CJKfontenc{CNS7}{} +\@namedef{CJK@CNS7@hook}{} + +\expandafter\expandafter\expandafter\let + \expandafter\csname CJK@CNS2@enc\expandafter\endcsname + \csname CJK@JIS2@enc\endcsname +\expandafter\expandafter\expandafter\let + \expandafter\csname CJK@CNS3@enc\expandafter\endcsname + \csname CJK@CNS2@enc\endcsname +\expandafter\expandafter\expandafter\let + \expandafter\csname CJK@CNS4@enc\expandafter\endcsname + \csname CJK@CNS2@enc\endcsname +\expandafter\expandafter\expandafter\let + \expandafter\csname CJK@CNS5@enc\expandafter\endcsname + \csname CJK@CNS2@enc\endcsname +\expandafter\expandafter\expandafter\let + \expandafter\csname CJK@CNS6@enc\expandafter\endcsname + \csname CJK@CNS2@enc\endcsname +\expandafter\expandafter\expandafter\let + \expandafter\csname CJK@CNS7@enc\expandafter\endcsname + \csname CJK@CNS2@enc\endcsname + + +% special CEF encodings + +\CJK@mapToNFSS{CEFX}{C80}{song}{m}{n} +\CJKencfamily{CEFX}{song} +\CJKfontenc{CEFX}{} +\def\CJK@CEFX@hook{} +\CJK@mapToNFSS{CEFY}{C81}{song}{m}{n} +\CJKencfamily{CEFY}{song} +\CJKfontenc{CEFY}{} +\def\CJK@CEFY@hook{} + +\expandafter\let\expandafter\CJK@CEFX@enc \csname CJK@CNS2@enc\endcsname +\expandafter\let\expandafter\CJK@CEFY@enc \csname CJK@CNS2@enc\endcsname + + +% traditional Chinese characters +% +% character set: Big 5 +% encoding: Big 5 +% font encoding: pmC + +\CJK@mapToNFSS{Bg5pmC}{C01}{song}{m}{n} +\CJKencfamily[pmC]{Bg5}{song} + +\@namedef{CJK@Bg5pmC@enc}{ + \CJK@global\def\pmCsmall{\protect\CJK@pmCsmall} + \gdef\CJK@pmCsmall{ + \CJK@loadEncoding{pmCsmall}} + \CJK@global\def\pmCbig{\protect\CJK@pmCbig} + \gdef\CJK@pmCbig{ + \PackageError{CJK}{ + No big font for pmC Big 5 encoding available}{}} + + \CJK@makeEnvironment{Bg5} + + \CJK@loadBinding{standard} + + \CJK@global\chardef\CJK@min "040 + \CJK@global\chardef\CJK@max "0FE + + \CJK@global\edef\CJK@punctEnc{Bg5} + + \pmCsmall + + \CJK@global\def\CJK@spaceChar{\CJKchar{"0A1}{"040}}} + +% simplified Chinese characters +% +% character set: GB 2312-80 +% encoding: EUC +% font encoding: pmC + +\CJK@mapToNFSS{GBpmC}{C11}{song}{m}{n} +\CJKencfamily[pmC]{GB}{song} + +\def\CJK@GBpmC@enc{ + \CJK@pmC{GB}} + +% traditional Chinese characters +% +% character set: GB/T 12345-90 +% encoding: EUC +% font encoding: pmC + +\CJK@mapToNFSS{GBtpmC}{C21}{song}{m}{n} +\CJKencfamily[pmC]{GBt}{song} + +\let\CJK@GBtpmC@enc \CJK@GBpmC@enc + +% Japanese characters +% +% character set: JIS X 0208:1997 +% encoding: EUC +% font encoding: pmC + +\CJK@mapToNFSS{JISpmC}{C41}{song}{m}{n} +\CJKencfamily[pmC]{JIS}{song} + +\def\CJK@JISpmC@enc{ + \CJK@pmC{JIS}} + +% Korean characters +% +% character set: KS X 1001:1992 (=KS C 5601-1992) +% encoding: EUC +% font encoding: pmC + +\CJK@mapToNFSS{KSpmC}{C62}{song}{m}{n} +\CJKencfamily[pmC]{KS}{song} + +\def\CJK@KSpmC@enc{ + \CJK@pmC{KS}} + +\def\CJK@pmC#1{ + \CJK@global\def\pmCsmall{\protect\CJK@pmCsmall} + \gdef\CJK@pmCsmall{ + \CJK@loadEncoding{pmCsmall}} + \CJK@global\def\pmCbig{\protect\CJK@pmCbig} + \gdef\CJK@pmCbig{ + \CJK@loadEncoding{pmCbig}} + + \CJK@loadBinding{standard} + + \CJK@global\chardef\CJK@min "0A1 + \CJK@global\chardef\CJK@max "0FE + + \CJK@global\edef\CJK@punctEnc{#1} + + \pmCsmall + + \CJK@global\def\CJK@spaceChar{\CJKchar{"0A1}{"0A1}}} + + +% EUC-JP +% +% character sets: half-width katakana (JIS X 0201-1997) +% JIS X 0208:1997 +% JIS X 0212-1992 +% encoding: EUC-JP +% font encoding: CJK +% +% Technical note: JIS X 0212 is directly accessed via +% \CJKchar[JIS2]{...}{...} + +\CJKencfamily{EUC-JP}{song} +\CJKfontenc{EUC-JP}{} +\@namedef{CJK@EUC-JP@hook}{} + +\@namedef{CJK@@@EUC-JP@hook}{ + \CJK@global\edef\CJK@enc{\CJK@JIS@nfssenc} + \CJK@global\edef\CJK@altenc{\CJK@kana@nfssenc}} + +\@namedef{CJK@EUC-JP@enc}{ + \CJK@loadBinding{EUC-JP} + + \CJK@global\chardef\CJK@min "0A1 + \CJK@global\chardef\CJK@max "0FE + + \CJK@loadEncoding{EUC-JP} + + \CJK@global\edef\CJK@punctEnc{JIS} + + \CJK@global\def\CJK@spaceChar{\CJKchar{"0A1}{"0A1}}} + + +% EUC-TW +% +% character sets: CNS 11643-1992 planes 1-7 +% encoding: EUC-TW +% font encoding: CJK +% +% Technical note: CNS 11643-1992 planes 2-7 are directly accessed via +% \CJKchar[CNSx]{...}{...} + +\CJKencfamily{EUC-TW}{song} +\CJKfontenc{EUC-TW}{} +\@namedef{CJK@EUC-TW@hook}{} + +\@namedef{CJK@@@EUC-TW@hook}{ + \CJK@global\edef\CJK@enc{\csname CJK@CNS1@nfssenc\endcsname}} + +\@namedef{CJK@EUC-TW@enc}{ + \CJK@loadBinding{EUC-TW} + + \CJK@global\chardef\CJK@min "0A1 + \CJK@global\chardef\CJK@max "0FE + + \CJK@loadEncoding{EUC-TW} + + \CJK@global\edef\CJK@punctEnc{CNS1} + + \CJK@global\def\CJK@spaceChar{\CJKchar{"0A1}{"0A1}}} + +\endinput |