%% part of kotexguide
\chapter{한글 문서 서식}

\section{각주 형식}\label{sec:fn}

\subsection{hangulfn의 각주 판짜기}

이 패키지는 \kotex/euc에서는 \texttt{hangulfn}, \kotex/utf에서는
\texttt{dhucsfn}이라는 이름으로 되어 있으며, 하는 일은 동일하다.
두 패키지 모두 영문자 옵션을 받아들이지만 \texttt{dhucsfn}은
한글 옵션을 처리하지 못한다. 영문자 옵션을 주로 사용할 것을 권장한다.

패키지의 사용법은 다음과 같다.
\begin{verbatim}
    \usepackage[선택사항]{dhucsfn}
\end{verbatim}
또는
\begin{verbatim}
    \usepackage[선택사항]{hangulfn}
\end{verbatim}

\texttt{선택사항}으로는 각주 번호의 판짜기 방식을 지정하는
\texttt{첨자}와 \texttt{괄호}가 있는데 각각 다음과 같이 짜여진다.
\begin{itemize}
\item \texttt{첨자(superscript)}: \xample{$^1$각주문}
\item \texttt{괄호(parenthesis)}: \xample{1) 각주문}
\end{itemize}
\texttt{첨자}의 경우에는 각주 번호와 각주문 사이가 붙고
\texttt{괄호}의 경우에는 소괄호와 각주문 사이에 구분 공간이 있다.
애초값은 \texttt{첨자}이다.

각주 판면의 판짜기를 지정하는 \texttt{선택사항}의 종류는 다음과
같다.
\begin{itemize}

\item \texttt{다항이어쓰기(multipara)}: 연이은 각주가 새 행에서 시작하지 않고 이전
  행의 오른쪽에 나열되며, 새 각주의 넓이가 행의 오른쪽 경계를 넘어 설
  때에 그 각주는 새 행에서 시작한다.  문서 전체가 길이가 짧은 각주로만
  구성될 때에 사용할 수 있는 판짜기 방식이다.

  \xample{\rule{2in}{.4pt}\\
    \footnotesize 12)~첫번째 각주\qquad 13)~두번째 각주\qquad
    14)~세번째 각주\qquad 15)~네번째 각주\linebreak 16)~다섯번째
    각주\qquad 17)~여섯번째 각주\qquad 18)~일곱번째 각주\qquad
    19) 여덟번째 각주 }

\item \texttt{단순이어쓰기(para)}: ``\texttt{다항이어쓰기}''와 같은 방식이나
  한 각주의 넓이가 행의 오른쪽 경계를 넘어 설 때에 경계를 넘어서는
  부분이 줄바꿈에 의해 다음 행으로 넘겨진다는 점이 다르다.

  \xample{\rule{2in}{.4pt}\\
    \footnotesize 12)~첫번째 각주\quad 13)~두번째 각주\quad 14)~세번째
    각주\quad 15)~네번째 각주\quad 16)~다섯번째 각주\quad 17)~여섯번째
    각주\quad 18)~일곱번째 각주\quad 19)~여덟번째 각주}

\item \texttt{내어쓰기(hang)}: 각각의 각주는 새 행에서 시작한다.  각주 번호가
  각주문의 왼쪽으로 내어 써 지고, 각주문의 왼쪽맞춤 위치가 각주문의 첫
  글자의 위치이다.  이 방식이 애초값이다.

  \xample{\rule{2in}{.4pt}\\
    \footnotesize\tabcolsep0pt
    \begin{tabular}[t]{lp{.9\columnwidth}}
    12)~ & 각주면의 각주 번호와 구분 공간을 각주문으로부터 왼쪽으로 내어
    쓰는 방식이다.  각주문의 가로 넓이는 본문의 가로 넓이에서 각주
    번호와 구분 공간의 넓이만큼 뺀 길이이다.
    \end{tabular}
  }

\item \texttt{왼쪽맞춤(leftflush)}: 각각의 각주는 새 행에서 시작한다.  각주의 첫
  줄이 왼쪽맞춤으로 짜진다.

  \xample{\rule{2in}{.4pt}\\
    \footnotesize
    12)~각주 번호와 각주문이 들여쓰기나 내어쓰기에 의해 구분되지 않고
    전체가 하나로 왼쪽맞춤 되는 판짜기 방식이다.  각주 번호와 각주문의
    사이에는 구분 공간이 삽입된다.  구분 공간은 \texttt{첨자}의 경우
    0pt이고 \texttt{괄호}의 경우 공간 문자이다.
  }

\item \texttt{들여쓰기(indent)}: 라텍이 제공하는 기본 각주 판짜기와 유사한
  방식이다.  각주 번호는 3배각의 위치에서 오른쪽으로 정렬되며 각주문이
  구분 공간을 사이에 두고 이어진다.  각주문 사이에 줄바꿈이 일어나면
  새 행이 본문의 왼쪽 맞춤 위치에서 시작한다.

  \xample{\rule{2in}{.4pt}\\
    \footnotesize\settowidth{\dimen0}{각주}
    \hbox to1.5\dimen0{\hss 12)}~첫줄 들여쓰기 방식이다.  각주 번호의
    끝이 왼쪽 가장 자리에서부터 3배각의 위치이다.  연이은 각주의 각주
    번호도 같은 위치에 정렬된다.\\
    \hbox to1.5\dimen0{\hss 13)}~이어지는 각주이다. 각주 번호가 위쪽의
    각주 번호와 함께 오른쪽으로 정렬되었다.
  }

\item \texttt{들여왼쪽맞춤(leftflushindent)}: ``\texttt{왼쪽맞춤}''과 같은 방식이다.
  전체 각주면이 본문으로부터 오른쪽으로 2배각 들여 써진다.

  \xample{\rule{2in}{.4pt}\\
    \footnotesize\settowidth{\dimen0}{각주}\tabcolsep0pt
    \begin{tabular}[t]{lp{.9\columnwidth}}
      \rule{\dimen0}{0pt} &
      12)~각주 번호와 각주문이 들여쓰기나 내어쓰기에 의해 구분되지 않고
      전체가 하나로 왼쪽맞춤 되는 판짜기 방식이다.  전체 각주면이
      본문의 왼쪽맞춤 위치에서 2배각 들여진다.
    \end{tabular}
  }

\item \texttt{들여내어쓰기(hangpar)}: ``\texttt{들여쓰기}''와 같은 방식이다.  전체
  각주면이 본문으로부터 오른쪽으로 2배각 들여 써진다.

  \xample{\rule{2in}{.4pt}\\
    \footnotesize\tabcolsep0pt
    \settowidth{\dimen0}{각주}
    \hspace*{\dimen0}
    \multiply\dimen0 by-1 \advance\dimen0 .89\columnwidth
    \begin{tabular}[t]{lp{\dimen0}}
      12)~ & 각주면의 각주 번호와 구분 공간을 각주문으로부터 왼쪽으로
      내어 쓰는 방식이다.  전체 각주면은 본문의 왼쪽에서 2배각 들여
      짜진다.  각주문의 가로 넓이는 본문의 가로 넓이에서 각주 번호와
      구분 공간의 넓이 그리고 2배각의 넓이를 뺀 길이이다.
    \end{tabular}
  }

\item \texttt{들여괄호맞춤(varhangpar)}:  ``\texttt{들여내어쓰기}'' 방식과 같으나
  각주문에서 줄바꿈에 의해 새로 시작하는 행의 왼쪽이 각주 번호에
  사용되는 괄호의 끝에 정렬되는 점이 다르다.  각주 번호 양식이
  ``\texttt{괄호}''로 바뀐다.  각주 번호와 각주문의 간격은 1배각이다.

  \xample{\rule{2in}{.4pt}\\
    \footnotesize\tabcolsep0pt
    \settowidth{\dimen0}{각주}
    \hspace*{\dimen0}
    \multiply\dimen0 by-1 \advance\dimen0 .89\columnwidth
    \begin{tabular}[t]{lp{\dimen0}}
      12) & ~~각주면의 각주 번호를 각주문으로부터 왼쪽으로 내어 쓰는
      방식이다.  각주 번호와 각주문 사이에는 1배각의 간격이 삽입된다.
      전체 각주면은 본문의 왼쪽에서 2배각 들여 짜진다.  줄바꿈 후에 새
      행이 각주 번호의 괄호 다음에서 시작했다.
    \end{tabular}
  }
\end{itemize}

\subsection{각주 문단 모양 관련}

한글 문서는 기본 행간을 영문 문서에 비하여 넓혀 잡기 때문에 각주 사이의
간격이 흐트러져서 모양이 일그러지는 경우가 생긴다. 즉, 한글 문서에서는
각주 사이의 간격을 적당하게 재조절해주어야 한다. 이에 대해서 \pkg{dhucs-setspace}(utf) 또는 \pkg{hsetspace}(euc)가 약간의 해결책을
제시해주시만, 각주 내의 행간을 재조절하는 특징이 있다.
일반적인 문서에서 각주 행간을 본문 행간과 동일하게 할 것인가 아니면
좁은 행간을 쓸 것인가는 전적으로 선택의 문제이지만, \verb|\footnotesep|
길이값을 저자가 직접 설정해줄 필요가 있다는 점을 기억해두자. 

\wi{각주 문단}이 다음 페이지로 넘어가는 문제와 관련하여, \LaTeX 에서는
각주 번호가 찍힌 페이지보다 앞에 각주가 먼저 나오는 경우가 없다는
것을 알아두어야 한다. 이 때문에 각주 위치잡기를 위해서 페이지의
하단이 비는 경우도 생기는데, 이를 해결하는 여러 가지 방법이 \LaTeX{}
관련 팁으로 제시되고 있다. 그 가운데 하나는 \pkg{bigfoot}\를
사용하는 것이다. 
\pkg{bigfoot}나 \pkg{footmisc} 등의 사용법을 익혀두면 문서 작성에서
도움을 얻는 경우가 많다. 

\section{자간, 행간, 단어간격}

\subsection{자간}

\wi{자간}을 처리하는 데는 있어서 알아두어야 할 것은 다음과 같다.

\kotex/euc에서 자간은 \verb|\hangulskip|이라는 길이값을 조절하는
것으로 가능하다. 예를 들면,
\begin{verbatim}
\hangulskip=0pt
\end{verbatim}

\kotex/utf에서는 비슷한 기능을 \verb|\setInterHangulSkip|이라는
명령을 통하여 지정할 수 있다.
\begin{verbatim}
\setInterHangulSkip{0pt}
\end{verbatim}
또한 폰트마다 각각 다른 자간값을 폰트 속성으로 부여해두었으므로,
위의 명령을 지정했다 하더라도 \verb|hfontspec|을 불러들이면
모두 폰트 속성값으로 대체된다. 따라서 위의 명령은 그다지 유용하지
못하고 사용자가 문서에서 활용할 만한 것이 아니다. 실제 자간은
판면의 모양을 심하게 일그러뜨리므로 되도록 사용자 수준에서 그 조절은
삼가야 할 것이다.

그럼에도 불구하고, 자간을 조절할 수 있는 유틸리티 패키지가 제공된다.
이것은 \texttt{hlatex-interword}(euc) 또는 \texttt{dhucs-interword}(utf)라는
패키지의 기능 중의 하나이다. \verb|\interhchar| 명령을 이용한다.
\begin{verbatim}
\usepackage{dhucs-interword} % or, hlatex-interword (euc)
\interhchar{0pt}
\end{verbatim}

\kotex/utf에서 \verb|\setInterHangulSkip|과 \verb|\interhchar|는
사실상 동일한 명령이다. 

\pkg{dhucs-interword} 등을 씀에 있어 주의할 점은,
\texttt{[default]} 옵션으로 
로드하면 기본 자간이 $0$pt로 리셋된다는 점이다. 그러므로 폰트 속성
자간값을 적용하려면 \texttt{dhucs-interword} 이후에 
\verb|\usehangulfontspec| 명령을 호출하는 것이 좋다. 
\begin{verbatim}
\usepackage[default]{dhucs-interword}
\usehangulfontspec{ut}
\end{verbatim}

\pkg{dhucs-interword}\가 의도대로 동작하려면  \kotex/utf에서
\texttt{finemath}가 활성화되어 있어야 한다.

\subsection{단어간격}\label{sec:interword}\index{단어 간격}

단어 간격과 관련된 \LaTeX{} 명령은 \verb|\spaceskip|이다. 그리고
nonfrench spacing에서 \verb|\xspaceskip|은 마침표 뒤의 여분 공백의
크기를 지정한다. \kotex/euc는 언제나 nonfrench로만 동작하지만
\kotex/utf는 nonfrench 옵션을 지정해야 한다는 사실을 기억해두자. 

\pkg{dhucs-interword} 또는 \pkg{hlatex-interword}는
단어간격의 기본값을 설정하거나 바꿀 수 있게 하는데, \verb|\interhword|
명령이 그것이다. 다만 이 두 경우 사용법이 조금 다르다는 사실에 주의하자.

\medskip

\noindent\underline{dhucs-interword}
\begin{verbatim}
\usepackage{dhucs-interword}
\interhword[.6]{.475}{.1}{.1}
\end{verbatim}
여기에서 옵션 인자는 \verb|\xspaceskip| 값을 의미하며, french
spacing에서는 무의미하다. 이 값들은 문서 기본 폰트 사이즈의
승수값을 의미한다. 즉, $.475$라는 것은 $0.475\times 10\mbox{pt} = 4.75\mbox{pt}$가
되는 것이다. \texttt{[12pt]} 옵션의 문서라면 이 값이 달라진다.

\medskip

\noindent\underline{hlatex-interword}
\begin{verbatim}
\usepackage{hlatex-interword}
\interhword{.475em}{.1em}{.1em}
\end{verbatim}
이 경우에는 길이 단위를 지정해주어야 한다.

두 경우 모두, 첫번째 인자와 두번째, 세번째 인자 사이는 다음과 같은
규칙으로 적용된다.
\begin{verbatim}
   <first> plus <second> minus <third>
\end{verbatim}

자간과 단어 간격을 설정하는 \pkg{hlatex-interword}와 
\pkg{dhucs-interword}에서 사용할 수 있는 옵션과 매크로는 다음과 같다.
\begin{description}
\item[\texttt{[default] 옵션}] 한글 문서에 적당한 자간과 어간을
설정한다. 영문자의 자간 및 어간보다 조금 넉넉한 정도이다.
\item[\texttt{[HWP] 옵션}] 아래아한글 97의 기본 자간 및 어간 설정을
흉내낸 것이다. \texttt{[default]}보다 어간이 더 넓다.
\item[\texttt{\textbackslash interhword 매크로}]
 어간을 임의로 설정하게 한다.
\item[\texttt{\textbackslash interhchar 매크로}]
 자간을 임의로 설정하게 한다. 한 개의 인자를 취하는데 반드시 길이단위를
 붙여주어야 한다. \verb|\interhchar{0pt}|는 자간을 0 point로
 만드는 것이다. 다만, 이 방식에 의한 자간의 변경은 그다지 권장하지 않는다.
 왜냐하면 자간은 폰트 자체의 속성으로 간주하여 hfontspec에 의해 제어되는
 것이 바람직하다고 보기 때문이다. \pkg{dhucs-interword}\는 단어 간격의
 제어에만 활용되는 것이 좋으리라고 생각한다.
\end{description}

\subsection{행간}\label{sec:setspace}

행간은 \verb|\baselinestretch|나 \verb|\linespread|를 이용하여
간단하게 제어할 수 있지만 좀더 복잡한 경우도 없지는 않다. 예를 들면
문서 일부에 별도의 행간을 적용한다든가\ldots

행간을 제어하기 위하여 제공되는 패키지는 \texttt{hsetspace} 또는
\pkg{dhucs-setspace}이다. 이 패키지는 \pkg{setspace}\를
한글화한 것이다. 

\texttt{[hangul]} 옵션을 활성화하거나 이 패키지를 로드하면
기본 행간이 \texttt{1.333}으로 변경된다. 그리고 \pkg{setspace}의
모든 기능을 다 쓸 수 있다. 이 패키지의 사용법은 해당 패키지 문서를
참고하라. 
\begin{verbatim}
\usepackage[hangul]{dhucs-setspace}
\end{verbatim}

\pkg{setspace}의 독특한 특징 중 하나가, 행간을 늘리더라도 
floats(그림과 표), footnote 안의 행간은 여전히 1.0으로 고정된다는
것이다. 한글화 과정에서 이 개념을 확대하여, 넓은 행간과 좁은 행간
두 종류로 나누고 좁은 행간을 footnote, floats, quote, verbatim
등에 적용한다. 이를 설정하는 명령이 \verb|\SetHangulspace|이다.
\begin{verbatim}
\SetHangulspace{1.333}{1.2}
\end{verbatim}

이 패키지는 좀 복잡한 옵션을 가지고 있는데 이를 설명하면 다음과 같다.

\pkg{hsetspace}\와 \pkg{dhucs-setspace}\는 \pkg{setspace}\를 불러온다.
즉, singlespace, doublespace, onehalfspace 등의
환경과 \texttt{\textbackslash singlespacing} 등의 선언을
사용할 수 있다.
한글화를 위해서 추가된 옵션과 매크로만을 소개하면
다음과 같으며, 실제 사용법은 \pkg{setspace} 매뉴얼을 참고하라.
\begin{description}
\item[\texttt{[nofloatspacing] 옵션}]
 figure, table 등의 float 내에서 간격을 줄이는 기능을 끈다.
\item[\texttt{[noquotespacing] 옵션}]
 quote 환경 안에서 간격을 줄이는 기능을 끈다.
\item[\texttt{[hangul] 옵션}]
 한글화 매크로인 \verb|\SetHangulspace| 명령을 쓸 수 있게 하고
 행간을 한글 문서 기본값으로 설정한다.
\item[\texttt{[adjustverbatim] 옵션}]
 verbatim 환경 안에서 좁은 간격을 적용한다.
\item[\texttt{[adjustfootnotesep] 옵션}]
 각주는 기본적으로 좁은 간격으로 된다. 그러나 각주 간 간격은 자동으로
 맞추어지지 않는데 이것을 조금 보정하도록 한 것이다. 행간을 임의로
 설정하려 할 때는 무의미하고 기본값에 대응시킨 것이다.
\item[\texttt{\textbackslash SetHangulspace 매크로}]
 두 개의 인자를 취하여 첫번째 것을 기본 행간, 두번째 것을
 좁은 행간 간격으로 한다. 인자는 모두 stretch 값이어야 한다.
 예를 들면 \verb|\SetHangulspace{1.3}{1.1}|과 같은
 방법으로 사용하며, preamble에서만 사용한다. `좁은 행간'은 float,
 각주 등에 사용되는 행간을 말한다.
\end{description}

euc 버전과 utf 버전은 동일하게 동작한다. 

\section{\kotex/euc에서의 밑줄}\label{sec:underlineulem}

\pageref{sec:underline} 페이지의 \ref{sec:underline}절에서
말한 바와 같이 \kotex/utf와는 달리 \kotex/euc는 \pkg{ulem}\과
약간의 충돌이 있다. 부분적이나마 이 문제를 피해가기 위해 \pkg{myulem}\이라는 
작은 패키지가 제공된다. 다음과 같이 사용한다. 
\begin{verbatim}
\usepackage{myulem}
\end{verbatim}
밑줄 명령들 앞에는 \texttt{h}를 붙여서 쓴다.
\begin{verbatim}
\huline{가나다}
\huwave{가나다}
\hsout{가나다}
\hxout{가나다}
\huuline{가나다}
\end{verbatim}
결과는 다음과 같다.
\begin{quote}
\ifEUCmode
 \huline{가나다}
 \huwave{가나다}
 \hsout{가나다}
 \hxout{가나다}
 \huuline{가나다}
\else
 \uline{가나다}
 \uwave{가나다}
 \sout{가나다}
 \xout{가나다}
 \uuline{가나다}
\fi
\end{quote}
다만, \kotex/euc에서는 \kotex/utf와는 달리, 밑줄 명령 안에서는
단어 단위로만 행나눔이 이루어진다. \kotex/utf는 밑줄 명령 안이라도
글자 단위로 행나눔이 가능하다.
여러 가지 면에서 \kotex/utf의 \pkg{ulem}\를 사용하는 방식이 더 낫다. 

\section{장절표제}\label{sec:sectsty}

\kotex 은 \texttt{[hangul]} 옵션을 두고 있다. 이 옵션을 활성화하면
두 가지 중요한 변화가 일어난다.\footnote{%
  \kotex/utf 에서는 추가적인 번호 형식, 추가적인 방점 명령 등을
  더 사용할 수 있게 된다.}
\begin{enumerate}
\item 한글식 이름(names)을 사용한다. 그래서 Figure와 같은 표제 이름이
`그림'으로 바뀐다.
\item 한글식 장절표제 모양이 활성화된다. 예를 들면 ``Chapter 1''이 아니라
``제 1 장'' 형식으로 식자한다.
\end{enumerate}

그러나 이것만으로는 충분하지 못하다. 장절표제의 형식을 바꾸는 많은
패키지들이 있는데 이것과 한글 장절표제 형식이 일치하지 않아서 생기는
문제들이 많이 있다. 모든 관련 패키지를 다 지원할 수는 없지만 
\pkg{sectsty}\은 이를 한글화해 두었다. \pkg{hsectsty}(euc)
또는 \pkg{dhucs-sectsty}(utf)이 그것이다. 이 패키지의
장절표제 설정 명령과 함께 한글식 장절표제 형식을 유지하도록 해준다.
\pkg{sectsty}의 사용법은 해당 패키지 문서를 참고하라. 

\pkg{hsectsty}\과 \pkg{dhucs-sectsty}\는 \texttt{[ensec]}
옵션을 줄 수 있다. 이렇게 하면 한글 서식을 적용한 경우에도
절 제목에 한해서 영문 문서와 같이 ``제''와 ``절'' 없이 숫자만
찍힌다. 

oblivoir를 사용한다면 memoir의 간편한 방식을 사용하여 더 쉽게
장절표제 형식을 사용자화할 수 있다. 

\section{문장부호}

\subsection{우리말 문장부호의 사용법}

우리말 문서에서 사용되는 문장 부호는 라텍에서 제공되는 문장 부호가
사용될 수 있다.  그러나 특수한 경우에는 우리말 문자 체계에서
제공하는 상징 문자를 사용해야 하고 경우에 따라서는 특별한 명령으로
구현되어야 한다.  \cite{Hangul92}의 부록에서는 우리말 문서에서
다음과 같은 문장 부호의 사용법을 규정하고 있다.

\subsubsection{마침표}

\begin{itemize}
\item 온점(.), 고리점(。)\\
  가로쓰기에는 온점, 세로쓰기에는 고리점을 쓴다.\\
  온점은 마침표라고도 하며 영문 ASCII에서 사용되는 부호와 동일한
  부호(.)로 입력되고 고리점은 우리말 상징 문자(。)가 사용된다.\\
  \xample{젊은이는 나라의 기둥이다.}
\item 물음표(?)\\
  의심이나 물음을 나타낸다.\\
  영문 ASCII에서 사용되는 부호와 동일한 부호(?)이다.\\
  \xample{이제 가면 언제 돌아오니?}
\item 느낌표(!)\\
  감탄이나 놀람, 부르짖음, 명령 등 강한 느낌을 나타낸다.\\
  영문자에서 사용되는 부호(!)와 동일하다.\\
  \xample{아, 달이 밝구나!}
\end{itemize}

\subsubsection{쉼표}

\begin{itemize}
\item 반점(,), 모점(、)\\
  가로쓰기에는 반점, 세로쓰기에는 모점을 쓴다.  문장 안에서 짧은
  휴지를 나타낸다.\\
  반점은 영문자에서 사용되는 부호(,)와 동일하고 모점은 우리말 상징
  부호(、)를 사용한다.

  \xample{근면, 검소, 협동은 우리 겨례의 미덕이다.}
\item 가운뎃점($\cdot$)\\
  열거된 여러 단위가 대등하거나 밀접한 관계임을 나타낸다.\\
  라텍의 수학 기호(\texttt{\$\textbackslash cdot\$})을 입력하거나
  우리말 상징 부호(·)을 사용할 수 있다.

  \xample{철이$\cdot$영이, 영수$\cdot$순이가 서로 짝이 되어 윳놀이를
    하였다.}
\item 쌍점(:)\\
  내포되는 종류를 들 적에, 소표제 뒤에, 저자명과 저서명 사이 등에
  쓴다.\\
  영문자 부호 콜론(:)을 입력한다.

  \xample{문방사우: 붓, 먹, 벼루, 종이}
\item 빗금 (/)\\
  대응, 대립되거나 대등한 것을 함께 보이는 단어와 구, 절 사이에 쓴다.
  분수를 나타낼 때에 쓰기도 한다.\\
  영문자(/)를 입력한다.

  \xample{착한 사람/악한 사람\qquad 맞닥뜨리다/맞닥트리다}
\end{itemize}

\subsubsection{따옴표}

\begin{itemize}
\item 큰따옴표(``''), 겹낫표(『』)\\
  가로쓰기에는 큰따옴표, 세로쓰기에는 겹낫표를 쓴다.  대화, 인용,
  특별 어구 따위를 나타낸다.\\
  큰따옴표는 라텍의 입력 방식에 따라 작은따옴표를 두 번(\texttt{``''})
  입력하여 사용하고 겹낫표는 우리말 상징 부호(『』)를 입력하여
  사용한다.  (우리말 상징 부호의 겹낫표는 시계 반대 방향으로
  $90^\circ$ 회전된 형태이다.  아마도 가로쓰기에서
  사용될 수 있도록 변화된 것으로 보인다.)

  \xample{``전기가 없었을 때는 어떻게 책을 보았을까?''}
\item 작은따옴표(`'), 낫표(「」)\\
  가로쓰기에는 작은따옴표, 세로쓰기에는 낫표를 쓴다.  큰따옴표는 라텍의
  인용 부호(\texttt{`'})를 입력하여 사용하고 낫표는 우리말 상징
  부호(「」)를 입력하여 사용한다.  (우리말 상징 부호의 낫표는 시계 반대
  방향으로 $90^\circ$ 회전된 형태이다.  아마도 가로쓰기에서
  사용될 수 있도록 변화된 것으로 보인다.)

  \xample{지금 필요한 것은 `지식'이 아니라 `실천'입니다.}
\end{itemize}

\subsubsection{묶음표}

\begin{itemize}
\item 소괄호(())\\
  원어, 연대, 주석, 설명 등을 넣을 적에, 빈 자리임을 나타낼 적에도
  쓴다.\\
  영문자의 소괄호 부호(())를 입력한다.

  \xample{우리 나라의 수도는 (\qquad)이다.}
\item 중괄호 (\{\})\\
  여러 단위를 동등하게 묶어서 보일 때에 쓴다.\\
  라텍의 입력 방식에 따라 역사선 문자 다음에 해당
  중괄호(\texttt{\textbackslash\{\textbackslash\}})를 입력한다.

  \xample{$$\mbox{주격 조사}\;\;\{{\mbox{이}\atop\mbox{가}}\}$$}
\item 대괄호 (〔〕)\\
  묶음표 안의 말이 바깥 말과 음이 다를 때 혹은 묶음표 안에 또
  묶음표가 있을 때에 쓴다.\\
  영문자 대괄호([])를 사용할 수도 있으나 우리말 상징 부호에 있는
  대괄호의 꺾음 정도가 다르므로 (〔〕) 우리말 상징 부호를 입력하여
  사용할 수 있다.

  \xample{명령에 있어서의 불확실〔단호(斷乎)하지 못함〕은 복종에
    있어서의 불확실〔모호(模糊)함〕을 낳는다.}
\end{itemize}

\subsubsection{이음표}

\begin{itemize}
\item 줄표 (---)\\
  이미 말한 내용을 다른 말로 부연하거나 보충함을 나타낸다.\\
  라텍의 입력 방식에 따라 붙임표를 세번 입력하거나 우리말 상징
  문자(―)를 입력하여 사용한다.

  \xample{어머님께 말했다가---아니, 말씀드렸다가---꾸중만 들었다.}
\item 붙임표 (-)\\
  사전, 논문 등에서 합성어를 나타낼 적에, 또는 접사나 어미임을 나타낼
  적에 혹은 외래어와 고유어 또는 한자어가 결합되는 경우에 쓴다.\\
  영문자 부호(-: hyphen)을 입력하여 사용한다.

  \xample{겨울-나그네\qquad 빛-에너지}
\item 물결표 (∼)\\
  `내지'라는 뜻에 혹은 어떤 말의 앞이나 뒤에 들어갈 말 대신 쓴다.\\
  라텍 명령 \texttt{\textbackslash textasciitilde}를 입력하거나 우리말
  상징 부호(∼)를 입력하여 사용한다.  아래의 왼쪽 예문에서와 같이 라텍
  명령에 사용되는 물결표는 액센트 문자를 만드는 역할을 하므로 우리말의
  물결표로는 부적당하게 보인다.

  \xample{9월15일\textasciitilde 9월25일\qquad 미술∼}
\end{itemize}


\subsubsection{드러냄표}

\noindent
$\dot{}$이나 $\scriptscriptstyle\circ$을 가로쓰기에는 글자 위에
세로쓰기에는 글자 오른쪽에 쓴다.

\noindent
문장 내용 중에서 주의가 미쳐야 할 곳이나 중요한 부분을 특별히 드러내
보일 때 쓴다.

\noindent
드러낼 낱말을 \texttt{\textbackslash dotemph} 혹은
\texttt{\textbackslash circemph} 명령의 변수로 지정하거나
\texttt{\textbackslash dotem} 혹은 \texttt{\textbackslash circem}을
선언한다.  이 명령/선언은 우리말 음절에만 적용된다.

\xample{한글의 본 이름은 \dotemph{훈민정음}이다.}

\xample{중요한 것은 \circemph{왜 사느냐}가 아니라 \circemph{어떻게
    사느냐} 하는 문제이다.}

\subsubsection{안드러냄표}

\begin{itemize}
\item 숨김표 (××, ○○)\\
  알면서도 고의로 드러내지 않음을 나타낸다.\\
  라텍 수학 모드의 명령(\texttt{\$\textbackslash
    times\$}/\texttt{\$\textbackslash bigcirc\$})을 입력하거나 우리말
  상징 부호(× ○)를 입력하여 사용한다.

  \xample{그 말을 듣는 순간 ×××란 말이 목구멍까지 치밀었다.}
\item 빠짐표(□)\\
  글자의 자리를 비워 둠을 나타낸다.

  \xample{훈민정음의 초성 중에서 아음(牙音)은 □□□의 석 자이다.}
\item 줄임표 (……)\\
  할 말을 줄였을 때나 말이 없음을 나타낼 때에 쓴다.\\
  라텍의 수학 모드 명령(\texttt{\$\textbackslash
    cdots\$}/\texttt{\$\textbackslash ldots\$})를 입력하거나 우리말
  상징 부호(…)를 입력하여 사용한다.  \texttt{\$\textbackslash
    cdots\$}는 가운뎃점의 위치에 연속된 점 세 개를
  \texttt{\$\textbackslash ldots\$}은 온점의 위치에 연속된 점 세 개를
  나열한다.  우리말의 줄임 표시에 연속된 점을 세 개 사용해야 하는지
  여섯 개를 사용해야 하는지는 확실하지 않다.  우리말 상징 부호는 연속된
  점의 수가 세 개이다.

  \xample{``어디 나하고 한 번……'' 하고 철수가 나섰다.}
\end{itemize}

\subsection{문장부호에 관련된 문제}

\kotex/utf는 \texttt{[finemath]} 옵션으로 
물음표와 느낌표, 그리고 온점 마침표의 수직 위치를 조절하는
기능이 있다. 이것은 영문 폰트의 아스키 문장부호를 가져다 쓰기 때문에
불가피한 것이었다. 또한 수평 간격도 일부 조절해준다. 

이 기능은 \kotex/euc에는 적용되지 않는다. 

\chapter{색인과 문헌목록}

\section{\kotex/euc 의 hbibtex과 halpha}

\subsection{우리말 문헌 인용}
\label{sec:cite}\index{문헌 인용}

라텍에서 문헌을 인용하기 위해서는 \texttt{\textbackslash{}cite}
명령으로 참고 문헌 표지를 지정한다.  참고 문헌 표지는
\texttt{thebibliography} 환경 내에서
\texttt{\textbackslash{}bibitem}으로 지정되는 참고 문헌 항목에
주어지거나 \BibTeX{}을 이용하는 참고 문헌 데이터 파일 \texttt{.bib}의
목록에서 주어진다.  참고 문헌 데이터 파일을 사용하면 정해진 양식으로
참고 문헌 정보를 \texttt{.bib} 파일에 수집하여 둠으로써 어느
문서에서든지 그 정보를 꺼내 쓸 수 있고 참고 문헌 양식 파일을 지정하여
다양하고 일관된 참고 문헌 목록을 작성할 수 있다.

참고 문헌 양식 파일은 개별 언어에 맞게 수정되어야 할 부분이 많다.
\texttt{alpha.bst}의 경우에는 저자나 편집자와 같은 이름을 약자로
바꾸기도 하는데, 이 때에는 한글 이름에서 오류가 발생하게 된다.  그
이유는 한글의 한 음절이 두 바이트(EUC-KR) 혹은 세 바이트(UTF-8)로
구성되는데, 양식 파일은 이를 인식하지 못하고 영문자처럼 한 바이트만을
약자로 사용하기 때문이다.  한글 라텍은 \texttt{alpha.bst}를 한글화한
\texttt{halpha.bst}를 제공한다.  예를 들면 
\texttt{halpha.bst}를 사용하여 참고 문헌 목록을 작성할 수 있다.
\begin{verbatim}
\bibliographystyle{halpha}
\bibliography{hlguide,texbook1,texbook3}
\printindex
\end{verbatim}
위에서는 참고 문헌 양식으로 \texttt{halpha.bst}를 사용하도록 지정하고
참고 문헌 데이터 파일로 \texttt{hlguide.bib}, \texttt{texbook1.bib},
\texttt{texbook3.bib}를 지정한 것이다.

\BibTeX{}을 이용하여 한글 참고 문헌을 만들기 위해서는 라텍이 8비트
문자를 보조 파일 (확장자가 \texttt{.aux})에 출력할 수 있어야 한다.
적어도 te\TeX-3.0 (web2c-7.5.4) 버전에서는 \texttt{tcx} 파일을 이용하여
\texttt{latex.fmt} 파일을 만듦으로써 8비트 출력이 가능하도록 되어
있다.  그러나 \texttt{lambda.fmt}은 \texttt{tcx} 파일을 사용하지
않을 뿐만 아니라 프로그램 원천에서도 EUC (Extended Unix Code) 문자가
\TeX{}의 16진법 표기로 출력되도록 프로그래밍 되어 있다.  여기서
문제가 발생하는 부분은 참고 문헌 표지가 한글로 되어 있을 경우이다.
예를 들어 참고 문헌 표지가 ``홍91''일 경우에
``\texttt{\textbackslash{}cite\{홍91\}}''과 같이 인용을 했을 경우에 Λ는
보조 파일에
``\texttt{\textbackslash{}citation\{\textasciitilde\textasciitilde
  ed\textasciitilde\textasciitilde 99\textasciitilde\textasciitilde
  8d91\}}''을 기록하고 (UTF-8 부호화) \texttt{bibtex}은 이 정보를 읽어
참고 문헌 데이터 파일에서 이 표지를 갖는 참고 문헌 데이터 기재 항목을
찾아낸다.  그러나 참고 문헌 데이터 파일에 기록된 표지는
``\texttt{홍91}''이므로 이 항목을 찾아 내지 못한다.  따라서 한글 참고
문헌 데이터 파일을 사용하기 위해서는 보조 파일을 8비트 문자로 변환할
필요가 있고, 한글 라텍에서는 C 프로그래밍 언어로 짠 \texttt{hbibtex}을
제공하여 \BibTeX{}을 사용할 수 있도록 하였다.%
\index{hbibtex@\texttt{hbibtex}}

\texttt{hbibtex}의 사용법은 \texttt{bibtex}의 사용법과 동일하다.
라텍을 사용할 경우나 참고 문헌 표지에 한글을 전혀 쓰지 않을 경우에는
\texttt{hbibtex}을 사용하지 않아도 된다.

\subsection{참고 문헌 데이터베이스}
\label{sec:bib}

라텍으로 문서의 판짜기에 익숙해진 후에는 참고 문헌 목록의 관리에
관심을 가질 수 있다.  참고 문헌 데이터베이스는 학술지 출판과 같이
전문 분야의 학회에서 유용하게 사용될 수 있고, 참고 문헌 양식 파일을
학회에서 제공함으로써 참고 문헌 목록의 판짜기가 일관성을 가질 수 있게
된다.  또한 참고 문헌 데이터베이스는 특정 분야에 독립적인 형식으로
구축되고 이 데이터베이스를 이용하는 사용자가 필요한 정보를 원하는
모양으로 출력할 수 있다.

한글 참고 문헌 데이터베이스를 구축하기 위해서는 영문 참고 문헌
데이터베이스와 다른 특별한 방식이 없다.  다만, 주의할 점이 있다면
데이터베이스의 기록 사항 중에서 특별한 기능을 갖는 기능어가
데이터베이스의 내용과 동일한 문자 세트를 사용하고 특별한 표시가
없으므로 오용될 수 있다는 점이다.

참고 문헌 데이터베이스 파일의 확장자는 \texttt{.bib}이며 각 문헌이
정해진 순서 없이 다음과 같은 틀을 유지하며 나열된다.
\begin{verbatim}
@<문헌 유형> = {<라벨>,
      <필수 사항> = {<내용>},
      ...
      <선택 사항> = {<내용>},
      ...
}
\end{verbatim}
\texttt{<라벨>}은 문서에서 문헌을 인용할 때 사용되는 참고 문헌 표지이며
\texttt{<필수 사항>}과 \texttt{<선택 사항>}은 \texttt{<문헌 유형>}에
따라 다르다.


\subsubsection{문헌 유형}
\label{sec:typedoc}

대부분의 참고 문헌 양식 파일에서 사용되는 문헌의 유형과 필수/선택
사항은 다음과 같으며 필수/선택 사항이 아닌 사항은 \texttt{bibtex}에
의해 무시된다.

\newcommand{\bibtype}[4]{\item \texttt{#1}: #2\\필수: #3\\선택: #4}
\begin{itemize}
\bibtype{article}
{정기 간행물이나 잡지의 논문}
{author, title, journal, year}
{volume, number, pages, month, note}
\bibtype{book}
{출판된 서적}
{author 혹은 editor, title, publisher, year}
{volume 혹은 number, series, address, edition, month, note}
\bibtype{booklet}
{등록된 출판사나 기관을 통하지 않고 인쇄/제본된 책}
{title}
{author, howpublished, address, month, year, note}
\bibtype{inbook}
{출판물의 장, 절 혹은 쪽 범위}
{author 혹은 editor, title, chapter 내지 pages, publisher, year}
{volume 혹은 number, series, type, address, edition, month, note}
\bibtype{incollection}
{출판물을 구성하는, 자체의 제목을 가지고 있는 일부분}
{author, titiel, booktitle, publisher, year}
{editor, volume 혹은 number, series, type, chapter, pages, address,
  edition, month, note}
\bibtype{inproceedings}
{학회 회보에 발표된 논문}
{author, title, booktitle}
{editor, volume 혹은 number, series, pages, address, month,
  organization, publisher, note}
\bibtype{manual}
{기술 문서}
{title}
{author, organization, address, edition, month, year, note}
\bibtype{masterthesis}
{석사 학위 논문}
{author, title, school, year}
{type, address, month, note}
\bibtype{misc}
{어느 유형에도 속하지 않을 때 (선택 사항이 하나도 없으면 오류)}
{없음}
{author, title, howpublished, month, year, note}
\bibtype{phdthesis}
{박사 학위 논문}
{author, title, school, year}
{type, address, month, note}
\bibtype{proceedings}
{학회 회보}
{title, year}
{editor, volume 혹은 number, series, address, publisher, note, month,
  organization}
\bibtype{techreport}
{교육 기관과 같은 기관에서 월간/계관과 같은 연속물로 출판되는 보고서}
{author, title, institution, year}
{type, number, address, month, note}
\bibtype{unpublished}
{형식적으로 출판되지는 않았지만 저자와 제목을 가지고 있는 문서}
{author, title, note}
{month, year}
\end{itemize}


\subsubsection{기재 사항}
\label{sec:annotation}

각 기재 사항의 내용은 다음과 같다.
\begin{itemize}
\item \texttt{address}: \texttt{publisher}나 기관의 주소.  넓은 지역에
  분포한 출판사의 경우에는 도시 이름만 기재한다.  작은 출판소의
  경우에는 전체 주소를 기재하는 것이 독자에게 유용할 것이다.
\item \texttt{annote}: 메모.  표준 참고 문헌 양식에서는 사용되지
  않지만 \texttt{annote}와 같이 주해 참고 문헌을 생성하는 양식에서
  사용된다.  이 터는 새 문장으로 시작하므로 영어의 경우에는 첫 글자가
  대문자이어야 한다.
\item \texttt{author}: 저자의 이름이며 \BibTeX 의 이름 형식으로 기재한다.
\item \texttt{booktitle}: 일부분만 인용되는 서적의 제목.  서적 등재
  사항에는 \texttt{title}이 사용된다.
\item \texttt{chapter}: 장 번호.
\item \texttt{crossref}: 참고 문헌 데이터베이스에 등재된 참고 문헌의
  교차 참조 표지.
\item \texttt{edition}: ``개정판''과 같은 간행물의 발행 판수.  서수로
  주어져야 하며 영어의 경우 ``Second''와 같이 첫 글자가 대문자이어야
  한다.  표준 양식을 통해 필요한 경우에는 첫 글자가 소문자로 바뀐다.
\item \texttt{editor}: 편집자의 이름.  \BibTeX{}의 이름 형식으로
  기재한다.  \texttt{author}와 함께 기재된 때에 \texttt{editor}는
  참조가 등장하는 서적의 편집자를 나타낸다.
\item \texttt{howpublished}: 통상적인 간행물이 아닌 경우 출판된 방식.
\item \texttt{institution}: 기술 문서를 후원한 기관.
\item \texttt{journal}: 정기 간행물의 이름.  잘 알려진 정기 간행물의
  경우에는 약어를 사용할 수도 있다.
\item \texttt{key}: 목록의 정렬이나 교차 참조 그리고 \texttt{author}나
  \texttt{editor}가 없을 경우에 문헌 표지를 만드는데 사용된다.
  \texttt{\textbackslash cite} 명령의 표지 및 데이터베이스 등재 항목의
  처음에 나오는 문헌 표지와 혼동해서는 안된다.
\item \texttt{month}: 출판물이 출판된 달이나 출판되지 않은 출판물이
  씌여진 달.  영어의 경우 일관성을 위해 세 문자 약어로 \texttt{jan},
  \texttt{feb}, \texttt{mar} 등이 사용되어야 한다.
\item \texttt{note}: 독자에게 유용하다고 생각되는 추가적인 정보.
\item \texttt{number}: 정기 간행물이나 잡지, 기술 문서 혹은 연재물
  내용의 번호.  정기 간행물이나 잡지의 판이나 호는 보통
  \texttt{volume}과 \texttt{number}로 식별되고 기술 문서는 보통
  \texttt{number}로 식별되며 이름을 갖는 연재물의 서적은 가끔
  \texttt{nubmer}를 갖기도 한다.
\item \texttt{organization}: 학회를 후원하거나 \texttt{manual}을
  출판한 기관.
\item \texttt{pages}: 하나 이상의 쪽이나 쪽 범위로
  \texttt{42{-}{-}111}, \texttt{7, 41, 73{-}{-}97} 혹은 \texttt{43+}로
  기재되는데 여기서 `\texttt{+}'는 단순하지 않은 범위의 쪽을 가리킨다.
\item \texttt{publisher}: 출판사 이름.
\item \texttt{school}: 논문이 쓰여진 학교의 이름.
\item \texttt{series}: 연재물이나 여러 권으로 구성되는 출판물의 이름.
  전체 출판물을 인용할 때에 \texttt{title}은 제목을 말하고 선택 사항인
  \texttt{series}는 연재물의 이름이나 여러권으로 구성된 출판 서적의
  이름을 말한다.
\item \texttt{title}: 책의 제목.
\item \texttt{type}: 기술 문서의 유형을 지정하며 ``연구 노트''와 같이
  기재한다.  유형이 주어지지 않으면 애초값인 ``기술 문서''가 사용된다.
  영어의 경우에는 애초값이 ``Technical Report''이다.
  \texttt{phdthesis} 유형의 경우에는 ``박사 학위 논문'' (애초값)이라고
  명시할 수 있다. 영어의 경우에는 ``\{Ph.D.\} dissertation''이
  애초값이다.  \texttt{inbook}이나 \texttt{incollection} 유형에서도
  \texttt{chapter = "1.2", type = "절"}이라고 기재함으로써 애초값인
  ``1.2 장'' 대신에 ``1.2 절''을 얻을 수 있다.
\item \texttt{volume}: 연속 간행물이나 여러 권으로 구성된 인쇄물의 권.
\item \texttt{year}: 출판 연도.  출판되지 않은 서적의 경우 서적이
  쓰여진 연도.  일반적으로 1984와 같이 네 개의 숫자로 구성되지만 표준
  참고 문헌 양식은 ``about 1984''와 같이 마지막 네 문자가 숫자인 경우를
  잘 처리한다.
\end{itemize}


\subsubsection{저자 및 편집자 이름 형식}
\label{sec:name}

\texttt{author}나 \texttt{editor}의 영어 이름은 다음의 두 가지 형식으로
입력된다.
\begin{verbatim}
"<이름> <성>"
"<성>, <이름>"
\end{verbatim}
그러나 한국어 이름은 공백 문자가 없이 다음과 같은 형식으로 입력된다.
\begin{verbatim}
<성><이름>
\end{verbatim}
영어 이름을 반점으로 성과 구분하는 방법은 성이 여러 낱말로 구성된
경우에 효과적이다.

이름에 사용되는 기능어에는 \texttt{and}와 \texttt{others}가 있다.
\texttt{and}는 여러 이름을 나열할 때 사용되고 \texttt{others}는 여러
이름을 축약할 때 사용된다.  따라서 이름 기재 내용이 \texttt{and
  others}로 끝날 때에 이는 ``\textvisiblespace 외''(영어의 경우는
``\textit{et al.}'')로 출력된다.

\section{색인}\label{sec:komkindex}

\subsection{\kotex/utf의 색인 처리}

\kotex/utf는 \texttt{kotex.ist}라는 색인 스타일 파일과
\texttt{komkindex}라는 makeindex 유틸리티를 제공한다. 
\pkg{makeidx}에 의해 만들어지는 \texttt{foo.idx} 파일을
색인 환경으로 변환해주는 역할을 한다.

이것은 다음과 같은 형식으로 쓸 수 있다.
\begin{verbatim}
$ komkindex(.pl) -s kotex foo
\end{verbatim}
이 명령은 \texttt{foo.idx}에서 \texttt{foo.ind} 파일을
만들어내며, 한글 자모를 기준으로 정렬하여 준다.
\texttt{makeindex} 옵션을 그대로 쓸 수 있다.

\subsection{\kotex/euc의 우리말 색인 처리}
\label{sec:index}\index{색인}

\kotex/euc를 위한 색인 처리 유틸리티는 \texttt{hmakeindex}이고,
이것은
\begin{verbatim}
$ komkindex(.pl) -euc
\end{verbatim}
와 같이 호출한다. 추가 옵션은 이 뒤에 이어서 쓴다.
\begin{verbatim}
$ komkindex(.pl) -euc -s hind foo
\end{verbatim}
이 이후 \texttt{hmakeindex}를 부르는 예들은 모두 \texttt{komkindex -euc}로
실행할 수 있다.

\texttt{hmakeindex}는 \texttt{latex}이 출력하는 \texttt{.idx} 파일의
16진법 표기를 모두 EUC 코드로 바꾼 후에 \texttt{makeindex}를 실행시키고
정렬된 \texttt{.ind} 파일을 재정리하여 우리말을 심벌, 한글, 한자로
대분한 후 한글의 머릿글자가 바뀌는 곳에
\texttt{\textbackslash{}hindexhead} 명령을
삽입한다.\index{색인!\texttt{\textbackslash{}hindexhead}}
\texttt{\textbackslash{}hindexhead}의 애초값은
\texttt{\textbackslash{}indexspace}이며 줄간격을 늘리는 역할을 한다.
만일 색인의 머릿제목을 ``『가』, 『나』, 『다』, 『라』, ...''로
표시하고자 한다면 다음과 같이 라텍 문서에서
\texttt{\textbackslash{}hindexhead}를
재정의할 수 있다.\index{hindexhead@\verb+\hindexhead+}
\begin{verbatim}
\renewcommand\hindexhead[1]{\indexspace
  {\bfseries
    『\ifcase#1 심벌\or 가\or 까\or 나\or 다\or 따\or 라\or
    마\or 바\or 빠\or 사\or 싸\or 아\or 자\or 짜\or
    차\or 카\or 타\or 파\or 하\or 한자\fi 』}
  \nopagebreak
}
\end{verbatim}
\texttt{hmakeindex} 프로그램은 C 언어로 작성되었으므로 운영 체계에서
기계어로 번역한 후 설치하여야 한다.  윈도우즈 운영 체계에서는 미리
번역한 \texttt{hmakeindex.exe}를 설치하면 된다.  색인작성은 다음과
같이 한다.
\begin{verbatim}
komkindex -euc <문서이름>
\end{verbatim}

한글 색인 양식 파일은 여전히 존재하며 색인과 쪽 번호 사이를 점선으로
채우는 기능만 수행한다.  이 모양새 파일 \texttt{hind.ist}를 지정하기
위해서는 \texttt{komkindex -euc}의 추가 선택으로 \texttt{-s hind}를
지정한다.
\begin{verbatim}
komkindex -euc -s hind <문서이름>
\end{verbatim}

영문자로 표기되었으나 우리말 음가로 표기되는 한글 영역에 색인을
위치시키기 위해서는 문서에서 다음과 같은 방식으로 \verb|\index|를
지정하면 된다.

\medskip
\begin{tabular}[c]{|lcm{6cm}|}\hline
  \verb|\LaTeX\index{라텍@\LaTeX}| &
  $\leftarrow$ & \verb|\LaTeX|은 `\textrm{\LaTeX}'으로
  인쇄됩니다. 그러나 문자열이 `\verb|\|'로 시작하기 때문에
  영문자 부호 `\verb|\|'에 `\textrm{\LaTeX}'이 위치하게 됩니다. 이
  때는 `\texttt{@}' 글자의 앞에 \texttt{라텍}이라 적음으로써 그 위치가
  `\texttt{라텍}'이 되도록 합니다. \\\hline
\end{tabular}



\chapter{한글 트루타입 폰트의 사용}\label{cha:truetype}

\kotex{} 유틸리티로서 \texttt{ttf2kotexfont.pl}이 제공된다.
이 유틸리티는 한글 트루타입 폰트를 사용가능하도록 tfm을 추출하고
설정을 행해주는 역할을 한다.

트루타입 폰트 이용법 전반에 관한 사항은 ``한글 라텍에서 트루타입
폰트 사용하기''(\cite{karnes2007b})라는 글을 참고하라. 여기서는 간단한 예를 통하여
트루타입 폰트를 문서에서 사용하는 과정을 설명하고자 한다.

\section{\texttt{ttf2kotexfont} 사용법}

적당한 폰트 두 개를 선정하자. 
공평하게 하기 위해 유니코드 인코딩 폰트인 ``휴먼편지체''와 완성형 인코딩 폰트인 ``양재난초'' 두 개를 선택. 파일 이름은 \texttt{hmfmpyun.ttf}와 \texttt{YNCH05.TTF}이다.\footnote{이 스크립트는 파일이름의 대소문자에 민감하다.}

이 글꼴이 시스템에 설치되어 있다면, 별다른 조치 없이 바로 테스트 가능. 만약 없다면 어디선가 구해서 테스트를 위한 폴더에 넣어준다.

\texttt{test.conf} 파일을 다음과 같이 작성한다.
\begin{verbatim}
FOUNDRY:my
FONTmj: f=pj m=hmfmpyun.ttf
FONTnc:      m=YNCH05.TTF
\end{verbatim}
\texttt{config} 파일의 쓰는 규칙은 위와 같다. 맨 처음에 \texttt{FOUNDRY}를
지정해주어야 하는데 이것이 글꼴 가족 이름의 첫 두 글자를 이룬다.
\texttt{FONTmj} 행은 \dotemph{반드시} 있어야 하며, 이 이외의 폰트
명칭은 두 글자로 지은 다음 그 앞에 \texttt{FONT}를 써서 적어주면 된다.
\texttt{f} 지시자는 \texttt{FONTmj}로 만들되 이름을 \texttt{mypj}로
지으라는 의미이며, 이 값이 없으면 \texttt{FONTxx}의 두 글자 \texttt{xx}를
따서 짓게 된다. 폰트 두께 옵션은 \texttt{m, b, l} 셋이 있으며 각각
medium, bold, light에 해당하는데, \texttt{b}는 \texttt{b-series} 및
\texttt{bx-series}에 할당된다. 그러나 일반적으로 이 시리즈들을 모두
충족하는 글꼴군을 찾기란 쉬운 일이 아니다. 위의 예에서는 \texttt{m} 하나만
지정하였으므로 본문 서체인 보통 굵기 폰트만이 만들어질 것이다. 이러한
설정의 결과 \texttt{mypj}와 \texttt{mync}라는 새로운 글꼴이
만들어진다. 

이제 다음 명령을 실행한다.
\begin{verbatim}
# ttf2kotexfont -c test.conf
\end{verbatim}

한참 tfm 등을 만드는 과정을 거치고 나서 종료되면 테스트해볼 수 있다. 
\begin{verbatim}
# latex testutf
# dvipdfmx testutf
\end{verbatim}
또는
\begin{verbatim}
# pdflatex testutf
\end{verbatim}

이 폰트 세트를 반복해서 다른 문서에서도 사용할 생각이면 사용자의 \texttt{texmf} 트리 아래 설치해서 쓰면 된다.
언인스톨 방법이 별도로 제공되지 않으므로, 자신이 생각하기에 잘 설계하여 반복사용하겠다는 결심이 섰을 때, 다음 명령을 실행하자.\footnote{%
  Windows/KC2006의 경우, 아래 명령 예시에서 \texttt{\$HOME}이라고
  한 것을 \texttt{\%HOME\%}으로 해야 한다.}
\begin{verbatim}
# ttf2kotexfont -c test.conf -i $HOME/texmf
\end{verbatim}

만약 이 과정에서 \verb|$HOME/texmf|가 ``가장 먼저 읽는 texmf tree''가 아니라면\footnote{KC2006의 경우와 같이}
생성된 \texttt{dvipdfmx.cfg}와 \texttt{ttf2pk.cfg}를 가장 먼저 읽는
texmf tree 아래 TDS에 맞는 위치로 옮겨놓는 것을 잊어버려서는 안된다. 
\begin{verbatim}
# mktexlsr
\end{verbatim}

일부 완성형 트루타입 중에 이상한 것이 없지는 않다(양재보람체가 이상했음). 그것은 폰트 자체의 문제라고 생각되며, 정상적인 대부분의 트루타입은 \kotex 에서 모두 사용 가능하다.

\section{문서에서 폰트 설정하기}

\texttt{ttf2kotexfont} 스크립트를 실행한 결과를 반영하려면 다음과 같이
한다. 사용자가 만든 임의의 폰트가 \texttt{mypj}와 \texttt{mync}라고 할 때,

\bigskip
\noindent\underline{\kotex/euc}
\begin{verbatim}
\usepackage{myttf}
\end{verbatim}
과 같이 선언한 이후, 본문에서 예컨대
\begin{verbatim}
\pjfamily, \ncfamily
\end{verbatim}
를 사용할 수 있다.\footnote{%
  이 명령들은 전혀 호환되지 않는다. 나중에 다른 곳에 파일을 보내면
  반드시 에러가 발생할 것이므로 주의해야 한다. 이 폰트가 설치되지
  않았을 때도 이 명령에 에러가 발생하지 않도록 하는 코드를 preamble에
  넣어 두는 것이 좋다.
}

\medskip
\noindent\underline{\kotex/utf}
\begin{verbatim}
\SetHangulFonts{mypj}{mync}{uttz}
\SetHanjaFonts{utbt}{utgt}{uttz}
\end{verbatim}
또는
\begin{verbatim}
\usepackage{hfontsel}
\SelectHfonts{mypj,mync,*}{utbt,utgt,*}
\end{verbatim}
주의할 것은 \texttt{ttf2kotexfont}가 \texttt{hfontspec}을
만들어주지는 않는다는 점이다. 기본 은 글꼴 폰트 스펙을 적용(이 때 
사용자가 취할 조치는 아무것도 없다)해도 나쁘지 않으며, 만약 직접
폰트 스펙을 변경하려 한다면 반드시 수작업으로 설정해야 한다.


\section{pdf 문서 제작을 위한 pdf\LaTeX{} 사용}

트루타입 폰트를 pdf\LaTeX 에서 사용하려 할 때는 약간의 주의사항이
필요하다. 먼저, 기울인 글꼴, 가상 두꺼운 글꼴, c-series 장평적용 글꼴 등은
pdf\LaTeX 에서 직접 처리되지 않는다.

또한 preamble에서 다음과 같은 코드를 넣어주어야 한다.
\begin{verbatim}
\usepackage{ifpdf}
\ifpdf
  \usepackage{dhucs-cmap}
  \pdfmapfile{=myttf-pdftex.map}
\fi
\end{verbatim}

대체로 말해서, 트루타입 글꼴은 DVIPDFM$x$가 매우 잘 처리한다. 

%%% plainTeX
\chapter{plain\protect\TeX 과 \kotex}\index{코텍@\kotex!plain\TeX}

\hfill\begin{minipage}{.5\linewidth}
\footnotesize\sffamily
by \wi[인명]{남수진}(\url{mailto:sjnam@ktug.or.kr})
\end{minipage}

\bigskip

\def\kotexplain{{\tt kotexplain.tex}}
\def\hangulcweb{{\tt hangulcweb.tex}}

\noindent 플레인텍과 관련된 \kotex\ 한글 매크로에는 \kotexplain과 \hangulcweb\ 두 개의
파일이 있다. \kotex 의 plain\TeX\ 지원은 오직 유니코드/UTF-8 인코딩으로만
가능하며, \eTeX 을 요구한다.

\section{kotexplain.tex}

\kotexplain 은 플레인텍에서 한글을 사용하기
위한 매크로이다. 플레인텍은 라텍에 비하여 매우 가볍고 단순한
매크로이지만, 문서나 책을 만드는 데 쓰이기도 한다.
그 대표적인 예가 바로 \wi[인명]{Knuth} 교수의 대표적인 시리즈 저서 {\sl The
Art of Computer Programming\/}과 {\sl The \TeX book\/} \cite{Knuth:1984:TB}이다.

플레인텍으로 작성된 텍 파일은 단순히 `{\tt tex foo.tex}'과 같이
컴파일한다. 하지만 한글 사용을 위한 매크로 \kotexplain 은 
\eTeX\ 엔진의 원시명령어(primitives)들을 이용해서 작성되었기 때문에
한글 플레인텍에 한해서는 {\tt tex} 명령어가 아닌 {\tt etex} 또는 {\tt
pdftex} 명령을 이용하여야 한다.  
한글 플레인텍 문서를 작성하기 위해서는 작성하고자 하는 문서의 첫부분을
\begin{verbatim}
\input kotexplain
\end{verbatim}
으로 시작하는 것만 빼면 보통의
플레인텍 문서를 만드는 것과 완전히 동일하다. 플레인텍의 사용법은 그
유명한 {\sl The \TeX book\/}을 참고한다.

한글 매크로 \kotexplain 을 이용하여 한글 글꼴을 설정하는 방법은 원래의
플레인텍에서 {\tt \string\font} 명령을 이용하는 그것과는 좀
다르다. 예를 들어 알아보자. 한글 글꼴은 다음의 세 가지 방법 중 하나로
정할 수 있다. 
\begin{itemize}
\item \verb|\hfont{outbtb}{at 12pt}| 이 명령어는 현재의 한글 글꼴을 굵은(bold) 글꼴로 하고,  그 크기는
12포인트로 변경하라는 명령이며, 세 가지 방법 중 가장 일반적인 방법이다.
\item \verb|\hfontname{outbtb}| 이
명령어는 현재 글꼴의 크기를 그대로 유지한 체로 글꼴 모양만 굵을 글꼴로
변경하라는 의미이며, 이는 \verb|\hfont{outbtb}{}|와 동일하다.
\item \verb|\hfontsize{at 12pt}| 이 명령은
현재 글꼴의 모양을 그대로 유지하면서, 크기만 현재의 크기에서 12포인트로
변경하라는 뜻이다. \verb|\hfont{}{at 12pt}|와 동일하다. 
\end{itemize}

\section{hangulcweb.tex}

플레인텍으로도 멋진 문서를 만들 수 있으나,
플레인텍으로 문서나 책을 만드는 일은 매우 수고로운 작업이 
될 수 있기 때문에
대부분의 경우는 쉽게 사용할 수 있는 라텍을 이용한다. 하지만
반드시 플레인텍을 사용하여야 하는 경우가 있다. 예를 들어, 문학적
프로그래밍의 대표적인 시스템 {\tt CWEB}은
플레인텍 매크로들로 이루어져 있기 때문에 {\tt CWEB} 프로그래밍을
하려면, 플레인텍을 사용하여야 한다. 또 GNU의 여러 프로그램들의 사용
설명서를 만드는 표준인 {\sl texinfo\/} 또한 플레인텍을 이용하여야 한다. 

여기서는 한글 {\tt CWEB} 프로그래밍을 하는 방법을 간단히
알아보자. 한글 플레인텍에서와 마찬가지로 작성하고자 하는 웹파일의 처음을
\begin{verbatim}
\input hangulcweb
\end{verbatim}
으로 시작하면 된다. 사실은
\hangulcweb 이 \kotexplain 을 포함하고 있기 때문에 한글 {\tt CWEB}
프로그래밍이 가능한 것이다. 한글 {\tt CWEB}
프로그램의 매크로 파일 \hangulcweb 은 {\tt CWEB} 프로그램의 여러 영문
메시지를 한글화하였고, 가장 큰 특징은 {\tt CWEB} 프로그램이 갖는
특징 중 하나인 PDF 기능을 한글도 자유롭게 이용 할 수 있도록 구현해
놓았다는 점이다.

\chapter{html 제작}\index{코텍@\kotex!HTML 제작}

\texttt{tex} 원본 문서로부터 XML 또는 HTML을 제작하는 방법은 몇 가지가
알려져 있다. 그 가운데, Eitan Gurari 씨가 만든 \texttt{TeX4ht}\footnote{%
  \url{http://www.cse.ohio-state.edu/~gurari/TeX4ht/mn.html}}%
는 \TeX{}Live에 포함되어 있는 사실상 표준 도구이다.

현재 버전의 \kotex/utf는 \texttt{TeX4ht}를 부분적으로 지원한다.\footnote{%
  \url{http://www.ktug.or.kr/jsboard/read.php?table=contrib&no=4313}}
즉, \kotex 의 한글 폰트들을 \texttt{TeX4ht}에서 처리할 수 있도록 하는
부수 파일을 제공하고 있다. \kotex 을 사용하여 작성한 문서를 HTML로 변환하려면
다음과 같은 명령을 사용하면 된다.
\begin{verbatim}
$ htlatex foo.tex "dhucs,html4" " -cunihtf"
\end{verbatim}
이 명령을 이용하면 수백 개의 \texttt{.htf} 폰트 없이도 한글 HTML을
만들어낼 수 있다.\footnote{%
  이전에는 한글을 위한 \texttt{TeX4ht}용 글꼴을 만들어서 제공하는
  방식을 썼던 적도 있다.}

\texttt{TeX4ht}에서 의도대로 원하는 HTML을 얻으려면 상당한 설정을 
추가적으로 행해야 한다. 즉, 위의 해결책은 HTML/XML로 변환하는
모든 문제에 대한 해결책을 제공하는 것이 아니다. 그런 문제들은 \kotex 
자체와 관련된 것이 아니라 \texttt{TeX4ht} 설정과 더 깊이 관련되어
있을 것이기 때문이다.
표준 라텍 클래스의 문서라면 위에 제시한 정도로 큰 문제없이 HTML을
얻을 수 있겠지만 복잡한 문서의 경우 의도대로 출력을 얻기 위해 추가적인
설정을 해야 할 때가 있을 것이다. 자신의 경험을 다른 사람과 공유한다면
해결책을 더 빨리 찾아나갈 수 있을 것으로 생각한다.
