From 07b27b9f39b567fc4f81f74b912005367cb59e25 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 20 Mar 2021 22:20:42 +0000 Subject: xetexko (20mar21) (branch) git-svn-id: svn://tug.org/texlive/branches/branch2020.0@58565 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/xetex/xetexko/ChangeLog | 29 ++ Master/texmf-dist/doc/xetex/xetexko/README | 8 +- .../texmf-dist/doc/xetex/xetexko/xetexko-doc.pdf | Bin 227251 -> 241892 bytes .../texmf-dist/doc/xetex/xetexko/xetexko-doc.tex | 512 ++++++++++++--------- 4 files changed, 331 insertions(+), 218 deletions(-) (limited to 'Master/texmf-dist/doc/xetex') diff --git a/Master/texmf-dist/doc/xetex/xetexko/ChangeLog b/Master/texmf-dist/doc/xetex/xetexko/ChangeLog index 3f4fe3a16c8..3419947e033 100644 --- a/Master/texmf-dist/doc/xetex/xetexko/ChangeLog +++ b/Master/texmf-dist/doc/xetex/xetexko/ChangeLog @@ -1,3 +1,32 @@ +2021-03-20 Dohyun Kim + + Version 3.0 + + * Everything is integrated into xetexko.sty. So + xetexko-font.sty, xetexko-space.sty, xetexko-vertical.sty, + xetexko-hanging.sty are now almost empty and provided for + backward compatibility only. + * New evironemt 'typesetclassic' is provided for typesetting + classical texts, but almost identical to 'japanese' or + 'chinese' environments of previous version. These latters + are kept for backward compatibility. + * New command \removeclassicspaces is provided. + * Following Hangul font options do not work any longer, but + no error will be raised though : + lowerexclamation, lowerperiod, lowercomma, lowerquestion, + postexclamationkern, postmathskip, postperiodkern, + postcommakern, postquestionkern, preexclamationkern, + preperiodkern, precommakern, prequestionkern, quoteraise, + quotewidth, PunctRaise. + * \latinnums and \latinquotes have the same effects as + \latinalphs and \latinparens, repectively. + * \defaulthangulfontfeatures is deprecated. + * \disableautojosa and \disablejamoautojosa are deprecated. + * When lmtt is ttdefault, the metrics of default Hangul + monospaced font are matched with those of lmtt. + * \disablehangulspacing will not remove \penalty50 between + Hangul characters. + 2020-02-17 Dohyun Kim Version 2.23 diff --git a/Master/texmf-dist/doc/xetex/xetexko/README b/Master/texmf-dist/doc/xetex/xetexko/README index 4b9931cf3e7..456c0f9a691 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 2.23 (2020/02/17) +XeTeX-ko Package version 3.0 (2021/03/20) ========================================= XeTeX-ko is a macro package for Xe(La)TeX which supports typesetting @@ -111,10 +111,8 @@ Set spacing between Hangul/Hanja and Latin characters. [InterHangul=] Set spacing between Hangul characters. - [PunctRaise=] -Raise Latin fullstop after Hangul character. - -See xetexko-doc.pdf for more options. + [CharRaise=] +Raise the baseline of Hangul/Hanja characters. Other User Commands diff --git a/Master/texmf-dist/doc/xetex/xetexko/xetexko-doc.pdf b/Master/texmf-dist/doc/xetex/xetexko/xetexko-doc.pdf index a84c7279191..98315b58f32 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 4fd17522348..af2d1dfaca9 100644 --- a/Master/texmf-dist/doc/xetex/xetexko/xetexko-doc.tex +++ b/Master/texmf-dist/doc/xetex/xetexko/xetexko-doc.tex @@ -7,12 +7,13 @@ \documentclass[a4paper]{article} \usepackage[hmargin=3.8cm]{geometry} \usepackage[hangul]{xetexko} -\defaultfontfeatures+{Script=Hangul, Language=Korean} \setmainhangulfont{Noto Serif CJK KR}[ UprightFont=* Light, BoldFont=* Bold, + Script=Hangul, Language=Korean, AutoFakeSlant, ] \setsanshangulfont{Noto Sans CJK KR}[ UprightFont=* DemiLight, + Script=Hangul, Language=Korean ] \setmathhangulfont{Noto Sans CJK KR}[ SizeFeatures={ @@ -20,8 +21,9 @@ {Size=6-9, Font=*}, {Size=9-, Font=* DemiLight}, }, + Script=Hangul, Language=Korean ] -\usepackage{xetexko-hanging, hologo, xcolor, ulem} +\usepackage{hologo, xcolor, ulem} \usepackage[bookmarksnumbered,hidelinks]{hyperref} \edef\verbatim{\unexpanded\expandafter{\verbatim @@ -58,64 +60,24 @@ \def\cs#1{\texttt{\textbackslash #1}} \def\hemph#1{\textsf{\bfseries #1}} \def\hparen#1{{\small\hangulparens(#1)}} -\def\hparens#1{\leavevmode\unskip---{\small #1}---\ignorespaces} +\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}}} + +\hangingpunctuations \begin{document} \title{\xetexko\ 간단 매뉴얼} \author{Dohyun Kim \normalsize <\texttt{nomos at ktug org}> \and \normalsize <\url{http://github.com/dohyunkim/xetexko}>} -\date{Version 2.23\quad 2020/02/17} +\date{Version 3.0\quad 2021/03/20} \maketitle \begin{quote}\small For a summary introduction in English, please see \verb+README+ file in this package. - - \begin{itemize}\itemsep=0pt\linespread{1.2}\selectfont - \item[v2.0]--- - \item \hyperref[sec:loading] - {플레인텍에서 xetexko.tex이 아니라 xetexko.sty를 불러야 한다.} - \item \hyperref[sec:symbolfont] - {CJK 기호문자를 \hparen{한자가 아니라} 한글 글꼴에서 찾는 것이 - 기본값이 되었다.} - \item \hyperref[sec:fontopts] - {\texttt{interpunctskern} 글꼴 옵션을 없애고 \texttt{quoteraise}를 - 추가했다.} - \item[v2.2]--- - \item \hyperref[sec:fontopts] - {글꼴 옵션 \texttt{CharRaise}를 추가했다.} - \item \hyperref[sec:fontcmds] - {\cs{fallbackhanjafont} 명령을 인식한다.} - \item \hyperref[sec:etccmds] - {\cs{everyhangul}, \cs{everyhanja} 명령이 추가되었다.} - \item \hyperref[sec:symbolfont] - {하이픈 문자를 \hparen{직전 글꼴이 아니라} 라틴 글꼴에서 찾는 - 것이 기본값이 되었다.} - \item[v2.4]--- - \item Variation Selector를 이용한 한자 변형 글리프 접근을 허용한다. - \item[v2.7]--- - \item \hyperref[sec:fontcmds] - {main/sans hangul/hanja 글꼴에는 디폴트 옵션 - \texttt{Ligatures=TeX}이 주어진다.} - \item \hyperref[sec:fontopts] - {\cs{defaulthangulfontfeatures}와 \cs{defaulthanjafontfeatures} - 명령이 생겼다.} - \item[v2.10]--- - \item 패키지 옵션 \texttt{[unfonts]}를 더는 지원하지 않는다. 이 옵션을 - 사용한 기존 문서는 기본 글꼴인 은글꼴 트루타입으로 식자될 것이다. - \item[v2.13]--- - \item \hyperref[sec:verttype] - {\texttt{horizontal} 환경이 추가되었다.} - \item[v2.23]--- - \item \hyperref[sec:fontcmds] - {디폴트 한글 폰트가 나눔글꼴에서 은글꼴로 변경되었다.} - - \end{itemize} \end{quote} -\smallskip - \section{입력 인코딩} 입력은 원칙적으로 UTF-8으로 한다. BOM (Byte Order Mark)은 있어도 좋고 없어도 좋다. @@ -176,14 +138,14 @@ fontspec에 옵션을 주려면 \xetexko를 부르기 전에 fontspec을 따로 main/sans hangul/hanja 폰트에는 따로 \verb|Ligatures=TeX| 옵션을 지시하지 않더라도 자동으로 주어진다. -한글폰트를 따로 지정하지 않으면 영문폰트가 한글에도 사용된다. -한자폰트를 따로 지정하지 않으면 한글폰트가 한자에도 적용된다. -\LaTeX 에서는 영문폰트에 한글·한자 글리프가 없고 한글·한자 폰트도 따로 +\hemph{프리앰블}에서 한글 폰트를 지정하지 않으면 영문폰트가 한글에도 적용되고 +한자폰트를 지정하지 않으면 한글폰트가 한자에도 적용된다. +영문폰트에 한글·한자 글리프가 없고 한글·한자 폰트도 따로 지시하지 않았다면 \hemph{은바탕/은돋움 트루타입}을 한글·한자 글꼴의 기본값으로 사용한다. \begin{plaintex} -플레인텍이라면 다음처럼 한다. +플레인텍에서도 기본값으로 은바탕을 한글에 사용한다. 한글폰트를 지시하는 방법은 다음과 같다. \begin{verbatim} \font\tenrm="[lmroman10-regular]:mapping=tex-text" at 10pt \hangulfont="[UnBatang]:mapping=tex-text" at 10pt @@ -193,7 +155,7 @@ main/sans hangul/hanja 폰트에는 따로 \verb|Ligatures=TeX| 옵션을 지시 \keyword{fallbackhanjafont}% \cs{fallbackhanjafont}를 정의해두면 \hemph{한자 글꼴에도 없는 한자}를 -이 글꼴에서 찾아 식자한다. \verb|\newfontfamily| 명령 등으로 정의한다. +이 글꼴에서 찾아 식자한다. \cs{newfontfamily} 명령 등으로 정의한다. \section{글꼴 명령 (계속)} \begin{verbatim} @@ -209,31 +171,30 @@ main/sans hangul/hanja 폰트에는 따로 \verb|Ligatures=TeX| 옵션을 지시 \newhangulfontface \myhangul{NanumGothic Bold}[Ligatures=TeX] \newhanjafontface \myhanja {UnDotumBold}[Ligatures=TeX] \end{verbatim} -fontspec 패키지의 \verb+\setfontfamily+ \verb+\newfontface+ 명령에 해당한다. +fontspec 패키지의 \cs{setfontfamily} \cs{setfontface} 명령에 해당한다. \begin{verbatim} \addhangulfontfeature{Color=FF0000,InterHangul=-.1em} \addhanjafontfeature {Color=00FF00} \end{verbatim} -fontspec의 \verb+\addfontfeature+ 명령을 구현한 것이다. +fontspec의 \cs{addfontfeature} 명령을 구현한 것이다. fontspec과 마찬가지로 각 명령의 끝에 `s'를 붙여도 된다. 참고로, 한자와 한글을 같은 글꼴로 식자하고 싶을 때 글꼴 설정을 번거롭게 두 번 할 필요 없이 한글 글꼴만 설정한 뒤 간단히 \keyword{hanjabyhangulfont}% \cs{hanjabyhangulfont}를 선언하면 된다.% -\footnote{앞 절의 main/sans 글꼴 명령들과 달리 한글 폰트가 자동으로 - 한자에도 적용되지 않는다는 말이다. 어쨌든 이미 한자 폰트가 지정돼 있는 - 상태이기 때문이다.} +\footnote{프리앰블의 main/sans/mono 글꼴 명령들과 달리 새로 지정한 한글 폰트가 + 한자에도 자동으로 적용되지는 않는다는 말이다.} \section{기호 글꼴 명령}\label{sec:symbolfont} 라틴 문자나 CJK 기호를 어떤 폰트로 식자할 것인가를 사용자가 지정할 수 있다. \begin{verbatim} - \xetexkofontregime{hangul}[quotes=latin, puncts=prevfont] + \xetexkofontregime{hangul}[parens=latin, puncts=prevfont] \end{verbatim} 모든 라틴 문자와 CJK 기호들을 원칙적으로 한글 폰트로 식자하되, -따옴표는 라틴 폰트로 찍고 마침표 따위는 현재 폰트를 따라간다는 의미이다. +괄호류는 라틴 폰트로 찍고 마침표 따위는 현재 폰트를 따라간다는 의미이다. 명령의 인자에는 latin, hangul, hanja, prevfont 중 하나가 올 수 있어서 각각 라틴 폰트, 한글 폰트, 한자 폰트로 식자하라는 뜻이며 마지막의 prevfont는 \hemph{현재 활성화된 폰트를 그대로 이어받도록} 지시한다. @@ -242,17 +203,20 @@ fontspec과 마찬가지로 각 명령의 끝에 `s'를 붙여도 된다. 옵션 키의 종류와 의미는 다음과 같으며 각 키 값은 인자의 경우와 같다. \begin{description}\itemsep0pt\hangulparens \item[alphs] 라틴 알파벳 및 아래에 해당하지 않는 모든 라틴 문자 -\item[nums] 라틴 숫자 \hparen{수식 제외} \item[parens] 라틴 괄호, 중괄호, 대괄호, 꺽쇠 -\item[quotes] accent grave, apostrophy 및 이들의 리거쳐 \item[colons] 라틴 콜론, 세미콜론, endash, emdash \item[hyphens] 하이픈, 하이픈으로 이루어지는 리거쳐, 슬래시 \item[puncts] 마침표, 물음표, 느낌표, 쉼표 \item[cjksymbols] CJK 구두점, 괄호 및 상징기호 \end{description} -기본값은 다음 명령을 준 것과 동일하다. \hemph{CJK 기호가 한글폰트}로, -\hemph{하이픈은 라틴폰트}로 -식자되게 기본값이 변경되었음에 유의할 것. + +종전에\vernote{3.0} +라틴숫자에 적용되던 \verb|nums| 옵션과 +라틴 인용부호에 적용되던 \verb|quotes| 옵션이 +3.0버전부터는 +각각 \verb|alphs| 옵션과 \verb|parens| 옵션에 통합되었음에 유의하라. + +기본값은 다음 명령을 준 것과 동일하다. \begin{verbatim} \xetexkofontregime {latin}% [ puncts=prevfont, colons=prevfont, cjksymbols=hangul ] @@ -261,11 +225,9 @@ fontspec과 마찬가지로 각 명령의 끝에 `s'를 붙여도 된다. 플레인텍에서는 다음 명령을 사용한다. \LaTeX에서도 쓸 수 있다. \begin{verbatim} \latinalphs \hangulalphs \hanjaalphs \prevfontalphs - \latinnums \hangulnums \hanjanums \prevfontnums \latinparens \hangulparens \hanjaparens \prevfontparens - \latinquotes \hangulquotes \hanjaquotes \prevfontquotes - \latinhyphens \hangulhyphens \hanjahyphens \prevfonthyphens \latincolons \hangulcolons \hanjacolons \prevfontcolons + \latinhyphens \hangulhyphens \hanjahyphens \prevfonthyphens \latinpuncts \hangulpuncts \hanjapuncts \prevfontpuncts \latincjksymbols \hangulcjksymbols \hanjacjksymbols \prevfontcjksymbols \end{verbatim} @@ -277,95 +239,70 @@ fontspec과 마찬가지로 각 명령의 끝에 `s'를 붙여도 된다. \section{간격 조정 옵션}\label{sec:fontopts} \dotemph{고정폭 글꼴을 제외한} 한글·한자 글꼴 명령에 미세 간격 옵션을 -쓸 수 있다. +쓸 수 있다. 예컨대 \begin{verbatim} \setsanshangulfont{NanumGothic}[InterHangul=-.04em] \end{verbatim} -이 때 나눔고딕 글꼴에만 한글 마이너스 자간이 작동한다. -허용되는 옵션은 다음과 같으며 기본값은 다른 언급이 없는 한 모두 0pt이다. +이 때 나눔고딕 글꼴에 한글 마이너스 자간이 작동한다. + +허용되는 옵션은 다음과 같다. \begin{description}\itemsep0pt -\item[hu, InterLatinCJK] - 영문자와 한글 사이 간격을 지시한다. - 영문 괄호와 한글 사이 간격은 그 두 배이다. 기본값 0.05em. -\item[interhchar, InterHangul] - {\addhangulfontfeature{interhchar=0.3em} 한글 자간을} 지시한다.% +\item[InterLatinCJK, hu]\quad + {\addhangulfontfeature{InterLatinCJK=.5em} Latin문자와} 한글 사이 간격을 지시한다. + 기본값 \verb|0.05em|이며 + 수식과 CJK 문자 사이에는 이 값의 두 배가 적용된다. + 아래에서 설명할 고문헌조판 모드에서는 기본값이 \verb|0.25em|이며 + 수식 직후에 들어가는 값도 동일하다. + +\item[InterHangul, interhchar]\quad + {\addhangulfontfeature{InterHangul=0.3em} 한글자간을} 지시한다. + 기본값은 \verb|0pt|.% \footnote{한자 자간 옵션은 제공하지 않는다. 혹시 한자 자간을 조절하고 싶다면 \cs{XKinterhanjabreak}을 재정의하라. 참고로 한글 자간을 조절하는 저수준 명령은 \cs{XKinterhangulbreak} 이다.} -\item[charraise, CharRaise] + +\item[CharRaise, charraise]\quad 글자의 {\addhangulfontfeature{charraise=.5ex}수직 위치}를 조절한다. - 다른 글꼴 관련 효과와 충돌할 수 있어 주의를 요한다. -\item[lowerperiod, PunctRaise] - \verb+lowerperiod+는 CJK 문자 직후의 마침표를 아래로 끌어내리는 - {\addhangulfontfeature{lowerperiod=.5ex}정도를 지시한다. - 반대로 \verb+PunctRaise+ 옵션은 끌어올리는 정도를 지시한다.} -\item[lowerquestion] - CJK 문자 직후의 물음표를 아래로 끌어내리는 정도. -\item[lowerexclamation] - CJK 문자 직후의 느낌표를 아래로 끌어내리는 정도. -\item[lowercomma] - CJK 문자 직후의 쉼표를 아래로 끌어내리는 정도. -\item[preperiodkern] - {\addhangulfontfeature{preperiodkern=1ex}CJK 문자 직후의 마침표 앞에 - 들어가는 간격.} -\item[postperiodkern] - {\addhangulfontfeature{postperiodkern=1ex}CJK 문자 직후의 마침표 뒤에 - 들어가는 간격.} -\item[prequestionkern] - CJK 문자 직후의 물음표 앞에 들어가는 간격. -\item[postquestionkern] - CJK 문자 직후의 물음표 뒤에 들어가는 간격. -\item[preexclamationkern] - CJK 문자 직후의 느낌표 앞에 들어가는 간격. -\item[postexclamationkern] - CJK 문자 직후의 느낌표 뒤에 들어가는 간격. -\item[precommakern] - CJK 문자 직후의 쉼표 앞에 들어가는 간격. -\item[postcommakern] - CJK 문자 직후의 쉼표 뒤에 들어가는 간격. -\item[quoteraise] - 영문 인용부호\hparens{아스키문자로 입력하는 것}를 - 위로 끌어올리는 정도. -\item[quotewidth] - 영문 인용부호의 폭. 기본값은 natural width. -\item[postmathskip] - 수식과 CJK 문자 사이의 간격. 기본값은 위 hu 값의 두 배. + 기본값은 \verb|0pt|. \end{description} +3.0버전부터는\vernote{3.0} 다음 옵션들이 아무 효과도 가져오지 않게 +변경되었음을 주의하라. +\begin{verbatim} + lowerperiod, PunctRaise + lowerquestion + lowerexclamation + lowercomma + preperiodkern + postperiodkern + prequestionkern + postquestionkern + preexclamationkern + postexclamationkern + precommakern + postcommakern + quoteraise + quotewidth + postmathskip +\end{verbatim} \begin{plaintex} -플레인텍에서는 다음과 같은 방법으로 제어할 수 있다. 기본값은 \LaTeX에서와 같다. + 플레인텍에서는 다음과 같은 방법으로 제어할 수 있다. 기본값은 \LaTeX에서와 같다. \begin{verbatim} \def\xetexkohu{0.05em } \def\xetexkointerhchar{-0.04em } \def\xetexkocharraise{-0.1ex } - \def\xetexkolowerperiod{0.15ex } - \def\xetexkolowerquestion{0.15ex } - \def\xetexkolowerexclamation{0.15ex } - \def\xetexkolowercomma{0.15ex } - \def\xetexkopreperiodkern {-0.1em } - \def\xetexkopostperiodkern{} - \def\xetexkoprequestionkern {0.2em } - \def\xetexkopostquestionkern{0.2em } - \def\xetexkopreexclamationkern {0.1em } - \def\xetexkopostexclamationkern{0.1em } - \def\xetexkoprecommakern {0.1em } - \def\xetexkopostcommakern{0.1em } - \def\xetexkoquoteraise{0.1em } - \def\xetexkoquotewidth{0.33em } - \def\xetexkopostmathskip{0.2em } \end{verbatim} + 이것들을 선언해두고나서 \cs{hangulfont} 명령으로 글꼴을 + 지정하면 기 정의된 옵션들이 한글폰트 명령에 자동 포함된다. + 한자폰트의 경우도 같다. 따라서 한글폰트 옵션과 + 한자폰트 옵션을 서로 달리 지시할 수 있다. \end{plaintex} -\LaTeX 에서는 한글·한자 글꼴의 기본 옵션을 지정할 수 있다. -\begin{verbatim} - \defaulthangulfontfeatures {InterLatinCJK=.1em, InterHangul=-.1em} - \defaulthangulfontfeatures+{InterLatinCJK=.1em, InterHangul=-.1em} - \defaulthanjafontfeatures {InterLatinCJK=.1em} - \defaulthanjafontfeatures +{InterLatinCJK=.1em} -\end{verbatim} -fontspec 패키지의 \cs{defaultfontfeatures}에 상응하는 것이지만, -오직 이 절에서 언급한 옵션들만 인식하며 나머지는 무시된다는 점을 유의하라. - +종전에 한글·한자 글꼴의 옵션 기본값을 지정하던\vernote{3.0} +\cs{defaulthangulfontfeatures} 및 \cs{defaulthanjafontfeatures} 명령이 +3.0 버전부터는 +아무런 기능을 하지 않게 변경되었음에 유의하라. +폰트옵션의 수가 적어졌기 때문에 이 명령의 유용성도 거의 사라졌다고 판단했다. \section{그밖의 명령들}\label{sec:etccmds} \begin{description} @@ -373,42 +310,43 @@ fontspec 패키지의 \cs{defaultfontfeatures}에 상응하는 것이지만, 한글 또는 한자에 대해 글자마다 지시한 명령을 수행한다. 예컨대 \verb|\everyhangul{\fbox{#1}}| 명령은 모든 {\everyhangul{\fbox{#1}}\fboxsep=1pt 한글 주위에 박스}를 - 두른다. 다른 글꼴 옵션과 충돌할 수 있으므로 - 주의를 요한다. + 두른다. \item[\cs{disablekoreanfonts}] -한글폰트를 따로 설정하지 않고 영문 폰트를 따라간다. -이 때 \verb|\setmainfont| 따위가 한글과 한자에도 적용된다. - - \item[\cs{disableautojosa}] -혹시 있을지 모를 예기치 못한 기능간 충돌에 대비하여 자동조사 기능을 -끄는 명령을 제공한다. - - \item[\cs{disablejamoautojosa}] -옛한글 자모에 한해서 자동조사 기능을 끈다. -옛한글 자모에 영향을 주는 \verb+Mapping+ 글꼴 옵션을 사용해야 한다면 -이 명령을 선언해두어야 정상 작동한다. + 한글폰트를 따로 설정하지 않고 영문 폰트를 따라간다. + 이 때 \cs{setmainfont} 따위가 한글과 한자에도 적용된다. \item[\cs{disablecjksymbolspacing}] -CJK 구두점의 폭을 0.5em으로 강제설정하는 것을 방지한다. -\xetexko는 낡은 고정폭 한글 폰트들을 고려하여 이 기능을 구현하였으나 -현대적인 한글 폰트는 이러한 과잉친절이 오히려 성가실 경우가 있다. + CJK 구두점의 폭을 \verb|0.5em|으로 강제설정하는 것을 방지한다. + \xetexko는 낡은 고정폭 한글 폰트들을 고려하여 이 기능을 구현하였으나 + 현대적인 한글 폰트는 이러한 과잉친절이 오히려 성가실 경우가 있다. + + \cs{nocompresspunctuations}는 이 명령과 동의어이다.\\ + 반대로 + \keyword{compresspunctuations}% + \cs{compresspunctuations}는 반각을 강제하라는 명령이다. + 이것이 기본값이므로 특별한 경우가 아니면 따로 선언할 필요가 없다. \item[\cs{disablehangulspacing}] -한글조판에 관련된 모든 미세간격을 영(zero)으로 돌린다. 한글 자간도, -영문자와 한글 사이 간격도, 구두점 위치 조정도, 구두점 사이의 간격도 -모두 작동하지 않는다. 그러나 CJK 글자 사이의 줄바꿈 허용만은 유지된다. + 한글조판에 관련된 모든 미세간격을 영(zero)으로 돌린다. 한글 자간, + 영문자와 한글 사이 간격, 구두점과 한글^^b7한자 사이 간격 등이 작동하지 않는다. + 그러나 CJK 글자 사이의 줄바꿈 허용만은 유지된다. 또한 + \verb|CharRaise|는 자간과 무관하므로 여전히 작동한다. \item[\cs{disablehangulspacingandlinebreak}] -위 명령과 마찬가지로 모든 미세간격을 금지할 뿐만 아니라 CJK 글자 사이의 -줄바꿈까지도 먹지 않게 한다. -일부 고급 오픈타입 기능을 사용하기 위해서 이 명령이 필요할 때가 있다. -이를테면, 폰트가 지원하는 한글 리거쳐가 동작하지 않을 때 이 명령을 -선언하면 문제가 해결된다.\footnote{만약 사용자가 - {\ttfamily\string\XeTeXlinebreaklocale}도 선언했다면 - {\ttfamily\string\XeTeXlinebreaklocale""} 명령도 요구된다. - 이 원시명령은 그룹 내에서 쓰더라도 항상 전역적인 효과를 가짐을 유의하라} + 위 명령과 마찬가지로 모든 간격을 금지할 뿐만 아니라 CJK 글자 사이의 + 줄바꿈까지도 먹지 않게 한다. + 일부 고급 오픈타입 기능을 사용하기 위해서 이 명령이 필요할 때가 있다. + 이를테면, 폰트가 지원하는 한글 리거쳐가 동작하지 않을 때 이 명령을 + 선언하면 문제가 해결된다. + + \cs{enablehangulspacingandlinebreak}는 이 명령의 효력을 원래대로 + 되돌리는 기능을 한다. + \end{description} +3.0 버전부터는\vernote{3.0} 종전의 +\cs{disableautojosa} 및 \cs{disablejamoautojosa} 명령이 아무 기능도 하지 않게 +변경되었음을 유의하라. \section{옛한글} @@ -419,7 +357,10 @@ CJK 구두점의 폭을 0.5em으로 강제설정하는 것을 방지한다. 있으며 공개폰트로는 은바탕, 함초롬~LVT, Source Han Sans (본고딕), Source Han Serif (본명조), Noto Sans CJK, Noto Serif CJK, 나눔명조옛한글, 나눔바른고딕옛한글, KoPubWorld 바탕, KoPubWorld 돋움 등이 있다. -또한 \textsf{\char"1112\char"119E\char"11AB글}에 번들된 함초롬 글꼴에도 +또한 +%%% BUG: \char를 이용하여 옛한글을 찍으면 자모가 분리된다. +%%% 코드 수정 요망. +\textsf{^^^^1112^^^^119e^^^^11ab글}에 번들된 함초롬 글꼴에도 최근 옛한글 지원이 추가되었다.} \begin{figure} @@ -452,9 +393,7 @@ Source Han Serif (본명조), Noto Sans CJK, Noto Serif CJK, \section{세로쓰기}\label{sec:verttype} 세로쓰기를 위한 글꼴 지정은 다음과 같다. -역시 고급 오픈타입 기능을 이용하는 것이므로 폰트가 이를 지원해야 한다.% -\footnote{폰트의 세로쓰기 글자폭이 가로쓰기와 다르다면 - \cs{verticalem=1.05em} 같은 선언을 미리 해두는 게 좋다.} +역시 고급 오픈타입 기능을 이용하는 것이므로 폰트가 이를 지원해야 한다. \begin{verbatim} \setmainhangulfont{Noto Sans CJK KR}[ Vertical=Alternates, RawFeature=vertical ] @@ -462,17 +401,19 @@ Source Han Serif (본명조), Noto Sans CJK, Noto Serif CJK, \keyword{verticaltypesetting}% 문서 전체를 세로쓰기할 때 \cs{verticaltypesetting}을 선언하면 면주는 그대로 두고 본문만 세로쓰기한다.\footnote{면주의 글꼴에는 - \texttt{Vertical} 옵션이 없어야 할 것이다. + \texttt{vertical} 옵션이 없어야 할 것이다. 면주 글꼴을 따로 지정하는 것은 사용자의 몫이다. } + 문서의 일부를 세로쓰기 하려면 \verb|vertical| 환경을 이용한다. vertical 환경의 인자는 세로쓰기 박스의 세로 길이이다. -보통 그 뒤에 세로쓰기에 사용할 글꼴 명령이 온다. \begin{figure} \begin{example} -\hfil\begin{vertical}{16em} +\hfil\begin{vertical}{18em} + \spaceskip=.5em plus .08em minus .04em \sffamily\addhangulfontfeatures{Vertical=Alternates,CharRaise=.5ex, RawFeature=vertical} \hanjabyhangulfont \parindent-1em\leftskip1em + \typesetclassic \latinparens \noindent 님의 침묵 (The Silent Beloved) \smallbreak \hfil\hfil 한 용 운\hfil @@ -486,7 +427,15 @@ vertical 환경의 인자는 세로쓰기 박스의 세로 길이이다. 제곡조를못이기는 사랑의노래는 님의沈默을 휩싸고돔니다\par \end{vertical}\hfil \end{example} -\caption{세로쓰기 보기}\label{fig:vertical} + \caption{\linespread{1.2}\selectfont + 세로쓰기 보기.\quad + \sffamily\small + Noto Sans CJK KR 글꼴을 이용했다. 이 글꼴의 세로쓰기 어간이 1em으로 + 매우 커서 \cs{spaceskip=0.5em plus.08em minus.04em}을 강제했다. + \texttt{CharRaise=.5ex}도 글꼴 옵션에 추가했다. + 또한 \cs{latinparens}를 선언했는데 + 제목 다음의 괄호가 CJK 괄호가 아니라 아스키 괄호이기 때문이다. + }\label{fig:vertical} \end{figure} \begin{verbatim} @@ -515,40 +464,88 @@ vertical 환경의 인자는 세로쓰기 박스의 세로 길이이다. horizontal 환경에는 가로쓰기 박스의 너비를 인자로 주어야 한다. 가로쓰기 영역의 폰트 설정은 사용자의 몫이다. -\section{고문헌·일본어·중국어} +\section{고문헌 조판} + +\verb|typesetclassic| 환경은 고문헌 조판에 적합한 환경이다. + +불필요한 공백을 없애주는 기능은\vernote{3.0} +3.0 버전부터는 자동으로 동작하지 않는다. 사용자가 +\keyword{removeclassicspaces}% +\cs{removeclassicspaces} 명령을 주어야 CJK 글자간 공백을 +제거하기 시작한다. + +간단한 일본어, 중국어 문단 정도를 식자하는 데도 이 환경을 이용할 수 있으나 +각 언어의 전용 패키지들에 비해 기능이 많이 모자란다.\footnote{% + 그러나 \texttt{japanese}, \texttt{chinese} 환경이 여전히 제공된다. + 특히 중국어 간체를 식자할 때는 \texttt{chinese}를 명시적으로 이용하는 게 좋다. + \texttt{Schinese} 환경은 \texttt{chinese}의 다른 이름이다. + \texttt{Tchinese}도 호환성을 위해 남겨두었다. } -띄어쓰기가 없는 옛문헌이나 일본어 단락 따위를 삽입할 때 -\verb|japanese| 혹은 \verb|chinese| 환경을 선언하는 것이 좋다. -들여쓰기\footnote {들여쓰기 기본값은 japanese는 1em 이고 chinese는 2em 이다.} -및 자간 조절이 자동으로 이루어지며 -사용자가 입력한 불필요한 공백도 없애준다. -\verb|Schinese| 환경은 chinese의 다른 이름이다. -\verb|Tchinese|도 제공하는데 중국어 번체 글꼴을 사용한다면 이 환경을 이용하라. -일반적으로 우리 고문헌 조판에는 japanese 환경이 더 적합하다. +\begin{plaintex} + 플레인텍에서는 다음 방식으로 사용한다. + \begin{verbatim} + \begingroup \typesetclassic + ... + \endgroup + \end{verbatim} +\end{plaintex} + + +\keyword{inhibitglue}% +\cs{inhibitglue} 명령은 +해당 지점에 자동 삽입되는 공백을 영(zero)으로 만들어준다. +현대문서 조판에는 \verb|typesetmodern| 환경이 쓰인다. 이 환경은 기본값이므로 +특별한 경우가 아니면 따로 선언할 필요가 없다. + +\def\analect{% + \removeclassicspaces + 子曰:「學而時習之,不亦說乎?有朋自遠方來,不亦樂乎?人不知而不慍,不亦君子乎?」\par + 有子曰:「其爲人也 孝弟,而好犯上者,鮮矣!不好犯上,而好作亂者,未之有也! + 君子務本,本立而道生;孝弟也者,其爲仁之本與?」\par + 子曰:「巧言令色,鮮矣仁!」\par + 曾子曰:「吾日三省吾身:爲人謀,而不忠乎?與朋友交,而不信乎?傳,不習乎?」\par + 子曰:「道千乘之國,敬事而信,節用而愛人,使民以時。」\par + 子曰:「弟子入則孝,出則弟;謹而信,汎愛衆;而親仁,行有餘力,則以學文。」 +} \begin{figure} \begin{example}\linespread{1.3} - \sffamily\japanese -子曰:「學而時習之,不亦說乎?有朋自遠方來,不亦樂乎?人不知而不慍,不亦君子乎?」\par -有子曰:「其爲人也孝弟,而好犯上者,鮮矣!不好犯上,而好作亂者,未之有也!君子務本,本立而道生;孝弟也者,其爲仁之本與?」\par -子曰:「巧言令色,鮮矣仁!」\par -曾子曰:「吾日三省吾身:爲人謀,而不忠乎?與朋友交,而不信乎?傳,不習乎?」\par -子曰:「道千乘之國,敬事而信,節用而愛人,使民以時。」\par -子曰:「弟子入則孝,出則弟;謹而信,汎愛衆;而親仁,行有餘力,則以學文。」 + \sffamily\typesetclassic + \analect \end{example} -\caption{고문헌 조판 보기. japanese 환경을 이용했다.}\label{fig:ancientdoc} +\caption{고문헌 조판 보기.\quad + \sffamily\small + typesetclassic 환경을 이용했다. + \cs{removeclassicspaces}도 선언했다. + }\label{fig:ancientdoc} \end{figure} -\keyword{inhibitglue}% -\cs{inhibitglue} 명령은 일본어 등 환경에서 가끔 유용한데, -해당 지점에 자동 삽입되는 공백을 영(zero)으로 만들어준다. +\begin{figure} + \begin{example}\linespread{1.3} + \hfil\begin{vertical}{18em} + \sffamily\typesetclassic + \addhangulfontfeatures{Vertical=Alternates,CharRaise=.5ex, + RawFeature=vertical} + \hanjabyhangulfont \parindent-1em\leftskip1em + \analect + \end{vertical}\hfil + \end{example} + \caption{고문헌 세로쓰기 조판 보기.\quad + \sffamily\small + vertical 환경을 이용했다. + \cs{hangingpunctuations}가 선언되어 있어서 구두점이 + 행 끝에 걸린 것을 볼 수 있다. + }\label{fig:ancientdocvertical} +\end{figure} \section{매달린 구두점} 마침표, 쉼표, 인용부호를 판면 바깥에 식자하여 행 끝에 매달리게 만든다. -\begin{verbatim} - \usepackage{xetexko-hanging} -\end{verbatim} -\cs{hangingpunctuation} 명령은 버전 2.2 이후 불필요해졌다. + +3.0 버전부터는\vernote{3.0} \keyword{hangingpunctuations}% +\cs{hangingpunctuations} 명령으로 활성화한다. +\cs{hangingpunctuation}은 이 명령과 동의어이다. +당분간 xetexko-hanging.sty 을 로드하는 것으로도 활성화되도록 해 두었다. + 글자 내밀기 기본값에 차이가 좀 있긴 하지만, microtype 패키지를 로드하는 것으로도 유사한 결과를 얻을 수 있다. @@ -575,8 +572,8 @@ microtype 패키지를 로드하는 것으로도 유사한 결과를 얻을 수 \begin{quote} \verb|$가^{나^다}$|\quad$\Rightarrow\quad가^{나^다}$ \end{quote} -수식 한글은 따로 설정하지 않으면 문서의 기본 글꼴을 따라가지만 -굳이 설정하려면 다음과 같이 한다. 이 명령은 플레인텍에서도 쓸 수 있다. +3.0 버전부터는\vernote{3.0} +자동으로 수식한글을 잡아주지 않으므로 사용자가 다음과 같이 명시적으로 선언해야 한다. \begin{verbatim} \setmathhangulfont{Noto Sans CJK KR}[ SizeFeatures={ {Size=-6, Font=* Medium}, @@ -584,6 +581,19 @@ microtype 패키지를 로드하는 것으로도 유사한 결과를 얻을 수 {Size=9-, Font=* DemiLight} } ] \end{verbatim} +\begin{plaintex} + 플레인텍에서는 \cs{mathhangulfont=UnBatang}과 같이 설정한다. + + 또는 좀 더 그럴듯하게 하려면:\par + \leftskip=3em\noindent + \begin{verbatim} + \font\texthangul="Noto Sans CJK KR DemiLight" at 10pt + \font\scripthangul="Noto Sans CJK KR Regular" at 7pt + \font\scriptscripthangul="Noto Sans CJK KR Medium" at 5pt + \setmathhangulfonts\texthangul\scripthangul\scriptscripthangul + \end{verbatim} +\end{plaintex} + 현재 한글만 쓸 수 있게 설정되어 있다. 한자도 수식에 직접 입력하려면 사용자는 \begin{verbatim} @@ -592,7 +602,7 @@ microtype 패키지를 로드하는 것으로도 유사한 결과를 얻을 수 명령으로 유니코드 블럭을 추가 지정해야 한다. \section{자동조사} -자동조사는 \kotex 의 경우와 기본적으로 동일하게 동작한다. +자동조사는 \kotex 의 경우와 대체로 동일하게 동작한다. 게다가 문장 중에서도 동작하고 플레인텍에서까지 사용할 수 있다. 그럼에도 불구하고 사용자가 임의로 제어할 필요가 생긴다면 @@ -622,24 +632,100 @@ microtype 패키지를 로드하는 것으로도 유사한 결과를 얻을 수 \section{고아글자 문제} 어느 정도는 고아글자가 생기지 않게 만들어 두었으나, \XeTeX 에서는 고아글자를 자동으로 완전히 회피하기는 어렵다. -필요하다면 사용자가 적당한 곳에 \verb|\nobreak| 명령을 삽입해야 한다. +필요하다면 사용자가 적당한 곳에 \cs{nobreak} 명령을 삽입해야 한다. \section{한국어 번호} 항목 번호를 한국어 기호로 붙일 수 있다. \kotex과 마찬가지로 -\verb|\jaso| \verb|\gana| \verb|\ojaso| \verb|\ogana| \verb|\pjaso| -\verb|\pgana| \verb|\onum| \verb|\pnum| \verb|\oeng| \verb|\peng| -\verb|\hnum| \verb|\Hnum| \verb|\hroman| \verb|\hRoman| \verb|\hNum| -\verb|\hanjanum| +\cs{jaso} \cs{gana} \cs{ojaso} \cs{ogana} \cs{pjaso} +\cs{pgana} \cs{onum} \cs{pnum} \cs{oeng} \cs{peng} +\cs{hnum} \cs{Hnum} \cs{hroman} \cs{hRoman} \cs{hNum} +\cs{hanjanum} 따위를 사용한다. \section{밑줄긋기} -\LaTeX에서는 \uline{ulem 패키지}를 로드하는 것만으로 자동 지원된다. -\begin{plaintex} -플레인텍에서는 패키지 로드 후 사용자가 \cs{xetexkoulemsupport} -명령을 내려주어야 한다. -\end{plaintex} - -\hfill \fboxsep=-\fboxrule \fbox{\vbox to1em{\hbox to1em{\hss}\vss}} - +\LaTeX에서는 \uwave{ulem 패키지}를 로드하는 것만으로 자동 지원된다. + +3.0 버전부터는\vernote{3.0} \cs{xetexkoulemsupport} 선언이 +불필요하게 되었다. 이 명령은 호환성을 위해 남겨두었으나 아무 일도 +하지 않는다. + +%\hfill \fboxsep=-\fboxrule \fbox{\vbox to1em{\hbox to1em{\hss}\vss}} + +\bigskip + +\section*{주요 변경 이력} + +\begin{small}\linespread{1.2}\selectfont +\begin{description}\itemsep=0pt + \item[v3.0] 2021-03-20 + \begin{itemize} + \item \verb|typesetclassic|, \verb|typesetmodern| 환경이 추가되었다. + \item \cs{removeclassicspaces} 명령이 추가되었다. + \item \cs{compresspunctuations}, \cs{nocompresspunctuations} 명령이 추가되었다. + \item \cs{hangingpunctuations} 명령이 추가되었다. + \item 디폴트 고정폭 한글 폰트의 메트릭을 Latin Modern Mono에 + 맞추어 조정하였다. + \item 글꼴옵션이 \verb|InterLatinCJK|, \verb|InterHangul|, \verb|CharRaise| + 외에는 모두 무력화되었다. + \item \cs{xetexkoregime}의 키값 \verb|nums|와 \verb|quotes|가 + 각각 \verb|alphs|와 \verb|parens|에 통합되었다. + \item \cs{xetexkoulemsupport} 명령이 무력화되었다. + \item \cs{disableautojosa}, \cs{disablejamoautojosa} 명령이 무력화되었다. + \item \cs{defaulthanjafontfeatures} 등의 명령이 무력화되었다. + \item 수식한글을 자동으로 잡아주지 않는다. + \end{itemize} + \item[v2.23] 2020-02-17 + \begin{itemize} + \item \hyperref[sec:fontcmds] + {디폴트 한글 폰트가 나눔글꼴에서 은글꼴로 변경되었다.} + \end{itemize} + \item[v2.13] 2015-06-16 + \begin{itemize} + \item \hyperref[sec:verttype] + {\texttt{horizontal} 환경이 추가되었다.} + \end{itemize} + \item[v2.10] 2015-01-16 + \begin{itemize} + \item 패키지 옵션 \texttt{[unfonts]}를 더는 지원하지 않는다. 이 옵션을 + 사용한 기존 문서는 기본 글꼴인 은글꼴 트루타입으로 식자될 것이다. + \end{itemize} + \item[v2.7] 2014-06-17 + \begin{itemize} + \item \hyperref[sec:fontcmds] + {main/sans hangul/hanja 글꼴에는 디폴트 옵션 + \texttt{Ligatures=TeX}이 주어진다.} + \item \hyperref[sec:fontopts] + {\cs{defaulthangulfontfeatures}와 \cs{defaulthanjafontfeatures} + 명령이 생겼다.} + \end{itemize} + \item[v2.4] 2014-02-02 + \begin{itemize} + \item Variation Selector를 이용한 한자 변형 글리프 접근을 허용한다. + \end{itemize} + \item[v2.2] 2013-12-06 + \begin{itemize} + \item \hyperref[sec:fontopts] + {글꼴 옵션 \texttt{CharRaise}를 추가했다.} + \item \hyperref[sec:fontcmds] + {\cs{fallbackhanjafont} 명령을 인식한다.} + \item \hyperref[sec:etccmds] + {\cs{everyhangul}, \cs{everyhanja} 명령이 추가되었다.} + \item \hyperref[sec:symbolfont] + {하이픈 문자를 \hparen{직전 글꼴이 아니라} 라틴 글꼴에서 찾는 + 것이 기본값이 되었다.} + \end{itemize} + \item[v2.0] 2013-03-27 + \begin{itemize} + \item \hyperref[sec:loading] + {플레인텍에서 xetexko.tex이 아니라 xetexko.sty를 불러야 한다.} + \item \hyperref[sec:symbolfont] + {CJK 기호문자를 \hparen{한자가 아니라} 한글 글꼴에서 찾는 것이 + 기본값이 되었다.} + \item \hyperref[sec:fontopts] + {\texttt{interpunctskern} 글꼴 옵션을 없애고 \texttt{quoteraise}를 + 추가했다.} + \end{itemize} + \end{description} +\end{small} \end{document} -- cgit v1.2.3