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.