diff options
Diffstat (limited to 'Master/texmf-dist/tex/xetex')
-rw-r--r-- | Master/texmf-dist/tex/xetex/xetexko/xetexko.sty | 343 |
1 files changed, 172 insertions, 171 deletions
diff --git a/Master/texmf-dist/tex/xetex/xetexko/xetexko.sty b/Master/texmf-dist/tex/xetex/xetexko/xetexko.sty index 9b155d3c737..63108b667c2 100644 --- a/Master/texmf-dist/tex/xetex/xetexko/xetexko.sty +++ b/Master/texmf-dist/tex/xetex/xetexko/xetexko.sty @@ -16,7 +16,7 @@ \ifdefined\ProvidesPackage \NeedsTeXFormat{LaTeX2e}[2020/10/01] - \ProvidesPackage{xetexko}[2021/03/22 v3.1 typesetting Korean with XeTeX] + \ProvidesPackage{xetexko}[2021/04/08 v3.2 typesetting Korean with XeTeX] \else \ifdefined\@tempcnta\else \newcount\@tempcnta \fi \ifdefined\@gobble\else \def\@gobble#1{} \fi @@ -524,20 +524,21 @@ \expandafter\let\csname XeKo@1@class\endcsname =\XeTeXcharclassHG \expandafter\let\csname XeKo@2@class\endcsname =\XeTeXcharclassID -\expandafter\let\csname XeKo@3@class\endcsname =\XeTeXcharclassSY -\expandafter\let\csname XeKo@4@class\endcsname =\XeTeXcharclassAA -\expandafter\let\csname XeKo@5@class\endcsname =\XeTeXcharclassAO -\expandafter\let\csname XeKo@6@class\endcsname =\XeTeXcharclassAC -\expandafter\let\csname XeKo@7@class\endcsname =\XeTeXcharclassAP -\expandafter\let\csname XeKo@8@class\endcsname =\XeTeXcharclassAM -\expandafter\let\csname XeKo@9@class\endcsname =\XeTeXcharclassAH -\expandafter\let\csname XeKo@10@class\endcsname=\XeTeXcharclassOP -\expandafter\let\csname XeKo@11@class\endcsname=\XeTeXcharclassCL -\expandafter\let\csname XeKo@12@class\endcsname=\XeTeXcharclassMD -\expandafter\let\csname XeKo@13@class\endcsname=\XeTeXcharclassFS -\expandafter\let\csname XeKo@14@class\endcsname=\XeTeXcharclassEX -\expandafter\let\csname XeKo@15@class\endcsname=\XeTeXcharclassLD -\expandafter\let\csname XeKo@16@class\endcsname=\XeTeXcharclassVC +% skip 3 which ulem uses +\expandafter\let\csname XeKo@4@class\endcsname =\XeTeXcharclassSY +\expandafter\let\csname XeKo@5@class\endcsname =\XeTeXcharclassAA +\expandafter\let\csname XeKo@6@class\endcsname =\XeTeXcharclassAO +\expandafter\let\csname XeKo@7@class\endcsname =\XeTeXcharclassAC +\expandafter\let\csname XeKo@8@class\endcsname =\XeTeXcharclassAP +\expandafter\let\csname XeKo@9@class\endcsname =\XeTeXcharclassAM +\expandafter\let\csname XeKo@10@class\endcsname=\XeTeXcharclassAH +\expandafter\let\csname XeKo@11@class\endcsname=\XeTeXcharclassOP +\expandafter\let\csname XeKo@12@class\endcsname=\XeTeXcharclassCL +\expandafter\let\csname XeKo@13@class\endcsname=\XeTeXcharclassMD +\expandafter\let\csname XeKo@14@class\endcsname=\XeTeXcharclassFS +\expandafter\let\csname XeKo@15@class\endcsname=\XeTeXcharclassEX +\expandafter\let\csname XeKo@16@class\endcsname=\XeTeXcharclassLD +\expandafter\let\csname XeKo@17@class\endcsname=\XeTeXcharclassVC \newtoks\XeKo@toks@ \newtoks\XeKo@toks@ii @@ -551,7 +552,8 @@ \ifnum\XeKo@charslot="FFFF % 다음 한 줄이 없으면 한글과 한글 사이에 폰트가 변경되는 경우 글자 누락. % 폰트 변경은 kern 에 아무 영향을 주지 않기 때문. - \def\XeKo@maybe@gobble{\def\XeKo@maybe@gobble{\expandafter\expandafter\expandafter\@gobble}}% + \def\XeKo@maybe@gobble{\def\XeKo@maybe@gobble{% + \ifdefined\XeKo@curr@font\expandafter\XeKo@maybe@gobble@\fi }}% \expandafter\XeKo@flush@toks \else \ifnum\XeKo@currclass>\tw@ @@ -579,11 +581,11 @@ \fi } \def\XeKo@addto@toks#1{% - \ifnum\XeKo@currclass=4 % AA + \ifnum\XeKo@currclass=5 % AA \global\let\XeKo@josatoken=#1\relax \else\ifnum\XeTeXcharclass\XeKo@charslot=\XeTeXcharclassJJ \global\let\XeKo@josatoken=#1\relax - \else\ifnum\XeKo@currclass=\thr@@ % SY + \else\ifnum\XeKo@currclass=4 % SY \global\let\XeKo@josatoken=#1\relax \fi\fi\fi \XeKo@toks@\expandafter{\the\XeKo@toks@ #1}% @@ -682,8 +684,8 @@ } % remove space \def\XeKo@maybe@ignorespaces{% - \ifnum 0\ifnum\XeKo@currclass<4 1\else % HG ID SY - \ifnum\XeKo@currclass>9 1\fi\fi % CJK punctuations + \ifnum 0\ifnum\XeKo@currclass<5 1\else % HG ID SY + \ifnum\XeKo@currclass>10 1\fi\fi % CJK punctuations >\z@ \expandafter\XeKo@ignorespaces@iv \fi @@ -708,6 +710,61 @@ \protected\def\hangingpunctuation{\chardef\XeKo@hangingpuncts\@ne } \let\hangingpunctuations\hangingpunctuation +\protected\def\sethangingratio#1=#2 {% + \expandafter\def\csname XeKo@hanging@ratio@\number#1\endcsname{#2}% + } +\protected\def\unsethangingratio{\afterassignment\unsethangingratio@\count@= } +\def\unsethangingratio@{% + \expandafter\let\csname XeKo@hanging@ratio@\number\count@\endcsname\XeKo@undefined + } +\def\XeKo@def@pre@hang#1{% + \ifnum\XeKo@hangingpuncts=\@ne + \ifcsname XeKo@hanging@ratio@\number`#1\endcsname + \ifnum 0\ifnum\XeKo@compresspuncts=\@ne + \ifnum\XeKo@currclass=11 % OP + 1\fi\fi >\z@ + \XeKo@dimen@=.5em + \else + \setbox\XeKo@box@\hbox{\XeTeXinterchartokenstate\z@ #1}% + \XeKo@dimen@=\wd\XeKo@box@ + \fi + \XeKo@dimen@=\csname XeKo@hanging@ratio@\number`#1\endcsname\XeKo@dimen@ + \edef\XeKo@pre@hang{% + \kern\the\XeKo@dimen@ + \vrule width-\the\XeKo@dimen@ height\z@ depth\z@ + }% + \fi + \fi + } +\def\XeKo@def@post@hang#1{% + \ifnum\XeKo@hangingpuncts=\@ne + \ifcsname XeKo@hanging@ratio@\number`#1\endcsname + \ifnum 0\ifnum\XeKo@compresspuncts=\@ne + \ifnum\XeKo@currclass>11 % + \ifnum\XeKo@currclass<15 % CL MD FS + 1\fi\fi\fi >\z@ + \XeKo@dimen@=.5em + \else + \setbox\XeKo@box@\hbox{\XeTeXinterchartokenstate\z@ #1}% + \XeKo@dimen@=\wd\XeKo@box@ + \fi + \XeKo@dimen@=\csname XeKo@hanging@ratio@\number`#1\endcsname\XeKo@dimen@ + \edef\XeKo@post@hang{% + \noexpand\XeKo@count@\noexpand\spacefactor + \vrule width-\the\XeKo@dimen@ height\z@ depth\z@ + \kern\the\XeKo@dimen@ + \noexpand\spacefactor\noexpand\XeKo@count@ + }% + \fi + \fi + } +\sethangingratio"2C=1 % , 반점 +\sethangingratio"2E=1 % . 온점 +\sethangingratio"3001=1 % 、 모점 +\sethangingratio"3002=1 % 。 고리점 +\sethangingratio"FF0C=1 % , 전각반점 +\sethangingratio"FF0E=1 % . 전각온점 + % compress CJK punctuations to .5em \protected\def\compresspunctuations{\chardef\XeKo@compresspuncts\@ne } \protected\def\nocompresspunctuations{\chardef\XeKo@compresspuncts\z@ } @@ -747,200 +804,140 @@ \def\XeKo@startSY#1{% \global\let\XeKo@josatoken=#1\relax \let\XeKo@pre@hang\XeKo@undefined \let\XeKo@post@hang\XeKo@undefined - \def\XeKo@currclass{3}% + \def\XeKo@currclass{4}% \XeKo@toks@{#1}% \XeKo@check@next@tok } \def\XeKo@startAA#1{% \global\let\XeKo@josatoken=#1\relax \let\XeKo@pre@hang\XeKo@undefined \let\XeKo@post@hang\XeKo@undefined - \def\XeKo@currclass{4}% + \def\XeKo@currclass{5}% \XeKo@toks@{#1}% \XeKo@check@next@tok } \def\XeKo@startAO#1{% \let\XeKo@pre@hang\XeKo@undefined \let\XeKo@post@hang\XeKo@undefined - \def\XeKo@currclass{5}% + \def\XeKo@currclass{6}% \XeKo@toks@{#1}% - \ifnum\XeKo@hangingpuncts=\@ne - \ifnum`#1="60 % ` - \XeKo@dimen@=\fontcharwd\font"60 % - \edef\XeKo@pre@hang{% - \kern\the\XeKo@dimen@ - \vrule width-\the\XeKo@dimen@ height\z@ depth\z@ - }% - \fi - \fi + \XeKo@def@pre@hang{#1}% \XeKo@check@next@tok } \def\XeKo@startAC#1{% \let\XeKo@pre@hang\XeKo@undefined \let\XeKo@post@hang\XeKo@undefined - \def\XeKo@currclass{6}% + \def\XeKo@currclass{7}% \XeKo@toks@{#1}% - \ifnum\XeKo@hangingpuncts=\@ne - \ifnum`#1="27 % ' - \XeKo@dimen@=\fontcharwd\font"27 % - \edef\XeKo@post@hang{% - \vrule width-\the\XeKo@dimen@ height\z@ depth\z@ - \kern\the\XeKo@dimen@ - }% - \fi - \fi + \XeKo@def@post@hang{#1}% \XeKo@check@next@tok } \def\XeKo@startAP#1{% \let\XeKo@pre@hang\XeKo@undefined \let\XeKo@post@hang\XeKo@undefined - \def\XeKo@currclass{7}% + \def\XeKo@currclass{8}% \XeKo@toks@{#1}% - \ifnum\XeKo@hangingpuncts=\@ne - \ifnum 0\ifnum`#1="2E 1\else % . , - \ifnum`#1="2C 1\fi\fi >\z@ - \XeKo@dimen@=\fontcharwd\font`#1 % - \edef\XeKo@post@hang{% - \noexpand\XeKo@count@\noexpand\spacefactor - \vrule width-\the\XeKo@dimen@ height\z@ depth\z@ - \kern\the\XeKo@dimen@ - \noexpand\spacefactor\noexpand\XeKo@count@ - }% - \fi - \fi + \XeKo@def@post@hang{#1}% \XeKo@check@next@tok } \def\XeKo@startAM#1{% \let\XeKo@pre@hang\XeKo@undefined \let\XeKo@post@hang\XeKo@undefined - \def\XeKo@currclass{8}% + \def\XeKo@currclass{9}% \XeKo@toks@{#1}% + \XeKo@def@post@hang{#1}% \XeKo@check@next@tok } \def\XeKo@startAH#1{% \let\XeKo@pre@hang\XeKo@undefined \let\XeKo@post@hang\XeKo@undefined - \def\XeKo@currclass{9}% + \def\XeKo@currclass{10}% \XeKo@toks@{#1}% + \ifnum`#1=\hyphenchar\font \else % exclude hyphen char + \XeKo@def@post@hang{#1}% + \fi \XeKo@check@next@tok } \def\XeKo@startOP#1{% \let\XeKo@pre@hang\XeKo@undefined \let\XeKo@post@hang\XeKo@undefined - \def\XeKo@currclass{10}% + \def\XeKo@currclass{11}% \ifnum\XeKo@compresspuncts=\@ne \XeKo@toks@{\hbox to.5em\bgroup\hss #1\egroup}% \else \XeKo@toks@{#1}% \fi - \ifnum\XeKo@hangingpuncts=\@ne - \ifnum0\ifnum`#1="2018 1\else % ‘ “ - \ifnum`#1="201C 1\fi\fi >\z@ - \ifnum\XeKo@compresspuncts=\@ne - \XeKo@dimen@=.5em - \else - \XeKo@dimen@=\fontcharwd\font`#1 % - \fi - \ifnum`#1="201C % - \XeKo@dimen@=.5\XeKo@dimen@ - \fi - \edef\XeKo@pre@hang{% - \kern\the\XeKo@dimen@ - \vrule width-\the\XeKo@dimen@ height\z@ depth\z@ - }% - \fi - \fi + \XeKo@def@pre@hang{#1}% \XeKo@do@flush@toks } \def\XeKo@startCL#1{% \let\XeKo@pre@hang\XeKo@undefined \let\XeKo@post@hang\XeKo@undefined - \def\XeKo@currclass{11}% + \def\XeKo@currclass{12}% \ifnum\XeKo@compresspuncts=\@ne \XeKo@toks@{\hbox to.5em\bgroup #1\hss\egroup}% \else \XeKo@toks@{#1}% \fi - \ifnum\XeKo@hangingpuncts=\@ne - \ifnum 0\ifnum`#1="2019 1\else % ’ ” 、 , - \ifnum`#1="201D 1\else - \ifnum`#1="3001 1\else - \ifnum`#1="FF0C 1\fi\fi\fi\fi >\z@ - \ifnum\XeKo@compresspuncts=\@ne - \XeKo@dimen@=.5em - \else - \XeKo@dimen@=\fontcharwd\font`#1 % - \fi - \ifnum`#1="201D % - \XeKo@dimen@=.5\XeKo@dimen@ - \fi - \edef\XeKo@post@hang{% - \vrule width-\the\XeKo@dimen@ height\z@ depth\z@ - \kern\the\XeKo@dimen@ - }% - \fi - \fi + \XeKo@def@post@hang{#1}% \XeKo@do@flush@toks } \def\XeKo@startMD#1{% \let\XeKo@pre@hang\XeKo@undefined \let\XeKo@post@hang\XeKo@undefined - \def\XeKo@currclass{12}% + \def\XeKo@currclass{13}% \ifnum\XeKo@compresspuncts=\@ne \XeKo@toks@{\hbox to.5em\bgroup\hss #1\hss\egroup}% \else \XeKo@toks@{#1}% \fi + \XeKo@def@post@hang{#1}% \XeKo@do@flush@toks } \def\XeKo@startFS#1{% \let\XeKo@pre@hang\XeKo@undefined \let\XeKo@post@hang\XeKo@undefined - \def\XeKo@currclass{13}% + \def\XeKo@currclass{14}% \ifnum\XeKo@compresspuncts=\@ne \XeKo@toks@{\hbox to.5em\bgroup #1\hss\egroup}% \else \XeKo@toks@{#1}% \fi - \ifnum\XeKo@hangingpuncts=\@ne - \ifnum 0\ifnum`#1="3002 1\else % 。 . - \ifnum`#1="FF0E 1\fi\fi >\z@ - \ifnum\XeKo@compresspuncts=\@ne - \XeKo@dimen@=.5em - \else - \XeKo@dimen@=\fontcharwd\font`#1 % - \fi - \edef\XeKo@post@hang{% - \vrule width-\the\XeKo@dimen@ height\z@ depth\z@ - \kern\the\XeKo@dimen@ - }% - \fi - \fi + \XeKo@def@post@hang{#1}% \XeKo@do@flush@toks } \def\XeKo@startEX#1{% \let\XeKo@pre@hang\XeKo@undefined \let\XeKo@post@hang\XeKo@undefined - \def\XeKo@currclass{14}% + \def\XeKo@currclass{15}% \XeKo@toks@{#1}% + \XeKo@def@post@hang{#1}% \XeKo@do@flush@toks } \def\XeKo@startLD#1{% \let\XeKo@pre@hang\XeKo@undefined \let\XeKo@post@hang\XeKo@undefined - \def\XeKo@currclass{15}% + \def\XeKo@currclass{16}% \XeKo@toks@{#1}% + \XeKo@def@post@hang{#1}% \XeKo@do@flush@toks } \def\XeKo@startVC#1{% \let\XeKo@pre@hang\XeKo@undefined \let\XeKo@post@hang\XeKo@undefined - \def\XeKo@currclass{16}% + \def\XeKo@currclass{17}% \XeKo@toks@{#1}% + \XeKo@def@post@hang{#1}% \XeKo@do@flush@toks } -\def\XeKo@maybe@gobble{\expandafter\expandafter\expandafter\@gobble} +\def\XeKo@maybe@gobble{% + \ifdefined\XeKo@curr@font\expandafter\XeKo@maybe@gobble@\fi + } +\def\XeKo@maybe@gobble@{% + \expandafter\expandafter\expandafter\@gobble + } \XeTeXinterchartoks\XeTeXcharclassBoundary\XeTeXcharclassHG{% \ifnum\lastnodetype=12 % \ifcase\lastkern \or \unkern\unkern \XKinterhangulbreak \XeKo@maybe@gobble % HG HG \or \unkern\unkern \XKinterhanjabreak % ID HG + \or \or \unkern\unkern % SY HG \or \unkern\unkern \XeKo@latincjk % AA HG \or \unkern\unkern \XeKo@nobreak % AO HG \or \unkern\unkern \XeKo@latincjk % AC HG \or \unkern\unkern \XeKo@latincjk % AP HG \or \unkern\unkern \XeKo@latincjk % AM HG - \or \unkern\unkern % AH HG + \or \unkern\unkern \XKinterhanjabreak % AH HG \or \unkern\unkern % OP HG \or \unkern\unkern \XeKo@halfhalf % CL HG \or \unkern\unkern \XeKo@quarterquarter % MD HG @@ -959,13 +956,14 @@ \ifcase\lastkern \or \unkern\unkern \XKinterhanjabreak % HG ID \or \unkern\unkern \XKinterhanjabreak \XeKo@maybe@gobble % ID ID + \or \or \unkern\unkern % SY ID \or \unkern\unkern \XeKo@latincjk % AA ID \or \unkern\unkern \XeKo@nobreak % AO ID \or \unkern\unkern \XeKo@latincjk % AC ID \or \unkern\unkern \XeKo@latincjk % AP ID \or \unkern\unkern \XeKo@latincjk % AM ID - \or \unkern\unkern % AH ID + \or \unkern\unkern \XKinterhanjabreak % AH ID \or \unkern\unkern % OP ID \or \unkern\unkern \XeKo@halfhalf % CL ID \or \unkern\unkern \XeKo@quarterquarter % MD ID @@ -983,14 +981,15 @@ \ifnum\lastnodetype=12 % \ifcase\lastkern \or \unkern\unkern \XKinterhanjabreak % HG CJ - \or \unkern\unkern \penalty5000\XKinterhanjabreak \XeKo@maybe@gobble % ID CJ + \or \unkern\unkern \XKinterhanjabreak\XeKo@suppress@char@orphan \XeKo@maybe@gobble % ID CJ + \or \or \unkern\unkern % SY CJ \or \unkern\unkern \XeKo@latincjk % AA CJ \or \unkern\unkern \XeKo@nobreak % AO CJ \or \unkern\unkern \XeKo@latincjk % AC CJ \or \unkern\unkern \XeKo@latincjk % AP CJ \or \unkern\unkern \XeKo@latincjk % AM CJ - \or \unkern\unkern % AH CJ + \or \unkern\unkern \XKinterhanjabreak % AH CJ \or \unkern\unkern % OP CJ \or \unkern\unkern \XeKo@halfhalf % CL CJ \or \unkern\unkern \XeKo@quarterquarter % MD CJ @@ -1009,6 +1008,7 @@ \ifcase\lastkern \or \unkern\unkern % HG SY \or \unkern\unkern % ID SY + \or \or \unkern\unkern \XeKo@maybe@gobble % SY SY \or \unkern\unkern % AA SY \or \unkern\unkern \XeKo@nobreak % AO SY @@ -1034,6 +1034,7 @@ \ifcase\lastkern \or \unkern\unkern \XeKo@latincjk % HG AA \or \unkern\unkern \XeKo@latincjk % ID AA + \or \or \unkern\unkern % SY AA \or \unkern\unkern \XeKo@maybe@gobble % AA AA \or \unkern\unkern % AO AA @@ -1057,6 +1058,7 @@ \ifcase\lastkern \or \unkern\unkern \XeKo@latincjk % HG AO \or \unkern\unkern \XeKo@latincjk % ID AO + \or \or \unkern\unkern \XeKo@latincjk % SY AO \or \unkern\unkern % AA AO \or \unkern\unkern \XeKo@maybe@gobble % AO AO @@ -1080,6 +1082,7 @@ \ifcase\lastkern \or \unkern\unkern % HG AC \or \unkern\unkern % ID AC + \or \or \unkern\unkern % SY AC \or \unkern\unkern % AA AC \or \unkern\unkern % AO AC @@ -1103,6 +1106,7 @@ \ifcase\lastkern \or \unkern\unkern % HG AP \or \unkern\unkern % ID AP + \or \or \unkern\unkern % SY AP \or \unkern\unkern % AA AP \or \unkern\unkern % AO AP @@ -1126,6 +1130,7 @@ \ifcase\lastkern \or \unkern\unkern \XeKo@nobreak\XeKo@latincjk % HG AM \or \unkern\unkern \XeKo@nobreak\XeKo@latincjk % ID AM + \or \or \unkern\unkern \XeKo@nobreak\XeKo@latincjk % SY AM \or \unkern\unkern % AA AM \or \unkern\unkern % AO AM @@ -1147,22 +1152,23 @@ \XeTeXinterchartoks\XeTeXcharclassBoundary\XeTeXcharclassAH{% \ifnum\lastnodetype=12 % \ifcase\lastkern - \or \unkern\unkern \XeKo@nobreak % HG AH - \or \unkern\unkern \XeKo@nobreak % ID AH - \or \unkern\unkern \XeKo@nobreak % SY AH - \or \unkern\unkern % AA AH - \or \unkern\unkern % AO AH - \or \unkern\unkern % AC AH - \or \unkern\unkern % AP AH - \or \unkern\unkern % AM AH + \or \unkern\unkern \XeKo@nobreak % HG AH + \or \unkern\unkern \XeKo@nobreak % ID AH + \or + \or \unkern\unkern \XeKo@nobreak % SY AH + \or \unkern\unkern % AA AH + \or \unkern\unkern % AO AH + \or \unkern\unkern % AC AH + \or \unkern\unkern % AP AH + \or \unkern\unkern % AM AH \or \unkern\unkern \XeKo@maybe@gobble % AH AH - \or \unkern\unkern % OP AH - \or \unkern\unkern \XeKo@nobreak % CL AH - \or \unkern\unkern \XeKo@nobreak % MD AH - \or \unkern\unkern \XeKo@nobreak % FS AH - \or \unkern\unkern \XeKo@nobreak % EX AH - \or \unkern\unkern \XeKo@nobreak % LD AH - \or \unkern\unkern \XeKo@nobreak % VC AH + \or \unkern\unkern % OP AH + \or \unkern\unkern \XeKo@nobreak\XeKo@halfhalf % CL AH + \or \unkern\unkern \XeKo@nobreak\XeKo@quarterquarter % MD AH + \or \unkern\unkern \XeKo@nobreak\XeKo@halfzero % FS AH + \or \unkern\unkern \XeKo@nobreak\XeKo@halfhalf % EX AH + \or \unkern\unkern \XeKo@nobreak % LD AH + \or \unkern\unkern \XeKo@nobreak % VC AH \fi \fi \XeKo@fontAH\XeKo@startAH @@ -1172,13 +1178,14 @@ \ifcase\lastkern \or \unkern\unkern \XeKo@halfhalf % HG OP \or \unkern\unkern \XeKo@halfhalf % ID OP + \or \or \unkern\unkern \XeKo@halfhalf % SY OP \or \unkern\unkern \XeKo@halfhalf % AA OP \or \unkern\unkern \XeKo@nobreak\XeKo@halfhalf % AO OP \or \unkern\unkern \XeKo@halfhalf % AC OP \or \unkern\unkern \XeKo@halfhalf % AP OP \or \unkern\unkern \XeKo@halfhalf % AM OP - \or \unkern\unkern % AH OP + \or \unkern\unkern \XeKo@halfhalf % AH OP \or \unkern\unkern \XeKo@maybe@gobble % OP OP \or \unkern\unkern \XeKo@halfhalf % CL OP \or \unkern\unkern \XeKo@quarterquarter % MD OP @@ -1197,6 +1204,7 @@ \ifcase\lastkern \or \unkern\unkern % HG CL \or \unkern\unkern % ID CL + \or \or \unkern\unkern % SY CL \or \unkern\unkern % AA CL \or \unkern\unkern % AO CL @@ -1220,13 +1228,14 @@ \ifcase\lastkern \or \unkern\unkern \XeKo@nobreak\XeKo@quarterquarter % HG MD \or \unkern\unkern \XeKo@nobreak\XeKo@quarterquarter % ID MD + \or \or \unkern\unkern \XeKo@nobreak\XeKo@quarterquarter % SY MD \or \unkern\unkern \XeKo@nobreak\XeKo@quarterquarter % AA MD \or \unkern\unkern \XeKo@nobreak\XeKo@quarterquarter % AO MD \or \unkern\unkern \XeKo@nobreak\XeKo@quarterquarter % AC MD \or \unkern\unkern \XeKo@nobreak\XeKo@quarterquarter % AP MD \or \unkern\unkern \XeKo@nobreak\XeKo@quarterquarter % AM MD - \or \unkern\unkern % AH MD + \or \unkern\unkern \XeKo@nobreak\XeKo@quarterquarter % AH MD \or \unkern\unkern \XeKo@nobreak\XeKo@quarterquarter % OP MD \or \unkern\unkern \XeKo@nobreak\XeKo@quarterquarter % CL MD \or \unkern\unkern \XeKo@nobreak\XeKo@halfquarter \XeKo@maybe@gobble % MD MD @@ -1245,6 +1254,7 @@ \ifcase\lastkern \or \unkern\unkern % HG FS \or \unkern\unkern % ID FS + \or \or \unkern\unkern % SY FS \or \unkern\unkern % AA FS \or \unkern\unkern % AO FS @@ -1268,6 +1278,7 @@ \ifcase\lastkern \or \unkern\unkern % HG EX \or \unkern\unkern % ID EX + \or \or \unkern\unkern % SY EX \or \unkern\unkern % AA EX \or \unkern\unkern % AO EX @@ -1291,6 +1302,7 @@ \ifcase\lastkern \or \unkern\unkern % HG LD \or \unkern\unkern % ID LD + \or \or \unkern\unkern % SY LD \or \unkern\unkern % AA LD \or \unkern\unkern % AO LD @@ -1312,21 +1324,22 @@ \XeTeXinterchartoks\XeTeXcharclassBoundary\XeTeXcharclassVC{% \ifnum\lastnodetype=12 % \ifcase\lastkern - \or \unkern\unkern % HG VC - \or \unkern\unkern % ID VC - \or \unkern\unkern % SY VC - \or \unkern\unkern % AA VC - \or \unkern\unkern % AO VC - \or \unkern\unkern % AC VC - \or \unkern\unkern % AP VC - \or \unkern\unkern % AM VC - \or \unkern\unkern % AH VC - \or \unkern\unkern % OP VC - \or \unkern\unkern % CL VC - \or \unkern\unkern \XeKo@nobreak\XeKo@halfquarter % MD VC - \or \unkern\unkern % FS VC - \or \unkern\unkern % EX VC - \or \unkern\unkern % LD VC + \or \unkern\unkern % HG VC + \or \unkern\unkern % ID VC + \or + \or \unkern\unkern % SY VC + \or \unkern\unkern % AA VC + \or \unkern\unkern % AO VC + \or \unkern\unkern % AC VC + \or \unkern\unkern % AP VC + \or \unkern\unkern % AM VC + \or \unkern\unkern % AH VC + \or \unkern\unkern % OP VC + \or \unkern\unkern % CL VC + \or \unkern\unkern \XeKo@nobreak\XeKo@quarterquarter % MD VC + \or \unkern\unkern % FS VC + \or \unkern\unkern % EX VC + \or \unkern\unkern % LD VC \or \unkern\unkern \XeKo@maybe@gobble % VC VC \fi \fi @@ -1615,30 +1628,19 @@ \let\XeKo@iiiquarterquarter \inhibitglue \let\XeKo@latincjk \inhibitglue \let\XeKo@postmath \inhibitglue - \let\XKinterhangulbreak \XKinterhanjabreak + \let\XKinterhangulbreak \inhibitglue + \let\XKinterhanjabreak \inhibitglue \let\XeKo@latincjk@classic \inhibitglue \let\XeKo@latincjk@modern \inhibitglue \let\XeKo@postmath@modern \inhibitglue \let\XeKo@suppress@char@orphan \relax - \chardef\XeKo@hangingpuncts \z@ \chardef\XeKo@cjk@ignorespaces \z@ + \chardef\XeKo@compresspuncts \z@ } \protected\def\disablehangulspacingandlinebreak{% - \let\XeKo@halfzero \relax - \let\XeKo@halfhalf \relax - \let\XeKo@halfquarter \relax - \let\XeKo@quarterquarter \relax - \let\XeKo@iiiquarterquarter \relax - \let\XeKo@latincjk \relax - \let\XeKo@postmath \relax - \let\XKinterhangulbreak \relax - \let\XKinterhanjabreak \relax - \let\XeKo@latincjk@classic \relax - \let\XeKo@latincjk@modern \relax - \let\XeKo@postmath@modern \relax - \let\XeKo@suppress@char@orphan \relax - \chardef\XeKo@hangingpuncts \z@ - \chardef\XeKo@cjk@ignorespaces \z@ + \let\inhibitglue \relax + \chardef\XeKo@hangingpuncts \z@ + \disablehangulspacing \XeTeXlinebreaklocale"" } \protected\def\enablehangulspacingandlinebreak{% @@ -1938,7 +1940,7 @@ \DeclareDocumentCommand \setmonohangulfont { O{} m O{} } { \__xtxko_assign_font_opts:n { #1, #3 } - \fontspec_set_family:Nnn \XeKo@monohangulfamily { Ligatures=TeX, \l_xtxko_rest_opts_tl } { #2 } + \fontspec_set_family:Nnn \XeKo@monohangulfamily { \l_xtxko_rest_opts_tl } { #2 } \cs_set_protected_nopar:Npn \xetexkomonohangulfont { \fontencoding \g_fontspec_encoding_tl \fontfamily \XeKo@monohangulfamily \selectfont @@ -2065,7 +2067,7 @@ \DeclareDocumentCommand \setmonohanjafont { O{} m O{} } { \__xtxko_assign_font_opts:n { #1, #3 } - \fontspec_set_family:Nnn \XeKo@monohanjafamily { Ligatures=TeX, \l_xtxko_rest_opts_tl } { #2 } + \fontspec_set_family:Nnn \XeKo@monohanjafamily { \l_xtxko_rest_opts_tl } { #2 } \cs_set_protected_nopar:Npn \xetexkomonohanjafont { \fontencoding \g_fontspec_encoding_tl \fontfamily \XeKo@monohanjafamily \selectfont @@ -2082,7 +2084,6 @@ } \ignorespaces } - \XeKo@latin@selectfont \DeclareDocumentCommand \newhanjafontfamily { m O{} m O{} } { \__xtxko_assign_font_opts:n { #2, #4 } |