From f27d9675d05c741c22a86bb33a672fa73b701617 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 15 May 2021 20:41:39 +0000 Subject: xetexko (15may21) git-svn-id: svn://tug.org/texlive/trunk@59215 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/xetex/xetexko/ChangeLog | 6 + Master/texmf-dist/doc/xetex/xetexko/README | 2 +- .../texmf-dist/doc/xetex/xetexko/xetexko-doc.pdf | Bin 250218 -> 254362 bytes .../texmf-dist/doc/xetex/xetexko/xetexko-doc.tex | 76 ++++---- Master/texmf-dist/tex/xetex/xetexko/xetexko.sty | 214 ++++++++++----------- 5 files changed, 146 insertions(+), 152 deletions(-) diff --git a/Master/texmf-dist/doc/xetex/xetexko/ChangeLog b/Master/texmf-dist/doc/xetex/xetexko/ChangeLog index 3d2c82eba23..8bd1ebb2125 100644 --- a/Master/texmf-dist/doc/xetex/xetexko/ChangeLog +++ b/Master/texmf-dist/doc/xetex/xetexko/ChangeLog @@ -1,3 +1,9 @@ +2021-05-15 Dohyun Kim + + Version 3.4 + + * internal changes regarding font-switching method + 2021-04-20 Dohyun Kim Version 3.3 diff --git a/Master/texmf-dist/doc/xetex/xetexko/README b/Master/texmf-dist/doc/xetex/xetexko/README index 4d0dfb8182e..9cae875e93d 100644 --- a/Master/texmf-dist/doc/xetex/xetexko/README +++ b/Master/texmf-dist/doc/xetex/xetexko/README @@ -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 diff --git a/Master/texmf-dist/doc/xetex/xetexko/xetexko-doc.pdf b/Master/texmf-dist/doc/xetex/xetexko/xetexko-doc.pdf index baec8abd9f7..d20c61d0da8 100644 Binary files a/Master/texmf-dist/doc/xetex/xetexko/xetexko-doc.pdf and b/Master/texmf-dist/doc/xetex/xetexko/xetexko-doc.pdf differ diff --git a/Master/texmf-dist/doc/xetex/xetexko/xetexko-doc.tex b/Master/texmf-dist/doc/xetex/xetexko/xetexko-doc.tex index 37e1e49f7fa..3aad0c1b2bf 100644 --- a/Master/texmf-dist/doc/xetex/xetexko/xetexko-doc.tex +++ b/Master/texmf-dist/doc/xetex/xetexko/xetexko-doc.tex @@ -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 @@ main/sans hangul/hanja 폰트에는 따로 \verb|Ligatures=TeX| 옵션을 지시 \bigskip -※ 버전 3.1부터 플레인텍에 주요 변경사항이 있다:\vernote{3.1}% +※ \vernote{3.1} 및 \vernote{3.4}부터 플레인텍에 주요 변경사항이 있다: \begin{plaintex} 플레인텍에서도 기본값으로 은바탕을 한글에 사용한다. 한글폰트를 지시하는 방법은 다음과 같다. \begin{verbatim} @@ -154,22 +154,20 @@ main/sans hangul/hanja 폰트에는 따로 \verb|Ligatures=TeX| 옵션을 지시 \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 @@ fontspec과 마찬가지로 각 명령의 끝에 `s'를 붙여도 된다. 참고로, 한자와 한글을 같은 글꼴로 식자하고 싶을 때 글꼴 설정을 번거롭게 두 번 할 필요 없이 한글 글꼴만 설정한 뒤 간단히 -\keyword{hanjabyhangulfont}% -\cs{hanjabyhangulfont}를 선언하면 된다.% +\keyword{hanjabyhangulfont}를 선언하면 된다.% \footnote{프리앰블의 main/sans/mono 글꼴 명령들과 달리 새로 지정한 한글 폰트가 한자에도 자동으로 적용되지는 않는다는 말이다.} @@ -225,16 +222,16 @@ fontspec과 마찬가지로 각 명령의 끝에 `s'를 붙여도 된다. \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 @@ v3.0부터\vernote{3.0} 괄호류의 기본글꼴이 한글이 되었음도 유 기본값은 \verb|0pt|. 고정폭 글꼴에서도 이 옵션은 작동한다. \end{description} -3.0 버전부터는\vernote{3.0} 다음 옵션들이 아무 효과도 가져오지 않게 +\vernote{3.0}부터는 다음 옵션들이 아무 효과도 가져오지 않게 변경되었음을 주의하라. \begin{verbatim} lowerperiod lowerquestion @@ -311,9 +308,9 @@ v3.0부터\vernote{3.0} 괄호류의 기본글꼴이 한글이 되었음도 유 한자폰트 옵션을 서로 달리 지시할 수 있다. \end{plaintex} -종전에 한글·한자 글꼴의 옵션 기본값을 지정하던\vernote{3.0} +종전에 한글·한자 글꼴의 옵션 기본값을 지정하던 \cs{defaulthangulfontfeatures} 및 \cs{defaulthanjafontfeatures} 명령이 -3.0 버전부터는 +\vernote{3.0}부터는 아무런 기능을 하지 않게 변경되었음에 유의하라. 폰트옵션의 수가 적어졌기 때문에 이 명령의 유용성도 거의 사라졌다고 판단했다. @@ -336,8 +333,7 @@ v3.0부터\vernote{3.0} 괄호류의 기본글꼴이 한글이 되었음도 유 \cs{nocompresspunctuations}는 이 명령과 동의어이다.\\ 반대로 - \keyword{compresspunctuations}% - \cs{compresspunctuations}는 반각을 강제하라는 명령이다. + \keyword{compresspunctuations}는 반각을 강제하라는 명령이다. 이것이 기본값이므로 특별한 경우가 아니면 따로 선언할 필요가 없다. \item[\cs{disablehangulspacing}] @@ -359,7 +355,7 @@ v3.0부터\vernote{3.0} 괄호류의 기본글꼴이 한글이 되었음도 유 } \end{description} -3.0 버전부터는\vernote{3.0} 종전의 +\vernote{3.0}부터는 종전의 \cs{disableautojosa} 및 \cs{disablejamoautojosa} 명령이 아무 기능도 하지 않게 변경되었음을 유의하라. @@ -411,8 +407,8 @@ Source Han Serif (본명조), Noto Sans CJK, Noto Serif CJK, \setmainhangulfont{Noto Sans CJK KR}[ Vertical=Alternates, RawFeature=vertical ] \end{verbatim} -\keyword{verticaltypesetting}% -문서 전체를 세로쓰기할 때 \cs{verticaltypesetting}을 선언하면 + +문서 전체를 세로쓰기할 때 \keyword{verticaltypesetting}을 선언하면 면주는 그대로 두고 본문만 세로쓰기한다.\footnote{면주의 글꼴에는 \texttt{vertical} 옵션이 없어야 할 것이다. 면주 글꼴을 따로 지정하는 것은 사용자의 몫이다. } @@ -482,10 +478,9 @@ horizontal 환경에는 가로쓰기 박스의 너비를 인자로 주어야 한 \verb|typesetclassic| 환경은 고문헌 조판에 적합한 환경이다. -불필요한 공백을 없애주는 기능은\vernote{3.0} -3.0 버전부터는 자동으로 동작하지 않는다. 사용자가 -\keyword{removeclassicspaces}% -\cs{removeclassicspaces} 명령을 주어야 CJK 글자간 공백을 +불필요한 공백을 없애주는 기능은 +\vernote{3.0}부터는 자동으로 동작하지 않는다. 사용자가 +\keyword{removeclassicspaces} 명령을 주어야 CJK 글자간 공백을 제거하기 시작한다. 간단한 일본어, 중국어 문단 정도를 식자하는 데도 이 환경을 이용할 수 있으나 @@ -505,8 +500,7 @@ horizontal 환경에는 가로쓰기 박스의 너비를 인자로 주어야 한 \end{plaintex} -\keyword{inhibitglue}% -\cs{inhibitglue} 명령은 +\keyword{inhibitglue} 명령은 해당 지점에 자동 삽입되는 공백을 영(zero)으로 만들어준다. 현대문서 조판에는 \verb|typesetmodern| 환경이 쓰인다. 이 환경은 기본값이므로 @@ -554,13 +548,12 @@ horizontal 환경에는 가로쓰기 박스의 너비를 인자로 주어야 한 \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 @@ microtype 패키지의 protrusion 기능이 잘 작동하지 않는 경우가 \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 @@ microtype 패키지의 protrusion 기능이 잘 작동하지 않는 경우가 \end{verbatim} \section{드러냄표} -\keyword{dotemph}% +\keyword{dotemph} 명령을 사용하는 \dotemph{드러냄표} 강조도 \kotex 과 대동소이하다. 기본은 글자 위에 점을 찍는 형태이나 다음 명령을 이용해 개인적으로 선호하는 기호를 드러냄표로 쓸 수 있다. @@ -675,7 +668,7 @@ microtype 패키지의 protrusion 기능이 잘 작동하지 않는 경우가 \section{밑줄긋기} \LaTeX 에서는 \uwave{ulem 패키지}를 로드하는 것만으로 자동 지원된다. -\cs{xetexkoulemsupport} 명령이 \vernote{3.3}3.3 버전부터 부활하였으므로 +\cs{xetexkoulemsupport} 명령이 \vernote{3.3}부터 부활하였으므로 플레인텍에서는 이 명령을 명시해야 할 경우가 있을 것이다. @@ -687,6 +680,11 @@ microtype 패키지의 protrusion 기능이 잘 작동하지 않는 경우가 \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} 명령 부활 diff --git a/Master/texmf-dist/tex/xetex/xetexko/xetexko.sty b/Master/texmf-dist/tex/xetex/xetexko/xetexko.sty index 67de1e2aa98..d2fc815549b 100644 --- a/Master/texmf-dist/tex/xetex/xetexko/xetexko.sty +++ b/Master/texmf-dist/tex/xetex/xetexko/xetexko.sty @@ -16,7 +16,7 @@ \ifdefined\ProvidesPackage \NeedsTeXFormat{LaTeX2e}[2020/10/01] - \ProvidesPackage{xetexko}[2021/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@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@typesetvertical\z@ @@ -405,7 +405,8 @@ \protected\def\endhorizontal{% \egroup \XeKo@unrotatebox\z@ - \lower.5\ht\z@ \box\z@ + \lower\dimexpr.5\ht\z@\ifdefined\xetexkocharraise-\xetexkocharraise\fi\relax + \box\z@ } \def\XeKo@rotatebox#1{% \setbox#1\hbox to\dimexpr\ht#1+\dp#1\bgroup @@ -429,11 +430,22 @@ \egroup } \ifcsname ver@xetexko.sty\endcsname - \def\verticaltypesetting{% - \maxdepth\z@ \typesetvertical - \dimen@\textwidth \textwidth\textheight \textheight\dimen@ - \edef\@outputpage{\unexpanded{\XeKo@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@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@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@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@undefined } +\expandafter\let\expandafter\XeKo@latin@font\the\font + \def\XeKo@font@Hangul{% + \expandafter\ifx\the\font\XeKo@raw@hangul@font \else + \expandafter\ifx\the\font\XeKo@raw@hanja@font \else + \expandafter\let\expandafter\XeKo@latin@font\the\font + \fi\fi \ifdefined\XeKo@hangul@font \XeKo@reset@options \XeKo@hangul@font - \let\XeKo@curr@font\XeKo@hangul@font + \expandafter\let\expandafter\XeKo@raw@hangul@font\the\font \fi } \def\XeKo@font@CJK{% + \expandafter\ifx\the\font\XeKo@raw@hangul@font \else + \expandafter\ifx\the\font\XeKo@raw@hanja@font \else + \expandafter\let\expandafter\XeKo@latin@font\the\font + \fi\fi \ifdefined\XeKo@hanja@font \XeKo@reset@options \XeKo@hanja@font - \let\XeKo@curr@font\XeKo@hanja@font + \expandafter\let\expandafter\XeKo@raw@hanja@font\the\font \fi } \def\XeKo@font@Latin{% - \ifdefined\XeKo@latin@font + \expandafter\ifx\the\font\XeKo@raw@hangul@font \XeKo@latin@font - \let\XeKo@curr@font\XeKo@latin@font - \fi + \else \expandafter\ifx\the\font\XeKo@raw@hanja@font + \XeKo@latin@font + \else + \expandafter\let\expandafter\XeKo@latin@font\the\font + \fi\fi } \let\XeKo@fontHG\XeKo@font@Hangul \let\XeKo@fontID\XeKo@font@CJK @@ -539,14 +566,14 @@ \protected\def\hanjacolons {\let\XeKo@fontAM\XeKo@font@CJK} \protected\def\hanjahyphens{\let\XeKo@fontAH\XeKo@font@CJK} \protected\def\hanjacjksymbols{% - \let\XeKo@fontSY\XeKo@font@Hanja - \let\XeKo@fontOP\XeKo@font@Hanja - \let\XeKo@fontCL\XeKo@font@Hanja - \let\XeKo@fontMD\XeKo@font@Hanja - \let\XeKo@fontFS\XeKo@font@Hanja - \let\XeKo@fontEX\XeKo@font@Hanja - \let\XeKo@fontLD\XeKo@font@Hanja - \let\XeKo@fontVC\XeKo@font@Hanja + \let\XeKo@fontSY\XeKo@font@CJK + \let\XeKo@fontOP\XeKo@font@CJK + \let\XeKo@fontCL\XeKo@font@CJK + \let\XeKo@fontMD\XeKo@font@CJK + \let\XeKo@fontFS\XeKo@font@CJK + \let\XeKo@fontEX\XeKo@font@CJK + \let\XeKo@fontLD\XeKo@font@CJK + \let\XeKo@fontVC\XeKo@font@CJK } \protected\def\hanjamarks{% \hanjaalphs\hanjaparens\hanjapuncts\hanjacolons\hanjahyphens\hanjacjksymbols @@ -691,16 +718,20 @@ \def\XeKo@flush@char@orphan{\expandafter \XeKo@do@flush@toks \the\XeKo@toks@ii } \def\XeKo@char@raise@start{% \ifdefined\xetexkocharraise - \ifx\XeKo@curr@font\XeKo@latin@font\else + \expandafter\ifx\the\font\XeKo@raw@hangul@font \raise\xetexkocharraise\hbox\bgroup - \fi + \else \expandafter\ifx\the\font\XeKo@raw@hanja@font + \raise\xetexkocharraise\hbox\bgroup + \fi\fi \fi } \def\XeKo@char@raise@stop{% \ifdefined\xetexkocharraise - \ifx\XeKo@curr@font\XeKo@latin@font\else + \expandafter\ifx\the\font\XeKo@raw@hangul@font \egroup - \fi + \else \expandafter\ifx\the\font\XeKo@raw@hanja@font + \egroup + \fi\fi \fi } \def\XeKo@do@flush@toks{% @@ -973,12 +1004,9 @@ } \def\XeKo@maybe@gobble{% - \ifdefined\XeKo@curr@font\expandafter\XeKo@maybe@gobble@\fi - } -\let\XeKo@do@maybe@gobble\XeKo@maybe@gobble -\def\XeKo@maybe@gobble@{% \expandafter\expandafter\expandafter\@gobble } +\let\XeKo@do@maybe@gobble\XeKo@maybe@gobble \XeTeXinterchartoks\XeTeXcharclassBoundary\XeTeXcharclassHG{% \ifnum\lastnodetype=12 % @@ -1102,7 +1130,7 @@ \or \unkern\unkern \XeKo@quarterquarter % MD AA \or \unkern\unkern \XeKo@halfzero % FS AA \or \unkern\unkern \XeKo@halfhalf % EX AA - \or \unkern\unkern % LD AA + \or \unkern\unkern \XeKo@latincjk % LD AA \or \unkern\unkern \XeKo@quarterquarter % VC AA \fi \fi @@ -1126,7 +1154,7 @@ \or \unkern\unkern \XeKo@quarterquarter % MD AO \or \unkern\unkern \XeKo@halfzero % FS AO \or \unkern\unkern \XeKo@halfhalf % EX AO - \or \unkern\unkern % LD AO + \or \unkern\unkern \XeKo@latincjk % LD AO \or \unkern\unkern \XeKo@quarterquarter % VC AO \fi \fi @@ -1518,8 +1546,8 @@ } \def\XeKo@read@hanja@hangul@line{% \read1 to \@tempa - \ifnum\count@=\@tempcnta - \global\count@\@tempa + \ifnum\XeKo@count@=\@tempcnta + \global\XeKo@count@\@tempa \else \advance\@tempcnta\@ne \expandafter\XeKo@read@hanja@hangul@line \fi @@ -1747,9 +1775,9 @@ \ifcsname ver@xetexko.sty\endcsname \def\xetexkoulemsupport{% \ifdefined\UL@hook - \UL@hook\expandafter{% - \the\UL@hook + \UL@hook\expandafter{\the\UL@hook \let\XeKo@char@orphan\XeKo@flush@char@orphan + \let\XeKo@maybe@gobble\relax % uline 안에서 폰트가 변경되는 경우를 대비 \expandafter\def\expandafter\XeKo@hangul@selectfont\expandafter{% \XeKo@hangul@selectfont @@ -1757,6 +1785,9 @@ \global\let\XeKo@temp@hangul@font\XeKo@hangul@font \gdef\XeKo@UL@hangul@font{\let\XeKo@hangul@font\XeKo@temp@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 @@ -1765,13 +1796,6 @@ \gdef\XeKo@UL@hanja@font{\let\XeKo@hanja@font\XeKo@temp@hanja@font}% \aftergroup\aftergroup\aftergroup\XeKo@UL@hanja@font \fi }% - \expandafter\def\expandafter\XeKo@latin@selectfont\expandafter{% - \XeKo@latin@selectfont - \ifdefined\XeKo@in@selectfont\else - \global\let\XeKo@temp@latin@font\XeKo@latin@font - \gdef\XeKo@UL@latin@font{\let\XeKo@latin@font\XeKo@temp@latin@font}% - \aftergroup\aftergroup\aftergroup\XeKo@UL@latin@font - \fi }% }% \fi } @@ -1780,23 +1804,30 @@ \let\XeKo@UL@hanja@patch \relax \def\xetexkoulemsupport{% \ifdefined\UL@hook - \UL@hook\expandafter{% - \the\UL@hook + \UL@hook\expandafter{\the\UL@hook \let\XeKo@char@orphan\XeKo@flush@char@orphan + \let\XeKo@maybe@gobble\relax + % uline 안에서 폰트가 변경되는 경우를 대비 \def\XeKo@UL@hangul@patch{% \global\let\XeKo@temp@hangul@font\XeKo@hangul@font - \global\let\XeKo@temp@latin@font\XeKo@latin@font - \gdef\XeKo@UL@hangul@font{% - \let\XeKo@hangul@font\XeKo@temp@hangul@font - \let\XeKo@latin@font\XeKo@temp@latin@font }% - \aftergroup\aftergroup\aftergroup\XeKo@UL@hangul@font }% + \gdef\XeKo@UL@hangul@font{\let\XeKo@hangul@font\XeKo@temp@hangul@font}% + \aftergroup\aftergroup\aftergroup\XeKo@UL@hangul@font + \XeKo@UL@latin@patch + }% \def\XeKo@UL@hanja@patch{% \global\let\XeKo@temp@hanja@font\XeKo@hanja@font - \global\let\XeKo@temp@latin@font\XeKo@latin@font - \gdef\XeKo@UL@hanja@font{% - \let\XeKo@hanja@font\XeKo@temp@hanja@font - \let\XeKo@latin@font\XeKo@temp@latin@font }% - \aftergroup\aftergroup\aftergroup\XeKo@UL@hanja@font }% + \gdef\XeKo@UL@hanja@font{\let\XeKo@hanja@font\XeKo@temp@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 + }% }% \fi } @@ -1817,14 +1848,6 @@ \afterassignment\XeKo@hangulfont@setup\font\XeKo@hangul@font } \def\XeKo@hangulfont@setup{% - \ifdefined\XeKo@curr@font - \ifx\XeKo@curr@font\XeKo@hangul@font\else - \ifx\XeKo@curr@font\XeKo@hanja@font\else - \expandafter\let\expandafter\XeKo@latin@font\the\font - \fi\fi - \else - \expandafter\let\expandafter\XeKo@latin@font\the\font - \fi \edef\XeKo@hangul@font{% \the\XeKo@hangul@font \ifdefined\xetexkohu \def\noexpand\xetexkohu{\xetexkohu}\fi @@ -1841,15 +1864,6 @@ } \def\XeKo@sethangulfont@setup{% \expandafter\edef\@tempa{% - \let\noexpand\XeKo@latin@font=% - \ifdefined\XeKo@curr@font - \ifx\XeKo@curr@font\XeKo@hangul@font \the\XeKo@latin@font \else - \ifx\XeKo@curr@font\XeKo@hanja@font \the\XeKo@latin@font \else - \the\font - \fi\fi - \else - \the\font - \fi \def\noexpand\XeKo@hangul@font{% \csname XeKo@hangul@font@\@tempb\endcsname \ifdefined\xetexkohu \def\noexpand\xetexkohu{\xetexkohu}\fi @@ -1863,14 +1877,6 @@ \afterassignment\XeKo@hanjafont@setup\font\XeKo@hanja@font } \def\XeKo@hanjafont@setup{% - \ifdefined\XeKo@curr@font - \ifx\XeKo@curr@font\XeKo@hangul@font\else - \ifx\XeKo@curr@font\XeKo@hanja@font\else - \expandafter\let\expandafter\XeKo@latin@font\the\font - \fi\fi - \else - \expandafter\let\expandafter\XeKo@latin@font\the\font - \fi \edef\XeKo@hanja@font{% \the\XeKo@hanja@font \ifdefined\xetexkohu \def\noexpand\xetexkohu{\xetexkohu}\fi @@ -1887,15 +1893,6 @@ } \def\XeKo@sethanjafont@setup{% \expandafter\edef\@tempa{% - \let\noexpand\XeKo@latin@font=% - \ifdefined\XeKo@curr@font - \ifx\XeKo@curr@font\XeKo@hangul@font \the\XeKo@latin@font \else - \ifx\XeKo@curr@font\XeKo@hanja@font \the\XeKo@latin@font \else - \the\font - \fi\fi - \else - \the\font - \fi \def\noexpand\XeKo@hanja@font{% \csname XeKo@hanja@font@\@tempb\endcsname \ifdefined\xetexkohu \def\noexpand\xetexkohu{\xetexkohu}\fi @@ -1959,28 +1956,37 @@ \latinalphs\latinparens\latinpuncts\latincolons\latinhyphens \disablehangulspacing } -\edef\verbatim@font{% - \unexpanded\expandafter{% - \verbatim@font +\IfFormatAtLeastTF{2021/06/01}{ + \AddToHook{cmd/verbatim@font/after}{% \disablehangulspacingandlinebreak \aftergroup\enablehangulspacingandlinebreak - }} + } +}{ + \edef\verbatim@font{% + \unexpanded\expandafter{% + \verbatim@font + \disablehangulspacingandlinebreak + \aftergroup\enablehangulspacingandlinebreak + }} +} \AddToHook{normalfont}{% \let \xetexkohangulfont \xetexkodefaulthangulfont \let \xetexkohanguloption \xetexkodefaulthanguloption \let \xetexkohanjafont \xetexkodefaulthanjafont \let \xetexkohanjaoption \xetexkodefaulthanjaoption } +\AddToHook{env/picture/begin}{% + \latinalphs\latinparens\latinpuncts\latincolons\latinhyphens + } + \IfHookExistsTF{selectfont}{ \AddToHook{selectfont}{% - \XeKo@latin@selectfont \XeKo@hanja@selectfont \XeKo@hangul@selectfont } }{ \RequirePackage{everysel} \EverySelectfont{% - \XeKo@latin@selectfont \XeKo@hanja@selectfont \XeKo@hangul@selectfont } @@ -2016,16 +2022,6 @@ \let\XeKo@hanja@font\XeKo@undefined \fi \fi } -\def\XeKo@latin@selectfont{% - \ifdefined\XeKo@in@selectfont\else - \begingroup - \let\XeKo@in@selectfont\empty - \selectfont - \edef\x{\endgroup - \def\noexpand\XeKo@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@latin@selectfont \XeKo@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@latin@selectfont \XeKo@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@latin@selectfont \XeKo@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@latin@selectfont \XeKo@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@latin@selectfont \XeKo@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@latin@selectfont \XeKo@hanja@selectfont } \ignorespaces -- cgit v1.2.3