diff options
Diffstat (limited to 'macros/xetex/generic/xetexko/xetexko-doc.tex')
-rw-r--r-- | macros/xetex/generic/xetexko/xetexko-doc.tex | 626 |
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} |