From daa6873fe1d06863ffc2980970295b39071f02ba Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sat, 19 Jun 2021 03:01:48 +0000 Subject: CTAN sync 202106190301 --- macros/xetex/generic/xetexko/ChangeLog | 7 + macros/xetex/generic/xetexko/README | 7 +- macros/xetex/generic/xetexko/xetexko-doc.pdf | Bin 254038 -> 255904 bytes macros/xetex/generic/xetexko/xetexko-doc.tex | 13 +- macros/xetex/generic/xetexko/xetexko.sty | 294 ++++++++++++++------------- 5 files changed, 171 insertions(+), 150 deletions(-) (limited to 'macros/xetex') diff --git a/macros/xetex/generic/xetexko/ChangeLog b/macros/xetex/generic/xetexko/ChangeLog index 486d2ddf12..f1b41e9cef 100644 --- a/macros/xetex/generic/xetexko/ChangeLog +++ b/macros/xetex/generic/xetexko/ChangeLog @@ -1,3 +1,10 @@ +2021-06-18 Dohyun Kim + + Version 3.7 + + * fix position of dotemph regarding hangul tone marks + * enhance compatibility with ulem/ruby packages + 2021-06-10 Dohyun Kim Version 3.6 diff --git a/macros/xetex/generic/xetexko/README b/macros/xetex/generic/xetexko/README index 8546016217..fcec961996 100644 --- a/macros/xetex/generic/xetexko/README +++ b/macros/xetex/generic/xetexko/README @@ -1,4 +1,4 @@ -XeTeX-ko Package version 3.6 (2021/06/10) +XeTeX-ko Package version 3.7 (2021/06/18) ========================================= XeTeX-ko is a macro package for Xe(La)TeX which supports typesetting @@ -124,8 +124,9 @@ Emphasise Hangul or Hanja by putting dot above. \begin{vertical}{} \end{vertical} This environment makes a vbox vertically typeset. is an -argument to indicate the box height. For vertical typesetting -of entire document, use the command \verticaltypesetting instead. +argument to indicate the box height. When is \empty, an hbox +with natural height will be made. For vertical typesetting of +entire document, use the command \verticaltypesetting instead. \은 \는 \이 \가 \을 \를 \와 \과 \로 \으로 \라 \이라 Commands for automatic Josa selection. Unlike those of cjk-ko diff --git a/macros/xetex/generic/xetexko/xetexko-doc.pdf b/macros/xetex/generic/xetexko/xetexko-doc.pdf index 654bedda95..e8c210813e 100644 Binary files a/macros/xetex/generic/xetexko/xetexko-doc.pdf and b/macros/xetex/generic/xetexko/xetexko-doc.pdf differ diff --git a/macros/xetex/generic/xetexko/xetexko-doc.tex b/macros/xetex/generic/xetexko/xetexko-doc.tex index fed8d24e1b..226dc96105 100644 --- a/macros/xetex/generic/xetexko/xetexko-doc.tex +++ b/macros/xetex/generic/xetexko/xetexko-doc.tex @@ -74,7 +74,7 @@ \title{\xetexko\ 간단 매뉴얼} \author{Dohyun Kim \normalsize <\texttt{nomos at ktug org}> \and \normalsize <\url{http://github.com/dohyunkim/xetexko}>} -\date{Version 3.6\quad 2021/06/10} +\date{Version 3.7\quad 2021/06/18} \maketitle \begin{quote}\small @@ -285,7 +285,11 @@ fontspec과 마찬가지로 각 명령의 끝에 `s'를 붙여도 된다. \item[CharRaise, charraise]\quad 글자의 {\addhangulfontfeature{charraise=.5ex}수직 위치}를 조절한다. - 기본값은 \verb|0pt|. + 기본값은 \verb|0pt|.% + \footnote{% + 세로쓰기에서는 이 옵션의 값을 고정길이(가령 pt 단위)로 주어야 + 크기가 다른 폰트들 간에 중앙정렬이 이루어진다. + } 고정폭 글꼴에서도 이 옵션은 작동한다. \end{description} \vernote{3.0}부터는 다음 옵션들이 아무 효과도 가져오지 않게 @@ -690,7 +694,10 @@ microtype 패키지의 protrusion 기능이 잘 작동하지 않는 경우가 \LaTeX 에서는 \uwave{ulem 패키지}를 로드하는 것만으로 자동 지원된다. \cs{xetexkoulemsupport} 명령이 \vernote{3.3}부터 부활하였으므로 -플레인텍에서는 이 명령을 명시해야 할 경우가 있을 것이다. +플레인텍에서는 이 명령을 명시해야 할 경우가 있을 것이다.% +\footnote{% + ulem 명령어의 인자 안에서도 \cs{dotemph} 명령을 쓸 수 있다. +} %\hfill \fboxsep=-\fboxrule \fbox{\vbox to1em{\hbox to1em{\hss}\vss}} diff --git a/macros/xetex/generic/xetexko/xetexko.sty b/macros/xetex/generic/xetexko/xetexko.sty index e82c85aabd..edd8221c8c 100644 --- a/macros/xetex/generic/xetexko/xetexko.sty +++ b/macros/xetex/generic/xetexko/xetexko.sty @@ -16,7 +16,7 @@ \ifdefined\ProvidesPackage \NeedsTeXFormat{LaTeX2e}[2021/06/01] - \ProvidesPackage{xetexko}[2021/06/10 v3.6 typesetting Korean with XeTeX] + \ProvidesPackage{xetexko}[2021/06/18 v3.7 typesetting Korean with XeTeX] \else \ifdefined\@tempcnta\else \newcount\@tempcnta \fi \ifdefined\@sptoken \else @@ -598,23 +598,22 @@ \chardef\XeKo@cjk@ignorespaces\z@ \protected\def\removeclassicspaces{\chardef\XeKo@cjk@ignorespaces\@ne} -\expandafter\let\csname XeKo@1@class\endcsname =\XeTeXcharclassHG -\expandafter\let\csname XeKo@2@class\endcsname =\XeTeXcharclassID -% 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 +\expandafter\let\csname XeKo@6@class\endcsname =\XeTeXcharclassHG +\expandafter\let\csname XeKo@7@class\endcsname =\XeTeXcharclassID +\expandafter\let\csname XeKo@8@class\endcsname =\XeTeXcharclassSY +\expandafter\let\csname XeKo@9@class\endcsname =\XeTeXcharclassAA +\expandafter\let\csname XeKo@10@class\endcsname=\XeTeXcharclassAO +\expandafter\let\csname XeKo@11@class\endcsname=\XeTeXcharclassAC +\expandafter\let\csname XeKo@12@class\endcsname=\XeTeXcharclassAP +\expandafter\let\csname XeKo@13@class\endcsname=\XeTeXcharclassAM +\expandafter\let\csname XeKo@14@class\endcsname=\XeTeXcharclassAH +\expandafter\let\csname XeKo@15@class\endcsname=\XeTeXcharclassOP +\expandafter\let\csname XeKo@16@class\endcsname=\XeTeXcharclassCL +\expandafter\let\csname XeKo@17@class\endcsname=\XeTeXcharclassMD +\expandafter\let\csname XeKo@18@class\endcsname=\XeTeXcharclassFS +\expandafter\let\csname XeKo@19@class\endcsname=\XeTeXcharclassEX +\expandafter\let\csname XeKo@20@class\endcsname=\XeTeXcharclassLD +\expandafter\let\csname XeKo@21@class\endcsname=\XeTeXcharclassVC \newtoks\XeKo@toks@ \newtoks\XeKo@toks@ii @@ -628,7 +627,7 @@ \ifnum\XeKo@charslot="FFFF \expandafter\XeKo@flush@toks \else - \ifnum 0\ifnum\XeKo@currclass>4 \ifnum\XeKo@currclass<11 % AA..AH + \ifnum 0\ifnum\XeKo@currclass>8 \ifnum\XeKo@currclass<15 % AA..AH 1\fi\fi >\z@ \expandafter\expandafter\expandafter\XeKo@check@next@tok@latin \else % HG ID @@ -657,18 +656,18 @@ \fi } \def\XeKo@addto@toks#1{% - \ifnum\XeKo@currclass=5 % AA + \ifnum\XeKo@currclass=9 % AA \global\let\XeKo@josatoken=#1\relax \else\ifnum\XeTeXcharclass\XeKo@charslot=\XeTeXcharclassJJ \global\let\XeKo@josatoken=#1\relax - \else\ifnum\XeKo@currclass=4 % SY + \else\ifnum\XeKo@currclass=8 % SY \global\let\XeKo@josatoken=#1\relax \fi\fi\fi \XeKo@toks@\expandafter{\the\XeKo@toks@ #1}% \XeKo@check@next@tok } \def\XeKo@flush@toks{% - \ifnum\XeKo@currclass<\thr@@ + \ifnum\XeKo@currclass<8 % \XeKo@toks@ii{}\expandafter\XeKo@char@orphan % HG, ID \else \expandafter\XeKo@do@flush@toks @@ -729,20 +728,20 @@ \XeKo@pre@hang % hanging punctuations \fi \XeKo@char@raise@start % charraise - \ifnum\XeKo@currclass=\@ne - \XeKo@everyhangul{\the\XeKo@toks@}% everyhangul + \ifnum\XeKo@currclass=6 % + \XeKo@everyhangul{\XeKo@maybe@dotemph \the\XeKo@toks@}% everyhangul \else - \ifnum\XeKo@currclass=\tw@ - \XeKo@everyhanja{\the\XeKo@toks@}% everyhanja + \ifnum\XeKo@currclass=7 % + \XeKo@everyhanja{\XeKo@maybe@dotemph \the\XeKo@toks@}% everyhanja \else \ifnum\XeKo@compresspuncts=\@ne - \ifnum\XeKo@currclass=11 % OP + \ifnum\XeKo@currclass=15 % OP \hbox to.5em\bgroup\hss \the\XeKo@toks@ \egroup - \else\ifnum\XeKo@currclass=12 % CL + \else\ifnum\XeKo@currclass=16 % CL \hbox to.5em\bgroup \the\XeKo@toks@ \hss\egroup - \else\ifnum\XeKo@currclass=13 % MD + \else\ifnum\XeKo@currclass=17 % MD \hbox to.5em\bgroup\hss \the\XeKo@toks@ \hss\egroup - \else\ifnum\XeKo@currclass=14 % FS + \else\ifnum\XeKo@currclass=18 % FS \hbox to.5em\bgroup \the\XeKo@toks@ \hss\egroup \else \the\XeKo@toks@ @@ -773,8 +772,8 @@ } % remove space \def\XeKo@maybe@ignorespaces{% - \ifnum 0\ifnum\XeKo@currclass<5 1\else % HG ID SY - \ifnum\XeKo@currclass>10 1\fi\fi % CJK punctuations + \ifnum 0\ifnum\XeKo@currclass<9 1\else % HG ID SY + \ifnum\XeKo@currclass>14 1\fi\fi % CJK punctuations >\z@ \expandafter\XeKo@ignorespaces@iv \fi @@ -810,7 +809,7 @@ \ifnum\XeKo@hangingpuncts=\@ne \ifcsname XeKo@hanging@ratio@\number`#1\endcsname \ifnum 0\ifnum\XeKo@compresspuncts=\@ne - \ifnum\XeKo@currclass=11 % OP + \ifnum\XeKo@currclass=15 % OP 1\fi\fi >\z@ \XeKo@dimen@=.5em \else @@ -829,8 +828,8 @@ \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 + \ifnum\XeKo@currclass>15 % + \ifnum\XeKo@currclass<19 % CL MD FS 1\fi\fi\fi >\z@ \XeKo@dimen@=.5em \else @@ -868,14 +867,14 @@ \def\XeKo@startHG#1{% \global\let\XeKo@josatoken=#1\relax \let\XeKo@pre@hang\XeKo@undefined \let\XeKo@post@hang\XeKo@undefined - \def\XeKo@currclass{1}% + \def\XeKo@currclass{6}% \XeKo@toks@{#1}% \XeKo@check@next@tok } \def\XeKo@startID#1{% \global\let\XeKo@josatoken=#1\relax \let\XeKo@pre@hang\XeKo@undefined \let\XeKo@post@hang\XeKo@undefined - \def\XeKo@currclass{2}% + \def\XeKo@currclass{7}% \XeKo@toks@{#1}% \ifdefined\fallbackhanjafont \iffontchar\font`#1\else @@ -886,55 +885,55 @@ } \def\XeKo@startCJ#1{% \let\XeKo@pre@hang\XeKo@undefined \let\XeKo@post@hang\XeKo@undefined - \def\XeKo@currclass{2}% same as ID + \def\XeKo@currclass{7}% same as ID \XeKo@toks@{#1}% \XeKo@check@next@tok } \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{4}% + \def\XeKo@currclass{8}% \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{5}% + \def\XeKo@currclass{9}% \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{6}% + \def\XeKo@currclass{10}% \XeKo@toks@{#1}% \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{7}% + \def\XeKo@currclass{11}% \XeKo@toks@{#1}% \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{8}% + \def\XeKo@currclass{12}% \XeKo@toks@{#1}% \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{9}% + \def\XeKo@currclass{13}% \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{10}% + \def\XeKo@currclass{14}% \XeKo@toks@{#1}% \ifnum`#1=\hyphenchar\font \else % exclude hyphen char \XeKo@def@post@hang{#1}% @@ -943,49 +942,49 @@ } \def\XeKo@startOP#1{% \let\XeKo@pre@hang\XeKo@undefined \let\XeKo@post@hang\XeKo@undefined - \def\XeKo@currclass{11}% + \def\XeKo@currclass{15}% \XeKo@toks@{#1}% \XeKo@def@pre@hang{#1}% \XeKo@check@next@tok } \def\XeKo@startCL#1{% \let\XeKo@pre@hang\XeKo@undefined \let\XeKo@post@hang\XeKo@undefined - \def\XeKo@currclass{12}% + \def\XeKo@currclass{16}% \XeKo@toks@{#1}% \XeKo@def@post@hang{#1}% \XeKo@check@next@tok } \def\XeKo@startMD#1{% \let\XeKo@pre@hang\XeKo@undefined \let\XeKo@post@hang\XeKo@undefined - \def\XeKo@currclass{13}% + \def\XeKo@currclass{17}% \XeKo@toks@{#1}% \XeKo@def@post@hang{#1}% \XeKo@check@next@tok } \def\XeKo@startFS#1{% \let\XeKo@pre@hang\XeKo@undefined \let\XeKo@post@hang\XeKo@undefined - \def\XeKo@currclass{14}% + \def\XeKo@currclass{18}% \XeKo@toks@{#1}% \XeKo@def@post@hang{#1}% \XeKo@check@next@tok } \def\XeKo@startEX#1{% \let\XeKo@pre@hang\XeKo@undefined \let\XeKo@post@hang\XeKo@undefined - \def\XeKo@currclass{15}% + \def\XeKo@currclass{19}% \XeKo@toks@{#1}% \XeKo@def@post@hang{#1}% \XeKo@check@next@tok } \def\XeKo@startLD#1{% \let\XeKo@pre@hang\XeKo@undefined \let\XeKo@post@hang\XeKo@undefined - \def\XeKo@currclass{16}% + \def\XeKo@currclass{20}% \XeKo@toks@{#1}% \XeKo@def@post@hang{#1}% \XeKo@check@next@tok } \def\XeKo@startVC#1{% \let\XeKo@pre@hang\XeKo@undefined \let\XeKo@post@hang\XeKo@undefined - \def\XeKo@currclass{17}% + \def\XeKo@currclass{21}% \XeKo@toks@{#1}% \XeKo@def@post@hang{#1}% \XeKo@check@next@tok @@ -994,9 +993,9 @@ \XeTeXinterchartoks\XeTeXcharclassBoundary\XeTeXcharclassHG{% \ifnum\lastnodetype=12 % \ifcase\lastkern + \or \XKinterhanjabreak \or \or \or \or % 1: ruby를 한자처럼 취급 \or \unkern\unkern \XKinterhangulbreak % HG HG \or \unkern\unkern \XKinterhanjabreak % ID HG - \or \or \unkern\unkern % SY HG \or \unkern\unkern \XeKo@latincjk % AA HG \or \unkern\unkern % AO HG @@ -1020,9 +1019,9 @@ \XeTeXinterchartoks\XeTeXcharclassBoundary\XeTeXcharclassID{% \ifnum\lastnodetype=12 % \ifcase\lastkern + \or \XKinterhanjabreak \or \or \or \or \or \unkern\unkern \XKinterhanjabreak % HG ID \or \unkern\unkern \XKinterhanjabreak % ID ID - \or \or \unkern\unkern % SY ID \or \unkern\unkern \XeKo@latincjk % AA ID \or \unkern\unkern % AO ID @@ -1046,9 +1045,9 @@ \XeTeXinterchartoks\XeTeXcharclassBoundary\XeTeXcharclassCJ{% \ifnum\lastnodetype=12 % \ifcase\lastkern + \or \XKinterhanjabreak \XeKo@suppress@linebreak \or \or \or \or \or \unkern\unkern \XKinterhanjabreak \XeKo@suppress@linebreak % HG CJ \or \unkern\unkern \XKinterhanjabreak \XeKo@suppress@linebreak % ID CJ - \or \or \unkern\unkern % SY CJ \or \unkern\unkern \XeKo@latincjk % AA CJ \or \unkern\unkern % AO CJ @@ -1072,9 +1071,9 @@ \XeTeXinterchartoks\XeTeXcharclassBoundary\XeTeXcharclassSY{% \ifnum\lastnodetype=12 % \ifcase\lastkern + \or \or \or \or \or \or \unkern\unkern % HG SY \or \unkern\unkern % ID SY - \or \or \unkern\unkern % SY SY \or \unkern\unkern % AA SY \or \unkern\unkern % AO SY @@ -1098,9 +1097,9 @@ \XeTeXinterchartoks\XeTeXcharclassBoundary\XeTeXcharclassAA{% \ifnum\lastnodetype=12 % \ifcase\lastkern + \or \XeKo@latincjk \or \or \or \or \or \unkern\unkern \XeKo@latincjk % HG AA \or \unkern\unkern \XeKo@latincjk % ID AA - \or \or \unkern\unkern % SY AA \or \unkern\unkern % AA AA \or \unkern\unkern % AO AA @@ -1122,9 +1121,9 @@ \XeTeXinterchartoks\XeTeXcharclassBoundary\XeTeXcharclassAO{% \ifnum\lastnodetype=12 % \ifcase\lastkern + \or \XeKo@latincjk \or \or \or \or \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 % AO AO @@ -1146,9 +1145,9 @@ \XeTeXinterchartoks\XeTeXcharclassBoundary\XeTeXcharclassAC{% \ifnum\lastnodetype=12 % \ifcase\lastkern + \or \or \or \or \or \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 @@ -1170,9 +1169,9 @@ \XeTeXinterchartoks\XeTeXcharclassBoundary\XeTeXcharclassAP{% \ifnum\lastnodetype=12 % \ifcase\lastkern + \or \or \or \or \or \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 @@ -1194,9 +1193,9 @@ \XeTeXinterchartoks\XeTeXcharclassBoundary\XeTeXcharclassAM{% \ifnum\lastnodetype=12 % \ifcase\lastkern + \or \XeKo@nobreak\XeKo@latincjk \or \or \or \or \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 @@ -1218,9 +1217,9 @@ \XeTeXinterchartoks\XeTeXcharclassBoundary\XeTeXcharclassAH{% \ifnum\lastnodetype=12 % \ifcase\lastkern + \or \XeKo@nobreak \or \or \or \or \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 @@ -1242,9 +1241,9 @@ \XeTeXinterchartoks\XeTeXcharclassBoundary\XeTeXcharclassOP{% \ifnum\lastnodetype=12 % \ifcase\lastkern + \or \XeKo@halfhalf \or \or \or \or \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 @@ -1268,9 +1267,9 @@ \XeTeXinterchartoks\XeTeXcharclassBoundary\XeTeXcharclassCL{% \ifnum\lastnodetype=12 % \ifcase\lastkern + \or \or \or \or \or \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 @@ -1292,9 +1291,9 @@ \XeTeXinterchartoks\XeTeXcharclassBoundary\XeTeXcharclassMD{% \ifnum\lastnodetype=12 % \ifcase\lastkern + \or \XeKo@nobreak\XeKo@quarterquarter \or \or \or \or \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 @@ -1318,9 +1317,9 @@ \XeTeXinterchartoks\XeTeXcharclassBoundary\XeTeXcharclassFS{% \ifnum\lastnodetype=12 % \ifcase\lastkern + \or \or \or \or \or \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 @@ -1342,9 +1341,9 @@ \XeTeXinterchartoks\XeTeXcharclassBoundary\XeTeXcharclassEX{% \ifnum\lastnodetype=12 % \ifcase\lastkern + \or \or \or \or \or \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 @@ -1366,9 +1365,9 @@ \XeTeXinterchartoks\XeTeXcharclassBoundary\XeTeXcharclassLD{% \ifnum\lastnodetype=12 % \ifcase\lastkern + \or \XKinterhanjabreak \XeKo@suppress@linebreak \or \or \or \or \or \unkern\unkern \XKinterhanjabreak \XeKo@suppress@linebreak % HG LD \or \unkern\unkern \XKinterhanjabreak \XeKo@suppress@linebreak % ID LD - \or \or \unkern\unkern % SY LD \or \unkern\unkern % AA LD \or \unkern\unkern % AO LD @@ -1390,9 +1389,9 @@ \XeTeXinterchartoks\XeTeXcharclassBoundary\XeTeXcharclassVC{% \ifnum\lastnodetype=12 % \ifcase\lastkern + \or \or \or \or \or \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 @@ -1418,7 +1417,7 @@ % !!!!! 이 경우 \everyhangul 등이 제대로 작동 않는다 !!!!! \XeTeXinterchartoks\XeTeXcharclassBoundary\XeTeXcharclassJJ{% \ifnum\lastnodetype=12 % - \ifnum\lastkern=\@ne + \ifnum\lastkern=6 % \unkern\unkern \expandafter\expandafter\expandafter\XeKo@startJJ \fi @@ -1441,9 +1440,9 @@ \XeTeXinterchartoks\XeTeXcharclassBoundary\XeTeXcharclassCM{% \ifnum\lastnodetype=12 % \ifcase\lastkern + \or \or \or \or \or \or \unkern\unkern \expandafter\expandafter\expandafter\XeKo@startCM % HG \or \unkern\unkern \expandafter\expandafter\expandafter\XeKo@startCM % ID - \or \or \unkern\unkern \expandafter\expandafter\expandafter\XeKo@startCM % SY \or \unkern\unkern \expandafter\expandafter\expandafter\XeKo@startCM % AA \or \unkern\unkern \expandafter\expandafter\expandafter\XeKo@startCM % AO @@ -1485,7 +1484,7 @@ \XeKo@insert@kerns } \def\XeKo@rebox@punctbox#1{% - \ifnum 0\ifnum\XeKo@currclass>10 \ifnum\XeKo@currclass<15 + \ifnum 0\ifnum\XeKo@currclass>14 \ifnum\XeKo@currclass<19 % OP .. FS 1\fi\fi >\z@ \setbox\XeKo@box@=\lastbox \hbox to.5em\bgroup @@ -1684,22 +1683,46 @@ \fi \newbox\XeKo@dotemph@box +\let\XeKo@maybe@dotemph\relax + \protected\def\dotemph#1{% \leavevmode + \setbox\XeKo@dotemph@box\hbox{\raise\dotemphraise\hbox{\dotemphchar}}% \begingroup - \setbox\XeKo@dotemph@box\hbox{\dotemphchar}% - \edef\XeKo@flush@char@orphan{% - \unexpanded{% - \edef\XeKo@tempa{% - \XeKo@toks@{% - \setbox\z@\hbox{\the\XeKo@toks@}% - \setbox\tw@\hbox to\wd\z@{\hss\unhcopy\XeKo@dotemph@box\hss}\ht\tw@\z@\dp\tw@\z@ - \rlap{\raise\dotemphraise\box\tw@}\the\XeKo@toks@ }% - }\XeKo@tempa }% - \unexpanded\expandafter{\XeKo@flush@char@orphan}}% + \let\XeKo@maybe@dotemph\XeKo@do@dotemph #1\relax \endgroup - } +} +\def\XeKo@do@dotemph{% + \XeKo@check@hangulTM % 방점 너비를 감안하자 + \setbox\z@\hbox{\the\XeKo@toks@}% + \setbox\tw@\hbox to\wd\z@{% + \hss + \ifnum\XeKo@has@hangulTM>\z@ + \kern\fontcharwd\font\XeKo@has@hangulTM + \fi + \unhcopy\XeKo@dotemph@box + \hss + }\wd\tw@\z@ \ht\tw@\z@ \dp\tw@\z@ + \box\tw@ +} +\def\XeKo@check@hangulTM{% + \chardef\XeKo@has@hangulTM\z@ + \expandafter\XeKo@check@hangulTM@e \the\XeKo@toks@ ^^^^302e\relax + \ifnum\XeKo@has@hangulTM=\z@ + \expandafter\XeKo@check@hangulTM@f \the\XeKo@toks@ ^^^^302f\relax + \fi +} +\def\XeKo@check@hangulTM@e#1^^^^302e#2\relax{% + \ifx\empty#2\empty \else + \chardef\XeKo@has@hangulTM="302E + \fi +} +\def\XeKo@check@hangulTM@f#1^^^^302f#2\relax{% + \ifx\empty#2\empty \else + \chardef\XeKo@has@hangulTM="302F + \fi +} % other commands \let\enablecjksymbolspacing\compresspunctuations @@ -1755,62 +1778,49 @@ \let\disableautojosa\relax \let\disablejamoautojosa\relax % ulem support -\ifcsname ver@xetexko.sty\endcsname - \def\xetexkoulemsupport{% - \ifdefined\UL@hook - \UL@hook\expandafter{\the\UL@hook - % uline 안에서 폰트가 변경되는 경우를 대비 - \expandafter\def\expandafter\XeKo@hangul@selectfont\expandafter{% - \XeKo@hangul@selectfont - \ifdefined\XeKo@in@selectfont\else - \xdef\XeKo@UL@hangul@font{% - \def\noexpand\XeKo@hangul@font{\unexpanded\expandafter{\XeKo@hangul@font}}}% - \aftergroup\aftergroup\aftergroup\XeKo@UL@hangul@font - % 여기서 라틴폰트 지정을 보존한다. - \global\let\XeKo@UL@latin@font\font@name - \aftergroup\aftergroup\aftergroup\XeKo@UL@latin@font - \fi }% - \expandafter\def\expandafter\XeKo@hanja@selectfont\expandafter{% - \XeKo@hanja@selectfont - \ifdefined\XeKo@in@selectfont\else - \xdef\XeKo@UL@hanja@font{% - \def\noexpand\XeKo@hanja@font{\unexpanded\expandafter{\XeKo@hanja@font}}}% - \aftergroup\aftergroup\aftergroup\XeKo@UL@hanja@font - \fi }% - }% - \fi - } -\else - \let\XeKo@UL@hangul@patch\relax - \let\XeKo@UL@hanja@patch \relax - \def\xetexkoulemsupport{% - \ifdefined\UL@hook - \UL@hook\expandafter{\the\UL@hook - % uline 안에서 폰트가 변경되는 경우를 대비 - \def\XeKo@UL@hangul@patch{% - \xdef\XeKo@UL@hangul@font{% - \def\noexpand\XeKo@hangul@font{\unexpanded\expandafter{\XeKo@hangul@font}}}% - \aftergroup\aftergroup\aftergroup\XeKo@UL@hangul@font - \XeKo@UL@latin@patch - }% - \def\XeKo@UL@hanja@patch{% - \xdef\XeKo@UL@hanja@font{% - \def\noexpand\XeKo@hanja@font{\unexpanded\expandafter{\XeKo@hanja@font}}}% - \aftergroup\aftergroup\aftergroup\XeKo@UL@hanja@font - \XeKo@UL@latin@patch - }% - % uline 안에서 폰트 지시는 라틴폰트, 한글폰트 순서로 해야 라틴폰트가 올바로 동작함 - \def\XeKo@UL@latin@patch{% - \ifnum 0\expandafter\ifx\the\font\XeKo@raw@hangul@font 1\else - \expandafter\ifx\the\font\XeKo@raw@hanja@font 1\fi\fi =\z@ - \global\expandafter\let\expandafter\XeKo@UL@latin@font\the\font - \aftergroup\aftergroup\aftergroup\XeKo@UL@latin@font - \fi - }% - }% +\protected\def\XeKo@UL@dotemph#1{% + \ifx\ \LA@space\else \UL@stop\fi + \leavevmode + \setbox\XeKo@dotemph@box\hbox{\raise\dotemphraise\hbox{\dotemphchar}}% + \begingroup + \let\XeKo@maybe@dotemph\XeKo@do@dotemph + \XeKo@UL@dotemph@#1 ^^^^ffff \relax + \endgroup + \ifx\ \LA@space\else \UL@start\fi +} +\def\XeKo@UL@dotemph@#1 {% + \ifx^^^^ffff#1\relax + \unskip\unskip\unskip + \else + \ifx\ \LA@space + #1\ % + \else + \UL@start + #1\ % + \UL@stop \fi - } -\fi + \expandafter\XeKo@UL@dotemph@ + \fi +} +\def\xetexkoulemsupport{% + \let\XeKo@UL@stop\UL@stop + \UL@hook\expandafter{\the\UL@hook + \let\dotemph\XeKo@UL@dotemph + % uline 안에서 폰트가 변경되는 경우를 대비 + \def\UL@stop{% + \global\let\XeKo@UL@tmp@latinfont \XeKo@latin@font + \global\let\XeKo@UL@tmp@hangulfont \XeKo@hangul@font + \global\let\XeKo@UL@tmp@hanjafont \XeKo@hanja@font + \global\let\XeKo@UL@tmp@rawhangulfont \XeKo@raw@hangul@font + \global\let\XeKo@UL@tmp@rawhanjafont \XeKo@raw@hanja@font + \expandafter \XeKo@UL@stop \the\font + \let\XeKo@latin@font \XeKo@UL@tmp@latinfont + \let\XeKo@hangul@font \XeKo@UL@tmp@hangulfont + \let\XeKo@hanja@font \XeKo@UL@tmp@hanjafont + \let\XeKo@raw@hangul@font \XeKo@UL@tmp@rawhangulfont + \let\XeKo@raw@hanja@font \XeKo@UL@tmp@rawhanjafont + }% +}} % math hangul \def\setmathhangulblock#1#2{% @@ -1829,7 +1839,7 @@ \unexpanded\expandafter{\plainoutput}}% \def\pagebody{\setbox\z@\vbox to\hsize{\boxmaxdepth=\maxdepth \pagecontents}% \XeKo@rotatebox\z@\box\z@}% - \maxdepth\z@ \typesetvertical + \typesetvertical \let\verticaltypesetting\relax % prevent multiple running } \def\beginverticaltypesetting{\vfill\supereject \begingroup \verticaltypesetting} @@ -1845,7 +1855,6 @@ \ifdefined\xetexkointerhchar \def\noexpand\xetexkointerhchar{\xetexkointerhchar}\fi \ifdefined\xetexkocharraise \def\noexpand\xetexkocharraise{\xetexkocharraise}\fi }% - \XeKo@UL@hangul@patch } \protected\def\sethangulfont#1{% \def\@tempa{#1}% @@ -1861,7 +1870,6 @@ \ifdefined\xetexkointerhchar \def\noexpand\xetexkointerhchar{\xetexkointerhchar}\fi \ifdefined\xetexkocharraise \def\noexpand\xetexkocharraise{\xetexkocharraise}\fi }% - \noexpand\XeKo@UL@hangul@patch }% } \protected\def\hanjafont{% @@ -1874,7 +1882,6 @@ \ifdefined\xetexkointerhchar \def\noexpand\xetexkointerhchar{\xetexkointerhchar}\fi \ifdefined\xetexkocharraise \def\noexpand\xetexkocharraise{\xetexkocharraise}\fi }% - \XeKo@UL@hanja@patch } \protected\def\sethanjafont#1{% \def\@tempa{#1}% @@ -1890,7 +1897,6 @@ \ifdefined\xetexkointerhchar \def\noexpand\xetexkointerhchar{\xetexkointerhchar}\fi \ifdefined\xetexkocharraise \def\noexpand\xetexkocharraise{\xetexkocharraise}\fi }% - \noexpand\XeKo@UL@hanja@patch }% } \protected\def\hanjabyhangulfont{\let\XeKo@hanja@font\XeKo@hangul@font } @@ -1946,7 +1952,7 @@ \expandafter\textwidth\expandafter\textheight \@outputpage }% - \maxdepth\z@ \typesetvertical + \typesetvertical \let\verticaltypesetting\relax % prevent multiple running } \def\endverticaltypesetting{% -- cgit v1.2.3