summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/CJK/CJK.enc
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-12 23:49:33 +0000
committerKarl Berry <karl@freefriends.org>2006-01-12 23:49:33 +0000
commit9c13b7d529c1df9b36a4a1cfae5893423f71f9f0 (patch)
treefb0eab8645d8ce722f854856b6281582007930d7 /Master/texmf-dist/tex/latex/CJK/CJK.enc
parent537a62abf2208730c27ee774a90f39a41a8cce70 (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.enc999
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