summaryrefslogtreecommitdiff
path: root/macros/xetex/generic/xetexko/xetexko-doc.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/xetex/generic/xetexko/xetexko-doc.tex')
-rw-r--r--macros/xetex/generic/xetexko/xetexko-doc.tex626
1 files changed, 626 insertions, 0 deletions
diff --git a/macros/xetex/generic/xetexko/xetexko-doc.tex b/macros/xetex/generic/xetexko/xetexko-doc.tex
new file mode 100644
index 0000000000..46fd76a4f9
--- /dev/null
+++ b/macros/xetex/generic/xetexko/xetexko-doc.tex
@@ -0,0 +1,626 @@
+%% !tex program = xelatex
+%%
+%% xetexko-doc.tex
+%%
+%% This file is in the public domain
+
+\documentclass[a4paper]{article}
+\usepackage[hmargin=3.8cm]{geometry}
+\usepackage[hangul]{xetexko}
+\setmainhangulfont{Noto Serif CJK KR}[
+ Script=Hangul, Language=Korean,
+ UprightFont=* Light,
+ BoldFont=* Bold,
+]
+\setsanshangulfont{Noto Sans CJK KR}[
+ Script=Hangul, Language=Korean,
+ UprightFont=* DemiLight,
+]
+\usepackage{xetexko-hanging, hologo, xcolor, ulem}
+\usepackage[bookmarksnumbered,hidelinks]{hyperref}
+
+\edef\verbatim{\unexpanded\expandafter{\verbatim
+ \linespread{1.1}\selectfont }}
+\def\logoko{\textsf{k}\kern-.2ex\textit{o}}
+\def\XeTeX{\hologo{XeTeX}}
+\def\xetexko{\XeTeX\kern-.1ex -\logoko}
+\def\kotex{\logoko\kern-.1ex .\kern-.1667em \hologo{TeX}}
+\pdfstringdefDisableCommands{\def\xetexko{XeTeX-ko}}
+\renewcommand*\descriptionlabel[1]{\hspace\labelsep\ttfamily\bfseries
+ \color{blue!50!black}#1}
+\def\grayhrule{{\color{white!80!black}\hrule height2pt}}
+\def\grayvrule{{\color{white!80!black}\vrule width 2pt}}
+\newenvironment{plaintex}
+ {\setbox0=\vbox\bgroup\hsize=\dimexpr\textwidth-12pt\relax
+ \hrule width0pt\kern5pt\par\small
+ \noindent}
+ {\par \vskip-\lastskip\kern5pt\hrule width0pt\egroup \par\medskip\par
+ \dimen0=\dimexpr\pagegoal-\pagetotal\relax
+ \ifdim\dimen0<2\baselineskip\relax \dimen0\maxdimen \fi
+ \ifdim\ht0<\dimen0
+ \hbox{\grayvrule\kern10pt\box0}%
+ \else
+ \setbox2=\vsplit0 to\dimen0
+ \lineskip0pt
+ \ifvoid2 \else\hbox{\grayvrule\kern10pt\box2}\fi
+ \ifvoid0 \else\hbox{\grayvrule\kern10pt\box0}\fi
+ \fi \par\medskip\par }
+\newenvironment{example}
+ {\hbox\bgroup\grayvrule
+ \vbox\bgroup\hsize\dimexpr\textwidth-4pt\relax
+ \grayhrule\kern1em\leftskip1em\rightskip1em
+ }{\par\kern1em\grayhrule\egroup\grayvrule\egroup}
+\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}
+
+\begin{document}
+\title{\xetexko\ 간단 매뉴얼}
+\author{Dohyun Kim \normalsize <\texttt{nomos at ktug org}> \and
+ \normalsize <\url{http://github.com/dohyunkim/xetexko}>}
+\date{Version 2.21\quad 2018/08/08}
+\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.9]---
+ \item \hyperref[sec:fontcmds]
+ {영문폰트에 한글·한자 자형이 없고 한글·한자 폰트도 따로 지시하지 않았다면
+ 나눔 트루타입을 한글·한자 글꼴의 기본값으로 사용한다.}
+ \item[v2.10]---
+ \item 패키지 옵션 \texttt{[unfonts]}를 더는 지원하지 않는다. 이 옵션을
+ 사용한 기존 문서는 기본 글꼴인 나눔 트루타입으로 식자될 것이다.
+ \item[v2.13]---
+ \item \hyperref[sec:verttype]
+ {\texttt{horizontal} 환경이 추가되었다.}
+ \end{itemize}
+\end{quote}
+
+\smallskip
+
+\section{입력 인코딩}
+입력은 원칙적으로 UTF-8으로 한다.
+BOM (Byte Order Mark)은 있어도 좋고 없어도 좋다.
+EUC-KR이나 CP949 입력도 지원하는데, 다음과 같은 선언이 있으면 된다.
+\begin{verbatim}
+ \XeTeXinputencoding="korean"
+ \XeTeXdefaultencoding="korean"
+\end{verbatim}
+
+\section{\XeTeX\ 자체 기능}
+\XeTeX 은 자체적으로 유니코드를 잘 지원하므로 \xetexko 를 사용하지
+않더라도 한글을 찍는 데 문제가 없다.
+\begin{verbatim}
+ \usepackage{fontspec}
+ \setmainfont{UnBatang}
+ \setsansfont{UnDotum}
+ \setmonofont{UnTaza}
+ \XeTeXlinebreaklocale="ko"
+ \XeTeXlinebreakpenalty=50
+ \XeTeXlinebreakskip=0pt plus.1ex minus.05ex
+\end{verbatim}
+하지만 이렇게 사용하면 영문자와 한글이 같은 글꼴로 식자될 뿐만 아니라,
+한글 사이 자간이나 영문자와 한글 사이 간격 따위의 \xetexko 가 제공하는
+기능을 포기해야 할 것이다.
+
+\section{\xetexko\ 부르기}\label{sec:loading}
+\xetexko\ 로드하기: \cs{usepackage\{xetexko\}} 혹은 \cs{usepackage\{kotex\}}.
+이 명령으로 fontspec 및 xunicode 패키지도 함께 불러들인다.
+fontspec에 옵션을 주려면 \xetexko를 부르기 전에 fontspec을 따로 로드하면 된다.
+
+\begin{plaintex}
+플레인텍이라면 \verb|\input xetexko.sty| 혹은 \verb|\input kotex.sty|.
+\end{plaintex}
+
+패키지 옵션:
+\begin{description}\hangulquotes
+\item[ hangul ] `제1장' `표' `차례' 등 한글 표제를 이용한다.
+ 절 제목 이하에는 한글 표제가 붙지 않고 숫자로만 표현된다.
+ 한글이 주된 언어라고 인식하여 줄간격 조정도 수행한다.
+\item[ hanja ] `第1章' `表' `目次' 등 한자 표제를 이용한다.
+ 절 제목 이하에는 한자 표제가 붙지 않고 숫자로만 표현된다.
+ 한글이 주된 언어라고 인식하여 줄간격 조정도 수행한다.
+\end{description}
+
+
+\section{글꼴 명령}\label{sec:fontcmds}
+\begin{verbatim}
+ \setmainfont {Linux Libertine}
+ \setmainhangulfont{NanumMyeongjo}
+ \setmainhanjafont {UnBatang}
+\end{verbatim}
+각 명령의 의미는 이름이 뜻하는 그대로이며, fontspec 매뉴얼에 따라
+설정한다. 마찬가지로 다음 명령들도 제공한다.
+\begin{verbatim}
+ \setsansfont \setsanshangulfont \setsanshanjafont
+ \setmonofont \setmonohangulfont \setmonohanjafont
+\end{verbatim}
+main/sans hangul/hanja 폰트에는 따로 \verb|Ligatures=TeX| 옵션을 지시하지
+않더라도 자동으로 주어진다.
+
+한글폰트를 따로 지정하지 않으면 영문폰트가 한글에도 사용된다.
+한자폰트를 따로 지정하지 않으면 한글폰트가 한자에도 적용된다.
+\LaTeX 에서는 영문폰트에 한글·한자 글리프가 없고 한글·한자 폰트도 따로
+지시하지 않았다면 \hemph{나눔 트루타입을 한글·한자 글꼴의 기본값}으로
+사용한다.\footnote{나눔 글꼴을 찾을 수 없다면 바탕/돋움 글꼴을 이용하고
+ 그마저도 없다면 한글·한자가 식자되지 않을 뿐, 에러를 발생시키지는 않는다.}
+
+\begin{plaintex}
+플레인텍이라면 다음처럼 한다.
+\begin{verbatim}
+ \font\tenrm="[lmroman10-regular]:mapping=tex-text" at 10pt
+ \hangulfont="[UnBatang]:mapping=tex-text" at 10pt
+ \hanjafont ="Naver Dictionary:mapping=tex-text" at 10pt
+\end{verbatim}
+\end{plaintex}
+
+\cs{fallbackhanjafont}를 정의해두면 \hemph{한자 글꼴에도 없는 한자}를
+이 글꼴에서 찾아 식자한다. \verb|\newfontfamily| 명령 등으로 정의한다.
+
+\section{글꼴 명령 (계속)}
+\begin{verbatim}
+ \hangulfontspec{NanumGothic}[Ligatures=TeX]
+ \hanjafontspec {UnGungseo}[Ligatures=TeX]
+\end{verbatim}
+임시로 사용할 한글·한자 글꼴을 지시한다.
+\cs{adhochangulfont}와 \cs{adhochanjafont}는 이들 명령의 다른 이름이다.
+
+\begin{verbatim}
+ \newhangulfontfamily\myhangul{NanumGothic}[Ligatures=TeX]
+ \newhanjafontfamily \myhanja {UnGungseo}[Ligatures=TeX]
+ \newhangulfontface \myhangul{NanumGothic Bold}[Ligatures=TeX]
+ \newhanjafontface \myhanja {UnDotumBold}[Ligatures=TeX]
+\end{verbatim}
+fontspec 패키지의 \verb+\setfontfamily+ \verb+\newfontface+ 명령에 해당한다.
+
+\begin{verbatim}
+ \addhangulfontfeature{Color=FF0000,InterHangul=-.1em}
+ \addhanjafontfeature {Color=00FF00}
+\end{verbatim}
+fontspec의 \verb+\addfontfeature+ 명령을 구현한 것이다.
+fontspec과 마찬가지로 각 명령의 끝에 `s'를 붙여도 된다.
+
+참고로, 한자와 한글을 같은 글꼴로 식자하고 싶을 때 글꼴 설정을
+번거롭게 두 번 할 필요 없이 한글 글꼴만 설정한 뒤 간단히
+\cs{hanjabyhangulfont}를 선언하면 된다.%
+\footnote{앞 절의 main/sans 글꼴 명령들과 달리 한글 폰트가 자동으로
+ 한자에도 적용되지 않는다는 말이다. 어쨌든 이미 한자 폰트가 지정돼 있는
+ 상태이기 때문이다.}
+
+
+\section{기호 글꼴 명령}\label{sec:symbolfont}
+라틴 문자나 CJK 기호를 어떤 폰트로 식자할 것인가를 사용자가 지정할 수 있다.
+\begin{verbatim}
+ \xetexkofontregime{hangul}[quotes=latin, puncts=prevfont]
+\end{verbatim}
+모든 라틴 문자와 CJK 기호들을 원칙적으로 한글 폰트로 식자하되,
+따옴표는 라틴 폰트로 찍고 마침표 따위는 현재 폰트를 따라간다는 의미이다.
+명령의 인자에는 latin, hangul, hanja, prevfont 중 하나가 올 수 있어서
+각각 라틴 폰트, 한글 폰트, 한자 폰트로 식자하라는 뜻이며
+마지막의 prevfont는 \hemph{현재 활성화된 폰트를 그대로 이어받도록} 지시한다.
+현재 폰트가 직전 문자의 폰트가 아닐 수 있음에 주의할 것.
+
+옵션 키의 종류와 의미는 다음과 같으며 각 키 값은 인자의 경우와 같다.
+\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{하이픈은 라틴폰트}로
+식자되게 기본값이 변경되었음에 유의할 것.
+\begin{verbatim}
+ \xetexkofontregime {latin}%
+ [ puncts=prevfont, colons=prevfont, cjksymbols=hangul ]
+\end{verbatim}
+\begin{plaintex}
+플레인텍에서는 다음 명령을 사용한다. \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
+ \latinpuncts \hangulpuncts \hanjapuncts \prevfontpuncts
+ \latincjksymbols \hangulcjksymbols \hanjacjksymbols \prevfontcjksymbols
+\end{verbatim}
+다음 명령은 이상의 모든 라틴 문자를 식자할 폰트를 지시한다.
+\begin{verbatim}
+ \latinmarks \hangulmarks \hanjamarks \prevfontmarks
+\end{verbatim}
+\end{plaintex}
+
+\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} 한글 자간을} 지시한다.%
+ \footnote{한자 자간 옵션은 제공하지 않는다.
+ 혹시 한자 자간을 조절하고 싶다면 \cs{XKinterhanjabreak}을 재정의하라.
+ 참고로 한글 자간을 조절하는 저수준 명령은 \cs{XKinterhangulbreak} 이다.}
+\item[charraise, CharRaise]
+ 글자의 {\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 값의 두 배.
+\end{description}
+
+\begin{plaintex}
+플레인텍에서는 다음과 같은 방법으로 제어할 수 있다. 기본값은 \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}
+\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}에 상응하는 것이지만,
+오직 이 절에서 언급한 옵션들만 인식하며 나머지는 무시된다는 점을 유의하라.
+
+
+\section{그밖의 명령들}\label{sec:etccmds}
+\begin{description}
+ \item[\cs{everyhangul}, \cs{everyhanja}]
+ 한글 또는 한자에 대해 글자마다 지시한 명령을 수행한다. 예컨대
+ \verb|\everyhangul{\fbox{#1}}| 명령은 모든
+ {\everyhangul{\fbox{#1}}\fboxsep=1pt 한글 주위에 박스}를
+ 두른다. 다른 글꼴 옵션과 충돌할 수 있으므로
+ 주의를 요한다.
+
+ \item[\cs{disablekoreanfonts}]
+한글폰트를 따로 설정하지 않고 영문 폰트를 따라간다.
+이 때 \verb|\setmainfont| 따위가 한글과 한자에도 적용된다.
+
+ \item[\cs{disableautojosa}]
+혹시 있을지 모를 예기치 못한 기능간 충돌에 대비하여 자동조사 기능을
+끄는 명령을 제공한다.
+
+ \item[\cs{disablejamoautojosa}]
+옛한글 자모에 한해서 자동조사 기능을 끈다.
+옛한글 자모에 영향을 주는 \verb+Mapping+ 글꼴 옵션을 사용해야 한다면
+이 명령을 선언해두어야 정상 작동한다.
+
+ \item[\cs{disablecjksymbolspacing}]
+CJK 구두점의 폭을 0.5em으로 강제설정하는 것을 방지한다.
+\xetexko는 낡은 고정폭 한글 폰트들을 고려하여 이 기능을 구현하였으나
+현대적인 한글 폰트는 이러한 과잉친절이 오히려 성가실 경우가 있다.
+
+ \item[\cs{disablehangulspacing}]
+한글조판에 관련된 모든 미세간격을 영(zero)으로 돌린다. 한글 자간도,
+영문자와 한글 사이 간격도, 구두점 위치 조정도, 구두점 사이의 간격도
+모두 작동하지 않는다. 그러나 CJK 글자 사이의 줄바꿈 허용만은 유지된다.
+
+ \item[\cs{disablehangulspacingandlinebreak}]
+위 명령과 마찬가지로 모든 미세간격을 금지할 뿐만 아니라 CJK 글자 사이의
+줄바꿈까지도 먹지 않게 한다.
+일부 고급 오픈타입 기능을 사용하기 위해서 이 명령이 필요할 때가 있다.
+이를테면, 폰트가 지원하는 한글 리거쳐가 동작하지 않을 때 이 명령을
+선언하면 문제가 해결된다.\footnote{만약 사용자가
+ {\ttfamily\string\XeTeXlinebreaklocale}도 선언했다면
+ {\ttfamily\string\XeTeXlinebreaklocale""} 명령도 요구된다.
+ 이 원시명령은 그룹 내에서 쓰더라도 항상 전역적인 효과를 가짐을 유의하라}
+\end{description}
+
+\section{옛한글}
+
+옛한글을 사용하기 위해선 \verb|Script=Hangul| 옵션을 주는 것으로 족하다.
+옛한글 식자는 고급 오픈타입 기능을 이용하므로
+폰트가 이런 기능을 제공해야만 가능한 일이다.\footnote{%
+이런 기능을 제공하는 폰트로는 윈도즈~8에 번들된 맑은고딕이
+있으며 공개폰트로는 은바탕, 함초롬~LVT, Source Han Sans (본고딕),
+Noto Sans CJK, 나눔명조옛한글, 나눔바른고딕옛한글 등이 있다.}
+
+\begin{figure}
+ \begin{example}
+ \sffamily \obeylines\leftskip10em
+뎨 가ᄂᆞᆫ 뎌 각시 본 듯도 ᄒᆞᆫ뎌이고.
+天텬上상白ᄇᆡᆨ玉옥京경을 엇디ᄒᆞ야 離니別별ᄒᆞ고
+ᄒᆡ 다 져믄 날의 눌을 보라 가시ᄂᆞᆫ고
+\medbreak
+어와 네여이고 내 ᄉᆞ셜 드러보오.
+내 얼굴 이 거동이 님 괴얌즉 ᄒᆞᆫ가마ᄂᆞᆫ
+엇딘디 날 보시고 네로다 녀기실ᄉᆡ
+나도 님을 미더 군 ᄠᅥ디 전혀 업서
+이ᄅᆡ야 교ᄐᆡ야 어ᄌᆞ러이 구돗ᄯᅥᆫ디
+반기시ᄂᆞᆫ ᄂᆞᆺ비치 녜와 엇디 다ᄅᆞ신고.
+ \end{example}
+ \caption{옛한글 조판 보기}\label{fig:yethangul}
+\end{figure}
+
+\begin{verbatim}
+ \setmainhangulfont{Malgun Gothic}[ Script=Hangul ]
+\end{verbatim}
+\begin{plaintex}
+플레인텍이라면,
+\begin{verbatim}
+ \hangulfont="Malgun Gothic:script=hang" at 10pt
+\end{verbatim}
+\end{plaintex}
+
+\section{세로쓰기}\label{sec:verttype}
+
+세로쓰기를 위한 글꼴 지정은 다음과 같다.
+역시 고급 오픈타입 기능을 이용하는 것이므로
+폰트가 이를 지원해야 한다.%
+\footnote{만일 폰트의 세로쓰기 글자폭이 가로쓰기와 다르다면
+ \cs{verticalem=1.05em} 같은 선언을 미리 해두는 게 좋다.}
+\begin{verbatim}
+ \setmainhangulfont{Adobe Myungjo Std}[ Vertical=RotatedGlyphs ]
+\end{verbatim}
+문서 전체를 세로쓰기할 때 \cs{verticaltypesetting}을 선언하면
+면주는 그대로 두고 본문만 세로쓰기한다.\footnote{당연히 면주의 글꼴에는
+ \texttt{Vertical} 옵션이 없어야 할 것이다.
+ 면주 글꼴을 따로 지정하는 것은 사용자의 몫이다. }
+문서의 일부를 세로쓰기 하려면 vertical 환경을 이용한다.
+vertical 환경의 인자는 세로쓰기 박스의 세로 길이이다.
+보통 그 뒤에 세로쓰기에 사용할 글꼴 명령이 온다.
+\begin{figure}
+\begin{example}
+\hfil\begin{vertical}{16em}
+ \sffamily\addhangulfontfeatures{Vertical=RotatedGlyphs,CharRaise=.5ex,
+ RawFeature=vertical}
+ \hanjabyhangulfont \parindent-1em\leftskip1em
+ \noindent 님의 침묵 (The Silent Beloved)
+\smallbreak
+\hfil\hfil 한 용 운\hfil
+\bigbreak
+님은 갓슴니다 아아 사랑하는나의님은 갓슴니다\par
+푸른산빗을깨치고 단풍나무숩을향하야난 적은길을 거러서 참어떨치고 갓슴니다\par
+黃金의꽃가티 굿고빗나든 옛盟誓는 차듸찬띠끌이되야서 한숨의 微風에 나러갓슴니다\par
+날카로은 첫〈키쓰〉의追憶은 나의運命의指針을 돌너노코 뒷거름처서 사러젓슴니다\par
+\hellipsis\par
+아아 님은갓지마는 나는 님을보내지 아니하얏슴니다\par
+제곡조를못이기는 사랑의노래는 님의沈默을 휩싸고돔니다\par
+\end{vertical}\hfil
+\end{example}
+\caption{세로쓰기 보기}\label{fig:vertical}
+\end{figure}
+
+\begin{verbatim}
+ \begin{vertical}{12em}
+ \hangulfontspec{Adobe Myungjo Std}[ Vertical=RotatedGlyphs ]
+ 세로쓰기로 식자할 부분
+ \end{vertical}
+\end{verbatim}
+혹시 세로로 식자되지 않는 라틴문자 부분이 있다면
+베이스라인이 한글과 어울리지 않을 수 있다. 이를 교정하려면
+\verb|CharRaise| 옵션을 한글 폰트에 준다.\footnote{%
+ 이 방법이 여의치 않으면 라틴문자 부분을 \cs{vertlatin} 명령으로 감쌀 수도
+ 있는데, 이때 인자가 박스로 처리되어 그 안에서 줄바꿈이 일어나지 않는다.}
+\medbreak
+\begin{plaintex}
+플레인텍이라면,
+\begin{verbatim}
+ \vertical{16em}\hangulfont="Adobe Myungjo Std:vertical"
+ 세로쓰기로 식자할 부분
+ \endvertical
+\end{verbatim}
+\end{plaintex}
+세로쓰기 도중에 문서의 일부를 가로쓰기하려면 horizontal 환경을 이용하라.
+horizontal 환경에는 가로쓰기 박스의 너비를 인자로 주어야 한다.
+가로쓰기 영역의 폰트 설정은 사용자의 몫이다.
+
+\section{고문헌·일본어·중국어}
+
+띄어쓰기가 없는 옛문헌이나 일본어 단락 따위를 삽입할 때
+japanese 혹은 chinese 환경을 선언하는 것이 좋다.
+들여쓰기\footnote {들여쓰기 기본값은 japanese는 1em 이고 chinese는 2em 이다.}
+및 자간 조절이 자동으로 이루어지며
+사용자가 입력한 불필요한 공백도 없애준다.
+Schinese 환경은 chinese의 다른 이름이다.
+Tchinese도 제공하는데 중국어 번체 글꼴을 사용한다면 이 환경을 이용하라.
+일반적으로 우리 고문헌 조판에는 japanese 환경이 더 적합하다.
+
+\begin{figure}
+ \begin{example}\linespread{1.3}
+ \sffamily\japanese
+子曰:「學而時習之,不亦說乎?有朋自遠方來,不亦樂乎?人不知而不慍,不亦君子乎?」\par
+有子曰:「其爲人也孝弟,而好犯上者,鮮矣!不好犯上,而好作亂者,未之有也!君子務本,本立而道生;孝弟也者,其爲仁之本與?」\par
+子曰:「巧言令色,鮮矣仁!」\par
+曾子曰:「吾日三省吾身:爲人謀,而不忠乎?與朋友交,而不信乎?傳,不習乎?」\par
+子曰:「道千乘之國,敬事而信,節用而愛人,使民以時。」\par
+子曰:「弟子入則孝,出則弟;謹而信,汎愛衆;而親仁,行有餘力,則以學文。」
+ \end{example}
+\caption{고문헌 조판 보기. japanese 환경을 이용했다.}\label{fig:ancientdoc}
+\end{figure}
+
+\cs{inhibitglue} 명령은 일본어 등 환경에서 가끔 유용한데,
+해당 지점에 자동 삽입되는 공백을 영(zero)으로
+만들어준다.
+
+\section{매달린 구두점}
+마침표, 쉼표, 인용부호를 판면 바깥에 식자하여 행 끝에 매달리게 만든다.
+\begin{verbatim}
+ \usepackage{xetexko-hanging}
+\end{verbatim}
+\cs{hangingpunctuation} 명령은 버전 2.2 이후 불필요해졌다.
+글자 내밀기 기본값에 차이가 좀 있긴 하지만,
+microtype 패키지를 로드하는 것으로도 유사한 결과를 얻을 수 있다.
+
+%\begin{figure}
+%\Large
+%\hangingpunctuation
+%\setbox0\hbox{줄 끝에 매달린 구두점}
+%\vbox{\hfil\hbox{\vrule\vbox{\hsize\wd0
+% 줄 끝에 매달린 구두점.
+% 줄 끝에 매달린 구두점,
+% ``줄 끝에 매달린 구두점''
+% `줄 끝에 매달린 구두점'
+% “줄 끝에 매달린 구두점”
+% ‘줄 끝에 매달린 구두점’
+% 줄 끝에 매달린 구두점、
+% 줄 끝에 매달린 구두점。
+% 줄 끝에 매달린 구두점
+% }\vrule}\hfil}
+%\caption{매달린 구두점 보기}\label{fig:hanging}
+%\end{figure}
+
+\section{수식 한글}
+수식 모드에서도 한글을 \hparens{hbox로 감싸지 않고} 직접 입력할 수 있다.
+\begin{quote}
+ \verb|$가^{나^다}$|\quad$\Rightarrow\quad가^{나^다}$
+\end{quote}
+수식 한글은 따로 설정하지 않으면 문서의 기본 글꼴을 따라가지만
+굳이 설정하려면 다음과 같이 한다. 이 명령은 플레인텍에서도 쓸 수 있다.
+\begin{verbatim}
+ \setmathhangulfont{NanumGothic}
+\end{verbatim}
+현재 한글만 쓸 수 있게 설정되어 있다.
+한자도 수식에 직접 입력하려면 사용자는
+\begin{verbatim}
+ \setmathhangulblock{4E00}{9FC3}
+\end{verbatim}
+명령으로 유니코드 블럭을 추가 지정해야 한다.
+
+\section{자동조사}
+자동조사는 \kotex 의 경우와 기본적으로 동일하게 동작한다.
+게다가 문장 중에서도 동작하고
+플레인텍에서까지 사용할 수 있다.
+그럼에도 불구하고 사용자가 임의로 제어할 필요가 생긴다면
+\cs{jong} \cs{jung} \cs{rieul} 중 하나를
+미리 선언해 둘 수 있다. 이를테면,
+\begin{verbatim}
+ \def\mypage{페이지\jung}
+ \def\mypage{쪽\jong}
+ \def\mystar{별\rieul}
+\end{verbatim}
+
+\section{드러냄표}
+\dotemph{드러냄표} 강조도 \kotex 과 대동소이하다.
+기본은 글자 위에 점을 찍는 형태이나 다음 명령을 이용해 개인적으로 선호하는
+기호를 드러냄표로 쓸 수 있다.
+\begin{verbatim}
+ \def\dotemphraise{0.4em }
+ \def\dotemphchar{\bfseries ^^^^02d9}
+\end{verbatim}
+전자는 드러냄표를 피강조 글자 위로 끌어올리는 길이를,
+후자는 드러냄표 기호 자체를 정의한다.
+\verb|^^^^02d9|는 유니코드 코드포인트를 뜻하는 16진수이고
+숫자 대신 직접 문자를 입력해도 된다.
+플레인텍에서도 드러냄표 강조를 사용할 수 있다.
+
+\section{고아글자 문제}
+어느 정도는 고아글자가 생기지 않게 만들어 두었으나,
+\XeTeX 에서는 고아글자를 자동으로 완전히 회피하기는 어렵다.
+필요하다면 사용자가 적당한 곳에 \verb|\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|
+따위를 사용한다.
+
+\section{밑줄긋기}
+\LaTeX에서는 \uline{ulem 패키지}를 로드하는 것만으로 자동 지원된다.
+\begin{plaintex}
+플레인텍에서는 패키지 로드 후 사용자가 \cs{xetexkoulemsupport}
+명령을 내려주어야 한다.
+\end{plaintex}
+%\hfill \fboxsep=-\fboxrule \fbox{\vbox to1em{\hbox to1em{\hss}\vss}}
+
+
+\end{document}