%% !tex program = xelatex
%% written by  Dohyun Kim <nomos@ktug.or.kr>
%% public domain
%%
%% $Id: xetexko-doc.tex,v 1.46 2011/09/17 07:58:09 nomos Exp $

\documentclass[a4paper]{article}
\usepackage{typearea}
\usepackage[no-math]{fontspec}
\usepackage[hangul]{xetexko}
\setmonohangulfont[ExternalLocation,Scale=.95]{UnDotum}
\usepackage{setspace}
\usepackage{xcolor}
\usepackage{ulem}
\usepackage[bookmarksnumbered]{hyperref}
\edef\verbatim{\unexpanded\expandafter{\verbatim\setstretch{1.1}\color{blue!50!black}\spaceskip.5em\relax}}
\def\logoko{\textsf{k}\textit{o}}
\def\xetexko{\XeTeX\kern-.1ex -\logoko}
\def\kotex{\logoko\kern-.1ex .\kern-.1667em \TeX}
\pdfstringdefDisableCommands{\def\XeTeX{XeTeX}\def\xetexko{XeTeX-ko}}
\renewcommand*\descriptionlabel[1]{\hspace\labelsep\ttfamily\bfseries #1}
\hangulquotes
\begin{document}
\title{\xetexko\ 간단 매뉴얼}
\author{김 도 현 <\url{nomos@ktug.or.kr}>}
\date{Version 1.93\quad\today}
\maketitle

\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[Mapping=tex-text]{UnBatang}
  \setsansfont[Mapping=tex-text]{UnDotum}
  \setmonofont{UnTaza}
  \XeTeXlinebreaklocale="ko"
\end{verbatim}
하지만 이렇게 사용하면 영문자와 한글이 같은 글꼴로 식자될 뿐만 아니라,
한글 사이 자간이나 영문자와 한글 사이 간격 따위의 \xetexko 가 제공하는
기능을 포기해야 할 것이다.

\section{\xetexko\ 부르기}
\xetexko\ 로드하기: \verb+\usepackage{xetexko}+

이 명령은 중요한 다른 패키지 몇 개를 불러오는 역할을 한다.
한글관련 패키지 뿐만 아니라 \XeLaTeX 의 기본 패키지에 해당하는
fontspec, xunicode, xltxtra까지 다 자동 로드하므로
따로 사용자가 신경써야 할 것이 없다.
옵션을 주기 위해 fontspec 따위를 따로 부를 필요가 있다면
xetexko보다 먼저 로드해야 한다.
\medskip

\begin{small}
플레인텍이라면 \verb|\input xetexko| 명령으로 로드한다.
\end{small}

\section{글꼴 명령}
위와 같이 로드할 때 글꼴은 영문의 경우 라틴모던이,
한글과 한자의 경우 은글꼴이 사용된다.
다른 폰트를 사용하려면 다음과 같이 한다.
\begin{verbatim}
  \setmainfont      [Mapping=tex-text]{Linux Libertine}
  \setmainhangulfont[Mapping=tex-text]{나눔명조}
  \setmainhanjafont [Mapping=tex-text]{은 바탕}
\end{verbatim}
각 명령의 의미는 이름이 말해주는 그대로이며, fontspec 매뉴얼에 따라
설정하면 된다. 한자폰트를 따로 지정하지 않으면 한글폰트가 한자에도 적용된다.
마찬가지로 다음 명령들도 제공한다.
\begin{verbatim}
  \setsansfont
  \setsanshangulfont
  \setsanshanjafont
  \setmonofont
  \setmonohangulfont
  \setmonohanjafont
\end{verbatim}
\medskip
\begin{small}
플레인텍이라면 다음처럼 한다.
\begin{verbatim}
    \font\tenrm  ="[lmroman10-regular]:mapping=tex-text" at 10pt
    \font\hangfnt="[UnBatang]:mapping=tex-text" at 10pt
    \font\hanifnt="Naver Dictionary:mapping=tex-text" at 10pt
\end{verbatim}
한글은 \verb|\hangfnt|, 한자는 \verb|\hanifnt|로 지정한다.
각괄호 안에 글꼴을 쓰면 파일이름으로 texmf.cnf에서 지정된 경로를 찾고,
그렇지 않으면 폰트이름으로 시스템 폰트를 찾는다.
각괄호는 fontspec 패키지의 \verb|ExternalLocation| 옵션에 해당한다.
\end{small}

\section{글꼴 명령 \large(계속)}

\begin{verbatim}
  \hangulfontspec[Mapping=tex-text]{나눔고딕}
  \hanjafontspec [Mapping=tex-text]{UnGungseo}
\end{verbatim}
본문 중에 임시로 사용할 한글·한자 글꼴을 각각 지시한다.
fontspec 패키지의 \verb+\fontspec+ 명령을 \xetexko의 구현에 맞게 수정할 것이다.
\verb+\adhochangulfont+와 \verb+\adhochanjafont+는 이들 명령의 다른 이름이다.

\begin{verbatim}
  \newhangulfontfamily\sectionhangul[Mapping=tex-text]{나눔고딕}
  \newhanjafontfamily \sectionhanja [Mapping=tex-text]{UnGungseo}

  \newhangulfontface  \sectionhangul[Mapping=tex-text]{나눔고딕Bold}
  \newhanjafontface   \sectionhanja [Mapping=tex-text]{UnDotumBold}
\end{verbatim}
fontspec 패키지의 \verb+\newfontfamily+,
\verb+\newfontface+ 명령을 \xetexko의 구현에 맞게
수정한 것이다.
본문 중에 임시로 사용할 글꼴이라도 프리앰블에서 위와 같이 선언한 후,
본문에서 \verb+\sectionhangul+, \verb+\sectionhanja+를 지시하여
사용할 것이 권장된다.

\begin{verbatim}
  \addhangulfontfeature{Color=FF0000,interhchar=-.1em}
  \addhanjafontfeature {Color=00FF00}
\end{verbatim}
fontspec 패키지의 \verb+\addfontfeature+ 명령을 \xetexko에 맞게 구현한 것이다.
fontspec 패키지와 유사하게
\verb+\addhangulfontfeatures+ \verb+\addhanjafontfeatures+도 사용할 수 있게
하였으며 기능은 위 명령과 완전히 동일하다.

\section{기호 글꼴 명령}
라틴 문자나 CJK 기호를 어떤 폰트로 식자할 것인가를 사용자가 지정할 수 있다.
\begin{verbatim}
  \xetexkofontregime[quotes=latin, puncts=prevfont]{hangul}
\end{verbatim}
이는 모든 라틴 문자와 CJK 기호들을 원칙적으로 한글 폰트로 식자하되,
따옴표는 라틴 폰트로 찍고 마침표 따위는 직전 문자의 폰트를 따라간다는 의미이다.
옵션은 생략할 수 있다.

명령의 인자에는 latin, hangul, hanja, prevfont 중 하나가 올 수 있어서
각각 라틴 폰트, 한글 폰트, 한자 폰트로 식자하라는 뜻이다.
마지막의 prevfont는 직전 문자에 사용된 폰트를 그대로 이어받도록 지시한다.

옵션 키의 종류와 의미는 다음과 같으며 각 키의 값은 인자의 경우와 마찬가지로
latin, hangul, hanja, prevfont 가운데 하나를 허용한다.
\begin{description}
\item[alphs] 라틴 알파벳 및 아래에 해당하지 않는 모든 라틴 문자
\item[nums] 라틴 숫자(수식 제외)
\item[parens] 라틴 괄호, 중괄호, 대괄호, 꺽쇠
\item[quotes] accent grave, apostrophy 및 이들의 리거쳐
\item[colons] 라틴 콜론, 세미콜론, endash, emdash
\item[hyphens] 하이픈, 하이픈으로 이루어지는 리거쳐, 슬래시
\item[puncts] 마침표, 물음표, 느낌표, 쉼표
\item[cjksymbols] CJK 구두점, 괄호 및 상징기호
\end{description}
\medskip
\begin{small}
플레인텍에서는 다음 명령을 사용한다. \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{small}
기본값으로는
\verb+\latinmarks+
\verb|\prevfontpuncts|
\verb!\prevfonthyphens!
\verb-\prevfontcolons-
\verb:\hanjacjksymbols:
가 설정되어 있는데, 이는
모든 라틴 문자를 라틴 폰트로 식자하되
마침표, 느낌표, 물음표, 쉼표, 콜론, 세미콜론, 슬래시, 하이픈만
직전 문자의 폰트를 이어받고 CJK 기호는 한자 폰트로 찍는 것으로서,
다음 명령을 준 것과 동일하다.
\begin{verbatim}
  \xetexkofontregime
     [puncts=prevfont, hyphens=prevfont, colons=prevfont, cjksymbols=hanja]
   {latin}
\end{verbatim}

\section{옛한글}
옛한글을 사용하는 방법은 예컨대 다음과 같다.
\begin{verbatim}
  \setmainhangulfont[
      ExternalLocation,
      Mapping=tex-text,
      Script=Hangul,
      Language=Korean,
      YetHangul=On
    ]{UnBatang}
\end{verbatim}
고급 오픈타입 기능을 이용하는 것이며
폰트가 이러한 기능을 제공해야만 가능한 일이다.
\today\ 현재, 이런 기능을 제공하는 폰트로는 마이크로소프트 오피스 플러스팩이
제공하는 옛한글 글꼴들이 있으며 공개폰트로는 은바탕과 KTUG판 함초롬 글꼴이 있다.

\medskip
\begin{small}
플레인텍이라면,
\begin{verbatim}
    \font\hangfnt="[UnBatang]:mapping=tex-text;script=hang;language=KOR;%
        +ccmp;+ljmo;+vjmo;+tjmo" at 10pt
\end{verbatim}
\end{small}
\bigskip

한편 오픈타입 GSUB 기능을 이용하는 방법 외에 \xetexko는
몇몇 폰트가 채택하고 있는, 유니코드 사용자 영역(PUA)의 옛한글 음절을
이용하는 방법도 지원하고 있다.
\begin{verbatim}
  \setmainhangulfont[Mapping=jamo-pua]{HCR Batang}
\end{verbatim}
이렇게 tex-text가 아니라 jamo-pua를 맵핑 파일로 지정한 다음, 옛한글을
첫가끝으로 입력하면 PUA 옛한글 음절로 자동 번역된다.
아직 옛한글에 대해서는 자동조사가 동작하지 않음을 유의하라.
GSUB 방식을 이용하면서 옛한글 다음의 자동조사도 사용하고자 한다면
\verb+\enablejamoautojosa+ 를 선언한다.


\section{세로쓰기}
세로쓰기를 위한 글꼴 지정은 다음과 같다.
역시 고급 오픈타입 기능을 이용하는 것이므로
폰트가 이를 지원해야 한다.
\begin{verbatim}
  \setmainhangulfont[ Vertical=RotatedGlyphs ]{Adobe 명조 Std}
\end{verbatim}
문서의 일부를 세로쓰기 하려면 vertical 환경을 이용한다.
\begin{verbatim}
  \begin{vertical}{12em}
  \hangulfontspec[ Vertical=RotatedGlyphs ]{Adobe 명조 Std}
    세로쓰기로 식자할 부분
  \end{vertical}
\end{verbatim}
vertical 환경의 인자는 세로쓰기 박스의 세로 길이이다.
보통 그 뒤에  세로쓰기에 사용할 글꼴 명령이 온다.

혹시 세로로 식자되지 않는 라틴문자 부분이 있다면
\verb+\vertlatin+ 명령으로 감싸야 세로쓰기에 어울리는
결과를 얻을 수 있다. 다만 \verb+\vertlatin+의 인자는 박스로 처리되므로
그 안에서 줄바꿈이 일어나지 않는다.

\begin{figure}
\leavevmode\hfil
\begin{vertical}{16em}
\hangulfontspec[Vertical=RotatedGlyphs]{Adobe 명조 Std}
\parindent-1em\leftskip1em
\spaceskip0.5em plus0.5em\relax
\onehalfspacing
\noindent 님의 침묵 {\small(The Silent Beloved)}
\smallbreak
\hfil\hfil 한 용 운\hfil
\bigbreak
님은 갓슴니다 아아 사랑하는나의님은 갓슴니다

푸른산빗을깨치고 단풍나무숩을향하야난 적은길을 거러서 참어떨치고 갓슴니다

黃金의꽃가티 굿고빗나든 옛盟誓는 차듸찬띠끌이되야서 한숨의 微風에 나러갓슴니다

날카로은 첫〈키쓰〉의追憶은 나의運命의指針을 돌너노코 뒷거름처서 사러젓슴니다
\\$\cdots$

아아 님은갓지마는 나는 님을보내지 아니하얏슴니다

제곡조를못이기는 사랑의노래는 님의沈默을 휩싸고돔니다
\end{vertical}
\hfil
\caption{세로쓰기의 예}\label{fig:vertical}
\end{figure}

\medskip
\begin{small}
플레인텍이라면,
\begin{verbatim}
    \vertical{16em}\font\hangfnt="Adobe 명조 Std:vertical;+vrt2"
      세로쓰기로 식자할 부분
    \endvertical
\end{verbatim}
\end{small}

\section{간격 조정}
한글 관련 미세 간격 조정은 다음과 같이 폰트 옵션으로 지시한다.
\begin{verbatim}
  \setsanshangulfont[interhchar=-.04em]{나눔고딕}
\end{verbatim}
이 때 나눔고딕 글꼴에만 한글 마이너스 자간이 작동한다.
이런 설정이 가능한 명령은
\begin{verbatim}
  \setmainhangulfont
  \setsanshangulfont
  \setmainhanjafont
  \setsanshanjafont
  \newhangulfontfamily
  \newhanjafontfamily
  \hangulfontspec
  \hanjafontspec
  \adhochangulfont
  \adhochanjafont
\end{verbatim}
이며 {\small(\emph{고정폭 글꼴이 제외되어 있음}을 유의)}, 허용되는 옵션은 다음과 같다.
사용자가 옵션을 생략하면 기본값이 적용된다.
\begin{description}
\item[hu]
영문자와 한글 사이 간격은 hu 값과 같고, 영문 괄호와 한글 사이 간격은 그 두 배이다.  기본값은 0.06em이다.
\item[interhchar]
한글 자간을 설정한다.  기본값은 공백이며 0pt와 결과가 동일하다.
\item[lowerperiod]
CJK 문자 직후의 마침표를 아래로 끌어내리는 정도를 지정한다.  기본값은 공백이며 0pt와 결과가 동일하다.
\item[lowerquestion]
CJK 문자 직후의 물음표를 아래로 끌어내리는 정도를 지정한다.  기본값은 공백이며 0pt와 결과가 동일하다.
\item[lowerexclamation]
CJK 문자 직후의 느낌표를 아래로 끌어내리는 정도를 지정한다.  기본값은 공백이며 0pt와 결과가 동일하다.
\item[lowercomma]
CJK 문자 직후의 쉼표를 아래로 끌어내리는 정도를 지정한다.  기본값은 공백이며 0pt와 결과가 동일하다.
\item[preperiodkern]
CJK 문자 직후의 마침표 앞에 임의의 간격을 삽입할 수 있다.  기본값은 공백으로 아무 것도 삽입하지 않는다.
\item[postperiodkern]
CJK 문자 직후의 마침표 뒤에 임의의 간격을 삽입할 수 있다.  기본값은 공백으로 아무 것도 삽입하지 않는다.
\item[prequestionkern]
CJK 문자 직후의 물음표 앞에 임의의 간격을 삽입할 수 있다.  기본값은 공백으로 아무 것도 삽입하지 않는다.
\item[postquestionkern]
CJK 문자 직후의 물음표 뒤에 임의의 간격을 삽입할 수 있다.  기본값은 공백으로 아무 것도 삽입하지 않는다.
\item[preexclamationkern]
CJK 문자 직후의 느낌표 앞에 임의의 간격을 삽입할 수 있다.  기본값은 공백으로 아무 것도 삽입하지 않는다.
\item[postexclamationkern]
CJK 문자 직후의 느낌표 뒤에 임의의 간격을 삽입할 수 있다.  기본값은 공백으로 아무 것도 삽입하지 않는다.
\item[precommakern]
CJK 문자 직후의 쉼표 앞에 임의의 간격을 삽입할 수 있다.  기본값은 공백으로 아무 것도 삽입하지 않는다.
\item[postcommakern]
CJK 문자 직후의 쉼표 뒤에 임의의 간격을 삽입할 수 있다.  기본값은 공백으로 아무 것도 삽입하지 않는다.
\item[interpunctskern]
CJK 문자 직후의 마침표, 쉼표, 물음표, 느낌표 사이의 간격을 지정한다.  기본값은 공백으로 아무 것도 삽입하지 않는다.
\item[quotewidth]
영문 인용부호{\small(grave accent나 apostrophe로 입력하는 것을 말함)}의 폭을 지정할 수 있다.  이 설정이 공백이면 natural width로 식자한다.  기본값은 공백이다.
\item[postmathskip]
수식 직후에 CJK 문자가 올 때 그 사이에 임의의 간격을 삽입할 수 있다.  기본값은 위 hu 값의 두 배이다.
\end{description}
\begin{small}
플레인텍에서는 다음과 같은 방법으로 간격을 제어할 수 있다. 기본값은 \LaTeX에서와 같다.
\begin{verbatim}
  \def\xetexkohu{0.06em }
  \def\xetexkointerhchar{-0.04em }
  \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\xetexinterpunctskern{0.15em }
  \def\xetexkoquotewidth{0.33em }
  \def\xetexkopostmathskip{0.2em }
\end{verbatim}
\end{small}

\section{부수적인 명령들}\label{sec:utilcs}
또한 \xetexko 는 몇 가지 유용하다 싶은 명령을 제공하고 있다.

\begin{verbatim}
  \disablekoreanfonts
\end{verbatim}
한글폰트를 따로 설정하지 않고 영문 폰트를 따라간다.
이 때  \verb|\setmainfont| 따위가 한글과 한자에도 적용된다.

\begin{verbatim}
  \disableautojosa
\end{verbatim}
혹시 있을지 모를 예기치 못한 기능간 충돌에 대비하여 자동조사 기능을
끄는 명령을 제공하고 있다.

\begin{verbatim}
  \enablejamoautojosa
\end{verbatim}
jamo-pua 방식이 아닌 GSUB 방식의 옛한글을 이용할 때
옛한글 뒤에서 자동조사가 정상 작동하게 하려면 이 선언이 필요하다.
jamo-pua 방식과 함께 쓰면 컴파일시 엔진이 사망할 수 있다.

\begin{verbatim}
  \disablecjksymbolspacing
\end{verbatim}
CJK 구두점이나 괄호의 폭을 0.5em으로 강제설정하는 것을 방지한다.
\xetexko는 낡은 고정폭 한글 폰트들을 고려하여 이 기능을 구현하였으나
현대적인 한글 폰트는 이러한 과잉친절이 오히려 성가실 경우가 있다.

\begin{verbatim}
  \disablehangulspacing
\end{verbatim}
한글조판에 관련된 모든 미세간격을 영(zero)으로 돌린다. 한글 자간도,
영문자와 한글 사이 간격도, 구두점 위치 조정도, 구두점 사이의 간격도
모두 작동하지 않게 된다. 그러나 CJK 글자 사이의 줄바꿈 허용만은 여전히
동작한다.

\begin{verbatim}
  \disablehangulspacingandlinebreak
\end{verbatim}
위 명령과 마찬가지로 모든 미세간격을 금지할 뿐만 아니라 CJK 글자 사이의
줄바꿈까지도 먹지 않게 한다.
그렇다면 애초에 \xetexko 를 로드할 필요가 없는 게 아닌가? 아니다.
여전히 영문자와 한글의 글꼴 분리는 작동한다. 만약 \verb|\disablekoreanfonts|와
이 명령을 같이 쓴다면 \xetexko는 완전히 무력화되어 처음부터 부르지
않는 것과 거의 같다.

일부 고급 오픈타입 기능을 사용하기 위해서 이 명령이 필요할 때가 있다.
이를테면, 다음 예에서  사용자가 의도한 바는 후자일 것이다.
{\small(만약 사용자가 \verb|\XeTeXlinebreaklocale|도 선언했다면
  \verb|\XeTeXlinebreaklocale""| 명령도 요구된다. 이 원시명령은 그룹 내에서
  쓰더라도 항상 전역적인 효과를 가짐을 유의하라)}
\begin{itemize}
\setmainhangulfont[Ligatures=Rare]{Adobe Myungjo Std}
\item
\hbox{\hbox to 0.7\textwidth{\vbox{%
\begin{verbatim}
\setmainhangulfont[Ligatures=Rare]
{Adobe Myungjo Std}
주식회사
\end{verbatim}
}\hss}\hbox{\vbox to 2pc{%
$\Longrightarrow$\quad 주식회사
\vss}}}
\item
\hbox{\hbox to 0.7\textwidth{\vbox{%
\begin{verbatim}
\setmainhangulfont[Ligatures=Rare]
{Adobe Myungjo Std}
\disablehangulspacingandlinebreak
주식회사
\end{verbatim}
}\hss}\hbox{\vbox to 2.5pc{%
$\Longrightarrow$\quad \disablehangulspacingandlinebreak 주식회사
\vss}}}
\end{itemize}


\section{일본어·중국어·고문헌}
띄어쓰기가 없는 옛문헌이나 일본어 단락 따위를 삽입할 때
japanese 혹은 chinese 환경을 선언하는 것이 좋다.
들여쓰기 {\small(들여쓰기 기본값은
japanese는 1em, chinese는 2em)}
및 자간 조절이 자동으로 이루어지며
사용자가 입력한 불필요한 공백도 없애준다.
다음은 japanese 환경을 선언하여 조판한 결과다.
\begin{quote}\setmainhanjafont[Script=Kana]{Kozuka Mincho Pr6N}
\begin{japanese}
このFAQリストは、よくある質問とその答を集め、役に立つようにしたものです。
このFAQリストの構造は、以前のものと比べて大幅に変更されています。
新しい構造に関しては、「このFAQの読み方とその構造」の項目を参照して下さい。
\end{japanese}
\end{quote}
Schinese 환경은 chinese의 다른 이름이다.
Tchinese도 제공하는데 중국어 번체 글꼴을 사용한다면 이 환경을 이용하라.

\section{inhibitglue}
\verb|\inhibitglue| 명령은 해당 지점에 자동 삽입되는 공백을 영(zero)으로
만들어준다.

\section{매달린 구두점}
라틴 마침표, 쉼표, 인용부호를 판면 바깥에 식자하여 행 끝에 매달리게
만들 수 있다. CJK 구두점에는 적용되지 않는다.
\begin{verbatim}
  \usepackage{xetexko-hanging}
  \hangingpunctuation
\end{verbatim}
\verb+\hangingpunctuation+ 명령은 글꼴 설정이 완료된 이후에 내려야
원하는 결과를 얻을 수 있다.

\section{수식 한글}
수식 모드에서도 한글을 {\small(hbox로 감싸지 않고)} 직접 입력할 수 있다.
\begin{quote}
  \verb|$가^{나^다}$|\quad$\Rightarrow\quad가^{나^다}$
\end{quote}
수식 한글은 따로 설정하지 않으면 문서의 기본 글꼴을 따라가지만
굳이 설정하려면 다음과 같이 한다. 이 명령은 플레인텍에서도 쓸 수 있다.
\begin{verbatim}
  \setmathhangulfont[ExternalLocation]{UnBatang}
\end{verbatim}
현재 한글만 쓸 수 있게 설정되어 있다.
한자도 수식에 직접 입력하려면 사용자는
\begin{verbatim}
  \setmathhangulblock{4E00}{9FC3}
\end{verbatim}
명령으로 유니코드 블럭을 추가 지정해야 한다.

\section{자동조사}
자동조사는 \kotex 의 경우와 기본적으로 동일하게 동작한다.
게다가 \verb|\ref| \verb|\pageref| \verb|\cite| \verb|\nameref| 따위의
뒤에서 뿐만 아니라 문장 중에서도 동작하고
플레인텍에서까지 사용할 수 있다.
그럼에도 불구하고 사용자가 임의로 제어하고자 한다면
\verb|\jong| \verb|\jung| \verb|\rieul| 중 하나를
미리 선언해 둘 수 있다. 이를테면,
\begin{verbatim}
  \def\mypage{페이지\jung}
  \def\mypage{쪽\jong}
  \def\mystar{별\rieul}
\end{verbatim}
특히 아직 옛한글에 대해서는 자동조사가 동작하지 않으므로 이러한
수동 설정이 유용할 수 있다. 제~\ref{sec:utilcs}절도 참고.

\section{드러냄표}
\dotemph{드러냄표} 강조도 \kotex 과 대동소이하다.
기본은 글자 위에 점을 찍는 형태이나 다음 명령을 이용해 개인적으로 선호하는
기호를 드러냄표로 쓸 수 있다.
\begin{verbatim}
  \def\dotemphraise{0.4em }
  \def\dotemphchar{\bfseries ^^^^02d9}
\end{verbatim}
전자는 드러냄표를 피강조 글자 위로 끌어올리는 길이를,
후자는 드러냄표 기호 자체를 정의한다.
\verb|^^^^02d9|는 유니코드 코드포인트를 뜻하는 16진수이고 소문자로만 써야 한다.
숫자 대신 직접 문자를 입력해도 된다.
플레인텍에서도 드러냄표 강조를 사용할 수 있다.

\section{고아글자}
\XeTeX의 한계로 인하여 자동으로 고아글자를 회피하는 기능은 구현하기 어렵다.
필요하다면 사용자가 적당한 곳에 \verb|\nobreak| 명령을 삽입해야 한다.

\section{한국어 표제}
패키지 옵션으로 \verb+[hangul]+이나  \verb+[hanja]+가 제공되므로
장 번호 따위를 한글 또는 한자 방식으로 식자할 수 있다.
다만 장(chapter) 제목이나 편(part) 제목에만 ``제(第)''가 붙어
``제~1 편'' ``제~3 장''과 같은 방식으로 표시되며
절 제목 이하에는 붙지 않는다
article, report, book 클래스에서만 정상 동작한다.

\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 패키지}를 로드하는 것만으로 자동 지원되지만,
플레인텍에서는 패키지 로드 후 사용자가 \verb|\xetexkoulemsupport|
명령을 내려주어야 한다.

\section{hyperref}
hyperref 패키지는 \verb+[unicode]+ 옵션 없이 쓴다.

\section{호환성}
레거시 엔진 시절에 작성한 문서도 최소한 컴파일만은 할 수 있도록 호환성에
유념하였다. xetexko가 아닌 kotex이나 dhucs를
부르는 문서도 xelatex으로 컴파일할 수 있다.
물론 완전한 호환성은 담보하지 않으며 종종 에러가 발생할 수도 있다.

\section{변경사항}
\onehalfspacing\small
\begin{itemize}
\item 2011/09/17
  \begin{itemize}
  \item vertical 환경의 인자 위치를 서로 바꾸어 써도 무방하게 함
  \end{itemize}
\item 2011/03/14
  \begin{itemize}
  \item ``다'' 고아글자 회피 기능 제거
  \end{itemize}
\item 2011/02/24
  \begin{itemize}
  \item Schinese와 Tchinese 환경을 분리
  \item 다른 설정이 없으면 수식한글은 본문 한글을 따라감
  \end{itemize}
\item 2011/02/12
  \begin{itemize}
  \item ``다.'' 고아글자 회피 구현
  \end{itemize}
\item 2010/03/24
  \begin{itemize}
  \item \verb|\disablecjksymbolspacing|
  \item \verb|YetHangul=On,Off| 옵션 추가
  \end{itemize}
\item 2010/02/06
  \begin{itemize}
  \item jamo-pua.map 이용한 옛한글 조판 지원
  \end{itemize}
\item 2010/02/04
  \begin{itemize}
  \item 자동조사가 문장 중 어디서나 동작. 플레인텍 지원
  \item \verb+\addhangulfontfeature+ \verb+\addhanjafontfeature+
  \item CJK 기호 글꼴 선택 가능
  \end{itemize}
\item 2010/01/21
  \begin{itemize}
  \item \verb+\xetexkofontregime+
  \item 알파벳, 숫자, 괄호, 콜론, 하이픈 글꼴 선택 가능
  \end{itemize}
\item 2010/01/17
  \begin{itemize}
  \item \verb+precommakern postcommakern lowercomma+
  \item \verb+\latinquotes \hangulquotes \hanjaquotes+
  \end{itemize}
\item 2010/01/15
  \begin{itemize}
  \item \verb+\newhangulfontface \newhanjafontface+
  \end{itemize}
\item 2010/01/13
  \begin{itemize}
  \item \verb+\newhangulfontfmaily \newhanjafontfamily+
  \item \verb+\hangulfontspec \hanjafontspec+
  \end{itemize}
\item 2009/12/08
  \begin{itemize}
  \item  자간 등 설정을 폰트 옵션으로 할 수 있음
  \item  \verb|\disableinterhangulspacing \disablelatinperiodsyoffset| 없앰
  \end{itemize}
\item 2009/12/05
  \begin{itemize}
  \item  CJK 기호를 새로운 클래스로 할당하고 전후 간격 없앰
  \item  japanese와 chinese의 들여쓰기 값을 따로 부여
  \end{itemize}
\item 2009/12/04
  \begin{itemize}
  \item  public domain으로 릴리스
  \end{itemize}
\end{itemize}
\end{document}
