diff options
Diffstat (limited to 'language/korean/pmhanguljamo/doc/pmhanguljamo-kdoc.tex')
-rw-r--r-- | language/korean/pmhanguljamo/doc/pmhanguljamo-kdoc.tex | 793 |
1 files changed, 793 insertions, 0 deletions
diff --git a/language/korean/pmhanguljamo/doc/pmhanguljamo-kdoc.tex b/language/korean/pmhanguljamo/doc/pmhanguljamo-kdoc.tex new file mode 100644 index 0000000000..8646c4d814 --- /dev/null +++ b/language/korean/pmhanguljamo/doc/pmhanguljamo-kdoc.tex @@ -0,0 +1,793 @@ +% +% Poorman's Hangul Jamo Input Method +% pmhanguljamo.sty 사용설명서 +% +% (C) 2020 Nova de Hi. +% part of pmhanguljamo package. +% +\documentclass[a4paper]{oblivoir} + +\hypersetup{colorlinks} + +\usepackage{fapapersize} +\usefapapersize{*,*,1in,*,1in,*} + +\usepackage{kotex-logo} +\usepackage{amssymb} +\usepackage{pmhanguljamo} +\usepackage{boxedminipage} + +\ifXeTeX +\def\fontfeatureoption{Script=Hangul} +\else\ifLuaTeX +\def\fontfeatureoption{Script=Hangul,RawFeature={mode=harf}} +\fi\fi + +%%% [Script=Hangul] is needed to typeset YETHANGUL +\setmainfont{Noto Serif} +\setsansfont{Noto Sans} +\setmonofont{Noto Sans Mono} +\setsansfont{Noto Sans CJK KR}[\fontfeatureoption] +\setkomainfont(Noto Serif CJK KR)(* Bold)(Noto Sans CJK KR Light)[\fontfeatureoption] +\setkosansfont(Noto Sans CJK KR)(* Bold)[\fontfeatureoption] +\setkomonofont(Noto Sans Mono CJK KR) + +\usepackage{tcolorbox} +\tcbuselibrary{listings,breakable} +\tcbset{listing engine=listings,colframe=gray,colback=white,size=normal} +\NewDocumentEnvironment {exampleside} {} + { \tcblisting{listing side text,righthand width=.38\textwidth} } + { \endtcblisting } + +\newcommand\pkg[1]{% + \textsf{#1}\index{#1}\index{패키지!#1}% +} + +\newcommand\env[1]{% + \textit{<#1>}\index{환경!#1}\index{#1}% +} + +\let\cmda\cmd + +%\makeindex +\parindent=0pt + +\begin{document} + +\title{Poorman's Hangul Jamo Input Method \\ \large pmhanguljamo.sty} +\author{Nova de Hi} +%\date{2020/07/17\quad v0.1} +%\date{2020/07/18\quad v0.1.1} +%\date{2020/07/19\quad v0.2.0} +\date{2020/01/20\quad v0.2.1} + +\maketitle + +\begin{exampleside} +\begin{jamotext} +g@/r@/mi p@/r@/ni sai de/ug h@i/o/,\\ +moy/hi pe/re/h@/ni gos/ bi/ci bvr bvd/n@n d@s/do/da/.\\ +ors bo/mi bon/d@in sdo di/na/ga/n@/ni \\ +e/nv na/ri i do/ra/gar h@i/o/. +\end{jamotext} +\end{exampleside} + +\tableofcontents* + +\section{목적} + +\pkg{pmhanguljamo.sty}는 ``Poorman's Hangul Jamo Input Method''에서 따온 이름이다. +알파벳과 몇 개의 기호문자만으로 한글 자모 (첫가끝) 입력을 대신할 수 있게 만든 것이다. +자모 조합 한글을 잘 처리할 수 있는 폰트의 도움을 받아 (\ref{sec:font}절을 보라) `모든' 한글 수백만자를 표현할 수 있다. +한글 패키지 \koTeX 과 함께 쓸 수 있고, 단독으로 사용해도 한글 표현이 가능하다. +외국어를 본문으로 하고 한두 글자의 한글만을 표현할 필요가 있을 때, 별도의 입력기가 없는 +상황에서 `옛한글'을 포함하는 문자와 문장을 출력하여야 할 때 쓸 수 있다. + +\hologo{XeLaTeX}, \hologo{LuaLaTeX}에서 사용할 수 있고 +\hologo{pdfLaTeX}은 지원하지 않는다. + +\section{사용법} + +\subsection{패키지 사용 선언} + +\begin{boxedverbatim} +\usepackage{pmhanguljamo} +\end{boxedverbatim} + +preamble에 위의 문장을 둔다. 패키지의 옵션은 따로 없다. + +\subsection{명령과 환경} + +\subsubsection{\texttt{\bs jamoword} 명령} + +\begin{boxedverbatim} +\jamoword{<several words>} +\end{boxedverbatim} + +한글 자모를 알파벳으로 입력하여 출력한다. +하나 또는 둘 이상의 단어가 올 수 있다. (단 하나의 단어만을 처리하는 \cmda{\jamotextcmd}라는 명령이 +있기는 하나 내부적으로 사용되는 것이다.) + +\medskip + +\begin{exampleside} +\jamoword{na/ras;mar:ss@/mi; dyuq/guig;ei dar/a;} +\end{exampleside} + +\subsubsection{\env{jamotext} 환경} + +\begin{boxedverbatim} +\begin{jamotext} +<text> +\end{jamotext} +\end{boxedverbatim} + +\env{jamotext} 환경은 여러 문단을 포함하는 긴 문장을 식자할 수 있다. + +\medskip +\begin{exampleside} +\begin{jamotext} +na/ras;mar:ss@/mi; dyuq/guyg;ey; dar/a; + +mun/jj@x;oa;ro; se/rv s@/m@s/di; a/ni;h@r/ss@i; +\end{jamotext} +\end{exampleside} + +\subsubsection{\texttt{\bs jmcc} 명령} + +\begin{boxedverbatim} +\jmcc{<single jamo>} +\end{boxedverbatim} + +음절이 아니라 한 개의 자모만을 표시할 목적으로 \href{https://en.wikipedia.org/wiki/Hangul_Compatibility_Jamo}{한글 호환 자모}를 식자하려 할 때 사용하는 명령이다. +호환 자모를 \cmda{\jamoword} 명령의 인자 안에서 쓰는 방법은 \ref{sec:compjamo}절을 보라. 이 명령은 본문 +중에서 독립적으로 쓰기 위해 마련되었다. +인자로 단 하나의 자모만이 와야 한다. + +\medskip +\begin{exampleside} +\jmcc{BSG} \jmcc{@} \jmcc{UEY} +\end{exampleside} + +\subsection{성조표지와 음절} + +입력에는 로마자 알파벳과 \verb|@| 부호, 그리고 세 개의 성조표지(방점) 기호 \verb|/|, \verb|;|, \verb|:|를 사용한다. + +\emph{성조표지가 와야 음절이 완성된 것으로 본다}. 모든 한글 음절은 반드시 성조표지로 끝난다. +평성이 아닌 성조표지는 (적절한 폰트에서) 한글 음절의 왼편에 찍힌다. + +\begin{table}[htpb] +\centering +\caption{성조 표지} \label{tab:tonemarker} +\begin{tabular}{l|l|l} +\hline +\texttt{/} & 평성 & 점 없음 \\ \hline +\texttt{;} & 거성 & 점 하나 (\jamoword{m@s;no/p@n; so/ri;}) \\ \hline +\texttt{:} & 상성 & 점 둘 \\ \hline +\end{tabular} +\end{table} + +성조 표기를 하지 않는 경우에도 음절의 완성을 나타내는 \verb|/|를 두어야 한다. +다만 이 경우에 입력 편의를 위한 예외로서 +그 뒤에 스페이스가 와서 단어 입력이 종료되는 위치(또는 입력 문자열의 마지막)에서는 \verb|/|를 생략할 수 있다. 다음 예를 보아라. + +\medskip +\begin{exampleside} +\jamoword{naix:jyuq/ G/ so/ri;n@n;}\\ +\jamoword{naix:jyuq G so/ri;n@n;} +\end{exampleside} + +스페이스 앞에서 \verb|/|를 생략할 수 있음과 관련하여 스페이스가 아니라면 생략할 수 없음에 주의하라. 예컨대 마침표와 같은 문장부호가 올 때는 그 문장부호 앞에서 \verb|/|를 생략할 수 없다. + +\medskip +\begin{exampleside} +\jamoword{jas ans bo/m@i pvr/oa na/mo/sbun gi/peys/do/da/.} +\end{exampleside} + +\subsection{알파벳 대응 문자} + +알파벳 소문자를 이용하여 한글 자모 영역의 문자를 입력한다. 자음과 모음의 대응 규칙은 다음과 같다. + +\subsubsection{자음} + +\begin{table}[h] +\centering +\caption{알파벳-자모 대응 규칙: 자음}\label{tab:cons} +\ttfamily +\begin{tabular}{ll|ll|ll|ll} +\hline +ㄱ & g & ㄴ & n & ㄷ & d & ㄹ & r \\ +ㅁ & m & ㅂ & b & ㅅ & s & ㅇ & \textbf{x} \\ +ㅈ & j & ㅊ & c & ㅋ & k & ㅌ & t \\ +ㅍ & p & ㅎ & h & \char"3181 & \textbf{q} & \char"317F & \textbf{z} \\ +\char"3186 & \textbf{f} & & & & & & \\ +\hline +\end{tabular} +\end{table} + +\begin{enumerate}[1)] \firmlist +\item \texttt{g}, \texttt{n}, \texttt{d}, \texttt{r}, \texttt{m}, \texttt{b}, \texttt{s}, \texttt{j}, \texttt{c}, \texttt{k}, \texttt{t}, \texttt{p}, \texttt{h}는 연상이 가능할 것이므로 따로 설명하지 않는다. \jmcc{R}에 대하여 +\verb|r|만을 사용하고 \verb|l|을 쓰지 않는다. +\item `\jmcc{X}'(이응)에 대하여 \verb|x|를 채택하였다. 원래 이것은 오래 전 \pkg{frktex}이라는 패키지에서 +첫소리 이응에 대하여 \verb|x|를 썼던 적이 있으므로 그 유래가 아주 없다고 할 수는 없겠다. 다만 이 패키지는 +종성 이응 받침도 \verb|x|를 쓴다. +\item `\jmcc{Q}'(옛이응)을 \verb|q|로 한 것은 역시 \pkg{frktex}에서 온 것인데 ``꼭지 달린 이응''이라는 글자 모양이 \verb|q|를 연상시킨다''는 이유였다고 한다. 그럴 법도 하다. +\item `\jmcc{Z}'(반시옷)을 \verb|z|로 한 것은 납득할 수 있다고 본다. z가 s의 유성음에 대응하기 때문에. +\item 가장 곤란했던 것은 \jmcc{F}(여린히읗)이었다. 사용되지 않은 자판 가운데서 선택할 수밖에 없는데 \texttt{l}, \texttt{v}, \texttt{w}, \texttt{f} 정도가 선택 가능한 범위였다. 알파벳이 아닌 부호문자 중에서 선택하는 것도 생각해보았으나 역시 자판의 윗줄로 올라가는 것은 꺼려져서 \verb|f|로 선택하였다. 순전히 편의에 의한 대응이다. +\item `\jamotextcmd{sl@}'나 `\jamotextcmd{slr@}'와 같은 특별한 글자, `\jamotextcmd{ssla/sslra/jla/jlra/jjla/jjlra/cla/clra}'의 초성 글자들, 즉 훈민정음 언해의 ``\jamoword{dyuq/guyg;so/ri;yeys; ni;sso/ri;}'' 표기에서 쓰이는 齒頭\cntrdot 正齒音을 구분하기 위한 글자들은 \texttt{s}, \texttt{j}, \texttt{c}에 \texttt{l}, \texttt{lr}을 붙여서 표기한다. \verb|l|이 왼쪽(치두음), \verb|lr|이 오른쪽(정치음)이 더 길어지는 글자가 된다. +\item `\jmcc{BX}', `\jmcc{BBX}', `\jmcc{MX}', `\jmcc{PX}'와 같은 ``\jamoword{ib/si/ur;ga/b@i;ya/bx@n; so/ri;}'' 표기는 \verb|x|를 이어써서 표기한다. 각각, \texttt{bx}, \texttt{bbx}, \texttt{mx}, \texttt{px}. +\item 겹자음\cntrdot 복자음은 이어쓴다. \texttt{gg} \jmcc{GG}, \texttt{bsg} \jmcc{BSG}, \texttt{bsd} \jmcc{BSD}, \texttt{rf} \jmcc{RF}. +\item `제로자음'인 초성 이응은 생략할 수 있다. 모음으로 시작하면 초성 이응을 식자해준다. \verb|\jamoword{an}| \jamoword{an}. 만약 정말로 초성을 비우기를 원한다면(즉 초성 필러를 쓰려 한다면) \verb|w|를 그 위치에 쓰도록 하라. 이것은 종성에는 적용되지 않는다. \verb|\jamoword{wan}| \jamoword{wan}. +\end{enumerate} + +\subsubsection{모음} + +\begin{table}[h] +\centering +\caption{알파벳-자모 대응 규칙: 모음} \label{tab:vow} +\ttfamily +\begin{tabular}{ll|ll|ll|ll|ll} +\hline +ㅏ & a & ㅓ & e & ㅗ & o & ㅜ & u & ㅡ & \textbf{v} \\ +ㅣ & i & \jmcc{@} & \textbf{@} & & & & & & \\ \hline +ㅑ & ya & ㅕ & ye & ㅛ & yo & ㅠ & yu & \kern-.3em\jmcc{@}\kern-.6em\jmcc{@} & @@ \\ \hline +ㅐ & ay & ㅔ & ey & ㅚ & oy & ㅟ & uy & ㅢ & vy \\ +ㅒ & yay & ㅖ & yey & \jmcc{YOI} & yoi & \jmcc{YUI} & yui & \jmcc{@I} & @i \\ \hline +ㅘ & oa & ㅙ & oay & ㅝ & ue & ㅞ & uey & & \\ \hline +\end{tabular} +\end{table} + +\begin{enumerate}[1)] +\item 기본 모음 ㅏ, ㅓ, ㅗ, ㅜ, ㅡ, ㅣ, \jmcc{@}(\texttt{@})는 한 글자로만 표기한다. ㅑ, ㅕ, ㅛ, ㅠ는 \verb|y|를 앞에 붙인다. +\item `ㅡ'를 영문자의 자음에 해당하는 \verb|v|에 대응시킨 것은 이상하게 보일 수 있다. 그러나 윗 항을 충실하게 지키려다 보니 부득이했다. 실로 이 홀소리 글자의 로마자 표기는 혼란스럽다고 생각하고 있는데, 표준인 \texttt{eu}만이 아니라 \texttt{y}, \texttt{u} 등이 있었고, 다른 어떤 제안에서는 \verb|w|도 있었던 것으로 기억한다. 어차피 마땅한 방법이 없다면 이렇게 약속하고 쓰는 것이 한 방법이라 생각한다. \verb|v|자를 죽 늘리면 `ㅡ'가 되는 것처럼 보이는 연상에서 비롯되었는지 모른다. +\item \texttt{e}를 보통 `에'라고 읽기 때문에 `ㅓ'를 \verb|e|에 할당한 것이 익숙지 않을 수 있다. 이것은 Yale 표기법에 그 기원이 있다. +\item `ㅐ, ㅔ'는 단모음으로 간주되기 때문에 \texttt{ay}, \texttt{ey}라고 쓰도록 하였다. 비슷한 이유에서 \texttt{oy}, \texttt{uy}라고 되었다. +그러나 이런 음성학적 지식이 표기에 반드시 필요하다면 그것도 불편하다. 그래서 `\texttt{ai}, \texttt{ei}, \texttt{oi}, \texttt{ui}'라고 입력하는 것도 허용하였다. `ㅢ'의 경우에도 +\texttt{vy}와 \texttt{vi} 둘 다 가능하다. + +\verb|\jamoword{sai/say}| \jamoword{sai/say}.\quad \verb|\jamoword{sei/sey}| \jamoword{sei/sey}. \\ +\verb|\jamoword{soi/soy}| \jamoword{soi/soy}.\quad \verb|\jamoword{sui/suy}| \jamoword{sui/suy}. \\ +\verb|\jamoword{gvi/gvy}| \jamoword{gvi/gvy}. + +그러나 \jmcc{@I}는 단모음으로 인식될 가능성이 없다고 보아 \verb|@i|만을 취하였다. + +\verb|\jamoword{g@i}| \jamoword{g@i}. + +\item `쌍아래아'는 현대의 제주어 표기에서 이따금 필요하다. 모양대로 \verb|@@|로 적으며 \verb|y@|를 취하지 않았다. 현대 국어에서 이 글자의 소리는 잊혀진 것이라서 소리로 연상할 수 없기 때문이다.\\ +\verb|\jamoword{@@/nam/vn}| \jamoword{@@/nam/vn}. +\item 표준 로마자 표기법에서 \texttt{wa}, \texttt{wo}, \texttt{we}, \texttt{wi}로 표기할 때 나타나는 반자음 \verb|w|은 채택하지 않았다. `ㅘ, ㅝ, ㅟ'는 생긴 대로 \texttt{oa}, \texttt{ue}, \texttt{ui}로 적는다. +\item 이 패키지는 Unicode 4.0의 한글 자모 보충 A, B를 지원한다. 그러므로 한글 자모 영역([U+11XX])에는 없는 `\jamoword{wuye}'와 같은 모음을 표기할 수 있다. \verb|\jamoword{sa/guye}| \jamoword{sa/guye/}. 물론 폰트가 이를 지원해야 한다. +\end{enumerate} + +\subsubsection{호환자모 음절} \label{sec:compjamo} + +\cmda{\jamoword}나 \env{jamotext} 범위 안에서 호환 자모를 식자하려면 해당하는 자모를 대문자로, 하나의 음절로 입력한다. +별도로 \cmda{\jmcc}를 쓰지 않는다. 그러나 반드시 하나의 자모가 한 음절이어야 한다.\\ +\verb|\jamoword{B/n@n; ib/si/ur;sso/ri;ni;}| +\jamoword{B/n@n; ib/si/ur;sso/ri;ni;} + +\verb|\jamoword{孟m@ix/子j@/I/ g@r/@/sya/d@i}| +\jamoword{孟m@ix/子j@/I g@r/@/sya/d@i} + +\medskip + +호환 자모 아래아 `\jmcc{@}'를 \cmda{\jamoword} 인자 안에서 식자하려 할 때는 자모 아래아 `\jamoword{w@}'와 +구별하기 위해 대문자 \texttt{W}로 표기해야 한다. \verb|W|와 \verb|WI|만이 지원된다. + +\verb|\jamoword{W/n@n; 呑t@n/D/字/jj@x; ga/on;d@is;so/ri; g@;t@;ni/ra;.}| \\ +\jamoword{W/n@n; 呑t@n/D/字/jj@x; ga/on;d@is;so/ri; g@;t@;ni/ra;.} + +\subsubsection{한자와 음절 한글} + +\cmda{\jamoword} 명령과 \env{jamotext} 환경 안에 오는 인자는 다음과 같은 문자에 대하여 예약이 되어 있다. +\begin{itemize}\firmlist +\item 알파벳 문자 --- 한글 자모 문자에 대응한다. +\item \texttt{;}, \texttt{:}, \texttt{/} --- 이 세 개의 부호는 성조표지, 음절완성을 표시하기 위하여 예약되어 있다. +\item \texttt{|} --- 이 한 개의 부호문자는 내부적으로 사용하도록 예약되어 있다. +\end{itemize} +이를 제외한 문자는 입력한 대로 찍힌다. 즉 한글 완성형 음절 문자나 한자 및 숫자와 문장부호가 모두 그대로 출력된다. +콜론, 세미콜론, 슬래시는 각각 \cmda{\ColonMark}, \cmda{\SemiColonMark}, \cmda{\SlashMark} 명령을 사용할 수 있게 해두었다. + +\medskip +\begin{exampleside} +\jamoword{15 세기 표기\ColonMark{} 國之語音, 우리나라의 말이 $\Rightarrow$ na/ras/mar/ss@/mi} +\end{exampleside} + +단일 매크로 자체는 그대로 출력된다. 그러나 인자를 취하는 매크로의 인자로 로마자 알파벳이 들어가는 경우에는 +이 로마자를 자모 한글로 처리하려 하기 때문에 오류가 발생한다. 알파벳 포함 인자를 취하는 매크로는 이 범위 안에 +넣지 않는 것이 좋다. + +\medskip + +음절문자뿐 아니라 자모 한글의 입력도 그대로 출력된다. 어디선가 옛한글% +\footnote{1933년 이전 표기법의 한글을 가리킨다. +유니코드의 한글 음절 문자 영역에서 표현되지 않는 한글을 통칭하는 것이나 +현대 한국어 중에서 제주어를 기록할 때도 쓰이고, 워드 프로세서 \jamoword{h@n/gvr}의 +이름을 적을 때도 쓰이기 때문에 그리 `옛' 것은 아니다. +이 글에서는 관행을 따라 옛한글이라고 부르기로 한다.} +텍스트를 복사해와서 넣을 때 유용할지도. +다음 예에서 이 패키지의 입력 방식과 첫가끝 입력 방식이 혼용되어 있는 것을 볼 수 있다. + +\medskip +\begin{exampleside} +\jamoword{(/du/si/en/hai dvx/go/) +ᄇᆞᄅᆞ미 ᄲᆞᄅᆞ며 하ᄂᆞᆯ히 놉고 나ᄇᆡ 됫ᄑᆞ라미 슬프니} +\end{exampleside} + +\section{폰트} + +\subsection{사용가능한 글꼴}\label{sec:font} + +자모 조합 한글을 출력하려면 이를 해낼 수 있는 글꼴이 필요하다. 소위 `옛한글' 글꼴이라지만 PUA 옛한글 +5000여자의 사용자 영역 글자만을 가지고 있는 글꼴로는 이 패키지에서 말하는 옛한글을 식자할 수 없다. 새바탕\cntrdot 새굴림과 같은 한양 옛한글 +폰트, 전주완판본체, 제주폰트 등이 모두 옛한글에 사용할 수 없는 폰트에 해당한다. + +자모 조합 한글을 구현할 수 있는 몇몇 글꼴을 테스트해보겠다. + +\begin{boxedverbatim} +sa:r@m/ma:da; h@i:xxye; su:bxi; ni/gye; +\end{boxedverbatim} + +\newcommand\teststr{\jamoword{sa:r@m/ma:da; h@i:xxye; su:bxi; ni/gye; +}} + +\newcommand\testfont[1]{% + \begingroup + \begin{adjustwidth}{2em}{2em} + \adhochangulfont[\fontfeatureoption]{#1}\teststr + \end{adjustwidth} + \endgroup +} + +함초롬 바탕 \testfont{HCR Batang LVT} + +은 바탕 \testfont{UnBatang} + +본명조 또는 Noto Serif CJK \testfont{Noto Serif CJK KR} + +나눔명조옛한글 \testfont{NanumMyeongjo-YetHangul.ttf} + +KoPubWorld 바탕 \testfont{KoPubWorldBatangMedium} + +함초롬 돋움 \testfont{HCR Dotum LVT} + +본고딕 또는 Noto Sans CJK \testfont{Noto Sans CJK KR} + +나눔바른고딕옛한글 \testfont{NanumBarunGothic-YetHangul.ttf} + +맑은 고딕 \testfont{Malgun Gothic} + +KoPubWorld 돋움 \testfont{KoPubWorldDotumMedium} + +\medskip + +옛한글을 무리없이 표현하는 것은 현재 이 정도인 것 같다. +각 폰트는 특정한 문자에 대해서 약간의 차이를 보이기도 한다. 참고로 이 문서에서는 +본문과 옛한글에 Noto Serif CJK KR을 사용하였다. + +\hologo{LuaTeX}으로 컴파일하는 경우에는 위에 든 폰트들, 즉 \texttt{Script Hangul} 속성을 +가진 폰트만 사용 가능하다. \hologo{LuaTeX}과 이 패키지의 관계에 대해서 +\pageref{sec:luatex}페이지를 참고하라. + +\ifXeTeX + +\bigskip + +한글 자모 영역의 글리프를 가지고 있는 글꼴이 있다. 성조표지를 잘 처리하지 못하는 경우가 있고 옛한글 +글자꼴이 반듯하지 않지만 어쨌든 글자가 나오기는 할 것이다. 이것은 \texttt{Script Hangul} 속성을 갖고 +있는 것은 아니며 단지 한글 자모 영역 글리프를 영리하게 배열한 것이다. 방점 없이 테스트해보겠다. + +\medskip + +\renewcommand\teststr{\jamoword{sa/r@m/ma/da h@i/xxye su/bxi ni/gye +}} + +은 자모바탕 \testfont{UnJamoBatang} + +은 돋움 \testfont{UnDotum} + +\medskip +그러나 자모 영역 자면이 있다 하더라도 글리프가 잘 조성되어 있지 않은 글꼴에서는 +다음과 같이 모아쓰기가 되지 않는 형태로 출력된다. 이런 글꼴은 옛한글에 사용할 수 없다. + +\medskip +전주완판본 순L \testfont{TSTJJWanSunL} + +\medskip + +\textbf{현대 한글 음절문자}는 적어도 \hologo{XeLaTeX}에서는 모두 제대로 표현될 것이다. +자모 코드로부터 한글 음절을 (유니코드 표준을 따라) 구성하는 일을 폰트가 아니라 \hologo{XeTeX}이 하고 있음을 짐작할 수 있다.\footnote{이 패키지의 입력 방법으로 \hologo{XeLaTeX} 컴파일하여 만들어진 현대 한글 음절 영역 문자를 pdf로부터 +복사하여 편집기에 붙여넣기하면 자모 코드가 아니라 음절 코드로 들어가는 것을 확인할 수 있다.} +현대 한글만을 표기하려 한다면 폰트의 제약이 줄어든다고 하겠다. + +\begin{boxedverbatim} +o/dvx/vn ja/ey a jo/sen/vi dog/rib/gug/im/goa +\end{boxedverbatim} + +\renewcommand\teststr{\jamoword{o/dvx/vn ja/ey a jo/sen/vi dog/rib/gug/im/goa}} + +백묵 바탕 \testfont{batang.ttf} + +Adobe 명조 \testfont{AdobeMyungjoStd-Medium.otf} + +전주완판본 순L \testfont{TSTJJWanSunL} + +제주한라산 \testfont{JejuHallasan.ttf} + +\fi + +\subsection{폰트의 지정} + +특정 언어 패키지나 입력기의 제약 없이 한글 글꼴을 지정하는 것만으로 +현대 한글과 옛한글을 모두 표현할 수 있다는 것이 \pkg{pmhanguljamo}의 장점이다. +다만 \koTeX\ 없이는 글자 사이의 행나눔이나 양끝맞추기 등 한글 문장 식자에 꼭 필요한 몇 가지 기능이 구현되지 +않을 것이므로 이런 점은 감안하여야 한다. 대체로 몇 자 정도의 한글을 넣어야 하는 때에 유용하리라 본다. + +\koTeX\ 패키지와 함께 쓸 때와 그렇지 않을 때를 나누어서 간단히 사용법을 보이겠다. + +\subsubsection{\koTeX\ 문서} +만약 \koTeX\ (\pkg{xetexko} 또는 \pkg{luatexko})과 함께 사용하는 경우라면 본문 한글 글꼴을 +다음과 같이 지정한다. + +\texttt{[Script=Hangul]} \emph{옵션을 반드시 주어야 한다}는 점을 기억하자.\footnote{이것은 +폰트가 가지고 있는 오픈타입 속성을 활성화하여 자모 한글을 제대로 출력하도록 지정하는 역할을 한다. 자모 한글을 +처리하는 기능을 가지고 있지 않은 글꼴에서는 아무 역할도 하지 않고 컴파일 시 콘솔에 경고 메시지를 보일 것이다.}% +\textsuperscript{, }\footnote{\hologo{LuaTeX}에서는 약간의 +추가 옵션이 더 필요할 수 있다. 이 문서의 이후 \texttt{[Script=Hangul]}을 주라고 하는 때에 +모두 동일하다. \pageref{sec:luatex}페이지의 부록 B를 보라.\label{fn:fontoption}} + +\begin{boxedverbatim} +\setmainhangulfont{Noto Serif CJK KR}[Script=Hangul] +\end{boxedverbatim} + +본문과 폰트를 달리 쓰려 한다면 \cmda{\jamoword} 또는 \env{jamotext} 범위에 다음과 같이 임시로 한글 글꼴을 적용한다. + +\begin{boxedverbatim} +\hangulfontspec[Script=Hangul]{HCR Batang LVT} +\end{boxedverbatim} + +\cmda{\adhochangulfont} 명령은 이와 동일한 명령이다. 이 폰트의 적용 범위를 설정하거나 하는 것은 문서작성자에게 맡겨져 있다. + +\subsubsection{\koTeX 이 아닐 때} + +\koTeX\ 문서가 아닐 때는 \pkg{fontspec} 패키지를 이용한다. main font를 위의 글꼴 중의 하나로 하거나(이 때에도 \texttt{[Script=Hangul]} 옵션을 반드시 지정하여야 한다.), +\cmda{\newfontfamily}로 글꼴 명령을 만들어 쓰거나, +아니면 한글이 필요한 부분에만 \cmda{\fontspec}으로 글꼴을 지정해주는 것으로 될 것이다. +\fref{fig:sample}\는 \pkg{article} 문서의 한 예이다.\footnote{폰트에 부여하는 +옵션에 관하여 각주~\ref{fn:fontoption}\을 볼 것.} + +\bigskip + +\pkg{polyglossia}와 함께 사용하는 것도 잘 된다.\footnote{\pkg{polyglossia}는 \XeLaTeX 에서만 사용 가능하다.} +다음은 이 경우의 한 설정 방법이다. +(이 보기에서는 한국어를 other language로 설정하고 있는데 만약 main language로 설정한다면 +\env{korean} 환경 안이 아니라도 한글 폰트가 적용된다.) +\pkg{polyglossia}를 사용하여 \env{korean} 환경에서 +쓰게 되면 한국어 조판에 필요한 상당한 지원이 이루어진다. + +\begin{boxedverbatim} +\documentclass{article} +\usepackage{polyglossia} +\setmainlanguage{english} +\setotherlanguage{korean} +\newfontfamily\hangulfont{UnBatang}[Script=Hangul] +\usepackage{pmhanguljamo} + +\begin{document} +\begin{korean} +\jamoword{han/gug/e/rvr han/gvr/ro} +\end{korean} +\end{document} +\end{boxedverbatim} + +만약에 \env{korean} 환경이 시작되면 그 안에서는 (무조건) pmjamo 입력 모드가 되도록 하려면 +다음 코드를 preamble에 두면 된다. + +\begin{boxedverbatim} +\usepackage{etoolbox} +\apptocmd\korean{\begin{jamotext}}{}{} +\pretocmd\endkorean{\end{jamotext}}{}{} +\end{boxedverbatim} + +이제 다음과 같이 간단히 입력할 수 있다. + +\begin{verbatim} +\begin{korean} +na/ras/mar/ss@/mi +\end{korean} +\end{verbatim} + +그러나 위의 처방은 이 환경 안의 모든 로마자가 한글이라는 확신이 있을 때만 적용해야 할 것이다. +\env{korean} 환경 안에서 로마자를 입력해야 할 일이 있을지 모르기 때문이다. + +\begin{figure} +\centering +\begin{boxedminipage}{\dimexpr\textwidth-2.5cm\relax} +\begin{verbatim} +\documentclass{article} +\usepackage{fontspec} +\newfontfamily\hngljmfont{HCR Batang LVT}[Script=Hangul] +\usepackage{pmhanguljamo} +\newcommand*\jmhangul[1]{% + \begingroup + \hngljmfont\jamoword{#1}% + \endgroup +} + +\begin{document} +Say `Hello' in Korean, +\jmhangul{an/nyex/ha/sey/yo}. +\end{document} +\end{verbatim} +\end{boxedminipage} +\caption{article에서 pmhanguljamo을 쓰는 예}\label{fig:sample} +\end{figure} + +\section{贅辭} + +이 패키지를 만들게 된 사연이 이러하다. +Kubuntu 리눅스에서 옛한글이 사용되는 문서를 작성할 일이 있었다. \texttt{fcitx} 입력기가 기본으로 설치되어 있었는데 +옛한글 입력이 되는 입력기를 설정하는 문제로 골머리를 썩이는 경험을 하게 된 것이다. +세벌식 자판 배열은 이미 잊은 지 오래. \texttt{nabi}는 크롬이나 +QT에서 뭔가 이상하게 동작하거나 아예 한글 입력이 안 되거나\ldots\ldots. +\LaTeX\ 문서인데 굳이 입력기가 필요한가 생각이 들어 간단히 로마자 대응 입력(transliteration)으로 한글과 옛한글을 +입력하도록 하면 이 문제로 시간낭비하지 않아도 되지 않을까 싶어 시작하게 된 일이었다. +(그리고 입력기 설치보다 더 많은 시간과 \jamoword{ke/xpi/}--\footnote{이 표기를 +이태준 (1940), \ccnm{文章講話} (경성 종로, 文章社), p.~23에서 보았다. `\jamotextcmd{pxi}'가 +아니라 `\jamotextcmd{xpi}'이다. 부록의 \fref{fig:mun} 참조. +인쇄 상태로 미루어보면 `\jamotextcmd{xpi}'자 활자가 있었던 것 같지는 않고 `피'를 식자한 후에 왼편에 +조그마한 고리를 달아 인쇄한 것으로 보인다.}% +를 소비하였다.) + +옛한글 입력과 관련하여, Mac OS에서는 구름 입력기가 있더라. 한글 Windows 10은 시스템 자체에 +옛한글 입력기가 있는 것 같고 여전히 새나루나 날개셋도 있다. +그러나 어떤 것이든 시스템 설정을 바꾸거나 새로운 앱을 설치하거나 해야 하는 것으로 귀찮음을 감수할 수밖에 없다. + +만들어놓고 보니 아예 한글 입력 자체가 불가능한 상황, +즉 시스템 설정을 건드릴 수도 없고 새로운 프로그램을 설치할 수도 없거나 +한글 입력기 자체가 없거나, +서버에 접속하여 문서를 작성하는 상황이라도 한글과 옛한글을 포함한 문서를 작성할 수 있게 되었다. +\emph{실용적으로 쓸 일이 있을까} 싶기는 하지만 버리기도 아까워서 기능을 보완하고 정리해두기로 하였다. + +이 ``한글 대응 입력'' 방식이라는 것은 나름 그 유래가 있다. \href{https://www.yudit.org/}{Yudit}이라는 편집기의 +옛한글 입력 방식이 그러하고 \pkg{frktex}에서도 역시 이런 식으로 한글을 입력했다. +한글 로마자 입력기(워드 프로세서에 내장된 것도 있고 시스템 입력기의 입력 방식 중의 하나인 경우도 있다)들은 +특히 \texttt{eu}, \texttt{eo} 모음 때문에 너무나 많은 키를 눌러야 해서 내가 그리 좋아하지 않았지만. + +그리고 옛한글 입력기가 있다 하더라도 두벌식 옛한글 입력이 필연적으로 겪게 되는 음절 경계의 문제는 피할 수 없다. +모음과 모음 사이에 최대 6개의 자음이 올 수 있는 조건에서 음절 경계의 판별을 완전히 자동화하는 것은 +불가능하다고 생각한다. 이 패키지에서도 그런 문제를 고려하여 처음부터 음절 경계를 입력하도록 +하였다. 약간의 번거로움은 피할 수 없지만 그 때문에 구현이 아주 간단해졌고 예외 처리를 위한 +고민을 해소할 수 있었다. +이와 관련하여 종성을 대문자로 입력하는 방안(Yudit 방식)을 유력하게 고려하였지만 쉬프트 누르기를 싫어하는 +나는 이를 채택하지 않았다. ``쉬프트를 누르느니 슬래시를 한 번 치고 말겠다.'' + +\bigskip + +이 패키지를 만들다보니 참 세상 편해졌다는 생각을 안 할 수가 없었다. +Expl3는 내가 원하는 일을 너무나 간단하게 구현할 수 있게 해주었다. \hologo{XeTeX}, \hologo{LuaTeX} 엔진의 유니코드 처리 기능은 한글 사용자에게 참 많은 혜택을 주었다고 생각한다. +십수 년 전에 옛한글 폰트와 구현을 만들려고 했던 여러 시도를 기억하는 입장에서는 당시 고민했던 문제가 말끔하게 +해결되어 있는 현재 상황이 믿어지지 않을 정도이다. +모든 한글을 잘 표현하는 좋은 폰트를 가지게 된 것은 무엇보다 반가운 일이다. 그런 폰트가 더 많아지기를 바란다. + + + +\section{변경 이력} + +\textbullet\ v0.1 (2020/01/17): 첫 릴리스. + +\textbullet\ v0.1.1 (2020/01/18): 호환자모 `\jmcc{@}' 입력 버그 수정. + +\textbullet\ v0.1.2 (2020/01/18): \hologo{LuaTeX} 컴파일 관련 수정. 문서 갱신. + +\textbullet\ v0.2.0 (2020/01/19): \texttt{pmhanguljamo}로 명칭 변경. + +\textbullet\ v0.2.1 (2020/01/20): \verb|\ColonMark| bug fix. thanks to yihoze. + +%%% APPENDICES +\ExplSyntaxOn +\int_new:N \l_appsec_int +\newcounter{tmpa} +\NewDocumentCommand \appsec {} +{ + \int_gincr:N \l_appsec_int + \int_to_Alph:n { \l_appsec_int } +} + +\ExplSyntaxOff + + +\newpage + +\section*{부록 \appsec. 이 문서 컴파일에 필요한 폰트} +\addcontentsline{toc}{section}{\string\qquad 부록} + +이 문서의 한글과 한자 부분에 다음과 같은 폰트를 사용하였다. +모두 설치되어 있어야 컴파일할 수 있다. + +\begin{description} \firmlist +\item[Noto CJK] Noto Serif CJK, Noto Sans CJK, Noto Sans Mono CJK 폰트. \href{https://www.google.com/get/noto/help/cjk/}{Google Noto CJK}. +Adobe사의 \href{https://source.typekit.com/source-han-serif/kr/}{본명조(Source Han Serif)}\cntrdot \href{https://github.com/adobe-fonts/source-han-sans/tree/release/}{본고딕(Source Han Sans)}과 거의 같다. +\item[함초롬 LVT] 함초롬 바탕 LVT, 함초롬 돋움 LVT. 한글과컴퓨터 \& 한국텍학회. \href{http://wiki.ktug.org/wiki/wiki.php/%ED%95%A8%EC%B4%88%EB%A1%AC%EC%B2%B4LVT}{KTUG:함초롬체 LVT}. +\item[나눔 옛한글] 나눔명조 옛한글, 나눔바른고딕 옛한글. \href{https://hangeul.naver.com/2014/archaicword}{네이버 한글한글아름답게}. +\item[KoPubWorld] KoPubWorld 바탕, KoPubWorld 돋움. \href{http://www.kopus.org/biz/electronic/font.aspx}{한국출판인회의}. +\item[맑은 고딕] Windows 8 이후 한글 Windows 폰트. 마이크로소프트. +\item[은 글꼴] 은 바탕 \TeX\,Live 배포 서체. +\end{description} + +\ifXeTeX +\hologo{XeTeX}으로 컴파일하는 상황에서는 다음 폰트들이 더 사용되었다. + +\begin{description} \firmlist +\item[은 글꼴] 은 자모바탕, 은 돋움. +\item[백묵 글꼴] 백묵 바탕. \TeX\,Live 배포 서체. +\item[전주완판본체] 전주완판본 순L. \href{http://www.jeonju.go.kr/index.9is?contentUid=9be517a75cfc1850015d0becebbf4672}{전주시청}. +\item[제주서체] 제주한라산. \href{https://www.jeju.go.kr/jeju/symbol/font/hallasan.htm}{제주특별자치도}. +\item[Adobe 명조] Adobe Reader 배포 서체. +\end{description} +\fi + +\section*{부록 \appsec. \hologo{LuaLaTeX} 컴파일을 위한 주석}\label{sec:luatex} + +\hologo{LuaLaTeX}으로 컴파일하는 경우를 위한 메모. + +우선 LuaHB\TeX 의 \LaTeX\ 포맷을 이용하는 것이 좋다. +\pkg{harfbuzz} 라이브러리를 활용하므로 더 바람직한 결과를 얻을 수 있을 것으로 기대한다. +이 패키지는 LuaHB\TeX\ 1.11.2를 기준으로 테스트하였다. \TeX\,Live 2019에 있는 1.10에서의 +올바른 동작은 보장하지 않는다. 이 때에는 \hologo{XeTeX}을 쓰도록 하라. + +폰트 설정 시에 옵션으로 다음을 부여한다. 아래 \texttt{RawFeature} 부분은 LuaHB\TeX 이 +아니면 에러를 토할 것이다. +\begin{verbatim} +[Script=Hangul,RawFeature={mode=harf}] +\end{verbatim} +이 설정은 \pkg{luatexko}와 함께 쓰는 경우든 아니든 필요하다. + +\hologo{LuaTeX}에서 이 패키지와 함께 사용할 수 있는 폰트는 \texttt{Script Hangul} 속성을 가진 폰트로 +제한된다. 이 속성을 가지지 않은 일반적인 폰트로는 자모 입력으로부터 한글 음절 문자를 얻어낼 수 없는 +것으로 보인다. \ref{sec:font}절에서 어떤 폰트가 사용가능한지 확인할 수 있다. + +\section*{부록 \appsec. 예제} + +훈민정음 어제 서문을 입력한 예를 보여두겠다. + +\begin{boxedverbatim} +\begin{jamotext} +世syeyx;宗joq/御ex;製jyeyx;訓hun;民min/正jyeq;音fvm/ + +na/ras;mar:ss@/mi; 中dyuq/國guig;ei; dar/a; +文mun/字jj@x;oa;ro; se/rv s@/m@s/di; a/ni;h@r/ss@i; +i;ren jyen/c@;ro; e/rin; 百b@ig;姓syeq;i; ni/rv/go;jye; horf; bai; +i/sye;do; m@/c@m;nai: jey bdv;dvr; si/re; pye/di; +mod:h@rf no;mi; ha/ni;ra;. + +nai; i;r@r; 爲uix;h@;ya; e:yes/bi; ne/gye; +sai;ro; sv;mvr; ye/dvrb; 字jj@x;r@r; m@iq/g@;no/ni; +sa:r@m/ma:da; h@i:xxye; su:bxi; ni/gye; +nar;ro; bsu;mey; +便bbyen/安fan/kvi; h@/go;jye; h@rf sd@/r@/mi;ni/ra;. +\end{jamotext} +\end{boxedverbatim} + +\begin{quote} +\begin{jamotext} +世syeyx;宗joq/御ex;製jyeyx;訓hun;民min/正jyeq;音fvm/ + +na/ras;mar:ss@/mi; 中dyuq/國guig;ei; dar/a; +文mun/字jj@x;oa;ro; se/rv s@/m@s/di; a/ni;h@r/ss@i; +i;ren jyen/c@;ro; e/rin; 百b@ig;姓syeq;i; ni/rv/go;jye; horf; bai; i/sye;do; +m@/c@m;nai: jey bdv;dvr; si/re; pye/di; mod:h@rf no;mi; ha/ni;ra;. + +nai; i;r@r; 爲uix;h@;ya; e:yes/bi; ne/gye; +sai;ro; sv;mvr; ye/dvrb; 字jj@x;r@r; m@iq/g@;no/ni; +sa:r@m/ma:da; h@i:xxye; su:bxi; ni/gye; +nar;ro; bsu;mey; +便bbyen/安fan/kvi; h@/go;jye; h@rf sd@/r@/mi;ni/ra;. +\end{jamotext} +\end{quote} + +\section*{부록 \appsec. 유니코드의 한글} + +이 글에서 사용한 다음 용어를 설명한다. + +\begin{description} \firmlist +\item[한글 자모] 유니코드 블럭 \textsf{[U+1100]}--\textsf{[U+11FF]}에 정의된 한글 자모(\emph{Hangul Jamo}). +\item[한글 자모 확장 A] 유니코드 블럭 \textsf{[U+A960]}--\textsf{[U+A97C]}에 정의된 한글 자모(\emph{Hangul Jamo Extended-A}). +\item[한글 자모 확장 B] 유니코드 블럭 \textsf{[U+D780]}--\textsf{[U+D7FB]}에 정의된 한글 자모(\emph{Hangul Jamo Extended-B}). +\item[한글 음절 문자] 유니코드 블럭 \textsf{[U+AC00]}--\textsf{[U+D7A3]}에 정의되어 있는, 한글 음절 문자(\emph{Hangul Syllables}. Precomposed syllables). 여기에 정의되어 있는 11,172개의 음절 문자는 한글 자모의 조합으로 구성할 수 있어야 하고, 이 문자 각각을 완성형 음절 문자로 간주할 수 있다. 한글 폰트는 이 영역의 글리프만을 가지고 있는 경우가 많고 현대 한국어 문자 생활에서 이 글자만으로 대부분 충족된다. +\item[한글 호환 자모] 유니코드 블럭 \textsf{[U+3131]}--\textsf{[U+318E]}에 정의되어 있는 한글 자모(\emph{Hangul Compatibility Jamo}). KS X 1001:1998 표준과의 호환을 위하여 마련된 영역인데 여기에 나오는 한글 자모는 조합에 활용하지 않으며 각 자모를 독립된 문자로 간주한다. +\end{description} + +\paragraph*{완성형과 조합형} +1980년대와 90년대의 이른바 \href{https://namu.wiki/w/%EC%A1%B0%ED%95%A9%ED%98%95%20%EC%99%84%EC%84%B1%ED%98%95%20%EB%85%BC%EC%9F%81}{조합형\cntrdot 완성형 논쟁}은 +한글 전산화, 한글 코드의 표준 제정을 둘러싼 논쟁이었다. +유니코드 2.0 이후 이것은 더이상 `논쟁'이 아니게 되었다. 오늘날 `완성형'이란 +한글 표현에 한글 음절 문자 영역의 코드를 사용한다는 의미에 가깝고, `조합형'이란 한글 자모 코드를 사용하여 한글을 +표현하는 것을 의미하게 되었다. +예를 들어 ``한글과 텍''이라는 문자를 음절 문자 코드로 표현하면 +\begin{verbatim} +[D55C] [AE00] [ACFC] [0020] [AC4D] +\end{verbatim} +처럼 되는데 이것을 자모 조합 코드로 표현하면 +\begin{verbatim} +[1112] [1161] [11AB] % 한 +[1100] [1173] [11AF] % 글 +[1100] [116A] % 과 +[0020] % space +[1110] [1166] [11A8] % 텍 +\end{verbatim} +로 된다. 특히 자음은 초성과 중성에 서로 다른 코드가 할당되어 있어서 +이를 두고 ``첫가끝(LVT)'' 코드\footnote{LVT라는 것은 +leading consonant, vowel, trailing consonant의 첫 자를 딴 것이다.}% +라고 부르기도 한다. +자모 조합 코드는 음절 문자 코드에 비하여 몇 배 이상의 정보량을 요구하는 단점이 있으나 +(UTF-8로 인코딩하면 그 격차는 더 벌어진다. UTF-8의 3바이트면 한글 음절 문자 한 자를 +표현할 수 있지만 초중종성이 모두 있는 글자라면 무려 9바이트가 필요하다.) +음절 문자로는 표현할 수 없는 한글을 기록하기 위해서는 이 방법밖에 없다. +그래서 이른바 `옛한글'을 첫가끝 코드로 표현하는 것이다. + +\paragraph*{폰트 기술의 발전} +코드가 그렇게 할당되었다 하더라도 이를 출력(표시)하는 것은 또다른 문제이다. +폰트라는 관점에서 생각하였을 때 +한글 음절 영역 코드라면 각 코드에 글리프를 할당하면 되므로 비교적 간단한 편이고 +이것이면 문자 생활에 큰 불편이 없기 때문에 대부분의 한글 폰트가 이런 정도의 기능만을 가지고 있다.\footnote{유니코드의 한글 +음절 영역 문자 11,172자를 모두 자면으로 갖춘 폰트가 등장한 것도 실은 오랜 일이 아니다. +그 전에는 소위 완성형 한글이라 불리는 2350자 글리프를 갖춘 것도 많았다. +그런데 생각해보면 우리의 문자 생활이 과연 만자 정도를 필요로 하는가? 아마 수천 자 +안팎이면 거의 문제가 없을 것이라 생각한다. 음절 문자도 충분히 많은 수이다.} +그런데 자모 조합의 경우에는 여러 코드를 조합하여 +이를 한 음절로 또는 한 음절처럼 표현하는 능력을 폰트가 갖추고 있어야 한다. +이 글의 본문에서 간간이 ``\texttt{Script Hangul} 속성을 갖춘 글꼴''이라는 표현을 썼는데 +자모 조합 코드로부터 한글 음절을 식자하는 것이 가능한 폰트를 말하는 것이었다. +GSUB/GPOS라는 트루타입 오픈의 속성을 이용하여 +이것이 가능하게 된 것은 21세기 들어서의 일이다. 이것을 거의 최초로 가능하게 하였던 +글꼴인 ``은 바탕''\footnote{이를 실험하고 구현한 신정식, 박원규 제씨의 기여는 기억할 가치가 있다.}의 역사적 의미는 +실로 적지 않다 하겠다. 그 후로 함초롬, 본명조와 같은 좋은 폰트들이 많아졌고, +이제 우리는 고품위의 ``한글 표현에 제약이 없는'' 훌륭한 자유 폰트를 여럿 가지게 되었다. + +\paragraph*{텍 엔진의 발전} +이와 더불어 \TeX 에는 \hologo{XeTeX} (그리고 \hologo{LuaTeX})의 새로운 +시대가 열렸다. 유니코드를 자유롭게 다룰 수 있게 되었다. + +\bigskip + +이 간단한 패키지는 이러한 기술적 발전을 그 배경으로 하고 있다. + +\paragraph*{여담: 두벌식과 세벌식} +이 문제는 키보드 자판 배열 디자인에 관한 문제이고 여기서 다루는 것과 직접 관련이 있지는 않다. +그러나 가끔 첫가끝 코드와 세벌식을 혼동하는 경우가 있어 여기 간략히 언급하기로 한다. +어쨌든 세벌식은 초성과 종성에 다른 키를 할당하는 것이고 첫가끝 코드는 초성과 종성에 다른 코드를 +할당하는 것이니 연관이 없다고 할 수도 없겠다. + +세벌식을 선호하는 사람들이 가끔 하는 말 중에 ``한글 창제 원리에 맞다''는 것이 있다. 키보드는 익숙함의 +문제가 더 큰 것이라서 어떤 것이 더 좋다거나 나쁘다거나 말하는 것이 큰 의미가 없다고 생각하지만 +이 말에 대해서는 생각해볼 것이 있다. 아마도 초/중/종성을 구분하여 입력하는 것이, 초성과 중성, 종성을 +합하여 한 글자를 이룬다는 것과 상통한다는 말인 듯하다. +그런데 훈민정음에서는 ``무릇 글자는 모름지기 어울려서 소리가 된다''고 하고 있는 한편, +``종성에는 초성자를 다시 사용한다''고도 하고 있다. 이 소위 終聲復用初聲의 원리를 키보드에 (억지로) +적용하면 ``종성 입력에는 초성 키를 다시 사용한다''라고 못할 것은 무엇인가? +즉 두벌식이냐 세벌식이냐와 훈민정음 창제 원리는 아무 상관이 없는 것이다. + +내가 생각할 때 세벌식의 가장 큰 장점은 첫가끝 코드와 키보드의 입력 키를 ``직결''시킬 +수 있다는 점일 듯하다. 코드가 다르면 다른 키를 누른다는 것이다. +매우 안심이 된다. 입력기를 설계하는 입장에서도 세벌식이라면 첫가끝 (자모 코드) 입력을 +더 편하게 구현할 수 있을 것 같다. +그러나 사실상 현대 문자 생활에서 첫가끝 코드를 쓰는 일이 거의 없으므로 이 장점이 크게 부각되지 +못한 측면이 있다. + +여기까지 쓰고 보니 소위 ``직결식 글꼴''에도 생각이 미치는데 현재 알려진 직결식 글꼴이란 것은 +한글 자모 코드를 쓰는 것이 아니라 그저 폰트에서 영문자 알파벳이 놓일 위치에 한글을 가져다둔 것일 +뿐이라 별로 언급할 필요를 느끼지 못한다. 다만 공병우 박사가 생전에 이 직결 글꼴의 아이디어로 +한글 문자생활을 했다는 이야기가 흥미롭다. + +\section*{부록 \appsec. \ccnm{문장강화}의 한 페이지} + +\begin{figure}[hp] +\centering +\includegraphics[width=9cm]{munjangganghwa} +\caption{이태준의 \ccnm{문장강화}의 한 페이지}\label{fig:mun} +\end{figure} + +%\printindex + +\end{document}
\ No newline at end of file |