texlive[59215] Master/texmf-dist: xetexko (15may21)

commits+karl at tug.org commits+karl at tug.org
Sat May 15 22:41:40 CEST 2021


Revision: 59215
          http://tug.org/svn/texlive?view=revision&revision=59215
Author:   karl
Date:     2021-05-15 22:41:39 +0200 (Sat, 15 May 2021)
Log Message:
-----------
xetexko (15may21)

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-05-15 20:37:46 UTC (rev 59214)
+++ trunk/Master/texmf-dist/doc/xetex/xetexko/ChangeLog	2021-05-15 20:41:39 UTC (rev 59215)
@@ -1,3 +1,9 @@
+2021-05-15      Dohyun Kim <nomos at ktug org>
+
+	Version 3.4
+
+	* internal changes regarding font-switching method
+
 2021-04-20      Dohyun Kim <nomos at ktug org>
 
 	Version 3.3

Modified: trunk/Master/texmf-dist/doc/xetex/xetexko/README
===================================================================
--- trunk/Master/texmf-dist/doc/xetex/xetexko/README	2021-05-15 20:37:46 UTC (rev 59214)
+++ trunk/Master/texmf-dist/doc/xetex/xetexko/README	2021-05-15 20:41:39 UTC (rev 59215)
@@ -1,4 +1,4 @@
-XeTeX-ko Package version 3.3 (2021/04/20)
+XeTeX-ko Package version 3.4 (2021/05/15)
 =========================================
 
 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-05-15 20:37:46 UTC (rev 59214)
+++ trunk/Master/texmf-dist/doc/xetex/xetexko/xetexko-doc.tex	2021-05-15 20:41:39 UTC (rev 59215)
@@ -61,8 +61,8 @@
 \def\hemph#1{\textsf{\bfseries #1}}
 \def\hparen#1{{\small\hangulparens(#1)}}
 \let\hparens\hparen
-\def\keyword#1{\leavevmode\marginpar{\hfuzz\maxdimen\footnotesize\cs{#1}}}
-\def\vernote#1{\leavevmode\marginpar{\hfuzz\maxdimen\footnotesize{\color{red}☜ v#1}}}
+\def\keyword#1{\cs{#1}\marginpar{\hfuzz\maxdimen\footnotesize{\color{blue!70}\cs{#1}}}}
+\def\vernote#1{v#1\marginpar{\hfuzz\maxdimen\footnotesize{\color{red}☜ v#1}}}
 
 \hangingpunctuations
 
@@ -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.3\quad 2021/04/20}
+\date{Version 3.4\quad 2021/05/15}
 \maketitle
 
 \begin{quote}\small
@@ -146,7 +146,7 @@
 
 \bigskip
 
-※ 버전 3.1부터 플레인텍에 주요 변경사항이 있다:\vernote{3.1}%
+※ \vernote{3.1} 및 \vernote{3.4}부터 플레인텍에 주요 변경사항이 있다:
 \begin{plaintex}
 플레인텍에서도 기본값으로 은바탕을 한글에 사용한다. 한글폰트를 지시하는 방법은 다음과 같다.
 \begin{verbatim}
@@ -154,22 +154,20 @@
     \hangulfont="[UnBatang]:mapping=tex-text" at 10pt
     \hanjafont ="Naver Dictionary:mapping=tex-text" at 10pt
 \end{verbatim}
-  그런데 3.1 버전부터는 이렇게 하면 문서 중간에 영문글꼴을 바꾸더라도
-  \cs{hangulfont} 선언시의 영문글꼴이 계속 적용되도록 바뀌었다.
-  그래서 다음과 같은 새로운 명령을 제공한다.
+  \sout{그런데 3.1 버전부터는 이렇게 하면 문서 중간에 영문글꼴을 바꾸더라도
+  \cs{hangulfont} 선언시의 영문글꼴이 계속 적용되도록 바뀌었다.}
+  또한 다음과 같은 새로운 명령을 제공한다.
 \begin{verbatim}
-    \tt
     \sethangulfont\untaza ="[UnTaza.ttf]"  at 10pt
     \sethanjafont \undotum="[UnDotum.ttf]" at 10pt
-    \def\tt{\untaza\undotum}
+    \expandafter\def\expandafter\tt\expandafter{\tt\untaza\undotum}
 \end{verbatim}
-  이 경우 \cs{untaza}, \cs{undotum} 명령에 \cs{set...font} 실행시의 현재폰트 명령이
-  자동으로 포함된다. 뒤에서 설명할 글꼴옵션이 포함되는 것과 같은 개념이다.
+  \sout{이 경우 \cs{untaza}, \cs{undotum} 명령에 \cs{set...font} 실행시의 현재폰트 명령이
+  자동으로 포함된다. 뒤에서 설명할 글꼴옵션이 포함되는 것과 같은 개념이다.}
   그리하여 예의 \cs{tt} 명령으로 이제 한글, 한자, 영문 글꼴을 동시에 바꿀 수 있게 된다.
 \end{plaintex}
 
-\keyword{fallbackhanjafont}%
-\cs{fallbackhanjafont}를 정의해두면 \hemph{한자 글꼴에도 없는 한자}를
+\keyword{fallbackhanjafont}를 정의해두면 \hemph{한자 글꼴에도 없는 한자}를
 이 글꼴에서 찾아 식자한다. \cs{newfontfamily} 명령 등으로 정의한다.
 
 \section{글꼴 명령 (계속)}
@@ -197,8 +195,7 @@
 
 참고로, 한자와 한글을 같은 글꼴로 식자하고 싶을 때 글꼴 설정을
 번거롭게 두 번 할 필요 없이 한글 글꼴만 설정한 뒤 간단히
-\keyword{hanjabyhangulfont}%
-\cs{hanjabyhangulfont}를 선언하면 된다.%
+\keyword{hanjabyhangulfont}를 선언하면 된다.%
 \footnote{프리앰블의 main/sans/mono 글꼴 명령들과 달리 새로 지정한 한글 폰트가
   한자에도 자동으로 적용되지는 않는다는 말이다.}
 
@@ -225,16 +222,16 @@
 \item[cjksymbols] CJK 구두점, 괄호 및 상징기호
 \end{description}
 
-종전에\vernote{3.0}
+종전에
 라틴숫자에 적용되던 \verb|nums| 옵션과
 라틴 인용부호에 적용되던 \verb|quotes| 옵션이
-3.0 버전부터는
+\vernote{3.0}부터는
 각각 \verb|alphs| 옵션과 \verb|parens| 옵션에 통합되었음에 유의하라.
-또한\vernote{3.0} en dash, em dash가 종래 \verb|colons|에 속하던 것이 이제
+또한 en dash, em dash가 종래 \verb|colons|에 속하던 것이 이제
 \verb|hyphens|에 속하게 되었다.
 
 기본값은 다음 명령을 준 것과 동일하다.
-v3.0부터\vernote{3.0} 괄호류의 기본글꼴이 한글이 되었음도 유의하라.
+\vernote{3.0}부터 괄호류의 기본글꼴이 한글이 되었음도 유의하라.
 \begin{verbatim}
   \xetexkofontregime {latin}%
     [ puncts=prevfont, colons=prevfont,
@@ -285,7 +282,7 @@
   기본값은 \verb|0pt|.
   고정폭 글꼴에서도 이 옵션은 작동한다.
 \end{description}
-3.0 버전부터는\vernote{3.0} 다음 옵션들이 아무 효과도 가져오지 않게
+\vernote{3.0}부터는 다음 옵션들이 아무 효과도 가져오지 않게
 변경되었음을 주의하라.
 \begin{verbatim}
     lowerperiod         lowerquestion
@@ -311,9 +308,9 @@
   한자폰트 옵션을 서로 달리 지시할 수 있다.
 \end{plaintex}
 
-종전에 한글·한자 글꼴의 옵션 기본값을 지정하던\vernote{3.0}
+종전에 한글·한자 글꼴의 옵션 기본값을 지정하던
 \cs{defaulthangulfontfeatures} 및 \cs{defaulthanjafontfeatures} 명령이
-3.0 버전부터는
+\vernote{3.0}부터는
 아무런 기능을 하지 않게 변경되었음에 유의하라.
 폰트옵션의 수가 적어졌기 때문에 이 명령의 유용성도 거의 사라졌다고 판단했다.
 
@@ -336,8 +333,7 @@
 
     \cs{nocompresspunctuations}는 이 명령과 동의어이다.\\
     반대로
-    \keyword{compresspunctuations}%
-    \cs{compresspunctuations}는 반각을 강제하라는 명령이다.
+    \keyword{compresspunctuations}는 반각을 강제하라는 명령이다.
     이것이 기본값이므로 특별한 경우가 아니면 따로 선언할 필요가 없다.
 
   \item[\cs{disablehangulspacing}]
@@ -359,7 +355,7 @@
       }
 
 \end{description}
-3.0 버전부터는\vernote{3.0} 종전의
+\vernote{3.0}부터는 종전의
 \cs{disableautojosa} 및 \cs{disablejamoautojosa} 명령이 아무 기능도 하지 않게
 변경되었음을 유의하라.
 
@@ -411,8 +407,8 @@
   \setmainhangulfont{Noto Sans CJK KR}[
     Vertical=Alternates, RawFeature=vertical ]
 \end{verbatim}
-\keyword{verticaltypesetting}%
-문서 전체를 세로쓰기할 때 \cs{verticaltypesetting}을 선언하면
+
+문서 전체를 세로쓰기할 때 \keyword{verticaltypesetting}을 선언하면
 면주는 그대로 두고 본문만 세로쓰기한다.\footnote{면주의 글꼴에는
   \texttt{vertical} 옵션이 없어야 할 것이다.
   면주 글꼴을 따로 지정하는 것은 사용자의 몫이다. }
@@ -482,10 +478,9 @@
 
 \verb|typesetclassic| 환경은 고문헌 조판에 적합한 환경이다.
 
-불필요한 공백을 없애주는 기능은\vernote{3.0}
-3.0 버전부터는 자동으로 동작하지 않는다.  사용자가
-\keyword{removeclassicspaces}%
-\cs{removeclassicspaces} 명령을 주어야 CJK 글자간 공백을
+불필요한 공백을 없애주는 기능은
+\vernote{3.0}부터는 자동으로 동작하지 않는다.  사용자가
+\keyword{removeclassicspaces} 명령을 주어야 CJK 글자간 공백을
 제거하기 시작한다.
 
 간단한 일본어, 중국어 문단 정도를 식자하는 데도 이 환경을 이용할 수 있으나
@@ -505,8 +500,7 @@
 \end{plaintex}
 
 
-\keyword{inhibitglue}%
-\cs{inhibitglue} 명령은
+\keyword{inhibitglue} 명령은
 해당 지점에 자동 삽입되는 공백을 영(zero)으로 만들어준다.
 
 현대문서 조판에는 \verb|typesetmodern| 환경이 쓰인다. 이 환경은 기본값이므로
@@ -554,13 +548,12 @@
 \section{매달린 구두점}
 \hemph{하이픈을 제외한} 문장부호들를 판면 바깥에 식자하여 행 끝에 매달리게 만들 수 있다.
 
-3.0 버전부터는\vernote{3.0} \keyword{hangingpunctuations}%
-\cs{hangingpunctuations} 명령으로 활성화한다.
+\vernote{3.0}부터는 \keyword{hangingpunctuations} 명령으로 활성화한다.
 \cs{hangingpunctuation}은 이 명령과 동의어이다.
 당분간 xetexko-hanging.sty을 로드하는 것으로도 활성화되도록 해 두었다.
 이렇게 활성화되면 기본값으로 온점, 반점, 고리점, 모점에 대해서 전부 내밀기가 작동한다.
 
-3.2 버전부터는\vernote{3.2} 사용자가 원하는 문장부호를 원하는 만큼 판면 밖으로 내밀 수 있다.
+\vernote{3.2}부터는 사용자가 원하는 문장부호를 원하는 만큼 판면 밖으로 내밀 수 있다.
 \begin{verbatim}
     \sethangingratio"28=0.5 %
     \sethangingratio"3002=1 %
@@ -602,7 +595,7 @@
 \begin{quote}
   \verb|$가^{나^다}$|\quad$\Rightarrow\quad가^{나^다}$
 \end{quote}
-3.0 버전부터는\vernote{3.0}
+\vernote{3.0}부터는
 자동으로 수식한글을 잡아주지 않으므로 사용자가 다음과 같이 명시적으로 선언해야 한다.
 \begin{verbatim}
   \setmathhangulfont{Noto Sans CJK KR}[
@@ -645,7 +638,7 @@
 \end{verbatim}
 
 \section{드러냄표}
-\keyword{dotemph}%
+\keyword{dotemph} 명령을 사용하는
 \dotemph{드러냄표} 강조도 \kotex 과 대동소이하다.
 기본은 글자 위에 점을 찍는 형태이나 다음 명령을 이용해 개인적으로 선호하는
 기호를 드러냄표로 쓸 수 있다.
@@ -675,7 +668,7 @@
 \section{밑줄긋기}
 \LaTeX 에서는 \uwave{ulem 패키지}를 로드하는 것만으로 자동 지원된다.
 
-\cs{xetexkoulemsupport} 명령이 \vernote{3.3}3.3 버전부터 부활하였으므로
+\cs{xetexkoulemsupport} 명령이 \vernote{3.3}부터 부활하였으므로
 플레인텍에서는 이 명령을 명시해야 할 경우가 있을 것이다.
 
 
@@ -687,6 +680,11 @@
 
 \begin{small}\linespread{1.2}\selectfont
 \begin{description}\itemsep=0pt
+    \item[v3.4] 2021-05-15
+      \begin{itemize}
+        \item \hyperref[sec:fontcmds]
+          {글꼴 전환 방식의 내부적 변화 및 그에 따른 플레인텍 한글 폰트 명령의 의미 변경}
+      \end{itemize}
     \item[v3.3] 2021-04-20
       \begin{itemize}
         \item \cs{xetexkoulemsupport} 명령 부활

Modified: trunk/Master/texmf-dist/tex/xetex/xetexko/xetexko.sty
===================================================================
--- trunk/Master/texmf-dist/tex/xetex/xetexko/xetexko.sty	2021-05-15 20:37:46 UTC (rev 59214)
+++ trunk/Master/texmf-dist/tex/xetex/xetexko/xetexko.sty	2021-05-15 20:41:39 UTC (rev 59215)
@@ -16,7 +16,7 @@
 
 \ifdefined\ProvidesPackage
   \NeedsTeXFormat{LaTeX2e}[2020/10/01]
-  \ProvidesPackage{xetexko}[2021/04/20 v3.3 typesetting Korean with XeTeX]
+  \ProvidesPackage{xetexko}[2021/05/15 v3.4 typesetting Korean with XeTeX]
 \else
   \ifdefined\@tempcnta\else \newcount\@tempcnta \fi
   \ifdefined\@gobble\else \def\@gobble#1{} \fi
@@ -357,9 +357,9 @@
   }
 \def\XeKo at Tchinese@classes{% these glyphs in traditional chinese fonts are center-aligned
   \XeTeXcharclass "3001 = \XeTeXcharclassMD % 、
-  \XeTeXcharclass "3002 = \XeTeXcharclassMD % 。
+  \XeTeXcharclass "3002 = \XeTeXcharclassLD % 。
   \XeTeXcharclass "FF0C = \XeTeXcharclassMD % ,
-  \XeTeXcharclass "FF0E = \XeTeXcharclassMD % .
+  \XeTeXcharclass "FF0E = \XeTeXcharclassLD % .
   }
 
 \chardef\XeKo at typesetvertical\z@
@@ -405,7 +405,8 @@
 \protected\def\endhorizontal{%
   \egroup
   \XeKo at unrotatebox\z@
-  \lower.5\ht\z@ \box\z@
+  \lower\dimexpr.5\ht\z@\ifdefined\xetexkocharraise-\xetexkocharraise\fi\relax
+  \box\z@
   }
 \def\XeKo at rotatebox#1{%
   \setbox#1\hbox to\dimexpr\ht#1+\dp#1\bgroup
@@ -429,11 +430,22 @@
   \egroup
   }
 \ifcsname ver at xetexko.sty\endcsname
-  \def\verticaltypesetting{%
-    \maxdepth\z@ \typesetvertical
-    \dimen@\textwidth \textwidth\textheight \textheight\dimen@
-    \edef\@outputpage{\unexpanded{\XeKo at rotatebox\@outputbox
-    \textwidth\textheight}\unexpanded\expandafter{\@outputpage}}}
+  \IfFormatAtLeastTF{2021/06/01}{
+    \def\verticaltypesetting{%
+      \maxdepth\z@ \typesetvertical
+      \dimen@\textwidth \textwidth\textheight \textheight\dimen@
+      \AddToHook{cmd/@outputpage/before}{\XeKo at rotatebox\@outputbox \textwidth\textheight}%
+      \let\verticaltypesetting\relax % prevent multiple running
+      }
+  }{
+    \def\verticaltypesetting{%
+      \maxdepth\z@ \typesetvertical
+      \dimen@\textwidth \textwidth\textheight \textheight\dimen@
+      \edef\@outputpage{\unexpanded{\XeKo at rotatebox\@outputbox
+        \textwidth\textheight}\unexpanded\expandafter{\@outputpage}}%
+      \let\verticaltypesetting\relax % prevent multiple running
+      }
+  }
 \else
   \def\verticaltypesetting{%
     \dimen@\hsize \hsize\vsize \vsize\dimen@
@@ -441,7 +453,9 @@
       \unexpanded\expandafter{\plainoutput}}%
     \def\pagebody{\setbox\z@\vbox to\hsize{\boxmaxdepth=\maxdepth
       \pagecontents}\XeKo at rotatebox\z@\box\z@}%
-    \maxdepth\z@ \typesetvertical }
+    \maxdepth\z@ \typesetvertical
+    \let\verticaltypesetting\relax % prevent multiple running
+    }
 \fi
 
 \protected\def\vertlatin#1{\leavevmode\lower.5ex\hbox{\latinmarks #1}} % compat
@@ -453,25 +467,38 @@
   \let\xetexkointerhchar\XeKo at undefined
   }
 
+\expandafter\let\expandafter\XeKo at latin@font\the\font
+
 \def\XeKo at font@Hangul{%
+  \expandafter\ifx\the\font\XeKo at raw@hangul at font \else
+  \expandafter\ifx\the\font\XeKo at raw@hanja at font \else
+    \expandafter\let\expandafter\XeKo at latin@font\the\font
+  \fi\fi
   \ifdefined\XeKo at hangul@font
     \XeKo at reset@options
     \XeKo at hangul@font
-    \let\XeKo at curr@font\XeKo at hangul@font
+    \expandafter\let\expandafter\XeKo at raw@hangul at font\the\font
   \fi
   }
 \def\XeKo at font@CJK{%
+  \expandafter\ifx\the\font\XeKo at raw@hangul at font \else
+  \expandafter\ifx\the\font\XeKo at raw@hanja at font \else
+    \expandafter\let\expandafter\XeKo at latin@font\the\font
+  \fi\fi
   \ifdefined\XeKo at hanja@font
     \XeKo at reset@options
     \XeKo at hanja@font
-    \let\XeKo at curr@font\XeKo at hanja@font
+    \expandafter\let\expandafter\XeKo at raw@hanja at font\the\font
   \fi
   }
 \def\XeKo at font@Latin{%
-  \ifdefined\XeKo at latin@font
+  \expandafter\ifx\the\font\XeKo at raw@hangul at font
     \XeKo at latin@font
-    \let\XeKo at curr@font\XeKo at latin@font
-  \fi
+  \else \expandafter\ifx\the\font\XeKo at raw@hanja at font
+    \XeKo at latin@font
+  \else
+    \expandafter\let\expandafter\XeKo at latin@font\the\font
+  \fi\fi
   }
 \let\XeKo at fontHG\XeKo at font@Hangul
 \let\XeKo at fontID\XeKo at font@CJK
@@ -539,14 +566,14 @@
 \protected\def\hanjacolons {\let\XeKo at fontAM\XeKo at font@CJK}
 \protected\def\hanjahyphens{\let\XeKo at fontAH\XeKo at font@CJK}
 \protected\def\hanjacjksymbols{%
-  \let\XeKo at fontSY\XeKo at font@Hanja
-  \let\XeKo at fontOP\XeKo at font@Hanja
-  \let\XeKo at fontCL\XeKo at font@Hanja
-  \let\XeKo at fontMD\XeKo at font@Hanja
-  \let\XeKo at fontFS\XeKo at font@Hanja
-  \let\XeKo at fontEX\XeKo at font@Hanja
-  \let\XeKo at fontLD\XeKo at font@Hanja
-  \let\XeKo at fontVC\XeKo at font@Hanja
+  \let\XeKo at fontSY\XeKo at font@CJK
+  \let\XeKo at fontOP\XeKo at font@CJK
+  \let\XeKo at fontCL\XeKo at font@CJK
+  \let\XeKo at fontMD\XeKo at font@CJK
+  \let\XeKo at fontFS\XeKo at font@CJK
+  \let\XeKo at fontEX\XeKo at font@CJK
+  \let\XeKo at fontLD\XeKo at font@CJK
+  \let\XeKo at fontVC\XeKo at font@CJK
   }
 \protected\def\hanjamarks{%
   \hanjaalphs\hanjaparens\hanjapuncts\hanjacolons\hanjahyphens\hanjacjksymbols
@@ -691,16 +718,20 @@
 \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
+    \expandafter\ifx\the\font\XeKo at raw@hangul at font
       \raise\xetexkocharraise\hbox\bgroup
-    \fi
+    \else \expandafter\ifx\the\font\XeKo at raw@hanja at font
+      \raise\xetexkocharraise\hbox\bgroup
+    \fi\fi
   \fi
   }
 \def\XeKo at char@raise at stop{%
   \ifdefined\xetexkocharraise
-    \ifx\XeKo at curr@font\XeKo at latin@font\else
+    \expandafter\ifx\the\font\XeKo at raw@hangul at font
       \egroup
-    \fi
+    \else \expandafter\ifx\the\font\XeKo at raw@hanja at font
+      \egroup
+    \fi\fi
   \fi
   }
 \def\XeKo at do@flush at toks{%
@@ -973,12 +1004,9 @@
   }
 
 \def\XeKo at maybe@gobble{%
-  \ifdefined\XeKo at curr@font\expandafter\XeKo at maybe@gobble@\fi
+  \expandafter\expandafter\expandafter\@gobble
   }
 \let\XeKo at do@maybe at gobble\XeKo at maybe@gobble
-\def\XeKo at maybe@gobble@{%
-  \expandafter\expandafter\expandafter\@gobble
-  }
 
 \XeTeXinterchartoks\XeTeXcharclassBoundary\XeTeXcharclassHG{%
   \ifnum\lastnodetype=12 %
@@ -1102,7 +1130,7 @@
       \or \unkern\unkern \XeKo at quarterquarter % MD AA
       \or \unkern\unkern \XeKo at halfzero       % FS AA
       \or \unkern\unkern \XeKo at halfhalf       % EX AA
-      \or \unkern\unkern                      % LD AA
+      \or \unkern\unkern \XeKo at latincjk       % LD AA
       \or \unkern\unkern \XeKo at quarterquarter % VC AA
     \fi
   \fi
@@ -1126,7 +1154,7 @@
       \or \unkern\unkern \XeKo at quarterquarter % MD AO
       \or \unkern\unkern \XeKo at halfzero       % FS AO
       \or \unkern\unkern \XeKo at halfhalf       % EX AO
-      \or \unkern\unkern                      % LD AO
+      \or \unkern\unkern \XeKo at latincjk       % LD AO
       \or \unkern\unkern \XeKo at quarterquarter % VC AO
     \fi
   \fi
@@ -1518,8 +1546,8 @@
   }
 \def\XeKo at read@hanja at hangul@line{%
   \read1 to \@tempa
-  \ifnum\count@=\@tempcnta
-    \global\count@\@tempa
+  \ifnum\XeKo at count@=\@tempcnta
+    \global\XeKo at count@\@tempa
   \else
     \advance\@tempcnta\@ne \expandafter\XeKo at read@hanja at hangul@line
   \fi
@@ -1747,9 +1775,9 @@
 \ifcsname ver at xetexko.sty\endcsname
   \def\xetexkoulemsupport{%
     \ifdefined\UL at hook
-      \UL at hook\expandafter{%
-        \the\UL at hook
+      \UL at hook\expandafter{\the\UL at hook
         \let\XeKo at char@orphan\XeKo at flush@char at orphan
+        \let\XeKo at maybe@gobble\relax
         % uline 안에서 폰트가 변경되는 경우를 대비
         \expandafter\def\expandafter\XeKo at hangul@selectfont\expandafter{%
           \XeKo at hangul@selectfont
@@ -1757,6 +1785,9 @@
             \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
+            % 여기서 라틴폰트 지정을 보존한다.
+            \global\let\XeKo at UL@latin at font\font at name
+            \aftergroup\aftergroup\aftergroup\XeKo at UL@latin at font
           \fi }%
         \expandafter\def\expandafter\XeKo at hanja@selectfont\expandafter{%
           \XeKo at hanja@selectfont
@@ -1765,13 +1796,6 @@
             \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
     }
@@ -1780,23 +1804,30 @@
   \let\XeKo at UL@hanja at patch \relax
   \def\xetexkoulemsupport{%
     \ifdefined\UL at hook
-      \UL at hook\expandafter{%
-        \the\UL at hook
+      \UL at hook\expandafter{\the\UL at hook
         \let\XeKo at char@orphan\XeKo at flush@char at orphan
+        \let\XeKo at maybe@gobble\relax
+        % uline 안에서 폰트가 변경되는 경우를 대비
         \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 }%
+          \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
+          \XeKo at UL@latin at patch
+          }%
         \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 }%
+          \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
+          \XeKo at UL@latin at patch
+          }%
+        % uline 안에서 폰트 지시는 라틴폰트, 한글폰트 순서로 해야 라틴폰트가 올바로 동작함
+        \def\XeKo at UL@latin at patch{%
+          \ifnum 0\expandafter\ifx\the\font\XeKo at raw@hangul at font 1\else
+                  \expandafter\ifx\the\font\XeKo at raw@hanja at font  1\fi\fi =\z@
+            \global\expandafter\let\expandafter\XeKo at UL@latin at font\the\font
+            \aftergroup\aftergroup\aftergroup\XeKo at UL@latin at font
+          \fi
+          }%
         }%
     \fi
     }
@@ -1817,14 +1848,6 @@
     \afterassignment\XeKo at hangulfont@setup\font\XeKo at hangul@font
     }
   \def\XeKo at hangulfont@setup{%
-    \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
@@ -1841,15 +1864,6 @@
     }
   \def\XeKo at sethangulfont@setup{%
     \expandafter\edef\@tempa{%
-      \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
@@ -1863,14 +1877,6 @@
     \afterassignment\XeKo at hanjafont@setup\font\XeKo at hanja@font
     }
   \def\XeKo at hanjafont@setup{%
-    \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
@@ -1887,15 +1893,6 @@
     }
   \def\XeKo at sethanjafont@setup{%
     \expandafter\edef\@tempa{%
-      \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
@@ -1959,12 +1956,19 @@
   \latinalphs\latinparens\latinpuncts\latincolons\latinhyphens
   \disablehangulspacing
   }
-\edef\verbatim at font{%
-  \unexpanded\expandafter{%
-    \verbatim at font
+\IfFormatAtLeastTF{2021/06/01}{
+  \AddToHook{cmd/verbatim at font/after}{%
     \disablehangulspacingandlinebreak
     \aftergroup\enablehangulspacingandlinebreak
-    }}
+    }
+}{
+  \edef\verbatim at font{%
+    \unexpanded\expandafter{%
+      \verbatim at font
+      \disablehangulspacingandlinebreak
+      \aftergroup\enablehangulspacingandlinebreak
+      }}
+}
 \AddToHook{normalfont}{%
   \let \xetexkohangulfont   \xetexkodefaulthangulfont
   \let \xetexkohanguloption \xetexkodefaulthanguloption
@@ -1971,9 +1975,12 @@
   \let \xetexkohanjafont    \xetexkodefaulthanjafont
   \let \xetexkohanjaoption  \xetexkodefaulthanjaoption
   }
+\AddToHook{env/picture/begin}{%
+  \latinalphs\latinparens\latinpuncts\latincolons\latinhyphens
+  }
+
 \IfHookExistsTF{selectfont}{
   \AddToHook{selectfont}{%
-    \XeKo at latin@selectfont
     \XeKo at hanja@selectfont
     \XeKo at hangul@selectfont
     }
@@ -1980,7 +1987,6 @@
 }{
   \RequirePackage{everysel}
   \EverySelectfont{%
-    \XeKo at latin@selectfont
     \XeKo at hanja@selectfont
     \XeKo at hangul@selectfont
     }
@@ -2016,16 +2022,6 @@
       \let\XeKo at hanja@font\XeKo at undefined
     \fi
   \fi }
-\def\XeKo at latin@selectfont{%
-  \ifdefined\XeKo at in@selectfont\else
-    \begingroup
-    \let\XeKo at in@selectfont\empty
-    \selectfont
-    \edef\x{\endgroup
-      \def\noexpand\XeKo at latin@font{\the\font}%
-      }\x
-  \fi
-  }
 
 \ExplSyntaxOn
 \tl_new:N \l_xtxko_font_opts_tl
@@ -2094,7 +2090,6 @@
     \cs_set_eq:NN \xetexkohanguloption \xetexkomainhanguloption
     \cs_set_eq:NN \xetexkodefaulthangulfont \xetexkomainhangulfont
     \cs_set_eq:NN \xetexkodefaulthanguloption \xetexkomainhanguloption
-    \XeKo at latin@selectfont
     \XeKo at hangul@selectfont
   }
   \ignorespaces
@@ -2114,7 +2109,6 @@
     \cs_set_eq:NN \xetexkohanguloption \xetexkosanshanguloption
     \cs_set_eq:NN \xetexkodefaulthangulfont \xetexkosanshangulfont
     \cs_set_eq:NN \xetexkodefaulthanguloption \xetexkosanshanguloption
-    \XeKo at latin@selectfont
     \XeKo at hangul@selectfont
   }
   \ignorespaces
@@ -2134,7 +2128,6 @@
     \cs_set_eq:NN \xetexkohanguloption \xetexkomonohanguloption
     \cs_set_eq:NN \xetexkodefaulthangulfont \xetexkomonohangulfont
     \cs_set_eq:NN \xetexkodefaulthanguloption \xetexkomonohanguloption
-    \XeKo at latin@selectfont
     \XeKo at hangul@selectfont
   }
   \ignorespaces
@@ -2221,7 +2214,6 @@
     \cs_set_eq:NN \xetexkohanjaoption \xetexkomainhanjaoption
     \cs_set_eq:NN \xetexkodefaulthanjafont \xetexkomainhanjafont
     \cs_set_eq:NN \xetexkodefaulthanjaoption \xetexkomainhanjaoption
-    \XeKo at latin@selectfont
     \XeKo at hanja@selectfont
   }
   \ignorespaces
@@ -2241,7 +2233,6 @@
     \cs_set_eq:NN \xetexkohanjaoption \xetexkosanshanjaoption
     \cs_set_eq:NN \xetexkodefaulthanjafont \xetexkosanshanjafont
     \cs_set_eq:NN \xetexkodefaulthanjaoption \xetexkosanshanjaoption
-    \XeKo at latin@selectfont
     \XeKo at hanja@selectfont
   }
   \ignorespaces
@@ -2261,7 +2252,6 @@
     \cs_set_eq:NN \xetexkohanjaoption \xetexkomonohanjaoption
     \cs_set_eq:NN \xetexkodefaulthanjafont \xetexkomonohanjafont
     \cs_set_eq:NN \xetexkodefaulthanjaoption \xetexkomonohanjaoption
-    \XeKo at latin@selectfont
     \XeKo at hanja@selectfont
   }
   \ignorespaces



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