%& --translate-file=cp8bit.tcx
\documentclass[titlepage,a4paper]{article}
\usepackage{hangul}
\ifx\nullocplist\undefined
  \def\OMEGA{Ω}
  \def\OTP{\OMEGA TP}
  \usepackage{uhc}
\fi
\usepackage{array,a4,makeidx,multicol}
\pagestyle{headings}
\ifx\pdftexversion\undefined
\else
  \MapHangulFamily{ol}{wmj,wmj,wmj}
  \input pdfcolor
\fi
\IfFileExists{mflogo.sty}{\usepackage{mflogo}}{%
  \newcommand{\MF}{\textsf{META\-FONT}}}
\newcommand{\NFSS}{\textsf{NFSS2}}
\newcommand{\HFSS}{\textsf{HFSS}}
\newcommand{\PS}{포스트스크립트}
\newcommand{\LaOm}[2]{{\고딕\footnotesize%
  \begin{tabular}{cp{10cm}}
    \LaTeX & \slshape #1 \\
    Λ & \slshape #2 \\
  \end{tabular}
}}
\makeatletter
\@ifclassloaded{book}%
{\newenvironment{abstract}
 {\newpage\begin{center}\textbf{\Large\abstractname}\end{center}
  \begin{quote}}{\end{quote}\newpage}}{}
\makeatother
\setlength{\columnseprule}{.2pt}
\makeindex
\makeglossary
\begin{filecontents}{bibnames.sty}
\IfFileExists{texnames.sty}{\input texnames.sty}{\let\METAFONT\MF}
\def\noopsort#1{}
\def\printfirst#1#2{#1}
\def\singleletter#1{#1}
\def\switchargs#1#2{#2#1}
\def\emdash{\penalty\exhyphenpenalty---\penalty\exhyphenpenalty}
\def\ndash{\penalty\exhyphenpenalty--\penalty\exhyphenpenalty}
\def\tubissue#1#2{\TUB~#1, no.~#2}
\end{filecontents}
\hyphenation{ghost-view}

\begin{document}
%% End Of Header
\begin{titlepage}
  \title{\textbf{\Huge\옛글 \HLaTeX{} 길잡이\\
    \noindent\rule{\textwidth}{3pt}\\
    \mdseries\Large (\HLaTeXversion{}판)}} \author{殷 \ 光
  熙\thanks{\texttt{koaunghi.un@student.uni-tuebingen.de}}}
  \date{\HLaTeXdate}
\end{titlepage}

\maketitle

\tableofcontents
\목각
\begin{abstract}
  \LaTeX{}은 문장을 정렬하는데 탁월한 기능을 가진 문서 식자
  체계(document typesetting system)입니다.  \HLaTeX{}은 이런 우수한
  문서 식자 체계로 한글도 쓸 수 있도록 하자는 취지에서 만들어진
  프로그램(program)입니다.  더구나 \LaTeX{}은 사용에 아무런 제한이
  없이 보급되므로, \HLaTeX{}도 또한 한글을 쓰고자 하는 모든 이에게
  별다른 조건없이 유용한 도구가 될 수 있기를 바라고 있읍니다.

  이 안내서에는 다음과 같은 사항이 수록되어 있읍니다.
  \begin{itemize}
  \item \TeX{}에서 \HLaTeX{}까지.
  \item \HLaTeX{}을 설치하기.
  \item \HLaTeX{}으로 글틀 짜기.
  \item 우리말 글꼴을 선택하기.
  \end{itemize}
  그리고 부록에는 \HLaTeX{} 사용에 필요한 글자체 도움모와 \HLaTeX{}
  문서를 작성하기 위한 똑똑한 편집기를 소개하고 \HLaTeX{}에서 사용되는
  우리말 글자체들의 예문을 선보입니다.  끝에는 활성화되는 정보화
  시대에 전산기 용어의 순화를 위하여 문화 관광부에서 만든
  『국어순화용어자료집』에서 전산기 용어 부분을 뽑아 실었읍니다.

  이 글은 \LaTeX{}을 사용하여 한글 문서를 쓰고자 하는 모든 이에게
  조그마하나마 도움이 될 수 있고자 작성되었읍니다.

  \HLaTeX{}을 발표하면서 한글 글자체 작성에 도움을 주신 고려대학교
  언어과학과 李基用교수님\footnote{KLEE@ling.korea.ac.kr},
  문화관광부\footnote{이전의 문화체육부} \PS{} 글자체를 보급하신
  단국대학교 국문과 洪允杓교수님, \HLaTeX{}의 문제점과 개선점을
  지적하고 도와주신 원세연님\footnote{sywon@sorak.kaist.ac.kr}과
  이천우님\footnote{clee@achem2.ajou.ac.kr}, 우리말 글자체 선택 모듬
  명령(macro)을 제안$\cdot$수정$\cdot$실험해 주신
  이형석님\footnote{hyslee@sarang.kaist.ac.kr} 그리고 \HLaTeX{}의
  발전을 촉진하신 다른 여러분께 감사의 마음을 전합니다.  특히
  李基用교수님은 \HLaTeX{}의 발전을 위하여 2GB 굳은 저장판(hard
  disk)을 2개 기증하셨읍니다.  \HLaTeX{}은 이를 바탕으로 새로운 완성형
  글자체와 (조합형 한글명조체 및 고딕체, 완성형 새명조체, 완성형
  필기체, 펜글씨체, 漢字 명조체, 漢字 고딕체, 궁서체, 상징 글자체
  등등) 그리고 UHC 글자체들을 (명조체, 고딕체, 그래픽체, 궁서체,
  신문체) 만들 수 있었읍니다.  \HLaTeX{}을 사용하면서 李基用교수님께
  감사하시기 바랍니다.

\vspace{30pt}

\hfill --- 殷 光熙.
\end{abstract}

\명조
\section{\HLaTeX{}이 나오기까지}


\subsection{\TeX{}의 탄생}

  \TeX\index{역사!\TeX}은\footnote{그리이스어 $\tau\epsilon\chi{}$에서
    유래됨.
  \begin{quote}
    English words like `technology' stem from a Greek root beginning
    with the letters $\tau\epsilon\chi{}\ldots$; and this same Greek
    word means \textit{art} as well as technology. Hence the name
    \TeX, which is an uppercase form of $\tau\epsilon\chi{}$.

    Insiders pronounce the $\chi$ of \TeX{} as Greek chi, not as an
    `x', so that \TeX{} rhymes with the word blecchhh. It's the `ch'
    sound in Scottish words like \textit{loch} or German words like
    \textit{ach}; it's a Spanish `j' and a Russian `kh'. When you say
    it correctly to your computer, the terminal may become slightly
    moist.
  \end{quote}

  \hfill \textsl{The \TeX{}book에서 발췌}.} 미국 Stanford대학의 수학과
교수인 \emph{Donald E.~Knuth}가 1977년 5월에 처음으로 만들었고, 그해
여름에 Michael F. Plass씨와 Frank M. Liang씨가 지금의 \TeX{}의 전신을
만드는 공동작업을 하였으며 같은 해 말에서 다음해 초 사이에는
Knuth교수가 다시 완성을 시켰읍니다. \TeX{}은 원래 SAIL언어로 쓰였으나
1979년 초에는 Knuth씨와 Luis Trapp Pardo씨에 의해 공동개발된 Web언어로
전환시키는 작업이 시작되었고 1979년과 1980년에 Ignacio A. Zabala씨가
이를 완성시켰읍니다. \TeX{}은 1979년 후반기와 1980년 전반기에 걸쳐
Knuth씨가 더욱 정밀한 프로그램로 정착시켰고 그해 9월에 \TeX82 0판으로
발표되기 시작했읍니다. 그 후 많은 사람들의 조언을 감안하여 1989년
9월에 최종의 심사를 거쳐 발표된 \TeX{}은 현재, 전문적인 자연과학
문서를 작성하는 데에는 가장 좋은 문서 식자기로 인정되고
있읍니다(\cite{Knuth:ct-a} -- \nocite{Knuth:ct-b} \nocite{Knuth:ct-c}
\nocite{Knuth:ct-d} \cite{Knuth:ct-d}\를 참고).  원래 수학과 교수인
Knuth교수는 이 문서 식자 체계 \TeX{}을 통해서 수학공식도 자유자재로 쓸
수 있도록 신경을 많이 썼읍니다. Knuth교수는 \TeX{}외에도 \MF{}를
개발하여 \TeX{}에 쓰일 양질의 글자체를 만들어 낼 수 있도록 하였고
이로서 \TeX{}은 출판서적을 만드는데 손색이 없는 문서 식자 체계로
자리를 잡게 되었읍니다.

주석에 설명되어 있는 바와 같이 \TeX{}의 `X'는 우리말의 `ㅋ'에
해당하므로 \TeX{}의 우리말 표현은 `텍'에 가깝습니다.

\subsection{\LaTeX{}의 등장}


좋은 약은 입에 쓰듯이 \TeX{}의 문서 식자 기능이 탁월하면 탁월한 그
만큼 사용자의 측면에서는 많은 노력과 경험으로 이런 기능을 이해하여야
했고 자신이 원하는 양식의 문서를 작성하는 데에 많은 시간을 투자해야
했읍니다. 즉, 사용자는 글자체를 정의하고 문장과 문장 사이의 간격을
넓혀주는 등의 일을 일일이 손으로 처리해야 했읍니다. 그래서 \TeX{}의
사용은 전문적인 프로그래머(programmer)층에서나 가능할 수 있었읍니다.

그러나 미국의 전산과학자인 \emph{Les\-lie Lam\-port}는 사용자와
\TeX{}의 사이를 좁히는 역할을 할 수 있도록 \LaTeX\index{역사!\LaTeX}을
개발하여 쉽게 \TeX{}을 통하여 문서를 작성하게끔
기여하였읍니다(\cite{Lamport:1985:LDP}\를 참고).  그는 일반적인 문서
모양새를 \TeX{}의 모듬 명령(macro)으로 정의함으로써, 사용자가 쓰고자
하는 글의 전체적인 윤곽에 맞는 양식을 지정한 후, 작성하는 문서의
내용에만 집중하면 원하는 모양새의 문서가 작성될 수 있게 하였읍니다.
그리하여 사용자는 전문적인 \TeX{}의 지식이 없어도 짧은 시간내에 좋은
문서를 작성할 수 있게 되었읍니다.

장기간이 흐르면서 \LaTeX{}은 전세계적으로 많이 사용되었고 이에 따라
\LaTeX{}이 해내야 하는 과제의 폭도 넓어졌읍니다. 그 결과로 이제는 이
\LaTeX{}의 근본적인 부호(code)를 바꾸고 국제화되어야 한다는 여론이
높아졌고 1992말부터는 \LaTeX3 일감팀(project team)\footnote{Leslie
  Lamport, Johannes Braams, David Carlisle, Alan Jeffrey, Frank
  Mittelbach, Chris Rowley, Rainer Sch\"opf: 이들은
  \cite{Goosens:LC94}\을 출간하였는데 이 책의 수입은 그 절반이 \LaTeX3
  개발팀에게 할당되어 이 팀을 지원하게끔 되어 있읍니다.}이 구성되어
새로운 \LaTeX\ 3판의 작업에 착수하였읍니다. 1994년 6월 1일을 기해
\LaTeXe\index{역사!\LaTeXe}를 공식적으로 내 놓은 이 팀은 현재(94년
11월) 깁기수준(patchlevel) 4를 발표하면서 계속 \LaTeX3을 위해 노력하고
있읍니다.  Frank Mittelbach와 Rainer Sch\"opf는
\cite{Scherber:OST94}에서 \LaTeX3 개발\index{\LaTeX3 개발}의 목표를
다음과 같이 설명하고 있읍니다.
\begin{itemize}
\item \LaTeX{}의 사용범위를 이전의 자연과학분야에서 벗어나, 각 분야의
  문서 모양새에도 만족할 수 있는 모양새 파일을 제공하고 이런 여러
  모양새를 간단한 방법으로 사용자가 선택할 수 있도록 한다.
\item 위와같은 모양새 파일을 자세히 설명함으로써 사용자가 이런
  기본적인 문서 모양새를 바탕으로 자신의 독자적 요구를 쉽게 이룰 수
  있게 한다.
\end{itemize}


\subsection{\HLaTeX{}으로의 발전}


이렇게 \LaTeX{}이 국제화되어가는 동안 한국 KAIST 전산학과에서는
\LaTeX{}으로 한글을 쓸 수 있도록 모듬 명령을 만들고 한글 글자체를
준비하여 hlatex을\index{역사!hlatex} (최우형, 백윤주) 보급하였읍니다.
(\cite{최92}\를 참고) 여기에는 기존의 \LaTeX{}에 한글 글자체를
추가하는 \verb|hfont.tex|, 한글 문서 작성 환경을 정의하는
\verb|harticle.sty|과 \verb|hreport.sty|, \verb|hbook.sty| 그리고 한글
KS 완성형 부호 체계를 \TeX{}이 이해를 할 수 있는 \TeX{}모듬 명령으로
변환해 주는 앞처리기(preprocessor) \verb|htex|로 구성되어 있읍니다.
보급되는 글자체의 사용을 제한받으면서 출발한 hlatex은 그런대로
통신망을 통해 KAIST 외부의 일반에게 퍼지게 되었고\footnote{그 당시
  hlatex의 사용은 KAIST이내와 해외에서만 허용되었읍니다.}, 이를
바탕으로, 한자의 사용을 추가한 jhtex이 (殷光熙) 생길 수 있게
되었읍니다.  여기에는 손쉽게 구할 수 있는 일본의 Kanji 글자체를
hlatex에 덧붙쳐 사용할 수 있도록 하였고 문서모양새도 좀 더 한글화 될
수 있도록 하였으며 글자체가 늘어남으로써 불가피해진 \NFSS{}의 도입이
이루어졌읍니다.  이 두 프로그램은 좀 더 낳은, 하나의 프로그램으로
일반에게 보급될 수 있고자 \HLaTeX\index{역사!\HLaTeX}으로 통합되었는데
이로써 \HLaTeX{}은 다음과 같이 변화하였읍니다(\HLaTeX{} 0.92e판).

① \LaTeXe 에 의한 한글 문서 작성

② 한국 표준 부호 체계 한자 사용

③ 앞처리기(preprocessor)의 폐기

KAIST 전산학과에서 시작된 hlatex은 다양한 글자체를 보급하여 어느 정도
변화있는 한글 문서를 작성할 수 있도록 하였지만, 글자체들은
원천(source)이 없이, 미리 만들어진 300점/인치와 600점/인치의
pk파일로만 제공되어 \HLaTeX{}의 사용도 300점/인치와 600점/인치의
인쇄기에서만 사용할 수 있었읍니다.
그래서 \HLaTeX\ 0.93판부터는 문화관광부에서 공개한 글자체와 Postscript
type I 글자체, 그외에도 두값본 그림(bitmap graphic)에서 추출된 외각선
글자체가 \MF{} 원천으로 보급됨으로써 \HLaTeX{}의 사용이
일반화되었읍니다.  글자의 배치도 이전의 KAIST식인 조합 완성 혼합식을
포기하고 일반적인 한국 표준 완성형에 근거하게
되었읍니다\footnote{사용자의 요구에 의해 조합 완성 혼합식도 이전처럼
  사용할 수 있도록 하였읍니다. 이 혼합식은 사용자 층을 제한하는 관계로
  더 이상 지원되지 않습니다.  \HLaTeX{} 0.98판부터는 완전히 지원되지
  않습니다.  이 글자체를 사용하고자 하는 경우에는
  ftp://ftp.linguistik.uni-erlangen.de/pub/HLaTeX/unsupported 에서
  글자체와 꾸러미를 구해서 설치하기 바랍니다.}.


\subsection{미래의 \TeX{} --- \OMEGA{}}
\label{소절:미래}

\TeX{}의 앞날을 바라보면 우리말과 같이 평범하게 처리하기 어려운
언어권의 사용자들에게 많은 희망을 줍니다. 1997년 2월에 발표된 web2c
7.0판과\index{web2c-7.0} 같은 예를 보더라도 한 문서에서 256개의
글자체밖에 사용할 수 없었던 장벽이 무너지고 최대한 2000개까지 사용할
수 있게 됨으로써, 이 『\HLaTeX\ 길잡이』를 처리하는 데 힘겨웠던 불편이
완전히 사라질 수 있었읍니다. 그러나 근본적인 문제는, \TeX{}자체가
7비트 부호 체계를 바탕으로 만들어져 있다는 데에서 발생합니다.  \TeX{}
3판의 출현으로 유럽언어와 같은 8비트 부호 체계의 처리는 해결되었지만
우리말과 같은 16비트 부호를 처리하는데에는 아직 많은 문제점을 안고
있읍니다.  이러한 문제의 근본적인 해결책은 16비트 부호체계를 바탕으로
형성된 \TeX{}의 구현으로 이루어질 수 있읍니다.  세계적인 추세도 각
나라의 모든 언어를 부호화 할 수 있는 통일된 부호화 방식이 필요하게
되었고, 국제 표준화 단체는 UCS를 발표하여 32비트 코드체계인 국제
부호화 문자 세트를 만들었읍니다.  이에 따라 \TeX{}에서 이 문자 세트를
사용할 수 있도록 하기 위해 8비트 코드 체계를 확장하여 16비트 코드
체계에 바탕을 둔 \OMEGA{}라는 이름의 새로운 \TeX{}이 나오게
되었읍니다.  그러므로 \OMEGA{}는 16비트 \TeX{}의 구현으로서, Unicode를
처리할 수 있는 \TeX{}이라고 간단히 표현할 수 있읍니다.  \OMEGA{}는
현재 Yannis
Haralambous씨와\footnote{Yannis.Haralambous@univ-lille1.fr} John
Plaice씨가\footnote{plaice@ift.ulaval.ca} 공동으로 개발하고 있는데
1996년 11월에 te\TeX{} 0.4판을 바탕으로 시험판이 나왔었고, 1997년
11월에는 공개판으로 Omega 1.47판이 발표되었읍니다. \OMEGA{} 공개판이
발표됨으로써 \OMEGA{}에서 사용될 수 있는 새로운 꾸러미(package)들이
많이 개발되어 왔고, web2c 7.0판부터 \OMEGA{}가\index{\OMEGA{}} 지원이
포함되는 방향으로 움직이기 시작하였읍니다.  결국, 1998년 3월에 발표된
web2c 7.2판에는 \OMEGA{} 1.5판을 공식적으로 채택하여 함께 보급하게
되는 단계에까지 오게 되었읍니다.  1999년 현재 web2c는 7.3판까지 나왔고
여기에는 \OMEGA{} 1.8판이 포함되어 있읍니다.  이런 상황에서, \LaTeX3이
\OMEGA{}를 의미하게 된다면 우리 동양권에서는 더욱 바랄 나위가
없겠지만은 아직 이에 대한 결정사항은 들어본 바 없읍니다.  96년도까지도
\LaTeX3팀은 \OMEGA{}를 별개의 \TeX{}으로 언급하였지만 국제화를
목표중의 하나로 삼고 있는 \LaTeX3에 \OMEGA{}의 도입은 심각히 고려되어
질 것입니다.  Fabrice Popineau씨의 윈도우즈용 \TeX{}이나 Thomas
Esser씨가 만드는 te\TeX{} 등은 모두 다 \OMEGA{}를 포함하고 있읍니다.
이러한 상황을 감안할 때 앞으로의 \TeX{}은 \OMEGA{}쪽으로 그 흐름의
향방이 결정되지 않을까 하는 희망을 갖게 합니다.

16비트 부호를 처리하는 \TeX{}은 우리말과 밀접한 관계가 있읍니다.
그러므로 \OMEGA{}와 \HLaTeX{}의 관계는 밀접할 수 밖에 없읍니다.
\OMEGA{}를 사용하여 우리말 부호를 처리할 때에, 지금까지 \HLaTeX{}에
커다란 문제로 남아있는, 기존의 \TeX{}을 바탕으로한 2$\times$8비트식
부호 처리는 간단히 해결됩니다.  Omega 1.5판으로 우리말 KS X 1001
문서를 처리할 때에 그 처리 속도는 \TeX{}으로 영문 문서를 처리하는
속도와 차이점이 거의 없읍니다.  \OMEGA{}는 이제 거의 완숙한 단계에
도달하고 있고 앞으로는 \TeX{}을 완전히 대체하고 본격적으로 사용되는
방향으로 전개될 것으로 희망하고 있읍니다.

\OMEGA{}를 16비트 \TeX{}이라고 한다면, Λ는 16비트 \LaTeX{}입니다.
\HLaTeX{} 0.98판부터는 Λ로 KS X 1001 문서를 처리할 수 있는 모듬 파일 및
글자체를 제공합니다.


\section{\HLaTeX{}의 설치}
\label{sec:install}\index{한글@\HLaTeX!설치}


\subsection{TDS --- 파일의 위치}
\label{sec:TDS}

TDS(TeX Directory Structure)는 `\TeX{}파일 자료방의 구조'를
가리킵니다.  이 규정에 따르면, \TeX{}에 필요한 파일들은 TDS의 출발점인
TEXMF밑에 두게 됩니다.  TEXMF는 \TeX{}을 설치할 때 결정되며 prefix가
/usr일 경우 /usr/share/texmf가 됩니다.  이미 설치된 \TeX{} 운영
체계에서도 \verb|texmf.cnf| 파일에서 TEXMF를 다시 설정할 수 있읍니다.

\TeX{} 운영체계를 구성하는 파일의 위치는 다음과 같이 됩니다.
\begin{verbatim}
        texmf/프로그램/틀/꾸러미
\end{verbatim}
여기서 `\verb|프로그램|'은 \TeX{} 운영체계의 구성요소로서 \verb|tex|,
\verb|omega|, \verb|pdftex|, \verb|metafont|, \verb|metapost|,
\verb|bibtex|, \verb|dvips| 등등이 있읍니다.  `\verb|틀|'은 \TeX{}의
용어로 \verb|\dump|되어지는 것들을 말합니다.  \HLaTeX{}은 \LaTeX{}
틀을 쓰므로 자료방의 이름은 \texttt{latex}이 됩니다.
`\verb|꾸러미|'는 이름 그대로 \TeX{}의 꾸러미 이름을 가리킵니다.
꾸러미를 구성하는 파일이 하나밖에 없을 때에 자료방은 \texttt{misc}가
됩니다.  여러 파일로 구성되어 있을 때는 꾸러미 이름에 따른 적당한
이름의 자료방을 마련합니다.  자료방의 파일의 종류가 많을 경우에는
하위자료방을 따로 만듭니다.  \HLaTeX{}의 경우에 그 자료방의 이름을
\texttt{hlatex}으로 정합니다.

요약하면, \HLaTeX{}의 \LaTeX{} 모듬(macro) 파일들은
\begin{verbatim}
        texmf/tex/latex/hlatex
\end{verbatim}
에 설치되며 \OMEGA{} 모듬 파일들은
\begin{verbatim}
        texmf/omega/latex/hlatex
\end{verbatim}
에 설치됩니다.  어떤 자료방에서든지, 지역적 요구에 맞게 수정되는
파일들은 \verb|local|이라는 자료방에 둡니다.

글자체는 다음과 같은 규정에 의해 설치할 것을 요구합니다.
\begin{verbatim}
        texmf/fonts/형식/제공자/글자체
\end{verbatim}
`\verb|형식|'은 글자체의 종류를 가리킵니다: 즉, \verb|source|,
\verb|tfm|, \verb|ofm|, \verb|vf|, \verb|ovf|, \verb|type1|,
\verb|afm|.  `\verb|제공자|'에는 글자체를 만드는 업체나 만든이 등이
대상이 됩니다.  adobe회사의 type1글자체 (\verb|adobe|),
bitstream회사의 type1글자체 (\verb|bitstrea|), D.~Knuth의 \MF{}글자체
(\verb|public|), J. Knappen의 \MF{}글자체 (\verb|jknappen|) 등을 예로
들 수 있읍니다.  \HLaTeX{}의 경우에 \verb|제공자|는 \verb|uhc|와
\verb|moonttf|가 있습니다.  `\verb|글자체|'는 글자의 모양에 따른
이름입니다.  adobe회사의 \verb|times|, \verb|helvetic| 등등과
D.~Knuth씨의 \verb|cm|, \verb|ec| 등을 예로 들 수 있고 \HLaTeX{}의
경우에는 \verb|myoungjo|, \verb|gothic|, \verb|graphic|, $\ldots$ 등이
있읍니다.

결론적으로 \HLaTeX{}의 글자체들은 다음의 자료방에 위치하게 됩니다.
\begin{verbatim}
        texmf/fonts/형식/uhc/{myoungjo,gothic,...}
        texmf/fonts/형식/moonttf/{myoungjo,gothic,...}
\end{verbatim}

이하의 소절에서는 위와 같은 TDS에 의거하여 \HLaTeX{}을 설치하는 방법을
안내합니다.  편의를 위해 \verb|texmf|는 TDS의 TEXMF 나무꼴의 최상위
자료방을 나타내는 것으로 합니다.


\subsection{\HLaTeX\ 모듬 파일 설치}
\label{소절:모듬파일설치}\index{한글@\HLaTeX!설치!모듬}

\HLaTeX{}의 모듬 파일 설치는 파일을 해당하는 자료방에 복사하면 됩니다.
\begin{list}{\textbullet}{}
\item \texttt{hangul.sty:} 우리말 문서의 모양새 파일.\par
  \texttt{texmf/tex/latex/hlatex}에 복사한다.
\item \texttt{hfont.tex:} \LaTeX{}에 쓰이는 우리말 부호 처리.\par
  \texttt{texmf/tex/latex/hlatex}에 복사한다.
\item \texttt{ksx1001.tex:} \OMEGA{}로 KS X 1001 문서를 처리할 때 쓰이는
  모듬 파일.\par  \texttt{texmf/omega/latex/hlatex}에 복사한다.
\item \texttt{ksx1001.otp ksx1001.ocp:} \OMEGA{}TP{}(Omega
  Translantion Process) 파일 및 이를 기계어로 번역한 파일.\par  각각
  \texttt{texmf/omega/\{otp,ocp\}}에 복사한다.
\item \texttt{hfont.sty:} 우리말 문자를 처리하는 기능만 이용하는
  모양새 파일.\par  \texttt{texmf/tex/latex/hlatex}에 복사한다.
% \item \texttt{hsfonts.def:}  호환 방식에서 사용될 환등판 글자체 정의
%   파일.\par  \texttt{texmf/tex/latex/hlatex}에 복사한다.
\item \texttt{*.fd:} 우리말 글자체 설명 파일.
  \begin{list}{▶}{\parsep0pt\itemsep0pt\topsep0pt\partopsep0pt}
%   \item 완성형 글자체.  (\texttt{wansung} 자료방)\par
%     \texttt{texmf/tex/latex/hlatex}에 복사한다.
%     \begin{list}{▷}{\parsep0pt\itemsep0pt\topsep0pt\partopsep0pt}
%     \item \MF{} 글자체.
%       \begin{list}{\textrm{--}}{\parsep0pt\itemsep0pt\topsep0pt\partopsep0pt
%           \rightmargin50pt}\tzfamily
%       \item \textmj{상징:} hssm.fd hsgt.fd hstt.fd
%       \item \textmj{한글:} hwmj.fd hwsm.fd hwgt.fd hwmtt.fd hwgr.fd
%         hwgs.fd hwmg.fd hwbm.fd hwol.fd hwpg.fd hwpn.fd hwyt.fd
%       \item \textmj{자모:} hwmmj.fd hwmgt.fd hwmnv.fd hwmsr.fd
%       \item \textmj{한자:} hhsm.fd hhgt.fd hhtt.fd hhgs.fd
%       \end{list}
%     \item \PS{} 글자체.
%       \begin{list}{\textrm{--}}{\parsep0pt\itemsep0pt\topsep0pt\partopsep0pt
%           \rightmargin50pt}\tzfamily
%       \item \textmj{상징:} hspsm.fd hspgt.fd hsptt.fd
%       \item \textmj{한글:} hwpmj.fd hwpsm.fd hwpgt.fd hwpmtt.fd hwpgr.fd
%         hwpgs.fd hwpmg.fd hwpbm.fd hwpol.fd hwppg.fd hwppn.fd hwpyt.fd
%       \item \textmj{자모:} hwpmmj.fd hwpmgt.fd hwpmnv.fd hwpmsr.fd
%       \item \textmj{한자:} hhpsm.fd hhpgt.fd hhptt.fd hhpgs.fd
%       \end{list}
%     \end{list}
  \item UHC형 PS 글자체.  (\texttt{uhc} 자료방)
    \begin{list}{▷}{\parsep0pt\itemsep0pt\topsep0pt\partopsep0pt
        \rightmargin50pt}
    \item Λ 글자체.  (\texttt{lambda} 자료방)\par
      \texttt{texmf/omega/latex/hlatex}에 복사한다.  \texttt{uhcmj.fd
        uhcgt.fd uhctt.fd uhcgr.fd uhcgs.fd uhcsh.fd uhcpg.fd uhcpn.fd
        uhcph.fd uhcbm.fd uhcyt.fd uhcjmj.fd uhcjgt.fd uhcjnv.fd
        uhcjsr.fd}
    \item \LaTeX{} 글자체.  (\texttt{latex} 자료방)\par
      \texttt{texmf/tex/latex/hlatex}에 복사한다.
      \begin{list}{\textrm{--}}{\parsep0pt\itemsep0pt\topsep0pt\partopsep0pt
          \rightmargin50pt}\tzfamily
      \item \textmj{상징:} hswmj.fd hswgt.fd hswtt.fd hswgr.fd
        hswgs.fd hswsh.fd
      \item \textmj{한글:} hwwmj.fd hwwgt.fd hwwtt.fd hwwgr.fd
        hwwgs.fd hwwsh.fd hwwbm.fd hwwpg.fd hwwph.fd hwwpn.fd hwwyt.fd
        hwwjmj.df hwwjgt.fd hwwjnv.fd hwwjsr.fd
      \item \textmj{한자:} hhwmj.fd hhwgt.fd hhwtt.fd hhwgs.fd
        hhwsh.fd hhwyt.fd
      \end{list}
    \end{list}
  \item 문화부 TrueType 글자체.  (\texttt{moonttf} 자료방)\par
    \texttt{texmf/tex/latex/hlatex}에 복사한다.\par \texttt{hwmbt.fd
      hwmdt.fd hwmgs.fd hwmgh.fd hwmhm.fd hwmsg.fd hwmsh.fd}.  모두
    완성형 한글만 있다.
  \end{list}
  \begin{list}{◀}{\parsep0pt\itemsep0pt\topsep0pt\partopsep0pt}
  \item UHC 계열의 글자체에는 이전의 완성형 글자체중 외곽체와 목각체가
    없고 신문체가 더 있다.  (\pageref{UHC글자체}\pagename\을{} 참조)
  \item 문화부 truetype 글자체에는 KS X 1001에 정의된 2350개의 한글만
    있으며 UHC계의 글자체에는 없는 궁흘림과 목각체가 있다.
    (\pageref{moonttf글자체}\pagename\을{} 참조)
  \end{list}
\item \texttt{josa.tab:} 조사 자동 처리표.  \LaTeX{}을 사용할 때
  필요하다.\par \texttt{texmf/tex/latex/hlatex}에 복사한다.
\item \texttt{hfont.cfg:} 우리말 글자체 애초값
  설정.\index{\verb/hfont.cfg/} \HLaTeX{}의 글자체
  애초값이나 외형 글자체(external font)와 내형 글자체(internal font)의
  관련등을 \TeX\ 체계 관리자의 입장에서 바꾸어 줄 때 사용된다.\par
  \texttt{texmf/tex/latex/local}에 복사한다.
% \item \texttt{hltx209.cfg:} 호환 방식(compatibility mode)에서 추가
%   선택 처리.\index{\verb/hltx209.cfg/}\par  다음과 같은 식으로 작성하여
%   \texttt{texmf/tex/latex/hlatex}에 복사한다.
% \begin{verbatim}
%         \ExecuteOptions{hanja,pshan}
% \end{verbatim}
\item \texttt{contrib/halpha.bst:} Bib\TeX{}에서 우리말 처리.\par
  \texttt{texmf/bibtex/bst/misc}에 복사한다.
\item \texttt{contrib/hind.ist contrib/hglo.ist:} \verb|makeindex|로
  우리말 색인/어휘 작성할 때의 모양새
  파일.\index{\verb/hind.ist/}\index{\verb/hglo.ist/}\par
  \texttt{texmf/makeindex}에 복사한다.
\item \texttt{contrib/hlatex:} \HLaTeX{} 0.99판 부터 삭제됩니다.
  \TeX{}이 출력하는 보조 파일 및 화면 출력이 7비트 운영 체계 위주로
  되어 있었으나 web2c 7.3판 부터는 \LaTeX{} 파일의 맨 첫줄에
\begin{verbatim}
%& --translate-file=cp8bit.tcx
\end{verbatim}
  이라고 선언하면 문자 출력이 8비트로 됩니다\footnote{이런 선언이
    없으면 \texttt{tex}의 8비트 문자 출력은
    \texttt{\textasciicircum\textasciicircum a1}와 같이 됩니다.}.
  \OMEGA{}의 경우에는 \OTP{}로 구현되도록 계획되어 있으나 제대로
  작동하지 않으므로
  \texttt{contrib/}\discretionary{}{}{}\texttt{teTeX-}\discretionary{}{}{}\texttt{1.0.diff}를
  적용하여 8비트 부호의 출력을 강요할 수 있읍니다\footnote{그러나
    ksx1001.otp에 의해 유니코드로 변환된 KS X 1001 부호는
    \texttt{\textasciicircum\textasciicircum\textasciicircum\textasciicircum
      ac00}과 같이 16비트 부호의 표현 방법으로 나타납니다.}.  이
  깁기를 적용하지 않은 \OMEGA{}를 사용할 경우에는
  \texttt{contrib/}\discretionary{}{}{}\texttt{hlambda}가
  \texttt{lambda}를 대신합니다. (이 스크립트는 테스트 해 보지
  않았으므로 제대로 동작할른지는 장담하지 못합니다.)
\end{list}

\subsection{한글 글자체 설치}
\label{소절:글자체설치}\index{한글!설치!글자체}

글자체는 CTAN(Comprehensive TeX Archive Network)의 fonts
자료방(directory)
\begin{verbatim}
        ~ftp/tex-archive/fonts/korean/HLaTeX
\end{verbatim}
에서 가져올 수 있읍니다.

그 외에, \verb|ftp.linguistik.uni-erlangen.de|의 자료방
\verb|/pub/HLaTeX|에는 CTAN을 통해 제공하지 않게 되는 것들도
준비할 계획입니다\footnote{시간과 기술적인 문제로, 원활하게 작동되지
  못함을 사과드립니다.}.

이 소절은 11172자의 한글을 쓸 수 있는 UHC (Unified Hangul Code)
글자체와 KS X 1001 부호 체계의 2350개의 한글이 정의되어 있는 문화부
TrueType 글자체의 두 부분으로 나뉘어서 그 설치 방법에 대해 소개합니다.
(초창기에 쓰였던 완성$\cdot$조합 혼합형의 글자체와 \HLaTeX{} 0.97 판에
쓰였던 조합형 글자체 및 0.98 판까지 사용되었던 완성형 글자체는
삭제되었읍니다.)

% \subsubsection{완성형 글자체}

% 완성형 글자체를\index{완성형 글자체} 씀으로써 이전의 KAIST식 조합 완성
% 혼합 방식에서\index{조합 완성 혼합형 글자체} 눈에 띄던 몇몇의 약점을
% 보강할 수 있었던 반면, 많은 저장 용량이 요구되게 됩니다.  이러한 저장
% 용량의 문제점이 심각하게 생각될 경우에는 UHC 글자체를 쓰거나 옛날식의
% KAIST식 글자체를 사용하시요\footnote{KAIST식 글자체는 300점/인치와
%   600점/인치의 인쇄기만이 지원되므로 \HLaTeX{}에서는 이 글자체에 대한
%   지원이 없읍니다.\par KAIST식 글자체를 꼭 사용하고자 하면\par
%   \texttt{ftp://ftp.linguistik.uni-erlangen.de/pub/HLaTeX/unsupported}\par
%   자료방에서 글자체와 모듬 파일을 구해서 설치하십시요.}.  앞으로는 UHC
% 글자체가 \HLaTeX{}의 기본 글자체로 되면서 완성형 글자체는 없어지게
% 됩니다.

% 완성형 글자체에는 \MF{}형식과 Type1 형식의 글자체가 있으며, 글자체를
% 만드는데 사용된 GNU fontutils의 속성에 의해 \MF{} 글자체는 글자의
% 모양을 폐곡선으로만 표현하고 있어서, 인쇄되는 질이 Type1에 비해 약간
% 떨어집니다.

% 글자체 설치는 명조와 고딕, 타자를 기본 글자체로 하고
% 표~\ref{tab:완성형글자체}\을{} 참고로 다른 글자체를 추가하면 됩니다.

% \begin{table}[htbp]
%   \begin{center}
%     \leavevmode \ttfamily
%     \begin{tabular}{|l||>{\ttfamily}c|r||>{\ttfamily}c|r|}\hline
%       글자체             &  MF      & 용량(byte) &  PS      & 용량(byte)\\
%       \hline
%       \textmj{명조}      & wsmj     &  8 376 320 & pkmj     & 1 812 480 \\
%       \textgt{고딕}      & wsgt     &    399 360 & pkgt     &   788 480 \\
%       \texttz{타자}      & taza     &    512 000 & ptaza    &   532 480 \\
%       \textgr{그래픽}    & wsgr     &  4 341 760 & pkgr     & 1 075 200 \\
%       \textmj{새명조}    & wssm     &  9 052 160 & pksm     & 1 505 280 \\
%       \textpg{필기}      & wspg     &  9 646 080 & pkpg     & 1 464 320 \\
%       \textbm{봄글씨}    & wsbm     &  7 813 120 & pkbm     & 1 290 240 \\
%       \textgs{궁서}      & wsgs     & 11 038 720 & pkgs     & 1 464 320 \\
%       \textmg{목각}      & wsmg     & 25 681 920 & pkmg     & 3 102 720 \\
%       \textol{외곽}      & wsol     &     81 920 & pkol     &   153 600 \\
%       \textyt{옛글}      & wsyt     & 10 229 760 & pkyt     & 1 413 120 \\
%       \textpn{펜글씨}    & wspn     & 14 878 720 & pkpn     & 3 153 920 \\
%       \hline
%       \textmj{漢字 明照} & myoungjo & 26 234 880 & myoungjo & 3 799 040 \\
%       \textgt{漢字 고딕} & gothic   & 15 718 400 & gothic   & 2 539 520 \\
%       \textgs{漢字 宮書} & gungseo  & 15 718 400 & gungseo  & 4 096 000 \\
%       \hline
%       \textmj{상징 글자} & hsym     &  3 338 240 & phsym    &   737 280 \\
%       \hline
% %      \hfontfamily{jmj}
%       \자모명조 자모 글자          & jamo     &    860 160 & pjamo    &   645 120 \\
%       \hline
%       \textmj{환등 글자} & hslide   &  2 621 440 & phslide  & 1 495 040 \\
%       \hline
%       \textmj{공용 모듬} & common   &    204 800 &          &           \\
%       \hline
%     \end{tabular}
%   \end{center}
%   \begin{center}
%     \caption{\hfontfamily{mj} KS X 1001 완성형 글자체}
%     \index{한글@\HLaTeX!글자체!보급되는 글자체}
%     \label{tab:완성형글자체}
%   \end{center}
% \end{table}

% 글자체는 \texttt{tar}/\texttt{gzip}으로 묶음/압축되어 있으므로 먼저
% \texttt{gunzip}으로 압축을 풀고 \texttt{texmf/fonts} 자료방에서
% \texttt{tar}로 묶음을 풀면 설치됩니다.
% \begin{verbatim}
%         cd texmf/fonts
%         gunzip -c wsmj.tar.gz | tar xvf -
%         ...
% \end{verbatim}
% \MF{} 형태의 글자체를 설치할 때는 \texttt{common.tar.gz}도 함께
% 설치하여야 하며, \PS{} 형태의 글자체를 설치할 때에는 글자체를
% 설정하여야 합니다.

% \paragraph{\PS{} 완성형 글자체의 설정 작업}

% \begin{list}{\textbullet}{}
% \item \texttt{wansung/config/wansung.map wansung/config/wan-down.map:}
%   \texttt{dvi} 파일을 \texttt{dvips}로 인쇄할 때나 \texttt{xdvi}로
%   미리보기할 때 필요하며 완성형 글자체의 파일 이름과 \PS{} 이름의 연관
%   관계를 알려 준다.  \texttt{wansung.map}은 인쇄시 글자체가 인쇄기에
%   내장되어 있는 것으로 하며 (ghostscript를 써서 인쇄할 경우)
%   \texttt{wan-down.map}은 글자체를 올려받기(download) 시킨다.\par
%   \texttt{texmf/dvips/base/psfonts.map}에 추가한다.
% \begin{verbatim}
% cat wansung/config/wansung.map >> texmf/dvips/base/psfonts.map
% \end{verbatim}
% 혹은
% \begin{verbatim}
% cat wansung/config/wan-down.map >> texmf/dvips/base/psfonts.map
% \end{verbatim}
% \item \texttt{wansung/config/Fontmap.wan:} ghostscript를 사용할 때나
%   \texttt{gsftopk}로 미리보기 pk 글자체를 만들때 필요하며 글자체의
%   \PS{} 이름과 글자체의 이름/위치를 알려준다.  글자체의 위치는 \TeX{}
%   운영체계마다 다를 수 있으므로 자료방의 이름을 수정하여 ghostscript의
%   \texttt{Fontmap}에 추가한다.
% \begin{verbatim}
% cat wansung/config/Fontmap.wan >> .../ghostscript/5.10/Fontmap
% \end{verbatim}
% \item \texttt{wansung/config/hlatex.upr:} \texttt{ps2pk} 1.5판을
%   사용할 때 필요한 \PS{} 자원(resource) 파일로서, \texttt{ps2pk}의
%   config 자료방에 복사한다\footnote{ps2pk 자료방은 운영체계마다 다를
%     수 있읍니다.  web2c 7.2판과 함께 보급되는 ps2pk는 같은 1.5판이지만
%     그 작동방식이 다릅니다.  ps2pk 원천 자료는 hlatex.upr와 같은 자원
%     파일을 이용하여 쉽게 글자체의 위치를 찾는 반면 web2c 7.2판에 있는
%     ps2pk는 kpathsea 자료관을 사용하여 글자체를 찾습니다.  모두 다
%     장단점이 있지만 자원 파일을 이용할 경우에는 type1 글자체가
%     \texttt{texmf} 나무꼴 밑에 있지 않고 운영체계의 어디에 있든지
%     상관없이 사용할 수 있으나 web2c 7.2판에 있는 ps2pk는
%     \texttt{texmf.cnf}에 그 자료방의 위치를 알려 주어야 합니다.}.
%   6번째 줄의
% \begin{verbatim}
% //usr/tex/share/texmf/fonts
% \end{verbatim}
%   는 \TeX{} 운영체게에 따라 맞는 자료방으로 수정한다.
%   \texttt{mkpsres}로 이 파일을 직접 만들어도 된다.
% \begin{verbatim}
% mkpsres -o .../hlatex.upr texmf/fonts/{afm,type1}/korean
% \end{verbatim}
% \item \texttt{wansung/config/special.map:} 미리보기용의 pk 파일을 만들때
%   pk 파일이 위치하는 자료방의 이름을 결정하는데 사용된다.  web2c 7.0
%   이후의 판에서는 tfm 파일의 위치에 의해 pk 파일의 위치가 정해지므로
%   이 파일을 설치하지 않아도 된다.  \TeX{} 운영체계의
%   \texttt{special.map}은 \texttt{texmf/fontname}에 있다.
% \end{list}

% teTeX이나 web2c 7.0이후의 판에서는 TDS에 파일이 추가/삭제되었을 경우에
% 새로 설치한 파일들을 자료틀(database)에 등록시켜야 합니다.
% \begin{verbatim}
% texhash         (teTeX의 경우)
% MakeTeXls-R     (web2c 7.0 이후 판의 경우)
% mktexlsr        (web2c 7.1 이후 판의 경우)
% \end{verbatim}

% \paragraph{\MF{} 완성형 글자체에서 미리 pk 글자체 만들기}

% \MF{} 원천 파일들은 굳은 저장판(hard disk)의 용량을 상당한 많이
% 차지합니다.  원천 파일들이 옳게 설치되어 있으면 \TeX{}은 필요한 pk
% 파일을 \texttt{mktexpk} 조가비 각본으로 자동생성합니다.  한글은 하나의
% \verb|\magstep|에 2350개의 글자가 있고 한자의 경우는 모두
% 4888개이므로, 작업 중간에 pk 파일을 만드는 것은 작업의 흐름을 막기
% 쉽습니다.  어차피 필요하게 될 글자체라고 생각이 들면 컴퓨터가 일하지
% 않는 밤시간을 이용해 미리 pk 파일을 만들어 놓는 것도 바람직합니다.

% pk 글자체를 미리 만들 때는 \MF{} 원천을 미리 \TeX{} 운영체계에 설치한
% 다음 \verb|wansung/fonts| 자료방에서 다음과 같이
% 합니다\footnote{상당히 많은 시간이 걸립니다.}.
% \begin{enumerate}
% \item 보통 두께의 글자체를 세번 연속하여 굵은 두께의 글자체를 만들
%   것인가 아니면 \MF{} 원천으로부터 굵은 글자체를 만들 것이가를
%   결정하여 \verb|Makefile|을 수정합니다. 수정될 내용은
%   \verb|Makefile|에 설명되어 있는 것처럼 변수인 \texttt{series}를
%   결정하는 것입니니다.
% \item \verb|make|를 실행시킵니다. \verb|make|의 대상(target)에는
%   \verb|default|와 \verb|extra|, \verb|all|이
%   있읍니다.  \verb|default|는 명조와 고딕 그리고 타자 글자체를
%   만들고 \texttt{extra}는 그외의 새명조, 궁서, 목각, 옛글, 봄, 펜,
%   외곽, 필기, 자모명조, 자모고딕, 자모노벨, 자모소라 글자체를
%   만듭니다.  그리고 \verb|all|은 위에 열거한 모든 글자체를 만듭니다.
% \end{enumerate}
% 일단 pk 파일들이 모두 만들어졌으면 \MF{} 원천 파일은 지워도
% 됩니다\footnote{환등판을 만들 때는 다른 크기의 글자체가 요구됩니다.
%   원천을 지우면 환등판을 만들 때에 문제가 발생함을 유의하십시요.}.


% % 자모 글자체에는\index{자모 글자체} 명조, 고딕, 소라, 노벨 그리고
% % 타자가 있고 조합 글자체에는 명조, 고딕, 펜글씨가 있읍니다. 상징
% % 글자체에는 명조, 고딕이 있고 한자 글자체에는 명조와 고딕 그리고
% % 궁서체가 있읍니다.  환등 글자체는\index{환등 글자체} 명조, 고딕,
% % 그래픽, 목각, 외곽, 옛글의 완성형 한글 글자체와 명조, 고딕, 궁서의
% % 한자 글자체 그리고 명조, 고딕의 상징 글자체들을 바탕으로 한 가상
% % 글자체(virtual font) 파일들로 구성되어 있읍니다.  환등판을
% % \LaTeX2e{}으로 작성할 경우에는 이 환등 글자체를 필요로 하지 않고 보통
% % 사용하는 글자체의 색깔을 하얗게 함으로써 보이지 않는 글자를 만들도록
% % 되어 있읍니다. \LaTeX209때의 환등판 작성 방법이 더 간편하다는 생각이
% % 들지만 그러한 모듬이 \LaTeXe{}에서는 제공되고 있지 않으므로,
% % 보이지 않는 환등 글자체를 만들어 \LaTeX209를 통해 환등판의 작성이
% % 가능하도록 하였읍니다.  공용 모듬 파일은 \MF{}에 필요한 모듬
% % 명령과 연자(ligature)를 정의하는 파일들로서, \MF{} 원천(source)에서 pk
% % 파일을 만들 때에 필수불가결합니다.  외곽 글자체는 명조체를 바탕으로


\subsubsection{UHC 글자체}
\label{UHC글자체}


이 글자체는 UHC(Unified Hangul Code)에 정의되어 있는 11172개의 한글을
모두 쓸 수 있도록 만들어져 있으므로 국제부호화 문자 세트를 (Unicode)를
처리할 수 있는 \OMEGA{}에서 사용될 수 있읍니다.

이 글자체들은 모두 \LaTeX{}과 Λ에서 사용될 수 있으며 우리말 문서를
Λ로 작업하게 되면 이 글자체가 기본으로 사용됩니다. 다음과 같이
\texttt{tar}/\texttt{gzip}으로 압축되어 있읍니다\footnote{\HLaTeX{}
  0.98판에서 처럼 \LaTeX{}용과 Λ용을 서로 분리시키지 않고 하나의
  파일에 같이 묶어 압축했읍니다.}

\smallskip
\begin{tabular}{|ll|}\hline
& \LaTeX{}/Λ 용 \\\hline
\명조 명조     & \ttfamily uhc-myoungjo.tar.gz           \\
\고딕 고딕     & \ttfamily uhc-gothic.tar.gz             \\
\타자 타자     & \ttfamily uhc-taza.tar.gz               \\
\그래픽 그래픽 & \ttfamily uhc-graphic.tar.gz            \\
\궁서 궁서     & \ttfamily uhc-gungseo.tar.gz            \\
\신문 신문     & \ttfamily uhc-shinmun.tar.gz            \\
\필기 필기     & \ttfamily uhc-pilgi.tar.gz              \\
\펜글씨 펜글씨/\펜흘림 펜흘림 & \ttfamily uhc-pen.tar.gz \\
\봄글씨 봄글씨 & \ttfamily uhc-bom.tar.gz                \\
\옛글 옛글     & \ttfamily uhc-yetgul.tar.gz             \\
\자모명조 자모 (명조/\자모고딕 고딕/\자모노벨 노벨/\자모소라 소라)
               & \ttfamily uhc-jamo.tar.gz               \\\hline
\end{tabular}

\smallskip UHC 글자체는 모두 15가지 종류가 있으며, 모두 Type1
형식으로 되어 있읍니다.  afm과 pfb의 Type1 형식의 글자체를
\LaTeX{}에서 쓰이는 tfm, vf 형식으로 만들고 Λ용으로 ofm, ovf 형식의
글자체들을 만들었읍니다.

이 글자체들은 \verb|\fontseries| 중 넓이 부분이 좁힌넓이(75\%)에서
보통넓이(100\%), 확장넓이(125\%), 초확장넓이(200\%)까지 있으며, 무게
부분은 명조체와 고딕체 및 그래픽체의 경우 보통무게(medium)과
진한무게(bold)가 있으며, 그 외의 글자체에는 한가지 종류만 있읍니다.
\verb|\fontshape|은 모두 보통 모양과 기울인 모양으로 구성되며
이탤릭 모양은 기울인 모양이 대신합니다.

각종 글자체들은 \texttt{texmf/fonts} 자료방에서
\texttt{gunzip}/\texttt{tar}로 압축을 풀면 설치가 끝납니다.

\begin{verbatim}
gunzip -c uhc-myoungjo.tar.gz | tar xvf -
...
\end{verbatim}

\texttt{uhc} 아랫자료방에는 글자체 설정을 위한 \texttt{config}
자료방과 \LaTeX{} 모듬 파일이 있는 \texttt{latex} 자료방 그리고 Λ
모듬 파일이 있는 \texttt{lambda} 자료방이 있읍니다.  \texttt{latex}과
\texttt{lambda} 자료방의 파일들은 각각 \TeX{} 운영 체계의 해당하는
자료방에 복사합니다.
\begin{verbatim}
cp uhc/latex/* texmf/tex/latex/hlatex
cp uhc/lambda/* texmf/omega/latex/hlatex
\end{verbatim}
% \LaTeX{}으로 우리말 문서를 처리할 때에는 꾸러미 파일
% \texttt{uhc.sty}을 \HLaTeX{} 원천 파일의 전문에서 다음과 같이
% \texttt{hangul.sty} 다음에 \verb|\usepackage|로 읽히도록 하여야 이
% 글자체가 사용됩니다.
% \begin{verbatim}
% \usepackage{uhc}
% \end{verbatim}

\paragraph{\PS{} UHC 글자체의 설정 작업}

글자체 설정은 다음과 같이 합니다.
\begin{enumerate}
\item \texttt{uhc/config/psfonts.uhc uhc/config/uhc-down.map:} dvips로
  인쇄할 때나 xdvi로 미리보기할 때 필요하며 UHC 글자체의 파일 이름과
  \PS{} 이름의 연관 관계를 알려 준다.  \texttt{psfonts.uhc}는 인쇄시
  글자체가 인쇄기에 내장되어 있는 것으로 하며 (ghostscript를 써서
  인쇄할 경우) \texttt{uhc-}\discretionary{}{}{}\texttt{down.map}은
  글자체를 올려받기(download) 시킨다.\par
  \texttt{texmf/dvips/base/psfonts.map}에 추가한다.
\begin{verbatim}
cat config/psfonts.uhc >> texmf/dvips/base/psfonts.map
\end{verbatim}
혹은
\begin{verbatim}
cat config/uhc-down.map >> texmf/dvips/base/psfonts.map
\end{verbatim}
\item \texttt{Fontmap.uhc:} ghostscript를 사용할 때나
  \texttt{gsftopk}로 미리보기 pk 글자체를 만들때 필요하며 글자체의
  \PS{} 이름과 글자체의 이름/위치를 알려준다.  글자체의 위치는 \TeX{}
  운영체계마다 다를 수 있으므로 자료방의 이름을 수정하여 ghostscript의
  \texttt{Fontmap}에 추가한다.
\begin{verbatim}
cat uhc/config/Fontmap.uhc >> .../ghostscript/5.10/Fontmap
\end{verbatim}
\item \texttt{uhc/config/uhc.upr:} \texttt{ps2pk} 1.5판을 사용할 때
  필요한 \PS{} 자원(resource) 파일로서, \texttt{ps2pk}의 config
  자료방에 복사한다.  6번째 줄의
\begin{verbatim}
//usr/tex/share/texmf/fonts
\end{verbatim}
  는 \TeX{} 운영체게에 따라 맞는 자료방으로 수정한다.
  \texttt{mkpsres}로 이 파일을 직접 만들어도 된다.
\begin{verbatim}
mkpsres -o .../uhc.upr texmf/fonts/{afm,type1}/uhc
\end{verbatim}
\end{enumerate}


\subsubsection{moonttf 글자체}
\label{moonttf글자체}

moonttf 글자체는 문화체육부에서 개발한 글자체중 TrueType 형식의
글자체들을 \HLaTeX{}에서 사용할 수 있도록 구성되어 있습니다.  moonttf
글자체는 KS X 1001에 정의되어 있는 2350개의 한글 글자로만 구성되어
있읍니다.  이 글자체는 \LaTeX{}로만 사용할 수 있도록 하였읍니다.

문화체육부 개발글자체는 문체부를 통해 보급되고 있으나, 사용자의 편의를
위해서 \HLaTeX{}에서 같이 보급합니다.  글자체의 종류는 다음과
같습니다.

{\ifx\pdftexversion\undefined
  \edef\bfdefault{b}
  \MapHangulFamily{mj}{mbt,wmj,wmj}
  \MapHangulFamily{gt}{mdt,wgt,wgt}
  \MapHangulFamily{gs}{mgs,wgs,wgs}
  \MapHangulFamily{gh}{mgh,wgs,wgs}
  \MapHangulFamily{mg}{mhm,wgt,wgt}
  \MapHangulFamily{pn}{msg,wmj,wmj}
  \MapHangulFamily{ph}{msh,wmj,wmj}
 \fi
\smallskip
\begin{tabular}{lll}\hline
  TrueType 글자체 & 문체부 글자체 이름        & 글자체 선택 모듬 \\\hline
  \texttt{mt.ttf} & \명조 바탕체              & \verb|\명조| \\
  \texttt{mb.ttf} & \명조\bfseries 견바탕체   & \verb|\명조\bfseries| \\
  \texttt{mg.ttf} & \고딕 돋움체              & \verb|\고딕| \\
  \texttt{mk.ttf} & \고딕\bfseries 견돋움체   & \verb|\고딕\bfseries| \\
  \texttt{mj.ttf} & \궁서 궁체 정자체         & \verb|\궁서| \\
  \texttt{mm.ttf} & \궁흘림 궁체 흘림체       & \verb|\궁흘림| \\
  \texttt{mh.ttf} & \목각 훈민정음체          & \verb|\목각| \\
  \texttt{mn.ttf} & \펜글씨 쓰기 정자체       & \verb|\펜글씨| \\
  \texttt{mp.ttf} & \펜흘림 쓰기 흘림체       & \verb|\펜흘림| \\\hline
\end{tabular}
}

\smallskip moonttf 글자체는 모두 tfm 형태만으로 구성되어 있고
\texttt{moonttf.}\discretionary{}{}{}\texttt{tar.gz}를
\texttt{texmf/}\discretionary{}{}{}\texttt{fonts} 자료방에서
\texttt{gunzip}/\texttt{tar}로 풀면 설치됩니다.
\begin{verbatim}
cd texmf/fonts
gunzip -c moonttf.tar.gz | tar -xvf -
\end{verbatim}

\paragraph{글자체의 설치 및 설정}

\begin{list}{\textbullet}{}
\item \texttt{moonttf.sty:} \LaTeX{}에서 문체부 글자체를 사용하도록
  하는 모듬 파일.\par  \texttt{texmf/tex/latex/hlatex}에 복사한다.
\item \texttt{hwmbt.fd hwmdt.fd hwmgs.fd hwmgh.fd hwmhm.fd hwmsg.fd
    hwmsh.fd:} 글자체 설명 파일.\par \texttt{texmf/tex/latex/hlatex}에
  복사한다.
\item TrueType 글자체를 구해 \texttt{texmf/fonts} 자료방에서 다음과
  같은 아랫자료방 구조로 설치한다.
  (\texttt{ftp.linguistik.uni-}\discretionary{}{}{}\texttt{erlangen.de}에서
  있는 TrueType 글자체는 이런 자료방 나무꼴로 묶음/압축되어 있읍니다.)
\begin{verbatim}
truetype ━ moonttf ┳ batang ┳  mb.ttf
                    │        └  mt.ttf
                    ├ doteum ┳  mg.ttf
                    │        └  mk.ttf
                    ├ gung ━┳  mj.ttf
                    │        └  mm.ttf
                    ├ hoonmin ━ mh.ttf
                    └ sseugi ┳  mn.ttf
                              └  mp.ttf
\end{verbatim}
\item \texttt{ttfonts.mhb:} \texttt{dvips}의 \texttt{psfonts.map}과
  같은 역할.  TrueType 글자체의 파일 이름과 글자체 이름의 연관 관계를
  알려 준다.\par \texttt{texmf/dvips/ttf2pk} 자료방의
  \texttt{ttfonts.map}에 추가한다\footnote{\texttt{ttf2pk} 자료방은
    운영체계마다 다를 수 있읍니다.  FreeType 1.1pre 판에 포함되어 있는
    \texttt{ttf2pk} 프로그램을 kpathsea 묶음처리를 써서 번역했을
    경우에 위와 같은 자료방 구조를 따르면 문제없이 작동할 것입니다.
    \texttt{ttf2pk}는 아직 web2c 7.3판에 포함되어 있지 않으므로 따로
    설치하여야 합니다.  반면에 \texttt{ttf2pk}를 작동시키는데 필요한
    환경설정은 \texttt{texmf.cnf}에 포함되어 있읍니다.}.
\begin{verbatim}
cat moonttf/ttfonts.mhb >> texmf/dvips/ttf2pk/ttfonts.map
\end{verbatim}
\item \texttt{moonttf/wansung.sfd:} 아랫글자체 정의 (SubFont
  Definition) 파일.  우리말과 같이 하나의 ttf 글자체에 256개가 넘는
  글자가 정의되어 있을 경우, 이를 256개의 글자체 단위로 나누는 역할을
  한다.\par
  \texttt{texmf/dvips/ttf2pk} 자료방에 복사한다.
\begin{verbatim}
cp moonttf/wansung.sfd texmf/ttf2pk
\end{verbatim}
\item \texttt{moonttf/mktexpk.dif} \TeX{}의 \texttt{mktexpk}에 대한
  깁기 파일이다.  web2c-7.3 이전의 판에 기반을 둔 \TeX{} 운영
  체계에서는 \texttt{mktexpk} 각본 파일이 \texttt{ttf2pk}를 고려하지
  않는다.  이 깁기 파일은 \texttt{mktexpk}를 수정하여, 없는 글자체를
  만들 때에 먼저 \texttt{ttfonts.map}에 필요로하는 글자체가 설정되어
  있으면 \texttt{ttf2pk}로 pk 글자체를 만들도록 한다.  web2c-7.3판
  부터는 \texttt{ttf2pk}가 기본적으로 지원되므로 이 깁기 파일이
  필요없다.
\end{list}

\HLaTeX{}에서 이 글자체를 사용하기 위해서는 꾸러미 파일인
\texttt{moonttf.sty}을 \HLaTeX{} 문서의 전문에서 \verb|\usepackage|로
읽히도록 합니다.
\begin{verbatim}
\usepackage{moonttf}
\end{verbatim}
이로써 명조체(바탕체)와 고딕체(돋움체) 그리고 궁서체, 궁서 흘림체,
목각체(훈민정음체), 펜글씨체, 펜흘림체가 문체부의 TrueType 글자체로
바뀝니다.

이 글자체들은 UHC 글자체처럼 \verb|\fontseries|의 넓이 부분이
좁힌넓이(75\%), 보통넓이(100\%), 확장넓이(125\%),
초확장넓이(200\%)까지 있읍니다.  무게 부분도 명조체와 고딕체의
경우에는 보통무게과 진한무게가 서로 다르며, 나머지는 그 구분이
없읍니다.  \verb|\fontshape|은 모두 보통모양과 기울인모양이 있고,
흘림체는 0.98까지 이탤릭모양으로 (\verb/\itshape/) 글자체를 바꾸었으나
0.99판 부터는 독립된 모양으로 취급하여 사용됩니다.


\subsection{\LaTeXe\ 설치}
\label{sec:instLaTeXe}\index{\LaTeXe!설치}

\HLaTeX{}은 \LaTeXe{}을 기반으로 움직입니다. 그러므로 운영 체계에
\LaTeXe{}이 설치되어 있어야 한글을 쓰실 수 있읍니다.  가까운
CTAN에서는 모두가 파일 옮김 규약(ftp, File Transfer Protokol)을 통해
무명으로(anonymous) \texttt{/tex-archive}에 있는 모든 \TeX\
소프트웨어(software)를 자요롭게 가져다 쓸 수 있읍니다.  다음과 같이
\LaTeXe{}을 가져옵니다.
\begin{verbatim}
hpserv:> ftp ftp.dante.de
login: ftp
passwd: ftp
ftp> cd /tex-archive/macros
ftp> bin
ftp> get latex.tar.gz
ftp> bye
\end{verbatim}
가져온 압축 파일을 풀고 \LaTeXe{}을 설치합니다. 이전의 \LaTeX209 판이
설치되어 있으면 먼저 이를 여벌 받기(backup)합니다.
\begin{verbatim}
mv texmf/tex/latex texmf/tex/latex209
mkdir texmf/tex/latex
mkdir texmf/tex/latex/base
tar xzvf latex.tar.gz
cd latex/base
initex unpack.ins
initex latex.ltx
cp latex.fmt texmf/web2c
cp *.sty *.tex *.fd *.clo *.cls *.def texmf/tex/latex/base
\end{verbatim}
이 외에도 \verb|packages| 및 \verb|contrib| 자료방의 꾸러미들을
설치합니다. 대부분의 경우 새로 설치된 \verb|latex|으로 \verb|.ins|
파일을 돌리면 됩니다. 예를 들어
\begin{verbatim}
cd ../packages/tools
latex tools.ins
\end{verbatim}


\section{\HLaTeX{}의 사용 설명}
\label{sec:use}\index{한글@\HLaTeX!사용}

이 단원에서는 \LaTeX{} 자체의 기본적인 사용법에 대한 설명을 피하고,
\HLaTeX{}에 관계되는 부분만을 간단히 다루기로 합니다.  \LaTeX{}의
사용법에 관해서는 이에 해당하는 참고 서적을 보시기 바랍니다.
\LaTeX{}의 원저자인 Lesley Lamport의 \textit{『\LaTeX\ --- A Document
  Preparation System』} (\cite{Lamport:1985:LDP})\을 참고로 하면
\LaTeX{}에는 수 많은 명령들이 있음을 알 수 있읍니다.  일반 사용자로서
이런 모든 명령을 전부 알아야 할 필요는 없읍니다.  개인의 욕구에 따라
약간의 기초 지식에, 필요할 때마다 \cite{Lamport:1985:LDP}\를 참고하여
사용하면 어렵지 않게 \LaTeX{} 문서 작성을 시작할 수 있읍니다.  여기
독일에서는 \textit{『\LaTeX\ Eine Einf\"uhrung』}이
(\cite{Kopka:LE91}) 잘 알려져 있읍니다. 이 책은 미국에서 영어로
번역되어 출판되고 있고 한국에는 한국어 판으로도 나와 있는 것으로 알고
있읍니다.  이 책에서는 모든 명령들을 간단히 설명한 목록이 있어서
사용자가 빠른 시간안에 그 명령의 개요를 파악할 수 있고, 지정된
페이지로 가면 더욱 상세한 내용을 완벽하게 이해할 수 있도록 짜여져
있읍니다.  참고서(reference manual)로 가장 많이 추천되는 책입니다.

\subsection{한글 문서의 틀}
\index{한글@\HLaTeX!문서의 틀}

문서는

\verb|\documentclass[추가선택]{문서종류}|

\noindent
로 시작합니다. \verb|추가선택|에는 \LaTeX{}의 문서 종류(class) 추가
선택외에도 다음과 같은 \HLaTeX{}의 꾸러미 추가 선택이 지정될 수
있읍니다.
\begin{list}{\textbullet}{\parsep0pt\itemsep0pt\topsep0pt\partopsep0pt}
\item \verb|hanja|: 문서의 단원명이나 날짜를 한자로 표기하도록 한다.
%\item \verb|pshan|: 한글 \PS{} 완성형 글자체가 쓰이도록 한다.
\item \verb|hardbold|: \MF{}에 의해 만들어지는 두꺼운 글씨체를 쓰도록
  한다.
%\item \verb|oldhan|: 이전의 조합 완성 혼합식 한글 글자체를 쓰도록 한다.
\item \verb|nojosa|: 자동 조사 처리 기능을 억제하여 \TeX{}의 기억 용량
  사용을 감소시킨다.
\end{list}

\verb|\usepackage[추가선택]{hangul}|

\noindent
로 한글 꾸러미(package)을 불러 들입니다. \verb|hangul| 이외에 다른
꾸러미를 함께 쓰고자 할 경우에는 쉼표(\verb|,|)를 사이에 두고 그
꾸러미 이름을 쓰거나 따로 \verb|\usepackage| 명령을 씁니다.
\verb|hangul|의 추가 선택은 문서 종류의 추가 선택에서 정할 수도 있고
여기서 정할 수도 있읍니다. 추가 선택의 처리 방식은 다음과
같읍니다.\index{추가 선택 처리 방식}
\begin{itemize}
\item \verb|\documentclass|의 추가 선택은 전역적(global)이다.  어느
  문서 종류나 꾸러미에서든지 이 추가 선택을 처리할 수 있다.
\item \verb|\usepackage|의 추가 선택은 울안적(local)이다. 그
  꾸러미에서 이 추가 선택을 받아 들일 수 있어야 한다.
\end{itemize}

다음의 예에서 보는 것처럼

\verb|\usepackage[hardbold]{hangul,a4}|

\noindent
에서는 지정된 추가 선택 \verb|hardbold|를 두 꾸러미 \verb|hangul|과
\verb|a4|가 모두 처리할 수 있어야 합니다.  \verb|a4| 꾸러미는
\verb|hardbold|라는 추가 선택을 처리할 수 없으므로 착오가 발생하게
됩니다.  다음과 같이 각기 따로따로 지정하거나

\verb|\usepackage[hardbold]{hangul}|

\verb|\usepackage{a4}|

\noindent
아니면 문제가 되는 추가 선택 \verb|hardbold|을 \verb|\documentclass|에서
전역적 추가 선택으로 지정하면 착오가 발생하지 않습니다.

\verb|\begin{document}|

\noindent
로 문서를 시작하여 쓰고자 하는 글을 작성한 뒤

\verb|\end{document}|

\noindent
로 문서 작성을 마칩니다.

\begin{figure}[htbp]
  \begin{center}
      \begin{tabular}{|p{6cm}cp{4.5cm}|}\hline
        \verb|\documentclass[추가선택]{문서종류}| & & \\[10pt]
        \verb|\usepackage[추가선택]{hangul}| & $\leftarrow$ &
        \texttt{hangul} \textpg{꾸러미 대신} \texttt{hfont}
        \textpg{꾸러미를 쓸 수 있다.} \\
        \verb|\usepackage[추가선택]{꾸러미}| & $\leftarrow$ &
        \textpg{필요에 따라 사용될 각종} \texttt{꾸러미}\textpg{를
        지정한다.} \\
        $\ldots$ & $\leftarrow$ & \textpg{꾸러미뿐만 아니라 문자를
        출력하지 않는 다른 명령들을 여기에서 선언할 수 있다.} \\
        \verb|\begin{document}| & $\leftarrow$ & \textpg{이
        전까지를 전문(前文: pre\-amble)이라고 한다.} \\
        \ttfamily 나라의 말이 중국과 달라서 한자로는 서로 통하지
        아니하므로 이런 까닭으로 어리석은 백성들이 말하고자 하는 바가
        있어도 마침내 제뜻을 능히 펴지 못하는 사람이 많으니라.  내가
        이를 불쌍히 여겨 새로 스물여덟자를 만드나니 &
        $\leftarrow$ & \textpg{문서의 작성은 \textrm{\TeX}의 관습에
        따른다. 즉, 중첩된 공간 문자는 하나로 처리된다. 복귀 문자가
        한번 나오면 공간 문자로 처리되나, 두번 이상 중첩되면 하나의
        복귀 문자 역할을 한다. 등등.} \\
        \verb|\end{document}| & $\leftarrow$ & \textpg{이 명령이 나온
        후의 모든 문장은 무시된다.} \\\hline
      \end{tabular}
    \caption{\HLaTeX{} 문서의 기본 구조}
    \label{그림:문서틀}
  \end{center}
\end{figure}

이전에 작성한 문서는 \LaTeXe{}의 호환 방식을 통해
처리됩니다.\index{호환방식} 이 호환 방식은

\verb|\documentclass|

\noindent
대신

\verb|\documentstyle|

\noindent
로 문서를 시작하면 자동적으로 불러지는데 문서의 틀(format)은
기존의 \LaTeX209 때와 같은 식으로 됩니다. 글자체를 선택하는 방법도
구식이므로 문서를 짜는데 드는 시간이 더 길게 걸립니다.

이제 \verb|latex|으로 파일을 돌리면 됩니다.


\subsection{문서의 모양새 설정}
\label{소절:문서모양새}

\verb|\documentclass|는 전반적인 문서의 종류를 결정합니다.
\verb|문서종류|에는 \verb|article|, \verb|report|, \verb|book|,
\verb|letter|, \verb|slides|등이 있읍니다. 각 \verb|추가선택|에는 그
자체의 \verb|추가선택|들이 있읍니다. 즉, 종이의 규격을 설정하는
\verb|a4paper|, \verb|letterpaper|, $\cdots$ 및 글자의 크기를 정해주는
\verb|10pt|, \verb|11pt|, \verb|12pt| 등등. 이러한 문서 종류 설정은
일반 영문 \LaTeX{}와 같으므로
\cite{Kopka:LE91,Lamport:1985:LDP,Goosens:LC94}\를{} 참조하기 바랍니다.

위와 같이 \LaTeX{}에서 제공하는 기본적인 문서 종류 이외에 추가로
꾸러미를 사용하고자 할 경우에는 \verb|\usepackage|를 씁니다. 우리말의
처리와 같이, \LaTeX{}에서 제공되지 않는 기능을 쓸 경우에
\verb|hangul.sty|을 쓰는 것과 같읍니다. 각 꾸러미는 자체의
\verb|추가선택|이 있읍니다.  각종 꾸러미의 사용 방법 및
\verb|추가선택|의 종류는 \cite{Goosens:LC94}에 자세히 설명되어
있읍니다.

% \verb|hangul.sty|의 추가 선택에는 다음과 같은 것들이 있읍니다.
% \begin{itemize}
% \item 추가 선택 \verb|hanja|는 단원의 이름들을 한자로 표시한다.
% %\item 추가 선택 \verb|pshan|은 우리말 \PS{} 글자체를 사용하도록 한다.
% \item 추가 선택 \verb|hardbold|는 이미 만들어진 \verb|bfseries|의
%   글자체를 사용하고, \verb|softbold|는 \verb|bfseries| 글자체를
%   설치하지 않은 상태에서 \verb|mdseries|의 글자체를 사용하여 모듬
%   명령을 통해 \verb|bfseries|가 만들어지도록 한다.
% %\item 추가 선택 \verb|oldhan|은 \HLaTeX{}의 0.92e판까지 사용되던
% %  글자체로 문서를 작성할 때 필요하다.
% \item 추가 선택 \verb|nojosa|는 \TeX{}이 문서 처리할 때 기억 용량의
%   한계를 넘어서는 경우를 감안해서, 자동 조사 처리 기능을
%   마비시킴으로써 \HLaTeX{}에 필요한 기억 용량을 감소시킬 수 있도록
%   하는 용도로 쓰인다.
% \end{itemize}
% 아무 것도 지정하지 않으면 \verb|softbold|만 적용됩니다.

\verb|hangul.sty|대신에 \verb|hfont.sty|을 쓰면 문서 틀잡기가 우리말에
어울리는 한글화를 전혀 반영하지 않고 단순히 한글 및 한자, 상징 기호를
포함한 문서에서 우리말 처리가 제대로 될 수 있게
합니다.\index{\texttt{hfont.sty}} 추가 선택도 \verb|hangul.sty|과
같으나 의미상 \verb|hanja|는 무시됩니다.

\subsection{글자체 선택}
\label{글자체선택}\index{한글@\HLaTeX!글자체 선택}

문서를 작성할 때, 어떤 특정한 부분은 현재 쓰이고 있는 글자체와 구분을
해야 하는 경우가 생깁니다.  글자의 두께를 진하게 한다든지, 크기를 크게
한다든지, 다른 모양을 쓴다든지, 또는 설계(design)가 전혀 다른 글자체를
쓴다든지 등등.

이러한 글자체 바꿈을 위해 \LaTeX{}은 여러가지 글자체 바꿈 모듬
명령들을 제공합니다. \LaTeX209에서 제공했던 \verb|\rm|, \verb|\sf|,
\verb|\sl|, \verb|\it| 등등의 글자체 바꿈 모듬들은 모두가 같은
차원에서 글자체를 바꾸기 때문에 여러가지 단점을 가지고 있읍니다. 즉,
글자체의 설계가 \verb|\rm|과 다른 \verb|\sf|를 계속 써 오다가 그
글자체의 기울인 모양인 \verb|\sl|로 글자체를 바꾸면 \verb|\rm|의
\verb|\sl|이 됩니다.  이는 일단 글자체를 애초값으로 복귀시킨 후
글자체가 바뀌어지도록 되어 있기 때문입니다.  이러한 단점을 보완하기
위해 1989년부터 Frank Mittelbach와 Rainer Sch\"opf는 ``새로운 글자체
선택 방식''\textsf{(NFSS: New Font Selection Scheme)}을 고안하기
시작하여 현재 \LaTeXe{}에 채택되어 있는 \NFSS{}를 만들었읍니다.

\LaOm{ \HLaTeX{} 0.97판부터는 \HFSS(Hangul Font Selection
  Scheme)\index{HFSS}에 의해 우리말 글자체가 선택됩니다. \HFSS{}는
  \NFSS{}를 한글화한 것입니다.}
{Λ에서는 우리말의 글자체 선택이 영문과 같이 \NFSS{}에 의해 처리됩니다.}


\subsubsection{영문 글자체 선택 방법}

\NFSS{}는 글자체를 다섯가지 요소로 구분하여 이 요소들을 각각
독립적으로 선택할 수 있게 합니다.\index{NFSS2} 그 다섯가지 요소는
다음과 같읍니다.

\begin{description}
\item[글자체 부호화(encoding)] 다른 알파벳을 쓸 때 각 나라별로
  \verb|codepage|가 정해져 있읍니다. \LaTeX{}에서는 다른 프로그램와
  마찬가지로 각 글자와 0--255 사이의 글자체 위치를 연관시킴으로써 이를
  해결합니다.  \LaTeX{}에서는 이를 ``부호화 방법''으로 명합니다.
\item[글자체 가족(family)] 한 글자체 가족은 공통의 설계 원칙을
  갖습니다.  가족내에서는 크기(size)와 무게(weight), 폭(width),
  모양(shape)으로 구성원이 구별됩니다.
\item[글자체 모양(shape)] 글자체 가족의 구성원을 구별하는 중요한
  속성으로서 ``\textup{곧은(upright) 모양}''과
  ``\textit{이탤릭(italic) 모양}'' ``\textsl{기울인(slanted) 모양}''
  혹은 대문자의 크기를 70\%정도로 축소하여 소문자로 쓰는
  ``\textsc{작은키(Small Caps) 모양}''등으로 구별됩니다. 글자체 모양에
  있어서 그 중요도는 떨어지지만 ``외곽형(outlined) 모양''과
  ``그림자(shaded) 모양'' 및 ``곧은 이탤릭(upright italic) 모양'' 등도
  글자체 모양에 속합니다.
\item[글자체 무게(weight) 및 폭(width)] 무게와 폭은 서로의 조합으로
  하나의 글자체 속성을 형성합니다. 무게는 글자의 두께로서 결정되며
  ``보통 두께(medium)'', ``가벼운 두께(light)'', ``무거운 두께(bold)''
  $\ldots$ 등으로 나뉩니다. ``가벼운 두께''에도 ``아주 가벼운
  두께(extra light)'', ``매우 가벼운 두께(ultra light)'', ``보통
  가벼운 두께(light)'', ``약간 가벼운 두께(semi light)'' 등등으로
  분리되며 ``두꺼운 두께''도 이런식으로 세분됩니다. 폭은 ``보통의
  폭(medium width)'', ``확장된 폭(extended width)''등이 있읍니다.
\item[글자체 크기(size)] 글자체 크기는 인쇄기의 점을 단위로
  표현됩니다. 인쇄기의 점은 \TeX{}에서 \verb|pt|라는 단위를 쓰며
  1인치는 72.27\texttt{pt}입니다.  \LaTeX{}에서는 글자체 크기가 1.2의
  승으로 구별됩니다. 이렇게 정한 배경에는 후에 축소 복사를 할 때의
  편이함이 들어있읍니다. 즉 A5 크기의 책자를 만들 경우, A4 종이에
  $1.44=\sqrt2$의 글자체 크기를 선택합니다.
\end{description}

글자체 선택에는 명령형과 선언형이 있읍니다. 명령형은
\verb|\textbf{...}|와 같이 한가지 변수를 요구하며, 선언형은
\verb|\bfseries|와 같이 변수를 요구하지 않읍니다. 선언형은 다음과 같이
환경 형태로도 쓰일 수 있읍니다.

\smallskip
\begin{tabular}{|m{55mm}cm{5cm}|}\hline
  \begin{verbatim}몇몇 단어들은 \begin{bfseries}
두껍게 \end{bfseries}
인쇄됩니다.\end{verbatim}
  & $\Rightarrow$ &
  몇몇 단어들은 \begin{bfseries} 두껍게 \end{bfseries}
  인쇄됩니다. \\\hline
\end{tabular}

\smallskip
문서의 애초 글자체는 \verb|\textnormal|이나 \verb|\normalfont|로
선택되며, 이 명령/선언은 문서의 글자체를 애초화시킴으로써 항상 같은
모양을 선택할 수 있게 합니다.

문서의 글자체 가족은 로만(roman) 글자체와 산세리프(sans serif) 글자체
그리고 타자(typewriter) 글자체가 있읍니다.  이들은 각각 다음의
명령형과
\begin{verbatim}
\textrm \textsf \texttt
\end{verbatim}
선언형으로
\begin{verbatim}
\rmfamily \sffamily \ttfamily
\end{verbatim}
선택됩니다.  로만 글자체는 일반적으로 문서의 기본 글자체로 선언되어
있읍니다.

문서의 글자체 시리즈(series)는 폭과 두께의 두 요소로 구성되며, 다음과
같은 명령 및 선언형이 있읍니다.
\begin{verbatim}
\textmd   \mdseries
\textbf   \bfseries
\end{verbatim}
애초값은 \verb|\textbf|가 확장된 두꺼운 두께(bold extended)이고
\verb|\textmd|는 보통의 폭과 보통의 두께입니다.

글자체 모양은 애초값인 곧은 모양을 비롯하여 이탤릭 모양, 작은키
모양, 기울인 모양이 있는데 이들은 각각 다음의 명령/선언형으로
선택됩니다.
\begin{verbatim}
\textup   \upshape
\textit   \itshape
\textsc   \scshape
\textsl   \slshape
\end{verbatim}
이 중에 이탤릭 모양과 곧은 모양 사이의 전환은 \verb|\emph| 명령 및
\verb|\em| 선언으로 이루어집니다.


글자체 크기는 10가지의 선언형이 있읍니다. (명령형은 없읍니다.)

\noindent
\begin{tabular}{ll}
\verb|\tiny|         & \tiny 미소한 크기       \\
\verb|\scriptsize|   & \scriptsize 각본철 크기 \\
\verb|\footnotesize| & \footnotesize 주석 크기 \\
\verb|\small|        & \small 작은 크기        \\
\verb|\normalsize|   & \normalsize 보통 크기   \\
\verb|\large|        & \large 큰 크기          \\
\verb|\Large|        & \Large 좀더 큰 크기     \\
\verb|\LARGE|        & \LARGE 아주 큰 크기     \\
\verb|\huge|         & \huge 거대한 크기       \\
\verb|\Huge|         & \Huge 아주 거대한 크기  \\
\end{tabular}

\vspace{10pt} 위와 같은 외형 글자체 바꿈 명령들의 행동 방식은 내형
글자체 바꿈 명령에 의해 달라집니다.\index{외형 글자체 바꿈
  명령}\index{내형 글자체 바꿈 명령} 예를들어
\begin{verbatim}
\renewcommand{\familydefault}{cmss}
\end{verbatim}
와 같은 내형 글자체 바꿈 명령을 쓰면 문서의 주 글자체 가족이
\verb|cmss|(Computer Modern Sans)로 바뀜으로써 주석 및 머릿말 등,
외형 글자체 바꿈 명령만으로는 바뀌지 않는 부분까지의
글자체 가족이 영향을 받읍니다.

\LaTeX{}에서 애초값은 다음 표와 같이 설정되어 있읍니다.

\smallskip
\begin{tabular}{>{\ttfamily}l@{\quad}>{\ttfamily}l}\hline
\textmj{내형 글자체} & \textmj{애초값} \\\hline
\verb|\encodingdefault| & OT1 \\[3pt]
\verb|\familydefault| & \verb|\rmdefault| \\
\verb|\seriesdefault| & m \\
\verb|\shapedefault| & n \\[3pt]
\verb|\rmdefault| & cmr \\
\verb|\sfdefault| & cmss \\
\verb|\ttdefault| & cmtt \\[3pt]
\verb|\bfdefault| & bx \\
\verb|\mddefault| & m \\[3pt]
\verb|\itdefault| & it \\
\verb|\sldefault| & sl \\
\verb|\scdefault| & sc \\
\verb|\updefault| & n \\\hline
\end{tabular}


\subsubsection{우리말 글자체 선택 방법의 개요}


\underline{\LaTeX{}을 쓸 때}

\medskip
\HFSS{}는 \NFSS{}를 바탕으로 하고 있고 우리말 부호화의 특성에 따라 새로운
\verb|\hfontencoding|과 \verb|\hfontfamily|가 추가 되었으며
글자체 선택 방식도 우리말 글자체에 맞도록 변경되었읍니다.
\begin{description}
\item[글자체 부호화] 우리말의 부호화는 \verb|H|로 설정되어 있고
  \NFSS{}에서 사용되는 글자체 부호화 설정 모듬 명령
  \verb|\fontencoding|을 우리말화한 \verb|\hfontencoding|을 씁니다.
  우리말 글자체의 부호화는 사용자의 입장에서 볼 때 달리 설정할 이유가
  없고, 영문 부호화와의 구별에 그 주 목적이 있으며 \HFSS{}의 작동시
  우리말 글자체의 선택을 우리말에 맞게 하도록 하는 기능을 합니다.
\item[글자체 가족] \NFSS{}에서와 같이 우리말의 글자체 가족은 글자체의
  설계 원칙에 따라 구분이 되고, 우리말의 특성에 의해 두 요소로
  표현되게 됩니다.

  첫번째 요소는, \verb|\kscfamily|로서 우리말의 상징 문자와 한글 및
  한자를 구별합니다. 이 모듬도 사용자의 입장에서는 쓸 일이 거의
  없고, 주로 \HLaTeX{}의 내부 처리 과정에서 사용됩니다.

  두번째 요소는 우리말의 글자체 가족을 나타내는
  \verb|\hfontfamily|로서 우리말의 글자체 가족을 바꿀 때 사용자가
  직면하게 되는, 실질상 우리말의 글자체 가족을 대표하는 요소입니다.
\item[글자체 무게 및 폭] 작동 방식과 내용이 \NFSS{}와 동일합니다.
  추가된 사항은 글자체 시리즈의 접두사 \verb|S|로서 이는 우리말의
  \verb|\bfseries|가 \verb|softbold|로 처리되도록 합니다.
\item[글자체 모양] \NFSS{}와 같읍니다.
\item[글자체 크기] \NFSS{}와 같읍니다.
\end{description}

\noindent
\underline{Λ를 쓸 때}

\medskip
\LaTeX{}을 쓸 때와 다른 점은 다음과 같습니다.
\begin{description}
\item[글자체 부호화] 우리말의 부호화는 \verb|UHC|로 설정되며
  \verb|\hfontencoding|은 없읍니다.
\item[글자체 가족] 모듬 명령 \verb|\kscfamily|나 \verb/\hfontfamily/는
  없고 영문과 같이 \verb|\fontfamily|만 사용됩니다.
\end{description}

\subsubsection{우리말 글자체의 가족 선택}


\underline{\LaTeX{}을 쓸 때}

\medskip
KS X 1001의 부호 체계에 의한 상징 문자/한글/한자의 가족 구분은 글자의
부호값으로 정해지므로 특별한 명령/선언 모듬을 필요로하지 않읍니다.
단지 미래에 추가될 수도 있는 가능성을 위해 혹은 운영 체계 관리자를
위해, 설치된 \HLaTeX{}의 특성에 따라 다음의 모듬으로 상징
문자/한글/한자를 구분 설정할 수 있도록 하였읍니다.
\begin{verbatim}
  \kscfamily{상징문자}{한글}{한자}
\end{verbatim}
이는 각각
\begin{verbatim}
\symboldefault
\hanguldefault
\hanjadefault
\end{verbatim}
로 설정되어 있으며 그 값은 각각 \verb|s|, \verb|w|, \verb|h|입니다.

우리말 문서에서의 실질적인 『우리말 글자체 가족』은
\begin{verbatim}
  \textmj  \mjfamily
  \textgt  \gtfamily
  \texttz  \tzfamily
\end{verbatim}
로 선택되며 이들은 각각
\begin{verbatim}
  \textrm  \rmfamily
  \textsf  \sffamily
  \texttt  \ttfamily
\end{verbatim}
와 같은 작용을 합니다. (왼쪽은 명령형, 오른쪽은 선언형)

위와같은 모듬들은 우리말 가족을 바꾸어 주는 모듬
\verb|\hfontfamily|를 사용합니다.
\begin{verbatim}
  \hfontfamily{우리말가족}
\end{verbatim}
% \verb|우리말가족|에는 다음과 같은 글자체가 있읍니다. (*표는 UHC
% 글자체를 설치했을 때 사용할 수 있음을 표시하고 **표는 완성형 글자체를
% 설치했을 때를 의미하며 ***표가 있는 새명조 글자체는 완성형 글자체에
% 있으나, \verb/\hfontfamily/로 선택하기 보다는 \verb/\mjdefault/를
% 재정의해서 사용하는 것이 바람직합니다.)
\verb|우리말가족|에는 다음과 같은 글자체가 있읍니다. (*표는 문화부
글자체에 있음을 표시하고 **표는 문화부 글자체에만 있음을 표시합니다.)

\smallskip
\begin{tabular}{|>{\ttfamily}ll>{\ttfamily}ll>{\ttfamily}ll|}\hline
  \multicolumn{6}{|l|}{기본가족:}\\
  mj  & (명조*)    & gt  & (고딕*)    & tz  & (타자)     \\\hline
  \multicolumn{6}{|l|}{추가가족:}\\
  gr  & (그래픽)   & gs  & (궁서*)    & gh  & (궁흘림**) \\
  mg  & (목각**)   & pg  & (필기)     & yt  & (옛글)     \\
  bm  & (봄글씨)   & pn  & (펜글씨)   & ph  & (펜흘림)   \\
  sh  & (신문)     &     &            &     &            \\
  jmj & (자모명조) & jgt & (자모고딕) & jnv & (자모노벨) \\
  jsr & (자모소라) &     &            &     &            \\\hline
\end{tabular}

(완성형 글자체를 쓸 때에 사용되던 \texttt{ol}(외곽)과
\texttt{sm}(새명조)는 삭제되었읍니다.  타자체는 \texttt{tt}에서
\texttt{tz}으로 바뀌었고 자모 글자체들은 \texttt{m??}에서
\texttt{j??}로 바뀌었읍니다.)

\smallskip 위와 같은 우리말 가족들은 상징 문자/한글/한자의 세 가족을
대표하는 외형 가족으로서, 문서에서 \verb|우리말가족|을 \verb|tz|으로
지정하였을 경우 \HLaTeX{}은 한글/상징 문자/한자의 순으로 각각
\begin{verbatim}
 wtt, wtt, wtt
\end{verbatim}
의 내형 가족을 쓰도록 되어 있읍니다.  외형 가족과 내형 가족의 연관은
사용자가 다음의 모듬 명령으로 문서의 어디에서든지 변경할 수
있읍니다.\index{\verb/\MapHangulFamily/}\index{외형 가족}
\begin{verbatim}
 \MapHangulFamily{외형가족}{한글가족,상징문자가족,한자가족}
\end{verbatim}
\verb|tz|의 경우 \verb|내형가족|과의 연관은 다음과 같은 선언으로
이루어집니다.
\begin{verbatim}
 \MapHangulFamily{tz}{wtt,wtt,wtt}
\end{verbatim}

% 완성형 \PS{} 글자체는 내형 가족 앞에 \verb|p|를 두므로써 선택됩니다
% \footnote{\HLaTeX{} 0.98판부터는 \texttt{hangul.sty}의 추가 선택
%   \texttt{pshan}이 없읍니다.}.
% \begin{verbatim}
%  \MapHangulFamily{mj}{psm,pgt,pgt}
% \end{verbatim}

\verb|\textmj|는 우리말의 기본 글자체로 선언되어 있고 호환성과 편의를
위해 아래와 같은 추가 모듬이 정의되어 있읍니다.
\begin{verbatim}
 \textgr  \grfamily
 \textgs  \gsfamily
 \textmg  \mgfamily
 \textyt  \ytfamily
 \textbm  \bmfamily
 \textpn  \pnfamily
\end{verbatim}
\HLaTeX{} 0.98까지 사용되던 완성형 글자체의 \verb/\smfamily/와
\verb/\olfamily/ 및 UHC 글자체의 \verb/\shfamily/는 삭제되었고 펜흘림
글자체를 선택하는 모듬 \verb/\phfamily/는 만들지 않았읍니다.  이와
같은 추가 모듬의 사용은 되도록 피하도록 하고 대신에
\verb/\hfontfamily{외형가족}/을 쓰거나 \ref{소절:우리말모듬}에
설명하는 우리말 모듬 명령을 쓰시기 바랍니다.

\underline{Λ를 쓸 때}

\medskip
Λ를 쓸 때는 UHC 글자체만 사용되며 한 글자체에 상징문자와 한글 및
한자가 모두 들어 있읍니다.  그래서 \LaTeX{}을 쓸 때와는 달리
상징문자/한글/한자를 구분하는 모듬 명령은 필요없읍니다.  글자체의 수는
완성형 글자체에 비히 적습니다.  앞으로는 완성형 글자체를 없애고
UHC 글자체만 사용할 수 있도록 할 방침입니다.

다음과 같은 모듬 명령은 없읍니다.
\begin{verbatim}
  \kscfamily{상징문자}{한글}{한자}
  \symboldefault
  \hanguldefault
  \hanjadefault
  \MapHangulFamily
\end{verbatim}

글자체의 가족은 \verb|\fontfamily|로 바꿀 수 있으며 사용할 수 있는
글자체 가족과 모듬 명령은 다음과 같습니다.
\begin{verbatim}
  mj    \textmj  \mjfamily
  gt    \textgt  \gtfamily
  tz    \texttz  \tzfamily
  gr             \fontfamily{gr}\selectfont
  gs             \fontfamily{gs}\selectfont
  sh             \fontfamily{sh}\selectfont
  pg             \fontfamily{pg}\selectfont
  pn             \fontfamily{pn}\selectfont
  ph             \fontfamily{ph}\selectfont
  bm             \fontfamily{bm}\selectfont
  jmj            \fontfamily{jmj}\selectfont
  jgt            \fontfamily{jgt}\selectfont
  jnv            \fontfamily{jnv}\selectfont
  jsr            \fontfamily{jsr}\selectfont
\end{verbatim}
\LaTeX{}의 경우와 같이 기본 글자체 이외의 글자체에 해당하는
\verb/\text??/와 \verb/\??family/ 모듬의 사용은 회피하고
\ref{소절:우리말모듬}의 우리말 모듬 명령을 사용하시기 바랍니다.

\subsubsection{우리말 글자체 시리즈}


\underline{\LaTeX{}을 쓸 때}

\medskip
문서의 글자체 시리즈는 \NFSS{}가 그대로 적용되며 \LaTeX{}을 쓸 때는
\HLaTeX\ 0.96판까지 사용되었던 \verb|softbold|를 위해 글자체 시리즈의
접두사 \verb|S|가 추가되어 보통 두께의 글자체를(\verb|mdseries|) 세번
중첩 인쇄하는 기능을 합니다.\index{\verb/softbold/} 그러므로 \LaTeX{}
문서에서 다음의 명령은
\begin{verbatim}
  \renewcommand{\bfdefault}{Sbx}
혹은
  \fontseries{Sbx}
\end{verbatim}
우리말의 두께를 \verb|softbold|로 처리하도록 하며 영문 글자체는
\verb|bx|가 되도록 합니다. \verb|hangul.sty|의 추가 선택
\verb|softbold|은 위와 같은 기능을 애초값으로 정해줍니다.

\underline{Λ를 쓸 때}

\medskip
\texttt{softbold}의 기능이 없고 \PS{} 두꺼운 글자체가
사용됩니다.  이 UHC 글자체를 쓰면 글자체 시리즈를 구성하는 두 요소
(넓이와 무게)가 구분되며, 넓이는 다음의 네가지 종류가 구분되고
\begin{itemize}
\item \verb|c| (가로 축소 75\%)
\item \verb|m| (보통 넓이 100\%)
\item \verb|x| (가로 확대 125\%)
\item \verb|ux| (가로 확대 200\%)
\end{itemize}
무게는 \verb|m| (보통 무게)와 \verb|b| (진한 무게)의 두 종류가
있읍니다.  예를 들어 가로로 두배 확대한 두꺼운 글자체를 쓸 때는 다음과
같은 명령을 줍니다.
\begin{verbatim}
  \fontseries{bux}
\end{verbatim}



\subsubsection{우리말 글자체의 모양과 크기}

우리말 글자체의 모양/크기는 \NFSS{}와 같읍니다.


\subsubsection{우리말 글자체의 애초값}

문서의 애초 글자체는 \NFSS{}와 같이 다음의 명령/선언형으로 선택됩니다.
\begin{verbatim}
 \textnormal   \normalfont
\end{verbatim}
\HLaTeX{}에서 애초값은 다음과 같이 설정이 되어 있읍니다.
\begin{verbatim}
                     \LaTeX      Λ
  \hencodingdefault  H
  \encodingdefault               UHC
  \symboldefault     s
  \hanguldefault     w
  \hanjadefault      h
  \mjdefault         mj          mj
  \gtdefault         gt          gt
  \tzdefault         tt          tz
  \hfamilydefault    \mjdefault
  \familydefault                 \mjdefault
\end{verbatim}
\LaOm{위와 같은 애초값들은 운영 체계 관리자가 \texttt{hfont.cfg}에서
  변경 설정할 수 있고, 사용자도 문서의 서두에서 재정의할 수 있읍니다.}
{Λ에서는 일반적으로 \LaTeX{}을 사용할 때에 하는 방법으로 재정의합니다.}


\subsubsection{그외 우리말 글자체의 모듬}
\label{소절:우리말모듬}

\HLaTeX{} 0.96판까지 써 오던 두 글자로 구성되는 글자체 바꿈 모듬은
기본 글자체 이외에는 모두 삭제되었읍니다.  이들은 \LaTeX209식의 글자체
바꿈 명령에 해당하며 사용을 회피하는 것이 좋습니다.
\begin{verbatim}
  \mj
  \gt
  \tz
\end{verbatim}

그 반면에 우리말로 구성되는 글자체 바꿈 명령은 글자체의 가족을
선택하는 선언형으로서 계속 존재합니다.
\begin{verbatim}
           완성형           UHC               Λ
  \명조    \mjfamily        \mjfamily         \mjfamily
  \고딕    \gtfamily        \gtfamily         \gtfamily
  \타자    \tzfamily        \tzfamily         \tzfamily
  \그래픽  \hfontfamily{gr} \hfontfamily{gr}  \fontfamily{gr}
  \궁서    \hfontfamily{gs} \hfontfamily{gs}  \fontfamily{gs}
  \필기    \hfontfamily{pg} \hfontfamily{pg}  \fontfamily{pg}
  \목각    \hfontfamily{mg}
  \옛글    \hfontfamily{yt}
  \봄글씨  \hfontfamily{bm} \hfontfamily{bm}  \fontfamily{bm}
  \펜글씨  \hfontfamily{pn} \hfontfamily{pn}  \fontfamily{pn}
  \펜흘림  \hfontfamily{pn} \hfontfamily{pn}  \fontfamily{pn}
  \신문                     \hfontfamily{sh}  \fontfamily{sh}
\end{verbatim}

\underline{\LaTeX{}을 쓸 때}

\medskip
\verb|\usefont|는 \NFSS{}의 모듬 명령으로서 글자체의 부호화와 가족,
시리즈 및 모양을 한번에 정할 수 있도록 합니다.
\begin{verbatim}
  \usefont{부호화}{가족}{시리즈}{모양}
\end{verbatim}
이 모듬에서 첫번째 변수인 글자체 부호화가 \verb|\hfontencoding|과 같을
경우에는 두번째 변수를 \verb|\hfontfamily|로 취급합니다.  그러므로
다음의 선언은
\begin{verbatim}
  \usefont{H}{gs}{m}{n}
\end{verbatim}
우리말 글자체중 궁서체의 보통 두께, 보통 모양을 쓰도록 합니다. 이때
영문의 경우도 두께와 모양에서 우리말을 따르게 됩니다.

다음과 같은 명령은 \NFSS{}에 대응하는, 우리말을 위한 선언으로서
\HFSS{}의 작동에 필수불가결한 모듬입니다.  이들은
\verb|\begin{document}|전에서만 선언할 수 있는 성질의 것인 만큼,
  사용자의 입장에서는 보통의 경우 신경쓰지 않아도 됩니다.
\begin{verbatim}
\DeclareErrorHFont{부호화}{가족}{두께}{모양}{크기}
\DeclareHFontSubstitution{부호화}{가족}{두께}{모양}{크기}
\end{verbatim}

\underline{Λ를 쓸 때}

\medskip \NFSS{}의 모듬을 그대로 사용하며, 다음과 같이 선언되어
있읍니다.
\begin{verbatim}
\DeclareFontEncoding{UHC}{}{}
\DeclareErrorFont{UHC}{mj}{m}{n}{10}
\DeclareFontSubstitution{UHC}{mj}{m}{n}
\end{verbatim}


\subsection{우리말 숫자 모듬}
\label{소절:숫자 모듬}

\HLaTeX{}에서는 우리말 숫자를 숫자 환경에서\index{한글@\HLaTeX!모듬
  명령!숫자} 쓸 수 있도록 우리말 숫자 모듬을 제공합니다. 우리말
숫자 모듬에는 다음과 같은 것들이 있읍니다.

\begin{verbatim}
\jaso(ㄱㄴㄷㄹ)  \gana(가나다라)
\ojaso(㉠㉡㉢㉣) \ogana(㉮㉯㉰㉱)
\pjaso(㈀㈁㈂㈃) \pgana(㈎㈏㈐㈑)
\onum(①②③④)  \pnum(⑴⑵⑶⑷)
\oeng(ⓐⓑⓒⓓ)  \peng(⒜⒝⒞⒟)
\hnum(하나둘셋)  \Hnum(첫째둘째)
\end{verbatim}
예를들어, 다음과 같이 정의를 하면
\begin{verbatim}
\renewcommand{\labelenumi}{\gana{enumi})}
\renewcommand{\labelenumii}{\jaso{enumii}.}
\renewcommand{\labelitemi}{☞}
\end{verbatim}
\begin{tabular}[c]{|m{45mm}cm{4cm}|}
\multicolumn{1}{l}{다음의 원전(text)은} & &
\multicolumn{1}{l}{이렇게 나타납니다.} \\\hline
\begin{verbatim}
\begin{enumerate}\고딕
\item 한글
  \begin{enumerate}
  \item 현대어
  \item 고어
  \end{enumerate}
\item 漢字
  \begin{enumerate}
  \item 國語
  \item 中國語
  \item 日本語
  \end{enumerate}
\item 상징 기호
  \begin{itemize}
  \item ㉿
  \item ￦
  \item ㅫ
  \end{itemize}
\end{enumerate}
\end{verbatim}%
& $\Rightarrow$ &
\renewcommand{\labelenumi}{\gana{enumi})}
\renewcommand{\labelenumii}{\jaso{enumii}.}
\renewcommand{\labelitemi}{☞}
\begin{enumerate}\고딕
\item 한글
  \begin{enumerate}
  \item 현대어
  \item 고어
  \end{enumerate}
\item 漢字
  \begin{enumerate}
  \item 國語
  \item 中國語
  \item 日本語
  \end{enumerate}
\item 상징 기호
  \begin{itemize}
  \item ㉿
  \item ￦
  \item ㅫ
  \end{itemize}
\end{enumerate} \\\hline
\end{tabular}


\subsection{우리말 자동 조사 처리}
\label{소절:자동조사처리}\index{자동 조사 처리}

\verb|\ref|나 \verb|\pageref| 그리고 \verb|\Alph|, \verb|\alph|,
\verb|\roman| 등을 사용하면 숫자가 자동 생성됩니다. 이 경우 문서를
작성하고 있는 순간에는 어떤 숫자가 참조 숫자로 등장하게 될 지를 알 수
없읍니다. 그러므로 그 다음에 오게 되는 조사가 예를 들어 `\verb|가|'가
될 지 아니면 `\verb|이|'가 될 지를 결정할 수 없읍니다.   \HLaTeX\
0.96판부터는 이런 조사를 자동 처리할 수 있도록 했읍니다. 이러한 자동
조사 처리 기능\index{자동 조사 처리!숫자}이 필요한 조사는 다음과
같읍니다.
\begin{verbatim}
은/는 이/가 을/를 와/과 으로/로 으로서/로서 으로써/로써
\end{verbatim}
이를 처리해 주는 모듬은 각각
\begin{verbatim}
\은/\는 \이/\가 \을/\를  \와/\과 \으로/\로 \으로서/\로서 \으로써/\로써
\end{verbatim}
입니다.

\verb|\cite|의 경우 \verb|plain.bst| 모양새 파일을 쓰면 인용의
이름표가 숫자로 표현되고 \verb|halpha.bst| 모양새 파일을 쓰면 인용의
이름표가 문자열로 표현됩니다\footnote{\texttt{alpha.bst}를 쓰면
  우리말이 깨집니다.}.\index{자동 조사
  처리!인용}\index{\verb/halpha.bst/} 후자의 경우, \HLaTeX{}은 자동
조사 처리 기능을 쓰는데 있어서 문자열에 다음과 같은 제한을 두고
있읍니다.
\begin{enumerate}
\item 문자열은 두 바이트 이상이어야 한다. (\verb|halpha.bst|를 쓰면
  문자열은 보통 다섯 글자 이상이 됩니다. 우리말은 한 글자가 두
  바이트로 구성되어 있으므로 우리말 한 글자는 문제의 대상에서
  제외됩니다.)

  \begin{tabular}[c]{|lcp{5cm}|}\hline
    옳음: \verb|\bibitem[HKD]{홍길동}...| & & \\
    틀림: \verb|\bibitem[H]{홍길동}...| & $\leftarrow$ &
    \textpg{이름표 \texttt{H}는 한 바이트이므로 착오를 발생시킨다.}
    \\\hline
  \end{tabular}

  본문에서 \verb|\cite{홍길동}\을|이라 하면 \verb|[HKD]를|으로 찍힙니다.
\item 문자열의 마지막 글자는 한글과 한자, 우리말 자소, 숫자 그리고
  영문자로 구성된다. (즉, 자소를 제외한 상징 기호는 자동 조사 처리에서
  고려의 대상이 되지 않는다.\footnote{상징 기호가 인용의 이름표로 나올
    일이 없을 것으로 생각합니다.} 다시 말하자면, 조사 처리는 작동하나
  그 결과는 문법에 맞지 않을 수 있다. 처리된 조사는 `ㄹ'로 끝나지 않는
  종성인 것으로 간주된다.)
\item 문자열의 마지막 글자가 영문자일 경우에, 자동 조사 처리 기능은
  단어의 발음을 고려하지 않고 마지막 문자의 발음으로 조사를 결정한다
  \footnote{모든 영어 단어의 우리말 발음을 올바로 분석하기는
    실질상으로 매우 힘듭니다.}.

  \begin{tabular}[c]{|lcp{4.5cm}|}\hline
    옳음: \verb|\bibitem[set]{홍길동}...| & $\leftarrow$ &
    \textpg{영문자 이름표 \texttt{set}는 마지막 글자 \texttt{t}에 의해
      조사가 결정된다. \texttt{t}는 발음이 중성으로
      끝난다. \texttt{set}의 우리말 표현은 \texttt{세트}로서 역시
      중성으로 끝난다.} \\
    틀림: \verb|\bibitem[ping]{홍길동}...| & $\leftarrow$ &
    \textpg{영문자 이름표 \texttt{ping}은 마지막 글자 \texttt{g}에
      의해 조사가 결정된다. \texttt{g}는 발음이 중성으로
    끝난다. \texttt{ping}의 우리말 표현은 \texttt{핑}으로서
    종성으로 끝난다.} \\\hline
  \end{tabular}

  본문에서 \verb|\cite{홍길동}\로|라고 하면, 위의 경우
  \verb|[set]로|라고 인쇄되고 아래의 경우는 \verb|[ping]로|
  인쇄된다.
\end{enumerate}

\verb|halpha.bst|를 사용할 경우에 인용의 부호는 저자의 이름중 앞
세글자와 책이 출판된 연도의 뒷 두 숫자로 구성되거나 (저자가 한명일
때), 첫번째 등장하는, 최대한 3명의 저자 이름중 첫 글자와
\verb+\etalchar+ 그리고 책이 출판된 연도의 뒷 두 숫자로 구성되므로
(저자가 여러명일 경우) 세번째의 제한은 무시될 수 있읍니다.  보통의
경우에도 \verb|cite|의 이름표(label)는 일련 번호이거나
(\verb|plain.bst|) \verb|저자이름+책출판년도|를 약식으로 표현합니다
(\verb+halpha.bst+).  그러므로 보통은 발생하기 힘든 경우에 해당합니다.
그러나 참고 문헌 작성시에는 이런 사실을 알고 있으므로써, 발생할
가능성이 있는 착오를 사전에 방지하는 것이 좋습니다.

색인 작성시에 \verb|makeidx.sty|을 쓰면 \verb|\see| 명령이 정의됩니다.
이 명령을 쓸 때는 \verb|\see|의 변수가 빈 칸을 포함하게 되면 자동 조사
처리 기능에 의해 착오가 발생합니다. 빈칸 대신에 \verb|~|나 \verb|\ |을
쓰면 아무런 문제가 없읍니다.\index{자동 조사 처리!색인} 예:

\smallskip\noindent
\begin{tabular}[c]{|lp{47mm}cp{5cm}|}\hline
  옳음: & \verb!\index{절|see{첫장~첫절}}!
  \verb!\index{절|see{첫장\ 첫절}}! &
  $\leftarrow$ & \필기 `\verb|~|'나 `\verb|\ |'는
    모두 빈 칸을 의미한다. `\verb|~|'는 앞뒤의 단어를 같은
    줄에 출력하도록 하고 `\verb|\ |'는 다른 기능없이 빈 칸만
    출력한다. \\
  틀림: & \verb!\index{절|see{첫장 첫절}}! & & \\\hline
\end{tabular}

\verb+출력:+ 첫장 첫절\textit{\seename}

\verb|\pagename|, \verb|\chaptername|과 같이 우리말화 한글 이름들도
자동 조사 처리를 할 수 있읍니다.  그러므로 `\verb|\pagename\가|'라고
쓰면 `\pagename\가'라고 출력됩니다.

\subsection{우리말 색인 처리}
\label{소절:색인작성}\index{우리말 색인 작성}

우리말의 색인 작성은 \verb|EUC-KR| 부호 체계로 만들어진 \verb|.idx|
파일을 쓰는 것을 원칙으로 합니다.  이는 \texttt{latex}이 8비트 문자를
출력할 수 있어야 합니다\footnote{8비트 문자 출력에 대해서는 소절
  \ref{소절:모듬파일설치}의 마지막 부분을 보십시요.}.  이 \verb|.idx|
파일의 차례짓기(sort)는 \verb|makeindex|로 합니다. 이러한 목적으로
\HLaTeX{}에서는 \verb|makeindex|에 필요한 색인 모양새 파일
\verb|hind.ist|를 준비하였으며 \verb|makeindex|를 사용할 때 다음과
같은 명령을 쓰도록 합니다.\index{\verb/hind.ist/}
\begin{verbatim}
makeindex -s hind <문서이름>
\end{verbatim}
\verb|makeindex| 자체는 글자를 차례짓기하는데 있어서 우리말을 제대로
인식하지 못합니다. 그저 단순히 영문 ASCII 부호 체계의 순서에 의해
글자를 차례짓기합니다.  우리말은 ASCII 부호값이 161에서 시작하므로
영문의 색인이 영문자별로 구분되어 맨앞에 나타나고 우리말은 우리말 부호
체계의 값에 따라 구분되어 영문에 이어 자소의 구분없이 나타납니다.
\verb|hind.ist|는 우리말 상징 기호와 한자를 각각 하나의 집단으로
처리하고 한글은 자소에 의해 나뉘도록 합니다. 그리고 영문은 알파벳으로
구분되어 목록이 작성되고 한글은 자소에 의해 목록이 작성됩니다.  영문
영역에 나타날 우리말을 우리말의 자소에 의해 구분되는 한글 영역으로
옮기기 위해서는 문서에서 다음과 같이 \verb|\index|를 명령을 씁니다.

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

\smallskip
색인 목록의 머릿글자 틀은 해당하는 자소가 `【'와 `】'사이에 두꺼운
글씨체로 쓰입니다. 이 『\HLaTeX\ 길잡이』에서 사용된 색인 목록의
머릿글자는 다음과 같은 정의에 의해
식자되었읍니다.\index{\verb/\hindexhead/}
\begin{verbatim}
\newcommand\hindexhead[1]{【{\bfseries#1}】\hfil}
\end{verbatim}
이 \verb|\hindexhead|를 \verb|\renewcommand|로 재정의하면 색인 목록의
머릿글자틀을 원하는대로 변화시킬 수 있읍니다.

색인 작성과 같은 방법으로 작동되는 어휘(glossary)는 원래 \LaTeX{}에서
제공되지 않읍니다.\index{어휘 환경} 그러므로 어휘를 작성할 때에는
사용자가 직접 어휘 환경을 정의해야 합니다. \HLaTeX{}에서는 우리말 문서
작성의 편의를 위해 나름대로 적당한 어휘 환경을 제공합니다.  그러므로
사용자가 직접 어휘 환경을 정의하고자 할 때는 \verb|theglossary| 환경을
\verb|\renewenvironment|로 재정의 하여함을 유의합니다. 색인 작성에
쓰이는 \verb|\printindex|와 동등한 역할을 하는 \verb|\printglossary|는
확장자가 \verb|.gls|인 파일을 읽도록 되어 있읍니다. 그러므로 어휘를
차례짓기할 때에는 다음과 같이 명령을
내립니다.\index{\verb/\printindex/}\index{\verb/\printglossary/}
\begin{verbatim}
makeindex -s hglo.ist -o <파일이름>.gls <파일이름>.glo
\end{verbatim}
\verb|hglo.ist|는 어휘환경의 모양새 파일입니다.\index{\verb/hglo.ist/}

어휘 환경에서는 어휘 환경의 특성을 사용자가 알맞게 조정할 수 있도록
하고자 색인 환경에서와는 달리 \verb|\item|대신에 \verb|\gloitem|을
쓰도록 되어 있읍니다.  애초값은 \verb|\item|과 같읍니다.  쪽 숫자는
\verb|\glopage|를 앞에 두어서 \verb|\hfill|로 작동하도록 되어 있음으로
오른쪽 가장자리에 위치되게 됩니다.


\subsection{우리말 이름}
\label{소절:우리말이름}

\HLaTeX{} 0.99 버전부터는 \LaTeX{}에서 사용되는 각종 이름들을
일률적으로 \verb+\ksnamedef+ 모듬에 의해 변경될 수 있도록 하였읍니다.
예를 들어, \LaTeX{}에서 사용되는 `\refname{}'의 이름 `Reference'는
\verb+\refname+에 지정되어 있읍니다.  이를 우리말화 하는 방법은 다음과
같읍니다.
\begin{verbatim}
  \ksnamedef{refname}{참고~서적}
\end{verbatim}

표~\ref{표:우리말이름}에는 \HLaTeX{}에서 한글화한 ``\LaTeX{} 이름의
한글 및 한자화''가 나열되어 있읍니다.  이 한글화는
\verb/\begin{document}/앞에서 위에 예를 든 대로 \verb/\ksnamedef/로
  재정의하면 원하는데로 변경할 수 있읍니다.

\begin{table}[htbp]
  \begin{center}
    \leavevmode
    \begin{tabular}{|r|c|c|c|}\hline
               \LaTeX{}명령 & \HLaTeX(한글)   & \HLaTeX(漢字) \\\hline\hline
    \texttt{contentsname} & 목\~{}록        & 目\~{}錄        \\\hline
    \texttt{abstractname} & 요\~{}약        & 要\~{}約        \\\hline
\texttt{listoffigurename} & 그림\~{}목록    & 그림\~{}目錄    \\\hline
 \texttt{listoftablename} & 표\~{}목록      & 表\~{}目錄      \\\hline
        \texttt{bibname}  & 저서\~{}목록    & 著書\~{}目錄    \\\hline
         \texttt{refname} & 참고\~{}서적    & 參考\~{}書籍    \\\hline
       \texttt{indexname} & 찾아보기        & 索\~{}引        \\\hline
        \texttt{partname} & 편              & 篇              \\\hline
     \texttt{chaptername} & 장              & 章              \\\hline
     \texttt{sectionname} & 절              & 節              \\\hline
    \texttt{appendixname} & 부록            & 附錄            \\\hline
           \texttt{ksTHE} & 제              & 第              \\\hline
           \texttt{today} & 1994년 3월 6일  & 1994年 3月 6日  \\\hline
        \texttt{pagename} & 쪽              & 쪽              \\\hline
       \texttt{tablename} & 표              & 表              \\\hline
      \texttt{figurename} & 그림            & 그림            \\\hline
         \texttt{seename} & \verb+\+을 참조 & \verb+\+을 參考 \\\hline
          \texttt{ccname} & 사본            & 寫本            \\\hline
        \texttt{enclname} & 동봉물          & 同封物          \\\hline
      \texttt{headtoname} & 받는이          & 受信人          \\\hline
    \texttt{glossaryname} & 용어\~{}풀이    & 語\~{}彙        \\\hline
      \texttt{colorlayer} & 환등판\~{}색깔  & 幻燈版\~{}色相  \\\hline
    \end{tabular}
  \end{center}
  \caption{\LaTeX{} 이름의 한글 및 한자화}
  \label{표:우리말이름}
\end{table}

\texttt{ksTHE}는 \LaTeX{}에 정의되어 있지 않고, \HLaTeX{}에서 단원의
숫자를 짜는데 사용되도록 도입된 이름 모듬입니다.  이는 \LaTeX{} 이름을
한글/한자화 함으로써 발생하는 문제점들을 해결하기 위해 사용됩니다.
예를 들어 \verb+\part+의 일련 번호는 ``편 I''과 같이 나오며
\HLaTeX{}에서는 ``제 I 편''과 같은 식으로 짜여지도록 하고 있읍니다.

\HLaTeX{}에서는 \verb+\part+와 \verb+\chapter+, \verb+\appendix+,
\verb+\section+까지를 위와 같이 한글화하고 있으며, 각각 다음과 같이
설정되어 있읍니다.

\begin{tabular}{|r|rcl|}\hline
         단원 종류 & 숫자 앞 & 숫자 & 숫자 뒤 \\\hline\hline
      \verb+\part+ & \verb+\ksTHE~+ & \verb+\thepart+    &
                                                \verb+~\partname+  \\\hline
   \verb+\chapter+ & \verb+\ksTHE~+ & \verb+\thechapter+ &
                                             \verb+~\chaptername+  \\\hline
                   &                & \verb+\thesection+ & article \\
  \raisebox{1.5ex}[-1.5ex]{\texttt{\textbackslash appendix}} &
             \raisebox{1.5ex}[-1.5ex]{\texttt{\textbackslash
                               appendixname\textasciitilde}} &
                                  \verb+\thechapter+ & book/report \\\hline
   \verb+\section+ & \verb+\ksTHE~+ & \verb+\thesection+ &
                                             \verb+~\sectionname+  \\\hline
\end{tabular}

이를 사용자의 편의에 따라 재설정하기 위해서는 다음의 모듬을
사용합니다.
\begin{verbatim}
  \kscntformat{단원이름}{앞}{뒤}
\end{verbatim}
예를 들어 \verb+\chapter+를 ``첫째 마당''과 같은 식으로 짜기 위해서는
\verb+\begin{document}+앞에서 다음과 같은 설정을 하면 됩니다.
\begin{verbatim}
  \renewcommand{\thechapter}{\Hnum{chapter}}
  \ksnamedef{chaptername}{마당}
  \kscntformat{chapter}{}{~\chaptername}
\end{verbatim}

\subsection{그외의 우리말화}
\label{소절:우리말화}

우리말의 분철은\index{우리말의 분철} 붙임표가 사용되지 않으므로 영어권
언어와는 다른 특별한 처리 방법이 요구됩니다.
\def\hidewidth{\clearocplists\hskip\hideskip}

\LaOm{\texttt{hfont.tex}에서 우리말의 글자 사이가
  \texttt{\textbackslash hyphenchar} 없이 분리될 수 있게 하고
  있읍니다.}
{\OTP{}에서 각 글자의 앞에 분철점을 집어 넣고 상황에 따라 분철 여부를
  결정하도록 합니다.}

\HLaTeX\ 0.96판부터는 KS X 1001 상징 기호를 모두 사용할 수 있읍니다.
\appendixname~\ref{sec:상징기호}\을{} 참고하시기 바랍니다.
\verb|hanterm|을 사용하면 이런 상징 기호중 몇몇 자소를 쓸 수 있고
\verb|hanterm-hanja|와 \verb|emacs-20(mule)|을 사용하면 모든 상징
기호를 다 쓸 수 있읍니다.

\verb|hangul.sty|은 \LaTeX{}에 정의된 모듬들 중에서 우리말 문서
환경에 필요한 부분만을 수정하여 우리말화한 것입니다. 그외에
상징(logo)\index{한글@\HLaTeX!모듬!상징(logo)} \verb|\HLaTeX|도
정의되어 있고 \cite{최92}에서는 hlatex에 대한 정보를 얻을 수 있읍니다.


% \subsection{한글 \PS{} 글자체}
% \label{소절:pshan}\index{한글@\HLaTeX!글자체!\PS}
% \index{포스트@\PS{}와 \LaTeX}

% \PS{} 글자체는 원래 \TeX{}과는 상관이 없는 글자체입니다. \TeX{}은
% \MF{}로 글자체를 만들어 쓰도록 되어 있읍니다. Donald Knuth교수는
% \TeX{}에 사용될 글자체를 \TeX{}이 출력하게 될 인쇄기에 적당한 형태로
% 만들어지도록 구상하였읍니다.  그 반면에, 광범위하게 보급되어져 있는
% \PS{}는 글자체를 모든 \PS{} 인쇄기에 일괄적으로 사용될 수 있도록
% 구성되어 있읍니다.  어느 방법이 더 낳다고는 할 수 없지만 서로 자기
% 주장을 내새우며 논쟁을 벌이는 경우가 많이 눈에 띄입니다.

% 제 견해는 다음과 같습니다.

% 거의 모든 인쇄기는 곡선을 그릴 수 없읍니다.  적당한 곳에 점을 찍어
% 곡선처럼 보이도록 할 뿐입니다. \MF{}나 \PS{} 부호는 이런 곡선을 묘사해
% 놓고 있읍니다.  \MF{} 원천으로부터 만들어지는 pk 파일은 인쇄기가
% 실제로 인쇄할 때 찍을 점들을 인쇄기의 속성에 적합한 형태로 구성되어
% 있읍니다.  Knuth교수는 이러한 pk파일들을 저장할 수 있는 저장판의
% 용량에 관점을 두지 않고 인쇄되어져 나오는 문서의 질에 역점을
% 두었읍니다.  그 반면예 \PS{} 부호는 pk 파일과 같은 두값본 변환이 없이
% 그대로 인쇄기에 보내지게 되어 있읍니다. 곡선들은 인쇄기내에 내장되어
% 있는 점방식 영상 처리기(RIP: raster image processor)가 점들로
% 변환시킵니다. 작은 해상도의 인쇄기에서는 힘든 작업입니다.  기술의
% 발달로 인쇄기의 기능이 많이 향상되었읍니다.  \PS{}글자체의 사용도
% 많아지게 되었읍니다.  문서 작성에 \PS{} 글자체를 쓰는 것도 많이
% 요구되어졌읍니다. 많은 사람들의 노력으로 \TeX{}에서 \PS{} 글자체를 쓸
% 수 있도록 되었읍니다.  dvi 파일이 만들어질 때까지는 \TeX{}은 \PS{}에
% 대해 아는 바가 없읍니다.  인쇄하는 돌리개(driver)가 \PS{}를 인식하여
% 종이에 \PS{} 글자체를 사용하여 출력될 수 있게 되는 것입니다.

% 이런 상황에서 \HLaTeX{}은 한글 \PS{} 글자체를\index{포스트@\PS{}와
%   \HLaTeX} 보급하고 사용할 수 있도록 하였읍니다.  위에서 설명한 바와
% 같이 \PS{}는 \TeX{}과 그 근본을 달리 하고 있으므로 \PS{} 글자체를
% 사용하는 \HLaTeX{}에 다른 특별한 사용법은 없읍니다. 모든 문서를 보통의
% 경우와 같이 작성하고 글자체만 \PS{} 글자체를 쓰도록 하면 됩니다.  모듬
% 명령 \verb|\MapHangulFamily|을 사용하여 외형 글자체의 이름이
% \texttt{p}로 시작하도록 하면 됩니다.
% \begin{verbatim}
% \MapHangulFamily{mj}{psm,psm,psm}
% \MapHangulFamily{gt}{pgt,pgt,pgt}
% \MapHangulFamily{tz}{pmtt,ptt,ptt}
% \end{verbatim}
% UHC 글자체는 \PS{} 형식으로만 있으므로 위와 같은 재설정이
% 필요없읍니다.

\subsection{PDF 만들기}
\label{소절:PDF}

PDF는 Portable Document Format의 약자로서 Adobe 회사에서 제정한 문서
형식입니다.  PDF는 Adobe 회사의 PDF 프로그램에서 언급되는
Acrobat으로도 불려지고 있으며 어떤 운영 체계에서든지 미리 보고 인쇄할
수 있는 이식성을 갖도록 고안되어 있읍니다.  PDF는 \PS{} 글자체와
TrueType 글자체를 사용할 수 있고 이 문서 형식을 만들기 위해서는 몇몇의
상업용 프로그램이 있는 것으로 알고 있읍니다.  \TeX{} 사용자층에서도
이러한 형식의 문서를 \TeX{}과 같은 강력한 식자 체계로 짤 수 있도록
많은 작업을 하고 있고, 그 결과로 어느 정도 사용할 수 있는 프로그램이
pdf\TeX{}의 이름으로 web2c 7.2a판에 포함되어 공개되고 있읍니다.
판수준 `0.12l'이 암시하듯, pdf\TeX{}은 아직 완전히 개발되어 있지는
않습니다.  pdf\TeX{}에서는 \PS{} 글자체와 TrueType 글자체를 사용하여야
하며, KAIST 수학과의 조진환님\footnote{chofchof@math.kaist.ac.kr}은
\HLaTeX{}의 \PS{} 글자체를 써서 한글 PDF 문서를 만들 수 있다는 소식을
알려 주신 바 있읍니다.  \HLaTeX{}은 \LaTeX{}를 사용하므로 한글 PDF
문서를 만들기 위해서는 \texttt{pdflatex}을 사용하여야 합니다.  우리말
글자체는 \PS{} 완성형 글자체나 UHC 글자체를 사용하여야 하며 영문
글자체도 \texttt{times.sty}과 같은 꾸러미로 Adobe Type1 글자체를
사용하거나 Computer Modern 글자체를 pfb나 ttf 형태로 전환시킨 글자체를
설치하여야 합니다.  moonttf 글자체는 아랫글자체로 나뉘어져야 하므로
pdf\TeX{}에서 사용할 수 없는 것으로 알고 있읍니다.

pdf\TeX{}을 사용하기 위해서는 다음과 같이 우리말 글자체를 설정합니다.
\begin{itemize}
% \item \texttt{pdflatex/wan-down.map}과 \texttt{pdflatex/uhc-down.map}을
%   pdf\TeX{}의 설정 파일이 위치하고 있는 \texttt{texmf/pdftex/base}나
%   dvips의 \texttt{psfonts.map} 파일이 있는 \texttt{texmf/dvips/base}
%   자료방에 복사합니다.
% \item \texttt{texmf/pdftex/base/pdftex.cfg}에 다음의 두 줄을
%   추가합니다.
% \begin{verbatim}
% map +wan-down.map
% map +uhc-down.map
% \end{verbatim}
\item \texttt{pdflatex/uhc-down.map}을 pdf\TeX{}의 설정 파일이
  위치하고 있는
  \texttt{texmf/}\discretionary{}{}{}\texttt{pdftex/}\discretionary{}{}{}\texttt{base}나
  dvips의 \texttt{psfonts.map} 파일이 있는
  \texttt{texmf/}\discretionary{}{}{}\texttt{dvips/}\discretionary{}{}{}\texttt{base}
  자료방에 복사합니다.
\item \texttt{texmf/pdftex/base/pdftex.cfg}에 다음과 같은 줄을
  추가합니다.
\begin{verbatim}
map +uhc-down.map
\end{verbatim}
\end{itemize}
% pdf\TeX{}은 아직 map 파일의 `\texttt{/PaintType 2 store}'를 처리하지
% 못하므로 \verb|\olfamily|는 사용할 수 없으며 \texttt{wan-down.map}을
% 읽을 때 경고문을 보입니다.  이 경고문은 무시해도 됩니다.
% pdf\TeX{}으로 우리말 문서를 처리하면 완성형 글자체는 \PS{} 글자체를
% 쓰도록 미리 설정되어 있읍니다.  문화체육부에서 개발한 TrueType
% 글자체를 쓰기 위해 \texttt{moonttf.sty}을 쓰면 pdf\TeX{}에서는 아무런
% 효과가 없읍니다.
% 문화체육부에서 개발한 TrueType 글자체는 pdf\TeX{}에서는 아무런 효과가
% 없읍니다.

우리말 문서를 다음과 같이
\begin{verbatim}
pdflatex <파일이름>.tex
\end{verbatim}
하면 \texttt{<파일이름>.pdf} 파일이 만들어집니다.

pdf 파일을 미리보기 위해서는 adobe 회사에서 공개한 \texttt{acroread}나
\texttt{ghostscript}를 사용할 수 있고, 공개 프로그램
\texttt{xpdf}\footnote{\texttt{http://www.aimnet.com/\textasciitilde
    derekn/xpdf/}} 0.7a판은 PDF 파일에 올려받기 된 \PS{} 글자체를
사용하지 않고 Xwindow 운영 체계에 설치된 BDF 형식의 글자체를 써서
미리보기 하므로 우리말을 제대로 처리하지 못합니다.


\newpage
\begin{appendix}

\section{\HLaTeX{} 사용에 필요한 글자체 도움모}
\label{글자체도움모}\index{한글@\HLaTeX!글자체!도움모}

\TeX{}을 사용하기 위해서는 글자체가 필요합니다.  \TeX{}의 글자체는
\MF{} 형태로 보급되며, 이에 필요한 프로그램들은 \TeX{} 운영 체계에
기본적으로 포함되어 있고, 특별히 다른 설정을 하지 않아도 작동할 수
있도록 꾸며져 있읍니다.

문서 작성에 사용되는 글자체는 \MF{} 이외에도 다른 많은 종류가
있읍니다.  가장 광범위하게 사용되는 글자체는 \PS{}와 TrueType
글자체입니다.  이러한 글자체를 \TeX{}에서 사용하기 위해서는 다음의
두가지 사항이 충족되어야 합니다.
\begin{enumerate}
\item \TeX{}이 dvi 파일을 만들 때 필요로 하는 tfm 파일이 있어야 한다.
\item \TeX{}이 만든 dvi 파일을 처리하는 응용 프로그램(application
  program)이 그 글자체를 다룰 수 있어야 한다.
\end{enumerate}
\TeX{}을 위해 개발된 \MF{} 프로그램은 \MF{} 원천 파일을 번역하여 tfm
파일과 pk 파일을 만들기 때문에 dvi 파일을 처리하는 응용 프로그램은
모두 pk 파일을 다룰 수 있도록 되어 있읍니다.

\TeX{}은 tfm 파일만 필요로 하기 때문에 \TeX{}에 사용되는 글자체는 항상
tfm 파일이 동반하게 됩니다.  반면에 dvi 파일을 처리하는 응용
프로그램은 pk 파일을 이용할 수도 있고 글자체를 직접 다루어 응용할 수도
있읍니다.  \texttt{xdvi}와 같은 미리보기 프로그램은 전적으로 pk 파일에
의존하며 \texttt{dvips}와 같은 인쇄 프로그램은 pk 파일 및 \PS{}
글자체를 다룰 수 있읍니다.

\TeX{}이 출력하는 dvi 파일은 미리보기를 통해 최종적으로 인쇄될 결과를
살펴보는 응용이 주된 일이므로 UNIX 운영 체계에서 주로 사용되는
미리보기 프로그램 \texttt{xdvi}와 인쇄 프로그램 \texttt{dvips}를
사용하는데 있어서 \PS{} 글자체와 TrueType 글자체를 어떻게 이용하는가에
대해 살펴보기로 합니다.

\vspace{10pt}
\underline{\large\texttt{xdvi}로 미리보기}
\vspace{10pt}

위에서 밝힌 바와 같이 \texttt{xdvi}는 pk 파일만 다룹니다.  그러므로
dvi 파일을 미리 보기 위해서는 \PS{} 글자체나 TrueType 글자체로부터 pk
파일을 만들어야 합니다.  \PS{} 글자체에서 pk 파일을 만드는데는
\texttt{ps2pk}와 \texttt{gsftopk}가 주로 쓰이고 있고 TrueType
글자체에서 pk 글자체를 만드는데는 \texttt{ttf2pk}가 사용되기
시작했읍니다.
\begin{itemize}
\item \texttt{ps2pk:} 이 프로그램은 Piet
  Tutelaers씨\footnote{rcpt@urc.tue.nl}가 만들었으며 \PS{} 글자체를
  직접 분석하여 pk 파일을 만듭니다.  현재 1.5판이 사용되고 있으며
  \TeX{} 원천에는 근원 프로그램과는 다른 방식으로 작동하는
  \texttt{ps2pkm} 프로그램이 같이 보급되고 있고 그 실행 파일의 이름이
  근원 프로그램과 같은 \texttt{ps2pk}로 설치되도록 되어 있으므로
  주의해야 합니다.  근원 프로그램에서는 \texttt{mkpsres}라는
  도움모(utility)가 함께 설치되어서 \PS{} 자원 자료틀(Postscript
  resource database)을 만들어서 필요한 \PS{} 글자체를 찾을 수 있도록
  하며, 변질된 \texttt{ps2pkm}은 kpathsea 자료관(library)을 사용하여
  필요한 \PS{} 글자체를 찾을 수 있도록 합니다.  \texttt{ps2pk}를 쓰면
  \PS{} 글자체가 운영 체계의 어디에 있든지 상관없이 자원 자료틀을
  만들어서 사용할 수 있고, \texttt{ps2pkm}을 쓰면 TDS 나무꼴의 지정된
  장소 밑에 \PS{} 글자체를 설치하여 사용하게 됩니다.  \PS{} 글자체는
  많은 UNIX 운영 체계가 \TeX{}에 상관없이 운영 체계 자체의 자료방에
  설치하고 있고 Xwindow 운영 체계도 따로 \PS{} 글자체를 보급하므로
  근원 프로그램을 사용하는 것이 더 유연성이 있읍니다.  근원 프로그램의
  원천은 다음의 주소에서 구할 수 있읍니다.
\begin{verbatim}
ftp://ftp.urc.tue.nl/pub/tex
\end{verbatim}
  근원 프로그램의 번역은 위의 주소에서 원천 부호를 가져와 압축/묶음을
  푼 후 아랫자료방 \texttt{PSres}와 \texttt{ps2pk}에 있는
  \texttt{Makefile}을 수정해야 합니다.  수정할 사항은 \texttt{TEXMF}와
  \texttt{PSRESOURCEPATH}를 설치된 \TeX{} 운영 체계에 일치하도록
  설정하는 일입니다.  그런 후 각각의 아랫자료방에서 \texttt{make}를
  실행하면 됩니다.  근원 프로그램이나 \texttt{ps2pkm}에서는 \PS{}
  글자체의 hints 수를 128개로 제한하였기 때문에 우리말의 한자와 같이
  복잡한 글자를 처리할 때는 ``too many hints''라는 착오 알림말을 보인
  후 해당하는 글자를 만들지 않는 경우가 발생할 수 있읍니다.  이런
  경우를 방지하기 위해서는 \HLaTeX{}에서 제공하는
  \texttt{contrib/}\discretionary{}{}{}\texttt{ps2pk15.diff}를 적용한
  후 원천을 번역하면 됩니다.  \PS{} 글자체를 찾는 방법도
  \texttt{ttf2pkm}과 다르므로
  \texttt{contrib/}\discretionary{}{}{}\texttt{mktexpk-}\discretionary{}{}{}\texttt{ps2pk.diff}를
  \texttt{mktexpk} 조가비 각본에 대해 적용하여야 합니다.
\item \texttt{gsftopk:} 이 프로그램은 \PS{} 글자체에서 pk 파일을
  만들어야 할 때에 모든 일을 ghostscript가 처리할 수 있도록 정보를
  모아 ghostscript에게 작업을 위탁하는 일을 합니다.  이 프로그램은
  \texttt{xdvi}의 저자인 Paul
  Vojta\footnote{vojta@math.berkeley.edu}씨가 만들었으며 \TeX{} 원천에
  덧붙쳐서 보급되고 있읍니다.  이 프로그램으로 pk 파일을 만들기
  위해서는 \PS{} 글자체에 대한 정보가 ghostscript에 알려져 있어야
  합니다.  ghostscript는 \texttt{Fontmap} 파일에 \PS{} 글자체의 정보를
  간직하고 있으며 pk 글자체만을 만드는 과정만 따로 사용하지 않으므로
  일을 처리하는 시간이 많이 걸립니다.
\item \texttt{ttf2pk:} 이 프로그램은 TrueType 글자체로부터 pk 파일을
  만드는 일을 하며 Frederic Loyer\footnote{loyer@ensta.fr}씨와 Werner
  Lemberg\footnote{wl@gnu.org}씨의 공동작업으로 FreeType 자료관 원천과
  함께 보급되고 있읍니다.  FreeType 꾸러미는 다음의 주소에서 구할 수
  있읍니다.
\begin{verbatim}
ftp://ftp.physiol.med.tu-muenchen.de/pub/freetype/
\end{verbatim}
  현재의 버전은 1.3판이며 압축/묶음을 푼 후, \texttt{freetype-1.3}
  자료방에서 다음과 같이 FreeType 자료관을 만들어 먼저 설치한 후
\begin{verbatim}
./configure
make
make install
\end{verbatim}
 \texttt{contrib/ttf2pk} 아랫자료방으로 방바꾸기를 하여 다음과 같이
 \texttt{ttf2pk}를 번역/설치합니다.
\begin{verbatim}
./configure --prefix=/usr/tex --with-kpathsea-dir=/usr/tex
make
make install
\end{verbatim}
 \texttt{rpath}를 쓰는 Linux와 같은 운영 체계에서는 위와 같이 설치할
 때에, 만들어진 실행 파일이 kpathsea 공용 자료관을 찾지 못할 경우가
 생길 수도 있으므로 환경 변수 \texttt{LDFLAGS}를
 \texttt{'-Wl,}\discretionary{}{}{}\texttt{-rpath,}\discretionary{}{}{}\texttt{/usr/tex/lib'}으로
 미리 정해준 후 원천을 번역하는 것이 좋습니다.  위에서
 \texttt{prefix}는 \TeX{} 운영 체계를 번역/설치할 때 주어진 변수와
 같습니다.  web2c 7.2판부터는 \texttt{ttf2pk}를 지원하므로
 \texttt{ttf2pk}는 필요한 파일을
 \texttt{texmf/}\discretionary{}{}{}\texttt{dvips/}\discretionary{}{}{}\texttt{ttf2pk}
 자료방에서 찾게 됩니다.  그러므로 \texttt{ttf2pk}에 필요한 아랫글자체
 정의 파일인 sfd 파일이나 \texttt{ttfonts.map} 파일은 이 곳에 설치하면
 됩니다.  정확한 위치는 \texttt{texmf.cnf}에 정의된
 \texttt{TTF2PKINPUTS}를 확인하면 됩니다.  다만 \texttt{ttfonts.map}
 파일은 확장자가 \texttt{.map}이므로 kpathsea 자료관을 쓰는
 프로그램들은 \texttt{texmf/}\discretionary{}{}{}\texttt{fontname}
 자료방에서 찾으려고 합니다.  그러나 이 \texttt{.map} 파일은
 \texttt{ttf2pk} 자체가 찾으므로 문제를 일으키지 않습니다.  web2c 7.3
 이전 판에서는 \texttt{mktexpk} 조가비 각본철이 \texttt{ttf2pk}를
 지원하지 않고 있으므로 \HLaTeX{}에서 제공하는
 \texttt{contrib/}\discretionary{}{}{}\texttt{mktexpk-}\discretionary{}{}{}\texttt{ttf2pk.diff}를
 \TeX{} 운영 체계의 \texttt{mktexpk}에 적용하도록 합니다.  그런 후
 \texttt{ttfonts.map} 파일은
 \texttt{texmf/}\discretionary{}{}{}\texttt{dvips/}\discretionary{}{}{}\texttt{ttf2pk}
 자료방에 두면 됩니다.
\end{itemize}
우리말의 한글과 같이 자모로 나뉘어 조합될 수 있는 글자체를 사용하게
되면 하나의 완성된 글자를 표현하기 위해서 여러 자모를 중첩해서 문서의
틀을 잡게 됩니다.  이렇게 만들어진 dvi 파일을 \texttt{xdvi}로 미리보기
하면 완성된 글자가 다 보이지 않고 자모 하나만 화면 표시되는 경우가
발생합니다.  이는 \texttt{xdvi}가 중첩되는 글자를 처리하는 과정에서
발생합니다.  두 글자를 중첩할 때 단색 표시 장치(monochrome
display)에서는 단순히 또셈(AND operation)과 또는셈(OR operation) 중
하나를 사용함으로써 가능하지만 색표시 장치(color display)에서는 적당한
비트를 주고 다른 비트를 지우는 두가지 연산을 하여야 합니다.  이 경우에
\texttt{xdvi}는 겹치기를 제대로 다루지 못하는 복사 연산(copy
operation)을 사용하여 작업 속도가 빠를 수 있게 하는 것을 원칙으로
합니다.  이로 인해 발생하는 문제점을 해결할 수 있도록 \texttt{xdvi}는
\texttt{-thorough} 추가 선택을 마련하여 속도는 조금 느려도 좀 더
정확한 연산을 할 수 있는 기능을 제공합니다.  Xwindow의 사용자 자원
파일인 \texttt{.Xresources}에 다음과 같이 설정하면 \texttt{xdvi}에
따로 \texttt{-thorough} 추가 선택을 주지 않아도 완성된 한글이 온전히
화면 표시될 수 있읍니다.
\begin{verbatim}
XDvi*thorough: true
\end{verbatim}

\vspace{10pt}
\underline{\large\texttt{dvips}로 인쇄하기}
\vspace{10pt}

\texttt{dvips}는 dvi 파일을 ps 파일로 변환합니다.  UNIX 운영
체계에서는 \PS{} 파일을 인쇄하는 것이 관례화 되어 있으므로 변환된 ps
파일을 직접 인쇄기로 보내면 인쇄가 됩니다.  인쇄기가 \PS{} 언어를
처리할 수 없을 경우에는 ghostscript와 같은 도움모 프로그램을 통해 ps
파일을 인쇄기에 맞는 언어로 변환시키도록 꾸며져 있게 됩니다.  그러므로
UNIX 운영 체계에서는 ps 파일을 만들면 인쇄가 가능한 것으로 받아
들입니다.  이런 이유로 \texttt{dvips}는 UNIX 운영 체계에서 dvi 파일을
인쇄하는 대표적인 프로그램으로 사용되고 있읍니다.  \texttt{dvips}는
글자체를 다룰 때 다음과 같은 두 가지 경우를 구분/처리합니다.
\begin{itemize}
\item 필요로 하는 글자체가 글자체 설정 파일 \texttt{psfonts.map}에
  등록되어 있으면 \PS{} 글자체로 인식하여, 다음과 같은 네가지 경우를
  결정합니다.
  \begin{itemize}
  \item 각 줄의 끝에 글자체 파일 이름이 주어지고,
    `\texttt{\textless}'로 시작한 후 글자체 이름이 나오면 이 글자체를
    올려받기 시킨다.  \texttt{-j} 추가 선택이 있을 경우에는 부분
    올려받기 (partial download) 시켜서 이 글자체에서 필요한 글자만
    뽑아서 올려받기 시키며, 그렇지 않을 경우에는 전체 글자체를
    올려받기 시킨다.
  \item 글자체 파일 이름이 `\texttt{\textless\textless}'로 시작하면 이
    글자체는 전체 올려받기 시킨다.
  \item 글자체 파일 이름이 주어져 있지 않으면 인쇄기의 내장 글자체로
    처리한다.
  \item \texttt{-V} 추가 선택이 주어졌을 경우는 올려받기 시키는
    \PS{} 글자체를 pk 파일에서 만든 두값본 글자체로 대체한다.
  \end{itemize}
\item 글자체가 \texttt{psfonts.map}에 등록되어 있지 않으면 pk 파일을
  찾아서 두값본 글자체(bitmap font)를 만든다.
\end{itemize}
\PS{} 글자체를 인쇄기에 전체 올려받기 시킬 때 글자체 내에
\texttt{/Encoding}이 \texttt{def}로 정의되어 있으면 다음과 같은 착오를
발생합니다\footnote{\texttt{dvips}는 \texttt{readonly def}로
  정의되기를 요구합니다.}.
\begin{verbatim}
"First number not found     ERROR in encoding vector"
\end{verbatim}
이런 벌레를 없애기 위해서는
\texttt{dvips}의 \texttt{-j} 추가 선택으로 글자체를 부분 올려받기
시키거나 \HLaTeX{}에서 제공하는 \texttt{contrib/dvipsk-5.76.diff}를
적용하여 \texttt{dvips}를 새로 번역하여야 합니다.

\section{KS X 1001 상징 기호}
\label{sec:상징기호}\index{우리말 상징기호}

KS X 1001에 정의되어 있는 상징 기호들은 많은 경우가 \TeX{}의 모듬
명령이나 글자체로 더욱 섬세한 모양을 얻어낼 수 있읍니다.  예를 들어서
\texttt{enumerate} 환경에 쓰이는 한글 숫자중 ㉮ ㉯ ㉰ ㉱ 는 \TeX{}
모듬으로 다음과 같이 표현됩니다.\index{\verb/\ganacirc/}\index{㉮
  ㉯ ㉰ ㉱}
\newcommand{\ganacirc}[1]{{\footnotesize#1}\kern.5mm\llap{$\bigcirc$}}
\begin{verbatim}
\newcommand{\ganacirc}[1]{{\footnotesize#1}\kern.5mm%
\llap{$\bigcirc$}}
\end{verbatim}
그 결과는 \ganacirc{가} \ganacirc{나} \ganacirc{다} \ganacirc{라}
입니다. 이는 다음과 같이 입력되었읍니다.
\begin{verbatim}
\ganacirc{가} \ganacirc{나} \ganacirc{다} \ganacirc{라}
\end{verbatim}
그 이외에도 우리말 상징 기호의 분수들은 (½ ⅓ ⅔ ¼ ¾ ⅛ ⅜ ⅝ ⅞) 다음의
모듬으로 처리됩니다.\index{\verb/\textfrac/}\index{½ ⅓ ⅔ ¼ ¾ ⅛
  ⅜ ⅝ ⅞}
\newcommand{\textfrac}[2]{\leavevmode\kern.1em%
  \raise.5ex\hbox{\the\scriptfont0 #1}\kern-.1em/\kern-.15em%
  \lower.25ex\hbox{\the\scriptfont0 #2}}
\begin{verbatim}
\newcommand{\textfrac}[2]{\leavevmode\kern.1em%
  \raise.5ex\hbox{\the\scriptfont0 #1}\kern-.1em/\kern-.15em%
  \lower.25ex\hbox{\the\scriptfont0 #2}}
\end{verbatim}
그 결과는 \textfrac12 \textfrac13 \textfrac23 \textfrac14 \textfrac34
\textfrac18 \textfrac38 \textfrac58 \textfrac78 로서 이들은 각각
다음과 같이 입력되었읍니다.
\begin{verbatim}
\textfrac12 \textfrac13 \textfrac23 \textfrac14 \textfrac34
\textfrac18 \textfrac38 \texfrac58 \textfrac78
\end{verbatim}
→ ← 등은 \LaTeX{}의 수학 방식에서 모두 얻어낼 수 있는 상징 문자입니다.
($\rightarrow \leftarrow$)\index{→ ←}
\begin{verbatim}
$\rightarrow \leftarrow$
\end{verbatim}
0.96판부터는 완전을 위해서 모든 상징 글자체를 제공합니다.
\texttt{verbatim} 환경과 같이 \TeX{}으로 처리가 힘들거나 불가능한 경우는
\HLaTeX{} 문서에서 직접 상징 문자를 쓰도록 하십시요. 다음은
\verb|verbatim| 환경의 예:
\begin{verbatim}
\HLaTeX 0.96판에서는 KS X 1001의 상징 문자를 모두 쓸 수 있다.
상징 문자에는 상징 글자를 비롯해(㉿™℡) 수학 기호(±≠∴),
영문자(ＡＢＣａｂｃ), 우리말 자소(ㄱㄴㄷㅏㅑㅓㅕ),
로마 숫자(ⅰⅱⅲⅠⅡⅢ), 그리스어(ΑΒΓαβγ), 선문자(│┌┐),
단위 문자(㎖㎗ℓ) 및 \HLaTeX{}의 우리말 숫자에 쓰이는 \ojaso(㉠㉡㉢),
\ogana(㉮㉯㉰) 등등이 있다. 그 외에 일본어 가나 문자(アィイあぃい)
및 러시아어(БВГабв) 등도 우리말 상징 문자에 정의되어 있다.
\end{verbatim}
글자체는 \verb|\명조|와 \verb|\고딕|이 있읍니다.


\section{똑똑한 편집기}
\label{절:편집기}\index{편집기}

Emacs는 지금까지 강력한 편집기로 군림해왔읍니다. 이런 강력한 도구로
한글도 쓸 수 있도록 하는 노력은 오래전부터 있었읍니다. NEmacs(일본판
emacs)에 한글 자동 입력 장치(automata)를 추가한 것이 그 첫번째
소산물인 것으로 알고 있읍니다.  NEmacs는 서서히 사라져가고, 요즘은
일본의 Kenichi Handa씨\footnote{handa@etlken.etl.go.jp}가 개발한
다국어용 Emacs, Mule(MULtilingual Enhancement of GNU
Emacs)과\index{편집기!Mule} 서울대학교
김강희님\footnote{khkim@archi.snu.ac.kr}의
하니맥\index{편집기!하니맥}이 똑똑한 한글 편집기를 대표하고 있는
것으로 보입니다.  Mule은 GNU Emacs에 통합되어 Emacs 20판으로 보급되고
있읍니다.

\verb|auctex|은 이러한 Emacs내에서 손쉽게 \LaTeX{} 문서를 작성하고
작업하는데에 필요한 대분의 환경을 제공합니다.  그러므로 \HLaTeX{}
문서를 이러한 편집기와 보조 프로그램로 작성하면 많은 편리를 얻을 수
있읍니다.

그런 편리중의 하나만 간단히 소개합니다. 200쪽의 한글 문서를
작성했을때, 중간에 한 소절(subsection)을 추가했다고 합시다. 과연 이
부분도 아무 문제없이 잘 작성되었는가를 알아보고자 할 때 보통은 전
문서를 \verb|latex|으로 작업해야 합니다. 그러나 똑똑한 편집기에서의
auctex 기능은 이를 매우 단순화합니다.\index{auctex}
\renewcommand{\labelenumi}{\pjaso{enumi}}
\begin{enumerate}
\item 새로 작성된 부분을 영역(region)으로 정의한다.  (영역은
  \verb|C-SPC| 글쇠를 눌러서 \verb|set-mark-command| 실행시킨 곳에
  있는 \verb|mark|와 현재 깜빡이(cursor)가 있는 \verb|point|의 사이를
  말한다.)
\item \verb|C-c C-r|를 누른다. (이 글쇠는 \verb|TeX-command-region|을
  을 의미하며, 먼저 사이칸(buffer)이 수정되었는가를 살펴봐서 저장판에
  갈무리(save)할 것인가를 물어보고 .tex 파일이 .dvi 파일을 비교하여
  .tex파일이 더 새 것이면 \verb|latex|할 것을 제시한다.)
\item 착오가 있으면 \verb|C-`|를 누른다. (\verb|TeX-next-error|:
  착오가 발생한 지점으로 가서 그 착오에 대한 설명을 보여준다.)
\item 위와 같이 착오를 차례로 고치고 \verb|TeX-command-region|을
  반복한다.
\item 아무 착오가 없으면 \verb|TeX-command-region|을 다시 실행한다.
  (아무 착오가 없을 경우에 auctex은 미리보기를 제시한다.)
\item 모든 부분이 만족스러우면 \verb|C-c C-c|를 누른다.
  (\verb|TeX-command-master|: 전체 문서를 \verb|latex|하거나
  미리보기할 수 있다.)
\end{enumerate}
auctex이 내부적으로 \verb|TeX-command-region|을 어떻게 처리하는가는
간단히 다음과 같이 설명할 수 있읍니다. 일단 auctex은
\verb|_region_.tex|라는 빈 사이칸을 마련하여 문서의 처음부터
\verb|\begin{document}|까지를 이 사이칸에 집어 넣는다.  영역을
  \_region\_.tex에 덧붙친다.  마지막으로 \verb|\end{document}|를
\verb|_region_.tex|에 추가한다.  \verb|latex| 하기를 제시한다.
\verb|_region_.tex|을 \verb|latex|으로 돌린다.

emacs를 emacs답게 제대로 사용한다는 것이 쉬운 일은 아니지만, 위와 같은
한가지 예를 보더라도, 배워서 그 효과를 충분히 만끽할 수 있는 똑똑한
편집기입니다.

한자의 입력도 이런 똑똑한 편집기를 사용하여 간단히 처리할 수 있읍니다.
Mule 2.3판까지에서는 한글/한자 변환 서버(server)인 Wnn을 사용할 수
있읍니다.  하니맥에서도 이와 대등한 서버를 생각하고 있는 것으로 알고
있읍니다.  emacs 19판과 mule을 합친 GNU Emacs 20판에서는 Wnn이
재검토되는 것으로 알려진 바 있읍니다.

원천 부호 파일들은 다음과 같은 파일 옮김 규약(ftp: File Transfer Protokol) 서버에서 가져올 수 있읍니다.

\begin{tabular}{rl}
하니맥: & \ttfamily ftp://ftp.kaist.ac.kr/pub/hangul/editor \\
Emacs:  & \ttfamily ftp://prep.ai.mit.edu/pub/gnu \\
뮬-2.3: & \ttfamily ftp://etlport.etl.go.jp/pub/mule \\
Wnn:    & \ttfamily ftp://ftp.kuis.kyoto-u.ac.jp/Wnn \\
auctex: & \ttfamily ftp://ftp.dante.de/tex-archive/support/auctex
\end{tabular}

\verb|contrib|자료방에는 \HLaTeX{}을 위해 수정된 \verb|auctex|이
\verb|diff|형태로 있읍니다.


\section{글자체 예문}
\label{sec:example}

\TeX{}에서는 사용할 수 있는 글자체의 수가 제한되어 있음으로 모든 한글 글자체를
동시에 사용하기가 불가능했읍니다. 새로 나온 web2c\ 7.0판에서는 256
글자체 기록기(font
register)의 제한이 완화되어 한 문서에서 최대한 2000개의 글자체 집합(set)을
동시에 사용할 수 있읍니다. 기본적으로 500개의 글자체 집합을 사용하도록
되어 있는데, 대부분의 문서를 작성할 때 충분하다고 봅니다. 많은 글자체를
사용할 경우 그 글자체들을 지정하는 모듬들의 양이 늘어나므로 이에
필요한 기억 용량도 늘어납니다(words of
font info). 이 길잡이를 처리하는데는 그 기억 용량을 애초값인 150000에서
200000으로 늘렸읍니다.  \verb|texmf.cnf|를 수정하면 이 숫자를 늘릴 수
있읍니다.

다음은 이 『\HLaTeX\ 길잡이』를 처리하기 위해 \TeX{}이 필요로 한
기억 용량의 통계 자료입니다.
{\footnotesize
\ifx\nullocplists\undefined
\begin{verbatim}
Here is how much of TeX's memory you used:
 16635 strings out of 50902
 189397 string characters out of 197458
 95920 words of memory out of 263001
 19150 multiletter control sequences out of 10000+15000
 231202 words of font info for 457 fonts, out of 300000 for 1000
 30 hyphenation exceptions out of 1000
 26i,12n,28p,222b,3078s stack positions out of 300i,100n,500p,50000b,4000s
\end{verbatim}
\else
\begin{verbatim}
Here is how much of Omega's memory you used:
 1572 strings out of 30424
 15679 string characters out of 194642
 99641 words of memory out of 263001
 1334 multiletter control sequences out of 65536
98 fonts 30 hyphenation exceptions out of 1000
 24i,12n,21p,1011b,522s stack positions out of 300i,100n,500p,50000b,4000s
\end{verbatim}
\fi} 이 길잡이에서는, 되도록 많은 글자체를 선보일 수 있도록
쓰여졌으므로 상당히 많은 글자체 수를 요구하고 있읍니다.  보통은 이렇게
많은 글자체를 쓸 경우가 극히 드물 것으로 생각합니다.

\vspace{12pt}
\long\def\完成例文#1{%
\bgroup
\noindent\fbox{\명조 한글}\par\nobreak
\noindent\명조 #1\par
\noindent\고딕 #1\par
\noindent\타자 #1\par
\noindent\그래픽 #1\par
\noindent\궁서 #1\par
\noindent\신문 #1\par
\noindent\필기 #1\par
\noindent\펜글씨 #1\par
\noindent{\펜흘림 #1}\par
\noindent\봄글씨 #1\par
\noindent\옛글 #1\par
\ifx\nullocplist\undefined
% \noindent\목각 #1\par
\begingroup
\ifx\pdftexversion\undefined
\ifx\nullocplist\undefined
\MapHangulFamily{mj}{mbt,wmj,wmj}
\MapHangulFamily{gt}{mdt,wgt,wgt}
\MapHangulFamily{gs}{mgs,wgs,wgs}
\MapHangulFamily{gh}{mgh,wgs,wgs}
\MapHangulFamily{mg}{mhm,wgt,wgt}
\MapHangulFamily{pn}{msg,wmj,wmj}
\MapHangulFamily{ph}{msh,wmj,wmj}
\noindent\fbox{\명조 문화 TTF}\par\nobreak
\noindent\명조 #1\par
\noindent\고딕 #1\par
\noindent\궁서 #1\par
\noindent\궁흘림 #1\par
\noindent\목각 #1\par
\noindent\펜글씨 #1\par
\noindent\펜흘림 #1\par
\fi \else 이 곳은 원래 문화 TTF 글자체를 선보이는 곳이지만
pdf\TeX{}에서는 애석하게도 pk 비트맵을 사용하도록 되어 있는 ttf2pk의
제약으로 쓸 수 없읍니다.
\fi \endgroup \fi \egroup}

\long\def\字母例文#1{%
\bgroup
\noindent\fbox{\hfontfamily{jmj} 자모}\par\nobreak
\noindent\hfontfamily{jmj} #1\par
\noindent\hfontfamily{jgt} #1\par
\noindent\hfontfamily{jsr} #1\par
\noindent\hfontfamily{jnv} #1\par
\egroup
}

\long\def\漢字例文#1{%
\bgroup
\noindent\fbox{\명조 漢字}\par\nobreak
\noindent\명조 #1\par
\noindent\고딕 #1\par
\noindent\궁서 #1\par
\noindent\신문 #1\par
\noindent\옛글 #1\par
%\noindent\hfontfamily{pg} #1
\egroup}

\完成例文{생활이 그대를 속이더라도 슬퍼하거나 노하지 말라.}

\字母例文{설움의 날을 참고 견디면 멀지않아 기쁨의 날이 오리니}

\漢字例文{呵呵大笑 丹脣皓齒 言中有骨 切磋琢磨 靑出於藍 兎營三窟}

\nocite{홍91}

\input{complang}
\end{appendix}

\newpage

\bibliographystyle{halpha}
\bibliography{hlguide,texbook1,texbook3}
\printindex

%% Start Of Trailer
\end{document}

%%% Local Variables:
%%% mode: latex
%%% TeX-header-end: "^%% End Of Header"
%%% TeX-trailer-start: "^%% Start Of Trailer"
%%% End:
