% This is the file xUTF8.chr of the CJK package % for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e % % created by SUN Wenchang % % Version 4.8.0 (22-May-2008) % Copyright (C) 1994-2008 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.0} \def\filedate{2008/05/22} \ProvidesFile{xUTF8.chr}[\filedate\space\fileversion] % define macros for handling CJK fonts and characters in UTF 8 encoding % as needed for XeTeX support. % two bytes per character; covers range 0x80 - 0x7FF. \CJK@global\@namedef{CJK@xUTF8Chr}{ \CJK@global\def\CJK@char##1##2{ {\ifnum ##2 < \CJK@min \CJK@err \else \ifnum ##2 > \CJK@max \CJK@err \else \@tempcnta ##1\relax \advance\@tempcnta ##2\relax \advance\@tempcnta -128\relax \xCJK@setfont \CJKsymbol{\@tempcnta} \fi \fi}} % three bytes per character; covers range 0x800 - 0xFFFF. \CJK@global\def\CJK@altchar##1##2##3{ {\ifnum ##2 < \CJK@min \CJK@err \else \ifnum ##2 > \CJK@max \CJK@err \else \ifnum ##3 < \CJK@min \CJK@errx \else \ifnum ##3 > \CJK@max \CJK@errx \else \ifCJK@CJK@ \CJK@testLastCJK \ifCJK@ \CJKglue \fi \CJK@testLastKern \ifCJK@ \CJK@nobreakglue \fi \fi \@tempcnta ##1\relax \@tempcntb ##2\relax \advance\@tempcntb -128\relax \multiply\@tempcntb 64\relax \advance\@tempcntb ##3\relax \advance\@tempcntb -128\relax \advance\@tempcnta \@tempcntb \xCJK@setfont \CJKsymbol{\@tempcnta} \ifCJK@hangul@ \discretionary{}{}{} \fi \ifCJK@CJK@ \CJK@CJK \fi \fi \fi \fi \fi}} % four bytes per character; covers range 0x10000 - 0x10FFFF. \CJK@global\def\CJK@altxchar##1##2##3##4{ {\ifnum ##2 < \CJK@min \CJK@err \else \ifnum ##2 > \CJK@max \CJK@err \else \ifnum ##3 < \CJK@min \CJK@errx \else \ifnum ##3 > \CJK@max \CJK@errx \else \ifnum ##3 < \CJK@min \CJK@errxx \else \ifnum ##3 > \CJK@max \CJK@errxx \else \ifCJK@CJK@ \CJK@testLastCJK \ifCJK@ \CJKglue \fi \CJK@testLastKern \ifCJK@ \CJK@nobreakglue \fi \fi \@tempcnta ##1\relax \@tempcntb ##2\relax \advance\@tempcntb -128\relax \multiply\@tempcntb 64\relax \advance\@tempcntb ##3\relax \advance\@tempcntb -128\relax \multiply\@tempcntb 64\relax \advance\@tempcntb ##4\relax \advance\@tempcntb -128\relax \advance\@tempcnta \@tempcntb \xCJK@setfont \CJKsymbol{\@tempcnta} \ifCJK@hangul@ \discretionary{}{}{} \fi \ifCJK@CJK@ \CJK@CJK \fi \fi \fi \fi \fi \fi \fi}} % define macro for handling punctuation characters. \CJK@global\def\CJK@punctchar##1##2##3##4{ {\ifnum ##3 < \CJK@min \CJK@err \else \ifnum ##3 > \CJK@max \CJK@err \else \ifnum ##4 < \CJK@min \CJK@errx \else \ifnum ##4 > \CJK@max \CJK@errx \else \@tempcnta ##2\relax \@tempcntb ##3\relax \advance\@tempcntb -128\relax \multiply\@tempcntb 64\relax \advance\@tempcntb ##4\relax \advance\@tempcntb -128\relax \advance\@tempcnta \@tempcntb \xCJK@setfont % we need three braces to make it work with CJKulem.sty {{{\ifCJK@CJK@ \xCJK@testPunct{\CJK@@@enc}{}{\the\@tempcnta} \ifCJK@ \xCJK@testPunct{\CJK@@@enc}{Post}{\the\@tempcnta} \ifCJK@ \CJK@nobreakglue \else \CJKglue \fi \CJK@testLastKern \ifCJK@ \CJK@nobreakglue \fi \CJKpunctsymbol{\@tempcnta} \xCJK@testPunct{\CJK@@@enc}{Pre}{\the\@tempcnta} \ifCJK@ \CJK@kern \else \CJK@CJK \fi \else \CJK@testLastCJK \ifCJK@ \CJKglue \fi \CJK@testLastKern \ifCJK@ \CJK@nobreakglue \fi \CJKsymbol{\@tempcnta} \CJK@CJK \fi \else \CJKsymbol{\@tempcnta} \fi \ifCJK@hangul@ \discretionary{}{}{} \fi }}} \fi \fi \fi \fi}}} \endinput