texlive[58929] Master/texmf-dist: xetexko (20apr21)

commits+karl at tug.org commits+karl at tug.org
Tue Apr 20 22:14:14 CEST 2021


Revision: 58929
          http://tug.org/svn/texlive?view=revision&revision=58929
Author:   karl
Date:     2021-04-20 22:14:14 +0200 (Tue, 20 Apr 2021)
Log Message:
-----------
xetexko (20apr21)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/xetex/xetexko/ChangeLog
    trunk/Master/texmf-dist/doc/xetex/xetexko/README
    trunk/Master/texmf-dist/doc/xetex/xetexko/xetexko-doc.pdf
    trunk/Master/texmf-dist/doc/xetex/xetexko/xetexko-doc.tex
    trunk/Master/texmf-dist/tex/xetex/xetexko/xetexko.sty

Modified: trunk/Master/texmf-dist/doc/xetex/xetexko/ChangeLog
===================================================================
--- trunk/Master/texmf-dist/doc/xetex/xetexko/ChangeLog	2021-04-20 20:14:00 UTC (rev 58928)
+++ trunk/Master/texmf-dist/doc/xetex/xetexko/ChangeLog	2021-04-20 20:14:14 UTC (rev 58929)
@@ -1,3 +1,11 @@
+2021-04-20      Dohyun Kim <nomos at ktug org>
+
+	Version 3.3
+
+	* more fix on ulem package support
+	* suppress linebreak before ellipsis etc.
+	* assign U+327E to cjksymbols class
+
 2021-04-08      Dohyun Kim <nomos at ktug org>
 
 	Version 3.2

Modified: trunk/Master/texmf-dist/doc/xetex/xetexko/README
===================================================================
--- trunk/Master/texmf-dist/doc/xetex/xetexko/README	2021-04-20 20:14:00 UTC (rev 58928)
+++ trunk/Master/texmf-dist/doc/xetex/xetexko/README	2021-04-20 20:14:14 UTC (rev 58929)
@@ -1,4 +1,4 @@
-XeTeX-ko Package version 3.2 (2021/04/08)
+XeTeX-ko Package version 3.3 (2021/04/20)
 =========================================
 
 XeTeX-ko is a macro package for Xe(La)TeX which supports typesetting

Modified: trunk/Master/texmf-dist/doc/xetex/xetexko/xetexko-doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/xetex/xetexko/xetexko-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/xetex/xetexko/xetexko-doc.tex	2021-04-20 20:14:00 UTC (rev 58928)
+++ trunk/Master/texmf-dist/doc/xetex/xetexko/xetexko-doc.tex	2021-04-20 20:14:14 UTC (rev 58929)
@@ -70,7 +70,7 @@
 \title{\xetexko\ 간단 매뉴얼}
 \author{Dohyun Kim \normalsize <\texttt{nomos at ktug org}> \and
   \normalsize <\url{http://github.com/dohyunkim/xetexko}>}
-\date{Version 3.2\quad 2021/04/08}
+\date{Version 3.3\quad 2021/04/20}
 \maketitle
 
 \begin{quote}\small
@@ -490,10 +490,10 @@
 
 간단한 일본어, 중국어 문단 정도를 식자하는 데도 이 환경을 이용할 수 있으나
 각 언어의 전용 패키지들에 비해 기능이 많이 모자란다.\footnote{%
-  그러나 \texttt{japanese}, \texttt{chinese} 환경이 여전히 제공된다.
-  특히 중국어 간체를 식자할 때는 \texttt{chinese}를 명시적으로 이용하는 게 좋다.
-  \texttt{Schinese} 환경은 \texttt{chinese}의 다른 이름이다.
-  \texttt{Tchinese}도 호환성을 위해 남겨두었다. }
+  그러나 \texttt{japanese}, \texttt{Schinese}, \texttt{Tchinese} 환경이 여전히 제공된다.
+  \texttt{chinese}는 \texttt{Schinese}의 다른 이름이다.
+  특히 중국어 폰트를 사용할 때는 \texttt{Schinese}나 \texttt{Tchinese}를 명시하는 게 좋다.
+  }
 
 \begin{plaintex}
   플레인텍에서는 다음 방식으로 사용한다.
@@ -673,12 +673,12 @@
 따위를 사용한다.
 
 \section{밑줄긋기}
-\uwave{ulem 패키지}를 로드하는 것만으로 자동 지원된다.
+\LaTeX 에서는 \uwave{ulem 패키지}를 로드하는 것만으로 자동 지원된다.
 
-3.0 버전부터는\vernote{3.0} \cs{xetexkoulemsupport} 선언이
-불필요하게 되었다. 이 명령은 호환성을 위해 남겨두었으나 아무 일도
-하지 않는다.
+\cs{xetexkoulemsupport} 명령이 \vernote{3.3}3.3 버전부터 부활하였으므로
+플레인텍에서는 이 명령을 명시해야 할 경우가 있을 것이다.
 
+
 %\hfill \fboxsep=-\fboxrule \fbox{\vbox to1em{\hbox to1em{\hss}\vss}}
 
 \bigskip
@@ -687,6 +687,11 @@
 
 \begin{small}\linespread{1.2}\selectfont
 \begin{description}\itemsep=0pt
+    \item[v3.3] 2021-04-20
+      \begin{itemize}
+        \item \cs{xetexkoulemsupport} 명령 부활
+        \item `㉾' 등 한글기호를 \verb=cjksymbols=에 할당
+      \end{itemize}
     \item[v3.2] 2021-04-08
       \begin{itemize}
         \item 매달린 구두점이 기본값으로 따옴표에는 작동하지 않고 마침표^^b7쉼표에만 작동한다.

Modified: trunk/Master/texmf-dist/tex/xetex/xetexko/xetexko.sty
===================================================================
--- trunk/Master/texmf-dist/tex/xetex/xetexko/xetexko.sty	2021-04-20 20:14:00 UTC (rev 58928)
+++ trunk/Master/texmf-dist/tex/xetex/xetexko/xetexko.sty	2021-04-20 20:14:14 UTC (rev 58929)
@@ -16,7 +16,7 @@
 
 \ifdefined\ProvidesPackage
   \NeedsTeXFormat{LaTeX2e}[2020/10/01]
-  \ProvidesPackage{xetexko}[2021/04/08 v3.2 typesetting Korean with XeTeX]
+  \ProvidesPackage{xetexko}[2021/04/20 v3.3 typesetting Korean with XeTeX]
 \else
   \ifdefined\@tempcnta\else \newcount\@tempcnta \fi
   \ifdefined\@gobble\else \def\@gobble#1{} \fi
@@ -33,8 +33,8 @@
 \newXeTeXintercharclass\XeTeXcharclassOP
 \newXeTeXintercharclass\XeTeXcharclassCL
 \newXeTeXintercharclass\XeTeXcharclassEX
-\let\XeTeXcharclassIS\XeTeXcharclassID
-\let\XeTeXcharclassNS\XeTeXcharclassID
+\let\XeTeXcharclassIS\XeTeXcharclassCJ
+\let\XeTeXcharclassNS\XeTeXcharclassCJ
 \newXeTeXintercharclass\XeTeXcharclassCM
 \input load-unicode-xetex-classes %
 
@@ -99,6 +99,7 @@
 % ascii colons
 \XeTeXcharclass "3A=\XeTeXcharclassAM % : COLON
 \XeTeXcharclass "3B=\XeTeXcharclassAM % ; SEMICOLON
+\XeTeXcharclass "7E=\XeTeXcharclassAM % ~ TILDE
 % ascii hyphen
 \XeTeXcharclass "2D  =\XeTeXcharclassAH % -
 \XeTeXcharclass "2F  =\XeTeXcharclassAH % /
@@ -115,6 +116,10 @@
 %
 \XeTeXcharclass "2019=\XeTeXcharclassCL % ’ RIGHT SINGLE QUOTATION MARK
 \XeTeXcharclass "201D=\XeTeXcharclassCL % ” RIGHT DOUBLE QUOTATION MARK
+% IS : these are not expected to be input
+\XeTeXcharclass "FE10=\XeTeXcharclassCL % ︐ PRESENTATION FORM FOR VERTICAL COMMA
+\XeTeXcharclass "FE13=\XeTeXcharclassVC % ︓ PRESENTATION FORM FOR VERTICAL COLON
+\XeTeXcharclass "FE14=\XeTeXcharclassVC % ︔ PRESENTATION FORM FOR VERTICAL SEMICOLON
 % NS
 \XeTeXcharclass "00B7=\XeTeXcharclassMD % · MIDDLE DOT
 \XeTeXcharclass "30FB=\XeTeXcharclassMD % ・ KATAKANA MIDDLE DOT
@@ -133,26 +138,50 @@
 \XeTeXcharclass "2015=\XeTeXcharclassLD % ― HORIZONTAL BAR
 \XeTeXcharclass "2025=\XeTeXcharclassLD % ‥ TWO DOT LEADER
 \XeTeXcharclass "2026=\XeTeXcharclassLD % … HORIZONTAL ELLIPSIS
+\XeTeXcharclass "FF5E=\XeTeXcharclassLD % ~ FULLWIDTH TILDE : KS symbol
+\XeTeXcharclass "3003=\XeTeXcharclassLD % 〃 DITTO MARK : KS symbol
 % 결락기호
 \XeTeXcharclass "25A1=\XeTeXcharclassID % □
 % some KS symbols
+\XeTeXcharclass "00AE=\XeTeXcharclassSY % ®
+\XeTeXcharclass "00B0=\XeTeXcharclassSY % °
+\XeTeXcharclass "2030=\XeTeXcharclassSY % ‰
+\XeTeXcharclass "2032=\XeTeXcharclassSY % ′
+\XeTeXcharclass "2033=\XeTeXcharclassSY % ″
 \XeTeXcharclass "203B=\XeTeXcharclassSY % ※
 \XeTeXcharclass "2103=\XeTeXcharclassSY % ℃
 \XeTeXcharclass "2109=\XeTeXcharclassSY % ℉
 \XeTeXcharclass "2113=\XeTeXcharclassSY % ℓ
+\XeTeXcharclass "2116=\XeTeXcharclassSY % №
 \XeTeXcharclass "2121=\XeTeXcharclassSY % ℡
 \XeTeXcharclass "2122=\XeTeXcharclassSY % ™
-\XeTeXcharclass "212B=\XeTeXcharclassSY % Å
-\count@="2160 \loop % Ⅰ..Ⅻ
+\count@="2160 \loop % Ⅰ..Ⅹ
   \XeTeXcharclass\count@=\XeTeXcharclassSY
-  \ifnum\count@<"216B \advance\count@\@ne \repeat
-\count@="2170 \loop % ⅰ..ⅻ
+  \ifnum\count@<"2169 \advance\count@\@ne \repeat
+\count@="2170 \loop % ⅰ..ⅹ
   \XeTeXcharclass\count@=\XeTeXcharclassSY
-  \ifnum\count@<"217B \advance\count@\@ne \repeat
-\XeTeXcharclass "223C=\XeTeXcharclassSY % ∼
-\count@="2460 \loop % ①..⓪
+  \ifnum\count@<"2179 \advance\count@\@ne \repeat
+\count@="2190 \loop % ←..↙
   \XeTeXcharclass\count@=\XeTeXcharclassSY
-  \ifnum\count@<"24EA \advance\count@\@ne \repeat
+  \ifnum\count@<"2199 \advance\count@\@ne \repeat
+\XeTeXcharclass "21D2=\XeTeXcharclassSY % ⇒
+\XeTeXcharclass "21D4=\XeTeXcharclassSY % ⇔
+\XeTeXcharclass "2225=\XeTeXcharclassSY % ∥
+\XeTeXcharclass "226A=\XeTeXcharclassSY % ≪ 꽉찬 전각! 어디에 배정해야 하나?
+\XeTeXcharclass "226B=\XeTeXcharclassSY % ≫ 꽉찬 전각! 어디에 배정해야 하나?
+\XeTeXcharclass "2299=\XeTeXcharclassSY % ⊙
+\count@="2460 \loop % ①..⑮
+  \XeTeXcharclass\count@=\XeTeXcharclassSY
+  \ifnum\count@<"246E \advance\count@\@ne \repeat
+\count@="2474 \loop % ⑴..⒂
+  \XeTeXcharclass\count@=\XeTeXcharclassSY
+  \ifnum\count@<"2482 \advance\count@\@ne \repeat
+\count@="249C \loop % ⒜..⒵
+  \XeTeXcharclass\count@=\XeTeXcharclassSY
+  \ifnum\count@<"24B5 \advance\count@\@ne \repeat
+\count@="24D0 \loop % ⓐ..ⓩ
+  \XeTeXcharclass\count@=\XeTeXcharclassSY
+  \ifnum\count@<"24E9 \advance\count@\@ne \repeat
 \XeTeXcharclass "2500 = \XeTeXcharclassSY % ─
 \XeTeXcharclass "2501 = \XeTeXcharclassSY % ━
 \XeTeXcharclass "2502 = \XeTeXcharclassSY % │
@@ -204,11 +233,19 @@
 \XeTeXcharclass "266A = \XeTeXcharclassSY % ♪
 \XeTeXcharclass "266C = \XeTeXcharclassSY % ♬
 \XeTeXcharclass "266D = \XeTeXcharclassSY % ♭
-\XeTeXcharclass "3012 = \XeTeXcharclassSY % 〒
-\XeTeXcharclass "301C = \XeTeXcharclassSY % 〜
+\XeTeXcharclass "3013 = \XeTeXcharclassSY % 〓
+\count@="3200 \loop % ㈀..㈞
+  \XeTeXcharclass\count@=\XeTeXcharclassSY
+  \ifnum\count@<"321E \advance\count@\@ne \repeat
+\count@="3260 \loop % ㉠..㉿
+  \XeTeXcharclass\count@=\XeTeXcharclassSY
+  \ifnum\count@<"327F \advance\count@\@ne \repeat
+\XeTeXcharclass "33C2 = \XeTeXcharclassSY % ㏂
+\XeTeXcharclass "33C7 = \XeTeXcharclassSY % ㏇
+\XeTeXcharclass "33D8 = \XeTeXcharclassSY % ㏘
 \XeTeXcharclass "FF04 = \XeTeXcharclassSY % $
 \XeTeXcharclass "FF05 = \XeTeXcharclassSY % %
-\XeTeXcharclass "FF5E = \XeTeXcharclassSY % ~
+\XeTeXcharclass "FF3C = \XeTeXcharclassSY % \
 \XeTeXcharclass "FFE0 = \XeTeXcharclassSY % ¢
 \XeTeXcharclass "FFE1 = \XeTeXcharclassSY % £
 \XeTeXcharclass "FFE5 = \XeTeXcharclassSY % ¥
@@ -215,11 +252,11 @@
 \XeTeXcharclass "FFE6 = \XeTeXcharclassSY % ₩
 
 % spaces
-\def\XeKo at halfzero         {\hskip 2\XeKo at halfdim \relax}
-\def\XeKo at halfhalf         {\hskip 2\XeKo at halfdim minus 2\XeKo at halfdim \relax}
-\def\XeKo at halfquarter      {\hskip 2\XeKo at halfdim minus  \XeKo at halfdim \relax}
-\def\XeKo at quarterquarter   {\hskip  \XeKo at halfdim minus  \XeKo at halfdim \relax}
-\def\XeKo at iiiquarterquarter{\hskip 3\XeKo at halfdim minus  \XeKo at halfdim \relax}
+\def\XeKo at halfzero         {\hskip 2\XeKo at quarterdim \relax}
+\def\XeKo at halfhalf         {\hskip 2\XeKo at quarterdim minus 2\XeKo at quarterdim \relax}
+\def\XeKo at halfquarter      {\hskip 2\XeKo at quarterdim minus  \XeKo at quarterdim \relax}
+\def\XeKo at quarterquarter   {\hskip  \XeKo at quarterdim minus  \XeKo at quarterdim \relax}
+\def\XeKo at iiiquarterquarter{\hskip 3\XeKo at quarterdim minus  \XeKo at quarterdim \relax}
 \let\XeKo at nobreak\nobreak
 
 \def\XKinterhangulbreak{% compat
@@ -242,20 +279,21 @@
   \ifdefined\xetexkohu
     \xetexkohu plus .5\dimexpr\xetexkohu\relax minus.25\dimexpr\xetexkohu\relax
   \else
-    \XeKo at halfdim plus .5\XeKo at halfdim minus.25\XeKo at halfdim
+    \XeKo at quarterdim plus .5\XeKo at quarterdim minus.25\XeKo at quarterdim
   \fi
+  \relax
   }
 \def\XeKo at latincjk@modern{%
-  \hskip \ifdefined\xetexkohu \xetexkohu \else \XeKo at halfdim \fi
+  \hskip \ifdefined\xetexkohu \xetexkohu \else \XeKo at quarterdim \fi
   \XeKo at stretchshrink
   }
 \def\XeKo at postmath@modern{%
-  \hskip 2\ifdefined\xetexkohu \dimexpr\xetexkohu\relax \else \XeKo at halfdim \fi
+  \hskip 2\ifdefined\xetexkohu \dimexpr\xetexkohu\relax \else \XeKo at quarterdim \fi
   \XeKo at stretchshrink
   }
 
 % 고아글자 억제. verbatim 에서는 이 명령을 꺼야 한다
-\def\XeKo at suppress@char at orphan{%
+\def\XeKo at suppress@linebreak{%
   \XeKo at skip@=\lastskip \unskip
   \XeKo at count@=\lastpenalty \unpenalty
   \ifnum\XeKo at count@<5000 \XeKo at count@=5000 \fi
@@ -268,8 +306,8 @@
 % typesetting modes
 \protected\def\typesetclassic{%
   \chardef\XeKo at typesetclassic\@ne
-  \def\XeKo at halfdim{\dimexpr.25em\relax}%
-  \def\XeKo at stretchshrink{plus.08em minus.04em}%
+  \def\XeKo at quarterdim{\dimexpr.25em\relax}%
+  \def\XeKo at stretchshrink{plus.08em minus.04em\relax}%
   \let\XeKo at latincjk\XeKo at latincjk@classic
   \let\XeKo at postmath\XeKo at latincjk@classic
   \XeTeXlinebreakpenalty=\z@
@@ -278,8 +316,8 @@
   }
 \protected\def\typesetmodern{%
   \chardef\XeKo at typesetclassic\z@
-  \def\XeKo at halfdim{\dimexpr.05em\relax}%
-  \def\XeKo at stretchshrink{plus.04em minus.02em}%
+  \def\XeKo at quarterdim{\dimexpr.05em\relax}%
+  \def\XeKo at stretchshrink{plus.04em minus.02em\relax}%
   \let\XeKo at latincjk\XeKo at latincjk@modern
   \let\XeKo at postmath\XeKo at postmath@modern
   \XeTeXlinebreakpenalty=50
@@ -288,14 +326,21 @@
 \typesetmodern
 
 \let\japanese\typesetclassic
-\protected\def\Tchinese{\typesetclassic\parindent=2em }
-\protected\def\Schinese{\typesetclassic\parindent=2em
-  \chardef\XeKo at typesetSchinese\@ne
+\protected\def\Tchinese{%
+  \typesetclassic
+  \chardef\XeKo at typesetSTchinese\tw@
+  \XeKo at Tchinese@classes
+  \parindent=2em
+  }
+\protected\def\Schinese{%
+  \typesetclassic
+  \chardef\XeKo at typesetSTchinese\@ne
   \ifnum\XeKo at typesetvertical=\@ne
     \XeKo at Schinese@vertical
   \else
     \XeKo at Schinese@horizontal
   \fi
+  \parindent=2em
   }
 \let\chinese\Schinese
 \def\XeKo at Schinese@horizontal{% these glyphs in simplified chinese fonts are left-aligned.
@@ -310,22 +355,34 @@
   \XeTeXcharclass "FF1B = \XeTeXcharclassVC % ;
   \XeTeXcharclass "FF1F = \XeTeXcharclassEX % ?
   }
+\def\XeKo at Tchinese@classes{% these glyphs in traditional chinese fonts are center-aligned
+  \XeTeXcharclass "3001 = \XeTeXcharclassMD % 、
+  \XeTeXcharclass "3002 = \XeTeXcharclassMD % 。
+  \XeTeXcharclass "FF0C = \XeTeXcharclassMD % ,
+  \XeTeXcharclass "FF0E = \XeTeXcharclassMD % .
+  }
 
 \chardef\XeKo at typesetvertical\z@
-\chardef\XeKo at typesetSchinese\z@
+\chardef\XeKo at typesetSTchinese\z@
 
 \protected\def\typesetvertical{%
   \chardef\XeKo at typesetvertical\@ne
   \XeTeXcharclass "FF1A = \XeTeXcharclassVC % :
   \XeTeXcharclass "FF1B = \XeTeXcharclassVC % ;
-  \ifnum\XeKo at typesetSchinese=\@ne \XeKo at Schinese@vertical \fi
-  \parindent=1em
+  \ifcase\XeKo at typesetSTchinese
+    \parindent=1em
+  \or \XeKo at Schinese@vertical
+  \or \XeKo at Tchinese@classes
+  \fi
   }
 \protected\def\typesethorizontal{%
   \chardef\XeKo at typesetvertical\z@
   \XeTeXcharclass "FF1A = \XeTeXcharclassMD % :
   \XeTeXcharclass "FF1B = \XeTeXcharclassMD % ;
-  \ifnum\XeKo at typesetSchinese=\@ne \XeKo at Schinese@horizontal \fi
+  \ifcase\XeKo at typesetSTchinese
+  \or \XeKo at Schinese@horizontal
+  \or \XeKo at Tchinese@classes
+  \fi
   \parindent\z@
   }
 \protected\def\vertical#1{%
@@ -552,11 +609,12 @@
   \ifnum\XeKo at charslot="FFFF
     % 다음 한 줄이 없으면 한글과 한글 사이에 폰트가 변경되는 경우 글자 누락.
     % 폰트 변경은 kern 에 아무 영향을 주지 않기 때문.
-    \def\XeKo at maybe@gobble{\def\XeKo at maybe@gobble{%
-      \ifdefined\XeKo at curr@font\expandafter\XeKo at maybe@gobble@\fi }}%
+    \let\XeKo at maybe@gobble\relax
     \expandafter\XeKo at flush@toks
   \else
-    \ifnum\XeKo at currclass>\tw@
+    \let\XeKo at maybe@gobble\XeKo at do@maybe at gobble
+    \ifnum 0\ifnum\XeKo at currclass>4 \ifnum\XeKo at currclass<11 % AA..AH
+           1\fi\fi >\z@
       \expandafter\expandafter\expandafter\XeKo at check@next at tok@latin
     \else % HG ID
       \expandafter\expandafter\expandafter\XeKo at check@next at tok@cjk
@@ -574,7 +632,10 @@
 \def\XeKo at check@next at tok@latin{%
   % load-unicode-xetex-classes가 설정하는 모든 CM은 한글, 한자, 가나 뒤에 온다.
   % 따라서 영문자는 CM을 고려할 필요가 없다.
-  \ifnum\XeTeXcharclass\XeKo at charslot=\csname XeKo@\XeKo at currclass @class\endcsname
+  % 아니다!!! 위에서 FE00-FE0F를 CM으로 지정했으므로 CJK에 한정되지 않는다.
+  \ifnum 0%
+      \ifnum\XeTeXcharclass\XeKo at charslot=\csname XeKo@\XeKo at currclass @class\endcsname 1\else
+      \ifnum\XeTeXcharclass\XeKo at charslot=\XeTeXcharclassCM 1\fi\fi >\z@
     \expandafter\XeKo at addto@toks
   \else
     \expandafter\XeKo at flush@toks
@@ -600,7 +661,7 @@
   }
 \def\XeKo at char@orphan{%
   \ifx\XeKo at let@token\par
-    \XeKo at suppress@char at orphan
+    \XeKo at suppress@linebreak
     \let\XeKo at next\XeKo at flush@char at orphan
   \else \ifx\@sptoken\XeKo at let@token
     \XeKo at toks@ii\expandafter{\the\XeKo at toks@ii \@sptoken}%
@@ -627,7 +688,7 @@
   }
 \def\XeKo at char@orphan@{\afterassignment\XeKo at char@orphan@@\let\XeKo at let@token= }
 \def\XeKo at char@orphan@@{\futurelet\XeKo at let@token\XeKo at char@orphan}
-\def\XeKo at flush@char at orphan{\XeKo at do@flush at toks \the\XeKo at toks@ii }
+\def\XeKo at flush@char at orphan{\expandafter \XeKo at do@flush at toks \the\XeKo at toks@ii }
 \def\XeKo at char@raise at start{%
   \ifdefined\xetexkocharraise
     \ifx\XeKo at curr@font\XeKo at latin@font\else
@@ -655,7 +716,21 @@
       \ifnum\XeKo at currclass=\tw@
         \XeKo at everyhanja{\the\XeKo at toks@}% everyhanja
       \else
-        \the\XeKo at toks@
+        \ifnum\XeKo at compresspuncts=\@ne
+          \ifnum\XeKo at currclass=11      % OP
+            \hbox to.5em\bgroup\hss \the\XeKo at toks@ \egroup
+          \else\ifnum\XeKo at currclass=12 % CL
+            \hbox to.5em\bgroup \the\XeKo at toks@ \hss\egroup
+          \else\ifnum\XeKo at currclass=13 % MD
+            \hbox to.5em\bgroup\hss \the\XeKo at toks@ \hss\egroup
+          \else\ifnum\XeKo at currclass=14 % FS
+            \hbox to.5em\bgroup \the\XeKo at toks@ \hss\egroup
+          \else
+            \the\XeKo at toks@
+          \fi\fi\fi\fi
+        \else
+          \the\XeKo at toks@
+        \fi
       \fi
     \fi
     \XeKo at char@raise at stop % charraise
@@ -663,13 +738,8 @@
       \XeKo at post@hang % hanging punctuations
     \fi
   \endgroup
-  \ifnum\XeKo at currclass<\thr@@ % \the\XeKo at toks@ii
-    \expandafter\expandafter\expandafter\XeKo at maybe@kern at i
-  \else
-    \expandafter\XeKo at maybe@kern at i
-  \fi
+  \futurelet\XeKo at let@token\XeKo at maybe@kern at ii
   }
-\def\XeKo at maybe@kern at i{\futurelet\XeKo at let@token\XeKo at maybe@kern at ii }
 \def\XeKo at maybe@kern at ii{%
   \ifx\XeKo at let@token\@sptoken
     \ifnum\XeKo at cjk@ignorespaces=\@ne % try to remove space
@@ -855,46 +925,30 @@
 \def\XeKo at startOP#1{%
   \let\XeKo at pre@hang\XeKo at undefined \let\XeKo at post@hang\XeKo at undefined
   \def\XeKo at currclass{11}%
-  \ifnum\XeKo at compresspuncts=\@ne
-    \XeKo at toks@{\hbox to.5em\bgroup\hss #1\egroup}%
-  \else
-    \XeKo at toks@{#1}%
-  \fi
+  \XeKo at toks@{#1}%
   \XeKo at def@pre at hang{#1}%
-  \XeKo at do@flush at toks
+  \XeKo at check@next at tok
   }
 \def\XeKo at startCL#1{%
   \let\XeKo at pre@hang\XeKo at undefined \let\XeKo at post@hang\XeKo at undefined
   \def\XeKo at currclass{12}%
-  \ifnum\XeKo at compresspuncts=\@ne
-    \XeKo at toks@{\hbox to.5em\bgroup #1\hss\egroup}%
-  \else
-    \XeKo at toks@{#1}%
-  \fi
+  \XeKo at toks@{#1}%
   \XeKo at def@post at hang{#1}%
-  \XeKo at do@flush at toks
+  \XeKo at check@next at tok
   }
 \def\XeKo at startMD#1{%
   \let\XeKo at pre@hang\XeKo at undefined \let\XeKo at post@hang\XeKo at undefined
   \def\XeKo at currclass{13}%
-  \ifnum\XeKo at compresspuncts=\@ne
-    \XeKo at toks@{\hbox to.5em\bgroup\hss #1\hss\egroup}%
-  \else
-    \XeKo at toks@{#1}%
-  \fi
+  \XeKo at toks@{#1}%
   \XeKo at def@post at hang{#1}%
-  \XeKo at do@flush at toks
+  \XeKo at check@next at tok
   }
 \def\XeKo at startFS#1{%
   \let\XeKo at pre@hang\XeKo at undefined \let\XeKo at post@hang\XeKo at undefined
   \def\XeKo at currclass{14}%
-  \ifnum\XeKo at compresspuncts=\@ne
-    \XeKo at toks@{\hbox to.5em\bgroup #1\hss\egroup}%
-  \else
-    \XeKo at toks@{#1}%
-  \fi
+  \XeKo at toks@{#1}%
   \XeKo at def@post at hang{#1}%
-  \XeKo at do@flush at toks
+  \XeKo at check@next at tok
   }
 \def\XeKo at startEX#1{%
   \let\XeKo at pre@hang\XeKo at undefined \let\XeKo at post@hang\XeKo at undefined
@@ -901,7 +955,7 @@
   \def\XeKo at currclass{15}%
   \XeKo at toks@{#1}%
   \XeKo at def@post at hang{#1}%
-  \XeKo at do@flush at toks
+  \XeKo at check@next at tok
   }
 \def\XeKo at startLD#1{%
   \let\XeKo at pre@hang\XeKo at undefined \let\XeKo at post@hang\XeKo at undefined
@@ -908,7 +962,7 @@
   \def\XeKo at currclass{16}%
   \XeKo at toks@{#1}%
   \XeKo at def@post at hang{#1}%
-  \XeKo at do@flush at toks
+  \XeKo at check@next at tok
   }
 \def\XeKo at startVC#1{%
   \let\XeKo at pre@hang\XeKo at undefined \let\XeKo at post@hang\XeKo at undefined
@@ -915,12 +969,13 @@
   \def\XeKo at currclass{17}%
   \XeKo at toks@{#1}%
   \XeKo at def@post at hang{#1}%
-  \XeKo at do@flush at toks
+  \XeKo at check@next at tok
   }
 
 \def\XeKo at maybe@gobble{%
   \ifdefined\XeKo at curr@font\expandafter\XeKo at maybe@gobble@\fi
   }
+\let\XeKo at do@maybe at gobble\XeKo at maybe@gobble
 \def\XeKo at maybe@gobble@{%
   \expandafter\expandafter\expandafter\@gobble
   }
@@ -933,7 +988,7 @@
       \or
       \or \unkern\unkern                      % SY HG
       \or \unkern\unkern \XeKo at latincjk       % AA HG
-      \or \unkern\unkern \XeKo at nobreak        % AO HG
+      \or \unkern\unkern                      % AO HG
       \or \unkern\unkern \XeKo at latincjk       % AC HG
       \or \unkern\unkern \XeKo at latincjk       % AP HG
       \or \unkern\unkern \XeKo at latincjk       % AM HG
@@ -959,7 +1014,7 @@
       \or
       \or \unkern\unkern                      % SY ID
       \or \unkern\unkern \XeKo at latincjk       % AA ID
-      \or \unkern\unkern \XeKo at nobreak        % AO ID
+      \or \unkern\unkern                      % AO ID
       \or \unkern\unkern \XeKo at latincjk       % AC ID
       \or \unkern\unkern \XeKo at latincjk       % AP ID
       \or \unkern\unkern \XeKo at latincjk       % AM ID
@@ -980,23 +1035,23 @@
 \XeTeXinterchartoks\XeTeXcharclassBoundary\XeTeXcharclassCJ{%
   \ifnum\lastnodetype=12 %
     \ifcase\lastkern
-      \or \unkern\unkern \XKinterhanjabreak   % HG CJ
-      \or \unkern\unkern \XKinterhanjabreak\XeKo at suppress@char at orphan \XeKo at maybe@gobble % ID CJ
+      \or \unkern\unkern \XKinterhanjabreak   \XeKo at suppress@linebreak % HG CJ
+      \or \unkern\unkern \XKinterhanjabreak   \XeKo at suppress@linebreak \XeKo at maybe@gobble % ID CJ
       \or
-      \or \unkern\unkern                      % SY CJ
-      \or \unkern\unkern \XeKo at latincjk       % AA CJ
-      \or \unkern\unkern \XeKo at nobreak        % AO CJ
-      \or \unkern\unkern \XeKo at latincjk       % AC CJ
-      \or \unkern\unkern \XeKo at latincjk       % AP CJ
-      \or \unkern\unkern \XeKo at latincjk       % AM CJ
-      \or \unkern\unkern \XKinterhanjabreak   % AH CJ
-      \or \unkern\unkern                      % OP CJ
-      \or \unkern\unkern \XeKo at halfhalf       % CL CJ
-      \or \unkern\unkern \XeKo at quarterquarter % MD CJ
-      \or \unkern\unkern \XeKo at halfzero       % FS CJ
-      \or \unkern\unkern \XeKo at halfhalf       % EX CJ
-      \or \unkern\unkern \XKinterhanjabreak   % LD CJ
-      \or \unkern\unkern \XeKo at quarterquarter % VC CJ
+      \or \unkern\unkern                                               % SY CJ
+      \or \unkern\unkern \XeKo at latincjk                                % AA CJ
+      \or \unkern\unkern                                               % AO CJ
+      \or \unkern\unkern \XeKo at latincjk                                % AC CJ
+      \or \unkern\unkern \XeKo at latincjk                                % AP CJ
+      \or \unkern\unkern \XeKo at latincjk                                % AM CJ
+      \or \unkern\unkern \XKinterhanjabreak                            % AH CJ
+      \or \unkern\unkern                                               % OP CJ
+      \or \unkern\unkern \XeKo at halfhalf       \XeKo at suppress@linebreak % CL CJ
+      \or \unkern\unkern \XeKo at quarterquarter \XeKo at suppress@linebreak % MD CJ
+      \or \unkern\unkern \XeKo at halfzero       \XeKo at suppress@linebreak % FS CJ
+      \or \unkern\unkern \XeKo at halfhalf       \XeKo at suppress@linebreak % EX CJ
+      \or \unkern\unkern \XKinterhanjabreak   \XeKo at suppress@linebreak % LD CJ
+      \or \unkern\unkern \XeKo at quarterquarter \XeKo at suppress@linebreak % VC CJ
     \fi
   \else\ifnum\lastnodetype=10 % mathoff
     \XeKo at postmath
@@ -1011,7 +1066,7 @@
       \or
       \or \unkern\unkern \XeKo at maybe@gobble % SY SY
       \or \unkern\unkern                      % AA SY
-      \or \unkern\unkern \XeKo at nobreak        % AO SY
+      \or \unkern\unkern                      % AO SY
       \or \unkern\unkern \XeKo at latincjk       % AC SY
       \or \unkern\unkern \XeKo at latincjk       % AP SY
       \or \unkern\unkern \XeKo at latincjk       % AM SY
@@ -1300,23 +1355,23 @@
 \XeTeXinterchartoks\XeTeXcharclassBoundary\XeTeXcharclassLD{%
   \ifnum\lastnodetype=12 %
     \ifcase\lastkern
-      \or \unkern\unkern                                   % HG LD
-      \or \unkern\unkern                                   % ID LD
+      \or \unkern\unkern \XKinterhanjabreak   \XeKo at suppress@linebreak % HG LD
+      \or \unkern\unkern \XKinterhanjabreak   \XeKo at suppress@linebreak % ID LD
       \or
-      \or \unkern\unkern                                   % SY LD
-      \or \unkern\unkern                                   % AA LD
-      \or \unkern\unkern                                   % AO LD
-      \or \unkern\unkern                                   % AC LD
-      \or \unkern\unkern                                   % AP LD
-      \or \unkern\unkern                                   % AM LD
-      \or \unkern\unkern                                   % AH LD
-      \or \unkern\unkern                                   % OP LD
-      \or \unkern\unkern \XeKo at nobreak\XeKo at halfhalf       % CL LD
-      \or \unkern\unkern \XeKo at nobreak\XeKo at quarterquarter % MD LD
-      \or \unkern\unkern \XeKo at nobreak\XeKo at halfzero       % FS LD
-      \or \unkern\unkern                                   % EX LD
+      \or \unkern\unkern                                               % SY LD
+      \or \unkern\unkern                                               % AA LD
+      \or \unkern\unkern                                               % AO LD
+      \or \unkern\unkern                                               % AC LD
+      \or \unkern\unkern                                               % AP LD
+      \or \unkern\unkern                                               % AM LD
+      \or \unkern\unkern                                               % AH LD
+      \or \unkern\unkern                                               % OP LD
+      \or \unkern\unkern \XeKo at halfhalf       \XeKo at suppress@linebreak % CL LD
+      \or \unkern\unkern \XeKo at quarterquarter \XeKo at suppress@linebreak % MD LD
+      \or \unkern\unkern \XeKo at halfzero       \XeKo at suppress@linebreak % FS LD
+      \or \unkern\unkern \XKinterhanjabreak   \XeKo at suppress@linebreak % EX LD
       \or \unkern\unkern \XeKo at maybe@gobble % LD LD
-      \or \unkern\unkern                                   % VC LD
+      \or \unkern\unkern \XKinterhanjabreak   \XeKo at suppress@linebreak % VC LD
     \fi
   \fi
   \XeKo at fontLD\XeKo at startLD
@@ -1375,10 +1430,23 @@
 \XeTeXinterchartoks\XeTeXcharclassBoundary\XeTeXcharclassCM{%
   \ifnum\lastnodetype=12 %
     \ifcase\lastkern
-    \or % HG
-      \unkern\unkern \expandafter\expandafter\expandafter\XeKo at startCM
-    \or % ID
-      \unkern\unkern \expandafter\expandafter\expandafter\XeKo at startCM
+    \or \unkern\unkern \expandafter\expandafter\expandafter\XeKo at startCM % HG
+    \or \unkern\unkern \expandafter\expandafter\expandafter\XeKo at startCM % ID
+    \or
+    \or \unkern\unkern \expandafter\expandafter\expandafter\XeKo at startCM % SY
+    \or \unkern\unkern \expandafter\expandafter\expandafter\XeKo at startCM % AA
+    \or \unkern\unkern \expandafter\expandafter\expandafter\XeKo at startCM % AO
+    \or \unkern\unkern \expandafter\expandafter\expandafter\XeKo at startCM % AC
+    \or \unkern\unkern \expandafter\expandafter\expandafter\XeKo at startCM % AP
+    \or \unkern\unkern \expandafter\expandafter\expandafter\XeKo at startCM % AM
+    \or \unkern\unkern \expandafter\expandafter\expandafter\XeKo at startCM % AH
+    \or \unkern\unkern \expandafter\expandafter\expandafter\XeKo at startCM % OP
+    \or \unkern\unkern \expandafter\expandafter\expandafter\XeKo at startCM % CL
+    \or \unkern\unkern \expandafter\expandafter\expandafter\XeKo at startCM % MD
+    \or \unkern\unkern \expandafter\expandafter\expandafter\XeKo at startCM % FS
+    \or \unkern\unkern \expandafter\expandafter\expandafter\XeKo at startCM % EX
+    \or \unkern\unkern \expandafter\expandafter\expandafter\XeKo at startCM % LD
+    \or \unkern\unkern \expandafter\expandafter\expandafter\XeKo at startCM % VC
     \fi
   \fi
   }
@@ -1385,9 +1453,20 @@
 \def\XeKo at startCM#1{%
   \begingroup
   \XeTeXinterchartokenstate\z@
-  \ifnum\lastnodetype=\@ne % hbox (charraise box)
-    \setbox\XeKo at box@=\lastbox
-    \XeKo at char@raise at start \unhbox\XeKo at box@ #1\XeKo at char@raise at stop
+  \ifnum\lastnodetype=\@ne % hbox
+    \ifdefined\xetexkocharraise
+      \setbox\XeKo at box@=\lastbox % charraise box
+      \XeKo at char@raise at start
+      \unhbox\XeKo at box@
+      \ifnum\lastnodetype=\@ne % hbox again
+        \XeKo at rebox@punctbox{#1}% compressed punctuation box
+      \else
+        #1\relax
+      \fi
+      \XeKo at char@raise at stop
+    \else
+      \XeKo at rebox@punctbox{#1}% compressed punctuation box
+    \fi
   \else
     #1\relax
   \fi
@@ -1394,6 +1473,19 @@
   \endgroup
   \XeKo at insert@kerns
   }
+\def\XeKo at rebox@punctbox#1{%
+  \ifnum 0\ifnum\XeKo at currclass>10 \ifnum\XeKo at currclass<15
+         1\fi\fi >\z@
+    \setbox\XeKo at box@=\lastbox
+    \hbox to.5em\bgroup
+      \unhbox\XeKo at box@
+      \XeKo at skip@\lastskip \unskip
+      #1\hskip\XeKo at skip@
+    \egroup
+  \else
+    #1\relax
+  \fi
+  }
 
 %%% josa selection
 \begingroup
@@ -1633,7 +1725,7 @@
   \let\XeKo at latincjk@classic  \inhibitglue
   \let\XeKo at latincjk@modern   \inhibitglue
   \let\XeKo at postmath@modern   \inhibitglue
-  \let\XeKo at suppress@char at orphan  \relax
+  \let\XeKo at suppress@linebreak    \relax
   \chardef\XeKo at cjk@ignorespaces  \z@
   \chardef\XeKo at compresspuncts    \z@
   }
@@ -1651,8 +1743,64 @@
 % no longer support these two \disable...
 \let\disableautojosa\relax
 \let\disablejamoautojosa\relax
-% no need xetexkoulemsupport any more
-\let\xetexkoulemsupport\relax
+% ulem support
+\ifcsname ver at xetexko.sty\endcsname
+  \def\xetexkoulemsupport{%
+    \ifdefined\UL at hook
+      \UL at hook\expandafter{%
+        \the\UL at hook
+        \let\XeKo at char@orphan\XeKo at flush@char at orphan
+        % uline 안에서 폰트가 변경되는 경우를 대비
+        \expandafter\def\expandafter\XeKo at hangul@selectfont\expandafter{%
+          \XeKo at hangul@selectfont
+          \ifdefined\XeKo at in@selectfont\else
+            \global\let\XeKo at temp@hangul at font\XeKo at hangul@font
+            \gdef\XeKo at UL@hangul at font{\let\XeKo at hangul@font\XeKo at temp@hangul at font}%
+            \aftergroup\aftergroup\aftergroup\XeKo at UL@hangul at font
+          \fi }%
+        \expandafter\def\expandafter\XeKo at hanja@selectfont\expandafter{%
+          \XeKo at hanja@selectfont
+          \ifdefined\XeKo at in@selectfont\else
+            \global\let\XeKo at temp@hanja at font\XeKo at hanja@font
+            \gdef\XeKo at UL@hanja at font{\let\XeKo at hanja@font\XeKo at temp@hanja at font}%
+            \aftergroup\aftergroup\aftergroup\XeKo at UL@hanja at font
+          \fi }%
+        \expandafter\def\expandafter\XeKo at latin@selectfont\expandafter{%
+          \XeKo at latin@selectfont
+          \ifdefined\XeKo at in@selectfont\else
+            \global\let\XeKo at temp@latin at font\XeKo at latin@font
+            \gdef\XeKo at UL@latin at font{\let\XeKo at latin@font\XeKo at temp@latin at font}%
+            \aftergroup\aftergroup\aftergroup\XeKo at UL@latin at font
+          \fi }%
+        }%
+    \fi
+    }
+\else
+  \let\XeKo at UL@hangul at patch\relax
+  \let\XeKo at UL@hanja at patch \relax
+  \def\xetexkoulemsupport{%
+    \ifdefined\UL at hook
+      \UL at hook\expandafter{%
+        \the\UL at hook
+        \let\XeKo at char@orphan\XeKo at flush@char at orphan
+        \def\XeKo at UL@hangul at patch{%
+          \global\let\XeKo at temp@hangul at font\XeKo at hangul@font
+          \global\let\XeKo at temp@latin at font\XeKo at latin@font
+          \gdef\XeKo at UL@hangul at font{%
+            \let\XeKo at hangul@font\XeKo at temp@hangul at font
+            \let\XeKo at latin@font\XeKo at temp@latin at font }%
+          \aftergroup\aftergroup\aftergroup\XeKo at UL@hangul at font }%
+        \def\XeKo at UL@hanja at patch{%
+          \global\let\XeKo at temp@hanja at font\XeKo at hanja@font
+          \global\let\XeKo at temp@latin at font\XeKo at latin@font
+          \gdef\XeKo at UL@hanja at font{%
+            \let\XeKo at hanja@font\XeKo at temp@hanja at font
+            \let\XeKo at latin@font\XeKo at temp@latin at font }%
+          \aftergroup\aftergroup\aftergroup\XeKo at UL@hanja at font }%
+        }%
+    \fi
+    }
+\fi
 
 % math hangul
 \def\setmathhangulblock#1#2{%
@@ -1669,7 +1817,14 @@
     \afterassignment\XeKo at hangulfont@setup\font\XeKo at hangul@font
     }
   \def\XeKo at hangulfont@setup{%
-    \expandafter\let\expandafter\XeKo at latin@font\the\font
+    \ifdefined\XeKo at curr@font
+      \ifx\XeKo at curr@font\XeKo at hangul@font\else
+      \ifx\XeKo at curr@font\XeKo at hanja@font\else
+        \expandafter\let\expandafter\XeKo at latin@font\the\font
+      \fi\fi
+    \else
+      \expandafter\let\expandafter\XeKo at latin@font\the\font
+    \fi
     \edef\XeKo at hangul@font{%
       \the\XeKo at hangul@font
       \ifdefined\xetexkohu \def\noexpand\xetexkohu{\xetexkohu}\fi
@@ -1676,6 +1831,7 @@
       \ifdefined\xetexkointerhchar \def\noexpand\xetexkointerhchar{\xetexkointerhchar}\fi
       \ifdefined\xetexkocharraise \def\noexpand\xetexkocharraise{\xetexkocharraise}\fi
       }%
+    \XeKo at UL@hangul at patch
     }
   \protected\def\sethangulfont#1{%
     \def\@tempa{#1}%
@@ -1685,7 +1841,15 @@
     }
   \def\XeKo at sethangulfont@setup{%
     \expandafter\edef\@tempa{%
-      \let\noexpand\XeKo at latin@font=\the\font
+      \let\noexpand\XeKo at latin@font=%
+        \ifdefined\XeKo at curr@font
+          \ifx\XeKo at curr@font\XeKo at hangul@font \the\XeKo at latin@font \else
+          \ifx\XeKo at curr@font\XeKo at hanja@font  \the\XeKo at latin@font \else
+            \the\font
+          \fi\fi
+        \else
+          \the\font
+        \fi
       \def\noexpand\XeKo at hangul@font{%
         \csname XeKo at hangul@font@\@tempb\endcsname
         \ifdefined\xetexkohu \def\noexpand\xetexkohu{\xetexkohu}\fi
@@ -1692,6 +1856,7 @@
         \ifdefined\xetexkointerhchar \def\noexpand\xetexkointerhchar{\xetexkointerhchar}\fi
         \ifdefined\xetexkocharraise \def\noexpand\xetexkocharraise{\xetexkocharraise}\fi
         }%
+      \noexpand\XeKo at UL@hangul at patch
       }%
     }
   \protected\def\hanjafont{%
@@ -1698,7 +1863,14 @@
     \afterassignment\XeKo at hanjafont@setup\font\XeKo at hanja@font
     }
   \def\XeKo at hanjafont@setup{%
-    \expandafter\let\expandafter\XeKo at latin@font\the\font
+    \ifdefined\XeKo at curr@font
+      \ifx\XeKo at curr@font\XeKo at hangul@font\else
+      \ifx\XeKo at curr@font\XeKo at hanja@font\else
+        \expandafter\let\expandafter\XeKo at latin@font\the\font
+      \fi\fi
+    \else
+      \expandafter\let\expandafter\XeKo at latin@font\the\font
+    \fi
     \edef\XeKo at hanja@font{%
       \the\XeKo at hanja@font
       \ifdefined\xetexkohu \def\noexpand\xetexkohu{\xetexkohu}\fi
@@ -1705,6 +1877,7 @@
       \ifdefined\xetexkointerhchar \def\noexpand\xetexkointerhchar{\xetexkointerhchar}\fi
       \ifdefined\xetexkocharraise \def\noexpand\xetexkocharraise{\xetexkocharraise}\fi
       }%
+    \XeKo at UL@hanja at patch
     }
   \protected\def\sethanjafont#1{%
     \def\@tempa{#1}%
@@ -1714,7 +1887,15 @@
     }
   \def\XeKo at sethanjafont@setup{%
     \expandafter\edef\@tempa{%
-      \let\noexpand\XeKo at latin@font=\the\font
+      \let\noexpand\XeKo at latin@font=%
+        \ifdefined\XeKo at curr@font
+          \ifx\XeKo at curr@font\XeKo at hangul@font \the\XeKo at latin@font \else
+          \ifx\XeKo at curr@font\XeKo at hanja@font  \the\XeKo at latin@font \else
+            \the\font
+          \fi\fi
+        \else
+          \the\font
+        \fi
       \def\noexpand\XeKo at hanja@font{%
         \csname XeKo at hanja@font@\@tempb\endcsname
         \ifdefined\xetexkohu \def\noexpand\xetexkohu{\xetexkohu}\fi
@@ -1721,6 +1902,7 @@
         \ifdefined\xetexkointerhchar \def\noexpand\xetexkointerhchar{\xetexkointerhchar}\fi
         \ifdefined\xetexkocharraise \def\noexpand\xetexkocharraise{\xetexkocharraise}\fi
         }%
+      \noexpand\XeKo at UL@hanja at patch
       }%
     }
   \protected\def\hanjabyhangulfont{\let\XeKo at hanja@font\XeKo at hangul@font }
@@ -2257,6 +2439,7 @@
   \ifdefined\XeKo at hanja@font\else
     \let\XeKo at hanja@font    \XeKo at hangul@font
   \fi
+  \@ifpackageloaded{ulem}{\xetexkoulemsupport}{}
   \@ifpackageloaded{hyperref}{\pdfstringdefDisableCommands{%
     \let\hangulalphs\relax
     \let\hangulnums\relax



More information about the tex-live-commits mailing list.