diff options
Diffstat (limited to 'Master/texmf-dist/doc/plain/impatient-cn/xeCJK-base.tex')
-rw-r--r-- | Master/texmf-dist/doc/plain/impatient-cn/xeCJK-base.tex | 645 |
1 files changed, 645 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/plain/impatient-cn/xeCJK-base.tex b/Master/texmf-dist/doc/plain/impatient-cn/xeCJK-base.tex new file mode 100644 index 00000000000..8ca04827d1a --- /dev/null +++ b/Master/texmf-dist/doc/plain/impatient-cn/xeCJK-base.tex @@ -0,0 +1,645 @@ +\input miniltx +\def\settowidth#1#2{% + \setbox\@tempboxa\hbox{{#2}}#1\wd\@tempboxa + \setbox\@tempboxa\box\voidb@x} + +\endlinechar \m@ne + +\newif\ifxeCJK@checksingle +\newif\ifxeCJK@space@ + +\def\xeCJK@patch#1#2#3{ + \edef#1{\unexpanded{#2}\unexpanded\expandafter{#1}\unexpanded{#3}}} +\def\makexeCJKactive{\XeTeXinterchartokenstate=1\relax} +\def\makexeCJKinactive{\XeTeXinterchartokenstate=0\relax} +\makexeCJKactive +\def\xeCJKsetcharclass#1#2#3{ + \@tempcnta=#1 + \loop + \XeTeXcharclass \@tempcnta #3\relax + \advance\@tempcnta 1\relax + \unless\ifnum\the\@tempcnta>#2 \repeat + \xeCJK@setpunctcharclass} +\def\xeCJK@prePunct#1#2{\xeCJK@setPunct{2}{#1}{#2}} +\def\xeCJK@postPunct#1#2{\xeCJK@setPunct{3}{#1}{#2}} +\def\xeCJK@setPunct#1#2#3{ + \def\xeCJK@class{#1} + \@tempcnta "#2\relax + \multiply\@tempcnta 256\relax + \xeCJK@setPunct@#3,,} +\def\xeCJK@setPunct@#1,{ + \edef\xeCJK@temp{#1}% + \unless\ifx\xeCJK@temp\@empty + \@tempcntb "#1\relax + \advance\@tempcntb\@tempcnta\relax + \XeTeXcharclass \@tempcntb=\xeCJK@class\relax + \def\xeCJK@temp{\xeCJK@setPunct@} + \fi + \xeCJK@temp} +\def\xeCJK@setpunctcharclass{ + \xeCJK@prePunct{20}{18,1C} + \xeCJK@postPunct{20}{19,1D,14,26} + \xeCJK@postPunct{25}{00} + \xeCJK@prePunct{30}{08,0A,0C,0E,10,12,14,16,18,1A,1D,1F,36} + \xeCJK@postPunct{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} + \xeCJK@prePunct {FE}{59,5B,5D,5F,60,69,6B} + \xeCJK@postPunct{FE}{50,51,52,54,55,56,57,5A,5C,5E,6A} + \xeCJK@prePunct {FF}{03,04,08,20,3B,5B,E0,E1,E5,E6} + \xeCJK@postPunct{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} + \xeCJK@setPunct{1}{0}{B7} + \xeCJK@setPunct{4}{0}{28,2D,5B,60,7B} + \xeCJK@setPunct{5}{0}{21,22,25,27,29,2C,2E,3A,3B,3F,5D,7D}} +\xeCJKsetcharclass{"1100}{"11FF}{1} +\xeCJKsetcharclass{"2E80}{"2EFF}{1} +\xeCJKsetcharclass{"2F00}{"2FDF}{1} +\xeCJKsetcharclass{"2FF0}{"2FFF}{1} +\xeCJKsetcharclass{"3000}{"303F}{1} +\xeCJKsetcharclass{"3040}{"309F}{1} +\xeCJKsetcharclass{"30A0}{"30FF}{1} +\xeCJKsetcharclass{"3100}{"312F}{1} +\xeCJKsetcharclass{"3130}{"318F}{1} +\xeCJKsetcharclass{"3190}{"319F}{1} +\xeCJKsetcharclass{"31A0}{"31BF}{1} +\xeCJKsetcharclass{"31C0}{"31EF}{1} +\xeCJKsetcharclass{"31F0}{"31FF}{1} +\xeCJKsetcharclass{"3200}{"32FF}{1} +\xeCJKsetcharclass{"3300}{"33FF}{1} +\xeCJKsetcharclass{"3400}{"4DBF}{1} +\xeCJKsetcharclass{"4E00}{"9FFF}{1} +\xeCJKsetcharclass{"A000}{"A4CF}{1} +\xeCJKsetcharclass{"AC00}{"D7AF}{1} +\xeCJKsetcharclass{"F900}{"FAFF}{1} +\xeCJKsetcharclass{"FE30}{"FE4F}{1} +\xeCJKsetcharclass{"FF00}{"FFEF}{1} +\xeCJKsetcharclass{"20000}{"2A6DF}{1} +\xeCJKsetcharclass{"2A700}{"2B73F}{1} +\xeCJKsetcharclass{"2B740}{"2B81F}{1} +\xeCJKsetcharclass{"2F800}{"2FA1F}{1} +\def\CJK@stop{\CJK@stop} +\def\normalspacedchars#1{ + \xeCJK@setnormalspacedchar#1\CJK@stop} +\def\xeCJK@setnormalspacedchar#1{ + \unless\ifx#1\CJK@stop + \XeTeXcharclass`#1=6 + \expandafter\xeCJK@setnormalspacedchar + \fi} +\normalspacedchars{/} +\XeTeXinterchartoks 1 0{\egroup\CJKecglue} +\XeTeXinterchartoks 1 1{\xeCJK@i@i} +\XeTeXinterchartoks 1 2{\xeCJK@i@ii} +\XeTeXinterchartoks 1 3{\xeCJK@i@iii} +\XeTeXinterchartoks 1 4{\egroup\CJKecglue} +\XeTeXinterchartoks 1 5{\egroup} +\XeTeXinterchartoks 1 255{\xeCJK@i@cclv} +\XeTeXinterchartoks 2 0{\xeCJK@ii@} +\XeTeXinterchartoks 2 1{\xeCJK@ii@i} +\XeTeXinterchartoks 2 2{\xeCJK@ii@ii} +\XeTeXinterchartoks 2 3{\xeCJK@ii@iii} +\XeTeXinterchartoks 2 4{\xeCJK@ii@iv} +\XeTeXinterchartoks 2 5{\xeCJK@ii@v} +\XeTeXinterchartoks 2 255{\xeCJK@ii@cclv} +\XeTeXinterchartoks 3 0{\xeCJK@iii@} +\XeTeXinterchartoks 3 1{\xeCJK@iii@i} +\XeTeXinterchartoks 3 2{\xeCJK@iii@ii} +\XeTeXinterchartoks 3 3{\xeCJK@iii@iii} +\XeTeXinterchartoks 3 4{\xeCJK@iii@iv} +\XeTeXinterchartoks 3 5{\xeCJK@iii@v} +\XeTeXinterchartoks 3 255{\xeCJK@iii@cclv} +\XeTeXinterchartoks 0 1{\xeCJK@@i} +\XeTeXinterchartoks 0 2{\xeCJK@@ii} +\XeTeXinterchartoks 0 3{\xeCJK@@iii} +\XeTeXinterchartoks 0 255{\xeCJK@@cclv} +\XeTeXinterchartoks 4 1{\xeCJK@iv@i} +\XeTeXinterchartoks 4 2{\xeCJK@iv@ii} +\XeTeXinterchartoks 4 3{\xeCJK@iv@iii} +\XeTeXinterchartoks 5 1{\xeCJK@v@i} +\XeTeXinterchartoks 5 2{\xeCJK@v@ii} +\XeTeXinterchartoks 5 3{\xeCJK@v@iii} +\XeTeXinterchartoks 5 255{\xeCJK@v@cclv} +\XeTeXinterchartoks 255 0{\xeCJK@cclv@} +\XeTeXinterchartoks 255 1{\xeCJK@cclv@i} +\XeTeXinterchartoks 255 2{\xeCJK@cclv@ii} +\XeTeXinterchartoks 255 3{\xeCJK@cclv@iii} +\XeTeXinterchartoks 255 4{\xeCJK@cclv@iv} +\XeTeXinterchartoks 255 6{\xeCJK@cclv@vi} +\XeTeXinterchartoks 1 6{\xeCJK@i@vi} +\XeTeXinterchartoks 2 6{\xeCJK@ii@vi} +\XeTeXinterchartoks 3 6{\xeCJK@iii@vi} +\XeTeXinterchartoks 6 1{\xeCJK@vi@i} +\XeTeXinterchartoks 6 2{\xeCJK@vi@ii} +\XeTeXinterchartoks 6 3{\xeCJK@vi@iii} +\XeTeXinterchartoks 6 255{\xeCJK@vi@cclv} +\def\xeCJK@vi@i{ + \bgroup + \xeCJK@emptyCJKtoks + \xeCJK@setfont + \CJKsymbol} +\def\xeCJK@i@vi{ + \egroup} +\let\xeCJK@ii@vi \xeCJK@i@vi +\let\xeCJK@iii@vi\xeCJK@i@vi +\let\xeCJK@vi@ii \xeCJK@vi@i +\let\xeCJK@vi@iii\xeCJK@vi@i +\def\xeCJK@i@i{ + \CJKglue + \CJKsymbol} +\let\xeCJK@i@i@save\xeCJK@i@i +\def\xeCJK@i@ii#1{ + \xeCJK@punctrule{#1}{l} + \hskip \csname xeCJK\xeCJK@punctstyle\xeCJK@bboxname @lglue@#1\endcsname + plus 0.1em minus 0.1 em + \xeCJK@setprepunct{#1}} +\def\xeCJK@i@iii#1{ + \xeCJK@punctrule{#1}{r} + \ifcsname xeCJK@specialpunct#1\endcsname + \CJKglue % breakable + \else + \nobreak + \fi + \xdef\xeCJK@lastpunct{#1} + \CJKpunctsymbol{#1}} +\def\xeCJK@setprepunct#1{ + \edef\xeCJK@lastpunct{#1} + \vrule width \csname xeCJK\xeCJK@punctstyle\xeCJK@bboxname + @lrule@#1\endcsname depth \z@ height \z@ + \CJKpunctsymbol{#1}} +\def\xeCJK@i@cclv{ + \egroup + {\xeCJK@CJKkern} + \xeCJK@ignorespaces} +\def\xeCJK@ii@i{ + \nobreak + \CJKsymbol} +\def\xeCJK@ii@ii#1{ + \nobreak + \xeCJK@punctrule{#1}{l} + \xeCJK@setkern{\xeCJK@lastpunct}{#1} + \kern \csname xeCJK\xeCJK@punctstyle\xeCJK@bboxname @kern\xeCJK@lastpunct#1\endcsname + \xeCJK@setprepunct{#1}} +\def\xeCJK@ii@iii#1{ + \nobreak + \xeCJK@punctrule{#1}{r} + \xeCJK@setkern{\xeCJK@lastpunct}{#1} + \kern \csname xeCJK\xeCJK@punctstyle\xeCJK@bboxname @kern\xeCJK@lastpunct#1\endcsname + \nobreak + \edef\xeCJK@lastpunct{#1} + \CJKpunctsymbol{#1}} +\def\xeCJK@ii@{ + \nobreak + \egroup} +\let\xeCJK@ii@iv\xeCJK@ii@ +\let\xeCJK@ii@v\xeCJK@ii@ +\def\xeCJK@ii@cclv{ + \nobreak + \egroup + \ignorespaces} +\def\xeCJK@iii@{ + \xeCJK@afterpostpunct + \egroup} +\def\xeCJK@iii@i{ + \xeCJK@afterpostpunct + \CJKsymbol} +\def\xeCJK@iii@ii#1{ + \vrule width \csname xeCJK\xeCJK@punctstyle\xeCJK@bboxname + @rrule@\xeCJK@lastpunct\endcsname depth \z@ height \z@ + \xeCJK@punctrule{#1}{l} + \xeCJK@setkern{\xeCJK@lastpunct}{#1} + \kern \csname xeCJK\xeCJK@punctstyle\xeCJK@bboxname @kern\xeCJK@lastpunct#1\endcsname + \xeCJKpunctnobreak + \xeCJK@setprepunct{#1}} +\def\xeCJK@iii@iii#1{ + \vrule width \csname xeCJK\xeCJK@punctstyle\xeCJK@bboxname + @rrule@\xeCJK@lastpunct\endcsname depth \z@ height \z@ + \xeCJK@punctrule{#1}{r} + \xeCJK@setkern{\xeCJK@lastpunct}{#1} + \kern \csname xeCJK\xeCJK@punctstyle\xeCJK@bboxname @kern\xeCJK@lastpunct#1\endcsname + \nobreak + \edef\xeCJK@lastpunct{#1} + \CJKpunctsymbol{#1}} +\def\xeCJK@iii@iv{ + \xeCJK@afterpostpunct + \egroup} +\def\xeCJK@afterpostpunct{ + \vrule width \csname xeCJK\xeCJK@punctstyle\xeCJK@bboxname + @rrule@\xeCJK@lastpunct\endcsname depth \z@ height \z@ + \hskip \csname xeCJK\xeCJK@punctstyle\xeCJK@bboxname @rglue@\xeCJK@lastpunct\endcsname + plus 0.1em minus 0.1 em} +\let\xeCJK@iii@v\xeCJK@iii@iv +\def\xeCJK@iii@cclv{ + \xeCJK@afterpostpunct + \egroup + \ignorespaces} +\def\xeCJK@@i{ + \CJKecglue + \bgroup + \xeCJK@setfont + \xeCJK@emptyCJKtoks + \CJKsymbol} +\def\xeCJK@@ii{ + \bgroup + \xeCJK@setfont + \XeTeXinterchartoks 0 2{\relax} + \xeCJK@emptyCJKtoks + \xeCJK@i@ii} +\def\xeCJK@@iii{ + \bgroup + \xeCJK@setfont + \XeTeXinterchartoks 0 3{\relax} + \xeCJK@emptyCJKtoks + \xeCJK@i@iii} +\def\xeCJK@iv@i{ + \bgroup + \xeCJK@setfont + \XeTeXinterchartoks 4 1{\relax} + \xeCJK@emptyCJKtoks + \CJKsymbol} +\def\xeCJK@iv@ii{ + \bgroup + \xeCJK@setfont + \XeTeXinterchartoks 4 2{\relax} + \xeCJK@emptyCJKtoks + \xeCJK@i@ii} +\def\xeCJK@iv@iii{ + \bgroup + \xeCJK@setfont + \XeTeXinterchartoks 4 3{\relax} + \xeCJK@emptyCJKtoks + \xeCJK@i@iii} +\def\xeCJK@v@i{ + \CJKecglue + \bgroup + \xeCJK@setfont + \xeCJK@emptyCJKtoks + \CJKsymbol} +\def\xeCJK@v@ii{ + \bgroup + \xeCJK@setfont + \XeTeXinterchartoks 5 2{\relax} + \xeCJK@emptyCJKtoks + \xeCJK@i@ii} +\def\xeCJK@v@iii{ + \bgroup + \xeCJK@setfont + \XeTeXinterchartoks 5 3{\relax} + \xeCJK@emptyCJKtoks + \xeCJK@i@iii} +\def\xeCJK@emptyCJKtoks{ + \XeTeXinterchartoks 255 1{\relax} + \XeTeXinterchartoks 255 2{\relax} + \XeTeXinterchartoks 255 3{\relax}} +\def\xeCJK@@cclv{ + \futurelet\xeCJK@nexttoken\xeCJK@zz@cclv} +\def\xeCJK@zz@cclv{ + \ifx\xeCJK@nexttoken\@sptoken + {\xeCJK@spkern} + \else + {\xeCJK@zerokern} + \fi} +\let\xeCJK@v@cclv\xeCJK@@cclv +\let\xeCJK@vi@cclv\xeCJK@@cclv +\def\xeCJK@cclv@{ + \ifnum\lastkern=\@ne + \CJKecglue + \fi} +\let\xeCJK@cclv@iv\xeCJK@cclv@ +\let\xeCJK@cclv@vi\xeCJK@cclv@ +\def\xeCJK@cclv@i{{ + \ifnum\lastkern=\@ne + \CJKglue + \else + \ifnum\lastkern=\xeCJK@four + \CJKecglue + \else + \ifnum\lastnodetype=\xeCJK@ten + \CJKecglue + \else + \ifnum\lastnodetype=\xeCJK@eleven + \settowidth\@tempdima\@sptoken + \ifdim\lastskip=\@tempdima + \@tempskipa=\lastskip + \unskip + \ifnum\lastkern=\tw@ + \CJKecglue + \else + \ifnum\lastnodetype=\xeCJK@ten + \CJKecglue + \else + \ifnum\lastkern=\xeCJK@four + \CJKecglue + \else + \hskip\@tempskipa + \fi\fi\fi\fi\fi\fi\fi\fi} + \bgroup + \xeCJK@emptyCJKtoks + \xeCJK@setfont + \CJKsymbol} +\def\xeCJK@cclv@ii{ + \bgroup + \xeCJK@emptyCJKtoks + \xeCJK@setfont + \xeCJK@i@ii} +\def\xeCJK@cclv@iii{ + \bgroup + \xeCJK@emptyCJKtoks + \xeCJK@setfont + \xeCJK@i@iii} +\def\CJKglue{\hskip \z@ \@plus .08\baselineskip} +\def\CJK@nobreakglue{\nobreak\CJKglue\nobreak} +\edef\xeCJK@CJKkern{\kern -1sp\kern 1sp} +\edef\xeCJK@spkern{\kern -2sp\kern 2sp} +\edef\xeCJK@zerokern{\kern -4sp\kern 4sp} +\chardef\xeCJK@four=4 +\chardef\xeCJK@ten=10 +\chardef\xeCJK@eleven=11 +\def\CJKspace{\let\xeCJK@ignorespaces\@empty} +\def\CJKnospace{\def\xeCJK@ignorespaces{\xeCJK@@ignorespaces}} +\ifxeCJK@space@ + \CJKspace +\else + \CJKnospace +\fi +\def\xeCJK@@ignorespaces{ + \futurelet\xeCJK@nexttoken\xeCJK@checknext} +\def\xeCJK@checknext{ + \ifx\xeCJK@nexttoken\@sptoken + \expandafter\xeCJK@@checknext + \else + \ifx $\xeCJK@nexttoken + \CJKecglue + \fi + \fi} +{ + \def\:{\xeCJK@@checknext} + \global\expandafter\def\: {\futurelet\@let@token\xeCJK@@@checknext} +} +\def\xeCJK@@@checknext{ + \ifx $\@let@token + \CJKecglue + \else + \if\relax\noexpand\@let@token + \unless\ifx\@let@token\xeCJK@par + \CJKecglue + \fi + \fi + \fi + \let\xeCJK@nexttoken\relax} +\def\xeCJKenablechecksingle{\def\xeCJK@i@i{\xeCJK@checksingle}} +\def\xeCJKdisablechecksingle{\let\xeCJK@i@i\xeCJK@i@i@save} +\ifxeCJK@checksingle + \AtEndOfPackage{\xeCJKenablechecksingle} +\fi +\def\xeCJK@checksingle#1{ + \def\xeCJK@setcurrentchar@i{ + \CJKglue + \CJKsymbol{#1}} + \def\xeCJK@setcurrentnobreakchar@i{ + \CJKsymbol{#1}} + \futurelet\@let@token\xeCJK@@checksingle} +\def\xeCJK@@checksingle{ + \ifcat 。\noexpand\@let@token + \expandafter\xeCJK@@@checksingle + \else + \expandafter\xeCJK@setcurrentchar@i + \fi} +\def\xeCJK@@@checksingle#1{ + \def\xeCJK@setcurrentchar@ii{ + \xeCJK@setcurrentchar@i #1} + \def\xeCJK@setcurrentchar@ii@s{ + \xeCJK@setcurrentchar@i #1 } + \def\xeCJK@setcurrentnobreakchar@ii{ + \xeCJK@setcurrentnobreakchar@i #1} + \futurelet\@let@token\xeCJK@@@@checksingle} +\def\xeCJK@@@@checksingle{ + \ifx\@let@token\@sptoken + \expandafter\xeCJK@checkpar + \else + \expandafter\xeCJK@setcurrentchar@ii + \fi} +\let\xeCJK@par\par +\def\xeCJK@checkpar{ + \@ifnextchar\xeCJK@par{\xeCJK@setcurrentnobreakchar@ii}{\xeCJK@setcurrentchar@ii@s}} +\def\xeCJKsetecglue#1{ + \def\CJK@ecglue{#1} + \let\CJKecglue\CJK@ecglue} +\let\CJKsetecglue\xeCJKsetecglue +\CJKsetecglue{ } +\def\xeCJKallowbreakbetweenpuncts{ + \def\xeCJKpunctnobreak{ + \hskip \z@\relax}} +\def\xeCJKnobreakbetweenpuncts{ + \let\xeCJKpunctnobreak\nobreak} +\xeCJKnobreakbetweenpuncts +\let\xeCJK@itcorr\/ +\def\/{% + \relax + \ifnum\lastkern=4 % + \unkern\unkern + \fi + \xeCJK@itcorr} +\let\@@italiccorr=\/ +\newcount\xeCJK@cnta +\newcount\xeCJK@cntb +\newcount\xeCJK@cntc +\newcount\xeCJK@cntd +\newcount\xeCJK@cnte +\newdimen\xeCJK@dima +\newif\ifxeCJK@dokerning +\def\xeCJK@punctrule#1#2{ + \xdef\xeCJK@bboxname{\xeCJK@fontname} + \unless\ifcsname xeCJK\xeCJK@punctstyle\xeCJK@bboxname @#2rule@#1\endcsname + \unless\ifcsname xeCJK@\xeCJK@bboxname @lspace@#1\endcsname + {\xeCJK@setfont\xeCJK@setpunctbounds{#1}} + \fi + \xeCJK@dokerningtrue + \ifnum\xeCJK@punctstyle=\xeCJK@ps@plain\relax + \xeCJK@dokerningfalse + \else + \ifcsname xeCJK@specialpunct#1\endcsname + \xeCJK@dokerningfalse + \fi + \fi + \ifxeCJK@dokerning + \xeCJK@cnta=\csname xeCJK@\xeCJK@bboxname @#2space@#1\endcsname\relax + \xeCJK@cntc=\xeCJK@cnta + \ifcase\xeCJK@punctstyle + % hangmobanjiao + \or % quanjiao + \or % banjiao + \advance\xeCJK@cntc -50\relax + \or % kaiming + \ifcsname xeCJK@kaiming#1\endcsname + \advance\xeCJK@cntc -20\relax + \else + \advance\xeCJK@cntc -50\relax + \fi + \or % CCT + \ifcsname xeCJK@kaiming#1\endcsname + \advance\xeCJK@cntc -20\relax + \else + \advance\xeCJK@cntc -30\relax + \fi + \fi + \xeCJK@cntd=\xeCJK@cntc + \ifnum\xeCJK@cntc<0\relax + \xeCJK@cntc=0\relax + \fi + \else + \xeCJK@cnta=0\relax + \xeCJK@cntc=0\relax + \xeCJK@cntd=0\relax + \fi + \xeCJK@numtodim{\xeCJK@cnta} + \expandafter\xdef\csname + xeCJK\xeCJK@punctstyle\xeCJK@bboxname @#2rule@#1\endcsname{ + -\xeCJK@temp em} + \xeCJK@numtodim{\xeCJK@cntc} + \expandafter\xdef\csname + xeCJK\xeCJK@punctstyle\xeCJK@bboxname @#2glue@#1\endcsname{ + \xeCJK@temp em} + \expandafter\xdef\csname + xeCJK\xeCJK@punctstyle\xeCJK@bboxname @#2oglue@#1\endcsname{ + \the\xeCJK@cntd} + \fi} +\def\xeCJK@numtodim#1{ + \xeCJK@cnte=#1\relax + \ifnum\the\xeCJK@cnte<100\relax + \def\xeCJK@temp{0} + \else + \advance\xeCJK@cnte -100\relax + \def\xeCJK@temp{1} + \fi + \ifnum\the\xeCJK@cnte<10 + \edef\xeCJK@temp{\xeCJK@temp.0\the\xeCJK@cnte} + \else + \edef\xeCJK@temp{\xeCJK@temp.\the\xeCJK@cnte} + \fi} +\expandafter\def\csname xeCJK@kaiming.\endcsname{} +\expandafter\def\csname xeCJK@kaiming。\endcsname{} +\expandafter\def\csname xeCJK@kaiming?\endcsname{} +\expandafter\def\csname xeCJK@kaiming!\endcsname{} +\expandafter\def\csname xeCJK@specialpunct—\endcsname{}% U+2014 +\expandafter\def\csname xeCJK@specialpunct─\endcsname{}% U+2500 +\expandafter\def\csname xeCJK@specialpunct…\endcsname{} +\def\xeCJK@setkern#1#2{ + \unless\ifcsname xeCJK\xeCJK@punctstyle\xeCJK@bboxname @kern#1#2\endcsname + \xeCJK@cnta=0\relax + \ifcsname xeCJK\xeCJK@punctstyle\xeCJK@bboxname @roglue@#1\endcsname + \advance\xeCJK@cnta\csname + xeCJK\xeCJK@punctstyle\xeCJK@bboxname @roglue@#1\endcsname + \fi + \ifcsname xeCJK\xeCJK@punctstyle\xeCJK@bboxname @loglue@#2\endcsname + \advance\xeCJK@cnta\csname xeCJK\xeCJK@punctstyle\xeCJK@bboxname + @loglue@#2\endcsname + \fi + \relax + \ifcase\xeCJK@punctstyle + % hangmobanjiao + \or % quanjiao + \advance\xeCJK@cnta -50\relax + \or % banjiao + \advance\xeCJK@cnta -50\relax + \or % kaiming + \advance\xeCJK@cnta -50\relax + \or % CCT + \advance\xeCJK@cnta -50\relax + \fi + \ifnum\xeCJK@cnta<0\relax + \xeCJK@cnta=0\relax + \fi + \xeCJK@numtodim{\xeCJK@cnta} + \expandafter\xdef\csname + xeCJK\xeCJK@punctstyle\xeCJK@bboxname @kern#1#2\endcsname{ + \xeCJK@temp em} + \fi} +\def\xeCJKsetkern#1#2#3{ + \xdef\xeCJK@bboxname{\xeCJK@fontname} + \expandafter\xdef\csname + xeCJK\xeCJK@punctstyle\xeCJK@bboxname @kern#1#2\endcsname{#3}} +\def\punctstyle#1{ + \ifcsname xeCJK@ps@#1\endcsname + \edef\xeCJK@punctstyle{\csname xeCJK@ps@#1\endcsname} + \ifnum\xeCJK@punctstyle=\xeCJK@ps@plain\relax + \xeCJKallowbreakbetweenpuncts + \fi + \else + \PackageWarning{xeCJK}{Punctstyle #1\space is not defined.} + \fi} +\def\xeCJK@ps@hangmobanjiao{0} +\def\xeCJK@ps@marginkerning{0} +\def\xeCJK@ps@quanjiao{1} +\def\xeCJK@ps@fullwidth{1} +\def\xeCJK@ps@banjiao{2} +\def\xeCJK@ps@halfwidth{2} +\def\xeCJK@ps@kaiming{3} +\def\xeCJK@ps@mixedwidth{3} +\def\xeCJK@ps@CCT{4} +\def\xeCJK@ps@plain{5} +\punctstyle{quanjiao} +\def\xeCJKplainchr{\punctstyle{plain}} +\def\xeCJK@sidespace{10} +\def\xeCJK@getglyphbounds#1{ + \xeCJK@cnta=\number\XeTeXglyphbounds #1 \xeCJK@gid + \xeCJK@dima 1em\relax + \xeCJK@cntb=\number\xeCJK@dima + \multiply\xeCJK@cnta 100\relax + \divide\xeCJK@cnta\xeCJK@cntb + \advance\xeCJK@cnta -15\relax + \edef\xeCJK@temp{\the\xeCJK@cnta} + \ifnum\xeCJK@temp<0\relax + \def\xeCJK@temp{0} + \fi} +\def\xeCJK@setpunctbounds#1{ + \edef\xeCJK@gid{\the\XeTeXcharglyph`#1} + \xeCJK@getglyphbounds{1} + \expandafter\xdef\csname xeCJK@\xeCJK@bboxname @lspace@#1\endcsname{ + \xeCJK@temp} + \xeCJK@getglyphbounds{3} + \expandafter\xdef\csname xeCJK@\xeCJK@bboxname @rspace@#1\endcsname{ + \xeCJK@temp} + \ifcsname xeCJK@specialpunct#1\endcsname + \unless\ifx#1… + \xeCJK@cnta=\number\XeTeXglyphbounds 1 \xeCJK@gid + \advance\xeCJK@cnta\number\XeTeXglyphbounds 3 \xeCJK@gid + \xeCJK@dima 1em\relax + \xeCJK@cntb=\number\xeCJK@dima + \multiply\xeCJK@cnta 100\relax + \divide\xeCJK@cnta\xeCJK@cntb + \advance\xeCJK@cnta 1\relax + \ifnum\xeCJK@cnta>9 + \edef\xeCJK@temp{-0.\the\xeCJK@cnta em} + \else + \ifnum\xeCJK@cnta>1 + \edef\xeCJK@temp{-0.0\the\xeCJK@cnta em} + \else + \edef\xeCJK@temp{-0.01 em} + \fi + \fi + \xeCJK@cnta=0 + \loop + \global\expandafter\edef\csname xeCJK\the\xeCJK@cnta\xeCJK@bboxname + @kern#1#1\endcsname{\xeCJK@temp} + \advance \xeCJK@cnta 1\relax + \ifnum\xeCJK@cnta<6\repeat + \fi + \fi} +\unless\ifcsname XeTeXglyphbounds\endcsname + \PackageError{xeCJK}{\string\XeTeXglyphbounds \space not defined.^^J + You have to update XeTeX to the version 0.9995.0 or later}{} +\fi + +\def\CJKsymbol#1{#1} +\def\CJKpunctsymbol#1{#1} + +% For pure plain TeX +\def\xeCJK@setfont{\CJKfont} +\def\xeCJK@fontname{\fontname\CJKfont} + +\def\CJKfont{\errmessage{xeCJK Error: You must define \noexpand\CJKfont first}} + +\endlinechar=`\^^M +\resetatcatcode +\endinput +% vim:ft=plaintex |