%!TEX program = xelatex
\documentclass[a4paper]{oblivoir}

\usepackage[dbl4x6]{fapapersize}

\usepackage{graphicx}
\usepackage[jamo,untaza]{unfontsxe}
\usepackage{boxedminipage}
\usepackage{pmhanguljamo}

\usepackage{kotex-logo}
\newcommand*\texlive{\protect\TeX\,Live}
\newcommand*\pkg[1]{\textsf{#1}}

\pdfstringdefDisableCommands{%
	\def\XeTeX{XeTeX}%
	\def\LuaTeX{LuaTeX}%
	\def\XeLaTeX{XeLaTeX}%
	\def\LuaLaTeX{LuaLaTeX}}

\begin{document}

\title{\cnm{은 글꼴} 폰트 세트}
\author{Nova de Hi}
\date{2020/10/26\quad v0.4}

\maketitle

\tableofcontents*

\section{배경과 동기}

\texlive 에는 한글 트루타입 폰트가 두 종류 들어 있다. 백묵 글꼴과 은 글꼴이다.
은 글꼴은 원래 H\LaTeX{} 폰트였던 은광희 선생의 UHC글꼴에서 비롯된 트루타입이었고,
\koTeX{}의 초창기에 기본 폰트로 사용되었기 때문에 한글 \LaTeX 을 오래 써온 사람에게는
친숙한 폰트이다.
다른 선택의 여지가 없이 이 폰트를 써야 했던 시절이 있었던 것이다.

오늘날 \XeTeX-\ko 로 
한글 문서를 작성함에 있어 {\ttfamily \cs{usepackage}\{kotex\}} 이외의
아무런 추가적 조치를 취하지 않은 경우에 은 글꼴이 적용되어 본문의 한글 글꼴이 `은 바탕'으로 식자된다.
\fref{fig:unfontsdefault}\은 기본값으로 한글 한 문단을 식자한 결과이다.

새로운 텍 엔진의 등장과 더불어 한글 폰트의 선택의 폭이
비약적으로 늘어났다. 한때 나눔 글꼴이 중요하게 취급되었던 이유는 그것이
적절한 품위를 갖춘 공개 한글 폰트였다는 점이 크게 작용하였을 성싶지만
지금은 자유 폰트도 많고 그 자유 폰트의 품질도 만족스러운 상황이 되었다.
그러다보니, 예전의 친숙했던 \cnm{은 글꼴}을 얼마간 소홀히 대접하게 된 것이
사실인 듯하다.

은 글꼴(또는 UHC 글꼴)만으로 한글 문서를 조판해야 했던 당시에, 우리는 이 폰트로 
(그나마) 조화로운 한글 판면을 만들려면 필요한 것이 무엇인가 연구한 바가 있다.
문장 부호의 식자 방법에 대해서도 깊이있게 생각해보았고 기본 영문 폰트와의
어울림에 대해서도 많은 실험을 행하였다. 
그 결과 중에 ``자간과 어간(word space)을 적절하게 재설정해주어야'' 읽을 만한
한글 문단이 이루어진다는 것이 있었다. 적절한 자간과 어간의 값이 얼마인가에 대해서
여러 실험이 행해졌고 그 성과의 일부가 \pkg{oblivoir}의 \pkg{memhangul-ucs}에
반영되어 남아 있다.
돌이켜 생각해보면, `은 글꼴을 안 쓰면 고민할 필요가 없을' 문제에 너무 많은 노력을
기울였던 것이 아닌가 싶은 생각이 들고, 실제로 은 글꼴을 별로 안 쓰게 된 현재에
와서 그런 조사와 실험들은 아무 의미가 없는 것이 되고 말았다.
너무나 바람직한 발전의 결과라서 하나 아쉬울 건 없지만.

예컨대 오늘날 많은 사용자가 선호하는 Noto CJK 폰트(Source Han과 사실상 동일한
글꼴이다)로 \fref{fig:unfontsdefault}\를 조판하면 \fref{fig:notocjk}\와 같은 모양이 되는데,
이 결과는 대체로 자간 어간에 별다른 조절을 하지 않아도 충분히 납득할 수 있는 것으로
받아들여지고 있다. KoPubWorld 폰트는 더 촘촘하고 보기 좋은 결과를 보여준다(\fref{fig:kopub}).

\begin{figure}
\noindent\begin{boxedminipage}{\textwidth}
\centering
\includegraphics[scale=1]{test3-unbatang-crop}
\end{boxedminipage}
\caption{은 바탕 기본}\label{fig:unfontsdefault}
\end{figure}

\begin{figure}
\noindent\begin{boxedminipage}{\textwidth}
\centering
\includegraphics[scale=1]{test1-noto-crop}
\end{boxedminipage}
\caption{Noto Serif CJK 기본}\label{fig:notocjk}
\end{figure}

\begin{figure}
\noindent\begin{boxedminipage}{\textwidth}
\centering
\includegraphics[scale=1]{test2-kopub-crop}
\end{boxedminipage}
\caption{KoPubWorld Batang Light 기본}\label{fig:kopub}
\end{figure}

\begin{figure}
\noindent\begin{boxedminipage}{\textwidth}
\centering
\includegraphics[scale=1]{test4-unxe-crop}
\end{boxedminipage}
\caption{은 바탕 unfontsxe 적용}\label{fig:unfontsxe}
\end{figure}


은 글꼴의 글자꼴이 예쁘냐 마음에 드느냐와는 별개의 문제로 한글 문단의
가독성이 자간과 어간에 크게 좌우된다.
이 점에 착안하여 예전에 은 글꼴의 자간과 어간 default를 설정해야 했던 경험을 되살려,
\cnm{은 글꼴}을 본문 글꼴로 하는 경우에 번거롭게 일일이 신경쓰지 않아도 적당한
자간과 어간, 그리고 폰트 세트가 적용되도록 하여 편리를 도모하자는 것이 이 패키지의
목적이다.

\section{패키지 사용법}

\subsection{패키지 사용 선언}

\begin{boxedverbatim}
\usepackage{unfontsxe}
\end{boxedverbatim}

기본적으로 은 글꼴의 자간과 어간을 조절해준다. 이 패키지 사용 선언으로
만들어지는 문단 모양의 예시는 \fref{fig:unfontsxe}에 있다.

\subsection{폰트 가족}

본문 은 바탕 이외의 은 폰트 몇 종류를 NFSS에 대응시켜 두었다.
그 설정을 \tref{tab:fontfamily}에 요약하였다. 따라서 \cs{itshape} 자리에는
\emph{은 그래픽 글꼴}이 쓰인다. FakeSlant는 적용하지 않았다. 이탤릭 자리에 은 그래픽을
쓰는 것은 나름 오랜 전통을 가진 것이다.

\begin{table}[htp]
\centering
\caption{폰트 가족의 할당}\label{tab:fontfamily}
\begin{tabular}{r|l|l}
\hline
 & rmfamily & sffamily \\ \hline
Regular & \texttt{UnBatang} & \texttt{UnDotum} \\ 
BoldFont & \texttt{UnBatangBold} & \texttt{UnDotumBold} \\
ItalicFont & \texttt{UnGraphic} & \texttt{UnDinaru} \\
BoldItalicFont & \texttt{UnGraphicBold} & \texttt{UnYetgul} \\ \hline
\end{tabular}
\end{table}

\cs{sffamily}\cs{bfseries}\cs{itshape}는 {\sffamily\bfseries\itshape 은 옛글} 폰트가 
나오도록 해두었는데
이것은 특별한 목적으로 장식적으로 쓸 수 있도록 하기 위함이다. 정상적(?)인 문서에서
의도적으로 선언하지 않는 한
\cs{sffamily}\allowbreak\cs{bfseries}\allowbreak\cs{itshape}로 식자되는 경우는 거의 없을 것이다.

\section{사용자화}

위의 설정들은 패키지 옵션을 이용하여 사용자화할 수 있다.

\subsection{폰트 가족의 재할당}

\tref{tab:fontfamily}의 폰트 할당이 마음에 들지 않으면 이를 재할당할 수 있다.
이 때 사용할 key들은 다음과 같다. 예를 들면 \verb|mjbold=hline.ttf|와 같이
지정하면 \verb|hline.ttf|가 rmfamily의 bold series에 적용된다.

\begin{boxedverbatim}
	mjbold=
	mjitalic=
	mjbolditalic=
	gtbold=
	gtitalic=
	gtbolditalic=
\end{boxedverbatim}

\verb|=| 뒤에 폰트 이름을 적어준다. 파일 이름이나 폰트 이름을 쓸 수 있다.

이 패키지의 원래 의도와는 무관하지만 mj와 gt의 기본 폰트도 원한다면 바꿀 수 있으며
이때에는 \verb|mj=|와 \verb|gt=| 두 개의 key를 사용한다.

\subsection{기울어지는 한글}

\begin{boxedverbatim}
[fakeitalic]
\end{boxedverbatim}

이 옵션이 주어지면 \verb|[AutoFakeSlant]|를 활성화한다. 즉 ItalicFont와
BoldItalicFont가 우사체로 식자된다. 폰트 자체는 이미 정의되어 있는 ItalicFont에
의한 것이기 때문에 오직 \verb|[fakeitalic]|을 지정하는 것만으로는 은 그래픽 글꼴이
기울어지게 식자될 것이다. 이것을 은 바탕이 기울어지는 것만 되게 하려면,
\begin{verbatim}
\usepackage[mjitalic={*},mjbolditalic={*Bold},fakeitalic]{unfontsxe}
\end{verbatim}
와 같이 하면 되겠다.

\begin{quote}
\includegraphics[scale=1]{test5-italic-crop}
\end{quote}

\subsection{자간과 어간}

자간과 어간을 사용자가 조절하고 싶다면, 다음 key에 적절한 값을 주어서 패키지 옵션을 부여한다.

\begin{verbatim}
    mjinterhangul=
    gtinterhangul=
    mjwordspace=
    gtwordspace=
\end{verbatim}

interhangul 값은 단위가 붙은 길이값으로 준다. 예를 들면 \verb|mjinterhangul=5pt|.
이 값은 양수값이지만 실제로는 ``당기는 길이''이므로 음수값으로 바뀌어서 적용된다. 다시 말하면
\verb|mjinterhangul=2pt|라는 것은 \verb|InterHangul=-2pt|와 같은 의미이다.

wordspace 값은 \pkg{fontspec}의 \texttt{WordSpace}와 동일한 방법으로 부여한다. 다음은
그 예이다.
\begin{verbatim}
    mjwordspace=1
\end{verbatim}
또는
\begin{verbatim}
    mjwordspace={1,.5,.5}
\end{verbatim}
이런 방식으로 부여하면 된다. 이 값의 의미에 대하여는 \pkg{fontspec} 매뉴얼을 참고할 것.

\subsection{추가 옵션}

사용자가 추가적인 feature option을 부여하려 할 적에는 
\begin{boxedverbatim}
[other={}]
\end{boxedverbatim}
옵션을 사용하라. 중괄호 안에 원하는 옵션들을 추가한다.

\subsection{옛한글}

은 바탕으로 옛한글을 식자할 수 있다. 그럴 경우에는 \verb|[jamo]| 옵션을 활성화한다.
\begin{verbatim}
\usepackage[jamo]{unfontsxe}
\end{verbatim}

입력은 자모 한글로 하면 된다. \pkg{pmhanguljamo}로 간단한 입력을 시도해보자.
\begin{verbatim}
    \jamoword{na/ras;mar:ss@/mi;, bu/tyey: 
        目連/i; d@/rye; ni/r@/sya/d@i;}
\end{verbatim}
\begin{quote}
\jamoword{na/ras;mar:ss@/mi;, bu/tyey: 目連/i; d@/rye; ni/r@/sya/d@i;}
\end{quote}

\section{기타}

\subsection{\LuaTeX}

\LuaLaTeX 으로 조판하는 경우에도 문제없이 동작한다.

\subsection{UnTaza}

패키지 옵션 \verb|[untaza]|를 주면 mono 한글 폰트로 {\ttfamily 은 타자} 글꼴을
적용한다. 이 글꼴은 monospaced 글꼴이라는 점은 좋은 점이지만 글꼴 모양에 호불호가 심해서
default로 올리지는 않았다.

\subsection{백묵 글꼴}

백묵 글꼴도 \texlive 에 포함되어 있는 자유 한글 글꼴이다. 굵은 글꼴 없이
\texttt{batang.ttf}, \texttt{dotum.ttf}, \texttt{gulim.ttf},
\texttt{hline.ttf} 네 개의 폰트 파일이 들어 있다. 마지막 것은 
드물게 보는 {\adhochangulfont{hline.ttf} 제목용 글꼴}이다.

%이 글꼴의 바탕체는 은 바탕보다 자간을 더 많이 좁히고 어간도 훨씬 당겨주어야 볼 만한 판면이
%만들어진다.  이 패키지의 `사용자화' 옵션을 통하여 간단히 구현할 수 있을 것이다. 
%\fref{fig:baekmuk}\는 다음과 같은 옵션을 준 결과이다.
이 패키지는 원래 은 글꼴을 위하여 만들었지만 편의를 위하녀 \verb|[baekmuk]| 옵션을
두었다. 이 옵션을 활성화하면 백묵 바탕, 백묵 돋움 글꼴로 본문을 식자하며, FakeItalic과
FakeBold가 활성화된다. 본문 식자의 예를 \fref{fig:baekmuk}에 보였다.
이 패키지가 제공하는 옵션을 이용하여 백묵 글꼴이나 다른 폰트를 설정해서 쓰는 것도 물론 가능하다.

%\begin{verbatim}
%\usepackage[
%    mj=batang.ttf,
%    mjitalic=*,mjbold=*,mjbolditalic=*,
%    other={AutoFakeBold},
%    mjinterhangul=.06em,
%    mjwordspace={.5,.3,.2}
%]{unfontsxe}
%\end{verbatim}

\begin{figure}
\noindent\begin{boxedminipage}{\textwidth}
\centering
\includegraphics[scale=1]{test6-backmuk-crop}
\end{boxedminipage}
\caption{백묵 글꼴 예시}\label{fig:baekmuk}
\end{figure}

\section{결어}

이 패키지는 \cnm{은 글꼴}의 사용을 촉진하거나 장려하기 위한 것은 아니다.
폰트 사용은 어디까지나 문서작성자의 결정 사항이라고 본다. 그렇더라도 이 패키지가
은 글꼴의 활용에 조그만 편리라도 제공한다면 그것으로 만족한다.



\end{document}
