% This is the file CJK.enc of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by Werner Lemberg % % Version 4.8.5 (16-Oct-2021) % Copyright (C) 1994-2021 Werner Lemberg % % This program is free software; you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation; either version 2 of the License, or % (at your option) any later version. % % This program is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with this program in doc/COPYING; if not, write to the Free % Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, % MA 02110-1301 USA \def\fileversion{4.8.5} \def\filedate{2021/10/16} \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), three-byte, and four-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?}} \def\CJK@unicodexError{ \PackageError{CJK}{ Four-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 % % HK C05 % % 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} \CJK@prePunct {GBK}{A1}{AE, B0, B2, B4, B6, B8, BA, BC, BE, E7, E8, E9, EA, EC, ED} \CJK@postPunct {GBK}{A1}{A2, A3, A4, A9, AD, AF, B1, B3, B5, B7, B9, BB, BD, BF, C3, E3, E4, E5, E6, EB} \CJK@prePunct {GBK}{A3}{A3, A4, A8, C0, DB, FB} \CJK@postPunct {GBK}{A3}{A1, A5, A9, AC, AE, BA, BB, BF, DD, FD} % \CJK@prePunct {GBK}{A4}{} \CJK@postPunct {GBK}{A4}{A1, A3, A5, A7, A9, C3, E3, E5, E7, EE} % \CJK@prePunct {GBK}{A5}{} \CJK@postPunct {GBK}{A5}{A1, A3, A5, A7, A9, C3, E3, E5, E7, EE, F5, F6} \CJK@prePunct {GBK}{A8}{93, 94} \CJK@postPunct {GBK}{A8}{95} \CJK@prePunct {GBK}{A9}{76, 78, 7A, 7C, 7D, 86, 88} \CJK@postPunct {GBK}{A9}{60, 61, 62, 63, 64, 65, 66, 67, 6F, 70, 71, 72, 73, 74, 75, 77, 79, 7B, 87} \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}}} % support for Hong Kong % % character set: Big 5 + HKSCS-2004 (or HKSCS-2001) % encoding: Big 5 % font encoding: CJK \CJK@mapToNFSS{HK}{C05}{song}{m}{n} \CJKencfamily{HK}{song} \CJKfontenc{HK}{} \@namedef{CJK@HK@hook}{} \def\CJK@HK@enc{ \CJK@makeEnvironment{HK} \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{HK} \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{GBK} \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-JP % % character sets: half-width katakana (JIS X 0201-1997) % JIS X 0208:1997 % JIS X 0212-1992 % encoding: EUC-JP % font encoding: dnp % % Technical note: JIS X 0212 is directly accessed via % \CJKchar[JIS2dnp]{...}{...} \CJKencfamily[dnp]{EUC-JP}{song} \@namedef{CJK@@@EUC-JPdnp@hook}{ \CJK@global\edef\CJK@enc{\CJK@JISdnp@nfssenc} \CJK@global\edef\CJK@altenc{\CJK@kana@nfssenc}} \@namedef{CJK@EUC-JPdnp@enc}{ \CJK@loadBinding{EUC-JP} \CJK@global\chardef\CJK@min "0A1 \CJK@global\chardef\CJK@max "0FE \CJK@loadEncoding{EUC-JPdnp} \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