diff options
17 files changed, 1502 insertions, 1106 deletions
diff --git a/Master/texmf-dist/doc/latex/kotex-utf/ChangeLog b/Master/texmf-dist/doc/latex/kotex-utf/ChangeLog index 338a2ef6784..67126296500 100644 --- a/Master/texmf-dist/doc/latex/kotex-utf/ChangeLog +++ b/Master/texmf-dist/doc/latex/kotex-utf/ChangeLog @@ -1,3 +1,17 @@ +2022-06-22 Kangsoo Kim + + * Upload to CTAN, version 3.0 + +2022-06-22 Dohyun Kim <nomos at ktug org> + + Version 3.0.0 + + * kotexutf.sty: + protect non-ascii characters in VerbatimOut environment; + revert hyperref bookmark patch of v2.1.1. + + * dhucs-cmap.sty: prevent redundant ToUnicode entry. + 2015-09-14 Dohyun Kim <nomos at ktug org> Version 2.1.2 @@ -9,7 +23,7 @@ Version 2.1.1 - * kotexutf.sty: unprotect protected chars for hyperref solving the bug + * kotexutf.sty: unprotect protected chars for hyperref solving the bug reported at http://www.ktug.org/xe/index.php?document_srl=210907 2015-04-19 Dohyun Kim <nomos at ktug org> @@ -34,13 +48,13 @@ 2013-11-07 Kangsoo Kim <karnes at ktug org> No version change - + * kotexdoc.tex: revised for new Xindy related matters 2013-10-24 Kihwang Lee <leekh at ktug org> No version change - + * Uploaded to CTAN 2013-10-22 Kangsoo Kim <karnes at ktug org> @@ -50,7 +64,7 @@ 2013-10-21 Kihwang Lee <leekh at ktug org> Version 2.0.0 - + * kotex-utf packaging, uploaded to https://github.com/kihwanglee/kotex-utf 2013-10-21 Kangsoo Kim <karnes at ktug org> diff --git a/Master/texmf-dist/doc/latex/kotex-utf/fig/yettext.pdf b/Master/texmf-dist/doc/latex/kotex-utf/fig/yettext.pdf Binary files differnew file mode 100644 index 00000000000..1444e69a636 --- /dev/null +++ b/Master/texmf-dist/doc/latex/kotex-utf/fig/yettext.pdf diff --git a/Master/texmf-dist/doc/latex/kotex-utf/kotex-doc.pdf b/Master/texmf-dist/doc/latex/kotex-utf/kotex-doc.pdf Binary files differnew file mode 100644 index 00000000000..e4173feaec5 --- /dev/null +++ b/Master/texmf-dist/doc/latex/kotex-utf/kotex-doc.pdf diff --git a/Master/texmf-dist/doc/latex/kotex-utf/kotex-doc.tex b/Master/texmf-dist/doc/latex/kotex-utf/kotex-doc.tex new file mode 100644 index 00000000000..795088b4b11 --- /dev/null +++ b/Master/texmf-dist/doc/latex/kotex-utf/kotex-doc.tex @@ -0,0 +1,751 @@ +%!TEX encoding = UTF-8 Unicode +%!TEX program = arara +% arara: pdflatex: {synctex: yes} +%! arara: komkindex: {style: kotex} +% arara: pdflatex: {synctex: yes} +%%% file `kotexdoc.tex` +%% Written by Kangsoo Kim <karnes at ktug kr> +%% +%% 2013/09/30 +%% 2013/11/07 +%% 2014/03/01, \ksnamedef +%% +%% part of ko.TeX v2.0 +%% LPPL, maintained. +% +\documentclass[a4paper,% + 10.5pt,% + amsmath,% +% uset1font,% + chapter,% + twoside,% + openany,% + finemath,% + oldfontcommands]% +{oblivoir} + +\usepackage{fancyvrb} +\usepackage{eurosym} + +\ifPDFTeX + \SetHanjaFonts{uhcmj}{nanumgt}{nanumgt} + \usepackage[pdftex]{graphicx} + \SetGremphFonts{nanumgt}{nanumgt} + \usepackage[normalem]{ulem} + \usepackage{dhucs-trivcj} +% \usepackage{dhucs-midkor} + \input sample-finemath-setup.tex + \usepackage[T1]{fontenc} + \renewcommand{\rmdefault}{nanummj} +\else + \ifLuaOrXeTeX + \usepackage{xob-dotemph} + \setkormainfont(* ExtraBold)(*){NanumMyeongjo}(){HCR Batang LVT} + \def\다{\nobreak 다} +\fi\fi + +\usepackage[x11names,dvipsnames,svgnames]{xcolor} + +\ifXeTeX + \usepackage[normalem]{ulem} +\fi + +\usepackage[dbl4x6]{fapapersize} +\usepackage{boxedminipage} + +\SetHangulspace{1.5}{1.1} + +\usepackage{hologo} +\def\pdfTeX{\hologo{pdfTeX}} +\def\pdfLaTeX{\hologo{pdfLaTeX}} +\def\XeTeX{\hologo{XeTeX}} +\def\XeLaTeX{\hologo{XeLaTeX}} +\def\eTeX{\hologo{eTeX}} +\def\LuaTeX{\hologo{LuaTeX}} +\def\LuaLaTeX{\hologo{LuaLaTeX}} +\usepackage{kotex-logo} + +\newcommand*\kotex{\texorpdfstring{\textsf{k}\kern-0.0625em\textit{o}\kern-1.5pt\lower.15ex\hbox{.}\kern-1pt\protect\TeX}{ko.TeX}} +\def\ko{\textsf{k}\textit{o}} +\def\kotexplain{\kotex-\hologo{plain}} +\newcommand\kotexversion{v3.0} +%\newcommand\kotexdate{2013년 11월} +\newcommand\kotexdate{2021년 7월} + +%\usepackage[ +% backend=biber, +% style=authoryear, +% sortlocale=UTF-8, +% natbib=true, +% url=true, +% doi=false, +% eprint=false, +%]{biblatex} +%\addbibresource{kotexguide.bib} +%\addbibresource{texbook1.bib} +%\addbibresource{texbook3.bib} +% + +\newenvironment{preamtext}{% + \section*{제1판 일러두기} +}{\clearpage} + +\newenvironment{preamtexttwo}{% + \section*{제2판 일러두기} +}{\clearpage} + +\newenvironment{preamtextthree}{% + \section*{제3판 일러두기} +}{\par} + +\def\util#1{\texttt{#1}\index{Utilities!#1}\index{#1}} +\def\pkg#1{\textsf{#1}\index{Packages!#1}} +\def\option#1{\texttt{[#1]}\index{Options!#1}} +\def\wi#1{#1\index{#1}} +\def\thispkg{\kotex} +\def\file#1{\texttt{#1}\index{Files!#1}} + +\def\OMEGA{$\mathrm{\Omega}$} + +\copypagestyle{part}{empty} + +\renewcommand\cftsectionaftersnumb{\hspace{1.2em}} +\renewcommand\cftsubsectionaftersnumb{\hspace{1em}} + +\def\xample{예시} +\renewcommand{\cmd}[1]{\cmdprint{#1}% + \index{Commands!\string\cmdprint{\string#1}}} + +\makeindex + +\begin{document} + +\frenchspacing + +\title{한국어 텍 \kotex} +\author{김강수} +\date{version 3.0\quad\kotexdate} + +\begin{titlingpage} +\maketitle +\end{titlingpage} + +\frontmatter + +\begin{preamtextthree} +2013년에 \koTeX 이 CTAN에 등재되어, 주요 \TeX{} 배포판에 수용됨에 따라 +사실상 한국어 조판의 표준으로 자리잡은 지도 어언 수년이 흘렀다. +이 기간 동안 \koTeX 은 특히 \XeTeX 과 \LuaTeX 을 중심으로 크게 발전하여 +2021년 현재 상업적인 출판에 무리없이 활용되어 높은 수준의 조판 품위를 보증할 +정도가 되었음을 모두가 인정하고 있다. +저자들은 이를 매우 자랑스럽게 여기며, 버그 리포트와 +중요한 기여, 그리고 일상적 격려를 통하여 이를 지원해준 사용자와 기여자 모두에게 +깊은 감사를 표한다. + +\koTeX{} 문서 제3판에서는 \koTeX-utf 매뉴얼 부분을 분리하였고 +부분적인 가필과 수정을 행하였다. \koTeX-utf 사용법을 보려면 +\verb|texdoc kotex-utf|를 실행하라. + +\bigskip + +\hfill 2021년 7월 \par +\hfill 대표필자 김강수 (識) + +\end{preamtextthree} +\begin{preamtexttwo} +2007년에 \kotex 이 만들어진 이후, 이 패키지는 사실상 한국어 문헌의 +조판과 식자에 있어 가장 널리 사용되는 패키지가 되었습니다. +저자들은 이에 대해 매우 자랑스러움을 느끼고 있으며, 개선을 위해 고언을 +마다하지 않으신 사용자 여러분께 깊이 감사드립니다. + +2007년 이후, 텍 사용환경에는 극적이라 해도 좋을 만한 변화가 초래되었습니다. +특히 \XeTeX 이나 \LuaTeX 과 같은 새로운 엔진이 등장하여, +한글 식자 문제에 있어 결정적인 진보를 이룬 것은 특기할 만한 것입니다. +\kotex 의 저자들은 이와 같은 텍 환경 변화에 발맞추어 \XeTeX-\ko, \LuaTeX-\ko와 같은 패키지를 개발하여 한글 사용을 더 쉽고 강력하게 만드는 데 헌신해왔습니다. + +이에 2013년에 접어든 지금, \kotex 을 전반적으로 정비하고 그 사용 설명서를 +작성하게 되었습니다. \kotex 은 더 발전할 것이고, 더 훌륭한 한글 문헌의 +조판을 가능하게 할 것입니다. + +이 문서가 조금이라도 도움이 되기를 바랍니다. + +\bigskip + +\hfill 2013년 9월 + +\hfill (대표필자) 김강수 (識) + +\end{preamtexttwo} + + +\begin{preamtext} +\kotex 은 H\LaTeX 과 hangul-ucs가 결합하여 탄생한, 명실 +상부한 ``한국어(한글) 텍 시스템''입니다. ``한글 라텍(H\LaTeX)''은 1990년대 이후 +텍에서의 한글 사용에 \dotemph{사실상 표준}이었으며, hangul-ucs는 +한글 라텍의 현저한 영향 아래서 성장한 유니코드 한글 텍 매크로였던 것입니다. + +이제 한국텍학회(KTS)의 주도 아래, 한글 라텍과 hangul-ucs가 +하나의 매크로 시스템으로 통합된 것을 매우 기쁘게 생각합니다. +이와 더불어 더욱 알차고 유용한 사용자 안내서를 작성하기 위해 +많은 노력을 하였습니다. + +한글 라텍의 표준 문서였던 ``한글 라텍 길잡이''(\wi{은광희})는 아마도 가장 많이 +읽힌 한글로 된 라텍 관련 문서 중 하나가 아닐까 합니다. 이 문서는 단순히 한글 +사용법을 넘어서서, 텍에 입문하는 데 있어서도 많은 도움을 주었습니다. + +이 문서는 한글 라텍 길잡이를 바탕으로 \kotex 에 맞도록 개정하여 +쓴 것입니다. 감사의 말과 머리말은 거의 그대로 보존하였으며, \kotex 이 +등장하는 경과를 설명하는 소절을 하나 추가하는 정도에 그쳤습니다. +다만 문체의 일치를 유지하기 위하여 이 일러두기와 감사의 말을 제외하고는 +경어체를 평어체로 고쳐썼습니다. 또한 +사용법에 있어서 한글 라텍 이후의 여러 가지 발전 사항을 새로운 편제로 +서술하려 하였습니다. 지나치게 기술적인 서술을 피하고 실제 사용자에게 +구체적인 지침을 제공하는 데 이 문서의 목적이 있습니다. + +이 문서가 \kotex 을 사용하는 분에게 조금이라도 도움이 되기를 바랍니다. +뜻하지 않은 잘못된 내용이나 실수, 빠진 내용, 오식을 바로잡아 주시면 더 나은 +사용자 안내서를 만드는 데 크게 도움이 될 것입니다. + +\bigskip +\rightline{2007년 7월} +\rightline{\wi{은광희} \wi{김도현} 김강수 (識)} + +\end{preamtext} + +\tableofcontents* + + +\mainmatter +\pagestyle{hangul} + +%\part{총론} + +\chapter{\kotex 에 관하여} + +\section{\kotex 의 구성} + +\kotex\footnote{\kotex은 텍스트 + 상황에서 \texttt{ko.TeX}이라고 쓰고 ``케이오텍'' 또는 + ``코리언 텍''이라고 읽는다. ``코텍'' 또는 ``코텍스''라고 + 읽지 않기를 희망한다. + \texttt{ko}는 한국어를 의미하는 + 국제부호에서 취한 것이다. \texttt{ko}를 소문자로 쓴다.}% +은 한국어/한글 식자를 위한 \hologo{plainTeX}, \LaTeX\ 패키지군을 아울러 부르는 말이다. +\wi{한국텍학회}(KTS; Korean \TeX\ Society)에서 공식적으로 개발을 후원하고 배포를 담당하고 있으며, +핵심 기능의 주개발자인 \wi{김도현} 이외 많은 기여자들이 개발에 참여하고 있다. + +2021년 현재, \kotex 과 그 관련 패키지의 목록은 다음과 같다. +\begin{enumerate}[(1)] \oblivoirlist +\item \textbf{\kotex-plain}. \TeX 과 \LaTeX 에서 한글을 구현하기 위한 +핵심 매크로들과 \hologo{plainTeX}을 위한 스타일로 이루어져 있다. +\item \textbf{\kotex-utf}. \eTeX, \pdfTeX\ 엔진 위에서 운영되는 +\LaTeX 에서 한글을 구현한 패키지이다. 은광희의 H\LaTeX 의 계보를 잇는 +\LaTeX\ 한글 패키지로서, H\LaTeX\ 스타일의 장절표제를 위한 \pkg{kotex-sections}를 +포함하고 있다. +\item \textbf{cjk-\ko}. \eTeX, \pdfTeX\ 엔진 위에서 운영되는 +\LaTeX 을 위한 한글 패키지이며, \kotex-utf와 달리 Werner Lemberg의 \pkg{CJK} 패키지를 +이용하고 있다. +\item \textbf{\XeTeX-\ko}. \XeTeX\ 엔진에 대응하는 한글 조판 패키지이다. +\item \textbf{\LuaTeX-\ko}. \LuaTeX\ 엔진에 대응하는 한글 조판 패키지이다. +\item \textbf{\koTeX-oblivoir}. \pkg{memoir} 클래스로 한글을 조판하기 위한 클래스와 +패키지의 묶음이다. +\item \textbf{\koTeX-utilities}. 한글 처리에 필요한 유틸리티. 색인을 만들기 위한 +\util{makeindex}의 한글판 \util{komkindex}, \util{xindy}의 한글 모듈, +그리고 \util{jamo-normalize} 등을 포함한다. +%\item \textbf{\kotex-utf}. 유니코드 (UTF-8) 한글 +%식자 패키지로서, ``legacy \TeX\ 엔진'' ({\small \util{tex}, \util{latex}, \util{pdftex}, \util{pdflatex}을 실행하는 경우 운용되는 \TeX\ 엔진})에 +%대응한다. \LaTeX 을 위한 \pkg{dhucs}와 \hologo{plainTeX}을 위한 \pkg{kotexplain}, 그 부수파일들로 이루어져 있다.\index{dhucs} +%\item \textbf{cjk-\ko}. Werner Lemberg의 \pkg{CJK} 패키지를 이용하여 +%유니코드 한글을 식자하는 패키지이다. legacy \TeX\ 엔진에 대응한다. +%이 패키지는 그 기원과 동작이 \kotex 과는 +%제법 다르게 출발하였지만 \kotex 의 몇 가지 중요한 기능\explpunc.자동조사 등.\ 을 구현하고 있는 등, 여러 면에서 \kotex 의 일부로 간주할 수 있다. +%\cmd{\usepackage\{kotex\}} 문법을 사용한다. +%\item \textbf{\XeTeX-\ko}. \XeTeX\ 엔진에 대응하는 한글 식자 패키지이다. +%\item \textbf{\LuaTeX-\ko}. \LuaTeX\ 엔진에 대응하는 한글 식자 패키지이다. +%\item \textbf{oblivoir}. \pkg{memoir} 클래스를 이용하여 한글 문서를 작성하도록 도와주는 클래스와 패키지 묶음이다. +%\item \textbf{\kotex\ utilities}. 한글 문서 작성에 필요한 유틸리티들이다. +%예를 들면 색인을 만들기 위한 \util{komkindex}와 \util{xindy modules} 등이 포함되어 있다. +\end{enumerate} + +위에 열거한 한글 패키지들은 모두 원칙적으로 유니코드(UTF-8) 한글을 +처리하는 것이다. 소위 `완성형 한글'을 지원하던 H\LaTeX 과 \koTeX-euc는 +현재 ``개발 중단(obsolete)'' 상태로 간주되며, 개발이 그친 상태 그대로 +별도로 보존되고 있다. + +\TeX\,Live로 배포하는 CTAN 등재 한글 글꼴 패키지가 있다. + +\begin{enumerate}[(1)]\oblivoirlist +\item \textbf{nanumtype1}. 나눔명조와 나눔고딕 글꼴(원본은 트루타입)을 레거시 +텍에서도 쓸 수 있도록 \TeX\ 폰트로 변환한 글꼴 묶음이다. Type 1 포맷이며, TFM과 +FD 파일을 함께 제공한다. 패키지의 관리자는 김도현이다. +\item \textbf{uhc}. 은광희의 H\LaTeX\ 기본 폰트였던 mf, type 1 글꼴이다. \koTeX-utf는 +명조체 한자 글꼴을 이 폰트를 이용하여 식자한다. +\item \textbf{unfonts}. 은광희의 UHC 폰트를 트루타입으로 변환한 글꼴이다. +드물게 보는 완전한 자유 한글 글꼴이며, \koTeX 의 개발 단계에서 사실상의 +표준 글꼴로 간주되었던 적이 있다. 현재 CTAN에 등재되어 트루타입 형식 그대로 +\XeTeX 과 \LuaTeX 에서 활용할 수 있다. \util{unfont-core}와 \util{unfonts-extra}라는 +두 개의 패키지로 등록되어 있다. +\item \textbf{baekmuk}. 김정환의 백묵 글꼴로서, 저작권 관련 문제가 해결된 +후에 CTAN에 등재되었다. +\end{enumerate} + +%다음 패키지는 이전 버전까지 \kotex 에 포함되어 있던 것들이나, 2.0 버전에서 +%제외되어 현재 ``개발 중단(obsolete)'' 상태로 간주되는 것들이다. 이 패키지들은 +%편의를 위하여 현재까지 \kotex\ 저장소에서 서비스하고 있다. +%\begin{enumerate}[(1)] +%\item \textbf{kotex-euc}. EUC-KR 한글을 식자하는 패키지였다. +%\wi{은광희}의 H\LaTeX\ 1.0.1의 \LaTeX\ 파트를 바탕으로 약간의 수정을 가한 상태로 +%\kotex\ 1.0에 포함되어 있었다. +%\item \textbf{untype1}.\index{은글꼴 type 1} 은글꼴 type 1 폰트 묶음이다. 역시 ``개발중단'' +%상태이고 \kotex\ 2.0에서는 불필요하나 이 글꼴 묶음을 필요로 하는 분이 계실 것을 감안하여 당분간 +%\kotex\ 저장소를 통하여 제공받을 수 있다.\footnote{참고로, 그동안 \kotex 은 편의를 위하여 +% 은글꼴 트루타입도 함께 배포해왔으나, 이것은 원래부터 \kotex 의 일부는 아니었고 단지 +% 은글꼴 트루타입을 기본 글꼴로 간주한 패키지가 존재했던 데서 연유한다.} +%\item \textbf{kotex-euc-utils}. \pkg{kotex-euc} 패키지에 딸려 있는 +%유틸리티들이다. \util{hmakeindex}와 \util{hbibtex}으로 이루어져 있다. + +%이밖에 \kotex 의 일부는 아니지만 이와 밀접한 관계를 갖고 있는 패키지는 다음과 같다. +%\begin{enumerate}[(1)] +%\item \textbf{nanumtype1}. CTAN에 등록되어 있는 (유니코드) 한글 type 1 글꼴이다. 패키지의 관리자는 \kotex 의 주개발자인 \wi{김도현}이다. +%\end{enumerate} + +%\begin{figure} +%\centering +%\includegraphics[width=.95\linewidth]{fig/whatkotexconsistof} +%\caption{\protect\kotex 의 연혁과 구성}\label{fig:consistsof} +%\end{figure} + +\section{간단한 연혁} + +\subsection{\protect\kotex 의 탄생 (2007)} + +\begin{figure}[t] +\centering +\includegraphics[width=\linewidth]{fig/histkotex} +\caption{\protect\kotex 의 탄생}\label{fig:hist} +\end{figure} + +그림~\ref{fig:hist}\는 H\LaTeX 에서 출발하여 \kotex 에 이르는 +한글 텍의 발전 과정을 요약한 것이다. + +2007년 6월 30일, 한국텍학회 모임에서, \wi{은광희}\cntrdot \wi{김도현}\cntrdot 김강수 등 +한글 라텍 및 hangul-ucs의 저자들과 KTS 임원\cntrdot 회원 등이 모인 자리에서 +이 두 한글 매크로 패키지를 통합하여 \wi{통합 한글 텍 패키지}를 제작하기로 +의견을 모은 것이다. 이것은 그동안 한글 사용에 있어서 둘 이상의 패키지가 +존재함으로 인해 빚어진 혼란을 불식하고 향후 한글 텍/라텍의 발전의 +근거를 마련했다는 점에서도 중요한 일보전진이었고, 한글 라텍으로부터 +오랜 시간 발전해 온 라텍에서의 한글 사용을 총체적으로 점검할 기회를 +얻게 되었다는 점에서도 의미가 있는 결정이었다. + +그로부터 일 개월 정도의 작업을 통하여 \kotex\ 베타 버전이 공개되었다. +\kotex 은 Unicode/UTF-8 인코딩과 EUC-KR을 모두 지원하기로 하였으나 +원칙적으로 향후의 발전 방향은 Unicode로 합의하였다. 또한 \wi{은광희}의 +UHC 글꼴을 발전시킨 `은글꼴 type 1'을 기본 글꼴로 채택하고 이를 +EUC-KR 버전에도 적용시킴으로써, 폰트를 둘러싼 이런저런 불편한 점을 +일소하였으며, pdf 제작 및 매크로의 호환성과 안정성에 있어서 +몇 가지 중요한 진보를 이루었다. + +\subsection{그 후의 발전} + +\kotex 은 \TeX\,Live\index{TeX Live}에 대응하여 개발되기 시작하였다. 2008년부터 +\TeX\,Live의 사설 저장소를 만들고 이를 통하여 \kotex 을 배포해왔다. +이 시기의 중요한 사실을 요약하면 다음과 같다. +\begin{itemize} +\item KTUG을 통해 이루어진 Hanyang PUA project의 결과, 고문헌 +조판에 필요한 유틸리티를 갖추게 되었다. +\item \XeTeX-\ko와 \LuaTeX-\ko가 개발되었다. +글꼴의 제약이 사라짐으로써 누리게 된 이점 때문에 사실상 \XeLaTeX 을 +한글 문헌 조판에서 본격적으로 사용하게 되었다. 이에 더하여 \pkg{oblivoir}의 \XeTeX 판인 \pkg{xoblivoir}가 별도로 개발되었다. +\item \pkg{cjk-ko}, \pkg{nanumtype1}, \pkg{luatexko}, \pkg{xetexko}가 \TeX\,Live를 통해 배포되기 시작하였다. +\end{itemize} + +현재 한글 문헌을 가장 안정적으로 조판할 수 있는 것은 +\XeTeX-\ko이다. \LuaTeX-\ko는 실험적인 성격이 강하고, +레거시 텍을 위한 \kotex-utf는 하위호환성이나 특수한 상황\footnote{% + 모바일 기기에서 텍을 이용한다든가 하는 상황. 특히 \pkg{cjk-ko}는 + 이러한 목적을 위하여 개발되었다.}% +을 위하여 +필요로 하는 정도가 되었다. +특히 유니코드 텍 엔진의 등장은 \kotex 을 개발하면서 직면했던 많은 고민들, +예컨대 글꼴 사용의 문제 같은 것을 일소할 수 있게 하였다. + +\section{\kotex 의 로고} + +\kotex 의 로고는 다음과 같다. +\begin{center} +\LARGE\kotex +\end{center} +\begin{boxedverbatim} +\newcommand*\koTeX{% + \textsf{k}\kern-0.0625em\textit{o}\kern-0.11em% + \lower.15ex\hbox{.}\kern-0.1em\protect\TeX} +\end{boxedverbatim} +이 로고는 \kotex 의 견고함과 아름다움, 그리고 유연한 표현능력을 상징한다. +\pkg{kotex-logo} 패키지에 정의되어 있으므로 \cmd{\usepackage\{kotex-logo\}}를 +선언하면 \cmd{\koTeX} 명령을 쓸 수 있다. + +\section{개발자와 라이선스} + +\kotex 의 주개발자는 다음과 같다. 개발자는 LPPL의 maintainer를 겸한다. +\begin{description}\tightlist +\item [\kotex-utf] \wi{김도현}, 김강수 (LPPL, maintained) +\item [\XeTeX-\ko] \wi{김도현} (LPPL, maintained) +\item [\LuaTeX-\ko] \wi{김도현} (LPPL, maintained) +\item [cjk-\ko] \wi{김도현} (GPL, LPPL) +\item [oblivoir] 김강수, 이기황 (LPPL, maintained) +\item [\kotex-euc] \wi{은광희}, \wi{김도현}, 김강수 (obsolete) +\item [untype1]\index{은글꼴 type 1} \wi{은광희}, \wi{박원규}, \wi{김도현}, 김강수 (obsolete) +\end{description} + +\pkg{untype1}과 \pkg{cjk-ko}의 일부 파일을 제외한 모든 패키지가 LPPL 라이선스를 가진다.\footnote{참고로, untype1은 GPL이다.} + +\chapter{kotex.sty} + +\section{패키지 사용 선언}\label{sec:kotexsty} + +\kotex\ 전체를 통틀어 \pkg{kotex}이라는 패키지를 부르는 것으로 +한글 사용을 선언할 수 있다. +이 패키지는 현재 동작하는 \TeX\ 엔진과 주어진 옵션에 따라 적절한 +\kotex\ 패키지를 불러오는 wrapper 역할을 한다. + +\begin{boxedverbatim} +\usepackage[<options>]{kotex} +\end{boxedverbatim} + +줄 수 있는 옵션은 실제 호출되는 한글 패키지의 기능과 동작에 따라 조금씩 다르지만, \option{hangul} +옵션은 특기할 만하며, 문서의 줄 간격, `이름' 등을 한글화한다. +\option{hanja}도 +이와 비슷한데, 기본적으로 \option{hangul}을 적용한 후에 캡션 등을 +한자화한다. +이 두 옵션은 모든 \kotex\ 패키지군에 공통적으로 적용된다. + +\begin{table} +\centering +\caption{실제로 동작하는 \kotex\ 패키지}\label{tab:engines} +\begin{tabular}{c|c|c} +\hline +\cmd{\usepackage} & 대응 엔진 & 동작하는 패키지 \\ \hline \hline +\cmd{[cjk]\{kotex\}} & \pdfLaTeX & \pkg{cjkutf8-ko} \\ \hline +\cmd{...\{kotex\}} & \pdfLaTeX & \pkg{dhucs} \\ \hline +\cmd{...\{kotex\}} & \XeLaTeX & \pkg{xetexko} \\ \hline +\cmd{...\{kotex\}} & \LuaLaTeX & \pkg{luatexko} \\ +\hline +\end{tabular} +\end{table} + +\tref{tab:engines}에서 보는 바와 같이 동일한 호출 명령을 주어도 +실제로 동작하는 한글 패키지가 어떤 것이냐 하는 것은 실행되는 +텍 엔진과 옵션에 따라 달라진다. + +\section{\protect\pdfLaTeX\ 또는 \LaTeX 으로 컴파일} + +\noindent\cmd{\usepackage[cjk]\{kotex\}} + +위와 같이 \option{cjk}가 주어지면 \pkg{cjk-ko} 패키지를 부른다. +정확하게는 \pkg{cjkutf8-ko.sty}라는 파일을 불러온다. +%추가할 수 있는 동작은 \option{hangul}, \option{hanja}, +%\option{nojosa}라는 공통 옵션 이외에 \option{usedotemph}, +%\option{usecjkt1font}가 있다. 각각의 의미와 동작에 대해서는 +%\Cref{chap:docu}에서 언급한 문서를 보라. + +\bigskip + +\noindent\cmd{\usepackage[utf]\{kotex\}} + +\koTeX-utf 패키지로 한글을 처리한다. 이것이 기본값이다. +%\pkg{dhucs.sty}를 찾는다. 이것이 기본값이며, +%이 문서의 제\,\ref{part:two}\,편에서 설명하는 것이 이 경우의 +%문서 작성법이다. +%\XeTeX과 같은 새로운 엔진이 등장하기 전에 +%\kotex 이라 하면 \pkg{dhucs}를 +%통하여 \pdfLaTeX 으로 한글을 식자하는 것을 +%일컫는 것이었다. +%기본값이므로 \option{utf}를 지정하지 않아도 된다. +%추가 옵션에 대해서는 이 문서의 해당 부분(제\,\ref{part:two}\,편)을 참고하라. + +\section{\XeLaTeX\ 또는 \LuaLaTeX 으로 컴파일} + +각각 \pkg{xetexko.sty}와 \pkg{luatexko.sty}를 찾는다. +즉 \cmd{\usepacakge\{kotex\}}을 지정하는 것은 동일하지만 +\util{xelatex}으로 문서를 컴파일한다면 전혀 다른 패키지를 사용하는 +것인 셈이다. + +이 엔진과 패키지를 사용하는 것은 종래의 \pdfLaTeX 으로 작업하는 것과는 +몇몇 부분이 다르다. 따라서 해당 문서를 잘 읽고 이에 대응해야 한다. +그러나 \option{hangul}, \option{hanja} 옵션은 여전히 +비슷한 의미로 동작한다. + +\section{엔진별 동작의 예시} + +어떤 문서를 작성하였고, 어떤 엔진으로 컴파일될지 모르는 상황이라면 +되도록 호환성있게 원본 자체를 작성하면 좋을 것이다. +이럴 때 요긴하게 쓸 수 있는 패키지로 \pkg{iftex}이 있다. +다음 보기는 이러한 상황에 대응하는 한 가지 예이다. (cjk-\ko를 이용하는 +경우는 예시에서 제외되었다.) + +\begin{boxedverbatim} +\documentclass{article} + +\usepackage[hangul]{kotex} + +\usepackage{iftex} +\ifPDFTeX + \usepackage{dhucs-nanumfont} +\else\ifXeTeX + \setmainhangulfont{NanumMyeongjo} +\else\ifLuaTeX + \setmainhangulfont{NanumMyeongjo} +\fi\fi\fi +\end{boxedverbatim} + +%\section{pdf 문서 작성을 위한 설정}\label{sec:makepdf} +% +%%\subsection{pdf bookmark} +%% +%%%\paragraph{pdf bookmark} +%% +%%\pkg{hyperref}에 +%%\option{pdfencoding = auto} 옵션을 지정하는 것으로 pdf bookmark 문제가 +%%모두 해결된다.\footnote{% +%% 과거 \XeTeX 을 사용할 때는 \option{unicode} 옵션을 선언하지 +%% 않고 \LuaTeX 이나 \pdfTeX 에서는 \option{unicode}를 선언하도록 +%% 권장했다. 이 방법은 여전히 유효하나 \option{pdfencoding=auto}를 +%% 쓰면 엔진에 따라 옵션을 달리 주어야 할 필요가 없다.} +%%\begin{verbatim} +%%\usepackage{kotex} +%%\usepackage{pdfencoding=auto,bookmarks]{hyperref} +%%\end{verbatim} +%%%여기서는 \option{unicode} 옵션이 반드시 지정되어야 한다. +%%%\option{pdftex}은 컴파일 상황에 따라 \option{dvipdfmx} +%%%또는 \option{dvips}를 +%%%지정할 수 있다. +%%% +%%%위의 예에 상당하는 컴파일 절차 예시는 다음과 같다. +%%%\begin{verbatim} +%%%$ (pdf)latex foo +%%%$ (pdf)latex foo +%%%$ (dvipdfmx foo) +%%%\end{verbatim} +% +%\subsection{텍스트 검색과 추출} +%pdf 문서의 텍스트 검색과 추출은 매우 중요한 문제이다. +%이것은 어떤 드라이버로 pdf를 생성하느냐에 따라 조금 달라지는데, 일괄 +%요약하면 다음과 같다. +%\begin{description} +%\item[dvipdfmx] type 1 글꼴을 매우 잘 처리하고 +%이로부터 검색 및 추출이 가능한 pdf를 만들어낸다. 별도의 조치가 +%필요없다. +%\item[dvips] 트루타입을 처리하지 못하는 점 때문에 이전부터 +%문제가 있다고 생각되었으나 type 1 폰트를 사용하는 한 +%검색 추출에 문제는 없다. 역시 별도의 조치가 필요없다. +%\item[pdftex] 이때는 \cmd{\pdfgentounicode}를 +%활성화해주어야 한다. +%\end{description} +%그러므로 \wi{전처리부}(preamble)\explpunc.\cmd{\begin\{document\}} 명령이 놓이기 전.\ 에 다음과 같이 선언하는 것으로 충분하다. +%\begin{verbatim} +%\ifpdf +% \input glyphtounicode +% \pdfgentounicode=1 +%\fi +%\end{verbatim} +% +%어떤 드라이버를 사용하든 모두 포스트스크립트 윤곽선 글꼴이 사용되고, +%pdf 북마크가 잘 만들어지며 한글 텍스트의 검색과 추출이 자유롭다. +% +%\paragraph{oblivoir} +%\pkg{oblivoir}는 위의 절차를 모두 자동화해두었다. + +%\subsection{\LuaTeX, \XeTeX} +% +%이 엔진을 사용하는 경우, 기본 output이 pdf 포맷이다. +%pdf bookmark의 경우만이 문제가 되는데, \pkg{hyperref}을 사용할 때 +%\begin{verbatim} +%pdfencoding = auto +%\end{verbatim} +%옵션을 쓰면 \pdfTeX, \XeTeX, \LuaTeX 을 불문하고 책갈피에서 한글이 깨지지 않게 해준다. +% +%과거에는 \XeTeX\ 사용시에 \option{unicode} 옵션을 주지 않아야 하는 데 +%주의해야 했으나 위와 같이 하면 자동적으로 처리된다. + +\chapter{문서와 도움말}\label{chap:docu} + +\koTeX 은 컴파일 엔진에 따라 동작하는 패키지가 다르다. +각각의 패키지는 별도의 사용안내서가 마련되어 있다. +그러므로 사용법에 대한 안내를 얻으려면 각 패키지별 문서들을 참조하여야 한다. +문서를 읽을 때는 \TeX\,Live 유틸리티 \util{texdoc}을 이용한다. +이 문서 자체는 명령행에서 \cmd{texdoc kotex}으로 읽을 수 있다. + +\begin{description} +\item [\kotex-utf] kotex-utf-doc 문서를 찾아 읽는다. 명령행에서 \cmd{texdoc kotex-utf} +명령을 내려 읽을 수 있다. +\item [cjk-ko] cjk-ko-doc 문서를 찾아 읽는다. 명령행에서 \cmd{texdoc cjk-ko} 명령을 내리면 읽을 수 있다. +\item [\XeTeX-\ko] xetexko-doc 문서를 찾아 읽는다. 명령행에서 \cmd{texdoc xetexko} 명령을 내리면 읽을 수 있다. +\item [\LuaTeX-\ko] luatexko-doc 문서를 찾아 읽는다. 명령행에서 \cmd{texdoc luatexko} 명령을 내리면 읽을 수 있다. +\item [oblivoir] memoir 안내서를 보아야 한다. 이것은 +\cmd{texdoc memman} 명령으로 읽을 수 있다.. 한편, 한글화 부분에 대한 사항을 참고하려면 \cmd{texdoc ultrasimple} 명령으로 볼 수 있는 문서를 참고한다. +\end{description} + +%%2.0 버전에서 제외된 패키지들을 굳이 사용할 필요가 있을 때, +%\kotex-euc와 \pkg{untype1}의 +%사용법을 알려면 다음 문서를 참고하라. +% +%\begin{description} +%\item [kotexguide] \kotex\ 0.1.0 사용자 설명서이다. +%특히 \kotex-euc\index{Packages!kotex-euc}와 \pkg{untype1}\index{은글꼴 type 1}에 관한 방대한 사용 설명이 존재한다. +%\pkg{kotex-euc}를 설치하면 포함되어 있다. +%\end{description} + + +\chapter{배포와 설치} + +\section{CTAN을 통한 배포} +%현재 \kotex 은 +%\begin{enumerate}[(1)] +%\item \wi{CTAN}\footnote{\url{http://ctan.tug.org}}에 등재 +%\item \kotex\ 사설 저장소\footnote{\url{http://ftp.ktug.org/KTUG/texlive}}를 통하여 배포 +%\end{enumerate} + +현재 \kotex\ 패키지군은 거의 모두 +CTAN에 등재되었다. CTAN을 통해 배포되는 패키지는 다음과 같다: +\begin{quote} +\pkg{kotex-utf}, \pkg{xetex-ko}, \pkg{luatex-ko}, +\pkg{cjk-ko}, \pkg{kotex-oblivoir}, \pkg{kotex-utils}, +\pkg{kotex-plain}, \pkg{nanumtype1} +\end{quote} + +이 가운데, \pkg{kotex-plain}, \pkg{cjk-ko}, \pkg{xetex-ko}, +\pkg{kotex-utf}는 서로 필요로 하는 파일이 의존되어 있어 함께 +설치하는 것이 좋다. \pkg{luatex-ko}에서도 \pkg{xetex-ko}에서 +필요한 파일을 찾을 때가 있다. + +\hologo{pdfLaTeX}을 사용하려면 (다른 폰트를 설치하지 않은 경우) \pkg{nanumtype1}이 필요하다. 이 역시 +CTAN을 통해 배포된다. + +%\kotex\ 패키지군 가운데 2013년 11월 현재 CTAN에 등재되어 있는 것은 +%\pkg{cjk-ko}, \pkg{xetexko}, \pkg{luatexko}, 세 종류이다. +%이들은 \TeX\,Live\index{TeX Live} 배포판에도 포함되어 있다. +%\pkg{nanumtype1} 패키지 역시 그러하다. + +%\kotex\ 사설 저장소에는 이보다 많은 패키지가 서비스되고 있다. \kotex-utf의 +%매크로와 유틸리티도 +%이곳에서 배포된다.\footnote{% +% 멀지 않은 장래에 \pkg{dhucs}, 즉 \kotex-utf도 CTAN을 통하여 배포될 전망이다.} + +CTAN에 등재된 패키지들은 각 배포판의 패키지로서 배포된다. \TeX\,Live와 +MiK\TeX 에 \koTeX 이 모두 포함되어 있다. + +\TeX\,Live는 한글 관련 패키지와 유틸리티, 문서를 \pkg{collection-langkorean}이라는 콜렉션 패키지로 묶어서 배포한다. + +\section{github 저장소} + +\begin{itemize} \oblivoirlist +\item \textbf{kotex-plain} \url{https://github.com/kihwanglee/kotex-plain}. +\item \textbf{kotex-utf} \url{https://github.com/kihwanglee/kotex-plain}. +\item \textbf{kotex-utils} \url{https://github.com/kihwanglee/kotex-utils}. +\item \textbf{kotex-oblivoir} \url{https://github.com/kihwanglee/kotex-oblivoir}. +\item \textbf{xetexko}. \url{https://github.com/dohyunkim/xetexko}. +\item \textbf{luatexko}. \url{https://github.com/dohyunkim/luatexko}. +\item \textbf{cjk-ko}. \url{https://github.com/dohyunkim/cjk-ko}. +\end{itemize} + +\section{KTUG 사설 저장소} + +과거 \kotex 이 CTAN에 등재되기 전에 KTUG은 \kotex\ 사설 저장소를 운영하여 \TeX\,Live에서의 설치를 지원하였다(2008--2013). + +현재 사설 저장소는 CTAN에 등재하면서 제외된 \kotex-euc 파트와 은 글꼴(트루타입, type1) 및 KTUG에서 제작된 유용한 패키지와 유틸리티들을 추가적으로 서비스하는 목적으로 운영되고 있다. +%에서 서비스되는 패키지는 \pkg{kotex-base}, \pkg{kotex-extra}, \pkg{jiwonlipsum}, \pkg{kotex-midkor}, \pkg{kotex-euc}인데 필수적인 패키지는 모두 CTAN으로 올라갔고 \kotex 의 기능을 +%확장하는 보충적인 패키지들이 사설 저장소를 통하여 제공되고 있다. + +%CTAN에 등재된 패키지들은 \TeX\,Live, MiK\TeX\ 등의 텍 배포판에 +%포함될 수 있다. 따라서 \TeX\,Live를 설치한 경우 별도의 추가 작업 없이도 +%\kotex\ 관련 패키지를 설치 운영할 수 있게 되는 것이다. + +사설 저장소는 파일들을 몇 가지 ``설치용'' 패키지로 나누어서 제공한다. +2014년 5월 현재 사설 저장소를 통하여 설치할 수 있는 것은 다음과 같다.\footnote{% + 여기서 `패키지'란 \LaTeX\ 매크로 패키지를 가리키는 것이 아니라 + 저장소에서 파일을 구분하는 단위를 말한다.} +\begin{description} \tightlist +%\item [\texttt{collection-kotex}] 중요한 설치 패키지를 한꺼번에 관리하기 위한 +%메타패키지이다. 여기에는 \file{kotex}, \file{kotex-utils}, \file{jiwonlipsum}, +%\file{kotex-dev}가 포함된다. +%\item [\texttt{kotex}] \pkg{dhucs} 관련 파일의 묶음이다. +%\item [\texttt{kotex-dev}] \pkg{oblivoir} 관련 파일 묶음이다. +%\item [\texttt{kotex-utils}] \kotex 이 제공하는 유틸리티 프로그램과 스타일 패키지를 포함한다. +\item [\texttt{kotex-euc}] 이전 버전 \kotex 의 euc-kr 한글 식자 관련 파트이다. 이 패키지를 사용하려면 \pkg{unfonts-base}가 필요하다. +\item [\texttt{unfonts-base-type1}] 은글꼴 type 1과 트루타입이다. +%kotex-base라는 이름은 종래 은글꼴이 \kotex 의 기본 글꼴이었던 데서 연유한다. 이 명칭은 지금 형편에 맞지 않으므로 추후 개명될 전망이다. +은바탕, 은돋움, 은그래픽, 은타자 글꼴이 포함되어 있다. +\item [\texttt{unfonts-other-type1}] 은글꼴 type 1과 트루타입으로 base에 포함되지 않은 것들이다. +\item [\texttt{nanumbaruntype1}] 나눔바른고딕의 type 1 글꼴이다. +\item [\texttt{kotex-midkor}] 옛한글 식자에 필요한 패키지와 폰트 묶음이다. +\item [\texttt{jiwonlipsum}] lipsum의 한글화 버전이다. +\item [\texttt{hcr-lvt}] 함초롬 LVT 글꼴 (트루타입). +\item [\texttt{nanumttf}] 나눔 글꼴 (트루타입). +\end{description} + +\kotex\ 사설 저장소는\index{ko.TeX repository} \TeX\,Live의 \util{tlmgr} 유틸리티를 통하여 +간단히 등록하고 관리할 수 있다. +먼저 다음 명령을 내리면 저장소가 등록된다. +\begin{verbatim} +$ tlmgr repository add http://ftp.ktug.org/KTUG/texlive/tlnet/ ktug +\end{verbatim} +이제 이 저장소를 이용하기 위하여 \TeX\,Live의 texmf 트리 아래의 \file{tlpkg} 디렉터리(이를테면 \texttt{/usr/local/texlive/texmf-local/tlpkg})에 +\begin{boxedverbatim} +ktug:* +\end{boxedverbatim} +이라는 내용을 갖는 \file{pinning.txt} 파일을 만들고 +\begin{verbatim} +$ tlmgr install unfonts-base-type1 +$ tlmgr remove unfonts-base-type1 +\end{verbatim} +명령을 통하여 필요한 패키지를 설치하거나 제거할 수 있다. + +%이 문서를 오류없이 컴파일하기 위해서는 KTUG 사설 저장소로부터 \pkg{kotex-midkor} 패키지를 설치하여야 한다. + +%% +%%\bigskip +%% +%% +%%%다음 설치 패키지들도 함께 제공한다. +%%%\begin{description} \tightlist +%%%\item [\texttt{kotex-euc}] \pkg{kotex-euc}와 \pkg{kotexguide} 등 이전 버전에 +%%%포함되어 있던 파트를 서비스한다. +%%%\item [\texttt{kotex-base}] \pkg{untype1}이다. 이름이 kotex-base로 되어 있는 것은 +%%%예전 버전에서 은글꼴 type 1이 기본 글꼴이었던 데서 유래한다. 이 명칭은 지금 형편에 맞지 않으므로 +%%%추후 개명될 전망이다. +%%%은바탕, 은돋움, 은그래픽, 은타자 글꼴이 포함된다. +%%%\item [\texttt{kotex-extra}] \pkg{untype1}의 extra 부분이다. +%%%\end{description} +%% +%%이들 각각을 자신의 \TeX\,Live 시스템에 설치하려면 +%%\begin{verbatim} +%%$ tlmgr install kotex-midkor +%%\end{verbatim} +%%와 같은 방식의 명령을 내리면 된다. + +%\section{\kotex\,Live}\index{ko.TeX Live} +% +%\wi{한국텍학회}와 \wi{KTUG}에서는 텍 시스템과 \kotex\ 설치와 운영에 곤란을 겪는 +%\wi{윈도우즈 운영체제} 사용자를 위하여 \TeX\,Live와 \kotex 을 한번에 +%설치할 수 있게 도와주는 설치 프로그램 \kotex\,Live를 제공하고 있다.\index{ko.TeX Live} +% +%저장소의 등록, 관리와 같은 번거로운 절차를 자동화하였고 한글 문서 작성에 +%필요한 도구와 예제를 제공한다. 윈도우즈 상에서 \kotex 을 설치하는 가장 손쉬운 방법이다. +% +%이에 대한 자세한 사항은 KTUG\footnote{\url{http://www.ktug.org}}을 +%방문하여 정보를 얻을 수 있다. + +%\section{\TeX\,Live 이외의 텍 배포판의 경우} +% +%예컨대 윈도우즈의 MiK\TeX 과 같은 배포판이라면, 적어도 CTAN에 등재된 +%패키지는 설치가 가능하다. 즉 현재 \pkg{cjk-ko}, \pkg{xetex-ko}, \pkg{luatex-ko}, \pkg{kotex-utf}, \pkg{kotex-plain}, \pkg{kotex-oblivoir} +%MiK\TeX 의 패키지매니저를 이용하여 설치 운용할 수 있다.\index{MiKTeX} +% +%\util{tlmgr}이 없는 텍 배포판이라도 \TeX\,Live를 바탕으로 하고 있다면 마찬가지로 \kotex 을 운용하는 것이 +%가능할 것이다. 적어도 \file{collection-langkorean}라는 콜렉션 패키지를 설치하면 된다. +% +%그 이외의 경우에는 앞서 언급한 \kotex\ 패키지 저장소를 직접 방문하여 자신의 시스템에 +%설치할 수 있다. 이 문제에 대해서 이 글에서는 더 다루지 않겠다. + + +\end{document} diff --git a/Master/texmf-dist/doc/latex/kotex-utf/kotexdoc.pdf b/Master/texmf-dist/doc/latex/kotex-utf/kotex-utf-doc.pdf Binary files differindex b303f400a11..6ad7a346cc1 100644 --- a/Master/texmf-dist/doc/latex/kotex-utf/kotexdoc.pdf +++ b/Master/texmf-dist/doc/latex/kotex-utf/kotex-utf-doc.pdf diff --git a/Master/texmf-dist/doc/latex/kotex-utf/kotexdoc.tex b/Master/texmf-dist/doc/latex/kotex-utf/kotex-utf-doc.tex index 70f07fb777b..0ba908ebb54 100644 --- a/Master/texmf-dist/doc/latex/kotex-utf/kotexdoc.tex +++ b/Master/texmf-dist/doc/latex/kotex-utf/kotex-utf-doc.tex @@ -3,6 +3,7 @@ % arara: pdflatex: {synctex: yes} % arara: komkindex: {style: kotex} % arara: pdflatex: {synctex: yes} +%% %%% file `kotexdoc.tex` %% Written by Kangsoo Kim <karnes at ktug kr> %% @@ -10,7 +11,7 @@ %% 2013/11/07 %% 2014/03/01, \ksnamedef %% -%% part of ko.TeX v2.0 +%% part of ko.TeX v3.0 %% LPPL, maintained. % \documentclass[a4paper,% @@ -33,7 +34,7 @@ \SetGremphFonts{nanumgt}{nanumgt} \usepackage[normalem]{ulem} \usepackage{dhucs-trivcj} - \usepackage{dhucs-midkor} +% \usepackage{dhucs-midkor} \input sample-finemath-setup.tex \usepackage[T1]{fontenc} \renewcommand{\rmdefault}{nanummj} @@ -56,6 +57,9 @@ \SetHangulspace{1.5}{1.1} \usepackage{hologo} +\usepackage{kotex-logo} +\usepackage{ruby} +\def\rubysep{-1ex} \def\pdfTeX{\hologo{pdfTeX}} \def\pdfLaTeX{\hologo{pdfLaTeX}} \def\XeTeX{\hologo{XeTeX}} @@ -66,9 +70,9 @@ \newcommand*\kotex{\texorpdfstring{\textsf{k}\kern-0.0625em\textit{o}\kern-1.5pt\lower.15ex\hbox{.}\kern-1pt\protect\TeX}{ko.TeX}} \def\ko{\textsf{k}\textit{o}} \def\kotexplain{\kotex-\hologo{plain}} -\newcommand\kotexversion{v2.0} +\newcommand\kotexversion{v3.0} %\newcommand\kotexdate{2013년 11월} -\newcommand\kotexdate{2014년 5월} +\newcommand\kotexdate{2021년 7월} %\usepackage[ % backend=biber, @@ -84,14 +88,6 @@ %\addbibresource{texbook3.bib} % -\newenvironment{preamtext}{% - \section*{일러두기} -}{\clearpage} - -\newenvironment{preamtexttwo}{% - \section*{제2판 일러두기} -}{\clearpage} - \def\util#1{\texttt{#1}\index{Utilities!#1}\index{#1}} \def\pkg#1{\textsf{#1}\index{Packages!#1}} \def\option#1{\texttt{[#1]}\index{Options!#1}} @@ -112,11 +108,13 @@ \makeindex +\usepackage{kotex-varioref} + \begin{document} \frenchspacing -\title{한국어 텍 \kotex~\kotexversion~사용 설명서} +\title{\kotex-utf~\kotexversion~사용 설명서} \author{김강수} \date{\kotexdate} @@ -125,567 +123,35 @@ \end{titlingpage} \frontmatter - -\begin{preamtexttwo} -2007년에 \kotex 이 만들어진 이후, 이 패키지는 사실상 한국어 문헌의 -조판과 식자에 있어 가장 널리 사용되는 패키지가 되었습니다. -저자들은 이에 대해 매우 자랑스러움을 느끼고 있으며, 개선을 위해 고언을 -마다하지 않으신 사용자 여러분께 깊이 감사드립니다. - -2007년 이후, 텍 사용환경에는 극적이라 해도 좋을 만한 변화가 초래되었습니다. -특히 \XeTeX 이나 \LuaTeX 과 같은 새로운 엔진이 등장하여, -한글 식자 문제에 있어 결정적인 진보를 이룬 것은 특기할 만한 것입니다. -\kotex 의 저자들은 이와 같은 텍 환경 변화에 발맞추어 \XeTeX-\ko, \LuaTeX-\ko와 같은 패키지를 개발하여 한글 사용을 더 쉽고 강력하게 만드는 데 헌신해왔습니다. - -이에 2013년에 접어든 지금, \kotex 을 전반적으로 정비하고 그 사용 설명서를 -작성하게 되었습니다. \kotex 은 더 발전할 것이고, 더 훌륭한 한글 문헌의 -조판을 가능하게 할 것입니다. - -이 문서가 조금이라도 도움이 되기를 바랍니다. - -\bigskip - -\hfill 2013년 9월 - -\hfill (대표필자) 김강수 (識) - -\end{preamtexttwo} - -\begin{preamtext} -\kotex 은 H\LaTeX 과 hangul-ucs가 결합하여 탄생한, 명실 -상부한 ``한국어(한글) 텍 시스템''입니다. ``한글 라텍(H\LaTeX)''은 1990년대 이후 -텍에서의 한글 사용에 \dotemph{사실상 표준}이었으며, hangul-ucs는 -한글 라텍의 현저한 영향 아래서 성장한 유니코드 한글 텍 매크로였던 것입니다. - -이제 한국텍학회(KTS)의 주도 아래, 한글 라텍과 hangul-ucs가 -하나의 매크로 시스템으로 통합된 것을 매우 기쁘게 생각합니다. -이와 더불어 더욱 알차고 유용한 사용자 안내서를 작성하기 위해 -많은 노력을 하였습니다. - -한글 라텍의 표준 문서였던 ``한글 라텍 길잡이''(\wi{은광희})는 아마도 가장 많이 -읽힌 한글로 된 라텍 관련 문서 중 하나가 아닐까 합니다. 이 문서는 단순히 한글 -사용법을 넘어서서, 텍에 입문하는 데 있어서도 많은 도움을 주었습니다. - -이 문서는 한글 라텍 길잡이를 바탕으로 \kotex 에 맞도록 개정하여 -쓴 것입니다. 감사의 말과 머리말은 거의 그대로 보존하였으며, \kotex 이 -등장하는 경과를 설명하는 소절을 하나 추가하는 정도에 그쳤습니다. -다만 문체의 일치를 유지하기 위하여 이 일러두기와 감사의 말을 제외하고는 -경어체를 평어체로 고쳐썼습니다. 또한 -사용법에 있어서 한글 라텍 이후의 여러 가지 발전 사항을 새로운 편제로 -서술하려 하였습니다. 지나치게 기술적인 서술을 피하고 실제 사용자에게 -구체적인 지침을 제공하는 데 이 문서의 목적이 있습니다. - -이 문서가 \kotex 을 사용하는 분에게 조금이라도 도움이 되기를 바랍니다. -뜻하지 않은 잘못된 내용이나 실수, 빠진 내용, 오식을 바로잡아 주시면 더 나은 -사용자 안내서를 만드는 데 크게 도움이 될 것입니다. - -\bigskip -\rightline{2007년 7월} -\rightline{\wi{은광희} \wi{김도현} 김강수 (識)} - -\end{preamtext} - \tableofcontents* \mainmatter \pagestyle{hangul} -\part{총론} - -\chapter{\kotex 에 관하여} - -\section{\kotex 의 구성} - -\kotex\footnote{\kotex은 텍스트 - 상황에서 \texttt{ko.TeX}이라고 쓰고 ``케이오텍'' 또는 - ``코리언 텍''이라고 읽는다. ``코텍'' 또는 ``코텍스''라고 - 읽지 않기를 희망한다. - \texttt{ko}는 한국어를 의미하는 - 국제부호에서 취한 것이다. \texttt{ko}를 소문자로 쓴다.}% -은 한국어/한글 식자를 위한 \TeX, \LaTeX\ 패키지군을 아울러 부르는 말이다. -\wi{한국텍학회}(KTS; Korean \TeX\ Society)에서 공식적으로 개발을 후원하고 배포를 담당하고 있으며, -주개발자인 \wi{김도현} 이외 많은 기여자들이 개발에 참여하고 있다. - -2013년 현재, \kotex 은 다음과 같은 패키지들을 총칭하는 것이다. -\begin{enumerate}[(1)] -\item \textbf{\kotex-utf}. 유니코드 (UTF-8) 한글 -식자 패키지로서, ``legacy \TeX\ 엔진'' ({\small \util{tex}, \util{latex}, \util{pdftex}, \util{pdflatex}을 실행하는 경우 운용되는 \TeX\ 엔진})에 -대응한다. \LaTeX 을 위한 \pkg{dhucs}와 \hologo{plainTeX}을 위한 \pkg{kotexplain}, 그 부수파일들로 이루어져 있다.\index{dhucs} -\item \textbf{cjk-\ko}. Werner Lemberg의 \pkg{CJK} 패키지를 이용하여 -유니코드 한글을 식자하는 패키지이다. legacy \TeX\ 엔진에 대응한다. -이 패키지는 그 기원과 동작이 \kotex 과는 -제법 다르게 출발하였지만 \kotex 의 몇 가지 중요한 기능\explpunc.자동조사 등.\ 을 구현하고 있는 등, 여러 면에서 \kotex 의 일부로 간주할 수 있다. -\cmd{\usepackage\{kotex\}} 문법을 사용한다. -\item \textbf{\XeTeX-\ko}. \XeTeX\ 엔진에 대응하는 한글 식자 패키지이다. -\item \textbf{\LuaTeX-\ko}. \LuaTeX\ 엔진에 대응하는 한글 식자 패키지이다. -\item \textbf{oblivoir}. \pkg{memoir} 클래스를 이용하여 한글 문서를 작성하도록 도와주는 클래스와 패키지 묶음이다. -\item \textbf{\kotex\ utilities}. 한글 문서 작성에 필요한 유틸리티들이다. -예를 들면 색인을 만들기 위한 \util{komkindex}와 \util{xindy modules} 등이 포함되어 있다. -\end{enumerate} -다음 패키지는 이전 버전까지 \kotex 에 포함되어 있던 것들이나, 2.0 버전에서 -제외되어 현재 ``개발 중단(obsolete)'' 상태로 간주되는 것들이다. 이 패키지들은 -편의를 위하여 현재까지 \kotex\ 저장소에서 서비스하고 있다. -\begin{enumerate}[(1)] -\item \textbf{kotex-euc}. EUC-KR 한글을 식자하는 패키지였다. -\wi{은광희}의 H\LaTeX\ 1.0.1의 \LaTeX\ 파트를 바탕으로 약간의 수정을 가한 상태로 -\kotex\ 1.0에 포함되어 있었다. -\item \textbf{untype1}.\index{은글꼴 type 1} 은글꼴 type 1 폰트 묶음이다. 역시 ``개발중단'' -상태이고 \kotex\ 2.0에서는 불필요하나 이 글꼴 묶음을 필요로 하는 분이 계실 것을 감안하여 당분간 -\kotex\ 저장소를 통하여 제공받을 수 있다.\footnote{참고로, 그동안 \kotex 은 편의를 위하여 - 은글꼴 트루타입도 함께 배포해왔으나, 이것은 원래부터 \kotex 의 일부는 아니었고 단지 - 은글꼴 트루타입을 기본 글꼴로 간주한 패키지가 존재했던 데서 연유한다.} -%\item \textbf{kotex-euc-utils}. \pkg{kotex-euc} 패키지에 딸려 있는 -%유틸리티들이다. \util{hmakeindex}와 \util{hbibtex}으로 이루어져 있다. -\end{enumerate} - -이밖에 \kotex 의 일부는 아니지만 이와 밀접한 관계를 갖고 있는 패키지는 다음과 같다. -\begin{enumerate}[(1)] -\item \textbf{nanumtype1}. CTAN에 등록되어 있는 (유니코드) 한글 type 1 글꼴이다. 패키지의 관리자는 \kotex 의 주개발자인 \wi{김도현}이다. -\end{enumerate} +%\part{\kotex-utf 사용설명}\label{part:two} -%\begin{figure} -%\centering -%\includegraphics[width=.95\linewidth]{fig/whatkotexconsistof} -%\caption{\protect\kotex 의 연혁과 구성}\label{fig:consistsof} -%\end{figure} +\part{\kotex-utf 사용설명서}\label{part:two} -\section{간단한 연혁} +\section*{3.0에서 달라진 점} +\addcontentsline{toc}{section}{3.0에서 달라진 점} -\subsection{\protect\kotex 의 탄생 (2007)} - -\begin{figure}[t] -\centering -\includegraphics[width=\linewidth]{fig/histkotex} -\caption{\protect\kotex 의 탄생}\label{fig:hist} -\end{figure} - -그림~\ref{fig:hist}\는 H\LaTeX 에서 출발하여 \kotex 에 이르는 -한글 텍의 발전 과정을 요약한 것이다. - -2007년 6월 30일, 한국텍학회 모임에서, \wi{은광희}\cntrdot \wi{김도현}\cntrdot 김강수 등 -한글 라텍 및 hangul-ucs의 저자들과 KTS 임원\cntrdot 회원 등이 모인 자리에서 -이 두 한글 매크로 패키지를 통합하여 \wi{통합 한글 텍 패키지}를 제작하기로 -의견을 모은 것이다. 이것은 그동안 한글 사용에 있어서 둘 이상의 패키지가 -존재함으로 인해 빚어진 혼란을 불식하고 향후 한글 텍/라텍의 발전의 -근거를 마련했다는 점에서도 중요한 일보전진이었고, 한글 라텍으로부터 -오랜 시간 발전해 온 라텍에서의 한글 사용을 총체적으로 점검할 기회를 -얻게 되었다는 점에서도 의미가 있는 결정이었다. - -그로부터 일 개월 정도의 작업을 통하여 \kotex\ 베타 버전이 공개되었다. -\kotex 은 Unicode/UTF-8 인코딩과 EUC-KR을 모두 지원하기로 하였으나 -원칙적으로 향후의 발전 방향은 Unicode로 합의하였다. 또한 \wi{은광희}의 -UHC 글꼴을 발전시킨 `은글꼴 type 1'을 기본 글꼴로 채택하고 이를 -EUC-KR 버전에도 적용시킴으로써, 폰트를 둘러싼 이런저런 불편한 점을 -일소하였으며, pdf 제작 및 매크로의 호환성과 안정성에 있어서 -몇 가지 중요한 진보를 이루었다. - -\subsection{그 후의 발전} - -\kotex 은 \TeX\,Live\index{TeX Live}에 대응하여 개발되기 시작하였다. 2008년부터 -\TeX\,Live의 사설 저장소를 만들고 이를 통하여 \kotex 을 배포해왔다. -이 시기의 중요한 사실을 요약하면 다음과 같다. +2021년 7월의 \kotex\ 3.0에서 다음과 같은 점이 달라졌다. \begin{itemize} -\item KTUG을 통해 이루어진 Hanyang PUA project의 결과, 고문헌 -조판에 필요한 유틸리티를 갖추게 되었다. -\item \XeTeX-\ko와 \LuaTeX-\ko가 개발되었다. -글꼴의 제약이 사라짐으로써 누리게 된 이점 때문에 사실상 \XeLaTeX 을 -한글 문헌 조판에서 본격적으로 사용하게 되었다. 이에 더하여 \pkg{oblivoir}의 \XeTeX 판인 \pkg{xoblivoir}가 별도로 개발되었다. -\item \pkg{cjk-ko}, \pkg{nanumtype1}, \pkg{luatexko}, \pkg{xetexko}가 \TeX\,Live를 통해 배포되기 시작하였다. +\item 2020년 10월 이후의 \LaTeX\ 포맷의 변경에 따른 내부 코드의 수정 +\item \pkg{siunitx} 패키지와의 충돌 해결 +\item label에 한글 사용 가능 +\item 장절 표제의 형식을 다른 \koTeX\ 패키지 군과 일치하게 수정하고 +이전 형식을 사용하기 위한 \pkg{kotex-sections} 추가 \end{itemize} -현재 한글 문헌을 가장 안정적으로 조판할 수 있는 것은 -\XeTeX-\ko이다. \LuaTeX-\ko는 실험적인 성격이 강하고, -레거시 텍을 위한 \kotex-utf는 하위호환성이나 특수한 상황\footnote{% - 모바일 기기에서 텍을 이용한다든가 하는 상황. 특히 \pkg{cjk-ko}는 - 이러한 목적을 위하여 개발되었다.}% -을 위하여 -필요로 하는 정도가 되었다. -특히 유니코드 텍 엔진의 등장은 \kotex 을 개발하면서 직면했던 많은 고민들, -예컨대 글꼴 사용의 문제 같은 것을 일소할 수 있게 하였다. - -\section{\kotex 의 로고} - -\kotex 의 로고는 다음과 같다. -\begin{center} -\LARGE\kotex -\end{center} -\begin{boxedverbatim} -\newcommand*\koTeX{% - \textsf{k}\kern-0.0625em\textit{o}\kern-0.11em% - \lower.15ex\hbox{.}\kern-0.1em\protect\TeX} -\end{boxedverbatim} -이 로고는 \kotex 의 견고함과 아름다움, 그리고 유연한 표현능력을 상징한다. -\pkg{kotex-logo} 패키지에 정의되어 있으므로 \cmd{\usepackage\{kotex-logo\}}를 -선언하면 \cmd{\koTeX} 명령을 쓸 수 있다. - -\section{개발자와 라이선스} - -\kotex 의 주개발자는 다음과 같다. 개발자는 LPPL의 maintainer를 겸한다. -\begin{description}\tightlist -\item [\kotex-utf] \wi{김도현}, 김강수 (LPPL, maintained) -\item [\XeTeX-\ko] \wi{김도현} (LPPL, maintained) -\item [\LuaTeX-\ko] \wi{김도현} (LPPL, maintained) -\item [cjk-\ko] \wi{김도현} (GPL, LPPL) -\item [oblivoir] 김강수, 이기황 (LPPL, maintained) -\item [\kotex-euc] \wi{은광희}, \wi{김도현}, 김강수 (obsolete) -\item [untype1]\index{은글꼴 type 1} \wi{은광희}, \wi{박원규}, \wi{김도현}, 김강수 (obsolete) -\end{description} - -\pkg{untype1}과 \pkg{cjk-ko}의 일부 파일을 제외한 모든 패키지가 LPPL 라이선스를 가진다.\footnote{참고로, untype1은 GPL이다.} - -\chapter{사용법 개관} - -\section{kotex.sty}\label{sec:kotexsty} - -\kotex\ 전체를 통틀어 \pkg{kotex}이라는 패키지가 기본으로 불린다. -이 패키지는 현재 동작하는 \TeX\ 엔진과 주어진 옵션에 따라 적절한 -\kotex\ 패키지를 불러오는 wrapper 역할을 한다. - -\begin{boxedverbatim} -\usepackage[<options>]{kotex} -\end{boxedverbatim} - -줄 수 있는 옵션은 실제 호출되는 한글 패키지의 기능과 동작에 따라 조금씩 다르지만, \option{hangul} -옵션은 특기할 만하며, 문서의 줄 간격, `이름' 등을 한글화한다. -\option{hanja}도 -이와 비슷한데, 기본적으로 \option{hangul}을 적용한 후에 캡션 등을 -한자화한다. -이 두 옵션은 모든 \kotex\ 패키지군에 공통적으로 적용된다. - -\begin{table} -\centering -\caption{실제로 동작하는 \kotex\ 패키지}\label{tab:engines} -\begin{tabular}{c|c|c} -\hline -\cmd{\usepackage} & 대응 엔진 & 동작하는 패키지 \\ \hline \hline -\cmd{[cjk]\{kotex\}} & \pdfLaTeX & \pkg{cjkutf8-ko} \\ \hline -\cmd{...\{kotex\}} & \pdfLaTeX & \pkg{dhucs} \\ \hline -\cmd{...\{kotex\}} & \XeLaTeX & \pkg{xetexko} \\ \hline -\cmd{...\{kotex\}} & \LuaLaTeX & \pkg{luatexko} \\ -\hline -\end{tabular} -\end{table} - -\tref{tab:engines}에서 보는 바와 같이 동일한 호출 명령을 주어도 -실제로 동작하는 한글 패키지가 어떤 것이냐 하는 것은 실행되는 -텍 엔진과 옵션에 따라 달라진다.\footnote{% - 이전까지 존재하던 \option{euc} 옵션은 \pkg{kotex-euc}를 - 로드하도록 하는 것이었다. 하위 호환성을 위하여 이 옵션은 (이 문서에서는 - 설명하지 않지만) 여전히 유지되고 있다.} - -\section{\protect\pdfLaTeX\ 또는 \LaTeX 으로 컴파일} - -\noindent\cmd{\usepackage[cjk]\{kotex\}} - -위와 같이 \option{cjk}가 주어지면 \pkg{cjk-ko} 패키지를 부른다. -정확하게는 \pkg{cjkutf8-ko.sty}라는 파일을 불러온다. -추가할 수 있는 동작은 \option{hangul}, \option{hanja}, -\option{nojosa}라는 공통 옵션 이외에 \option{usedotemph}, -\option{usecjkt1font}가 있다. 각각의 의미와 동작에 대해서는 -\Cref{chap:docu}에서 언급한 문서를 보라. - -\bigskip - -\noindent\cmd{\usepackage[utf]\{kotex\}} - -\pkg{dhucs.sty}를 찾는다. 이것이 기본값이며, -이 문서의 제\,\ref{part:two}\,편에서 설명하는 것이 이 경우의 -문서 작성법이다. -\XeTeX과 같은 새로운 엔진이 등장하기 전에 -\kotex 이라 하면 \pkg{dhucs}를 -통하여 \pdfLaTeX 으로 한글을 식자하는 것을 -일컫는 것이었다. -기본값이므로 \option{utf}를 지정하지 않아도 된다. -추가 옵션에 대해서는 이 문서의 해당 부분(제\,\ref{part:two}\,편)을 참고하라. - -\section{\XeLaTeX\ 또는 \LuaLaTeX 으로 컴파일} - -각각 \pkg{xetexko.sty}와 \pkg{luatexko.sty}를 찾는다. -즉 \cmd{\usepacakge\{kotex\}}을 지정하는 것은 동일하지만 -\util{xelatex}으로 문서를 컴파일한다면 전혀 다른 패키지를 사용하는 -것인 셈이다. - -이 엔진과 패키지를 사용하는 것은 종래의 \pdfLaTeX 으로 작업하는 것과는 -몇몇 부분이 다르다. 따라서 해당 문서를 잘 읽고 이에 대응해야 한다. -그러나 \option{hangul}, \option{hanja} 옵션은 여전히 -비슷한 의미로 동작한다. - -\section{엔진별 동작의 예시} - -어떤 문서를 작성하였고, 어떤 엔진으로 컴파일될지 모르는 상황이라면 -되도록 호환성있게 원본 자체를 작성하면 좋을 것이다. -이럴 때 요긴하게 쓸 수 있는 패키지로 \pkg{iftex}이 있다. -다음 보기는 이러한 상황에 대응하는 한 가지 예이다. (cjk-\ko를 이용하는 -경우는 예시에서 제외되었다.) - -\begin{boxedverbatim} -\documentclass{article} - -\usepackage[hangul]{kotex} - -\usepackage{iftex} -\ifPDFTeX - \usepackage{dhucs-nanumfont} -\else\ifXeTeX - \setmainhangulfont{NanumMyeongjo} -\else\ifLuaTeX - \setmainhangulfont{NanumMyeongjo} -\fi\fi\fi -\end{boxedverbatim} - -\section{pdf 문서 작성을 위한 설정}\label{sec:makepdf} - -\subsection{pdf bookmark} - -%\paragraph{pdf bookmark} - -\pkg{hyperref}에 -\option{pdfencoding = auto} 옵션을 지정하는 것으로 pdf bookmark 문제가 -모두 해결된다.\footnote{% - 과거 \XeTeX 을 사용할 때는 \option{unicode} 옵션을 선언하지 - 않고 \LuaTeX 이나 \pdfTeX 에서는 \option{unicode}를 선언하도록 - 권장했다. 이 방법은 여전히 유효하나 \option{pdfencoding=auto}를 - 쓰면 엔진에 따라 옵션을 달리 주어야 할 필요가 없다.} -\begin{verbatim} -\usepackage{kotex} -\usepackage{pdfencoding=auto,bookmarks]{hyperref} -\end{verbatim} -%여기서는 \option{unicode} 옵션이 반드시 지정되어야 한다. -%\option{pdftex}은 컴파일 상황에 따라 \option{dvipdfmx} -%또는 \option{dvips}를 -%지정할 수 있다. -% -%위의 예에 상당하는 컴파일 절차 예시는 다음과 같다. -%\begin{verbatim} -%$ (pdf)latex foo -%$ (pdf)latex foo -%$ (dvipdfmx foo) -%\end{verbatim} - -\subsection{텍스트 검색과 추출} -pdf 문서의 텍스트 검색과 추출은 매우 중요한 문제이다. -이것은 어떤 드라이버로 pdf를 생성하느냐에 따라 조금 달라지는데, 일괄 -요약하면 다음과 같다. -\begin{description} -\item[dvipdfmx] type 1 글꼴을 매우 잘 처리하고 -이로부터 검색 및 추출이 가능한 pdf를 만들어낸다. 별도의 조치가 -필요없다. -\item[dvips] 트루타입을 처리하지 못하는 점 때문에 이전부터 -문제가 있다고 생각되었으나 type 1 폰트를 사용하는 한 -검색 추출에 문제는 없다. 역시 별도의 조치가 필요없다. -\item[pdftex] 이때는 \cmd{\pdfgentounicode}를 -활성화해주어야 한다. -\end{description} -그러므로 \wi{전처리부}(preamble)\explpunc.\cmd{\begin\{document\}} 명령이 놓이기 전.\ 에 다음과 같이 선언하는 것으로 충분하다. -\begin{verbatim} -\ifpdf - \input glyphtounicode - \pdfgentounicode=1 -\fi -\end{verbatim} - -어떤 드라이버를 사용하든 모두 포스트스크립트 윤곽선 글꼴이 사용되고, -pdf 북마크가 잘 만들어지며 한글 텍스트의 검색과 추출이 자유롭다. - -\paragraph{oblivoir} -\pkg{oblivoir}는 위의 절차를 모두 자동화해두었다. - -%\subsection{\LuaTeX, \XeTeX} -% -%이 엔진을 사용하는 경우, 기본 output이 pdf 포맷이다. -%pdf bookmark의 경우만이 문제가 되는데, \pkg{hyperref}을 사용할 때 -%\begin{verbatim} -%pdfencoding = auto -%\end{verbatim} -%옵션을 쓰면 \pdfTeX, \XeTeX, \LuaTeX 을 불문하고 책갈피에서 한글이 깨지지 않게 해준다. -% -%과거에는 \XeTeX\ 사용시에 \option{unicode} 옵션을 주지 않아야 하는 데 -%주의해야 했으나 위와 같이 하면 자동적으로 처리된다. - -\chapter{문서와 도움말}\label{chap:docu} - -이 문서는 \kotex\ 전반에 대한 개괄적 사항을 언급하는 것과 더불어 -\kotex-utf 설명서(제\,\ref{part:two}\,편)를 겸한다. \kotex-utf 이외의 패키지, -\XeTeX-\ko나 \LuaTeX-\ko의 경우 별도의 사용안내서가 마련되어 있다. -그러므로 사용법에 대한 안내를 얻으려면 각 패키지별 문서들을 참조하여야 한다. -문서를 읽을 때는 \TeX\,Live 유틸리티 \util{texdoc}을 이용한다. -이 문서 자체는 명령행에서 \cmd{texdoc kotex}으로 읽을 수 있다. - -\begin{description} -\item [cjk-ko] cjk-ko-doc 문서를 찾아 읽는다. 명령행에서 \cmd{texdoc cjk-ko} 명령을 내리면 읽을 수 있다. -\item [\XeTeX-\ko] xetexko-doc 문서를 찾아 읽는다. 명령행에서 \cmd{texdoc xetexko} 명령을 내리면 읽을 수 있다. -\item [\LuaTeX-\ko] luatexko-doc 문서를 찾아 읽는다. 명령행에서 \cmd{texdoc luatexko} 명령을 내리면 읽을 수 있다. -\item [oblivoir] memoir 안내서를 보아야 한다. 이것은 -\cmd{texdoc memman} 명령으로 읽을 수 있다.. 한편, 한글화 부분에 대한 사항을 참고하려면 \cmd{texdoc ultrasimple} 명령으로 볼 수 있는 문서와 \cmd{texdoc memucs-manual}으로 볼 수 있는 문서를 함께 참고한다. -\end{description} - -%2.0 버전에서 제외된 패키지들을 굳이 사용할 필요가 있을 때, -\kotex-euc와 \pkg{untype1}의 -사용법을 알려면 다음 문서를 참고하라. - -\begin{description} -\item [kotexguide] \kotex\ 0.1.0 사용자 설명서이다. -특히 \kotex-euc\index{Packages!kotex-euc}와 \pkg{untype1}\index{은글꼴 type 1}에 관한 방대한 사용 설명이 존재한다. -\pkg{kotex-euc}를 설치하면 포함되어 있다. -\end{description} - - -\chapter{배포와 설치} - -\section{CTAN을 통한 배포} -%현재 \kotex 은 -%\begin{enumerate}[(1)] -%\item \wi{CTAN}\footnote{\url{http://ctan.tug.org}}에 등재 -%\item \kotex\ 사설 저장소\footnote{\url{http://ftp.ktug.org/KTUG/texlive}}를 통하여 배포 -%\end{enumerate} - -2014년 5월 현재, \kotex\ 패키지군은 거의 모두 -CTAN에 등재되었다. CTAN을 통해 배포되는 패키지는 다음과 같다: -\begin{quote} -\pkg{kotex-utf}, \pkg{xetex-ko}, \pkg{luatex-ko}, -\pkg{cjk-ko}, \pkg{kotex-oblivoir}, \pkg{kotex-utils}, -\pkg{kotex-plain} -\end{quote} - -이 가운데, \pkg{kotex-plain}, \pkg{cjk-ko}, \pkg{xetex-ko}, -\pkg{kotex-utf}는 서로 필요로 하는 파일이 의존되어 있어 함께 -설치하는 것이 좋다. \pkg{luatex-ko}에서도 \pkg{xetex-ko}에서 -필요한 파일을 찾을 때가 있다. - -\hologo{pdfLaTeX}을 사용하려면 (다른 폰트를 설치하지 않은 경우) \pkg{nanumtype1}이 필요하다. 이 역시 -CTAN을 통해 배포된다. - -%\kotex\ 패키지군 가운데 2013년 11월 현재 CTAN에 등재되어 있는 것은 -%\pkg{cjk-ko}, \pkg{xetexko}, \pkg{luatexko}, 세 종류이다. -%이들은 \TeX\,Live\index{TeX Live} 배포판에도 포함되어 있다. -%\pkg{nanumtype1} 패키지 역시 그러하다. - -%\kotex\ 사설 저장소에는 이보다 많은 패키지가 서비스되고 있다. \kotex-utf의 -%매크로와 유틸리티도 -%이곳에서 배포된다.\footnote{% -% 멀지 않은 장래에 \pkg{dhucs}, 즉 \kotex-utf도 CTAN을 통하여 배포될 전망이다.} - -CTAN에 등재된 패키지들은 각 배포판의 패키지로서 배포된다. -\begin{description} -\item [\TeX\,Live] 위에 언급된 모든 패키지가 포함되어 있다. -\item [MiK\TeX] \pkg{kotex-utils}를 제외한 패키지가 포함되어 있다. -\end{description} - -\TeX\,Live는 한글 관련 패키지와 유틸리티, 문서를 \pkg{collection-langkorean}이라는 콜렉션 패키지로 묶어서 배포한다. - -\section{KTUG 사설 저장소} - -과거 \kotex 이 CTAN에 등재되기 전에 KTUG은 \kotex\ 사설 저장소를 운영하여 \TeX\,Live에서의 설치를 지원하였다(2008--2013). - -현재 사설 저장소는 CTAN에 등재하면서 제외된 \kotex-euc 파트와 은 글꼴(트루타입, type1) 및 KTUG에서 제작된 유용한 패키지와 유틸리티들을 추가적으로 서비스하는 목적으로 운영되고 있다. -%에서 서비스되는 패키지는 \pkg{kotex-base}, \pkg{kotex-extra}, \pkg{jiwonlipsum}, \pkg{kotex-midkor}, \pkg{kotex-euc}인데 필수적인 패키지는 모두 CTAN으로 올라갔고 \kotex 의 기능을 -%확장하는 보충적인 패키지들이 사설 저장소를 통하여 제공되고 있다. - -%CTAN에 등재된 패키지들은 \TeX\,Live, MiK\TeX\ 등의 텍 배포판에 -%포함될 수 있다. 따라서 \TeX\,Live를 설치한 경우 별도의 추가 작업 없이도 -%\kotex\ 관련 패키지를 설치 운영할 수 있게 되는 것이다. - -사설 저장소는 파일들을 몇 가지 ``설치용'' 패키지로 나누어서 제공한다. -2014년 5월 현재 사설 저장소를 통하여 설치할 수 있는 것은 다음과 같다.\footnote{% - 여기서 `패키지'란 \LaTeX\ 매크로 패키지를 가리키는 것이 아니라 - 저장소에서 파일을 구분하는 단위를 말한다.} -\begin{description} \tightlist -%\item [\texttt{collection-kotex}] 중요한 설치 패키지를 한꺼번에 관리하기 위한 -%메타패키지이다. 여기에는 \file{kotex}, \file{kotex-utils}, \file{jiwonlipsum}, -%\file{kotex-dev}가 포함된다. -%\item [\texttt{kotex}] \pkg{dhucs} 관련 파일의 묶음이다. -%\item [\texttt{kotex-dev}] \pkg{oblivoir} 관련 파일 묶음이다. -%\item [\texttt{kotex-utils}] \kotex 이 제공하는 유틸리티 프로그램과 스타일 패키지를 포함한다. -\item [\texttt{kotex-euc}] 이전 버전 \kotex 의 euc-kr 한글 식자 관련 파트이다. 이 패키지를 사용하려면 \pkg{unfonts-base}가 필요하다. -\item [\texttt{unfonts-base}] 은글꼴 type 1과 트루타입이다. -%kotex-base라는 이름은 종래 은글꼴이 \kotex 의 기본 글꼴이었던 데서 연유한다. 이 명칭은 지금 형편에 맞지 않으므로 추후 개명될 전망이다. -은바탕, 은돋움, 은그래픽, 은타자 글꼴이 포함되어 있다. -\item [\texttt{unfonts-extra}] 은글꼴 type 1과 트루타입으로 base에 포함되지 않은 것들이다. -\item [\texttt{nanumbaruntype1}] 나눔바른고딕의 type 1 글꼴이다. -\item [\texttt{kotex-midkor}] 옛한글 식자에 필요한 패키지와 폰트 묶음이다. -\item [\texttt{jiwonlipsum}] lipsum의 한글화 버전이다. -\item [\texttt{kswrapfig}] Karnes가 작성한 패키지로서 그림 주변으로 텍스트가 흐르게 할 때 그림과 텍스트 간의 위치와 간격을 조절하는 명령을 제공한다. -\item [\texttt{ob-chapstyles}] oblivoir 클래스에서 사용하는 장 표제의 예제를 포함하고 있다. -\item [\texttt{hanjacnt}] 한자와 한글 카운터를 제공한다. -\item [\texttt{arara-rules-ko}] komkindex, kotexindy, dvipdfmx를 위한 arara rules 파일. -\item [\texttt{ktugbin}] \kotex\,Live에서 제공하던 유틸리티 몇 개를 설치한다. (Windows) -\item [\texttt{texworks-config}] \kotex\,Live에서 제공하던 \TeX works 설정 파일. (Windows) -\end{description} - -\kotex\ 사설 저장소는\index{ko.TeX repository} \TeX\,Live의 \util{tlmgr} 유틸리티를 통하여 -간단히 등록하고 관리할 수 있다. -먼저 다음 명령을 내리면 저장소가 등록된다. -\begin{verbatim} -$ tlmgr repository add http://ftp.ktug.org/KTUG/texlive/tlnet/ ktug -\end{verbatim} -이제 이 저장소를 이용하기 위하여 \TeX\,Live의 texmf 트리 아래의 \file{tlpkg} 디렉터리(이를테면 \texttt{/usr/local/texlive/texmf-local/tlpkg})에 -\begin{boxedverbatim} -ktug:* -\end{boxedverbatim} -이라는 내용을 갖는 \file{pinning.txt} 파일을 만들고 -\begin{verbatim} -$ tlmgr install unfonts-base -$ tlmgr remove unfonts-base -\end{verbatim} -명령을 통하여 필요한 패키지를 설치하거나 제거할 수 있다. - -이 문서를 오류없이 컴파일하기 위해서는 KTUG 사설 저장소로부터 \pkg{kotex-midkor} 패키지를 설치하여야 한다. - -%% -%%\bigskip -%% -%% -%%%다음 설치 패키지들도 함께 제공한다. -%%%\begin{description} \tightlist -%%%\item [\texttt{kotex-euc}] \pkg{kotex-euc}와 \pkg{kotexguide} 등 이전 버전에 -%%%포함되어 있던 파트를 서비스한다. -%%%\item [\texttt{kotex-base}] \pkg{untype1}이다. 이름이 kotex-base로 되어 있는 것은 -%%%예전 버전에서 은글꼴 type 1이 기본 글꼴이었던 데서 유래한다. 이 명칭은 지금 형편에 맞지 않으므로 -%%%추후 개명될 전망이다. -%%%은바탕, 은돋움, 은그래픽, 은타자 글꼴이 포함된다. -%%%\item [\texttt{kotex-extra}] \pkg{untype1}의 extra 부분이다. -%%%\end{description} -%% -%%이들 각각을 자신의 \TeX\,Live 시스템에 설치하려면 -%%\begin{verbatim} -%%$ tlmgr install kotex-midkor -%%\end{verbatim} -%%와 같은 방식의 명령을 내리면 된다. - -\section{\kotex\,Live}\index{ko.TeX Live} - -\wi{한국텍학회}와 \wi{KTUG}에서는 텍 시스템과 \kotex\ 설치와 운영에 곤란을 겪는 -\wi{윈도우즈 운영체제} 사용자를 위하여 \TeX\,Live와 \kotex 을 한번에 -설치할 수 있게 도와주는 설치 프로그램 \kotex\,Live를 제공하고 있다.\index{ko.TeX Live} - -저장소의 등록, 관리와 같은 번거로운 절차를 자동화하였고 한글 문서 작성에 -필요한 도구와 예제를 제공한다. 윈도우즈 상에서 \kotex 을 설치하는 가장 손쉬운 방법이다. - -이에 대한 자세한 사항은 KTUG\footnote{\url{http://www.ktug.org}}을 -방문하여 정보를 얻을 수 있다. - -\section{\TeX\,Live 이외의 텍 배포판의 경우} - -예컨대 윈도우즈의 MiK\TeX 과 같은 배포판이라면, 적어도 CTAN에 등재된 -패키지는 설치가 가능하다. 즉 현재 \pkg{cjk-ko}, \pkg{xetex-ko}, \pkg{luatex-ko}, \pkg{kotex-utf}, \pkg{kotex-plain}, \pkg{kotex-oblivoir} -MiK\TeX 의 패키지매니저를 이용하여 설치 운용할 수 있다.\index{MiKTeX} - -\util{tlmgr}이 없는 텍 배포판이라도 \TeX\,Live를 바탕으로 하고 있다면 마찬가지로 \kotex 을 운용하는 것이 -가능할 것이다. 적어도 \file{collection-langkorean}라는 콜렉션 패키지를 설치하면 된다. - -그 이외의 경우에는 앞서 언급한 \kotex\ 패키지 저장소를 직접 방문하여 자신의 시스템에 -설치할 수 있다. 이 문제에 대해서 이 글에서는 더 다루지 않겠다. - -\part{\kotex-utf 사용설명}\label{part:two} - \chapter{유니코드 문서 작성하기} \section{개관} \kotex-utf는 \wi{UTF-8} \wi{유니코드}로 입력되는 한글을 \LaTeX\ 문서에서 -식자하고 조판하게 하려는 스타일 패키지로서, 그 핵심 부분인 \pkg{dhucs}를 +식자하고 조판하게 하려는 스타일 패키지로서, 그 핵심 부분인 \pkg{kotex-utf.tex}을 \wi{김도현}이 작성하였다. \section{첫번째 문서} @@ -698,13 +164,7 @@ MiK\TeX 의 패키지매니저를 이용하여 설치 운용할 수 있다.\inde \usepackage[hangul,nonfrench,finemath]{kotex} \usepackage{dhucs-nanumfont} -\usepackage{ifpdf} -\ifpdf - \usepackage[pdfencoding=auto,pdftex,colorlinks]{hyperref} - \input glyphtounicode \pdfgentounicode=1 -\else - \usepackage[unicode,dvipdfmx,colorlinks]{hyperref} -\fi +\usepackage[colorlinks]{hyperref} \begin{document} @@ -718,14 +178,13 @@ MiK\TeX 의 패키지매니저를 이용하여 설치 운용할 수 있다.\inde 제3행에서 \texttt{kotex} 패키지를 \cmd{\usepackage}한다. \kotex 의 모든 패키지는 이 wapper를 통하여 호출된다. -\pdfLaTeX 이 실행되고 \option{cjk}나 \option{euc}같은 -옵션이 없으면 이 스타일은 \pkg{dhucs}를 부른다. -(\pageref{sec:kotexsty}페이지 \ref{sec:kotexsty}절을 보라.) +\pdfLaTeX 이 실행되고, 옵션이 없으면 이 스타일은 \pkg{kotex-utf.sty}를 부른다. +%(\pageref{\}페이지 \ref{sec:kotexsty}절을 보라.) %또한 대부분의 contrib 패키지의 명칭은 %\texttt{dhucs-}로 시작한다. -제8행 이후에서 \pkg{hyperref}\을 로드한다. 반드시 -\option{unicode} 옵션을 주어야 한다. +제8행 이후에서 \pkg{hyperref}\을 로드한다. +%반드시 \option{unicode} 옵션을 주어야 한다. \wi{bookmarks} 설정은 \pkg{hyperref}의 default이므로 별도로 지정하지 않아도 책갈피가 만들어진다. 만약 책갈피를 만들지 않고자 한다면 옵션에서 \verb|bookmarks=false|라고 한다. @@ -737,15 +196,15 @@ MiK\TeX 의 패키지매니저를 이용하여 설치 운용할 수 있다.\inde % 따라 불필요해졌으므로 \kotex 에서는 이 부가 패키지를 제공하지 % 않는다.} -제7행 이후의 \verb|\ifpdf .. \else .. \fi| 구문은 pdf\LaTeX 의 -실행 여부에 따라 서로 다른 설정을 하는 부분이다. 이 구문을 -사용하려면 \pkg{ifpdf}\가 필요하다. -주로 컴파일 루트가 \util{pdflatex}으로부터 직접 \file{pdf}를 얻는 -것이 아니라 \util{dvipdfmx}를 이용하여 \file{dvi}를 \file{pdf} 변환하는 -방식으로 작업할 때를 위하여 이런 구문을 쓴다. +%제7행 이후의 \verb|\ifpdf .. \else .. \fi| 구문은 pdf\LaTeX 의 +%실행 여부에 따라 서로 다른 설정을 하는 부분이다. 이 구문을 +%사용하려면 \pkg{ifpdf}\가 필요하다. +%주로 컴파일 루트가 \util{pdflatex}으로부터 직접 \file{pdf}를 얻는 +%것이 아니라 \util{dvipdfmx}를 이용하여 \file{dvi}를 \file{pdf} 변환하는 +%방식으로 작업할 때를 위하여 이런 구문을 쓴다. -제9행은 pdf\LaTeX 에서 텍스트의 검색\cntrdot 추출을 가능하게 -하는 행이다. +%제9행은 pdf\LaTeX 에서 텍스트의 검색\cntrdot 추출을 가능하게 +%하는 행이다. %DVIPDFM$x$를 위해서는 별도의 설정이 필요없다. %제4행부터 제8행까지는 반드시 필요한 경우가 아니면 꼭 지정하지 않아도 상관없다. @@ -879,8 +338,8 @@ $ dvipdfmx firsttest 이를 위하여 이 패키지는 \option{hangul} 패키지 옵션을 제공한다. 이 옵션이 지시되면 한글 이름, 한글 장절표제 등을 활성화하고 행간을 한글에 알맞게 설정한다. -또한, \wi{장절 명령}과 관련해서 %\kotex/euc와 동일한 -\cmd{\kscntformat} 명령이 작동한다. +%또한, \wi{장절 명령}과 관련해서 %\kotex/euc와 동일한 +%\cmd{\kscntformat} 명령이 작동한다. % <!-- 2014/03/01, ksnamedef --> %\wi{한글 이름}과 관련해서 \cmd{\ksnamedef} 명령도 작동한다. %이 명령의 의미와 사용법에 대해서는 \pageref{sec:names} 페이지의 @@ -949,15 +408,36 @@ $ dvipdfmx firsttest \end{verbatim} \subsection{장절명령} -article 문서에서 한글 서식을 사용하면서 장절 표제의 ``제 1 절''과 같은 양식을 -쓰지 않으려면 다음과 같이 설정하는 것이 일반적이다. 이 매크로는 \thispkg 에 -\texttt{[hangul]} 옵션을 지정한 경우에만 쓸 수 있다.\footnote{% - \cmd{\kscntformat} 명령은 \pkg{kotex-utf}에만 있는 명령이다. - \XeTeX-\ko, \LuaTeX-\ko에서는 이 명령을 제공하지 않는다. 다만 - \pkg{oblivoir}에서는 (section 이하 수준의 장절명령에 대하여) 이 명령을 쓸 수 있다. \pkg{titlesec}이나 \pkg{sectsty} 패키지를 이용하여 간단히 바꾸는 것이 가능하기 때문이다.} +H\LaTeX 의 한글 서식에서 장절 표제는 \LaTeX\ 표준 패키지(\pkg{article}, +\pkg{book}, \pkg{report})의 section에 대하여 +``제~1~절''과 같은 양식을 가지고 있었다. 반면 최근 \koTeX 의 주류가 +되어 가고 있는 \XeTeX-\ko 등에서는 단순히 ``1''만을 식자한다. +\koTeX-utf는 일관성과 통일을 위하여 이전까지 내려오던 H\LaTeX\ 양식을 +버리고 더 단순한 형식을 사용하도록 수정하였다. + +\bigskip + +그러나 이전에 작성된 문서와 같이 전과 같은 장절 표제의 양식이 필요한 때가 +있을 것이다. 이를 위하여 별도로 \pkg{kotex-sections} 패키지를 제공한다. +즉, 예전 스타일의 장절 표제를 쓰려면 \begin{verbatim} -\kscntformat{section}{}{} +\usepackage{kotex-sections} \end{verbatim} +을 preamble에서 명시적으로 선언하라. +특히 \cmd{\kscntformat}으로 장절 표제의 형식을 바꾸려 하는 경우에는 +이 패키지가 필수적이다.\footnote{% + \pkg{kotex-sections}는 \XeTeX-\ko나 \LuaTeX-\ko에서도 + 적용할 수 있다.} + +%article 문서에서 한글 서식을 사용하면서 장절 표제의 ``제 1 절''과 같은 양식을 +%쓰지 않으려면 다음과 같이 설정하는 것이 일반적이다. 이 매크로는 \thispkg 에 +%\texttt{[hangul]} 옵션을 지정한 경우에만 쓸 수 있다.\footnote{% +% \cmd{\kscntformat} 명령은 \pkg{kotex-utf}에만 있는 명령이다. +% \XeTeX-\ko, \LuaTeX-\ko에서는 이 명령을 제공하지 않는다. 다만 +% \pkg{oblivoir}에서는 (section 이하 수준의 장절명령에 대하여) 이 명령을 쓸 수 있다. \pkg{titlesec}이나 \pkg{sectsty} 패키지를 이용하여 간단히 바꾸는 것이 가능하기 때문이다.} +%\begin{verbatim} +%\kscntformat{section}{}{} +%\end{verbatim} 이 명령의 사용법은 다음과 같다. \begin{verbatim} @@ -998,8 +478,9 @@ article 문서에서 한글 서식을 사용하면서 장절 표제의 ``제 1 설령 구현된다 하더라도 강조의 의미는 별로 드러나지 않는 장식적인 문자꼴이 되어버리고 만다. \kotex-utf는 H\LaTeX\ 이래의 전통을 감안하여 \emph{기울인 글자체} 강조 -방식을 기본값으로 채택하고 있다.\footnote{% - \pkg{xetex-ko}나 \pkg{luatex-ko}에서는 기울인 글자체를 이탤릭에 대응하여 쓰기 위해서 \texttt{ItalicFont, ItalicFeatures} 폰트 속성을 부여하여야 한다. 자세한 것은 \pkg{xetex-ko}의 문서를 참고하라.} +방식을 기본값으로 채택하고 있다. +%\footnote{% +% \pkg{xetex-ko}나 \pkg{luatex-ko}에서는 기울인 글자체를 이탤릭에 대응하여 쓰기 위해서 \texttt{ItalicFont, ItalicFeatures} 폰트 속성을 부여하여야 한다. 자세한 것은 \pkg{xetex-ko}의 문서를 참고하라.} \regremph @@ -1037,7 +518,7 @@ article 문서에서 한글 서식을 사용하면서 장절 표제의 ``제 1 \hline 상점 & \verb|\dotemph| & \verb|\dotemph| \verb|\dotem|$^{a}$ & $^{a}$선언형 \\ 고리상점 & \verb|\circemph|$^{*}$ & \verb|\circemph| \verb|\circem|$^{a}$ & $^{*}$\texttt{[hangul]}\\ -임의의 상점 & \verb|\useremph|$^{*}$ & & \\ +%임의의 상점 & \verb|\useremph|$^{*}$ & & \\ \hline \end{tabular} \end{center} @@ -1045,26 +526,28 @@ article 문서에서 한글 서식을 사용하면서 장절 표제의 ``제 1 \texttt{\textbackslash dotemph} 명령으로 점을 한글 글자 위에 찍을 수 있다. \texttt{[hangul]} 옵션을 지시하면 \texttt{\textbackslash circemph}와 \texttt{\textbackslash dotemph} -그리고 \texttt{\textbackslash useremph}, 세 개의 명령을 사용할 수 있고, -이 가운데 \texttt{\textbackslash useremph}는 사용자가 설정 가능하다. -선언형은 제공하지 아니한다. +%그리고 \texttt{\textbackslash useremph}, +두 개의 명령을 사용할 수 있다. +%고, +%이 가운데 \texttt{\textbackslash useremph}는 사용자가 설정 가능하다. +%선언형은 제공하지 아니한다. \begin{quote} 한글의 본 이름은 \dotemph{훈민정음}이다.\\ 중요한 것은 \circemph{왜 사느냐}가 아니라 \circemph{어떻게 사느냐} 하는 문제이다. \end{quote} -\ifPDFTeX -\renewcommand\useremphchar{\tiny★} -\setlength\useremphraisedim{10pt} -\useremph{사용자 정의 드러냄표}는 다음과 같은 방식으로 사용할 수 있다. - -\begin{verbatim} -\renewcommand\useremphchar{\tiny★} -\setlength\useremphraisedim{10pt} -\useremph{사용자 정의 드러냄표} -\end{verbatim} -\fi +%%\ifPDFTeX +%%\def\useremphchar{\tiny★} +%%\setlength\useremphraisedim{10pt} +%%\useremph{사용자 정의 드러냄표}는 다음과 같은 방식으로 사용할 수 있다. +%% +%%\begin{verbatim} +%%\renewcommand\useremphchar{\tiny★} +%%\setlength\useremphraisedim{10pt} +%%\useremph{사용자 정의 드러냄표} +%%\end{verbatim} +%%\fi \subsubsection{\protect\uline{밑줄} 강조}\index{강조!밑줄}\label{sec:underline} @@ -1355,19 +838,21 @@ hangpar, varhangpar \verb|\Hnum{test}| & \Hnum{test} \\ \verb|\hroman{test}| & \hroman{test} \\ \verb|\hRoman{test}| & \hRoman{test} \\ +\verb|\hNum{test}| & \hNum{test} \\ +\verb|\hanjanum{test}| & \hanjanum{test} \\ \end{tabular} \caption{한글식 카운터}\label{tab:kocounter} \end{figure} 그림~\ref{tab:kocounter}\과 같은 한글 \wi{카운터 형식}을 제공한다. -\texttt{[hangul]} 옵션을 주면 다음과 같은 카운터 형식을 몇 개 더 -사용할 수 있다. -\begin{verbatim} -\hNum{cnt}, \hanjanum{cnt} -\end{verbatim} -\verb|cnt| 값이 2일 때, 각각 \hNum{test}, \hanjanum{test}% -%, \HArabic{test} -로 표현된다. +%\texttt{[hangul]} 옵션을 주면 다음과 같은 카운터 형식을 몇 개 더 +%사용할 수 있다. +%\begin{verbatim} +%\hNum{cnt}, \hanjanum{cnt} +%\end{verbatim} +%\verb|cnt| 값이 2일 때, 각각 \hNum{test}, \hanjanum{test}% +%%, \HArabic{test} +%로 표현된다. \subsection{자동조사 명령}\index{자동조사} @@ -1577,6 +1062,8 @@ $x$에 임의의 값이 주어지면 $f(x)$를 통해서 그 $x$에 대응하는 이 문서와 함께 제공되는 소스에 딸린 \file{sample-finemath-setup.tex}이라는 부수 파일을 열어보면 다른 값을 어떤 식으로 설정하는지에 대한 힌트를 얻을 수 있다. +\boxedverbatiminput{sample-finemath-setup.tex} + %\subsection{한글 폰트스펙}\label{sec:microtypo} % %한글 문서의 조판에서 영문 폰트와의 불일치 또는 부조화가 오래도록 @@ -1704,7 +1191,8 @@ pdf\TeX 이라는 엔진으로 margin kerning과 font expansion을 폰트 확장을 한글에 적용하기 위해서는 다음 조건이 갖추어져야 한다. \begin{enumerate} -\item pdf\LaTeX 으로 컴파일할 것\footnote{참고로 \LuaTeX 은 \pdfTeX 의 기능을 계승하고 있다.} +\item pdf\LaTeX 으로 컴파일할 것 +%\footnote{참고로 \LuaTeX 은 \pdfTeX 의 기능을 계승하고 있다.} \item type 1 혹은 트루타입\cntrdot 오픈타입 글꼴이 사용될 것 \item \pkg{microtype}에 의한 설정이 활성화될 것 \end{enumerate} @@ -1822,10 +1310,15 @@ pdf\TeX 이라는 엔진으로 margin kerning과 font expansion을 \section{한글 PDF 만들기}\label{sec:pdf} -\pageref{sec:makepdf}페이지 \ref{sec:makepdf}절에서 -pdf 제작에 관한 사항을 개괄하였다. 여기서는 이 문제에 대하여 -조금 더 다루려고 한다. +%\pageref{sec:makepdf}페이지 \ref{sec:makepdf}절에서 +%pdf 제작에 관한 사항을 개괄하였다. 여기서는 이 문제에 대하여 +%조금 더 다루려고 한다. + +version 3.0 문서를 읽고 있는 현재, \pdfTeX 이나 \util{dvipdfmx}를 +이용하여 한글 pdf를 제작하는 것은 거의 완벽하게 해결되어 있고, 사용자가 +별달리 신경쓸 것이 없어졌다. +역사적으로, 한글 pdf 문서를 만드는 데 있어서 지금까지 요청되어 왔던 것은 대략 다음과 같\다. \begin{itemize} @@ -1847,24 +1340,27 @@ hyperref 설정은 다음 세 가지 방법으로 이루어진다. \item\label{itm:two} \verb|\hypersetup| 문장 \item\label{itm:three} \file{hyperref.cfg}에 미리 설정된 옵션 \end{enumerate} -예컨대 한글 문서를 주로 작성하는 경우 hyperref의 \texttt{[unicode]} -옵션이 필요하다. 그리고 클래스 자신이 hyperref을 스스로 로드하는 +%예컨대 한글 문서를 주로 작성하는 경우 hyperref의 \texttt{[unicode]} +%옵션이 필요하다. 그리고 +클래스 자신이 hyperref을 스스로 로드하는 경우에는 (\ref{itm:one})이나 (\ref{itm:two})\과 같은 방법으로 이 옵션을 활성화할 수 없게 되어 있는 경우가 있다. 이럴 때는 (\ref{itm:three}) 방법을 사용한다. 즉 \file{hyperref.cfg}에 (\ref{itm:two})의 문장을 미리 적어넣어두는 것이다. -\subsection{한글 책갈피}\index{pdf bookmark} -pdf 문서 제작에 있어서 한글 책갈피(bookmark)가 필요하면, -다음과 같이 한다. -\begin{verbatim} -\usepackage[pdfencoding=auto,<driver>,...]{hyperref} -\end{verbatim} -\pkg{hyperref}의 개선이 이루어짐에 따라, 한글 책갈피를 만들기 위해 -별도의 복잡한 조치를 취할 필요가 없게 되었다. 다만, 컴파일 루트에 따라서 \verb|<driver>|를 -명시해주어야 한다는 데 주의하면 된다. \verb|pdftex|, \verb|dvipdfm|, -\verb|dvips| 등을 지정한다.\footnote{\XeTeX, \LuaTeX에서는 \texttt{<driver>}를 별도로 명시할 필요가 없다.} +%\subsection{한글 책갈피}\index{pdf bookmark} +%pdf 문서 제작에 있어서 한글 책갈피(bookmark)가 필요하면, +%다음과 같이 한다. +%\begin{verbatim} +%\usepackage[pdfencoding=auto,<driver>,...]{hyperref} +%\end{verbatim} +%\pkg{hyperref}의 개선이 이루어짐에 따라, 한글 책갈피를 만들기 위해 +%별도의 복잡한 조치를 취할 필요가 없게 되었다. +%%다만, 컴파일 루트에 따라서 \verb|<driver>|를 +%%명시해주어야 한다는 데 주의하면 된다. \verb|pdftex|, \verb|dvipdfm|, +%%\verb|dvips| 등을 지정한다.\footnote{\XeTeX, \LuaTeX에서는 \texttt{<driver>}를 별도로 명시할 필요가 없다.} +% \section{찾아보기와 참고문헌} @@ -1908,6 +1404,8 @@ pdf 문서 제작에 있어서 한글 책갈피(bookmark)가 필요하면, \pkg{dhhangul}과 같은 Lambda 패키지를 통하여 성공적인 실험을 행한 바가 있다. +pdf\LaTeX 으로 조판하는 상황에서, +(비록 CTAN에 업로드되지는 않았지만) KTUG 사설저장소를 통하여 배포하는 \pkg{dhucs-midkor}\는 옛한글, 즉 1933년 이전 표기법 문헌을 식자할 수 있게 한다.\footnote{% 현재 이 패키지를 사용 가능하게 하려면 \cmd{tlmgr install kotex-midkor} @@ -1947,7 +1445,8 @@ pdf 문서 제작에 있어서 한글 책갈피(bookmark)가 필요하면, \item \kotex 의 중요한 기여 중의 하나인 옛한글 관련 코드변환 유틸리티가 \kotex-utility로 제공된다. \util{jamo-normalize} 스크립트는 특히 유용하다. \item \XeTeX-\ko와 \LuaTeX-\ko는 옛한글 처리 기능을 자연스럽게 탑재하고 있다. -옛한글을 마치 현대한글을 쓰듯이 자연스럽게 처리할 수 있는 것이다. +옛한글을 마치 현대한글을 쓰듯이 자연스럽게 처리할 수 있는 것이다. 이 현대적 +텍엔진을 이용하는 것이 현재 권장하는 바이다. \end{enumerate} %을 위해서 갖추어야 할 %조건이 제법 까다롭고 @@ -1975,11 +1474,15 @@ pdf 문서 제작에 있어서 한글 책갈피(bookmark)가 필요하면, 만약 현대한글까지 전부 첫가끝으로 바꾸지 않으면 현대한글 음절문자가 본문의 것과 똑같은 모양으로 찍힌다. -\begin{verse} -\ifPDFTeX\def\mymidkorfont{ogul} % or {obat} -\else\ifLuaOrXeTeX \hangulfontspec[Script=Hangul]{HCR Dotum LVT}\fi\fi -\IfFileExists{yettext.tex}{\input yettext}{} -\end{verse} +%\begin{verse} +%\ifPDFTeX\def\mymidkorfont{ogul} % or {obat} +%\else\ifLuaOrXeTeX \hangulfontspec[Script=Hangul]{HCR Dotum LVT}\fi\fi +%\IfFileExists{yettext.tex}{\input yettext}{} +%\end{verse} +\bigskip +\includegraphics{fig/yettext} + +\medskip \pkg{dhucs-midkor}로 옛한글을 표현할 때 선택할 수 있는 글꼴은 바탕체와 굴림체 두 가지이다. 위의 예문은 굴림체로 식자되었고 이것이 디폴트이다. @@ -2003,7 +1506,10 @@ pdf 문서 제작에 있어서 한글 책갈피(bookmark)가 필요하면, 로드하지 않아도 \texttt{\textbackslash japanese} 명령을 쓸 수 있다. 특히 \pkg{luatex-ko}는 자체에 ruby 기능을 가지고 있다.} 일본어 한자의 독음을 작은 가나 문자로 붙이는 것(루비)은 \pkg{CJK}의 -일부인 \pkg{ruby}\를 불러서 할 수 있다. +일부인 \pkg{ruby}\를 불러서 할 수 있다.\index{루비}\footnote{\pkg{CJK}의 +\pkg{ruby}가 가진 몇 가지 문제점 때문에 \pkg{ksruby}라는 별도의 +패키지를 KTUG 사설저장소에서 제공한다. 루비가 중요한 문서라면 이 +패키지를 고려해볼 수 있다.} 일본어 또는 중국어 문단을 식자하려면 \pkg{dhucs-trivcj}를 로드하여야 한다. @@ -2014,7 +1520,7 @@ pdf 문서 제작에 있어서 한글 책갈피(bookmark)가 필요하면, \LaTeX~というのは、市販ソフト顏負けのきれいな文書が 作れる「文書整形ソフト」で、「ラテック」 もしくは「ラテフ」など変った読み方をします。 -ちょっとカタい言葉を使うと「組版~(くみはん)~ソフト」とも言います。 +ちょっとカタい言葉を使うと「\ruby{組版}{くみはん} ソフト」とも言います。 組版とは、活字を組んでページに印刷するための版を作る作業のことで英語で タイプセッティング~(type setting)~と言います。 \end{japanese} @@ -2110,6 +1616,14 @@ wadalab-unicode 글꼴과 arphic 글꼴(type 1)을 이용한다. 글꼴의 선택과 사용이 전적으로 사용자에게 맡겨져 있으나, ``편의를 위하여'' 상세한 글꼴 설정이 없을 때 나눔 type 1이 한글 영역을 식자하기 위하여 사용된다고 기억해두자. +2021년 현재, nanumtype1은 \TeX\,Live를 통하여 설치되기 때문에 거의 유일한 +\koTeX-utf 용 글꼴이 되어 있다. 한편, 은 글꼴 type 1은 한글 텍 사용자 그룹이 +별도로 운영하는 KTUG 사설 저장소를 통하여 이를 설치할 수 있다. + +이보다 더 많은 글꼴을 레거시 텍에서 활용하려면 \pageref{cha:truetype} 페이지의 제~\ref{cha:truetype}~절을 +참고할 수는 있지만, \XeTeX 이나 \LuaTeX 으로 트루타입을 직접 활용할 수 있는 오늘날 +이 방법은 낡은 것이 되었다. + \section{영역, 가족, \cntrdots} \subsection{입력 문자의 영역} @@ -2775,6 +2289,54 @@ questionlower = .15ex 은글꼴과 같은 특별한 글꼴이 아니라면 대부분의 경우 문장부호를 강제로 이동시킬 필요가 크지 않다. +\section{varioref 한글 텍스트}\label{sec:vario} + +\pkg{varioref}\는 \cs{vref} 또는 \cs{vpageref} 명령을 제공하며 +예컨대 +\begin{verbatim} + ...\vref{fig:1} +\end{verbatim} +과 같은 입력이 ``Figure 1 on current page''과 같은 출력으로 나타나게 하는 패키지이다. +여기서 ``on current page''와 같은 표현을 우리말화한 것이 \pkg{kotex-varioref} 패키지이며 +slomo가 처음 작성하여 \koTeX 에 포함되었다. \koTeX-utf 3.0에서 이를 더 개선하였다. + +사용자가 통제할 수 있는 문자열을 \vref{tab:vario}에 요약한다. + +\begin{table}[h] +\centering +\caption{varioref 텍스트 대치}\label{tab:vario} +\begin{tabular}{ll|ll} +\hline +명칭 & 기본값 & 명칭 & 기본값 \\ \hline +\texttt{pagename} & 페이지 & \texttt{aftertext} & 다음 \\ +\texttt{beforetext} & 앞 & \texttt{currentext} & 현재 \\ +\texttt{totext} & 에서 & \texttt{footnotename} & 각주 \\ +\texttt{figurename} & \cs{figurename} & \texttt{tablename} & \cs{tablename} \\ \hline +\end{tabular} +\end{table} + +예컨대 `페이지' 대신 `쪽'이라 하고 싶다면 +\begin{verbatim} +\usepackage[pagename={쪽}]{kotex-varioref} +\end{verbatim} +과 같이 패키지 로드할 때에 옵션으로 지정하거나, 문서가 시작한 후라도 +\begin{verbatim} +\kotexvarioreftexts{pagename={쪽}} +\end{verbatim} +과 같이 변경할 수 있다. + +\cs{UItrue} 또는 \cs{UIfalse} 명령으로 예컨대 `현재 페이지\dotemph{의} 그림'과 같은 +표현에서 조사 `의'를 두거나 두지 않을 수 있는데, \cs{UIfalse}가 기본값이다. + +\begin{verbatim} + \kotexvarioreftexts{pagename=쪽} + \UItrue \vref{tab:vario}\를 보라. +\end{verbatim} +\begin{quote} +\kotexvarioreftexts{pagename=쪽} +\UItrue \vref{tab:vario}\를 보라. +\end{quote} + \chapter{색인(찾아보기) 만들기}\label{sec:komkindex} \section{색인 작성 유틸리티 \util{komkindex}} @@ -2819,7 +2381,7 @@ $ komkindex(.pl) -s kotex foo \cmd{\index}\texttt{\{색인!인덱스\}}라고 마크하면 이것은 ``색인''이라는 항목의 하위 항목으로 ``인덱스''라는 항목이 취급되도록 하라는 의미이다. 한편, \cmd{\index}\texttt{\{금서목록@인덱스\}}라고 마크하면, 항목의 엔트리는 ``인덱스''로 하되, 정렬 기준을 ``금서목록''에 -맞추라는 의미이다. +맞추라는 의미이다.\index{금서목록@인덱스} 이밖에도 색인을 세밀하게 조절하기 위한 많은 방법이 있다. 문서에서 색인이 들어갈 위치에 다음 명령을 기록한다. @@ -2847,7 +2409,7 @@ $ komkindex(.pl) -s kotex foo 참고로, \XeTeX 이나 \LuaTeX 에서 한글 색인을 작성하려면 다음 순서로 한다. \begin{verbatim} # xelatex foo -# texindy -L korean -I omega foo.idx +# texindy -L korean -C utf8 foo.idx # xelatex foo \end{verbatim} \index{kotexindy}\index{Utilities!kotexindy} @@ -3129,7 +2691,7 @@ $ jamo-normalize [option] <infile >outfile \end{description} %%%%% index - +\flushbottom \printindex \clearpage diff --git a/Master/texmf-dist/doc/latex/kotex-utf/yettext.tex b/Master/texmf-dist/doc/latex/kotex-utf/yettext.tex deleted file mode 100644 index a1cb17e0d54..00000000000 --- a/Master/texmf-dist/doc/latex/kotex-utf/yettext.tex +++ /dev/null @@ -1,13 +0,0 @@ -이 몸 삼기실 제 님을 조차 삼기시니\\ -ᄒᆞᆫᄉᆡᆼ 緣연分분이며 하ᄂᆞᆯ 모ᄅᆞᆯ 일이런가\\ -나 ᄒᆞ나 졈어 닛고 님 ᄒᆞ나 날 괴시니\\ -이 ᄆᆞ음 이 ᄉᆞ랑 견졸 ᄃᆡ 노여 업다\\ -平평生ᄉᆡᆼ애 願원ᄒᆞ요ᄃᆡ ᄒᆞᆫᄃᆡ 녜자 ᄒᆞ얏더니\\ -늙거야 무ᄉᆞ 일로 외오 두고 글이ᄂᆞᆫ고\\ -엇그제 님을 뫼셔 廣광寒한殿뎐에 올낫더니\\ -그 더ᄃᆡ 엇디ᄒᆞ야 下하界계예 ᄂᆞ려오니\\ -올 적의 비슨 머리 얼킈연 디 三삼年년이라\\ -臙연脂지粉분 잇ᄂᆡᆷᄂᆞᆫ 눌 위ᄒᆞ야 고이 ᄒᆞᆯ고\\ -ᄆᆞ음의 ᄆᆡ친 설음 疊텹疊텹이 ᄡᅡ여 이셔\\ -짓ᄂᆞ니 한숨이오 디ᄂᆞ니 눈믈이라\\ -人인心심은 有유限ᄒᆞᆫᄒᆞᆫᄃᆡ 시ᄅᆞᆷ도 그지업다
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/kotex-utf/yettext.txt b/Master/texmf-dist/doc/latex/kotex-utf/yettext.txt deleted file mode 100644 index a927224cb93..00000000000 --- a/Master/texmf-dist/doc/latex/kotex-utf/yettext.txt +++ /dev/null @@ -1,13 +0,0 @@ -이 몸 삼기실 제 님을 조차 삼기시니\\ -ᄒᆞᆫᄉᆡᆼ 緣연分분이며 하ᄂᆞᆯ 모ᄅᆞᆯ 일이런가\\ -나 ᄒᆞ나 졈어 닛고 님 ᄒᆞ나 날 괴시니\\ -이 ᄆᆞ음 이 ᄉᆞ랑 견졸 ᄃᆡ 노여 업다\\ -平평生ᄉᆡᆼ애 願원ᄒᆞ요ᄃᆡ ᄒᆞᆫᄃᆡ 녜자 ᄒᆞ얏더니\\ -늙거야 무ᄉᆞ 일로 외오 두고 글이ᄂᆞᆫ고\\ -엇그제 님을 뫼셔 廣광寒한殿뎐에 올낫더니\\ -그 더ᄃᆡ 엇디ᄒᆞ야 下하界계예 ᄂᆞ려오니\\ -올 적의 비슨 머리 얼킈연 디 三삼年년이라\\ -臙연脂지粉분 잇ᄂᆡᆷᄂᆞᆫ 눌 위ᄒᆞ야 고이 ᄒᆞᆯ고\\ -ᄆᆞ음의 ᄆᆡ친 설음 疊텹疊텹이 ᄡᅡ여 이셔\\ -짓ᄂᆞ니 한숨이오 디ᄂᆞ니 눈믈이라\\ -人인心심은 有유限ᄒᆞᆫᄒᆞᆫᄃᆡ 시ᄅᆞᆷ도 그지업다
\ No newline at end of file diff --git a/Master/texmf-dist/tex/latex/kotex-utf/contrib/dhucs-cmap.sty b/Master/texmf-dist/tex/latex/kotex-utf/contrib/dhucs-cmap.sty index 17e1fd0f6e7..33e74428c33 100644 --- a/Master/texmf-dist/tex/latex/kotex-utf/contrib/dhucs-cmap.sty +++ b/Master/texmf-dist/tex/latex/kotex-utf/contrib/dhucs-cmap.sty @@ -11,10 +11,10 @@ %% version 2006/05/20 or later. %% \ProvidesPackage{dhucs-cmap} - [2007/06/16 searchable PDF for dhucs upon pdftex] + [2021/03/01 searchable PDF for dhucs upon pdftex] -\RequirePackage{ifpdf} -\ifpdf\else\expandafter\endinput\fi +\RequirePackage{iftex} +\ifpdf\else\endinput\fi \newcommand*\AddUniSubCmap{% \ifdefined \now@jamo@printing @@ -72,6 +72,7 @@ \fi \pdffontattr\font@name{/ToUnicode \csname dhucs-cmap-\h@ngulpl@ne\endcsname\space 0 R}% + \ifdefined\pdfnobuiltintounicode \pdfnobuiltintounicode\font@name \fi } \newcommand*\jamo@dh@cmap[1]{% @@ -81,6 +82,7 @@ \fi \pdffontattr\font@name{/ToUnicode \csname dhucs-cmap-mid-#1\endcsname\space 0 R}% + \ifdefined\pdfnobuiltintounicode \pdfnobuiltintounicode\font@name \fi } \def\dhucs@define@newfont{\define@newfont\AddUniSubCmap\h@ngulpl@ne} diff --git a/Master/texmf-dist/tex/latex/kotex-utf/contrib/dhucs-paralist.sty b/Master/texmf-dist/tex/latex/kotex-utf/contrib/dhucs-paralist.sty index 71a5827f1d5..331912c51c0 100644 --- a/Master/texmf-dist/tex/latex/kotex-utf/contrib/dhucs-paralist.sty +++ b/Master/texmf-dist/tex/latex/kotex-utf/contrib/dhucs-paralist.sty @@ -1,6 +1,6 @@ %% File `dhucs-paralist.sty` %% -%% Copyright (c) 2007-2013 Dohyun Kim <nomos at krug org> +%% Copyright (c) 2007-2013 Dohyun Kim <nomos at ktug org> %% modification from dhucs-enumerate.sty by Kangsoo Kim <karnes at ktug org>. %% %% This work may be distributed and/or modified under the diff --git a/Master/texmf-dist/tex/latex/kotex-utf/contrib/dhucs-trivcj.sty b/Master/texmf-dist/tex/latex/kotex-utf/contrib/dhucs-trivcj.sty index 0c4f65c0520..5f804accd0f 100644 --- a/Master/texmf-dist/tex/latex/kotex-utf/contrib/dhucs-trivcj.sty +++ b/Master/texmf-dist/tex/latex/kotex-utf/contrib/dhucs-trivcj.sty @@ -16,7 +16,7 @@ [2011/08/17 temporary chinese/japanese for dhucs] %%%%%% luatex & xetex -\ifx가가\relax +\ifx 가가\relax \newcommand*\trivcjtypesetting{% \parindent1em \let\nbs\nobreakspace %% see CJK.sty diff --git a/Master/texmf-dist/tex/latex/kotex-utf/contrib/kotex-varioref.sty b/Master/texmf-dist/tex/latex/kotex-utf/contrib/kotex-varioref.sty index 3b84adf60ca..2670928b12e 100644 --- a/Master/texmf-dist/tex/latex/kotex-utf/contrib/kotex-varioref.sty +++ b/Master/texmf-dist/tex/latex/kotex-utf/contrib/kotex-varioref.sty @@ -1,6 +1,7 @@ %% File `kotex-varioref.sty` %% %% (C) Copyright 2008-2013 slomo +%% 2022 Kangsoo Kim %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3c @@ -10,29 +11,71 @@ %% and version 1.3c or later is part of all distributions of LaTeX %% version 2006/05/20 or later. %% +\ProvidesPackage{kotex-varioref}[2022/06/20 korean texts for varioref] +\RequirePackage{l3keys2e} \@ifpackageloaded{varioref}{}{\RequirePackage{varioref}[2006/05/13]} +\ExplSyntaxOn + +\keys_define:nn { kotexvarioref } +{ + pagename .tl_set:N = \pagename, + aftertext .tl_set:N = \kvr@aftertext, + beforetext .tl_set:N = \kvr@beforetext, + currenttext .tl_set:N = \kvr@currenttext, + totext .tl_set:N = \kvr@to, + footnotename .tl_set:N = \kvr@footnotename, + figurename .tl_set:N = \kvr@figurename, + tablename .tl_set:N = \kvr@tablename +} + +\keys_set:nn { kotexvarioref } +{ + pagename = 페이지, + aftertext = 다음, + beforetext = 앞, + currenttext = 현재, + totext = 에서, + footnotename = 각주, + figurename = \figurename, + tablename = \tablename +} + +\ProcessKeysOptions { kotexvarioref } + +\newif\ifUI\UIfalse +\NewDocumentCommand \kvr@ui {} +{ + \ifUI 의\else\fi +} + +\NewDocumentCommand \kotexvarioreftexts { m } +{ + \keys_set:nn { kotexvarioref } { #1 } +} + +\ExplSyntaxOff % % user interfaces % \renewcommand{\vref}[2][\reftextcurrent] - {\vpageref[#1]{#2} \ref{#2}} + {\vpageref[#1]{#2}\kvr@ui{} \ref{#2}} \renewcommand{\vrefrange}[3][\reftextcurrent] - {\vpagerefrange[#1]{#2}{#3}의 \reftextlabelrange{#2}{#3}} + {\vpagerefrange[#1]{#2}{#3}\kvr@ui{} \reftextlabelrange{#2}{#3}} % % reftexts % -\renewcommand{\reftextfaceafter}{다음 \pagename}% -\renewcommand{\reftextfacebefore}{앞 \pagename}% -\renewcommand{\reftextafter}{다음 \pagename}% -\renewcommand{\reftextbefore}{앞 \pagename}% -\renewcommand{\reftextcurrent}{현재 \pagename}% +\renewcommand{\reftextfaceafter}{\kvr@aftertext{} \pagename}% +\renewcommand{\reftextfacebefore}{\kvr@beforetext{} \pagename}% +\renewcommand{\reftextafter}{\kvr@aftertext{} \pagename}% +\renewcommand{\reftextbefore}{\kvr@beforetext{} \pagename}% +\renewcommand{\reftextcurrent}{\kvr@currenttext{} \pagename}% \renewcommand{\reftextfaraway}[1]{\pageref{#1}\pagename}% \renewcommand{\reftextpagerange}[2]{\pageref{#1}--\pageref{#2}\pagename}% -\renewcommand{\reftextlabelrange}[2]{\ref{#1}에서 \ref{#2}} +\renewcommand{\reftextlabelrange}[2]{\ref{#1}\kvr@to{} \ref{#2}} % % labelformats @@ -40,9 +83,9 @@ \labelformat{part}{#1\partname} \labelformat{chapter}{#1\chaptername} \labelformat{section}{#1\sectionname} -\labelformat{figure}{\figurename~#1} -\labelformat{table}{\tablename~#1} -\labelformat{footnote}{각주~#1} +\labelformat{figure}{\kvr@figurename~#1} +\labelformat{table}{\kvr@tablename~#1} +\labelformat{footnote}{\kvr@footnotename{}~#1} \endinput diff --git a/Master/texmf-dist/tex/latex/kotex-utf/dhucs.sty b/Master/texmf-dist/tex/latex/kotex-utf/dhucs.sty index dc247f7c249..f9d01963c91 100644 --- a/Master/texmf-dist/tex/latex/kotex-utf/dhucs.sty +++ b/Master/texmf-dist/tex/latex/kotex-utf/dhucs.sty @@ -14,6 +14,7 @@ %% -------------------------------------------------------- %% %% changelog: +%% 2015/08/21 5.4.0 minor typo fix %% 2009/03/05 5.0.0 wrapper for various engines %% 2008/08/28 4.1.4 work around error under using babel package %% 2008/05/26 4.1.3 fallback of hangul font family is now serif font @@ -38,9 +39,9 @@ %% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{dhucs} - [2012/11/08 v5.3.2 typesetting UTF-8 Korean documents] + [2015/08/21 v5.4 typesetting UTF-8 Korean documents] -\ifx가가\else +\ifx 가가\else \DeclareOption*{\PassOptionsToPackage\CurrentOption{kotexutf}} \ProcessOptions\relax \RequirePackage{kotexutf} diff --git a/Master/texmf-dist/tex/latex/kotex-utf/kosections-utf.sty b/Master/texmf-dist/tex/latex/kotex-utf/kosections-utf.sty index 8a41519040c..098c97a81bb 100644 --- a/Master/texmf-dist/tex/latex/kotex-utf/kosections-utf.sty +++ b/Master/texmf-dist/tex/latex/kotex-utf/kosections-utf.sty @@ -1,7 +1,7 @@ %% File `kosections-utf.tex` %% -%% (C) Copyright 2007-2013 Dohyun Kim <nomos at ktug org> -%% Kangsoo Kim <karnes at ktug org> +%% (C) Copyright 2007-2022 Dohyun Kim <nomos at ktug org> +%% 2022 Kangsoo Kim %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3c @@ -12,7 +12,7 @@ %% version 2006/05/20 or later. %% \ProvidesFile{kosections-utf} - [2013/10/20 hangul option to kotex/utf] + [2022/06/20 hangul option to kotex/utf] %\def\hNum#1{\@hNum{\@nameuse{c@#1}}} %\def\@hNum#1{\ifcase#1\or 일\or 이\or 삼\or 사\or 오\or 육\or 칠\or @@ -59,410 +59,6 @@ %% konames-utf \RequirePackage{konames-utf} -%% 단원의 한글화 -%% ============= -%% -%% Part I --> 제 I 편, 第 I 篇 -%% Chapter 1 --> 제 1 장, 第 1 章 <book,report> -%% Section 1 --> 제 1 절, 第 1 節 -%% Appendix A --> 부록 A, 附綠 A -%% -%% 위와 같은 단원의 한글화는 절(節)까지 영향을 미친다. 그러므로 우리는 -%% 목차에 \subsubsection까지 단원이 번호와 함께 나오도록 한다. -%% article에서는 이미 3으로 지정되었으나, 그외에서는 2로 지정되어 -%% \subsection까지만 번호가 목차에 나오도록 되어 있다. -\setcounter{secnumdepth}{\thr@@} - -\@ifclassloaded{article}{% <article> - \renewcommand{\appendix}{\par - \setcounter{section}{0}% - \setcounter{subsection}{0}% - \def\@chapapp{\appendixname}% 부록의 한글화에 의해 필요. - \kscntformat{section}{\appendixname~}{} - \def\thesection{\@Alph\c@section}}% -}{\@ifundefined{@chapapp}{}{% <report|book> - \renewcommand\thesection{\@arabic\c@section} - \renewcommand\appendix{\par - \setcounter{chapter}{0}% - \setcounter{section}{0}% - \renewcommand\@chapapp{\appendixname}% - \kscntformat{chapter}{\appendixname~}{} - \renewcommand\thechapter{\@Alph\c@chapter}}% -}} - -%% 위와같은 재정의로 다음과 같은 문제가 발생한다. -%% 1. \part는 \partname~\thepart로 나오게 된다. 편~I -%% 2. \chapter는 \@chapapp{} \thechapter로. 장~1 -%% 3. \section은 \sectionname~\thesection으로. 절~1 -%% 4. 목차작성의 들여쓰기가 우리말 환경에 적당하지 않다. -%% 5. 페이지 heading의 글자체가 \slshape으로 바뀜으로서 우리말이 -%% 불안정해진다. -%% -%% 이런 약점을 보완하기 위해 단원의 일련번호의 앞과 뒤에 끼워넣을 -%% 모듬을 다음과 같이 설정한다. -\def\kscntformat#1#2#3{\@namedef{pre@#1cnt}{#2} - \@namedef{post@#1cnt}{#3}} -\kscntformat{part}{\KSTHE~}{~\partname} -\kscntformat{chapter}{\KSTHE~}{~\chaptername} -\kscntformat{section}{\KSTHE~}{~\sectionname} - -\@ifclassloaded{article}{% <article> - \def\@part[#1]#2{% - \ifnum \c@secnumdepth >\m@ne - \refstepcounter{part}% - \addcontentsline{toc}{part}% - {\pre@partcnt\thepart\post@partcnt\hspace{1em}#1}% - \else - \addcontentsline{toc}{part}{#1}% - \fi - {\parindent \z@ \raggedright - \interlinepenalty \@M - \normalfont - \ifnum \c@secnumdepth >\m@ne - \Large\bfseries \pre@partcnt\thepart\post@partcnt - \par\nobreak - \fi - \huge \bfseries #2% - \markboth{}{}\par}% - \nobreak - \vskip 3ex - \@afterheading} -}{} -\@ifclassloaded{report}{% - \def\@part[#1]#2{% - \ifnum \c@secnumdepth >-2\relax - \refstepcounter{part}% - \addcontentsline{toc}{part}% - {\pre@partcnt\thepart\post@partcnt\hspace{1em}#1}% - \else - \addcontentsline{toc}{part}{#1}% - \fi - \markboth{}{}% - {\centering - \interlinepenalty \@M - \normalfont - \ifnum \c@secnumdepth >-2\relax - \huge\bfseries \pre@partcnt\thepart\post@partcnt - \par - \vskip 20\p@ - \fi - \Huge \bfseries #2\par}% - \@endpart} -}{} -\@ifclassloaded{book}{% - \def\@part[#1]#2{% - \ifnum \c@secnumdepth >-2\relax - \refstepcounter{part}% - \addcontentsline{toc}{part}% - {\pre@partcnt\thepart\post@partcnt\hspace{1em}#1}% - \else - \addcontentsline{toc}{part}{#1}% - \fi - \markboth{}{}% - {\centering - \interlinepenalty \@M - \normalfont - \ifnum \c@secnumdepth >-2\relax - \huge\bfseries \pre@partcnt\thepart\post@partcnt - \par - \vskip 20\p@ - \fi - \Huge \bfseries #2\par}% - \@endpart} -}{} - -\@ifclassloaded{book}{% - \def\@chapter[#1]#2{% - \ifnum \c@secnumdepth >\m@ne - \if@mainmatter - \refstepcounter{chapter}% - \typeout{\pre@chaptercnt\thechapter\post@chaptercnt}% - \addcontentsline{toc}{chapter}% - {\protect\numberline{% - \pre@chaptercnt\thechapter\post@chaptercnt}#1}% - \else - \addcontentsline{toc}{chapter}{#1}% - \fi - \else - \addcontentsline{toc}{chapter}{#1}% - \fi - \chaptermark{#1}% - \addtocontents{lof}{\protect\addvspace{10\p@}}% - \addtocontents{lot}{\protect\addvspace{10\p@}}% - \if@twocolumn - \@topnewpage[\@makechapterhead{#2}]% - \else - \@makechapterhead{#2}% - \@afterheading - \fi} - \def\@makechapterhead#1{% - \vspace*{50\p@}% - {\parindent \z@ \raggedright \normalfont - \ifnum \c@secnumdepth >\m@ne - \if@mainmatter - \huge\bfseries - \pre@chaptercnt\thechapter\post@chaptercnt - \par\nobreak - \vskip 20\p@ - \fi - \fi - \interlinepenalty\@M - \Huge \bfseries #1\par\nobreak - \vskip 40\p@ - }} - \renewcommand*\l@chapter[2]{% - \ifnum \c@tocdepth >\m@ne - \addpenalty{-\@highpenalty}% - \vskip 1.0em \@plus\p@ - \setbox\z@=\hbox{\bfseries\pre@chaptercnt\post@chaptercnt~} - \setlength\@tempdima{1.5em} - \advance\@tempdima\wd\z@ - \begingroup - \parindent \z@ \rightskip \@pnumwidth - \parfillskip -\@pnumwidth - \leavevmode \bfseries - \advance\leftskip \@tempdima - \hskip -\leftskip - #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par - \penalty\@highpenalty - \endgroup - \fi} -}{}% -\@ifclassloaded{report}{% - \def\@chapter[#1]#2{% - \ifnum \c@secnumdepth >\m@ne - \refstepcounter{chapter}% - \typeout{\pre@chaptercnt\thechapter\post@chaptercnt} - \addcontentsline{toc}{chapter}% - {\protect\numberline{% - \pre@chaptercnt\thechapter\post@chaptercnt}#1}% - \else - \addcontentsline{toc}{chapter}{#1}% - \fi - \chaptermark{#1}% - \addtocontents{lof}{\protect\addvspace{10\p@}}% - \addtocontents{lot}{\protect\addvspace{10\p@}}% - \if@twocolumn - \@topnewpage[\@makechapterhead{#2}]% - \else - \@makechapterhead{#2}% - \@afterheading - \fi} - \def\@makechapterhead#1{% - \vspace*{50\p@}% - {\parindent \z@ \raggedright \normalfont - \ifnum \c@secnumdepth >\m@ne - \huge\bfseries - \pre@chaptercnt\thechapter\post@chaptercnt - \par\nobreak - \vskip 20\p@ - \fi - \interlinepenalty\@M - \Huge \bfseries #1\par\nobreak - \vskip 40\p@ - }} - \renewcommand*\l@chapter[2]{% - \ifnum \c@tocdepth >\m@ne - \addpenalty{-\@highpenalty}% - \vskip 1.0em \@plus\p@ - \setbox\z@=\hbox{\bfseries\pre@chaptercnt\post@chaptercnt~} - \setlength\@tempdima{1.5em} - \advance\@tempdima\wd\z@ - \begingroup - \parindent \z@ \rightskip \@pnumwidth - \parfillskip -\@pnumwidth - \leavevmode \bfseries - \advance\leftskip \@tempdima - \hskip -\leftskip - #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par - \penalty\@highpenalty - \endgroup - \fi} -}{} - -%%%%% make compatible with tex4ht ? -\def\dhucs@seccntformat#1#2{% - \ifnum#2=\@ne\pre@sectioncnt\fi - \csname the#1\endcsname - \ifnum#2=\@ne\post@sectioncnt\fi - \quad} -\def\@sect#1#2#3#4#5#6[#7]#8{% - \ifnum #2>\c@secnumdepth - \let\@svsec\@empty - \else - \refstepcounter{#1}% - \protected@edef\@svsec{\dhucs@seccntformat{#1}{#2}\relax}% - \fi - \@tempskipa #5\relax - \ifdim \@tempskipa>\z@ - \begingroup - #6{% - \@hangfrom{\hskip #3\relax\@svsec}% - \interlinepenalty \@M #8\@@par}% - \endgroup - \csname #1mark\endcsname{#7}% - \addcontentsline{toc}{#1}{% - \ifnum #2>\c@secnumdepth \else - \ifnum #2=1 % in case of section - \protect\numberline{\pre@sectioncnt - \csname the#1\endcsname\post@sectioncnt}% - \else \protect\numberline{\csname the#1\endcsname}% - \fi - \fi - #7}% - \else - \def\@svsechd{% - #6{\hskip #3\relax - \@svsec #8}% - \csname #1mark\endcsname{#7}% - \addcontentsline{toc}{#1}{% - \ifnum #2>\c@secnumdepth \else - \protect\numberline{\csname the#1\endcsname}% - \fi - #7}}% - \fi - \@xsect{#5}} -%%%%% - -\@ifclassloaded{article}{% - \renewcommand*\l@section[2]{% - \ifnum \c@tocdepth >\z@ - \addpenalty\@secpenalty% - \addvspace{1.0em \@plus\p@}% - \begingroup - \parindent \z@ \rightskip \@pnumwidth - \parfillskip -\@pnumwidth - \leavevmode \bfseries - \settowidth{\@tempdima}{\pre@sectioncnt\post@sectioncnt}% - \addtolength{\@tempdima}{1.5em}% - \advance\leftskip\@tempdima - \hskip -\leftskip - #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par - \endgroup - \fi} -}{} -\@ifclassloaded{book}{ - \renewcommand*\l@section{% - \settowidth{\@tempdima}{\pre@sectioncnt\post@sectioncnt}% - \addtolength{\@tempdima}{2.3em}% - \@dottedtocline{1}{1em}{\@tempdima}}%1.5em 2.3em -}{} -\@ifclassloaded{report}{ - \renewcommand*\l@section{% - \settowidth{\@tempdima}{\pre@sectioncnt\post@sectioncnt}% - \addtolength{\@tempdima}{2.3em}% - \@dottedtocline{1}{1em}{\@tempdima}}%1.5em 2.3em -}{} - - -%% 다음은 \ps@headings과 \ps@myheadings를 한글에 맞게 수정한 것이다. -%% 각각의 class들이 서로 다른 방식으로 페이지 머리를 짜므로 우리는 -%% 여기서 각각을 따로따로 정의해 주어야 한다. - -\@ifclassloaded{article}{% - \if@twoside - \renewcommand\ps@headings{% - \let\@oddfoot\@empty\let\@evenfoot\@empty - \def\@evenhead{\thepage\hfil\normalfont\slshape\leftmark}% - \def\@oddhead{{\normalfont\slshape\rightmark}\hfil\thepage}% - \let\@mkboth\markboth - \def\sectionmark##1{% - \markboth {\MakeUppercase{% - \ifnum \c@secnumdepth >\z@ - \pre@sectioncnt\thesection\post@sectioncnt\quad - \fi - ##1}}{}}% - \def\subsectionmark##1{% - \markright {% - \ifnum \c@secnumdepth >\@ne - \thesubsection\quad - \fi - ##1}}} - \else - \def\ps@headings{% - \let\@oddfoot\@empty - \def\@oddhead{{\normalfont\slshape\rightmark}\hfil\thepage}% - \let\@mkboth\markboth - \def\sectionmark##1{% - \markright {\MakeUppercase{% - \ifnum \c@secnumdepth >\m@ne - \pre@sectioncnt\thesection\post@sectioncnt\quad - \fi - ##1}}}} - \fi -}{} - -\@ifclassloaded{book}{% - \if@twoside - \def\ps@headings{% - \let\@oddfoot\@empty\let\@evenfoot\@empty - \def\@evenhead{\thepage\hfil\normalfont\slshape\leftmark}% - \def\@oddhead{{\normalfont\slshape\rightmark}\hfil\thepage}% - \let\@mkboth\markboth - \def\chaptermark##1{% - \markboth {\MakeUppercase{% - \ifnum \c@secnumdepth >\m@ne - \if@mainmatter - \pre@chaptercnt\thechapter\post@chaptercnt\quad% - \fi - \fi - ##1}}{}}% - \def\sectionmark##1{% - \markright {\MakeUppercase{% - \ifnum \c@secnumdepth >\z@ - \pre@sectioncnt\thesection\post@sectioncnt\quad% - \fi - ##1}}}} - \else - \def\ps@headings{% - \let\@oddfoot\@empty - \def\@oddhead{{\normalfont\slshape\rightmark}\hfil\thepage}% - \let\@mkboth\markboth - \def\chaptermark##1{% - \markright {\MakeUppercase{% - \ifnum \c@secnumdepth >\m@ne - \if@mainmatter - \pre@chaptercnt\thechapter\post@chaptercnt\quad% - \fi - \fi - ##1}}}} - \fi - \pagestyle{headings} - }{} - -\@ifclassloaded{report}{% - \if@twoside - \def\ps@headings{% - \let\@oddfoot\@empty\let\@evenfoot\@empty - \def\@evenhead{\thepage\hfil\normalfont\slshape\leftmark}% - \def\@oddhead{{\normalfont\slshape\rightmark}\hfil\thepage}% - \let\@mkboth\markboth - \def\chaptermark##1{% - \markboth {\MakeUppercase{% - \ifnum \c@secnumdepth >\m@ne - \pre@chaptercnt\thechapter\post@chaptercnt\quad% - \fi - ##1}}{}}% - \def\sectionmark##1{% - \markright {\MakeUppercase{% - \ifnum \c@secnumdepth >\z@ - \pre@sectioncnt\thesection\post@sectioncnt\quad% - \fi - ##1}}}} - \else - \def\ps@headings{% - \let\@oddfoot\@empty - \def\@oddhead{{\normalfont\slshape\rightmark}\hfil\thepage}% - \let\@mkboth\markboth - \def\chaptermark##1{% - \markright {\MakeUppercase{% - \ifnum \c@secnumdepth >\m@ne - \pre@chaptercnt\thechapter\post@chaptercnt\quad% - \fi - ##1}}}} - \fi -}{} - %% bangjom emphasis : extension. (inspired by hangul.sty) \def\circemphchar{˚} @@ -529,9 +125,10 @@ \if@nonfrench \xspaceskip=.5em plus .111em minus .1em \fi +\skip\footins=\glueexpr\skip\footins/72*100\relax %%% interhchar -\setInterHangulSkip{-0.55pt} +%\setInterHangulSkip{-0.55pt} %%% makeidx를 쓰면 \see와 \seealso가 정의된다. %%% modified from kosections-euc.tex diff --git a/Master/texmf-dist/tex/latex/kotex-utf/kotex-sections.sty b/Master/texmf-dist/tex/latex/kotex-utf/kotex-sections.sty new file mode 100644 index 00000000000..3b336c6529b --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-utf/kotex-sections.sty @@ -0,0 +1,447 @@ +%% File `kotex-sections.tex` +%% +%% (C) 2014-2022 Kangsoo Kim <karnes at ktug org> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2006/05/20 or later. +%% +\ProvidesFile{kotex-sections} + [2022/06/20 0.3.1 chapter/section styles from HLaTeX] + +%% konames-utf +%\RequirePackage{konames-utf} +\@ifpackageloaded{konames-utf}{}{% + \RequirePackage{konames-utf} +} + +\newdimen\kosecldim\kosecldim=2.3em + +%% 단원의 한글화 +%% ============= +%% +%% Part I --> 제 I 편, 第 I 篇 +%% Chapter 1 --> 제 1 장, 第 1 章 <book,report> +%% Section 1 --> 제 1 절, 第 1 節 +%% Appendix A --> 부록 A, 附綠 A +%% +%% 위와 같은 단원의 한글화는 절(節)까지 영향을 미친다. 그러므로 우리는 +%% 목차에 \subsubsection까지 단원이 번호와 함께 나오도록 한다. +%% article에서는 이미 3으로 지정되었으나, 그외에서는 2로 지정되어 +%% \subsection까지만 번호가 목차에 나오도록 되어 있다. +\setcounter{secnumdepth}{\thr@@} + +\@ifclassloaded{article}{% <article> + \renewcommand{\appendix}{\par + \setcounter{section}{0}% + \setcounter{subsection}{0}% + \def\@chapapp{\appendixname}% 부록의 한글화에 의해 필요. + \kscntformat{section}{\appendixname~}{} + \def\thesection{\@Alph\c@section}}% +}{\@ifundefined{@chapapp}{}{% <report|book> + \renewcommand\thesection{\@arabic\c@section} + \renewcommand\appendix{\par + \setcounter{chapter}{0}% + \setcounter{section}{0}% + \renewcommand\@chapapp{\appendixname}% + \kscntformat{chapter}{\appendixname~}{} + \renewcommand\thechapter{\@Alph\c@chapter}}% +}} + +%% 위와같은 재정의로 다음과 같은 문제가 발생한다. +%% 1. \part는 \partname~\thepart로 나오게 된다. 편~I +%% 2. \chapter는 \@chapapp{} \thechapter로. 장~1 +%% 3. \section은 \sectionname~\thesection으로. 절~1 +%% 4. 목차작성의 들여쓰기가 우리말 환경에 적당하지 않다. +%% 5. 페이지 heading의 글자체가 \slshape으로 바뀜으로서 우리말이 +%% 불안정해진다. +%% +%% 이런 약점을 보완하기 위해 단원의 일련번호의 앞과 뒤에 끼워넣을 +%% 모듬을 다음과 같이 설정한다. +\def\kscntformat#1#2#3{\@namedef{pre@#1cnt}{#2} + \@namedef{post@#1cnt}{#3}} +\kscntformat{part}{\KSTHE~}{~\partname} +\kscntformat{chapter}{\KSTHE~}{~\chaptername} +\kscntformat{section}{\KSTHE~}{~\sectionname} + +\@ifclassloaded{article}{% <article> + \def\@part[#1]#2{% + \ifnum \c@secnumdepth >\m@ne + \refstepcounter{part}% + \addcontentsline{toc}{part}% + {\pre@partcnt\thepart\post@partcnt\hspace{1em}#1}% + \else + \addcontentsline{toc}{part}{#1}% + \fi + {\parindent \z@ \raggedright + \interlinepenalty \@M + \normalfont + \ifnum \c@secnumdepth >\m@ne + \Large\bfseries \pre@partcnt\thepart\post@partcnt + \par\nobreak + \fi + \huge \bfseries #2% + \markboth{}{}\par}% + \nobreak + \vskip 3ex + \@afterheading} +}{} +\@ifclassloaded{report}{% + \def\@part[#1]#2{% + \ifnum \c@secnumdepth >-2\relax + \refstepcounter{part}% + \addcontentsline{toc}{part}% + {\pre@partcnt\thepart\post@partcnt\hspace{1em}#1}% + \else + \addcontentsline{toc}{part}{#1}% + \fi + \markboth{}{}% + {\centering + \interlinepenalty \@M + \normalfont + \ifnum \c@secnumdepth >-2\relax + \huge\bfseries \pre@partcnt\thepart\post@partcnt + \par + \vskip 20\p@ + \fi + \Huge \bfseries #2\par}% + \@endpart} +}{} +\@ifclassloaded{book}{% + \def\@part[#1]#2{% + \ifnum \c@secnumdepth >-2\relax + \refstepcounter{part}% + \addcontentsline{toc}{part}% + {\pre@partcnt\thepart\post@partcnt\hspace{1em}#1}% + \else + \addcontentsline{toc}{part}{#1}% + \fi + \markboth{}{}% + {\centering + \interlinepenalty \@M + \normalfont + \ifnum \c@secnumdepth >-2\relax + \huge\bfseries \pre@partcnt\thepart\post@partcnt + \par + \vskip 20\p@ + \fi + \Huge \bfseries #2\par}% + \@endpart} +}{} + +\@ifclassloaded{book}{% + \def\@chapter[#1]#2{% + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \refstepcounter{chapter}% + \typeout{\pre@chaptercnt\thechapter\post@chaptercnt}% + \addcontentsline{toc}{chapter}% + {\protect\numberline{% + \pre@chaptercnt\thechapter\post@chaptercnt}#1}% + \else + \addcontentsline{toc}{chapter}{#1}% + \fi + \else + \addcontentsline{toc}{chapter}{#1}% + \fi + \chaptermark{#1}% + \addtocontents{lof}{\protect\addvspace{10\p@}}% + \addtocontents{lot}{\protect\addvspace{10\p@}}% + \if@twocolumn + \@topnewpage[\@makechapterhead{#2}]% + \else + \@makechapterhead{#2}% + \@afterheading + \fi} + \def\@makechapterhead#1{% + \vspace*{50\p@}% + {\parindent \z@ \raggedright \normalfont + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \huge\bfseries + \pre@chaptercnt\thechapter\post@chaptercnt + \par\nobreak + \vskip 20\p@ + \fi + \fi + \interlinepenalty\@M + \Huge \bfseries #1\par\nobreak + \vskip 40\p@ + }} + \renewcommand*\l@chapter[2]{% + \ifnum \c@tocdepth >\m@ne + \addpenalty{-\@highpenalty}% + \vskip 1.0em \@plus\p@ + \setbox\z@=\hbox{\bfseries\pre@chaptercnt\post@chaptercnt~} + \setlength\@tempdima{1.5em} + \advance\@tempdima\wd\z@ + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \leavevmode \bfseries + \advance\leftskip \@tempdima + \hskip -\leftskip + #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par + \penalty\@highpenalty + \endgroup + \fi} +}{}% +\@ifclassloaded{report}{% + \def\@chapter[#1]#2{% + \ifnum \c@secnumdepth >\m@ne + \refstepcounter{chapter}% + \typeout{\pre@chaptercnt\thechapter\post@chaptercnt} + \addcontentsline{toc}{chapter}% + {\protect\numberline{% + \pre@chaptercnt\thechapter\post@chaptercnt}#1}% + \else + \addcontentsline{toc}{chapter}{#1}% + \fi + \chaptermark{#1}% + \addtocontents{lof}{\protect\addvspace{10\p@}}% + \addtocontents{lot}{\protect\addvspace{10\p@}}% + \if@twocolumn + \@topnewpage[\@makechapterhead{#2}]% + \else + \@makechapterhead{#2}% + \@afterheading + \fi} + \def\@makechapterhead#1{% + \vspace*{50\p@}% + {\parindent \z@ \raggedright \normalfont + \ifnum \c@secnumdepth >\m@ne + \huge\bfseries + \pre@chaptercnt\thechapter\post@chaptercnt + \par\nobreak + \vskip 20\p@ + \fi + \interlinepenalty\@M + \Huge \bfseries #1\par\nobreak + \vskip 40\p@ + }} + \renewcommand*\l@chapter[2]{% + \ifnum \c@tocdepth >\m@ne + \addpenalty{-\@highpenalty}% + \vskip 1.0em \@plus\p@ + \setbox\z@=\hbox{\bfseries\pre@chaptercnt\post@chaptercnt~} + \setlength\@tempdima{1.5em} + \advance\@tempdima\wd\z@ + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \leavevmode \bfseries + \advance\leftskip \@tempdima + \hskip -\leftskip + #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par + \penalty\@highpenalty + \endgroup + \fi} +}{} + +%%%%% make compatible with tex4ht ? +\def\dhucs@seccntformat#1#2{% + \ifnum#2=\@ne\pre@sectioncnt\fi + \csname the#1\endcsname + \ifnum#2=\@ne\post@sectioncnt\fi + \quad} +\def\@sect#1#2#3#4#5#6[#7]#8{% + \ifnum #2>\c@secnumdepth + \let\@svsec\@empty + \else + \refstepcounter{#1}% + \protected@edef\@svsec{\dhucs@seccntformat{#1}{#2}\relax}% + \fi + \@tempskipa #5\relax + \ifdim \@tempskipa>\z@ + \begingroup + #6{% + \@hangfrom{\hskip #3\relax\@svsec}% + \interlinepenalty \@M #8\@@par}% + \endgroup + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \ifnum #2=1 % in case of section + \protect\numberline{\pre@sectioncnt + \csname the#1\endcsname\post@sectioncnt}% + \else \protect\numberline{\csname the#1\endcsname}% + \fi + \fi + #7}% + \else + \def\@svsechd{% + #6{\hskip #3\relax + \@svsec #8}% + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}% + \fi + #7}}% + \fi + \@xsect{#5}} +%%%%% + +\@ifclassloaded{article}{% + \renewcommand*\l@section[2]{% + \ifnum \c@tocdepth >\z@ + \addpenalty\@secpenalty% + \addvspace{1.0em \@plus\p@}% + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \leavevmode \bfseries + \settowidth{\@tempdima}{\pre@sectioncnt\post@sectioncnt}% + \addtolength{\@tempdima}{1.5em}% + \advance\leftskip\@tempdima + \hskip -\leftskip + #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par + \endgroup + \fi} +}{} +\@ifclassloaded{book}{ + \renewcommand*\l@section{% + \settowidth{\@tempdima}{\pre@sectioncnt\post@sectioncnt}% + \addtolength{\@tempdima}{\kosecldim}% + \@dottedtocline{1}{1em}{\@tempdima}}%1.5em 2.3em +}{} +\@ifclassloaded{report}{ + \renewcommand*\l@section{% + \settowidth{\@tempdima}{\pre@sectioncnt\post@sectioncnt}% + \addtolength{\@tempdima}{\kosecldim}% + \@dottedtocline{1}{1em}{\@tempdima}}%1.5em 2.3em +}{} + + +%% 다음은 \ps@headings과 \ps@myheadings를 한글에 맞게 수정한 것이다. +%% 각각의 class들이 서로 다른 방식으로 페이지 머리를 짜므로 우리는 +%% 여기서 각각을 따로따로 정의해 주어야 한다. + +\@ifclassloaded{article}{% + \if@twoside + \renewcommand\ps@headings{% + \let\@oddfoot\@empty\let\@evenfoot\@empty + \def\@evenhead{\thepage\hfil\normalfont\slshape\leftmark}% + \def\@oddhead{{\normalfont\slshape\rightmark}\hfil\thepage}% + \let\@mkboth\markboth + \def\sectionmark##1{% + \markboth {\MakeUppercase{% + \ifnum \c@secnumdepth >\z@ + \pre@sectioncnt\thesection\post@sectioncnt\quad + \fi + ##1}}{}}% + \def\subsectionmark##1{% + \markright {% + \ifnum \c@secnumdepth >\@ne + \thesubsection\quad + \fi + ##1}}} + \else + \def\ps@headings{% + \let\@oddfoot\@empty + \def\@oddhead{{\normalfont\slshape\rightmark}\hfil\thepage}% + \let\@mkboth\markboth + \def\sectionmark##1{% + \markright {\MakeUppercase{% + \ifnum \c@secnumdepth >\m@ne + \pre@sectioncnt\thesection\post@sectioncnt\quad + \fi + ##1}}}} + \fi +}{} + +\@ifclassloaded{book}{% + \if@twoside + \def\ps@headings{% + \let\@oddfoot\@empty\let\@evenfoot\@empty + \def\@evenhead{\thepage\hfil\normalfont\slshape\leftmark}% + \def\@oddhead{{\normalfont\slshape\rightmark}\hfil\thepage}% + \let\@mkboth\markboth + \def\chaptermark##1{% + \markboth {\MakeUppercase{% + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \pre@chaptercnt\thechapter\post@chaptercnt\quad% + \fi + \fi + ##1}}{}}% + \def\sectionmark##1{% + \markright {\MakeUppercase{% + \ifnum \c@secnumdepth >\z@ + \pre@sectioncnt\thesection\post@sectioncnt\quad% + \fi + ##1}}}} + \else + \def\ps@headings{% + \let\@oddfoot\@empty + \def\@oddhead{{\normalfont\slshape\rightmark}\hfil\thepage}% + \let\@mkboth\markboth + \def\chaptermark##1{% + \markright {\MakeUppercase{% + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \pre@chaptercnt\thechapter\post@chaptercnt\quad% + \fi + \fi + ##1}}}} + \fi + \pagestyle{headings} + }{} + +\@ifclassloaded{report}{% + \if@twoside + \def\ps@headings{% + \let\@oddfoot\@empty\let\@evenfoot\@empty + \def\@evenhead{\thepage\hfil\normalfont\slshape\leftmark}% + \def\@oddhead{{\normalfont\slshape\rightmark}\hfil\thepage}% + \let\@mkboth\markboth + \def\chaptermark##1{% + \markboth {\MakeUppercase{% + \ifnum \c@secnumdepth >\m@ne + \pre@chaptercnt\thechapter\post@chaptercnt\quad% + \fi + ##1}}{}}% + \def\sectionmark##1{% + \markright {\MakeUppercase{% + \ifnum \c@secnumdepth >\z@ + \pre@sectioncnt\thesection\post@sectioncnt\quad% + \fi + ##1}}}} + \else + \def\ps@headings{% + \let\@oddfoot\@empty + \def\@oddhead{{\normalfont\slshape\rightmark}\hfil\thepage}% + \let\@mkboth\markboth + \def\chaptermark##1{% + \markright {\MakeUppercase{% + \ifnum \c@secnumdepth >\m@ne + \pre@chaptercnt\thechapter\post@chaptercnt\quad% + \fi + ##1}}}} + \fi +}{} + + +%%% from xetexko.sty +\AtBeginDocument{% + \@ifpackageloaded{hyperref}{% + \pdfstringdefDisableCommands{% + \def\는{는}% + \def\은{은}% + \def\을{을}% + \def\를{를}% + \def\와{와}% + \def\과{과}% + \def\가{가}% + \def\이{이}% + \def\라{라}% + \def\으{으}% + \def\로{로}% + }}{} +} + +\endinput diff --git a/Master/texmf-dist/tex/latex/kotex-utf/kotexutf.sty b/Master/texmf-dist/tex/latex/kotex-utf/kotexutf.sty index 7b784a770ce..f1e6e73cf56 100644 --- a/Master/texmf-dist/tex/latex/kotex-utf/kotexutf.sty +++ b/Master/texmf-dist/tex/latex/kotex-utf/kotexutf.sty @@ -1,6 +1,7 @@ %% File `kotexutf.sty` %% -%% Copyright (C) 2012-2013 Dohyun Kim <nomos at ktug org> +%% Copyright (C) 2012-2022 Dohyun Kim <nomos at ktug org> +%% Copyright (C) 2015-2022 Kangsoo Kim <karnes at ktug org> %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3c @@ -10,9 +11,9 @@ %% and version 1.3c or later is part of all distributions of LaTeX %% version 2006/05/20 or later. %% -\NeedsTeXFormat{LaTeX2e} +\NeedsTeXFormat{LaTeX2e}[2022/06/01] \ProvidesPackage{kotexutf} - [2015/07/18 v2.1.1 typesetting UTF-8 Korean documents] + [2022/06/22 v3.0.0 typesetting UTF-8 Korean documents] \newif\if@nonfrench \newif\if@hangul @@ -34,6 +35,13 @@ \input kotexutf-core +% care about fancyvrb's VerbatimOut env +\def\kotex@make@utfviii@other{% + \count@"80 \loop \catcode\count@=12 \ifnum\count@<"BF \advance\count@\@ne \repeat + \count@"C2 \loop \catcode\count@=12 \ifnum\count@<"F4 \advance\count@\@ne \repeat +} +\AddToHook{env/VerbatimOut/begin}{\kotex@make@utfviii@other} + % modified from lucenc.def \DeclareFontEncoding{LUC}{}{} %\DeclareFontSubstitution{LUC}{utbt}{m}{n} @@ -103,14 +111,10 @@ \def\dhucs@temp@hanjafont {#2}% } -\protected\edef\normalfont{% - \unexpanded{% - \let\dhucs@temp@hangulfont\dhucs@undefined - \let\dhucs@temp@hanjafont \dhucs@undefined - }% - \unexpanded\expandafter{\normalfont}% +\AddToHook{normalfont}{% + \let\dhucs@temp@hangulfont\dhucs@undefined + \let\dhucs@temp@hanjafont \dhucs@undefined } -\let\reset@font\normalfont %% now print out \unihangulchar \newcommand*\unihangulchar@@@{% @@ -511,9 +515,9 @@ \unless\ifdefined\pdfstringdefPreHook \let\pdfstringdefPreHook\@empty\fi \g@addto@macro\pdfstringdefPreHook{% - \unihangul@unprotect@range{C2}{DF}{two}% - \unihangul@unprotect@range{E0}{EF}{three}% - \unihangul@unprotect@range{F0}{F4}{four}% +% \unihangul@unprotect@range{C2}{DF}{two}% +% \unihangul@unprotect@range{E0}{EF}{three}% +% \unihangul@unprotect@range{F0}{F4}{four}% \let\unihangulchar\HyPsd@unichar \let\makejosa\@secondoftwo \let\dotemph\@firstofone diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds index 1f9e1d25ebb..a39d88f9c70 100755 --- a/Master/tlpkg/libexec/ctan2tds +++ b/Master/tlpkg/libexec/ctan2tds @@ -1566,6 +1566,7 @@ chomp (my $ctan_root = `tlpkginfo --ctan-root`); 'ibygrk' => '&PREHOOK_ibygrk', 'iodhbwm' => '&PREHOOK_flatten1', 'knuth-local' => '&PREHOOK_knuth_local', + 'kotex-utf' => '&PREHOOK_flatten1', 'kotex-oblivoir' => '&PREHOOK_flatten1', 'ktv-texdata' => '&PREHOOK_ktv_texdata', 'latexdiff' => '&PREHOOK_latexdiff', |