diff options
author | Karl Berry <karl@freefriends.org> | 2014-06-26 21:35:57 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2014-06-26 21:35:57 +0000 |
commit | fa270934a06684f332679e4d5d35972734403b36 (patch) | |
tree | 8a3facbe85b50e9b636d66071acdcd339914ffda /Master/texmf-dist | |
parent | bce2dfa6528586879c761f6df43e20cc21afb42f (diff) |
kotex-oblivoir (26jun14)
git-svn-id: svn://tug.org/texlive/trunk@34430 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
21 files changed, 1827 insertions, 3730 deletions
diff --git a/Master/texmf-dist/doc/latex/kotex-oblivoir/ChangeLog b/Master/texmf-dist/doc/latex/kotex-oblivoir/ChangeLog index 7f268933fea..47012f2c7c4 100644 --- a/Master/texmf-dist/doc/latex/kotex-oblivoir/ChangeLog +++ b/Master/texmf-dist/doc/latex/kotex-oblivoir/ChangeLog @@ -1,3 +1,27 @@ +2014-06-25 Kangsoo Kim <karnes at ktug org> + + Version 2.1.0 + + * oblivoir-base.cls: version 0.6 + use new xob-font.sty, replace \renewcommand's with \setlength's. + * oblivoir-xlua.cls: version 0.7 + use new xob-font.sty, replace false \renewcommand with \setlength. + * xoblivoir.cls: fontspec option introduced. + * doc/oblivoir-simpledoc.tex: revised for version 2.1.0. + * doc/oblivoir-test.tex: minor fixes. + * memhangul-ucs/memhangul-common.sty: minor fixes to section titles. + * memhangul-ucs/memhangul-patch.sty: move patches into main code base. + * memhangul-ucs/memhangul-ucs.sty: version 1.4.4g + suppress auto loading etex.sty. + * memhangul-ucs/memucs-gremph.sty: \if@unfonts => \if@unfont. + * memhangul-x/luatexko-xobfont.sty: removed. + * memhangul-x/memhangul-x.sty: use new xob-font.sty. + * memhangul-x/xetexko-var.sty: use new xob-font.sty. + * memhangul-x/xetexko-xobfont.sty: removed. + * memhangul-x/xob-dotemph.sty: \useremph redefined. + * memhangul-x/xob-font.sty: newly introduced. + * memhangul-x/xob-paralist.sty: minor fixes. + 2014-04-29 Kangsoo Kim <karnes at ktug org> Version 2.0.1 diff --git a/Master/texmf-dist/doc/latex/kotex-oblivoir/README b/Master/texmf-dist/doc/latex/kotex-oblivoir/README index 83b00755a34..e8ed5f9fa8b 100644 --- a/Master/texmf-dist/doc/latex/kotex-oblivoir/README +++ b/Master/texmf-dist/doc/latex/kotex-oblivoir/README @@ -46,12 +46,11 @@ Files memhangul-ucs/ob-koreanappendix.sty -> tex/latex/kotex-oblvoir/memhangul-ucs/ memhangul-ucs/ob-nokoreanappendix.sty -> tex/latex/kotex-oblvoir/memhangul-ucs/ memhangul-ucs/ob-toclof.sty -> tex/latex/kotex-oblvoir/memhangul-ucs/ - memhangul-x/luatexko-xobfont.sty -> tex/latex/kotex-oblivoir/memhangul-x/ memhangul-x/memhangul-x.sty -> tex/latex/kotex-oblivoir/memhangul-x/ memhangul-x/memucs-interword-x.sty -> tex/latex/kotex-oblivoir/memhangul-x/ memhangul-x/xetexko-var.sty -> tex/latex/kotex-oblivoir/memhangul-x/ - memhangul-x/xetexko-xobfont.sty -> tex/latex/kotex-oblivoir/memhangul-x/ memhangul-x/xob-amssymb.sty -> tex/latex/kotex-oblivoir/memhangul-x/ + memhangul-x/xob-font.sty -> tex/latex/kotex-oblivoir/memhangul-x/ memhangul-x/xob-dotemph.sty -> tex/latex/kotex-oblivoir/memhangul-x/ memhangul-x/xob-hyper.sty -> tex/latex/kotex-oblivoir/memhangul-x/ memhangul-x/xob-paralist.sty -> tex/latex/kotex-oblivoir/memhangul-x/ @@ -59,9 +58,9 @@ Files ### Documents README (this file) -> doc/latex/kotex-oblivoir/ - oblivoir-simpledoc.pdf -> doc/latex/kotex-oblivoir/ - oblivoir-simpledoc.tex -> doc/latex/kotex-oblivoir/ - oblivoir-text.tex -> doc/latex/kotex-oblivoir/ + doc/oblivoir-simpledoc.pdf -> doc/latex/kotex-oblivoir/ + doc/oblivoir-simpledoc.tex -> doc/latex/kotex-oblivoir/ + doc/oblivoir-text.tex -> doc/latex/kotex-oblivoir/ Usage ----- @@ -100,9 +99,9 @@ using XeTeX-ko or LuaTeX-ko as follows: Oblivoir class also has its own commands for specifying Korean fonts. - \setkormainfont(<Bold>)(<Italic>){<Regular>} - \setkorsansfont(<Bold>)(<Italic>){<Regular>} - \setkormonofont{<Mono>} + \setkormainfont[<basename>](<Regular>)(<Bold>)(<Italic>) + \setkorsansfont[<basename>](<Regular>)(<Bold>)(<Italic>) + \setkormonofont[<basename>](<Regular>)(<Bold>)(<Italic>) ### Sample document @@ -118,5 +117,5 @@ Contacts -------- Please report any errors or suggestions to the package maintainer, -Kihwang Lee <leekh at ktug org>. +Kihwang Lee <leekh at ktug.org>. diff --git a/Master/texmf-dist/doc/latex/kotex-oblivoir/README.md b/Master/texmf-dist/doc/latex/kotex-oblivoir/README.md deleted file mode 100644 index c9e59256435..00000000000 --- a/Master/texmf-dist/doc/latex/kotex-oblivoir/README.md +++ /dev/null @@ -1,122 +0,0 @@ -kotex-oblivoir -============== - -Introduction ------------- - -This package contains the oblivoir class, a document class based on -the memoir class for typesetting Korean documents. kotex-oblivoir -comes with two sub-packages memhangul-ucs and memhangul-x -that provide interfaces between the memoir class and the Korean typesetting -packages. - -kotex-oblivoir belongs to the ko.TeX, a comprehensive Korean typesetting -system together with packages kotex-utf, kotex-plain, kotex-utils, -cjk-ko, xetexko, and luatexko. - -Dependencies ------------- - -kotex-oblivoir depends on the following packages to function: - -* memoir: base class -* kotex-utf: Korean typesetting - -Files ------ - -### TeXinputs - - oblivoir-base.cls -> tex/latex/kotex-oblivoir/ - oblivoir-xlua.cls -> tex/latex/kotex-oblivoir/ - oblivoir.cls -> tex/latex/kotex-oblivoir/ - xoblivoir.cls -> tex/latex/kotex-oblivoir/ - memhangul-ucs/10_5.sty -> tex/latex/kotex-oblvoir/memhangul-ucs/ - memhangul-ucs/fapapersize.sty -> tex/latex/kotex-oblvoir/memhangul-ucs/ - memhangul-ucs/hfontsel.sty -> tex/latex/kotex-oblvoir/memhangul-ucs/ - memhangul-ucs/hfontspec.nanum -> tex/latex/kotex-oblvoir/memhangul-ucs/ - memhangul-ucs/memhangul-common.sty -> tex/latex/kotex-oblvoir/memhangul-ucs/ - memhangul-ucs/memhangul-patch.sty -> tex/latex/kotex-oblvoir/memhangul-ucs/ - memhangul-ucs/memhangul-ucs.sty -> tex/latex/kotex-oblvoir/memhangul-ucs/ - memhangul-ucs/memucs-enumerate.sty -> tex/latex/kotex-oblvoir/memhangul-ucs/ - memhangul-ucs/memucs-gremph.sty -> tex/latex/kotex-oblvoir/memhangul-ucs/ - memhangul-ucs/memucs-interword.sty -> tex/latex/kotex-oblvoir/memhangul-ucs/ - memhangul-ucs/memucs-setspace.sty -> tex/latex/kotex-oblvoir/memhangul-ucs/ - memhangul-ucs/nanumfontsel.sty -> tex/latex/kotex-oblvoir/memhangul-ucs/ - memhangul-ucs/ob-koreanappendix.sty -> tex/latex/kotex-oblvoir/memhangul-ucs/ - memhangul-ucs/ob-nokoreanappendix.sty -> tex/latex/kotex-oblvoir/memhangul-ucs/ - memhangul-ucs/ob-toclof.sty -> tex/latex/kotex-oblvoir/memhangul-ucs/ - memhangul-x/luatexko-xobfont.sty -> tex/latex/kotex-oblivoir/memhangul-x/ - memhangul-x/memhangul-x.sty -> tex/latex/kotex-oblivoir/memhangul-x/ - memhangul-x/memucs-interword-x.sty -> tex/latex/kotex-oblivoir/memhangul-x/ - memhangul-x/xetexko-var.sty -> tex/latex/kotex-oblivoir/memhangul-x/ - memhangul-x/xetexko-xobfont.sty -> tex/latex/kotex-oblivoir/memhangul-x/ - memhangul-x/xob-amssymb.sty -> tex/latex/kotex-oblivoir/memhangul-x/ - memhangul-x/xob-dotemph.sty -> tex/latex/kotex-oblivoir/memhangul-x/ - memhangul-x/xob-hyper.sty -> tex/latex/kotex-oblivoir/memhangul-x/ - memhangul-x/xob-paralist.sty -> tex/latex/kotex-oblivoir/memhangul-x/ - -### Documents - - README (this file) -> doc/latex/kotex-oblivoir/ - oblivoir-simpledoc.pdf -> doc/latex/kotex-oblivoir/ - oblivoir-simpledoc.tex -> doc/latex/kotex-oblivoir/ - oblivoir-text.tex -> doc/latex/kotex-oblivoir/ - -Usage ------ - -Call `oblivoir.cls` with class options as follows: - - \documentclass[<options>]{oblivoir} - -### Class options - -Oblivoir inherits many options from the memoir and underlying -Korean typesetting packages in addition to its own class options. -For a detailed description of the class options, please refer -to the included documentation (written in Korean). - -### Specifying Korean fonts - -Specifying Korean fonts in oblivoir class depends on the Korean -typesetting packages being used when compiling a document. - -With kotex-utf package, you can use `\SetHangulFonts`, `\SetHanjaFonts`, -`\SetAdhocFonts`. - -You can use fontspec package style commands when typesetting Korean -using XeTeX-ko or LuaTeX-ko as follows: - - \setmainfont[<Options>]{<Font Name>} - \setsansfont[<Options>]{<Font Name>} - \setmonofont[<Options>]{<Font Name>} - \setmainhangulfont[<Options>]{FontName} - \setsanshangulfont[<Options>]{FontName} - \setmonohangulfont[<Options>]{FontName} - \setmainhanjafont[<Options>]{FontName} - \setsanshanjafont[<Options>]{FontName} - \setmonohanjafont[<Options>]{FontName} - -Oblivoir class also has its own commands for specifying Korean fonts. - - \setkormainfont(<Bold>)(<Italic>){<Regular>} - \setkorsansfont(<Bold>)(<Italic>){<Regular>} - \setkormonofont{<Mono>} - -### Sample document - -Please refer to the `oblivoir-test.tex` file provided by this package. - -License -------- - -kotex-oblivoir is licensed under the LaTeX Project Public -License (LPPL). - -Contacts --------- - -Please report any errors or suggestions to the package maintainer, -Kihwang Lee <leekh@ktug.org>. - diff --git a/Master/texmf-dist/doc/latex/kotex-oblivoir/doc/oblivoir-simpledoc.pdf b/Master/texmf-dist/doc/latex/kotex-oblivoir/doc/oblivoir-simpledoc.pdf Binary files differnew file mode 100644 index 00000000000..140d2e851bf --- /dev/null +++ b/Master/texmf-dist/doc/latex/kotex-oblivoir/doc/oblivoir-simpledoc.pdf diff --git a/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-simpledoc.tex b/Master/texmf-dist/doc/latex/kotex-oblivoir/doc/oblivoir-simpledoc.tex index 3dc35ee9c2a..92af155de55 100644 --- a/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-simpledoc.tex +++ b/Master/texmf-dist/doc/latex/kotex-oblivoir/doc/oblivoir-simpledoc.tex @@ -1,9 +1,10 @@ % !TEX Encoding = UTF-8 Unicode -%%% -%%% \xobclass{} 2008/10/23 -%%% --10/09 Windows에서 작성/테스트함. -%%% ---10/10 Ubuntu Hardy에서 테스트함. 나눔명조체 설치. -%%% +%% oblivoir-simpledoc.tex +%% written by Nova De Hi, 2014/06/15 +%% public domain. +%% +%% part of oblivoir +%% \documentclass[ 12pt, a4paper, @@ -11,72 +12,66 @@ footnote, nobookmarks, microtype, - hyperref=colorlinks, -% xcolor=x11names, -% fontspec=no-math, -]{xoblivoir} %% ,latinquote - -%\documentclass[12pt,a4paper,footnote,xcolor={svgnames}{oblivoir} +]{oblivoir} \usepackage{fapapersize} \usefapapersize{*,*,30mm,*,35mm,*} \usepackage{kotex-logo} -\def\myREF#1#2{% - \ifPDFTeX \ref{#1}\else \ref{#2}\fi -} -\def\myLabel#1#2{% - \ifPDFTeX \label{#1}\else \label{#2}\fi +\hypersetup{colorlinks,linkcolor=blue} + +%%% ifpxltex can be installed from KTUG Private Repository. not included in TeX Live +\usepackage{ifpxltex} + +\IfpxlTeXpxl*{p}{x,l} +{ + \def\myREF#1#2{\ref{#1}} + \def\myLabel#1#2{\label{#1}} + \def\myPageREF#1#2{\pageref{#1}} } -\def\myPageREF#1#2{% - \ifPDFTeX \pageref{#1}\else \pageref{#2}\fi +{ + \def\myREF#1#2{\ref{#2}} + \def\myLabel#1#2{\label{#2}} + \def\myPageREF#1#2{\pageref{#2}} } +\def\cs#1{\texttt{\textbackslash #1}} +\def\util#1{\texttt{#1}} +\def\ct#1{\texttt{#1}} + \ifx\oblivoirdblquote\undefined \def\oblivoirdblquote#1{``#1''} \fi -\ifPDFTeX -\ifx\XeTeX\undefined -\def\Xe{\hologo{Xe}} -\def\XeTeX{\hologo{XeTeX}} -\def\XeLaTeX{\hologo{XeLaTeX}} -\fi -\ifx\LuaTeX\undefined -\def\LuaTeX{\hologo{LuaTeX}} -\def\LuaLaTeX{\hologo{LuaLaTeX}} -\fi -\else -%%%%%% tested on Windows XP SP3 -\setkormonofont{은 필기} -\setmonoscale{0.9} -\defaultfontfeatures{Mapping=tex-text} -%%%%%% tested on Linux/Ubuntu -%\setmainfont[Mapping=tex-text]{Bradley Hand ITC} -%\setmonofont[Scale=.85]{Comic Sans MS} -%\setmainfont[Mapping=tex-text]{Monotype Corsiva} -\setmonofont[Scale=.85]{Monaco} -%\setkormainfont(문화 궁서 Std L){문화 궁서 흐림 Std L}(){네이버사전} -\setkormainfont(* Bold)(*){HCR Batang LVT} -%\setkorsansfont(문화 궁서 Std B)(문화 훈민 Std R){문화 고딕 Std R}(){한컴돋움} -%%%%%%%%%%%%%%%%%%%%%%%%%%% -\fi +\IfpxlTeX*{x,l} +{ + \setkomonofont(MalgunGothic)[Scale=0.9] + \setobmonofont(Monaco)[Scale=.85] + \setobmainfont(Minion Pro) + \setobsansfont(Myriad Pro) + \setkomainfont[윤명조](320)(340)[ExternalLocation] +} \newcommand\xobclass{x\-ob\-liv\-oir\oblivoirallowbreak} \newcommand\obclass{ob\-liv\-oir\oblivoirallowbreak} \def\xetexko{\XeTeX-\ko} +\def\luatexko{\LuaTeX-\ko} \pagestyle{ruled} \usepackage{tabu} -\usepackage[normalem]{ulem} + +\IfpxlTeX*{p,x} +{ + \usepackage[normalem]{ulem} +} \begin{document} -\title{초간단 \obclass{} v2.0 사용법} +\title{초간단 \obclass{} v2.1 사용법} -\date{2013년 10월} +\date{2014년 6월} \author{x-ob-liv-oir } @@ -139,8 +134,8 @@ 이 각각의 명령에 대한 정보를 얻으려면, memoir 매뉴얼(\texttt{texdoc memman}), 한글 패키지 매뉴얼(예컨대, \texttt{texdoc kotex}, \texttt{texdoc xetexko})을 읽어야 한다. -이 문서에서는 위의 두 패키지 층위의 명령군에 대해 언급할 때, 여백에 \fbox{memoir}, \fbox{kotex}등을 -표시하겠다. 그리고 엔진별로 고유한 옵션과 명령에 대해서는 해당 사항을 본문에서 밝힌다. +%이 문서에서는 위의 두 패키지 층위의 명령군에 대해 언급할 때, 여백에 \fbox{memoir}, \fbox{kotex}등을 +%표시하겠다. 그리고 엔진별로 고유한 옵션과 명령에 대해서는 해당 사항을 본문에서 밝힌다. 위의 두 층위의 문서에서 설명하지 않는 \obclass에 대한 정보를 이 문서에서 얻을 수 있다. @@ -264,7 +259,7 @@ ms, showtrims \item [adjustmath] 한글 문서의 행간격이 벌어짐으로 인해서 display 수식의 전후에 너무 많은 공백이 생기는 것을 막아준다. \item [arabicfront] \verb|\frontmatter| 부분의 페이지 숫자를 아라비아 숫자로 찍는다. 기본값은 로만 숫자. \item [footnote] 각주 번호와 숫자를 한국식으로 식자한다. -\item [figtabcapt] 그림과 표에 <그림 1>과 같은 방식으로 캡션을 단다. +\item [figtabcapt] 그림과 표에 \cnm{그림 1}과 같은 방식으로 캡션을 단다. \item [gremph] 글꼴 대체 강조 방식을 쓴다. 이것이 기본값이다. \item [itemph] 기울인 글꼴 강조 방식을 쓴다. \item [nonfrench] nonfrenchspacing. @@ -273,6 +268,8 @@ ms, showtrims \item [pdfbookmark] nokorean 옵션을 주면서도 북마크는 만들도록 hyperref을 로드해주는 역할을 한다. nokorean 옵션이 주어지지 않을 때는 무의미함. \item [10.5pt] 본문 활자 크기를 10.5pt로 한다. \item [quotespacing] quote, quotation 환경의 줄간격을 `좁은 줄간격'으로 줄인다. +\item [nanum] 나눔명조/나눔고딕 트루타입 글꼴을 기본 글꼴로 사용하도록 설정한다. +\item [hcr] 함초롬 LVT 글꼴을 기본 글꼴로 사용하도록 설정한다. \end{description} \bigskip @@ -364,7 +361,7 @@ ms, showtrims %%%한글 문서 작성에 있어서 표준이 되고자 하는 \obclass{}를 %%%\XeTeX 에서\explpunc.Lua\TeX 에서도.\ 편리하게 사용할 수 있게 되기를 바라 마지 않는다. -\section{폰트 설정 방식에 대한 간단한 설명}\label{sec:font} +\section{폰트 설정 방식에 대한 간단한 설명}\myLabel{sec:font}{sec:폰트} \subsection{\koTeX-utf 엔진} @@ -401,7 +398,7 @@ gremph는 \koTeX-utf에서 \verb|\usepackage{dhucs-gremph}|를 선언한 경우 라틴 문자 글꼴을 따라가게 된다. 즉, \texttt{\textbackslash setmainfont} 등으로 선언된 글꼴이 한글과 라틴 문자에 동시에 식자된다.\footnote{% 이외에도 한글-라틴 문자 글꼴의 분리에 따르는 여러 가지 옵션 정의에 관련된 - \xetexko{} 매크로가 있으므로 이에 대해서는 \xetexko{} 매뉴얼을 + \xetexko, \luatexko\ 매크로가 있으므로 이에 대해서는 \xetexko, \luatexko\ 매뉴얼을 참고하라. } @@ -409,6 +406,7 @@ gremph는 \koTeX-utf에서 \verb|\usepackage{dhucs-gremph}|를 선언한 경우 라틴 문자 폰트는 fontspec 패키지의 방식을 따른다. 설정과 사용에 대해서는 fontspec 패키지 문서를 참고하라. 매우 방대하고 훌륭한 문서이다. + \begin{boxedverbatim} \setmainfont{<Font Name>} \setsansfont{...} @@ -417,17 +415,19 @@ gremph는 \koTeX-utf에서 \verb|\usepackage{dhucs-gremph}|를 선언한 경우 이 명령의 옵션으로 \verb|[Ligatures=TeX]|을 주면 \verb|``|, \verb|---|와 같은 입력이 ``, ---와 같이 나타난다. 대부분의 텍 소스에는 이런 이른바 텍 리거쳐를 사용하는 것이 -일반적이므로 이 옵션을 지정하는 것이 좋다. \XeTeX 에서 \verb|[Mapping=tex-text]| 옵션을 -써도 좋은데 이 옵션은 \LuaTeX 에서는 무의미하므로 양쪽에 통용되는 \verb|[Ligatures=TeX]|을 -쓰도록 하자. 따라서 만약 TeX Gyre Termes를 라틴 문자 세리프 글꼴로 쓰려 한다면, -\begin{boxedverbatim} +일반적이므로 이 옵션을 지정하는 것이 좋다. 최신 버전의 fontspec은 이 옵션을 자동으로 붙여주며, +아래 설명할 \cs{setkomainfont} 등의 명령을 써도 역시 이 옵션은 자동으로 붙는다. +%\XeTeX 에서 \verb|[Mapping=tex-text]| 옵션을 +%써도 좋은데 이 옵션은 \LuaTeX 에서는 무의미하므로 양쪽에 통용되는 \verb|[Ligatures=TeX]|을 +%쓰도록 하자. 따라서 +만약 \ct{TeX Gyre Termes}를 라틴 문자 세리프 글꼴로 쓰려 한다면, +\begin{verbatim} \setmainfont[Ligatures=TeX]{TeX Gyre Termes} -\end{boxedverbatim} +\end{verbatim} 와 같이 지정하면 된다. \paragraph{한글과 한자} -한글 폰트는 다음과 같이 설정한다. 자세한 사항은 -매뉴얼을 참고하라. +한글 폰트는 다음 명령을 사용하여 설정한다. 자세한 사항은 \xetexko, \luatexko\ 매뉴얼을 참고하라. \begin{boxedverbatim} \setmainhangulfont[Options]{FontName} \setsanshangulfont[Options]{FontName} @@ -436,25 +436,36 @@ gremph는 \koTeX-utf에서 \verb|\usepackage{dhucs-gremph}|를 선언한 경우 \setsanshanjafont[Options]{FontName} \setmonohanjafont[Options]{FontName} \end{boxedverbatim} -\xobclass 에서도 이 방식의 폰트 정의를 할 수 있다. %이 문법은 -%fontspec 패키지를 따르는 것이다. -한글 폰트만을 이용해서 한글/라틴 문자에 모두 식자할 필요가 있을 -수 있다. 이 경우 다음과 같이 하는 것이 한 가지 방법이다. +이밖에 특별한 명령으로 \luatexko에는 fallbackfont를 위한 명령이 있다. \begin{boxedverbatim} -\disablekoreanfonts -\setmainfont{NanumMyeongjo} +\setmainfallbackfont +\setsansfallbackfont +\setmonofallbackfont \end{boxedverbatim} -또는, -\begin{boxedverbatim} -\setmainhangulfont{NanumMyeongjo} -\hangulmarks -\end{boxedverbatim} -이렇게 하면 라틴 문자와 문장부호, 숫자를 나눔명조로 식자한다. +\xetexko에는 이 명령이 없는 대신 \cs{newfontfamily}\cs{fallbackhanjafont}를 이용하여 +fallback 폰트를 정의할 수 있다. 이 기능은 한자(또는 한글/한자) 글꼴에서도 찾을 수 없는 한자를 +식자하기 위해서 사용된다. -더 세세한 지정을 위하여 -그리고 alphas, nums, parens, quotes, colons, hyphens, puncts, cjksymbols가 식자될 폰트의 영역(latin, hangul, hanja, prevfont)을 정의하는 \verb|\xetexkofontregime| 명령도 쓸 수 있다. -이에 대해서는 \xetexko\ 매뉴얼을 반드시 참조하라. +여기 언급하지 못한 다양한 명령들이 제공되므로 해당 매뉴얼을 반드시 읽어보기 바란다. +oblivoir에서도 \xetexko, \luatexko 의 폰트 설정 방식을 그대로 활용할 수 있다. + +%한글 폰트만을 이용해서 한글/라틴 문자에 모두 식자할 필요가 있을 +%수 있다. 이 경우 다음과 같이 하는 것이 한 가지 방법이다. +%\begin{boxedverbatim} +%\disablekoreanfonts +%\setmainfont{NanumMyeongjo} +%\end{boxedverbatim} +%또는, +%\begin{boxedverbatim} +%\setmainhangulfont{NanumMyeongjo} +%\hangulmarks +%\end{boxedverbatim} +%이렇게 하면 라틴 문자와 문장부호, 숫자를 나눔명조로 식자한다. +% +%더 세세한 지정을 위하여 +%그리고 alphas, nums, parens, quotes, colons, hyphens, puncts, cjksymbols가 식자될 폰트의 영역(latin, hangul, hanja, prevfont)을 정의하는 \verb|\xetexkofontregime| 명령도 쓸 수 있다. +%이에 대해서는 \xetexko\ 매뉴얼을 반드시 참조하라. \paragraph{임시 폰트 교체} 문장을 작성 중에 일시적으로 폰트를 교체하기 위한 명령으로 @@ -469,209 +480,557 @@ gremph는 \koTeX-utf에서 \verb|\usepackage{dhucs-gremph}|를 선언한 경우 \end{boxedverbatim} 명령도 정의되어 있으며, \verb|\fontspec| 명령이 적용되지 않는 한글과 한자 영역에 효력을 발휘하므로 필요한 대로 쓸 수 있다. -\subsection{\obclass의 폰트 설정 명령} +\subsection{\obclass의 폰트 설정 명령 (\protect\cs{setko...} 명령군)} + +\subsubsection{글꼴의 이름} +fontspec을 이용하여 글꼴을 지정하는 데 있어서 사용자가 곤란을 겪는 문제 중의 하나가 글꼴 이름을 +지정하는 것이다. 먼저 특정 폰트(여기서는 함초롬바탕LVT)의 글꼴 이름을 알아보기 위해 \util{otfinfo}를 +사용해보자. 글꼴에 대하여 \util{otfinfo -i}를 실행하면 다음과 같은 결과가 나온다. + +\begin{footnotesize} +\begin{verbatim} +$ otfinfo -i HANBatang-LVT.ttf +Family: HCR Batang LVT +Subfamily: Regular +Full name: HCR Batang LVT +PostScript name: HCRBatangLVT +Mac font menu name: HCR Batang LVT +Version: Version 1.940; KTS Build 20140401 +Unique ID: YoonDesign: HCR Batang LVT: KTS 20140401 +Description: The Korean TeX Society has added GSUB/GPOS/vhea/vmtx tables + chiefly for old hangul rendering. + Please contact http://www.ktug.org for these issues. +Designer URL: http://yoonfont.co.kr/ +Manufacturer: YoonDesign; The Korean TeX Society +Vendor URL: http://yoonfont.co.kr/ +Trademark: HCR Batang is a trademark of YoonDesign. +Copyright: Copyright (c) 2010-2013 Hancom INC(HNC). All rights reserved. +License URL: http://yoonfont.co.kr/ +License Description: YoonDesign Inc. +Vendor ID: YDI +\end{verbatim} +\end{footnotesize} +이 가운데, ``Full name''과 ``Postscript name''을 사용하면 된다.\footnote{% + 2014년 6월 현재, 대체로 \XeTeX 은 ``Full name''을 쓰면 거의 오류없이 동작하고 + \LuaTeX 은 Postscript name을 선호하는 듯하다. 이 사정은 \ct{luaotfload}나 + \XeTeX\ 엔진의 개선에 따라 달라질 수 있다.} +%일반적으로 Postscript name을 +%쓰는 쪽이 좋다. +여기서 ``Family''는 같은 글꼴 가족들이 똑같은 이름을 가진다. 예를 들어 함초롬바탕LVT Bold체는 +Family가 ``HCR Batang LVT''이고 Subfamily가 ``Bold''로 되어 있다. 이렇게 글꼴 자체가 글꼴 가족에 대한 정보를 가지고 있으면 Regular만 지정해도 자동으로 Bold 글꼴을 글꼴가족에서 찾는다 (모든 한글 글꼴이 이렇지는 않다). + +예를 들면 +\oblivoirdblquote{맑은 고딕}은 맥락에 따라 \oblivoirdblquote{맑은 고딕 Bold}를 +글꼴 가족으로 인식한다. 맑은 고딕의 폰트 정보 중에서 이름(name)과 가족에 해당하는 부분을 보면, +\begin{verbatim} +$ otfinfo -i Malgun.ttf | grep -e "name" -e "amily" +Family: Malgun Gothic +Subfamily: Regular +Full name: Malgun Gothic +PostScript name: MalgunGothicRegular + +$ otfinfo -i Malgunbd.ttf | grep -e "name" -e "amily" +Family: Malgun Gothic +Subfamily: Bold +Full name: Malgun Gothic Bold +PostScript name: MalgunGothicBold +\end{verbatim} + +그러므로 +\begin{verbatim} +\setkosansfont(Malgun Gothic) +\end{verbatim} +이렇게만 지정해도 굵은 글꼴이 요구되는 곳에서는 \oblivoirdblquote{맑은 고딕 Bold}를 +식자해준다. +%이렇게 잘 만들어진 글꼴을 이용하는 경우, 간단히 하나의 인자로 +%글꼴을 지정해주는 것만으로 굵은 글꼴을 사용하게 할 수 있다. + +폰트 파일 이름 자체를 쓸 수도 있다. 다만 이 경우는 글꼴 가족을 지정하는 것이 아니므로 Bold나 Italic subfamily를 +자동으로 인식하지 못할 수 있다. 파일 이름으로 사용하려면 확장자를 붙여주면 된다. 예컨대 함초롬바탕 LVT라면 +\texttt{HANBatang-LVT.ttf}를 그대로 지정할 수 있다. 굳이 \texttt{[ExternalLocation]} 옵션을 주지 +않아도 확장자를 붙이는 것만으로 ExternalLocation과 동일한 결과를 얻는다. \subsubsection{간단한 폰트 지정} -한편, 한글 글꼴을 선언하는 데 있어서 +\XeTeX-\ko, \LuaTeX-\ko의 기본 한글/한자 폰트 지정 명령인 +\begin{verbatim} +\setmainhangulfont, \setsanshangulfont, \setmonohangulfont +\setmainhanjafont, \setsanshanjafont, \setmonohanjafont +\end{verbatim} +들이 있으나, \xobclass 에서는 약간 다른 방법(더 편리한?)의 폰트 정의가 가능하다. 이것은 다음 세 명령으로 이루어져 있다. \begin{boxedverbatim} -\setkormainfont(<Bold>)(<Italic>){<Regular>} -\setkorsansfont(<Bold>)(<Italic>){<Regular>} -\setkormonofont{<Mono>} +\setkomainfont[<basename>](<Regular>)(<Bold>)(<Italic>) +\setkosansfont[<basename>](<Regular>)(<Bold>)(<Italic>) +\setkomonofont[<basename>](<Regular>)(<Bold>)(<Italic>) \end{boxedverbatim} +이 세 명령을 사용할 때 주의할 점은 중괄호 \{ \}가 전혀 쓰이지 않는다는 것이다. +입력상 실수하기 쉬우므로 주의를 요한다. + 이러한 폰트 정의 방식은 xoblivoir 클래스의 원래 의도인 `되도록 간단하게 -필요한 것만' 사용하자는 데서 나온 것이다. 그러므로 옛한글 설정이나 -자간, 장평 등 복잡한 폰트 속성을 적용하려 한다면 당연히 \xetexko 의 (즉 fontspec의) -설정 방식을 이용하는 것이 좋다. +필요한 것만' 사용하자는 데서 나온 것이다. +%그러므로 옛한글 설정이나 +%자간, 장평 등 복잡한 폰트 속성을 적용하려 한다면 당연히 \xetexko 의 (즉 fontspec의) +%설정 방식을 이용하는 것이 좋다. -이후의 설명은 \verb|\setkormainfont|에 대해서만 한다. 다른 두 -명령의 사용법은 동일하다. +이후의 설명은 \verb|\setkomainfont|에 대해서만 한다. 다른 두 명령의 사용법은 동일하다. +\begin{boxedverbatim} +\setkomainfont(Font Name) +\end{boxedverbatim} +가장 기본적인 사용법은 위와 같다. 중괄호 \verb|{ }|가 아니라 괄호 \verb|( )|를 쓰고 있음에 주의하라. +\paragraph{긴 명령} +이 명령의 완전한 형태는 다음과 같다. \begin{boxedverbatim} -\setkormainfont{Font_Family_Name} +\setkomainfont[<namebase>]% + (regular)% + (bold)% + (italic)% + [hangul-feature]% + [<hanja namebase>]% + (hanja-regular)% + (hanja-bold)% + (hanja-italic)% + [hanja-feature] \end{boxedverbatim} -한글 글꼴 가운데 어떤 것은\explpunc.모든 한글 글꼴이 그렇지는 않다는 -데 주의하라.\ 글꼴 가족을 이루고 있는 것이 있다. 예를 들면 -\oblivoirdblquote{맑은 고딕}은 맥락에 따라 \oblivoirdblquote{맑은 고딕 Bold}를 -글꼴 가족으로 인식한다. 이런 경우 예를 들어 +모두 열 개의 옵션 인자가 올 수 있는데 그 가운데 적어도 하나의 괄호 옵션 인자는 반드시 있어야 한다. +그러므로 그것(첫번째 regular)은 ``옵션'' 인자가 아니라 그냥 인자이지만 하나만을 중괄호로 묶는 것이 오히려 코딩 +실수를 증가시킬 것으로 보아서 모두 괄호 인자를 사용하도록 했다. +괄호 옵션 인자를 하나만 준다면 그것은 한글 regular 글꼴 이름으로 받아들일 것이다. +나머지 아홉 개의 옵션 인자는 생략 가능하다. 각 옵션 인자가 생략가능하기 때문에 +괄호나 꺾쇠괄호 사이에 스페이스를 남기지 않도록 주의해야 한다. 예를 들어 \verb*|(fontname) [feature]|와 같이 +적으면 스페이스 때문에 옵션 인자의 파싱에 실패할 수 있다. + +기본적으로 폰트 이름은 \verb|( )| 안에 들어간다. 그리고 미리 오는 \verb|[ ]|는 이름의 공통 부분을 축약하기 위한 것이고 끝에 오는 \verb|[ ]|는 속성을 추가하기 위한 것이다. 이 규칙이 두 번 반복된다고 생각하면 되겠다. + +\paragraph{한글과 한자} +이 가운데 앞의 다섯 개는 한글, 뒤의 다섯 개는 한자관련 설정이다. 그런데 예컨대 \begin{verbatim} -\setsansfont{Malgun Gothic} +\setkomainfont(Fontname A)(Fontname B) +\end{verbatim} +이렇게 코딩해서 Fontname B가 한자 글꼴이 되게 하려 해도 +두 번째 괄호 옵션 인자는 한자 regular로 받아들이는 것이 아니라 +한글 bold 이름으로 인식할 것이다. +따라서 한글과 한자 사이에 다음과 같이 경계를 주면 +\begin{verbatim} +\setkomainfont(한글 글꼴)[](한자 글꼴) +\end{verbatim} +이제 의도대로 동작한다. 다음 보기는 한글을 함초롬바탕LVT, 한자를 맑은 고딕으로 선택하는 예가 된다. +\begin{verbatim} +\setkomainfont(HCR Batang LVT)[](Malgun Gothic) \end{verbatim} -이렇게만 지정해도 굵은 글꼴이 요구되는 곳에서는 \oblivoirdblquote{맑은 고딕 Bold}를 -식자해준다. -이렇게 잘 만들어진 글꼴을 이용하는 경우, 간단히 하나의 옵션으로 -글꼴을 지정해주는 것만으로 굵은 글꼴을 사용하게 할 수 있다. -\begin{boxedverbatim} -\setkormainfont[Options]{Font_Name} -\end{boxedverbatim} -만약 각괄호(\verb|[|)가 첫 인자로 나오면 이 명령의 사용법은 -\verb|\setmainhangulfont|와 동일하다. 즉 fontspec 명령을 그대로 -쓸 수 있다. -\begin{boxedverbatim} -\setkormainfont[Options]{Font_Name}[hnj_Options]{hnj_Font_Name} -\end{boxedverbatim} -다른 점은 위와 같이 한자 글꼴을 잇대어 정의할 수 있다는 것이다. -이 때 반드시 한자 글꼴 추가 정의가 시작된다는 듯으로 각괄호 []를 -써주어야 한다. 아무런 옵션을 지정하지 않더라도 이 부호는 있어야 -한다. - -\subsubsection{폰트 가족의 지정} - -한글 폰트의 폰트 가족(font family)은 인위적으로 지정해주어야 할 때가 있다. -여러 한글 폰트를 임의로 묶어서 하나의 폰트 가족처럼 다루는 경우이다. - -한글의 폰트 가족은 Regular/Bold/Italic -으로 이루어진다고 가정하고 있다.% -\footnote{원한다면 BoldItalic까지 포함할 수 있으나, \xobclass{}는 - BoldItalic을 별도로 설정하는 것을 기본으로 - 삼지 않았다. 지나치게 번거로울 뿐 아니라 BoldItalic에 - 특별한 의미를 부여하기 힘들었기 때문이다. 반면, \xetexko 는 - BoldItalic을 별도로 설정할 수 있게 하고 있으므로 혹시라도 - 원한다면 이것은 사용자에게 맡겨져 있다. -} -폰트 가족을 지정하여 글꼴 설정을 할 때는 다음과 같이 한다. -\begin{boxedverbatim} -\setkormainfont(<hgBd>)(<hgIt>){<Hangul>} -\setkorsansfont(<hgBd>)(<hgIt>){<Hangul>} -\end{boxedverbatim} -첫 두 인자를 둘러싼 괄호가 각괄호 []가 아니라 괄호 ()임에 주의하라.\footnote{% - 이것은 2008/11/09 버전의 변경사항이다. 하위호환성을 제공하지 - 않으므로 이전의 모든 소스를 수정해야 한다.} -아무튼 괄호 ()로 둘러싸인 부분은 생략가능하다. 첫 괄호 인자만 있고 -이탤릭 글꼴을 지정하지 않으면 기본 글꼴로 치환된다. +한자 설정은 한글 설정 이후에 잇대어 쓰는 것으로 한글 설정 방식과 완전히 똑같다. +실제로 \verb|\setkomainfont(A)[](B)| 명령은 +\begin{verbatim} +\setmainhangulfont{A} +\setmainhanjafont{B} +\end{verbatim} +와 동일하기 때문에 굳이 한자 글꼴을 따로 지정하지 않아도 한자 자면을 가진 한글 글꼴을 설정하면 +한자가 잘 표시된다. +그러나 NanumMyeongjo와 같이 한자 자면이 없는 글꼴이라면 한자 글꼴을 별도로 선언해주어야 할 +것이다. -한글 폰트와 별도의 한자 폰트를 설정할 필요가 있을 때는 다음과 같이 한다. -\begin{boxedverbatim} -\setkormainfont(<hgBd>)(<hgIt>){<Hangul>}(<hjBd>)(<hjIt>){<Hanja>} -\setkorsansfont(<hgBd>)(<hgIt>){<Hangul>}(<hjBd>)(<hjIt>){<Hanja>} -\end{boxedverbatim} -한자를 한글과 별도의 폰트로 식자하도록 하는 것은 그 번거로움을 피할 수 없지만, -한글 폰트 가운데 한자 영역이 거의 없거나 있더라도 부실한 것이 너무 많기 때문에 -현재의 한글 폰트의 사정을 돌아볼 때 부득이하고 불가피하다. +한자 폰트 부분을 선언하면 \LuaTeX-\ko의 \verb|\hanjabyhanjafont|를 1로 만들어서 선언된 +한자 글꼴이 우선적으로 사용되도록 하는 효과가 있다. 만약 이를 원하지 않는다면 \verb|\hanjabyhanjafont 0|을 +직접 선언하도록 하라. + +\paragraph{regular, bold, italic, bolditalic} +글꼴 가족이 잘 설정된 폰트를 사용한다면 bold를 굳이 지정할 필요는 없다. +bold를 지정하지 않는 것은 이 인자를 주지 않는 것이다. \verb|()|와 같이 비운 인자를 주면 +bold 글꼴에 regular 글꼴이름을 사용하므로 오히려 bold 효과가 사라진다. +bold 글꼴을 아예 별도로 지정할 때는 글꼴 이름을 다 적어준다. 한편, 예컨대 +HCR Batang LVT에 대하여 HCR Batang LVT Bold가 볼드체 이름임을 이용하여 +\verb|\setkomainfont(HCR Batang LVT)(* Bold)|와 같이 지정하는 방법도 통한다. +함초롬바탕의 full name을 쓰지 않고 Postscript name을 쓴다면, +\begin{verbatim} +\setkomainfont(HCRBatangLVT)(*-Bold) +\end{verbatim} +와 같이 하면 될 것이다. -두 번째 선택 인자는 이탤릭체를 나타낸다. 이 인자를 지정하지 않으면 -기본 글꼴로 치환된다. Regular 폰트를 이 자리에 쓰고 싶을 때가 있다. 이럴 경우 간단히 -\begin{boxedverbatim} -\setkormainfont(BOLD)(*){REGULAR} -\end{boxedverbatim} -와 같이 (*)로 줄여 쓸 수 있다. 즉, 아예 두번째 인자가 없으면 REGULAR 폰트로 치환되고, (*)로 지시되면 REGULAR 글꼴을 이탤릭으로 식자한다. -만약 itemph 옵션이 지시되어 있다면 REGULAR의 FakeSlanted 글자가 -식자되고, gremph 옵션이 지시되어 있다면 이 자리에 선언된 글꼴이 곧은 모양으로 찍힐 것이다. -이 줄인 옵션은 두 번째 선택 인자, 즉 이탤릭 선언에만 동작하며, -\verb|\setkormainfont|와 \verb|\setkorsansfont|에서 쓸 수 있다. +한글은 이탤릭이 없지만 우사체를 쓰는 관행이 있다. oblivoir 클래스 옵션으로 \texttt{[itemph]}를 +설정하면 italic을 써야 할 곳에서 기울어진 서체를 쓸 수 있다. 반면 \texttt{[gremph]}로 하면 +바로 선 서체를 사용한다. \texttt{[gremph]}가 디폴트이며, 이 경우 이탤릭을 써야 할 곳에 다른 +폰트를 사용하게 할 수 있다. 예를 들면 +\begin{verbatim} +\setkomainfont(HCR Batang LVT)(* Bold)(NanumGothic) +\end{verbatim} +이렇게 하면 이탤릭을 쓸 자리에 나눔고딕이 사용된다. 만약 클래스 옵션 \texttt{[itemph]}가 +주어져 있다면 나눔고딕도 기울어진다. +이탤릭 글꼴을 아예 지정하지 않으면 regular에 지정된 글꼴을 그대로 쓴다. \texttt{[itemph]}라면 +이탤릭 글꼴을 지정하지 않아도 될 것이고 \texttt{[gremph]}라면 적당한 글꼴을 적어주면 될 것이다. + +bolditalic의 경우 볼드체 글꼴과 이탤릭 속성을 사용한다. 즉 \texttt{[gremph]}이면 bold와 +bolditalic이 동일할 것이고, \texttt{[itemph]}라면 bold 글꼴이 기울어진 모양으로 나온다. +bolditalic 폰트를 별도로 지정하려 한다면 아래에서 설명할 feature 추가 방식으로 다음과 같이 하여야 한다. +\begin{verbatim} +\setkomainfont(Regular)(Bold)(Italic)[BoldItalicFont={Fontname}] +\end{verbatim} -\subsection{디폴트 치환}\myLabel{sec:default}{sec:디폴트} +\paragraph{base name을 사용하여 공통 부분 줄여쓰기} +KoPubBatang체 같은 경우, 글꼴 가족이 서로 다른 다음 세 폰트가 있다. +\begin{verbatim} +KoPubBatangLight.ttf KoPubBatangLight KoPubBatang Light +KoPubBatangMedium.ttf KoPubBatangMedium KoPubBatang Medium +KoPubBatangBold.ttf KoPubBatangBold KoPubBatang Bold +\end{verbatim} +이 글꼴은 앞부분 이름은 같지만 Regular/Bold에 대응하는 글꼴로 설정되어 있지 않다. +이러한 상황에서 앞의 같은 부분을 base name으로 지정하고 나머지 부분을 각각 써넣는 방식으로 +글꼴을 지정할 수 있다. +\begin{verbatim} +\setkomainfont[KoPubBatang](Light)(Bold) +\end{verbatim} +이것은 +\begin{verbatim} +\setkomainfont(KoPubBatangLight)(KoPubBatangBold) +\end{verbatim} +를 줄여쓴 것으로 이해하면 된다. 이탤릭 폰트는 지정하지 않은 보기인데, 원한다면 세번째 괄호 옵션에 +써넣을 수 있다. 단, 이 방법을 쓸 때는 별표(*)를 사용할 수 없다. 왜냐하면 별표를 사용하였을 때 +KoPubBatang*이라는 이름의 폰트를 찾으려 할 것이기 때문이다. -필요한 정보가 충분히 주어지지 않으면 폰트 설정은 기본값으로 -치환된다. 아래 몇 가지 사용례를 보기로 하자. +예를 들어, 서울시체를 본문 글꼴로 하고 바탕 글꼴용 한자는 한양해서를 쓰고 싶다면(실제 해보면 그다지 어울리지 않지만) 어떻게 할 수 있을까? +\begin{verbatim} +\setkomainfont[SeoulHangang](L)(B)[](HYhaeseo) +\setkosansfont[SeoulNamsan](L)(B) +\end{verbatim} -\begin{boxedverbatim} -\setkormainfont{HCR Batang LVT} -\end{boxedverbatim} -위의 명령을 실행하면 Regular와 Bold, Italic이 지정한 폰트로 바뀐다. -%여기 예시한 글꼴은 font family를 이루고 있지 않은 개별 글꼴이므로 -%굵은 글꼴에도 같은 폰트가 식자된다. -예시한 글꼴은 Bold 서체가 font family를 이루고 있으므로 굵은 글꼴을 자동으로 -HCR Batang LVT Bold로 식자한다. 그러나 그렇지 않은 글꼴을 예를 들면, -\begin{boxedverbatim} -\setmainfont{YJ BELLA Medium} -\end{boxedverbatim} -과 같이 하는 경우 양재벨라체가 굵은 글꼴 자리에도 똑같은 글꼴로 식자하게 된다. +이 방식에서 주의할 것은 예컨대 이탤릭 글꼴로 완전히 이름이 다른 것을 쓰고자 한다면 +이런 식으로 할 수 없다는 점이다. +\paragraph{feature의 추가} +네 번째 옵션 인자는 한글 폰트를 설정할 때 넘겨줄 feature를 지정한다. +\begin{verbatim} +\setkomainfont(HCRBatangLVT)[FakeStretch=0.95,InterHangul=-0.05em] +\end{verbatim} +이것은 장평을 95\%로 하고 자간을 5\% 줄이는 예이다. 여기에 쓸 수 있는 feature에 관해서는 +fontspec 설명서와 \xetexko, \luatexko\ 설명서를 참고하라. -\begin{boxedverbatim} -\setkormainfont[BoldFont={NanumMyeongjo ExtraBold},% - ItalicFont={NanumBarunGothic},% - ItalicFeatures={FakeSlant={.17}}]{NanumMyeongjo} -\end{boxedverbatim} -위와 같이 fontspec 문법의 옵션을 지정할 수 있다. +다섯번째 옵션 인자는 한자의 base name이다. 네번째 없이 다섯번째만 올 수 없으므로 이것을 +설정하려면 +\begin{verbatim} +\setkomainfont(HCRBatangLVT)[][KoPubBatang](Light) +\end{verbatim} +와 같이 적어도 네번째 옵션 인자를 (비우더라도) 지정해야 할 것이다. -\begin{boxedverbatim} -\setkormainfont(NanumMyeongjo ExtraBold){NanumMyeongjo} -\end{boxedverbatim} -이 명령은 Regular와 Bold만 지정된다. +\paragraph{ExternalLocation} +폰트를 그 이름(full name 또는 Postscript name)으로 지정하지 않고 파일 이름으로 찾으려 할 때, +다음과 같은 방법이 있다. +먼저 옵션 인자로 \texttt{ExternalLocation}을 선언하는 방법이다. 이 때는 확장자를 지정하지 않아도 된다. +\begin{verbatim} +\setkomainfont(HANBatang-LVT)[ExternalLocation] +\end{verbatim} +파일 이름을 그대로 적어주는 방법이 있다. 이렇게 하면 \texttt{ExternalLocation}과 똑같이 동작한다. +\begin{verbatim} +\setkomainfont(HANBatang-LVT.ttf) +\end{verbatim} -\begin{boxedverbatim} -\setkormainfont(NanumMyeongjo ExtraBold)(*){NanumMyeongjo} -\end{boxedverbatim} -이 명령은 Italic에 NanumMyeonjo를 식자하게 한다. gremph에서는 -upshape와 itshape가 똑같이 찍히게 되지만 itemph에서는 같은 -글꼴이 기울어져 식자될 것이다. +파일 이름으로 호출하는 경우 별표(*)를 이용하여 이름의 공통부분을 줄여쓰는 방법을 사용할 수 없다. +그리고 +하나의 글꼴군 세트에서 ``이름으로 찾기''와 ``파일이름으로 찾기''를 둘 다 사용할 수 없다. 즉 다음과 같이 하는 것은 오류이다. +\begin{verbatim} +\setkomainfont(HCRBatangLVT)(HANDotum-LVT.ttf) +\end{verbatim} +그러나 한글군/한자군에 대해서는 따로 사용해도 상관없다. 다음은 한글은 Postscript 이름으로, +한자는 파일 이름으로 찾게 설정한 경우이다. 오류없이 동작한다. 그렇지만 되도록 일관성있게 쓰는 것이 좋을 것이다. +\begin{verbatim} +\setkomainfont(HCRBatangLVT)(*-Bold)[](UNI_HSR.ttf) +\end{verbatim} +\XeTeX 에서만 되는 FakeBold를 한자에만 적용해보자면, +\begin{verbatim} +\setkomainfont(HCRBatangLVT)(*-Bold)[](UNI_HSR.ttf)[AutoFakeBold] +\end{verbatim} +이렇게 하면 되는데, FakeBold는 가급적 사용하지 않는 것이 좋겠다. +\paragraph{\cs{setob...} 명령} + +라틴 문자 영역의 폰트를 설정하는 데는 \cs{setmainfont} 등이 그다지 불편하지 않기 때문에 +그냥 쓰면 된다. 그러나 \cs{setkomainfont}의 괄호 \ct{( )}를 이용한 폰트 지정 방식과 +유사하게 쓰려 하거나, base name을 이용한 축약 기능을 라틴 문자 정의에도 쓰고 싶다면 다음처럼 해도 상관없다. \begin{boxedverbatim} -\setkormainfont(* ExtraBold)(Malgun Gothic){NanumMyeongjo} +\setobmainfont[<base name>](<rm>)(<bf>)(<it>)[features] \end{boxedverbatim} -이것은 Regular, Bold, Italic을 한 가족으로 묶는다. BoldItalic이 만약 필요해지면 Bold체와 -동일하게 설정된다.\footnote{% - BoldItalic은 위에서 설명한 (*) 줄인 옵션의 영향을 받지 않는다.} -한편 (* ExtraBold)라는 표기는 NanumMyeongjo와 같은 이름이기 때문에 줄여 쓴 것이다. +일반적으로는 거의 의미없는 명령이나 반은 재미로 마련해두었다. -한자 글꼴을 별도로 설정해야 할 때가 있다. -% \footnote{% - % 이 기능은 2008/10/09 이후의 xkospace에 바탕을 둔 \xobclass{} 이후 버전에서 가능하다. -% } -한자 글꼴을 설정하기 위해서는 위의 명령을 확장하여 다음과 같이 지정한다. +\subsection{기정의 폰트 세트} +클래스 옵션으로 \texttt{[nanum]}을 지정하면 본문이 나눔명조와 나눔고딕으로 식자된다.\footnote{% + \LuaTeX-\ko는 아무 옵션이 없어도 nanumtype1으로 본문을 표시하지만 \XeTeX-\ko에서는 + 한글 부분이 비어 나온다. 이 옵션을 주면 \LuaTeX-\ko 에서도 nanumtype1이 아니라 트루타입을 쓰게 된다.} +나눔명조에 없는 한자는 나눔고딕에서 가져다가 찍는다. + +클래스 옵션 \texttt{[hcr]}은 함초롬 LVT 바탕, 함초롬 LVT 돋움 글꼴을 본문 글꼴로 사용하게 한다. +\texttt{[Script=Hangul]}을 지정하여 옛한글도 잘 처리하게 한다.\footnote{% + \cs{setkomainfont} 명령의 인자로 HCR 계열이 지정되면 이 옵션이 자동으로 추가된다. + 그밖의 폰트에서 옛한글을 처리하게 하려면(예를 들어 Malgun Gothic, UnBatang 등) + feature 추가 옵션으로 \texttt{[Script=Hangul]}을 지정할 수 있다.} + +클래스 옵션 \texttt{[unfonts]}는 은 바탕, 은 돋움, 은 타자, 은 그래픽을 이용하여 본문 글꼴을 식자하게 한다. +\texttt{[gremph]}일 때 바탕글꼴의 이탤릭이 은 그래픽으로 찍힌다. 또한 이 옵션은 \texttt{[Script=Hangul]}을 +자동으로 추가하여 옛한글을 은 바탕으로 잘 처리할 수 있게 하였다. 은 글꼴을 옵션으로 주지 않고 \cs{setkomainfont} 명령으로 주려면 다음과 같이 하는 것이 좋다. HCR 글꼴과 달리 자동으로 폰트 이름을 보고 \texttt{[Script=Hangul]}을 삽입하지 않으므로 feature 옵션에 지정한다. base name을 ``UnBatang''으로 하고 확장자를 잇대어 쓰도록 +다음처럼 정의할 수 있다. +\begin{verbatim} +\setkomainfont[UnBatang](.ttf)(Bold.ttf)[Script=Hangul] +\end{verbatim} +은 그래픽을 이탤릭 대용으로 쓰려 한다면, +\begin{verbatim} +\setkomainfont[Un](Batang.ttf)(BatangBold.ttf)% + (Graphic.ttf)[Script=Hangul] +\end{verbatim} +이름의 공통부분(base name)이 ``Un''밖에 없으니까 이렇게 할 수밖에 없다. 은 그래픽은 한자가 나오지 않는데 +필요하다면 한자 글꼴 지정을 잇대어 하면 된다. 실제로 해보자면, +\begin{verbatim} +\setkomainfont[Un](Batang.ttf)(BatangBold.ttf)(Graphic.ttf)% + [Script=Hangul][UnBatang](.ttf)(Bold.ttf)(.ttf) +\end{verbatim} +한자는 은 그래픽이 아니라 은 바탕에서 찾아서 찍게 한 것이다. + +\subsection{폰트 설정 명령 (\protect\cs{setkor...} 명령군)} + +이전 버전의 oblivoir에서는 다음 세 명령을 제공하였다. +이 명령군도 여전히 유지되고 있는데 그것은 이전에 작성된 문서와의 호환성을 위해서이다. \begin{boxedverbatim} -\setkormainfont(한글볼드)(한글이탤릭){한글레귤러}% - (한자볼드)(한자이탤릭){한자레귤러} +\setkormainfont(<Bold>)(<Italic>){<Regular>} +\setkorsansfont(<Bold>)(<Italic>){<Regular>} +\setkormonofont(<Bold>)(<Italic>){<Regular>} \end{boxedverbatim} - -\texttt{()}로 둘러싸인 부분은 모두 생략가능하지만, 이것이 한자 폰트를 설정하는 것이라는 -점을 알리기 위해 한자 시작 부분에 ( 문자를 지정해야 한다. 즉, +이 명령들도 한자 지정을 위하여 확장가능하다. \begin{boxedverbatim} -\setkormainfont(){NanumMyeongjo}(){HCR Batang LVT} +\setkormainfont(<Bold>)(<Italic>){<Regular>}% + (<HJbold>)(<HJitalic>){<HJregular>} \end{boxedverbatim} -위와 같이 하면 한글 영역에 나눔명조, 한자 영역에 함초롬 LVT 바탕을 식자할 수 있다. -이 때 볼드를 지정하지 않지만 최소한 \texttt{()}를 써주어야 한다는 점에 주의한다. -한글 폰트 정의에서 괄호 ()를 사용했다면 한자 정의 확장에도 같은 괄호 ()를 -써야 한다. 한글 폰트 정의에서 각괄호 []를 사용했다면 한자 정의 확장에도 -같은 괄호 []를 써야 한다. -%참고로, 일부 한글 기호문자는 한자 폰트로 식자된다. +괄호 옵션 인자와 중괄호 인자가 있다는 점과 bold, italic, regular의 순서가 +\cs{setkomainfont}와 다르다는 데 주의하라. +이전 버전에 비하여 확장된 기능은 feature를 줄 수 있다는 것이다. \begin{boxedverbatim} -\setmonoscale{<scale>} +\setkormainfont(Bold)(Italic){Regular}[Feature] \end{boxedverbatim} +이런 식으로 마지막 옵션 인자로 feature를 지정하면 유효하다. -한글 mono 폰트를 기본값(은 타자)이 아닌 글꼴로 지정할 경우 scaling이 필요할 때가 있다. -이를 위하여 위의 명령이 정의되어 있다. 이것은 한글 및 한자 mono 글꼴에만 -영향을 미친다. 라틴 문자자는 fontspec 옵션으로 지정하면 될 것이다. -% 이 문서의 경우 mono 한글 폰트를 맑은 고딕으로 -% 하면서 scale 값을 0.9로 지정했다. - -문장 중간에서 한글 및 한자 폰트를 일부 바꾸어 써야 할 때가 있다. 이 경우에는 \xetexko 의 -\verb|\hangulfontspec| 명령을 이용하면 매우 간편하게 이를 실현할 수 있다. +한글과 한자 사이에는 적어도 괄호 인자가 하나는 와야 구별된다. +\begin{verbatim} +\setkormainfont{HCR Batang LVT}(){HYhaeseo} +\end{verbatim} -\subsection{ExternalLocation} +이 때문에, 예를 들어 다음과 같이 하는 것은 오류이다. +\begin{verbatim} +\setkormainfont{HCR Batang LVT}[]{HYhaeseo} +\end{verbatim} +한글 feature를 지정하고 한자도 지정하려면 다음과 같이 해야 한다. +\begin{verbatim} +\setkormainfont{HCR Batang LVT}[...](){HYhaeseo} +\end{verbatim} -ExternalLocation으로 폰트를 찾도록 하는 설정은 특히 폰트 정보가 이상한 한글 폰트를 사용할 때를 위해서도 -매우 중요하다. 굳이 폰트 캐싱을 할 필요가 줄어들기도 하므로, 이 방식을 선호하는 경우도 있다. \xobclass{}에서는 -\textquotedblleft 별표붙인 명령\textquotedblright 으로 지정한다. -참고로 별표붙인 명령을 쓸 때는 fontspec 옵션을 지정하는 명령형식을 -쓸 수 없다. 그 이유는 fontspec 명령 형식에서는 ExternalLocation -옵션을 줄 수 있기 때문이다. +한편, \cs{setkormainfont} 다음 문자가 \texttt{[}이면 +\begin{boxedverbatim} +\setkormainfont[ ... ]{한글 폰트이름}[ ... ]{한자 폰트이름} +\end{boxedverbatim} +이것은 앞의 두 인자에 대하여 \cs{setmainhangulfont}를 실행하고 +뒤의 두 인자에 대하여 \cs{setmainhanjafont}를 실행하게 하는 것으로 +이전 버전과 같다. 이 명령은 반드시 \texttt{[}로 시작해야 하며 +한글과 한자의 경계는 [ ]로 이루어지므로 예컨대 +다음과 같은 코딩은 오류를 일으키지 않는다. +\begin{verbatim} +\setkormainfont[]{Hangul}[]{Hanja} +\end{verbatim} +그리고 \cs{setkormainfont} 다음 문자가 \texttt{*}이면 +\texttt{ExternalLocation}으로 실행되는 것도 이전과 같다. +파일 이름을 직접 써넣는 것이 좋으므로 거의 필요없는 명령이 되었지만 +이전 버전과의 호환성을 위하여 이 기능을 유지시켜 두었다. +단, \cs{setkormainfont*()} 형식과는 쓸 수 없고 \cs{setkormainfont*[]} 형식으로만 +가능하게 기능이 제한되었다. 이 명령은 앞으로 사용하지 않기를 바란다. \begin{boxedverbatim} -\setkormainfont*(BOLD)(ITALIC){REGULAR} +\setkormainfont*{한글 폰트 이름} \end{boxedverbatim} +이상에서 설명한 \cs{setkor...} 명령군 대신 새로 도입한 \cs{setko...} 명령군을 +사용하는 것을 권장한다. 사용법이 훨씬 간단해졌기 때문이다.\footnote{% + 내부적으로 \cs{setkormainfont} 명령들은 \cs{setmainhangulfont}와 \cs{setmainhanjafont}를 + 부르고, \cs{setkomainfont} 명령들은 \cs{setkormainfont}를 부른다.} + +%이후의 설명은 \verb|\setkormainfont|에 대해서만 한다. 다른 두 +%명령의 사용법은 동일하다. +% +%\begin{boxedverbatim} +%\setkormainfont{Font_Family_Name} +%\end{boxedverbatim} +% +%\begin{boxedverbatim} +%\setkormainfont[Options]{Font_Name} +%\end{boxedverbatim} +%만약 각괄호(\verb|[|)가 첫 인자로 나오면 이 명령의 사용법은 +%\verb|\setmainhangulfont|와 동일하다. 즉 fontspec 명령을 그대로 +%쓸 수 있다. +%\begin{boxedverbatim} +%\setkormainfont[Options]{Font_Name}[hnj_Options]{hnj_Font_Name} +%\end{boxedverbatim} +%다른 점은 위와 같이 한자 글꼴을 잇대어 정의할 수 있다는 것이다. +%이 때 반드시 한자 글꼴 추가 정의가 시작된다는 듯으로 각괄호 []를 +%써주어야 한다. 아무런 옵션을 지정하지 않더라도 이 부호는 있어야 +%한다. +% +%\subsubsection{폰트 가족의 지정} +% +%한글 폰트의 폰트 가족(font family)은 인위적으로 지정해주어야 할 때가 있다. +%여러 한글 폰트를 임의로 묶어서 하나의 폰트 가족처럼 다루는 경우이다. +% +%한글의 폰트 가족은 Regular/Bold/Italic +%으로 이루어진다고 가정하고 있다.% +%\footnote{원한다면 BoldItalic까지 포함할 수 있으나, \xobclass{}는 +% BoldItalic을 별도로 설정하는 것을 기본으로 +% 삼지 않았다. 지나치게 번거로울 뿐 아니라 BoldItalic에 +% 특별한 의미를 부여하기 힘들었기 때문이다. 반면, \xetexko 는 +% BoldItalic을 별도로 설정할 수 있게 하고 있으므로 혹시라도 +% 원한다면 이것은 사용자에게 맡겨져 있다. +%} +%폰트 가족을 지정하여 글꼴 설정을 할 때는 다음과 같이 한다. +%\begin{boxedverbatim} +%\setkormainfont(<hgBd>)(<hgIt>){<Hangul>} +%\setkorsansfont(<hgBd>)(<hgIt>){<Hangul>} +%\end{boxedverbatim} +%첫 두 인자를 둘러싼 괄호가 각괄호 []가 아니라 괄호 ()임에 주의하라.\footnote{% +% 이것은 2008/11/09 버전의 변경사항이다. 하위호환성을 제공하지 +% 않으므로 이전의 모든 소스를 수정해야 한다.} +%아무튼 괄호 ()로 둘러싸인 부분은 생략가능하다. 첫 괄호 인자만 있고 +%이탤릭 글꼴을 지정하지 않으면 기본 글꼴로 치환된다. +% +%한글 폰트와 별도의 한자 폰트를 설정할 필요가 있을 때는 다음과 같이 한다. +%\begin{boxedverbatim} +%\setkormainfont(<hgBd>)(<hgIt>){<Hangul>}(<hjBd>)(<hjIt>){<Hanja>} +%\setkorsansfont(<hgBd>)(<hgIt>){<Hangul>}(<hjBd>)(<hjIt>){<Hanja>} +%\end{boxedverbatim} +%한자를 한글과 별도의 폰트로 식자하도록 하는 것은 그 번거로움을 피할 수 없지만, +%한글 폰트 가운데 한자 영역이 거의 없거나 있더라도 부실한 것이 너무 많기 때문에 +%현재의 한글 폰트의 사정을 돌아볼 때 부득이하고 불가피하다. +% +%두 번째 선택 인자는 이탤릭체를 나타낸다. 이 인자를 지정하지 않으면 +%기본 글꼴로 치환된다. Regular 폰트를 이 자리에 쓰고 싶을 때가 있다. 이럴 경우 간단히 +%\begin{boxedverbatim} +%\setkormainfont(BOLD)(*){REGULAR} +%\end{boxedverbatim} +%와 같이 (*)로 줄여 쓸 수 있다. 즉, 아예 두번째 인자가 없으면 REGULAR 폰트로 치환되고, (*)로 지시되면 REGULAR 글꼴을 이탤릭으로 식자한다. +%만약 itemph 옵션이 지시되어 있다면 REGULAR의 FakeSlanted 글자가 +%식자되고, gremph 옵션이 지시되어 있다면 이 자리에 선언된 글꼴이 곧은 모양으로 찍힐 것이다. +%이 줄인 옵션은 두 번째 선택 인자, 즉 이탤릭 선언에만 동작하며, +%\verb|\setkormainfont|와 \verb|\setkorsansfont|에서 쓸 수 있다. +% +%\subsection{디폴트 치환}\myLabel{sec:default}{sec:디폴트} +% +%필요한 정보가 충분히 주어지지 않으면 폰트 설정은 기본값으로 +%치환된다. 아래 몇 가지 사용례를 보기로 하자. +% +%\begin{boxedverbatim} +%\setkormainfont{HCR Batang LVT} +%\end{boxedverbatim} +%위의 명령을 실행하면 Regular와 Bold, Italic이 지정한 폰트로 바뀐다. +%%여기 예시한 글꼴은 font family를 이루고 있지 않은 개별 글꼴이므로 +%%굵은 글꼴에도 같은 폰트가 식자된다. +%예시한 글꼴은 Bold 서체가 font family를 이루고 있으므로 굵은 글꼴을 자동으로 +%HCR Batang LVT Bold로 식자한다. 그러나 그렇지 않은 글꼴을 예를 들면, +%\begin{boxedverbatim} +%\setmainfont{YJ BELLA Medium} +%\end{boxedverbatim} +%과 같이 하는 경우 양재벨라체가 굵은 글꼴 자리에도 똑같은 글꼴로 식자하게 된다. +% +% +%\begin{boxedverbatim} +%\setkormainfont[BoldFont={NanumMyeongjo ExtraBold},% +% ItalicFont={NanumBarunGothic},% +% ItalicFeatures={FakeSlant={.17}}]{NanumMyeongjo} +%\end{boxedverbatim} +%위와 같이 fontspec 문법의 옵션을 지정할 수 있다. +% +%\begin{boxedverbatim} +%\setkormainfont(NanumMyeongjo ExtraBold){NanumMyeongjo} +%\end{boxedverbatim} +%이 명령은 Regular와 Bold만 지정된다. +% +%\begin{boxedverbatim} +%\setkormainfont(NanumMyeongjo ExtraBold)(*){NanumMyeongjo} +%\end{boxedverbatim} +%이 명령은 Italic에 NanumMyeonjo를 식자하게 한다. gremph에서는 +%upshape와 itshape가 똑같이 찍히게 되지만 itemph에서는 같은 +%글꼴이 기울어져 식자될 것이다. +% +%\begin{boxedverbatim} +%\setkormainfont(* ExtraBold)(Malgun Gothic){NanumMyeongjo} +%\end{boxedverbatim} +%이것은 Regular, Bold, Italic을 한 가족으로 묶는다. BoldItalic이 만약 필요해지면 Bold체와 +%동일하게 설정된다.\footnote{% +% BoldItalic은 위에서 설명한 (*) 줄인 옵션의 영향을 받지 않는다.} +%한편 (* ExtraBold)라는 표기는 NanumMyeongjo와 같은 이름이기 때문에 줄여 쓴 것이다. +% +%한자 글꼴을 별도로 설정해야 할 때가 있다. +%% \footnote{% +% % 이 기능은 2008/10/09 이후의 xkospace에 바탕을 둔 \xobclass{} 이후 버전에서 가능하다. +%% } +%한자 글꼴을 설정하기 위해서는 위의 명령을 확장하여 다음과 같이 지정한다. +% +%\begin{boxedverbatim} +%\setkormainfont(한글볼드)(한글이탤릭){한글레귤러}% +% (한자볼드)(한자이탤릭){한자레귤러} +%\end{boxedverbatim} +% +%\texttt{()}로 둘러싸인 부분은 모두 생략가능하지만, 이것이 한자 폰트를 설정하는 것이라는 +%점을 알리기 위해 한자 시작 부분에 ( 문자를 지정해야 한다. 즉, +%\begin{boxedverbatim} +%\setkormainfont(){NanumMyeongjo}(){HCR Batang LVT} +%\end{boxedverbatim} +%위와 같이 하면 한글 영역에 나눔명조, 한자 영역에 함초롬 LVT 바탕을 식자할 수 있다. +%이 때 볼드를 지정하지 않지만 최소한 \texttt{()}를 써주어야 한다는 점에 주의한다. +%한글 폰트 정의에서 괄호 ()를 사용했다면 한자 정의 확장에도 같은 괄호 ()를 +%써야 한다. 한글 폰트 정의에서 각괄호 []를 사용했다면 한자 정의 확장에도 +%같은 괄호 []를 써야 한다. +%%참고로, 일부 한글 기호문자는 한자 폰트로 식자된다. +% +%\begin{boxedverbatim} +%\setmonoscale{<scale>} +%\end{boxedverbatim} +% +%한글 mono 폰트를 기본값(은 타자)이 아닌 글꼴로 지정할 경우 scaling이 필요할 때가 있다. +%이를 위하여 위의 명령이 정의되어 있다. 이것은 한글 및 한자 mono 글꼴에만 +%영향을 미친다. 라틴 문자자는 fontspec 옵션으로 지정하면 될 것이다. +%% 이 문서의 경우 mono 한글 폰트를 맑은 고딕으로 +%% 하면서 scale 값을 0.9로 지정했다. +% +%문장 중간에서 한글 및 한자 폰트를 일부 바꾸어 써야 할 때가 있다. 이 경우에는 \xetexko 의 +%\verb|\hangulfontspec| 명령을 이용하면 매우 간편하게 이를 실현할 수 있다. + +\subsection{ExternalLocation에 관한 첨언} + +폰트를 호출하는 이름은 앞서 설명한 \util{otfinfo -i}를 사용하여 확인할 수 있는 +full name이나 Postscript name을 사용하는 것이 가장 좋다. 그러나 부득이한 경우 +파일 이름으로 사용하는 것도 가능하다. + +이 방식은 특히 폰트 정보가 이상한 한글 폰트를 사용할 때를 위해서도 +필요하다. +굳이 폰트 캐싱을 할 필요가 줄어들기도 하므로, 이 방식을 선호하는 경우도 있다. +% \xobclass{}에서는 +%\textquotedblleft 별표붙인 명령\textquotedblright 으로 지정한다. +%참고로 별표붙인 명령을 쓸 때는 fontspec 옵션을 지정하는 명령형식을 +%쓸 수 없다. 그 이유는 fontspec 명령 형식에서는 ExternalLocation +%옵션을 줄 수 있기 때문이다. +%\begin{boxedverbatim} +%\setkormainfont*(BOLD)(ITALIC){REGULAR} +%\end{boxedverbatim} + \TeX\,Live를 포함하여 대부분의 \TeX{} 임플리멘테이션에서 시스템의 폰트 폴더를 kpathsearch로 -찾을 수 있으므로 예컨대 Windows 폰트 폴더의 폰트들도 이 방식으로 호출할 수 있다. 한편, 한겨레결체의 경우 폰트 -이름을 라틴 문자으로 바꾸어두고 ExternalLocation으로 찾아야만 사용할 수 있다.% -\footnote{즉, 폰트 이름 정보가 잘못되어 있는 글꼴이다.% -} -휴먼명조와 같은 글꼴도 마찬가지여서 이 글꼴은 ExternalLocation 옵션으로 \verb|HMKMM.TTF|를 +찾을 수 있으므로 예컨대 Windows 폰트 폴더의 폰트들도 이 방식으로 호출할 수 있다. +% 한편, 한겨레결체의 경우 폰트 +%이름을 라틴 문자으로 바꾸어두고 ExternalLocation으로 찾아야만 사용할 수 있다.% +%\footnote{즉, 폰트 이름 정보가 잘못되어 있는 글꼴이다.% +%} +휴먼명조와 같은 글꼴은 ExternalLocation 방식으로 \verb|HMKMM.TTF|를 직접 지시하는 것이 가장 안전하다. -한글 폰트 이름은 폰트 자체의 특성에 따라서 매우 복잡한 양상을 보인다. -이 글에서는 Windows에서 확인할 수 있는 이름을 기준으로 하고 있으나, -플랫폼에 따라서는 이름으로 폰트를 호출하기 위해서 다른 방법을 사용해야 -할 수도 있다. -가장 안전한 방법은 ExternalLocation으로 폰트 파일의 이름을 부르는 것이다. +%한글 폰트 이름은 폰트 자체의 특성에 따라서 매우 복잡한 양상을 보인다. +%이 글에서는 Windows에서 확인할 수 있는 이름을 기준으로 하고 있으나, +%플랫폼에 따라서는 이름으로 폰트를 호출하기 위해서 다른 방법을 사용해야 +%할 수도 있다. +%가장 안전한 방법은 ExternalLocation으로 폰트 파일의 이름을 부르는 것이다. 이 때 몇 가지 이슈가 있다. \begin{enumerate}[(가)]\tightlist \item Windows에서는 한글 폰트 파일 이름을 부를 수 없다. 모든 폰트 파일 이름은 @@ -684,7 +1043,7 @@ ExternalLocation으로 호출할 수 있을 것이다. 리눅스에서는 모르 이것이 가능했다. \item texmf.cnf의 OSFONTDIR 변수를 수작업으로 수정해야 하는 경우가 있다. Windows의 -KC2008이나 TeXLive 자체가 이것을 잘 설정하여 주므로 사용자가 신경쓸 것이 없으나 +\koTeX\,Live라면 이것을 잘 설정하여 주므로 사용자가 신경쓸 것이 없으나 경우에 따라 이 변수를 설정해야 할 필요가 있을 수 있다. 맥의 경우, /usr/local/texlive/2013/texmf.cnf 파일을 열어서\footnote{/usr/local/texlive/2013/texmf/web2c/texmf.cnf를 수정해서는 안된다.} 다음 내용을 자신의 환경에 맞게 써넣으면 될 것이다. @@ -698,11 +1057,11 @@ OSFONTDIR = {/Library/Fonts;~/Library/Fonts;/System/Library/Fonts;} \end{enumerate} -폰트를 이름으로 호출하는 것은 폰트 자체에 정의된 이름과 파일이름이 다른 것이 너무 많아서 -손쉽게 말하기가 어렵다. 대부분의 시스템에서(맥 제외) \verb|fc-list| 명령은 \XeTeX 으로 -부를 수 있는 폰트 이름을 확인하게 해준다. 한편 \LuaTeX의 경우는 좀더 복잡하여 -\XeTeX 에서 호출할 수 있는 것과 같을 때도 있고 다를 때도 있다. -파일 이름으로 호출(즉 ExternalLocation)하는 것이 가장 편리할 때도 있다. +%폰트를 이름으로 호출하는 것은 폰트 자체에 정의된 이름과 파일이름이 다른 것이 너무 많아서 +%손쉽게 말하기가 어렵다. 대부분의 시스템에서(맥 제외) \verb|fc-list| 명령은 \XeTeX 으로 +%부를 수 있는 폰트 이름을 확인하게 해준다. 한편 \LuaTeX의 경우는 좀더 복잡하여 +%\XeTeX 에서 호출할 수 있는 것과 같을 때도 있고 다를 때도 있다. +%파일 이름으로 호출(즉 ExternalLocation)하는 것이 가장 편리할 때도 있다. %\subsection{파일 이름 문제: 조금 더}\myLabel{sec:nowinname}{sec:노윈네임} @@ -750,16 +1109,16 @@ OSFONTDIR = {/Library/Fonts;~/Library/Fonts;/System/Library/Fonts;} \subsection{이탤릭, 기울임} 한글 글꼴에 이탤릭은 없다. 그러므로 강조를 위해 기울임으로 이탤릭을 대용하는 것은 그다지 권장하지 않는다. 예를 들어 -\begin{boxedverbatim} -\setkormainfont(* Bold)(Gungsuh){Malgun Gothic} -\end{boxedverbatim} +\begin{verbatim} +\setkomainfont(Malgun Gothic)(* Bold)(Gungsuh) +\end{verbatim} 으로 지정했을 때, 궁서체가 이탤릭에 해당하는 폰트로 설정된다. gremph가 디폴트이므로 궁서체는 곧은 모양으로 찍힌다. 그러나 디자인 상의 효과를 위해서나 다른 이유에서 이 서체를 기울이고 싶은 경우가 있을 것이다. 이 경우 \texttt{[itemph]} 클래스 옵션을 지정한다. -그 반대의 경우는 \texttt{[gremph]}이고 이것이 디폴트이다. 부분부분 기울이려 한다면 fontspec -명령을 써서 조작할 수 있으므로 별도로 명령을 만들어두거나 하지 않았다. +그 반대의 경우는 \texttt{[gremph]}이고 이것이 디폴트이다. 부분부분 기울이려 한다면 \cs{hangulfontspec}이나 +\cs{hanjafontspec}, 즉 \cs{adhochangulfont}를 이용하거나 \cs{addhangulfontfeature} 명령을 써서 조작할 수 있으므로 별도로 명령을 만들어두거나 하지 않았다. %\subsection{따옴표} % @@ -795,6 +1154,38 @@ OSFONTDIR = {/Library/Fonts;~/Library/Fonts;/System/Library/Fonts;} \section{그밖의 사항들} +\subsection{판면 설정을 위한 fapapersize} + +memoir는 geometry 패키지와는 다른 방식의 자체 판면 설정 명령을 가지고 있다. +oblivoir에서도 기본적으로 memoir의 판면 설정 방식을 사용할 수 있다. +이와 더불어, \textsf{fapapersize}라는 패키지가 +oblivoir에서 제공된다. + +\begin{boxedverbatim} +\usepackage{fapapersize} +\usefapapersize{*,*,1in,*,1in,*} +\end{boxedverbatim} + +\cs{usefapapersize}는 여섯 개의 콤마로 연결된 인자를 취하는데, 첫번째, 두번째, 네번째, 여섯번째 인자를 별표(*)로 대용할 수 있다. 이 각각은 +\begin{itemize}\tightlist +\item paperwidth +\item paperheight +\item left margin +\item right margin +\item upper margin +\item lower margin +\end{itemize} +이다. 만약 \cs{setheadfoot}이라든가 marginnote 설정이 필요하다면 \cs{usefapapersize} 명령 앞에 둔다. +적어도 left margin과 upper margin은 반드시 주어야 한다는 점과, 콤마 사이에 공백이 없도록 해야 한다는 점에 주의하여야 한다. + +용지(stock)를 설정하려면 다음과 같이 한다. +\begin{boxedverbatim} +\usepackage[stock]{fapapersize} +\usestocksize{210mm,297mm} +\usefapapersize{190mm,260mm,1in,*,1in,*} +\end{boxedverbatim} +\texttt{[showtrims]} 옵션이 주어져 있다면 crop 선이 함께 나타날 것이다. + \subsection{enumerate} enumerate 패키지의 enumerate 아이템 항목 머리 설정은 @@ -810,10 +1201,9 @@ enumerate 패키지의 enumerate 아이템 항목 머리 설정은 \item 둘째 항목 \end{enumerate} paralist에서 위와 같은 방식으로 항목 머리를 설정하려면 -레거시 텍을 위해서는 dhucs-paralist를, \XeTeX과 \LuaTeX을 위해서는 xob-paralist를 로드한다.\footnote{% 물론 paralist 자체는 그 이전에 부르거나 - xob-paralist(dhucs-paralist)가 스스로 부르도록 할 것이고 xob-paralist(dhucs-paralist) 뒤에 + xob-paralist가 스스로 부르도록 할 것이고 xob-paralist 뒤에 paralist만 별도로 다시 부르면 안 된다. } @@ -856,7 +1246,7 @@ png, jpg, pdf 그림을 잘 불러온다. 즉 \obclass가 알맞게 이 패키 \end{verbatim} \end{minipage}\hfill \begin{minipage}{.45\textwidth} -\hfill “소절 \ref{sec:font}\를 보라.” +\hfill “소절 \myREF{sec:font}{sec:폰트}\를 보라.” \end{minipage} \noindent\hologo{XeTeX}, \hologo{LuaTeX}:\\ @@ -864,35 +1254,118 @@ png, jpg, pdf 그림을 잘 불러온다. 즉 \obclass가 알맞게 이 패키 \begin{verbatim} “소절 \ref{sec:폰트}\를 보라.” \end{verbatim} +\end{minipage}\hfill +\begin{minipage}{.45\textwidth} +\hfill “소절 \myREF{sec:font}{sec:폰트}\를 보라.” \end{minipage} - \subsection{방점} \koTeX 에서는 \texttt{\textbackslash dotemph} 명령의 방점\footnote{% 가로쓰기에서는 \dotemph{점을 글자 위에 찍으므로} \circemph{傍점}이 아니라 \circemph{上점}이 맞겠지만 관행적으로 방점이라 불러왔다. 이 문장부호의 정확한 명칭은 “드러냄표”이다.}% -을 지원했다. \xetexko{}에서도 이 명령을 사용할 수 있게 되었고, -xoblivoir에서 조금 확장했다. 기본인 +을 지원했다. \xetexko와 \luatexko에서도 이 명령을 사용할 수 있으며, +oblivoir에서 조금 확장했다. 기본인 \texttt{\textbackslash dotemph} 외에 \texttt{\textbackslash circemph} \texttt{\textbackslash useremph} 두 개의 명령을 더 쓸 수 있다. -\marginpar{\fbox{xe(lua)tex}} -\xobclass에서 기원한 새로운 텍 엔진을 위한 \obclass 에서 -마지막의 \texttt{\textbackslash useremph} 명령은 -\useremph{˚}{하나의 선택 인자와 두 개의 인자}를 요구한다. 즉, +\cs{dotemph}와 \cs{circemph}의 결과는 다음과 같다. + +\medskip + +\noindent\begin{minipage}{.45\textwidth} +\begin{verbatim} +\dotemph{우리나라} \circemph{대한민국} +\end{verbatim} +\end{minipage}\hfill +\begin{minipage}{.45\textwidth} +\dotemph{우리나라} \circemph{대한민국} +\end{minipage} + +\medskip + +\cs{useremph} 명령은 이전 버전과 사용법이 달라졌다. 2014년 6월 이전 oblivoir에서 +\cs{useremph}는 pdf\TeX 에서와 \XeTeX, \LuaTeX 에서 사용법이 서로 달랐고 +하나의 선택 인자와 두 개의 인자를 요구하는 등 사용법이 복잡했으나 이것이 모두 다음과 같이 +간단하게 바뀌었다. +\begin{boxedverbatim} +\useremph[<raise>][<char>]{text} +\end{boxedverbatim} +한 번 raise 값과 char를 주고난 후에는 그 설정이 보존된다. 즉 \cs{useremph}를 +인자 없이 쓰면 이전에 설정된 것을 따라가고, 이전에 설정된 것이 없으면 \cs{useremph}와 +\cs{circemph}가 동일하다. + +\begin{verbatim} +\useremph{드러냄표} +\useremph[.3ex][\tiny★]{드러냄표} +다시한번 \useremph{드러냄표} +이번에는 \useremph[][\tiny+]{드러냄표} +높이조절 \useremph[0ex]{드러냄표} +\end{verbatim} + +이 코드의 결과는 다음과 같다:\\ +\useremph{드러냄표} +\useremph[.3ex][\tiny★]{드러냄표} 다시한번 \useremph{드러냄표} +이번에는 \useremph[][\tiny+]{드러냄표} +높이조절 \useremph[0ex]{드러냄표} + +\medskip + +편의를 위하여 \cs{useremphstarwhite}({\useremphstarwhite})와 \cs{useremphstarblack}({\useremphstarblack}) +명령을 준비해두었다. 이것은 현재 식자하는 폰트에 해당 글자가 있으면 잘 나타난다. + +\medskip + +\noindent\begin{minipage}{.7\textwidth} \begin{verbatim} -\useremph[<height>]{<dotchar>}{text} +\useremph[.5ex][\useremphstarwhite]{드러냄표} \end{verbatim} -height는 방점으로 사용할 문자가 올라갈 길이이고 dotchar는 -방점 문자이다. text는 방점을 찍을 텍스트. -단, 이 \verb|\useremph| 명령은 \xetexko 에서 제공되는 같은 이름의 -명령과도 그 사용법이 다르고 레거시 텍을 위한 \obclass에서의 사용법과도 다르므로 주의를 요한다. - +\end{minipage}\hfill +\begin{minipage}{.28\textwidth} +\useremph[.5ex][\useremphstarwhite]{드러냄표} +\end{minipage} + +%\marginpar{\fbox{xe(lua)tex}} +%\xobclass에서 기원한 새로운 텍 엔진을 위한 \obclass 에서 +%마지막의 \texttt{\textbackslash useremph} 명령은 +%\useremph{˚}{하나의 선택 인자와 두 개의 인자}를 요구한다. 즉, +%\begin{verbatim} +%\useremph[<height>]{<dotchar>}{text} +%\end{verbatim} +%height는 방점으로 사용할 문자가 올라갈 길이이고 dotchar는 +%방점 문자이다. text는 방점을 찍을 텍스트. +%단, 이 \verb|\useremph| 명령은 \xetexko 에서 제공되는 같은 이름의 +%명령과도 그 사용법이 다르고 레거시 텍을 위한 \obclass에서의 사용법과도 다르므로 주의를 요한다. + +\subsection{chapter styles} +최근의 memoir는 상당히 많은 chapter style을 정의하고 있다. oblivoir의 chapter style +정의 방식은 기본적으로 memoir와 동일하지만 다음 몇 가지가 다르다. + +\begin{itemize}\tightlist +\item \cs{printchaptername} 명령이 무의미하다. +\item \cs{prechapternum} 명령과 \cs{postchapternum} 명령이 추가되었다. +\item \cs{hchaptertitlehead}라는 명령이 사용된다. 이것은 특히 running heading과 관련이 있다. +\end{itemize} + +KTUG 사설 저장소를 통하여 설치할 수 있는\footnote{% + 사설 저장소를 등록할 수 없는 상황이라면 직접 다운로드하라. + \url{http://ftp.ktug.org/KTUG/texlive/tlnet/archive/} +} +ob-chapstyles라는 패키지에는 몇 가지 memoir +chapter 스타일을 oblivoir화해둔 것이 있다. 이 자체를 그대로 써도 좋고 이를 자신만의 스타일을 +만드는 데 참고하여도 좋을 것이다. + +\subsection{한글 pagestyle} + +oblivoir가 추가적으로 제공하는 페이지 스타일로 \texttt{hangul}이 있다. +\begin{boxedverbatim} +\pagestyle{hangul} +\end{boxedverbatim} + \section{샘플 문서} 이 작은 안내서에 더하여 간단한 \obclass\ 샘플 문서를 하나 제공한다. diff --git a/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-simpledoc.pdf b/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-simpledoc.pdf Binary files differdeleted file mode 100644 index 96a9a9ea606..00000000000 --- a/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-simpledoc.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-test.tex b/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-test.tex deleted file mode 100644 index c392205ca52..00000000000 --- a/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-test.tex +++ /dev/null @@ -1,1377 +0,0 @@ -% -*- UTF-8 : LaTeX -*- -%% -%% 2013/09/28. xoblivoir ver2 버전으로 포팅. -%% 2010/03/17. xoblivoir 버전으로 포팅 -%% -%% memhangul-ucs v1.44 테스트 파일 -%% Written by 도은이아빠. -%% - -\documentclass[demo,chapter,openany,amsmath,gremph,adjustmath]{xoblivoir} -%%% amsmath 옵션은 amsmath, amssymb 패키지를 로드해준다.. - -%\usepackage[logonly]{trace} %% for debugging. -\let\traceon\relax\let\traceoff\relax - -%%% display overfullrule -%\setlength\overfullrule{5pt} - -%% 페이지 레이아웃. fapapersize를 이용한다.. -\usepackage{fapapersize} -\usefapapersize{220mm,276mm,20mm,80mm,30mm,35mm} - -%% 폰트 설정 -\def\DefaultFont{HCR Batang LVT} -\ifPDFTeX - \usepackage{mathpazo} -\else\ifLuaOrXeTeX - \defaultfontfeatures{Mapping=tex-text,Ligatures=TeX} - \setmainfont{TeX Gyre Pagella} - \usepackage{unicode-math} - \setmathfont{Asana-Math.otf} - \setsansfont[Scale=.95]{TeX Gyre Heros} - \setkormainfont[ItalicFont=\DefaultFont,ItalicFeatures={FakeSlant=.167}]{\DefaultFont}[]{\DefaultFont} - \setkorsansfont[]{NanumGothic}[]{HCR Dotum LVT} -\fi\fi - -\ifLuaTeX -\def\interHANGUL{InterHangul} -\let\circemph=\dotemph -\else\ifXeTeX -\def\interHANGUL{interhchar} -\fi\fi - -%% logos -\usepackage{hologo} - -%%% marginfix -%\usepackage{marginfix} - -%% 좌우 마진의 marginpar 위치가 혼선을 보인다면 -%% 다음을 선언한다. -\strictpagecheck - -\usepackage{cite} - -\ifPDFTeX -\usepackage{graphicx} -\fi -\usepackage[dvipsnames]{xcolor} -%% pdf 정보 -\hypersetup{% - bookmarks=true,% - plainpages=false,% - colorlinks=true,% - pdfauthor={Karnes Kim},% - pdfcreator={Karnes Kim} -} - -\nonfrenchspacing -%% nonfrench를 설정하는 경우에는 \xspaceskip도 정해주자. -%% 여기서는 눈에 띄도록 이 길이를 넉넉하게 잡았음. -%% 일반적으로 .6 내지 .7 정도를 권장함. -\xspaceskip=.8em plus .1em minus .1em - -%% 이 아래 명령들은 본문에서 바꿀 수 있다. -%% 행간설정. 두번째 인자는 fn/float에 적용되는 행간. -\SetHangulspace{1.5}{1.1} -%% quotespacing을 설정함. \noadjustqutespacing이 default. \adjustquotespacing -%\adjustquotespacing -%% float/fn의 좁은 행간 설정을 disable. \adjustfloatfnspacing -\noadjustfloatfnspacing - -%% snugshade 환경에 칠할 배경색. -\definecolor{shadecolor}{gray}{0.85} - -%%% from memman.tex. modified. -%% 본문에서 한 번 사용하기 위해 설정한 chapter -%% style 예제. 이 예제는 memman에 있다. -%% 한글판을 위하여 조금 수정함. -\makeatletter -\newlength{\numberheight} -\newlength{\barlength} -\makechapterstyle{veelo}{% - \setlength{\beforechapskip}{40pt} - \setlength{\midchapskip}{25pt} - \setlength{\afterchapskip}{40pt} - \renewcommand{\chapnamefont}{\normalfont\LARGE\flushright} - \renewcommand{\chapnumfont}{\normalfont\HUGE} - \renewcommand{\chaptitlefont}{\normalfont\HUGE\bfseries\flushright} - \renewcommand{\printchaptername}{}% - \renewcommand{\prechapternum}{% <= 이 명령을 정의. - \chapnamefont\MakeUppercase{chapter}} - \renewcommand{\postchapternum}{}% <= 이 명령을 정의. 여기서는 비움. - \renewcommand{\chapternamenum}{} - \setlength{\numberheight}{18mm} - \setlength{\barlength}{\paperwidth} - \addtolength{\barlength}{-\textwidth} - \addtolength{\barlength}{-\spinemargin} - \renewcommand{\printchapternum}{% - \makebox[0pt][l]{% - \hspace{.8em}% - \resizebox{!}{\numberheight}{\chapnumfont \thechapter}% - \hspace{.8em}% - \rule{\barlength}{\numberheight} - } - } - \makeoddfoot{plain}{}{}{\thepage} -} - -\makechapterstyle{mycompanion}{% - \chapterstyle{default} - \renewcommand*{\chapnamefont}{\normalfont\LARGE\scshape} - \renewcommand*{\printchaptername}{\raggedleft\chapnamefont \@chapapp} - \renewcommand*{\prechapternum}{\raggedleft\chapnamefont \pre@chapter} - \renewcommand*{\chapnumfont}{\normalfont\Huge} - \setlength{\chapindent}{\marginparsep} - \renewcommand*{\printchaptertitle}[1]{% - \begin{adjustwidth}{}{-\chapindent} - \raggedleft \chaptitlefont ##1\par\nobreak - \end{adjustwidth}}} - -\makeatother - -%%% User's commands -%% 사용자 명령들. 인덱스 관련 명령. -\newcommand\dispcmd[1]{% - \texttt{\textbackslash #1}% - \index{명령!\textbackslash #1}% - \index{#1@\textbackslash #1}% -} - -\newcommand\cls[1]{% - \texttt{#1}\ 클래스% - \index{클래스!#1}% - \index{#1~클래스}% -} - -\newcommand\pkg[1]{% - \texttt{#1}\ 패키지% - \index{패키지!#1}% - \index{#1~패키지}% -} - -\newcommand\thisclass{% - \texttt{memoir}\ 클래스% - \index{클래스!memoir}% - \index{memoir~클래스}% -} - -\newcommand\env[1]{% - \textsf{#1} 환경% - \index{환경!#1}% - \index{#1~환경}% -} - -\newcommand\wi[2][\empty]{% - \ifx#1\empty - \index{#2}#2% - \else - \index{#1!#2}#2% - \fi -} - -%% showcommand/showenv 명령. -%% 만약 command/env 보여주기를 끄려면 -%% \showcommandfalse를 선언한다. -\makeatletter -\newif\if@showcommand\@showcommandtrue -\newcommand\showcommandtrue{\@showcommandtrue} -\newcommand\showcommandfalse{\@showcommandfalse} - -\strictpagechecktrue - -\newcommand\showcommand[1]{% - \if@showcommand - \checkoddpage\ifoddpage - \marginpar{\small\texttt{\textbackslash #1}}% - \else - \marginpar{\hfill\small\texttt{\textbackslash #1}}% - \fi - \fi -} - -\newcommand\showenv[1]{% - \if@showcommand - \checkoddpage\ifoddpage - \marginpar{\small\textit{#1}(env.)}% - \else - \marginpar{\hfill\small\textit{#1}(env.)}% - \fi - \fi -} -\makeatother - -%% MakeShortVerb -\MakeShortVerb{\|} -% \DeleteShortVerb{\|} - -%% 인덱스의 hyperpage 처리를 위해서 -\newcommand\bfhypidx[1]{% - \textbf{\hyperpage{#1}}% -} - -%% replace \bigskip -\newcommand\alineskip{% - \vspace{\onelineskip}% -} - -%% showindexmark -%% 여백을 충분히 확보하고 다음 행을 -%% 활성화해볼 것. -%\showindexmarktrue - -%% 문장 부호 관련 명령은 스타일에 포함시켰음. -%% \bnm, \snm, \cnm, \ccnm. - -%% index를 만든다. -%% makeindex를 실행할 때는 makeindex-dhucs.pl을 이용할 것. -%% #> perl makeindex-dhucs.pl -s dhhangulucs.ist <filename> -%% -\makeindex - -%% newlist -%% 새로운 리스트를 만드는 것이 정말 너무나 간단하다. -\newcommand\queryfont{\raggedleft\sffamily\small} -\newcommand\listofqueriesname{Queries~목록} -\newlistof{listofqueries}{loq}{\listofqueriesname} -\newlistentry{query}{loq}{0} -\newcommand{\query}[2][\empty]{% - \refstepcounter{query} - \par\noindent\fbox{Q?}~\begingroup\queryfont #2\endgroup% - \addcontentsline{loq}{query}{\protect\numberline{\thequery}#2}\par - \ifx#1\empty\else\index{Query!#1}\fi -} - -%% title page -\newcommand\MakeTitle{% - \begin{titlingpage} - \setcounter{page}{-1}% - \begin{adjustwidth*}{0mm}{-55mm} - \newlength\tmplen\setlength\tmplen{\textwidth}\addtolength\tmplen{60mm} - \fbox{% - \begin{minipage}{\tmplen} - \vspace*{90mm} - \begin{center} - \LARGE\bfseries\thetitle \\ \vskip\onelineskip - \normalfont\normalsize\theauthor - \end{center} - \vspace*{100mm} - \end{minipage}} - \end{adjustwidth*} - \end{titlingpage} -} - -%% 각주. footmisc는 memoir와 함께 쓸 수 있다. -%\usepackage[bottom]{footmisc} -%% 그러나, 위의 예와 같이 [bottom] footnote를 위해서라면 -%% 다음과 같이 할 것을 권장함. raggedbottom에서 동작함. -\renewcommand*{\footnoterule}{\kern-3pt\vfill - \hrule width 0.4\columnwidth \kern 2.6pt} -%% 각주를 floats 아래. -\feetbelowfloat - -%% 밑줄. -\ifLuaTeX\else -\usepackage[normalem]{ulem} -\fi - -%% 사소한 설정 -\def\util#1{\texttt{#1}\index{Utility!#1}} - -%% \useremph compatibility -\ifPDFTeX - \let\ORIGuseremph=\useremph - \def\useremphchar{\tiny★} - \setlength\useremphraisedim{10pt} - \def\useremph#1{\ORIGuseremph{#1}} -\else\ifXeTeX - \let\ORIGuseremph=\useremph - \def\useremph#1{\ORIGuseremph[10pt]{\tiny★}{#1}} -\else\ifLuaTeX - \let\ORIGdotemph=\dotemph - \def\dotemph#1{% - \def\dotemphraise{0.4em} - \def\dotemphchar{˙} - \ORIGdotemph{#1}} - \def\circemph#1{% - \def\dotemphraise{0.4em} - \def\dotemphchar{˚} - \ORIGdotemph{#1}} - \def\useremph#1{% - \def\dotemphraise{10pt} - \def\dotemphchar{\tiny★} - \ORIGdotemph{#1}} -\fi\fi\fi - -%%% -%\headnamereftrue - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%% 이제 문서를 시작. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\begin{document} - -\title{memoir에서 한글을 쓰자!} -\author{도은이아빠} -\date{\today} - -%% 아래 \MakeTitle 명령은 이 문서의 preamble에 -%% 정의되어 있다. 표지 디자인은 이 정의를 참고하여 -%% 수정하여 볼 것. -\MakeTitle -\cleardoublepage - -\frontmatter -% ToC, etc -%% 차례 페이지들. 여기서는 demo chapter style과 -%% Ruled 페이지 스타일을 적용한다. -\chapterstyle{demo} - -\tableofcontents -%\clearpage -\listoffigures -%\clearpage -\listoftables -%% listofqueries는 \newlistof로 만든 -%% local \listofx임. -%\clearpage -\listofqueries - -\mainmatter - -%% hangul 페이지 스타일을 테스트하기 -%% 위하여 제1편 앞에 한 챕터를 둠. 다만 chapter의 첫 면은 -%% chapter 페이지 스타일을 따른다. -\pagestyle{hangul} - -\chapterstyle{default} - -\chapter{xoblivoir} - -이 문서는 xoblivoir의 몇 가지 기능을 시험하기 위한 목적으로 -작성되었다. 이 문서의 원본은 memhangul을 개발하던 당시 -테스트용으로 사용된 바, 가장 먼저 만들어진 oblivoir 문서이다. - -해당 문단의 여백에 사용되고 있는 명령이 나와 있으므로 참고할 수 있을 -것이다. 실제로 xoblivoir 사용설명서를 작성하기 어려운 것이 -기본적인 것은 모두 memoir에 바탕을 두고 있는 데다가 -한글화하면서 변화한 점도 많아서 이것을 모두 모으면 너무나 방대한 -내용이 된다는 점이다. - -이 문서의 원본을 잘 연구하면 그럭저럭 oblivoir가 어떻게 동작하는지 -짐작할 수 있게 되기를 희망한다. - -이 문서는 다음 순서로 컴파일할 수 있다. |$ENGINE|은 \util{pdflatex}, \util{xelatex}, \util{lualatex} 가운데 하나이고 -|$JOBNAME|은 파일 이름(\texttt{xobtesttest})이다. -한편, 색인을 만드는 유틸리티 |$MAKEINDEXENGINE|은 \util{pdflatex} 상황에서는 -\util{komkindex}이고 그밖의 경우에는 \util{kotexindy}이다. - -\begin{verbatim} - # $ENGINE $JOBNAME - # $ENGINE $JOBNAME - # $MAKEINDEXENGINE $JOBNAME.idx - # $ENGINE $JOBNAME -\end{verbatim} - - - -\chapter{default 페이지 스타일} - -\section{맹동야를 보내는 글} -\epigraph{한유 글, \cnm{送孟東野序}}{김학주 옮김} - -대개 만물은 평정을 얻지 못하면 소리를 내게 된다. -초목은 소리가 없으나 바람이 흔들면 소리를 내게 되며, 물은 소리가 없으나 바람이 -움직이면 소리를 내게 된다. 물이 뛰어오르는 것은 바위같은 곳에 부칮쳤기 -때문이다. 물이 세차게 끓어오르는 것은 한 곳에서 물결을 막기 때문이다. -물이 펄펄 끓어오르는 것은 불로 태우기 때문이다. 쇠나 돌은 소리가 없으나 -치면 소리를 낸다. 사람이 말하는 데 있어서도 이와 같으니, -부득이한 일이 있은 후에야 말을 하게 된다. 노래를 하는 것은 생각이 -있기 때문이며, 우는 것은 회포가 있기 때문이다. - -음악이라는 것은 가슴속이 막혀 답답할 때 밖으로 새어나오는 것이며 -소리를 잘 내는 것을 선택하여 이것을 빌려서 소리를 내게 된다. -쇠\cntrdot 돌\cntrdot 실\cntrdot 대\cntrdot 박\cntrdot 흙\cntrdot -가죽\cntrdot 나무 등 여덟 가지 악기를 만드는 데 쓰이는 자료들은 만물 -가운데 소리를 잘 내는 것들이다. - -자연의 계절에 있어서도 역시 그러하니 소리를 잘 내는 것을 선택하여 그것을 -빌려서 소리를 내게 된다. 그러므로 새를 빌려 봄의 소리를 내고, 우뢰를 -빌려 여름의 소리를 내고, 벌레를 빌어 가을의 소리를 내며, -바람을 빌어 겨울의 소리를 낸다. 사계절이 서로 바뀌어 나타나는 현상은 -반드시 그 평정을 얻지 못했기 때문일 것이다. - -이는 사람에게 있어서도 마찬가지이다. 사람의 소리 가운데 정묘한 것이 언어이며 -문장의 표현은 언어 가운데서도 더욱 정묘한 것이다. 그 중에서도 더욱 소리를 -잘 내는 것을 선택하여 이것을 빌려서 소리를 내게 된다. - -당요\cntrdot 우순 시대에는 고요와 우가 소리를 잘 내는 사람들이어서 -그들을 빌려 소리를 냈다. 기는 문사로써 소리를 내지는 못했으나 -스스로 소를 빌려서 소리를 냈다. 하나라 때에는 오자가 노래를 불러 소리를 -냈다. 이윤은 은나라에서 소리를 냈고 주공은 주나라에서 소리를 냈다. - -무릇 \snm{시}\cntrdot \snm{서} 등 육예에 실린 것들은 모두 소리를 -잘 낸 것들이다. 주나라가 쇠퇴해지자 공자의 무리들이 소리를 냈는데 -그 소리를 크게 멀리 들렸다. 옛 서적에 ``하늘이 장차 선생을 목탁으로 -삼으려 하는구나!''\,라고 하였는데도 믿지 못하겠는가! - -주나라 말엽에 이르러서는 장주가 황당한 문사로써 초나라에서 -소리를 냈다. 초나라를 큰나라였는데 망할 무렵이 되어 굴원이 소리를 냈다. -장손진\cntrdot 맹가\cntrdot 순경은 도로써 소리를 낸 자들이고, -양주\cntrdot 묵적\cntrdot 관이오\cntrdot 안영\cntrdot 노담\cntrdot 신불해\cntrdot -한비\cntrdot 신도\cntrdot 전연\cntrdot 추연\cntrdot 시교\cntrdot 손무\cntrdot -장의\cntrdot 소진의 무리들은 모두 술법으로써 소리를 냈다. - -진나라가 융성하자 이사가 소리를 냈으며 한나라 때에는 사마천\cntrdot 사마상여\cntrdot -양응이 가장 소리를 잘 낸 자들이다. - -그 후 위\cntrdot 진 시대에는 소리를 내는 자들이 옛날 사람들에 미치지 못했지만 -또한 아직 끊이지는 않았었다. 그 가운데 괜찮은 것들도 그 소리는 맑지만 -경박하고 그 음절은 빠르고 급하며 그 문사는 음란하고 슬프며 -그 뜻은 느슨하고도 방자하며 그 표현은 난잡하고 문채가 없었으니 -하늘이 그 덕을 추하게 여겨 돌보지 않은 때문이었는가? 무엇 때문에 -소리를 잘 내는 자들로 하여금 소리를 내게 하지 않았는가! - -당(唐)나라가 천하를 장악하고나서는 진자앙\cntrdot 소원명\cntrdot 원결\cntrdot -이백\cntrdot 두보\cntrdot 이관 등이 모두 자신의 잘하는 것으로써 소리를 내었다. - -현재 살아 있으면서 아랫자리에 있는 사람으로 동야 맹교가 비로소 시로써 -소리를 내었다. 그는 위\cntrdot 진 시대 사람들보다 훨씬 뛰어나며 -게을리하지 않으면 옛사람들의 수준에 미칠 수 있겠고 -그밖의 작품들은 한나라의 문풍에 젖어 있다. 나에게서 배운 자들로서 -이고와 장적이 가장 뛰어나다. 이 세 사람의 소리는 진실로 훌륭하다. - -그런데 하늘이 장차 그들의 소리를 온화하게 하여 국가의 성대함을 소리내게 -할 것인지 아니면 장차 그들 자신을 가난하고 굶주리게 하고 -그들의 마음을 근심스럽게 하여 그 불행을 스스로 소리내게 할 것인지 모르겠다. -이 세 사람의 운명은 하늘에 달려 있는 것이니 윗자리에 있다고 해서 어찌 -기뻐하겠으며 아랫자리에 있다고 해서 어찌 슬퍼하겠는가. - -동야가 강남에 근무하러 떠나면서 즐거워하지 않는 것 같아서 내가 그의 -운명이 하늘에 달려 있다고 말하며 이를 풀어주려고 하는 것이다. - -%% 본문시작. -%% 본문은 companion chapter style로 식자할 것인데, -%% default를 한 번 부른 이유는 앞서 사용한 demo의 -%% 글꼴 설정에 영향을 받기 때문이다. - -\part{xoblivoir 테스트} - -\chapterstyle{mycompanion} -\pagestyle{companion} - -%% 제목은 두 줄로 식자하되, heading과 toc에는 개행 없이. -% \chapter[memoir 클래스에서 한글을 쓰자][memoir 클래스에서...]{memoir -% 클래스에서\\ 한글을 쓰자} % -> [toc][heading]{title} -% \chapter[memoir 클래스에서 한글을 쓰자]{memoir 클래스에서\\ 한글을 -% 쓰자} % -> [toc,heading]{title} %% 이 부분이 memoir와 다르다. -% \chapter{memoir 클래스에서 한글을 쓰자} % {toc,heading,title} -% \chapter[memoir 클래스에서 한글을 쓰자][memoir 클래스에서 -% 한글...]{memoir 클래스에서\\ 한글을 쓰자} -% \chapter[memoir 클래스에서 한글...]{memoir 클래스에서\\ 한글을 쓰자} -% 주의: titleref에 \\ 문자가 들어가면 안된다. titleref에서 사용하는 -% 것은 두번째 옵션인자이므로, 다음과 같이 두번째 옵션 인자를 밝혀줄 -% 것. -\chapter[memoir 클래스에서 한글...][memoir 클래스에서 한글을 쓰자]{% - memoir 클래스에서\\ 한글을 쓰자} -\traceon\label{sec:firstchap}\traceoff - -\chapterprecis{\noindent 이 장에서는 memoir 클래스에 대해 간략히 - 소개하고 한글화에 대하여 개관한다.} - -\showcommand{chapterprecis}\showcommand{chapterstyle}\showcommand{pagestyle} -\thisclass\는 Peter Wilson 씨가 작성한 \LaTeX\ 클래스이다. \LaTeX 이 제공하는 -표준 클래스\index{표준~클래스|bfhypidx}는 \cls{book}, \cls{report}, \cls{article}, \cls{letter} -등이 있지만, 어딘가 모르게 세세한 부분에서 부족한 점이 있어서 수많은 추가 패키지를 -사용해야 원하는 문서 모양을 구현할 수 있는 경우가 많았다. \thisclass\는 그 동안 개발된 -문서 조판의 세세한 부분을 하나의 클래스로 통합한 것으로, 사용자 입장에서는 -정말 획기적인 환상적인 클래스가 아닐 수 없다. 매우 많은 패키지들을 이 -클래스는 통합\cntrdot 내장하거나 그와 유사한 기능을 제공한다. -이 패키지의 결점은, 한번 사용하기 시작하면 다시는 book과 같은 -표준 클래스로 돌아가기 어렵다는 점이다. - -EUC-KR\index{한글!EUC-KR|bfhypidx} 한글을 \thisclass 에서 사용하도록 만들었던 것이 -\pkg{memhangul}였다. -이제 여기서 제공하는 클래스는 본질적으로 \pkg{memhangul}\과 동일하지만 -한글을 UTF-8 유니코드로 입력할 수 있게 만든 것이다. \wi[유니코드]{유니코드 한글}을 -처리하기 위해서 \pkg{dhucs}\를 채택하였다. -\query[유니코드]{유니코드 한글 처리} - -\alineskip - -\hangfrom{한글 }사용을 위해서 H\LaTeX 을 채택한 결과는 어느 정도 -괜찮은 결과를 가져왔다. 그러나 \pkg{dhucs}\를 이용하여 구현한 \pkg{memhangul-ucs}\는 -괜찮은 정도가 아니라 아주 훌륭한 결과를 얻게 되었다. - -\showcommand{hangpara}\showcommand{hangfrom}% -\hangpara{2.6em}{2}% -{\SetAdhocFonts{unpg}{ungt}\showcommand{SetAdhocFonts}% -유니코드 한글 입력이 가능하도록 하는 것은 \pkg{dhucs}에서였다. 이것은 -\LaTeX-ucs 패키지와 한글 자동조사 및 한글 문서서식을 합친 것인데, -핵심적인 한글 식자와 자동조사의 구현은 김도현 교수가 작성하였다. -필자는 사용자 인터페이스를 조금 추가하고 한글 문서서식을 보충하는 -정도로 미미한 기여를 하였다.} - -이 패키지의 장점은 대강 다음과 같다. -\tightlists\showcommand{tightlists} -\begin{itemize} - -\item 유니코드를 쓴다는 것 자체가 장점이다. EUC-KR 한글의 범위를 -넘어서서 맞춤법에는 어긋나지만 꼭 써야할 경우가 없지 않은 ``띡''과 같은 -완성형 밖 글자를 식자할 수 있다.\footnote{% - 중세 한글 문제는 코드와 폰트의 문제가 얽혀 있어서 - 여기에서는 다루지 않는다.} - -\item 절에 \wi{한글식 절카운터 모양}(section counter format), \dispcmd{pgana} 등을 -사용하는 것이 쉽다. - -\item \wi{자동조사} 기능이 구현되어 있다. - -\item 주요 pagestyle과 chapterstyle이 \wi{한글}과 호환되게 하였다. 이호재 님의 -말씀에 의하면, \thisclass 는 여러 가지 면에서 매우 편리하다고 한다. - -\item 인덱스 만들기가 구현되었다. - -\item \thisclass 의 여러 기능을 그대로 쓸 수 있다. - -\end{itemize} - -\section{이 문서의 컴파일 방법} - -다음과 같은 순서로 컴파일한다. - -\bvtopandtail\showcommand{bvtopandtail}\showenv{boxedverbatim} -\begin{boxedverbatim} -#> latex memucstest -#> latex memucstest -#> makeindex-dhucs -s dhucs memucstest -#> latex memucstest -\end{boxedverbatim} - -|makeindex(-dhucs)|에 앞서서 |latex|을 두 번 실행하는 이유는, -memoir 패키지의 인덱스 만들기의 특징 때문이다. 처음 한 번만 실행해서는 -|.idx| 파일이 만들어지지 않는다. - -\section{chapter 스타일} - -\showcommand{prechapternum}\showcommand{postchapternum} -사용자가 자신의 |chapterstyle|을 정의(定義)할 때는 반드시 -\dispcmd{prechapternum}과 \dispcmd{postchapternum}을 함께 정의해주도록 한다. -그림~\ref{fig:examchapstyle}\은 |hangnum| chapter style을 -정의하는 방법을 보여준다. -\begin{figure} -%% 웬만한 환경은 memoir에 다 있다.!!! -\begin{boxedverbatim} -\makechapterstyle{hangnum}{% - \renewcommand{\chapnumfont}{\chaptitlefont} - \settowidth{\chapindent}{\chapnumfont 999} -% \renewcommand{\printchaptername}{} % <= 쓰지 않음. - \renewcommand{\prechapternum}{} % <= 이 행을 정의 - \renewcommand{\chapternamenum}{} - \renewcommand{\postchapternum}{}% <= 이 행을 정의 - \renewcommand{\printchapternum}{% - \noindent\llap{\makebox[\chapindent][l]{\chapnumfont - \thechapter}}} - \renewcommand{\afterchapternum}{} -} -\end{boxedverbatim} -\caption{chapterstyle 정의 예제}\label{fig:examchapstyle} -\end{figure} - -장 스타일을 수정하는 구체적인 예는 |memman.tex|\cite{memman}에서 -가져온 |veelo| chapter style의 정의를 참조하라. 이 문서의 -소스 Preamble에 있다. 예제는 \Cref{sec:math} \titleref{sec:math}\을 보라. -%% disable \nameref -\textbf{\nameref{sec:appchap}}\를 보라. - -\textbf{\titleref{sec:appchap}}\를 보라. \pref{sec:appchap}\을, -\ref{sec:appchap}\을, \Cref{sec:appchap}\을 -\Sref{sec:appsec}\가, \ref{sec:appsec}\가, \titleref{sec:appsec}\가. -\titleref{sec:appsec}\을. -\showcommand{Cref}\showcommand{ref}\showcommand{pageref}\showcommand{titleref} -%% \Cref 명령으로 식자되는 결과를 주의깊게 보라. - -\section{시집}\label{sec:poembook} - -\wi{어머님}이 \wi{수술} 후에 거동이 불편해지신 후, 집에만 -계시는 것이 무척 \wi{무료}하신 듯하다. 예전에 내가 보던 -\wi{시집}을 꺼내 보고 계시다. \showcommand{titleref}\showcommand{Sref}% -\Sref{sec:poembook} \textit{\titleref{sec:poembook}}\는 -텍스트 입력의 예제이다. - -%% memoir는 poem 스타일을 자체 내장하고 있다. -%% plain poem title을 선언함. -\PlainPoemTitle\showcommand{PoemTitle}\showcommand{PlainPoemTitle} -\showenv{snugshade}\showcommand{poemtitle}\showenv{verse} -\begin{snugshade} -\renewcommand\poemtoc{subsection} -\settocdepth{subsection} -\poemtitle{신안리에서} -\settowidth{\versewidth}{\hbox{사람들은 굳이 한 마디 말 하려 하지 않는다.}} -\ifpdf\begin{verse}\else\begin{verse}[\versewidth]\fi - -실개천 너머 나 있는 샛길로\\ -택시가 들어오고 나가며 \\ -겨르로운 달빛에 감출 부끄러움도 없는\\ -사람들은 굳이 한 마디 말 하려 하지 않는다.\\! - -나는 톱밥 같은 달빛을 한 웅큼\\ -멀리 철길 쪽으로 뿌렸다.\\ -매달린 불빛보다\\ -아침이 먼저 깨어나는 광경을 보며.\\ -삶은 새의 낮은 날음새 같은 것,\\ -이대로 누워 잠들기\\ -두렵지 않은 작은 마을에\\ -더 작은 풀꽃 인사한다.\\ -잊혀짐 너머 안부 묻는다.\\ -\end{verse} -\end{snugshade} - -이 스타일은 \pkg{memucs-setspace}\를 이용한다. 이 패키지는\footnote{ - 이 스타일은 \pkg{setspace}\를 수정한 것이다. - \env{verse}, \env{quote}\와 같은 환경을 조금 바꾸어서 행간을 약간 줄여주는 - 기능이 있다.} -verse, quote와 같은 환경을 조금 바꾸어서 행간을 약간 줄여주는 -기능이 있다. 이 부분에서 \dispcmd{adjustfloatfnspacing}을 불러보겠다. -\showcommand{adjustfloatfnspacing} -다음번 각주는 행간이 조금 달라져야 한다. -\adjustfloatfnspacing -float 안에 놓인 것과 같아지도록.\footnote{% -이 스타일은 \pkg{setspace}\를 수정한 것이다. -verse, quote와 같은 환경을 조금 바꾸어서 행간을 약간 줄여주는 -기능이 있다.} - -%%%\showcommand{memucsfninterwordhook}\showcommand{xspaceskip} -%%%만약 각주의 자간을 조절하고 싶으면 어떻게 할 것인가? -%%%이 때는 \dispcmd{memucsfninterwordhook}이라는 명령을 재정의해준다. -%%%이것을 간편하게 재정의하는 명령을 따로 제공하지 않는 이유는, -%%%이것을 재정의하는 것이 그다지 바람직하지 않기 때문이다. -%%%게다가 만약 이 명령에서 \dispcmd{xspaceskip} 등을 수정하면 -%%%본문에도 영향을 미치기 때문에, 본문 중에서는 -%%%되도록 사용하지 않는 것이 좋다. 여기서는 오직 예시만을 -%%%위하여 간단한 예를 들어두겠다. -%%%\let\ORIGmemucsfninterwordhook\memucsfninterwordhook -%%%\renewcommand\memucsfninterwordhook{% -%%% \ifLuaTeX -%%% \hangulfontspec[InterHangul=.5em]{\DefaultFont} -%%% \else\ifXeTeX -%%% \hangulfontspec[interhchar=.5em]{\DefaultFont} -%%% \else\ifPDFTeX -%%% \interhchar{.5em} -%%% \fi\fi\fi -%%% \spaceskip=.8em plus .133em minus .111em -%%%% \xspaceskip=1em plus .05em minus .05em -%%%}% -%%%이제 각주를 붙여보자.\footnote{% -%%%각주의 자간을 수정하려면 -%%%위와 같이 한다. 잘 되는가?} -%%% -%%%\let\memucsfninterwordhook=\ORIGmemucsfninterwordhook - -%\DefaultInterHchar - -\showcommand{noadjustquotespacing}\showcommand{adjustquotespacing} -이 아래는 본문 중에서 \dispcmd{noadjustquotespacing}과 \dispcmd{adjustquotespacing}을 -불렀을 때 \env{quote} 안에서 행간이 어떻게 변하는지 보여준다. -기본값은 \dispcmd{noadjustquotespacing}이다. - -\begin{quote} -이 스타일은 \pkg{setspace}\를 수정한 것이다. -verse, quote와 같은 환경을 조금 바꾸어서 행간을 약간 줄여주는 -기능이 있다. 마치 float 안에 놓인 것과 같이. -\end{quote} - -여기서 \dispcmd{adjustquotespacing}을 호출함. - -\adjustquotespacing -\begin{quote} -이 스타일은 \pkg{setspace}\를 이용한다. 이 패키지는 -verse, quote와 같은 환경을 조금 바꾸어서 행간을 약간 줄여주는 -기능이 있다. 마치 float 안에 놓인 것과 같이. -\end{quote} - -verse류 환경의 행간은 quote를 따른다. 앞서 보인 시를 여기에서 -다시 식자해보자. -\begin{snugshade} -\renewcommand\poemtoc{subsection} -\settocdepth{subsection} -\PoemTitle{신안리에서} -\settowidth\versewidth{사람들은 굳이 한 마디 말 하려 하지 않는다.} -\ifpdf\begin{verse}\else\begin{verse}[\versewidth]\fi - -실개천 너머 나 있는 샛길로\\ -택시가 들어오고 나가며 \\ -겨르로운 달빛에 감출 부끄러움도 없는\\ -사람들은 굳이 한 마디 말 하려 하지 않는다.\\! - -나는 톱밥 같은 달빛을 한 웅큼\\ -멀리 철길 쪽으로 뿌렸다.\\ -매달린 불빛보다\\ -아침이 먼저 깨어나는 광경을 보며.\\ -삶은 새의 낮은 날음새 같은 것,\\ -이대로 누워 잠들기\\ -두렵지 않은 작은 마을에\\ -더 작은 풀꽃 인사한다.\\ -잊혀짐 너머 안부 묻는다.\\ -\end{verse} -\end{snugshade} - -여기서 다시 \dispcmd{noadjustquotespacing}을 선언함. - -\noadjustquotespacing -\begin{quote} -이 스타일은 \pkg{setspace}\를 이용한다. 이 패키지는 -verse, quote와 같은 환경을 조금 바꾸어서 행간을 약간 줄여주는 -기능이 있다. 마치 float 안에 놓인 것과 같이. -\end{quote} - -\section{강조} - -강조를 구현하는 데는 여러 가지 방법이 있다. 서구 문헌의 -경우 이탤릭체를 사용하는 것이 일반적이고, 예전의 독일 문헌에서는 -자간을 띄우는 강조 방법을 사용한 적도 있다고 한다. - -우리말 문헌은 일관되어 있지 않다. - -\subsection{방점 강조} - -예를 들면 \circemph{방점 강조} 방법을 사용하는 것이 가능하다. -\wi[강조]{방점 강조}는 \dotemph{한글 맞춤법}의 문장부호 조항에서 규정하고 있는 방법이기도 -하다.\showcommand{circemph}\showcommand{dotemph} -맨처음에 이 명령은 H\LaTeX\ 1.01에서 구현된 것이었는데, -그 후 -\useremph{발전을 거듭하여} -현재에 이르렀다. -\showcommand{useremph} - -\subsection{기울인 글꼴 또는 글꼴 대체} - -\ifPDFTeX \ungremph \fi -H\LaTeX{}에서는 {\itshape\wi[강조]{기울인 글꼴}}을 쓰는 방법을 오랫동안 사용해왔다. -그러나 실제로 출판되는 서적에서는 \wi[강조]{글꼴 대체} 방법을 사용하는 -경우가 많다. - -\ifPDFTeX \begingroup - \regremph - |gremph| 옵션은 다음과 같은 효과를 낸다. \emph{gremph 옵션}. - \ungremph - 이번에는 이것을 disable한다. \emph{gremph 옵션}. - - |\bfemtrue|와 |\bfemfalse|는 그래픽 글꼴 대신 - 은바탕 굵은 글꼴로 식자하게 한다. 또, |\SetGremphFonts| - 명령으로 직접 폰트를 지정할 수 있다.\showcommand{regremph} \showcommand{ungremph} - \showcommand{SetGremphFonts}\showcommand{bfemtrue, \textbackslash bfemfalse} - 다만 |\SetGremphFonts| 명령은 preamble에서만 쓸 수 있다. -\endgroup \else\ifLuaOrXeTeX \begingroup - \hologo{LuaLaTeX}이나 \hologo{XeLaTeX}을 쓰는 경우, - 강조 글꼴의 선택은 폰트 속성과 연계된다. 즉, \textit{Italic Font}로 - 지정된 글꼴이 강조 글꼴로 사용된다. - |[itemph]| 옵션은 이 부분의 글꼴을 기울어지게 만든다. -\endgroup \fi\fi - -\showcommand{MakeShortVerb} - -%% 한글 섹션 카운터 포맷을 가능하게 함. -\renewcommand\thesection{\pgana{section}} -\section{두번째 절} - -\epigraphtextposition{flushleftright} -\epigraph{% -나는 십대에 \wi{철학책}을 읽기 시작한 무렵부터 -거기에 언제나 이 `나(私)'가 빠져 있다고 느껴왔다.} -{\emph{탐구}\\ \textsf{\wi[인명]{카라타니 코진(柄谷行人)}}} - -\showcommand{pgana}\showcommand{epigraph} -\showcommand{epigraphtextposition} - -\wi{수학}에서는 어떤 공리계가 하나의 해석 모델에서는 참이지만 -다른 해석 모델에서는 거짓인 일이 있을 수 있다. -이것은 \wi{공리계}가 불충분한 경우이다. - -\renewcommand\thesection{\onum{section}} -\section{표} - -\showcommand{legend}\showcommand{onum} -\thisclass\는 다양한 표작성 환경을 제공한다. -\tref{tab:test}\과 \tref{tab:test2}\를 보라. -\showcommand{tref} - -%% tabular에는 legend를 붙일 수 있다. -\begin{table} -\caption{test table}\label{tab:test} -\centering -\begin{tabular}{cc} -\hline -두 줄 짜리 & 3 \\ -하단 제목 붙은 & 4 \\ -\hline -\end{tabular} -\legend{caption 아닌 소제목} -\end{table} - -\begin{table} -\caption{test table 2}\label{tab:test2} -\centering -\begin{tabular}{cc} -\hline \hline -두 줄 짜리 & 6 \\ \hline -하단 제목 안 붙은 & 5 \\ -\hline \hline -\end{tabular} -\end{table} - -(여기서 페이지를 나눈다. 페이지 나누기 명령으로는 -\dispcmd{cleartoverso}를 사용하겠다. 이것은 이 뒤에 새로 -시작하는 페이지가 짝수쪽(verso)이 되게 한다. \dispcmd{cleartorecto} -명령도 있다.) -\showcommand{cleartoverso}\cleartoverso - -\namesubappendixtrue -\begin{subappendices} -\addappheadtotoc -\section{자동조사 테스트} -\showcommand{namesubappendixtrue} -\showcommand{addappheadtotoc} -\showenv{subsppendices} - -간단한 \dispcmd{ref}-like 명령으로 \wi{자동조사}를 테스트한다. -\dispcmd{cite}도 잘 된다. - -\tref{tab:test}\와 \tref{tab:test2}\이 어떻게 보이나요? -그리고 \fref{fig:examchapstyle}\은 \pref{fig:examchapstyle}\로 -가면 볼 수 있어요. 페이지~\pref{fig:examchapstyle}\로 가보세요. -\showcommand{tref, \textbackslash fref}\showcommand{pref} - -위의 문장 입력: -\bvsides\showcommand{bvsides}\showenv{boxedverbatim} -\begin{boxedverbatim} -\tref{tab:test}\와 \tref{tab:test2}\이 어떻게 보이나요? -그리고 \fref{fig:examchapstyle}\은 -\pageref{fig:examchapstyle}\AltPageName\로 가면 볼 수 있어요. -페이지~\pageref{fig:examchapstyle}\로 가보세요. -\end{boxedverbatim} - -\section{그림 테스트} - -\newlength{\mylength} -\begin{figure} -\calccentering{\mylength} -\begin{adjustwidth*}{\mylength}{-\mylength} -\centering -\includegraphics[width=.6\textwidth]{doeun} -\caption{공부하는(?) 도은이}\label{doeunbike} -\end{adjustwidth*} -\end{figure} - -그림이 잘 들어가는지도 테스트해야 한다고 한다. \fref{doeunbike}\를 볼 것. -이 그림은 마진폭을 계산해서 편집영역의 중간이 아니라 페이지 전체의 -중간으로 가도록 \dispcmd{calccentering}을 이용했다.\showcommand{calccentering} -\showenv{adjustwidth*} -이 계산이 표준 \LaTeX\ 클래스에서 얼마나 귀찮은 것이었는지 상상할 수 -있겠는가? -\query{그림넣기} - -\begin{boxedverbatim} -\newlength{\mylength} -\begin{figure} -\calccentering{\mylength} -\begin{adjustwidth*}{\mylength}{-\mylength} -\centering -\includegraphics[width=.6\textwidth]{doeun} -\caption{공부하는(?) 도은이}\label{doeunbike} -\end{adjustwidth*} -\end{figure} -\end{boxedverbatim} - -\end{subappendices} - -%%% part 페이지를 깨끗하게... -\copypagestyle{part}{empty} - -%%%%%%%%%% Ruled를 사용하되 partmark를 정의함. -\copypagestyle{MyRuled}{Ruled} -\newlength{\MyRuledheadwidth} -\setlength{\MyRuledheadwidth}{\textwidth} -\addtolength{\MyRuledheadwidth}{\marginparsep} -\addtolength{\MyRuledheadwidth}{\marginparwidth} -\makerunningwidth{MyRuled}{\MyRuledheadwidth} -\makeheadrule{MyRuled}{\MyRuledheadwidth}{\normalrulethickness} -\makeheadposition{MyRuled}{flushright}{flushleft}{flushright}{flushleft} -\makeatletter -\makepsmarks{MyRuled}{% - \let\@mkboth\markboth - \def\partmark##1{\markboth{\hparttitlehead. ##1}{##1}} - \def\chaptermark##1{\markright{\hchaptertitlehead. ##1}} - \def\sectionmark##1{} -} -\def\partmark#1{\markboth{\hparttitlehead. #1}{#1}} -\makeatother - -%%% 제2장. 페이지 스타일과 챕터 스타일을 바꿈. -%%% 새로운 장에 새로운 스타일을 적용하려 할 때는, -%%% chapterstyle은 \chapter명령보다 먼저 부르고 \pagestyle은 -%%% \chapter보다 나중에 부르는 것이 좋다. - -\part{테스트는 즐거워} -\oblivoirchapterstyle{veelo} -\pagestyle{MyRuled} - -\chapter{수학질문상자}\traceon\label{sec:math}\traceoff - -%% 절의 카운터를 \pnum으로. -\renewcommand\thesection{\pnum{section}} - -\showcommand{makepagestyle}\showcommand{copypagestyle} - -\section{자연로그의 밑} - -이 절은 \cite{Kentaro}\을 인용하였다. \env{singlespacing}\을 -사용하였다.\showenv{singlespacing} - -%\begin{singlespacing} -\[ -e^x =1+ \frac{x}{1!} + \frac{x^2}{2!} + \frac{x^3}{3!} + \cdots -\] -이라는 사실이 알려져 있다. 여기에서 $x=1$이라 하면, -\[ -e=1+\frac{1}{1!}+\frac{1}{2!}+\frac{1}{3!} +\cdots -\] -가 된다. - -우선 -\[ -\lim_{n\to\infty}\left(1+ \frac{1}{n}\right)^{n} = e -\] -에서 $1/n = h$라 두면, -\[ -\lim_{h\to 0}\left(1+h\right)^{\frac{1}{h}} = e -\] -라고 쓸 수 있다. $e$를 밑으로 하는 대수를 $\log$라고 표시하면, -\[ -\frac{\log(1+h)}{h} = \log(1+h)^{\frac{1}{h}} -\] -인데, 여기에서 $h \to \infty$이라면, -\[ -\lim_{h\to 0}\frac{\log(1+h)}{h} = \lim_{h\to 0}\log(1+h)^{\frac{1}{h}} =\log e. -\] - -따라서, -\[ -\log(1+h)=x, \quad\text{즉}\quad h=e^{x} -1 -\] -이다. 여기에서, -\[ -1=\lim_{h\to0}\frac{\log(1+h)}{h}=\lim_{x\to0}\frac{x}{e^x -1}. -\] - -따라서, -\[ -\lim_{x\to0}\frac{e^x -1}{x}=1 -\] -을 얻는다. 그런데 여기에서, -\[ -y=e^x -\] -의 도함수 $y'$를 구해본다. -\[ -y'=\lim_{h\to0}\frac{e^{x+h}-e^x}{h}=e^x \lim_{h\to0}\frac{e^h -1}{h}=e^x. -\] -따라서, -\[ -y=e^x \text{라면}, \qquad y'=e^x -\] -이다. - -또, $y=\log x$의 도함수를 구해본다. -\begin{displaymath} -\begin{split} -y' &= \lim_{h\to0}\frac{\log(x+h)-\log x}{h} \\ - &= \lim_{h\to0}\frac{1}{h}\log\left(1+ \frac{h}{x}\right) \\ - &= \frac{1}{x}\lim_{h\to0}\frac{x}{h}\log\left(1+\frac{h}{x}\right) \\ - &= \frac{1}{x}\lim_{\frac{h}{x}\to0}\log\left(1+\frac{h}{x}\right)^{\frac{x}{h}} \\ - &= \frac{1}{x}\log e \\ - &= \frac{1}{x}. -\end{split} -\end{displaymath} - -따라서, -\[ -y=\log x \text{라면}, \qquad y'=\frac{1}{x}. -\] - -%\end{singlespacing} - -이와 같이 간단한 공식으로 얻어진 것은 대수의 밑으로 $e$를 썼기 -때문이다. $e$ 이외의 밑을 사용하면, 공식은 보다 복잡하게 된다. -이런 의미에서 $e$를 밑으로 하는 대수를 \emph{자연로그}라고 부른다.\showcommand{emph} -이상으로부터 상상할 수 있듯이, 미적분학과 같은 이론을 전개할 때는 -$e$를 밑으로 하는 대수를 사용하고, 실제의 수치계산에서는 -$10$을 밑으로 하는 상용로그를 사용한다. - -\fancybreak{* * *} - -$0 \le t \le 1$에 있어서, $f(t)$는 연속인 도함수 $f'(t)$를 가지고,\showcommand{fancybreak} -$0 < f'(t) \le 1,\quad f(0)=0$이다. 이 때 다음 부등식이 성립함을 보여라. -\[ -\left[ \int_{0}^{1} f(t)dt \right ] ^2 \ge \int_{0}^{1} [f(t)]^3 dt -\] - -\vskip\onelineskip - -적분구간의 상한을 변수 $x$로 바꾸어본다. -\[ -\left[ \int_{0}^{x} f(t)dt \right]^2 \ge \int_0^x [f(t)]^3 dt -\] -이 식의 좌변에서 우변을 빼서 그것을 $F(x)$라고 두자. -\[ -F(x) = \left[ \int_{0}^{x} f(t)dt \right]^2 - \int_0^x [f(t)]^3 dt -\] -이 때 $F(0)=0$이다. - -$F(x)$를 $x$로 미분하면 -\begin{equation} -\begin{split} -F'(x) &= 2\left[ \int_{0}^{x} f(t)dt \right]f(x) - \{f(x)\}^3 \\ - &= f(x) \left[ 2\int_{0}^{2} f(t)dt - \{f(x)\}^2 \right] -\end{split} -\end{equation} - -문제의 의미에 의해 $0<x<1$에서 $f(x) > 0$이다. -\[ -G(x) = 2 \int_{0}^{x} f(t)dt - \{f(x)\}^2 \qquad (0 \le x \le 1) -\] -이라 놓으면 $G(0)=0$이고, -\begin{equation} -\begin{split} -G'(x) &= 2f(x) - 2f(x)f'(x) \\ - &= 2f(x) \{1-f'(x)\} \ge 0 -\end{split} -\end{equation} -이다. $0 \le x \le 1$인 모든 $x$에 관하여 $f'(x) \le 1$이므로 -$G'(x) \ge 0$. 따라서 $G(x) \ge 0$임을 말할 수 있다. 그러므로 -\uline{$F(x) \ge 0$이 성립한다.}\showcommand{uline (ulem package)} - -%% 부록 관련 명령 -%% \appendix 또는 appendices 환경 -%\appendix -%% 부록 면주에 \hparttitlehead, \hchaptertitlehead 를 표시하지 않는다. -\def\partmark#1{\markboth{#1}{#1}} -\def\chaptermark#1{\markright{#1}} -% - -\AppendixTitleToToc -\AttachAppendixTitleToSecnum - -%\begin{appendices} -\appendix -\appendixpage* - -\renewcommand\thechapter{\Roman{APPchapter}} -\renewcommand\thesubsection{\thesection.\arabic{APPsubsection}} -\setcounter{APPchapter}{0} - -\chapterstyle{appendixdefault} -\renewcommand*\prechapternum{\chapnamefont 부록\ \ 제} -\renewcommand*\postchapternum{\chapnamefont 장} -\renewcommand*\printchapternum{\chapnumfont\thechapter} -%% appendix에서는 chaptersyle을 appendixcompanion, -%% appendixdefault, appendixsection 등으로 지정할 것. -%% 사용자가 새로운 chapterstyle을 설정하려 할 때는 -%% appendixXXXX 환경을 새로 만들어야 한다. -%% appendix에서의 절 모양은 \thechapter.\arabic{section}으로 -%% 된다. 이것은 renewcommand할 수 있다. - -\pagestyle{hangul} - -\chapter{19세기 초중엽}\label{sec:appchap} - -\chapterprecis{\noindent 부록에서는 한자가 많은 문장과 상호참조가 많은 문장을 - 시험한다.} -\showcommand{chapterprecis} - -\showcommand{appendix}\showenv{appendices} -\ResetHangulspace{1.333}{1.2} -\showcommand{ResetHangulspace} -\paragraphfootnotes -\showcommand{paragraphfootnotes} - -\section{평안도 광산}\label{sec:appsec} -19세기에 들어와서도 1807년 \wi{평안도} \wi[위원]{渭原} 지방에서 -\wi{광산}이 개발되자 단시일내에 수많은 광산노동자가 집결하여 커다란 -광산촌을 형성하였는데 이 광산도 앞의 遂安광산과 동일한 형태로 -운영되었을 것은 틀림없다. 1811년 평안도 농민전쟁 당시 서울에 있던 -禹君則의 物主(資本主)가 수천 냥의 자금을 보내어 그것으로 雲山의 금광을 -운영하게끔 한 사실, 또한 앞서 본 대로 雲山 광산노동자 800명을 官軍으로 -강제적으로 끌어들이려 한 계획, \wi[김창시]{金昌始}가 -\wi[운산광산]{雲山광산}의 \wi[우욱]{禹郁}과 연계하에 그곳의 -광산노동자를 농민전쟁에 끌어들이는 조직 사업을 진행하였다고 하는 -사실은\footnote{\bnm{日省錄} 哲宗 9年 2月 3日條} 이 시기에 -雲山금광에서도 수많은 광산노동자가 집결하여 있었음을 確證하여 -준다. 또한 1858년 함경도 암행어사 洪承裕의 보고에 의하면 당시 -함경도에서는 金, 銀, 銅의 潛採가 광범하게 이루어져서 하나의 광산이 -開發되기만 하면 도처에서 金店軍이 몇천 명씩 몰려와서 鑛山村이 형성되고 -場市가 열려서 각종 日用品이 광범하게 매매되고 있고 광산의 坑의 깊이가 -千餘尺에 달하는 경우도 적지 않았다.\footnote{\bnm{關南平亂錄} 卷五 - 安州牧使 牒報條.} - -\section{술어 논리의 완전성 정리} - -이 절의 텍스트는 \cite{incompl}\ pp.\ 155ff.에서 취하였다. -\showcommand{cite} - -\subsection{먼저 기호의 설명을 잠깐\texorpdfstring{\ldots}{...}} - -술어논리의 형식화는 모든 대상과 논리법칙(공리)의 기호화로부터 -시작된다. ``태초에 기호가 있다''이다. - -\showcommand{texorpdfstring} -기본 기호는 \fref{fig:syms}의 여섯 종류이다. -\showcommand{fref} - -\begin{figure} -\centering -\begin{minipage}{.75\textwidth} -\begin{tabbing} -1111\=11111111111111111111\= \kill -(1) \> 대상기호(상수) \> $ c_{1}, c_{2}, c_{3}, c_{4}, \ldots $ \\ -(2) \> 함수기호 \> $ f_{1}, f_{2}, f_{3}, f_{4}, \ldots $ \\ -(3) \> 술어기호 \> $ P_{1}, P_{2}, P_{3}, P_{4}, \ldots $ \\ -(4) \> 자유변수 \> $ a_{1}, a_{2}, a_{3}, a_{4}, \ldots $ \\ -(5) \> 속박변수 \> $ x_{1}, x_{2}, x_{3}, x_{4}, \ldots $ \\ -(6) \> 논리기호 \> $ \land, \lor, \rightarrow, \lnot, \forall, \exists $ -\end{tabbing} -\end{minipage} -\caption{기본 기호}\label{fig:syms} -\end{figure} - -\showenv{tabbing}\showenv{minipage} - -이 중, `자유변수'란 불특정의 대상, `속박변수'란 논리기호 $\forall$과 -$\exists$의 어느 것인가와 함께 사용하는 변수를 나타낸다. $\forall$과 -$\exists$는 `속박기호' 또는 `양화기호'라 부르고 $\forall$을 -`전칭기호', $\exists$를 `존재기호'라고 말한다. - -이 $\forall$과 $\exists$를 포함하지 않는 논리 체계가 \bnm{프린키피아 - 마테마티카}에서 처음으로 체계화된 ``명제논리학''이다. 이쪽은 벌써 -1920년에 그 무모순성과 완전성이 당시 컬럼비아 대학의 학생에 지나지 -않았던 E.~L.~포스트에 의해서 증명되고 있다. - -논리기호는 초수학에 있어서는 추상적인 기호에 지나지 않는다. 그러나 -근원을 밝히면 그것들에는 원래 각각 고유한 의미가 있다. 즉 `$\lnot$'는 -``\ldots 이 아니다'', `$\lor$'는 ``또는'', `$\land$'는 ``동시에'', -`$\rightarrow$'는 ``이라면'', $\forall$은 ``모든'', $\exists$는 ``어떤 -\ldots 가 존재한다''는 의미이다. - -이 해석으로 말하면 대상이 유한집합의 경우는 술어논리도 명제논리로 -환원될 수 있다. $\forall$과 $\exists$는 무한집합을 대상으로 할 때 -비로소 의미를 갖는 논리기호이다. 수학은 본질적으로 무한집합을 대상으로 -하고 있기 때문에 술어논리는 수학의 논리로 되어 있는 것이다. - -그러나 지금은 이러한 유래를 제외하고 형식적 체계만을 문제삼고 있기 -때문에 당분간 기호의 의미는 잊어버려도 상관없다. 오히려 적극적으로 -잊어버려서 기호의 조작에만 전념하려고 하는 것이 초수학의 기본 -방침이다. - -\subsection{`항', `논리식'의 정의와 논리법칙} - -기호가 갖추어진 곳에서 추론의 대상이 되는 `항'을 \pref{fig:term}의 -\fref{fig:term}\과 같이 정의한다.\showcommand{pref} - -\begin{figure} -\centering -\begin{minipage}{.75\textwidth} -\begin{enumerate}[(1)]\tightlist\small\raggedright -\item \label{itemone} 대상 기호와 자유변수는 항이다. -\item \label{itemtwo} $f$가 $n$ 변수의 함수기호이고, $t_1 , t_2 , - \ldots, t_n$이 항이라면 $f(t_1 , t_2 , \ldots t_n )$은 항이다. -\item (\ref{itemone})\와 (\ref{itemtwo})\으로부터 얻어지는 것만이 항이다. -\end{enumerate} -\end{minipage} -\caption{`항'의 정의}\label{fig:term} -\end{figure} - -다음으로 이 항을 사용해서 `논리식'을 \fref{fig:logi}\과 같이 정의한다. - -\begin{figure} -\centering -\begin{minipage}{.85\textwidth} -\begin{enumerate}[(1)]\tightlist\small\raggedright -\item \label{st} $P$가 $n$ 변수의 술어기호이고, $t_1 , t_2 , \ldots , - t_n $이 항이라면 $P(t_1 , t_2 , \ldots , t_n )$은 논리식이다. 특히 - 이것을 \emph{원시논리식}이라 부른다. -\item \label{nd} $A, B$가 논리식일 때 $\lnot A, A \lor B, A \land B, A - \to B$도 논리식이다. -\item \label{rd} $A(a)$가 자유변수 $a$를 포함하는 논리식이고 $x$가 - $A(a)$ 속에 나타나지 않는 속박변수일 때 $\forall xA(x), \exists - xA(x)$는 논리식이다. -\item (\ref{st}), (\ref{nd}), (\ref{rd})에 의해서 얻어지는 것만이 - 논리식이다. -\end{enumerate} -\small -덧붙여 말하면, $\forall xA(x)$는 ``모든 $x$는 $A$를 충족시킨다'', -$\exists xA(x)$는 ``$A$를 충족시키는 $x$가 존재한다''라고 해석한다. -\end{minipage} -\caption{`논리식'의 정의}\label{fig:logi} -\end{figure} - -그러면 다음은 이들 논리식을 사용해서 추론을 행하기 위한 논리법칙의 -설정인데, 힐베르트-아카만의 공리계에서는 다음 \fref{fig:rules}\과 같이 -되어 있다. - -\begin{figure} -\centering -\begin{minipage}{.85\textwidth}\small -\noindent\textsf{공리}\\ -\begin{enumerate}[(1)]\tightlist -\item $A \to (B\to A)$ -\item $(A\to B)\to ((A\to (B\to C))\to (A\to C))$ -\item $A\to (B\to A\land B)$ -\item $A\land B\to A,\quad A\land B\to B$ -\item $A\to A\lor B,\quad B\to A\lor B$ -\item $(A\to C)\to ((B\to C)\to(A\lor B\to C))$ -\item $(A\to B)\to ((A\to \lnot B)\to \lnot A))$ -\item $\lnot\lnot A\to A$ -\item $A(t)\to \exists xA(x)$ ($t$는 항) -\item $\forall xA(x) \to A(t)$ ($t$는 항) -\end{enumerate} - -\bigskip - -\noindent\textsf{추론 규칙}\\ -\begin{enumerate}[1~~] -\item \label{rules:st} $\dfrac{A,\; A\to B}{B}$ -\item $\dfrac{A(a)\to C}{\exists xA(x)\to C}$ -\item $\dfrac{C\to A(a)}{C\to \forall xA(x)}$ -\end{enumerate} -다만, $A, B, C, \ldots, \forall xA(x), \ldots$ 등은 모두 논리식으로 -한다. -\end{minipage} -\caption{논리법칙 (힐베르트-아카만의 공리계를 따름)}\label{fig:rules} -\end{figure} - -`추론규칙'이 형성하는 ``도형''을 ``연역도'' 또는 ``증명도''라 부르고 -이 도형은 ``위의 기호열로부터 아래의 기호열을 추론한다''라고 -해석한다. 예컨대 추론규칙 \ref{rules:st}\는 ``$A$와 $A\to B$로부터 -$B$를 추론한다''라고 해석하는 것이다. - -\subsection{증명과 해석} - -이만큼 준비가 된 곳에서 `증명가능'의 개념을 다음과 같이 정의한다.\showcommand{tightlist} -\showenv{enumerate} -\begin{enumerate}[(1)]\tightlist -\item \label{ev:st} 공리는 증명가능하다. -\item \label{ev:nd} 증명가능한 논리식에 추론규칙을 적용해서 얻어지는 논리식은 - 증명가능하다. -\item (\ref{ev:st})\과 (\ref{ev:nd})에서 얻어진 논리식만이 - 증명가능하다. -\end{enumerate} - -논리식 $A$가 $B_1 , B_2 , \ldots , B_n $을 가정했을 때 증명할 수 -있다면, -\begin{displaymath} -B_1 , B_2 , \ldots , B_n \vdash A -\end{displaymath} -라고 쓴다.\showenv{displaymath} - -또한 $A$가 술어논리의 공리만을 사용해서 증명가능할 때는 -\begin{displaymath} -\vdash A -\end{displaymath} -라고 쓴다. - -\begin{snugshade} -실례를 두 가지 대비시켜서 보여주자. - -예컨대 논리식, -$$ -\forall x \exists y (y < x) -$$ -는 ``모든 $x$에 대해서 $y$가 존재하고 $y$는 $x$보다 작다''라고 해석할 -수 있다. 이 해석 아래에서는 실수의 영역이면 모델이 되나 자연수의 -영역에서는 모델이 되지 않는다. 자연수로 $x$를 $0$으로 잡으면 그것보다 -작은 자연수 $y$는 존재하지 않기 때문이다. - -대비적인 실례로서 논리식, -$$ -\exists x \forall y (x \le y) -$$ -를 취하자. 그 해석은 ``어떤 $x$가 존재하고 모든 $y$에 대해서 $y$는 -$x$와 같거나 $x$보다 크다''로 된다. 이것은 자연수가 모델이라면 -$0$이라는 최소수가 존재하기 때문에 진실이 되나 실수의 모델에서는 허위로 -되는 논리식이다. -\end{snugshade} -\showenv{snugshade} - -그래서 모든 해석에 대해서 진실이 되는 논리식을 `항진식' 또는 -`토톨로지'라 부르고 $A$가 토톨로지일 때 -\begin{displaymath} -\vDash A -\end{displaymath} -라고 쓰기로 한다. - -\chapter{이 문서에 관하여} - -이 문서는 \pkg{memhangul-ucs}를 처음 만들 때 테스트용으로 작성한 -것이다. - -\pkg{oblivoir}는 원래 \pkg{dhucs}를 백그라운드 드라이버로 하여 -구현된 것이었다. 그러다가 \hologo{XeTeX}ko, \hologo{LuaTeX}ko를 -백그라운드로 한 \pkg{xoblivoir}가 만들어졌다. -현재 버전의 \pkg{xoblivoir}는 이 둘을 합쳐서 어떤 엔진으로 컴파일해도 -거의 같은 결과를 얻게끔 되어 있다. -따라서, 이 문서는 \hologo{pdfLaTeX}, \hologo{XeLaTeX}, \hologo{LuaLaTeX} 어느 것으로도 컴파일된다. \showcommand{hologo} - -\section{kotexindy에 관하여} -찾아보기를 만들려면 |kotexindy|를 사용하라. 예를 들면 다음과 같다. -\begin{verbatim} -$ kotexindy memucstest.idx -\end{verbatim} -찾아보기를 찍는 명령은 |\printindex|이다. \showcommand{printindex} - -%\restorechapsec \showcommand{restorechapsec} -%% 만약 appendix가 문서의 가장 끝에 오는 것이 아니라면 -%% 이 명령을 appendix 이후에 실행해준다. -%% 아래와 같이 appendices 환경을 쓰는 경우에는 -%% 환경을 종료하기만 하면 된다. -%\end{appendices} - -%%% 본문의 끝. -\backmatter -\chapterstyle{demo} - -%% \bibintoc 하면 참고문헌이 목록에 나온다. -%% 기본값이므로 별도로 설정할 필요는 없다. -%\bibintoc -\renewcommand\prebibhook{% - \showcommand{bibintoc}% - 이 참고문헌 예제는 시험을 위해서 작성된 것으로 실제 문서의 - 내용과는 무관하다.% - \showcommand{prebibhook}} -\begin{thebibliography}{00} -\bibitem[카누쓰86]{Knuth} Donald Knuth. \textit{The - \TeX{}book}. Addison-Wesley. 1986. -\bibitem{memman} Peter Wilson. ``The Memoir Class for Configurable - Typesetting --- User Guide,'' On-line 문서. - \url{http://www.ctan.org/tex-archive/macros/latex/contrib/memoir/}. -\bibitem{incompl} 요시나가 요시마사, 임승원 (옮김), \bnm{불완전성 정리 - --- ``이성의 한계''의 발견}. 전파과학사. 1993. -\bibitem[수학질문상자]{Kentaro} 야노 겐타로(矢野健太郞), 전재복 - (옮김). \bnm{수학 질문 상자 --- 왜일까? 그것을 알고 - 싶다}. 전파과학사. 1991. (원저: 고단샤, 1973). -\end{thebibliography} - -\indexintoc -\renewcommand\preindexhook{% - 찾아보기는 테스트를 위해서 임의의 단어들로 선정되었다. - \bigskip} -\printindex - -%% memoir에서는 \listof... 명령을 아무데나 선언할 -%% 수 있다. 신기하다. -\clearpage -\showcommand{listof...} -\listofqueries - -\end{document} - diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memhangul-common.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memhangul-common.sty index f4681e39a9f..76efd7e80c8 100644 --- a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memhangul-common.sty +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memhangul-common.sty @@ -1,6 +1,6 @@ %% File `memhangul-common.sty` %% -%% (C) Copyright 2013 Kangsoo Kim <karnes at ktug org> +%% (C) Copyright 2013-2014 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 @@ -17,7 +17,7 @@ %%% 편, 장 섹션 타이틀 재설정 %%% 절의 섹션 타이틀은 수정하지 않음. %% -\ProvidesPackage{memhangul-common}[2013/10/22] +\ProvidesPackage{memhangul-common}[2014/06/12] \let\@CHAPAPP\@chapapp \def\refreshprepostchapters{% @@ -46,27 +46,53 @@ \newcommand\hparttitlehead{\pre@part\partnamenum\thepart\partnamenum\post@part} %% PART +%\long\def\@part[#1]#2{% +% \M@gettitle{#1}% +% \ifnum \c@secnumdepth >-2\relax +% \refstepcounter{part}% +% \addcontentsline{toc}{part}% +% {\protect\partnumberline{\hparttitlehead}#1}% +% \else +% \addcontentsline{toc}{part}{#1}% +% \fi +%% \markboth{}{}% +% \ifx#1\@empty\partmark{#2}\else\partmark{#1}\fi +% {\centering +% \interlinepenalty \@M +% \normalfont +% \ifnum \c@secnumdepth >-2\relax +% \prepartnum \partnamenum \printpartnum \partnamenum \postpartnum +% \midpartskip +% \fi +% \printparttitle{#2}\par}% +% \@endpart} \long\def\@part[#1]#2{% +% \ifx#1\@empty\PrerenderUnicode{#2}\else\PrerenderUnicode{#1}\fi \M@gettitle{#1}% \ifnum \c@secnumdepth >-2\relax \refstepcounter{part}% \addcontentsline{toc}{part}% +% {\protect\partnumberline{\thepart}#1}% {\protect\partnumberline{\hparttitlehead}#1}% + \mempartinfo{\thepart}{#1}{#2}% \else \addcontentsline{toc}{part}{#1}% + \mempartinfo{}{#1}{#2}% \fi -% \markboth{}{}% - \ifx#1\@empty\partmark{#2}\else\partmark{#1}\fi + \partmark{#1}% {\centering \interlinepenalty \@M \normalfont \ifnum \c@secnumdepth >-2\relax +% \printpartname \partnamenum \printpartnum +% \midpartskip \prepartnum \partnamenum \printpartnum \partnamenum \postpartnum \midpartskip \fi \printparttitle{#2}\par}% \@endpart} + \def\@spart#1{% \M@gettitle{#1}% {\centering @@ -89,31 +115,136 @@ %% CHAPTER %%%%%%%%%%% -%% we don't adapt mempatch 3.6, just retrieved to memoir-original manner. \renewcommand{\@m@mchapter}[1][\@empty]{% \def\ch@pt@c{#1}% capture first optional arg \@dblarg{\@chapter}} %%\def\m@m@empty{\@empty} +%%%%\def\@chapter[#1]#2{% +%%%% \ifx\ch@pt@c\m@m@empty % no optional args +%%%% \def\f@rtoc{#1}% +%%%% \def\f@rhdr{#1}% +%%%% \else % at least one opt arg +%%%% \def\f@rtoc{\ch@pt@c}% +%%%% \nametest{#1}{#2}% +%%%% \ifsamename % one opt arg +%%%% \def\f@rhdr{\ch@pt@c}% +%%%% \else % two opt args +%%%% \def\f@rhdr{#1}% +%%%% \fi +%%%% \fi +%%%% \ifnum \c@secnumdepth >\m@ne +%%%% \if@mainmatter +%%%% \refstepcounter{chapter}% +%%%% \fi +%%%% \fi +%%%% \chaptermark{\f@rhdr}% +%%%% \ifartopt +%%%% \@makechapterhead{#2}% +%%%% \@afterheading +%%%% \else +%%%% \insertchapterspace +%%%% \if@twocolumn +%%%% \@topnewpage[\@makechapterhead{#2}]% +%%%% \else +%%%% \@makechapterhead{#2}% +%%%% \fi +%%%% \@afterheading +%%%% \fi +%%%% \ifnum \c@secnumdepth >\m@ne +%%%% \if@mainmatter +%%%% \addcontentsline{toc}{chapter}{% +%%%%% \protect\chapternumberline{\thechapter}\f@rtoc}% +%%%% \protect\chapternumberline{\hchaptertitlehead}\f@rtoc}% +%%%% \else +%%%% \addcontentsline{toc}{chapter}{\f@rtoc}% +%%%% \fi +%%%% \else +%%%% \addcontentsline{toc}{chapter}{\f@rtoc}% +%%%% \fi +%%%% \ifheadnameref\M@gettitle{\f@rhdr}\else\M@gettitle{\f@rtoc}\fi +%%%%} +%%%% +%%%%\def\@makechapterhead#1{% +%%%% \chapterheadstart% \vspace*{50\p@}% +%%%% {\parindent \z@ \raggedright \normalfont +%%%% \ifnum \c@secnumdepth >\m@ne +%%%% \if@mainmatter +%%%% \memucsinterwordchapterskiphook +%%%%% \printchaptername \chapternamenum \printchapternum \chapternamenum \postchapternum +%%%% \prechapternum \chapternamenum \printchapternum \chapternamenum \postchapternum +%%%% \afterchapternum % \par\nobreak \vskip 20\p@ +%%%% \else +%%%% \printchapternonum +%%%% \fi +%%%% \else +%%%% \printchapternonum +%%%% \fi +%%%% \interlinepenalty\@M +%%%% \printchaptertitle{#1} % \Huge \bfseries #1 +%%%% \afterchaptertitle % \par\nobreak \vskip 40\p@ +%%%% }} +%%%% +%%%%\def\@makeschapterhead#1{% +%%%% \chapterheadstart +%%%% {\parindent \z@ \raggedright \normalfont \memucsinterwordchapterskiphook +%%%% \printchapternonum +%%%% \interlinepenalty\@M +%%%% \printchaptertitle{#1} +%%%% \afterchaptertitle +%%%% } +%%%%} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% CHAPTER +%% memhangul : opt args : different from memoir 1.618 +%% \chapter[toc][hdr]{title} +%% \chapter[toc]{hdr/title} +%% \chapter{toc/hdr/title} \def\@chapter[#1]#2{% +% \ifx\ch@pt@c\@empty % no optional args +% \def\f@rtoc{#2}% +% \def\f@rhdr{#2}% +% \PrerenderUnicode{#2}% +% \else % at least one opt arg +% \let\f@rtoc\ch@pt@c +% \ifx\@empty#1\@empty +% \let\f@rhdr\ch@pt@c +% \PrerenderUnicode{#1#2}% +% \else +% \def\f@rhdr{#1}% +% \PrerenderUnicode{#1}% +% \fi +% \fi \ifx\ch@pt@c\m@m@empty % no optional args \def\f@rtoc{#1}% \def\f@rhdr{#1}% +% \PrerenderUnicode{#1}% \else % at least one opt arg \def\f@rtoc{\ch@pt@c}% \nametest{#1}{#2}% \ifsamename % one opt arg \def\f@rhdr{\ch@pt@c}% +% \PrerenderUnicode{#1#2}% \else % two opt args \def\f@rhdr{#1}% +% \PrerenderUnicode{#1}% \fi \fi + \m@m@Andfalse \ifnum \c@secnumdepth >\m@ne \if@mainmatter - \refstepcounter{chapter}% + \m@m@Andtrue \fi \fi - \chaptermark{\f@rhdr}% + \ifm@m@And + \ifanappendix + \refstepcounter{APPchapter}% + \else + \refstepcounter{chapter}% + \fi + \fi + \chaptermark{\f@rhdr} \ifartopt \@makechapterhead{#2}% \@afterheading @@ -126,42 +257,73 @@ \fi \@afterheading \fi - \ifnum \c@secnumdepth >\m@ne - \if@mainmatter + \ifm@m@And + \ifanappendix + \addcontentsline{toc}{appendix}{% +% \protect\chapternumberline{\thechapter}\f@rtoc}% + \protect\chapternumberline{\hchaptertitlehead}\f@rtoc}% +% \memappchapinfo{\thechapter}{\f@rtoc}{\f@rhdr}{#2}% + \memappchapinfo{\thechapter}{\f@rtoc}{\f@rhdr}{#2}% + \else \addcontentsline{toc}{chapter}{% % \protect\chapternumberline{\thechapter}\f@rtoc}% \protect\chapternumberline{\hchaptertitlehead}\f@rtoc}% - \else - \addcontentsline{toc}{chapter}{\f@rtoc}% +% \memchapinfo{\thechapter}{\f@rtoc}{\f@rhdr}{#2}% + \memchapinfo{\hchaptertitlehead}{\f@rtoc}{\f@rhdr}{#2}% \fi \else \addcontentsline{toc}{chapter}{\f@rtoc}% + \ifanappendix + \memappchapinfo{}{\f@rtoc}{\f@rhdr}{#2}% + \else + \memchapinfo{\hchaptertitlehead}{\f@rtoc}{\f@rhdr}{#2}% + \fi \fi \ifheadnameref\M@gettitle{\f@rhdr}\else\M@gettitle{\f@rtoc}\fi -} +%%% for chapter + \ifanappendix + \protected@edef\@currentlabel{\thechapter}% + \fi +} \def\@makechapterhead#1{% \chapterheadstart% \vspace*{50\p@}% {\parindent \z@ \raggedright \normalfont - \ifnum \c@secnumdepth >\m@ne - \if@mainmatter - \memucsinterwordchapterskiphook -% \printchaptername \chapternamenum \printchapternum \chapternamenum \postchapternum - \prechapternum \chapternamenum \printchapternum \chapternamenum \postchapternum - \afterchapternum % \par\nobreak \vskip 20\p@ - \else - \printchapternonum - \fi + \ifm@m@And + \memucsinterwordchapterskiphook +% \printchaptername \chapternamenum \printchapternum +% \afterchapternum % \par\nobreak \vskip 20\p@ + \prechapternum \chapternamenum \printchapternum \chapternamenum \postchapternum + \afterchapternum % \par\nobreak \vskip 20\p@ \else \printchapternonum \fi \interlinepenalty\@M \printchaptertitle{#1} % \Huge \bfseries #1 - \afterchaptertitle % \par\nobreak \vskip 40\p@ + \afterchaptertitle % \par\nobreak \vskip 40\p@ }} +\renewcommand{\@m@mschapter}[2][\@empty]{% + \@schapter{#2}% + \ifx \@empty#1 + \def\f@rhdr{#2}% +% \PrerenderUnicode{#2}% + \else % opt arg + \def\f@rhdr{#1}% +% \PrerenderUnicode{#1}% + \setcounter{secnumdepth}{-10}% + \chaptermark{#1}% + \setcounter{secnumdepth}{\value{maxsecnumdepth}}% + \fi + \ifanappendix + \memappchapstarinfo{\f@rhdr}{#2}% + \else + \memchapstarinfo{\f@rhdr}{#2}% + \fi} + \def\@makeschapterhead#1{% \chapterheadstart +% {\parindent \z@ \raggedright \normalfont {\parindent \z@ \raggedright \normalfont \memucsinterwordchapterskiphook \printchapternonum \interlinepenalty\@M @@ -170,6 +332,8 @@ } } +%%%%%%%%%%%%% + \renewcommand{\@chs@def@ult}{% \def\chapterheadstart{\vspace*{\beforechapskip}} % \def\printchaptername{\chapnamefont \@chapapp} @@ -904,19 +1068,22 @@ \fi %% 할주. -%% still experimental not complete. +%% still experimental %% \hbox로 처리하기 때문에 행끝에서 할주 행나눔은 이루어지지 않는다. %% 글꼴이 \tiny로 고정. \footnotesize를 쓰면 행간이 흐트러짐. %% TODO: 현재 설정은 10pt 문서에서 1pt정도가 행간에 추가됨. %% \lineskiplimit를 이용해서 행간을 고정시켜둘 것인지는 아직 %% 결정하지 못하였음. \newskip\divnoteskip +\def\divnotedelimopen{\hskip.1em$\big($} +\def\divnotedelimclose{$\big)$\hskip.1em} \divnoteskip = .18em plus .02em minus .02em \def\divnotestyle{% \spaceskip\divnoteskip\normalfont\tiny} -\def\divnote#1{% +\protected\def\divnote#1{% \settowidth{\@tempdima}{\divnotestyle #1}% - \hskip.1em$\big($\raise.2em\hbox{\parbox{.525\@tempdima}{\divnotestyle\singlespace #1}}$\big)$\hskip.1em% + \ifvmode\leavevmode\fi\divnotedelimopen + \raise.2em\hbox{\parbox{.525\@tempdima}{\divnotestyle\singlespace #1}}\divnotedelimclose } %% 각주 설정을 위한 추가 매크로 @@ -936,14 +1103,39 @@ \def\obCaptionFont#1{\def\@figtabcaptfont@{#1}} \providecommand\@figtabcaptfont@{\normalfont} \if@figtabcapt@ -\precaption{{\@figtabcaptfont@\cnm@char@open}} -\captiondelim{{\@figtabcaptfont@\cnm@char@close}\quad} -\renewcommand\cfttablepresnum{\cnm@char@open\tablename\space} -\renewcommand\cfttableaftersnum{\cnm@char@close} -\renewcommand\cfttablenumwidth{3.8em} -\renewcommand\cftfigurepresnum{\cnm@char@open\figurename\space} -\renewcommand\cftfigureaftersnum{\cnm@char@close} -\renewcommand\cftfigurenumwidth{4.5em} +\AtBeginDocument{ +\@ifpackageloaded{caption}{% requested by Progress + \DeclareCaptionLabelFormat{xob-cnm-parens}{\cnm{#1~#2}} + \captionsetup{labelformat=xob-cnm-parens,labelsep=space} +}% +{% + \precaption{{\@figtabcaptfont@\cnm@char@open}} + \captiondelim{{\@figtabcaptfont@\cnm@char@close}\quad} + \renewcommand\cfttablepresnum{\cnm@char@open\tablename\space} + \renewcommand\cfttableaftersnum{\cnm@char@close} + \setlength\cfttablenumwidth{3.8em} + \renewcommand\cftfigurepresnum{\cnm@char@open\figurename\space} + \renewcommand\cftfigureaftersnum{\cnm@char@close} + \setlength\cftfigurenumwidth{4.5em} +} +} \fi +%%% LuaTeX, XeTeX logos +\RequirePackage{xparse} +\ExplSyntaxOn +\tl_if_exist:NF \XeTeX +{ + \RequirePackage{hologo} + \ProvideDocumentCommand \XeTeX { } { \hologo{XeTeX} } + \ProvideDocumentCommand \XeLaTeX { } { \hologo{XeLaTeX} } +} +\tl_if_exist:NF \LuaTeX +{ + \RequirePackage{hologo} + \ProvideDocumentCommand \LuaTeX { } { \hologo{LuaTeX} } + \ProvideDocumentCommand \LuaLaTeX { } { \hologo{LuaLaTeX} } +} +\ExplSyntaxOff + \endinput diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memhangul-patch.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memhangul-patch.sty index 260e711ffe4..b3cf7299587 100644 --- a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memhangul-patch.sty +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memhangul-patch.sty @@ -17,173 +17,4 @@ %% 2006/04/27 %% remove redundant prerenderunicodes according to dhucs 3.0.0 %% -\typeout{memhangul-ucs patch for memoir 1.618, 2006/04/27} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% PART -\long\def\@part[#1]#2{% -% \ifx#1\@empty\PrerenderUnicode{#2}\else\PrerenderUnicode{#1}\fi - \M@gettitle{#1}% - \ifnum \c@secnumdepth >-2\relax - \refstepcounter{part}% - \addcontentsline{toc}{part}% -% {\protect\partnumberline{\thepart}#1}% - {\protect\partnumberline{\hparttitlehead}#1}% - \mempartinfo{\thepart}{#1}{#2}% - \else - \addcontentsline{toc}{part}{#1}% - \mempartinfo{}{#1}{#2}% - \fi - \partmark{#1}% - {\centering - \interlinepenalty \@M - \normalfont - \ifnum \c@secnumdepth >-2\relax -% \printpartname \partnamenum \printpartnum -% \midpartskip - \prepartnum \partnamenum \printpartnum \partnamenum \postpartnum - \midpartskip - \fi - \printparttitle{#2}\par}% - \@endpart} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% CHAPTER -%% memhangul : opt args : different from memoir 1.618 -%% \chapter[toc][hdr]{title} -%% \chapter[toc]{hdr/title} -%% \chapter{toc/hdr/title} -\def\@chapter[#1]#2{% -% \ifx\ch@pt@c\@empty % no optional args -% \def\f@rtoc{#2}% -% \def\f@rhdr{#2}% -% \PrerenderUnicode{#2}% -% \else % at least one opt arg -% \let\f@rtoc\ch@pt@c -% \ifx\@empty#1\@empty -% \let\f@rhdr\ch@pt@c -% \PrerenderUnicode{#1#2}% -% \else -% \def\f@rhdr{#1}% -% \PrerenderUnicode{#1}% -% \fi -% \fi - \ifx\ch@pt@c\m@m@empty % no optional args - \def\f@rtoc{#1}% - \def\f@rhdr{#1}% -% \PrerenderUnicode{#1}% - \else % at least one opt arg - \def\f@rtoc{\ch@pt@c}% - \nametest{#1}{#2}% - \ifsamename % one opt arg - \def\f@rhdr{\ch@pt@c}% -% \PrerenderUnicode{#1#2}% - \else % two opt args - \def\f@rhdr{#1}% -% \PrerenderUnicode{#1}% - \fi - \fi - \m@m@Andfalse - \ifnum \c@secnumdepth >\m@ne - \if@mainmatter - \m@m@Andtrue - \fi - \fi - \ifm@m@And - \ifanappendix - \refstepcounter{APPchapter}% - \else - \refstepcounter{chapter}% - \fi - \fi - \chaptermark{\f@rhdr} - \ifartopt - \@makechapterhead{#2}% - \@afterheading - \else - \insertchapterspace - \if@twocolumn - \@topnewpage[\@makechapterhead{#2}]% - \else - \@makechapterhead{#2}% - \fi - \@afterheading - \fi - \ifm@m@And - \ifanappendix - \addcontentsline{toc}{appendix}{% -% \protect\chapternumberline{\thechapter}\f@rtoc}% - \protect\chapternumberline{\hchaptertitlehead}\f@rtoc}% -% \memappchapinfo{\thechapter}{\f@rtoc}{\f@rhdr}{#2}% - \memappchapinfo{\thechapter}{\f@rtoc}{\f@rhdr}{#2}% - \else - \addcontentsline{toc}{chapter}{% -% \protect\chapternumberline{\thechapter}\f@rtoc}% - \protect\chapternumberline{\hchaptertitlehead}\f@rtoc}% -% \memchapinfo{\thechapter}{\f@rtoc}{\f@rhdr}{#2}% - \memchapinfo{\hchaptertitlehead}{\f@rtoc}{\f@rhdr}{#2}% - \fi - \else - \addcontentsline{toc}{chapter}{\f@rtoc}% - \ifanappendix - \memappchapinfo{}{\f@rtoc}{\f@rhdr}{#2}% - \else - \memchapinfo{\hchaptertitlehead}{\f@rtoc}{\f@rhdr}{#2}% - \fi - \fi - \ifheadnameref\M@gettitle{\f@rhdr}\else\M@gettitle{\f@rtoc}\fi -%%% for chapter - \ifanappendix - \protected@edef\@currentlabel{\thechapter}% - \fi -} - -\def\@makechapterhead#1{% - \chapterheadstart% \vspace*{50\p@}% - {\parindent \z@ \raggedright \normalfont - \ifm@m@And - \memucsinterwordchapterskiphook -% \printchaptername \chapternamenum \printchapternum -% \afterchapternum % \par\nobreak \vskip 20\p@ - \prechapternum \chapternamenum \printchapternum \chapternamenum \postchapternum - \afterchapternum % \par\nobreak \vskip 20\p@ - \else - \printchapternonum - \fi - \interlinepenalty\@M - \printchaptertitle{#1} % \Huge \bfseries #1 - \afterchaptertitle % \par\nobreak \vskip 40\p@ - }} - - -\renewcommand{\@m@mschapter}[2][\@empty]{% - \@schapter{#2}% - \ifx \@empty#1 - \def\f@rhdr{#2}% -% \PrerenderUnicode{#2}% - \else % opt arg - \def\f@rhdr{#1}% -% \PrerenderUnicode{#1}% - \setcounter{secnumdepth}{-10}% - \chaptermark{#1}% - \setcounter{secnumdepth}{\value{maxsecnumdepth}}% - \fi - \ifanappendix - \memappchapstarinfo{\f@rhdr}{#2}% - \else - \memchapstarinfo{\f@rhdr}{#2}% - \fi} - -\def\@makeschapterhead#1{% - \chapterheadstart -% {\parindent \z@ \raggedright \normalfont - {\parindent \z@ \raggedright \normalfont \memucsinterwordchapterskiphook - \printchapternonum - \interlinepenalty\@M - \printchaptertitle{#1} - \afterchaptertitle - } -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\endinput +\endinput
\ No newline at end of file diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memhangul-ucs.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memhangul-ucs.sty index d624cf26562..cb62187ed8d 100644 --- a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memhangul-ucs.sty +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memhangul-ucs.sty @@ -12,8 +12,8 @@ %% %% \NeedsTeXFormat{LaTeX2e} -\def\filedate{2013/10/22} -\def\fileversion{1.7.6} +\def\filedate{2014/06/12} +\def\fileversion{1.7.7} \ProvidesPackage{memhangul-ucs}[\filedate UCS Hangul Package for memoir class] \typeout{memhangul-ucs\space v\fileversion\space \filedate} @@ -388,7 +388,7 @@ \def\bfemtrue{\@bfemtrue} \def\bfemfalse{\@bfemfalse} -\if@unfonts +\if@unfont \if@bfem \def\GrEmphFont{outbt} \def\GrEmphHanjaFont{outbt} @@ -493,7 +493,7 @@ \newdimen\useremphraisedim\useremphraisedim\z@ -\protected\def\useremph#1{\begingroup +\def\@@user@emph#1{\begingroup \ifdim\useremphraisedim=\z@\relax \settoheight{\dhucs@emph@raise}{#1}% \addtolength{\dhucs@emph@raise}{-.4em}% @@ -511,10 +511,46 @@ \let\useremph\@firstofone } +\RequirePackage{xparse} +\ExplSyntaxOn + +\dim_new:N \tmp_user_emph_dim +\dim_set:Nn \tmp_user_emph_dim { 1ex } +\tl_set:Nn \tmp_user_emph_char { ˚ } +\DeclareDocumentCommand \useremph { o o m } +{ + \IfValueT { #1 } + { + \tl_if_empty:nF { #1 } + { + \settoheight \tmp_user_emph_dim { #3 } + \dim_add:Nn \tmp_user_emph_dim { #1 } + } + } + \IfValueT { #2 } + { + \tl_if_empty:nF { #2 } + { + \tl_set:Nn \tmp_user_emph_char { #2 } + } + } + + \dim_set_eq:NN \useremphraisedim \tmp_user_emph_dim + \tl_set_eq:NN \useremphchar \tmp_user_emph_char + \@@user@emph{#3} +} + +\ExplSyntaxOff + +\def\useremphstarblack{\tiny★} +\def\useremphstarwhite{\tiny☆} + \endinput % CHANGE LOG % +% 2014/06/15: \useremph[raise][char]{text} compatible to xoblivoir +% 2014/06/12: \if@unfonts => \if@unfont % 2013/10/22: introduce memhangul-common.sty % 2013/10/16: [kosection] bug fix % 2013/09/27: xoblivoir-related fixes. diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memucs-gremph.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memucs-gremph.sty index 24268f96710..475fa8238c8 100644 --- a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memucs-gremph.sty +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memucs-gremph.sty @@ -1,6 +1,6 @@ %% File `memucs-gremph.sty` %% -%% Copyright (c) 2006-2013 Kangsoo Kim <karnes at ktug org> +%% Copyright (c) 2006-2014 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 @@ -33,7 +33,7 @@ % \def\GrEmphFont{utbt} % \def\GrEmphHanjaFont{utbt} %\else -\if@unfonts +\if@unfont \if@vargremphhangulfont\else \def\GrEmphFont{outgr}\fi \if@vargremphhanjafont\else @@ -109,6 +109,7 @@ % end of style. % % CHANGE LOG. +% * 2014/06/12. \if@unfonts => \if@unfont % * 2007/08/02. redundant space bug fix % * 2007/06/08. \slshape independent from \itshape % * 2005/08/17. \slhangul added. diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/luatexko-xobfont.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/luatexko-xobfont.sty deleted file mode 100644 index 6fe0a4e97c1..00000000000 --- a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/luatexko-xobfont.sty +++ /dev/null @@ -1,608 +0,0 @@ -%% luatexko-xobfont.sty -%% -%% Copyright (c) 2012-2013 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. -%% -%% oblivoir style font commands for luatex -%% part of oblivoir package -%% -%% Version 0.1: oldhangul option is not implemented -%% 0.1.1: bug fix (2012/07/28) -%% 0.1.2: [unfonts], [nounfonts] (2012/10/29) -%% -\ProvidesPackage{luatexko-xobfont}[2012/07/12] - -%% options: latinquote,oldhangul,gremph,itemph,nowinname,manualfontspec -\newif\if@latinquote\@latinquotefalse -\DeclareOption{latinquote}{\@latinquotetrue} -\newif\if@oldhangul\@oldhangulfalse -\DeclareOption{oldhangul}{\@oldhangultrue} -\newif\if@gremph\@gremphtrue -\DeclareOption{gremph}{\@gremphtrue} -\DeclareOption{itemph}{\@gremphfalse} -\newif\if@nowin\@nowinfalse -\DeclareOption{nowinname}{\@nowintrue} -\newif\if@manualfontspec\@manualfontspecfalse -\DeclareOption{manualfontspec}{\@manualfontspectrue} -\newif\if@unfonts\@unfontstrue -\DeclareOption{unfonts}{\@unfontstrue} -\DeclareOption{nounfonts}{\@unfontsfalse} -\newif\if@nanumfonts\@nanumfontsfalse -\DeclareOption{nanum}{\@nanumfontstrue} -\ProcessOptions - -%%% -\if@manualfontspec \endinput \fi - -%%% fixed options -\if@oldhangul - \edef\LKOV@oldhangulscript{Script=Hangul} - \edef\LKOV@oldhangullanguage{Language=Korean} - \edef\LKOV@oldhangulfeatures{RawFeature=+ccmp;+ljmo;+vjmo;+tjmo} -\else - \edef\LKOV@oldhangulscript{} - \edef\LKOV@oldhangullanguage{} - \edef\LKOV@oldhangulfeatures{} -\fi - -%%% note: FakeBold is disabled under LuaTeX -\if@gremph - \edef\LKOV@italicfeatures{} -\else - \edef\LKOV@italicfeatures{slant=0.17} -\fi - -\def\LKOV@externallocation{} - -\newcommand*\setmonoscale[1]{% - \edef\LKOV@monoscale{#1} -} -\setmonoscale{1} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%% main -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% top level command -\def\setkormainfont{% - \@ifstar {\setk@rm@inf@nt}{% - \@ifnextchar[{\m@inf@ntbracket}{% - \@ifnextchar(\m@inf@ntparen\m@inf@ntnoparen}% - } -} - -\def\m@inf@ntbracket[#1]#2{% - \@ifnextchar[{\m@inf@ntbrackettrail[#1]{#2}}{\m@inf@ntbracketnotrail[#1]{#2}} -} - -%%% \setkormainfont[foo]{bar} -\def\m@inf@ntbracketnotrail[#1]#2{% - \setmainhangulfont[#1]{#2} -} - -%%% \setkormainfont[foo1]{bar1}[foo2]{bar2} -\def\m@inf@ntbrackettrail[#1]#2[#3]#4{% - \setmainhangulfont[#1]{#2} - \setmainhanjafont[#3]{#4} -} - -%%% \setkormainfont{foo} -\def\m@inf@ntnoparen#1{\setmainhangulfont{#1}} - -\def\m@inf@ntparen(#1){% - \@ifnextchar({\m@inf@ntdoubleparen(#1)}{\m@inf@ntsingleparen(#1)} -} - -\def\m@inf@ntsingleparen(#1)#2{% - \@ifnextchar({\m@inf@ntsingleparentrail(#1){#2}}{\m@inf@ntsingleparennotrail(#1){#2}} -} - -\def\m@inf@ntsingleparentrail(#1)#2(#3){% - \@ifnextchar({\m@inf@ntsingleparentraildouble(#1){#2}(#3)}{\m@inf@ntsingleparentrailsingle(#1){#2}(#3)} -} - -\def\m@inf@ntdoubleparen(#1)(#2)#3{% - \@ifnextchar({\m@inf@ntdoubleparentrail(#1)(#2){#3}}{\m@inf@ntdoubleparennotrail(#1)(#2){#3}} -} - -\def\m@inf@ntdoubleparentrail(#1)(#2)#3(#4){% - \@ifnextchar({\m@inf@ntdoubleparentraildouble(#1)(#2){#3}(#4)}{\m@inf@ntdoubleparentrailsingle(#1)(#2){#3}(#4)} -} - -%%% \setkormainfont(foo){bar} -\def\m@inf@ntsingleparennotrail(#1)#2{% - \setmainhangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#2} -} - -%%% \setkormainfont(foo1){bar1}(foo2){bar2} -\def\m@inf@ntsingleparentrailsingle(#1)#2(#3)#4{% - \setmainhangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#2} - \setmainhanjafont[BoldFont=#3,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#4,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#4} -} - -%%% \setkormainfont(foo1){bar1}(foo2)(foo3){bar2} -\def\m@inf@ntsingleparentraildouble(#1)#2(#3)(#4)#5{% - \setmainhangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#2} - \if#4* \def\LKOV@temp{#5}\else \def\LKOV@temp{#4}\fi - \setmainhanjafont[BoldFont=#3,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#5} -} - -%%% \setkormainfont(foo1)(foo2){bar} -\def\m@inf@ntdoubleparennotrail(#1)(#2)#3{% - \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi - \setmainhangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#3} -} - -%%% \setkormainfont(foo1)(foo2){bar1}(foo3){bar2} -\def\m@inf@ntdoubleparentrailsingle(#1)(#2)#3(#4)#5{% - \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi - \setmainhangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#3} - \setmainhanjafont[BoldFont=#4,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#5,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#5} -} - -%%% \setkormainfont(foo1)(foo2){bar1}(foo3)(foo4){bar2} -\def\m@inf@ntdoubleparentraildouble(#1)(#2)#3(#4)(#5)#6{% - \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi - \setmainhangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#3} - \if#5* \def\LKOV@temp{#6}\else\def\LKOV@temp{#5}\fi - \setmainhanjafont[BoldFont=#4,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#5} -} - -%%%%%%%%%%%%%%%%%%%%%% main: ExternalLocation %%%%%%%%%%%%%%%%%%%% -%%% top level command -\def\setk@rst@rm@inf@nt*{% - \@ifnextchar[{\st@rm@inf@ntbracket*}{% - \@ifnextchar({\st@rm@inf@ntparen*}{\st@rm@inf@ntnoparen*}}% -} - -\def\st@rm@inf@ntbracket*[#1]#2{% - \@ifnextchar[{\st@rm@inf@ntbrackettrail*[#1]{#2}}{\st@rm@inf@ntbracketnotrail*[#1]{#2}} -} - -%%% \setkormainfont*{bar} -\def\setk@rm@inf@nt#1{% - \setmainhangulfont[ExternalLocation]{#1} -} - -%%% \setkormainfont*[foo]{bar} -\def\st@rm@inf@ntbracketnotrail*[#1]#2{% - \setmainhangulfont[#1,ExternalLocation]{#2} -} - -%%% \setkormainfont*[foo1]{bar1}[foo2]{bar2} -\def\st@rm@inf@ntbrackettrail*[#1]#2[#3]#4{% - \setmainhangulfont[#1,ExternalLocation]{#2} - \setmainhanjafont[#3,ExternalLocation]{#4} -} - -%%% \setk@rst@rm@inf@nt*{foo} -\def\st@rm@inf@ntnoparen*#1{\setmainhangulfont[ExternalLocation]{#1}} - -\def\st@rm@inf@ntparen*(#1){% - \@ifnextchar({\st@rm@inf@ntdoubleparen*(#1)}{\st@rm@inf@ntsingleparen*(#1)} -} - -\def\st@rm@inf@ntsingleparen*(#1)#2{% - \@ifnextchar({\st@rm@inf@ntsingleparentrail*(#1){#2}}{\st@rm@inf@ntsingleparennotrail*(#1){#2}} -} - -\def\st@rm@inf@ntsingleparentrail*(#1)#2(#3){% - \@ifnextchar({\st@rm@inf@ntsingleparentraildouble*(#1){#2}(#3)}{\st@rm@inf@ntsingleparentrailsingle*(#1){#2}(#3)} -} - -\def\st@rm@inf@ntdoubleparen*(#1)(#2)#3{% - \@ifnextchar({\st@rm@inf@ntdoubleparentrail*(#1)(#2){#3}}{\st@rm@inf@ntdoubleparennotrail*(#1)(#2){#3}} -} - -\def\st@rm@inf@ntdoubleparentrail*(#1)(#2)#3(#4){% - \@ifnextchar({\st@rm@inf@ntdoubleparentraildouble*(#1)(#2){#3}(#4)}{\st@rm@inf@ntdoubleparentrailsingle*(#1)(#2){#3}(#4)} -} - -%%% \setk@rst@rm@inf@nt*(foo){bar} -\def\st@rm@inf@ntsingleparennotrail*(#1)#2{% - \setmainhangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#2} -} - -%%% \setk@rst@rm@inf@nt*(foo1){bar1}(foo2){bar2} -\def\st@rm@inf@ntsingleparentrailsingle*(#1)#2(#3)#4{% - \setmainhangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#2} - \setmainhanjafont[BoldFont=#3,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#4,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#4} -} - -%%% \setk@rst@rm@inf@nt*(foo1){bar1}(foo2)(foo3){bar2} -\def\st@rm@inf@ntsingleparentraildouble*(#1)#2(#3)(#4)#5{% - \setmainhangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#2} - \if#4* \def\LKOV@temp{#5}\else \def\LKOV@temp{#4}\fi - \setmainhanjafont[BoldFont=#3,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#5} -} - -%%% \setk@rst@rm@inf@nt*(foo1)(foo2){bar} -\def\st@rm@inf@ntdoubleparennotrail(#1)(#2)#3{% - \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi - \setmainhangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#3} -} - -%%% \setk@rst@rm@inf@nt*(foo1)(foo2){bar1}(foo3){bar2} -\def\st@rm@inf@ntdoubleparentrailsingle(#1)(#2)#3(#4)#5{% - \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi - \setmainhangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#3} - \setmainhanjafont[BoldFont=#4,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#5,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#5} -} - -%%% \setk@rst@rm@inf@nt*(foo1)(foo2){bar1}(foo3)(foo4){bar2} -\def\st@rm@inf@ntdoubleparentraildouble*(#1)(#2)#3(#4)(#5)#6{% - \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi - \setmainhangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#3} - \if#5* \def\LKOV@temp{#6}\else\def\LKOV@temp{#5}\fi - \setmainhanjafont[BoldFont=#4,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#5} -} - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%% sans -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% top level command -\def\setkorsansfont{% - \@ifstar {\setk@rs@nsf@nt}{% - \@ifnextchar[{\s@nsf@ntbracket}{% - \@ifnextchar(\s@nsf@ntparen\s@nsf@ntnoparen}% - } -} - -\def\s@nsf@ntbracket[#1]#2{% - \@ifnextchar[{\s@nsf@ntbrackettrail[#1]{#2}}{\s@nsf@ntbracketnotrail[#1]{#2}} -} - -%%% \setkorsansfont[foo]{bar} -\def\s@nsf@ntbracketnotrail[#1]#2{% - \setsanshangulfont[#1]{#2} -} - -%%% \setkorsansfont[foo1]{bar1}[foo2]{bar2} -\def\s@nsf@ntbrackettrail[#1]#2[#3]#4{% - \setsanshangulfont[#1]{#2} - \setsanshanjafont[#3]{#4} -} - -%%% \setkorsansfont{foo} -\def\s@nsf@ntnoparen#1{\setsanshangulfont{#1}} - -\def\s@nsf@ntparen(#1){% - \@ifnextchar({\s@nsf@ntdoubleparen(#1)}{\s@nsf@ntsingleparen(#1)} -} - -\def\s@nsf@ntsingleparen(#1)#2{% - \@ifnextchar({\s@nsf@ntsingleparentrail(#1){#2}}{\s@nsf@ntsingleparennotrail(#1){#2}} -} - -\def\s@nsf@ntsingleparentrail(#1)#2(#3){% - \@ifnextchar({\s@nsf@ntsingleparentraildouble(#1){#2}(#3)}{\s@nsf@ntsingleparentrailsingle(#1){#2}(#3)} -} - -\def\s@nsf@ntdoubleparen(#1)(#2)#3{% - \@ifnextchar({\s@nsf@ntdoubleparentrail(#1)(#2){#3}}{\s@nsf@ntdoubleparennotrail(#1)(#2){#3}} -} - -\def\s@nsf@ntdoubleparentrail(#1)(#2)#3(#4){% - \@ifnextchar({\s@nsf@ntdoubleparentraildouble(#1)(#2){#3}(#4)}{\s@nsf@ntdoubleparentrailsingle(#1)(#2){#3}(#4)} -} - -%%% \setkorsansfont(foo){bar} -\def\s@nsf@ntsingleparennotrail(#1)#2{% - \setsanshangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#2} -} - -%%% \setkorsansfont(foo1){bar1}(foo2){bar2} -\def\s@nsf@ntsingleparentrailsingle(#1)#2(#3)#4{% - \setsanshangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#2} - \setsanshanjafont[BoldFont=#3,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#4,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#4} -} - -%%% \setkorsansfont(foo1){bar1}(foo2)(foo3){bar2} -\def\s@nsf@ntsingleparentraildouble(#1)#2(#3)(#4)#5{% - \setsanshangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#2} - \if#4* \def\LKOV@temp{#5}\else \def\LKOV@temp{#4}\fi - \setsanshanjafont[BoldFont=#3,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#5} -} - -%%% \setkorsansfont(foo1)(foo2){bar} -\def\s@nsf@ntdoubleparennotrail(#1)(#2)#3{% - \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi - \setsanshangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#3} -} - -%%% \setkorsansfont(foo1)(foo2){bar1}(foo3){bar2} -\def\s@nsf@ntdoubleparentrailsingle(#1)(#2)#3(#4)#5{% - \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi - \setsanshangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#3} - \setsanshanjafont[BoldFont=#4,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#5,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#5} -} - -%%% \setkorsansfont(foo1)(foo2){bar1}(foo3)(foo4){bar2} -\def\s@nsf@ntdoubleparentraildouble(#1)(#2)#3(#4)(#5)#6{% - \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi - \setsanshangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#3} - \if#5* \def\LKOV@temp{#6}\else\def\LKOV@temp{#5}\fi - \setsanshanjafont[BoldFont=#4,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#5} -} - -%%%%%%%%%%%%%%%%%%%%%% sans: ExternalLocation %%%%%%%%%%%%%%%%%%%% -%%% top level command -\def\setk@rst@rs@nsf@nt*{% - \@ifnextchar[{\st@rs@nsf@ntbracket*}{% - \@ifnextchar({\st@rs@nsf@ntparen*}{\st@rs@nsf@ntnoparen*}}% -} - -\def\st@rs@nsf@ntbracket*[#1]#2{% - \@ifnextchar[{\st@rs@nsf@ntbrackettrail*[#1]{#2}}{\st@rs@nsf@ntbracketnotrail*[#1]{#2}} -} - -%%% \setkorsansfont*{bar} -\def\setk@rs@nsf@nt#1{% - \setsanshangulfont[ExternalLocation]{#1} -} - -%%% \setkorsansfont*[foo]{bar} -\def\st@rs@nsf@ntbracketnotrail*[#1]#2{% - \setsanshangulfont[#1,ExternalLocation]{#2} -} - -%%% \setkorsansfont*[foo1]{bar1}[foo2]{bar2} -\def\st@rs@nsf@ntbrackettrail*[#1]#2[#3]#4{% - \setsanshangulfont[#1,ExternalLocation]{#2} - \setsanshanjafont[#3,ExternalLocation]{#4} -} - -%%% \setk@rst@rs@nsf@nt*{foo} -\def\st@rs@nsf@ntnoparen*#1{\setsanshangulfont[ExternalLocation]{#1}} - -\def\st@rs@nsf@ntparen*(#1){% - \@ifnextchar({\st@rs@nsf@ntdoubleparen*(#1)}{\st@rs@nsf@ntsingleparen*(#1)} -} - -\def\st@rs@nsf@ntsingleparen*(#1)#2{% - \@ifnextchar({\st@rs@nsf@ntsingleparentrail*(#1){#2}}{\st@rs@nsf@ntsingleparennotrail*(#1){#2}} -} - -\def\st@rs@nsf@ntsingleparentrail*(#1)#2(#3){% - \@ifnextchar({\st@rs@nsf@ntsingleparentraildouble*(#1){#2}(#3)}{\st@rs@nsf@ntsingleparentrailsingle*(#1){#2}(#3)} -} - -\def\st@rs@nsf@ntdoubleparen*(#1)(#2)#3{% - \@ifnextchar({\st@rs@nsf@ntdoubleparentrail*(#1)(#2){#3}}{\st@rs@nsf@ntdoubleparennotrail*(#1)(#2){#3}} -} - -\def\st@rs@nsf@ntdoubleparentrail*(#1)(#2)#3(#4){% - \@ifnextchar({\st@rs@nsf@ntdoubleparentraildouble*(#1)(#2){#3}(#4)}{\st@rs@nsf@ntdoubleparentrailsingle*(#1)(#2){#3}(#4)} -} - -%%% \setk@rst@rs@nsf@nt*(foo){bar} -\def\st@rs@nsf@ntsingleparennotrail*(#1)#2{% - \setsanshangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#2} -} - -%%% \setk@rst@rs@nsf@nt*(foo1){bar1}(foo2){bar2} -\def\st@rs@nsf@ntsingleparentrailsingle*(#1)#2(#3)#4{% - \setsanshangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#2} - \setsanshanjafont[BoldFont=#3,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#4,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#4} -} - -%%% \setk@rst@rs@nsf@nt*(foo1){bar1}(foo2)(foo3){bar2} -\def\st@rs@nsf@ntsingleparentraildouble*(#1)#2(#3)(#4)#5{% - \setsanshangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#2} - \if#4* \def\LKOV@temp{#5}\else \def\LKOV@temp{#4}\fi - \setsanshanjafont[BoldFont=#3,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#5} -} - -%%% \setk@rst@rs@nsf@nt*(foo1)(foo2){bar} -\def\st@rs@nsf@ntdoubleparennotrail(#1)(#2)#3{% - \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi - \setsanshangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#3} -} - -%%% \setk@rst@rs@nsf@nt*(foo1)(foo2){bar1}(foo3){bar2} -\def\st@rs@nsf@ntdoubleparentrailsingle(#1)(#2)#3(#4)#5{% - \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi - \setsanshangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#3} - \setsanshanjafont[BoldFont=#4,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#5,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#5} -} - -%%% \setk@rst@rs@nsf@nt*(foo1)(foo2){bar1}(foo3)(foo4){bar2} -\def\st@rs@nsf@ntdoubleparentraildouble*(#1)(#2)#3(#4)(#5)#6{% - \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi - \setsanshangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#3} - \if#5* \def\LKOV@temp{#6}\else\def\LKOV@temp{#5}\fi - \setsanshanjafont[BoldFont=#4,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#5} -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%% mono -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% top level command -\def\setkormonofont{% - \@ifstar {\setk@rm@n@f@nt}{% - \@ifnextchar[{\m@n@f@ntbracket}{% - \@ifnextchar(\m@n@f@ntparen\m@n@f@ntnoparen}% - } -} - -\def\m@n@f@ntbracket[#1]#2{% - \@ifnextchar[{\m@n@f@ntbrackettrail[#1]{#2}}{\m@n@f@ntbracketnotrail[#1]{#2}} -} - -%%% \setkormonofont[foo]{bar} -\def\m@n@f@ntbracketnotrail[#1]#2{% - \setmonohangulfont[#1,Scale=\LKOV@monoscale]{#2} -} - -%%% \setkormonofont[foo1]{bar1}[foo2]{bar2} -\def\m@n@f@ntbrackettrail[#1]#2[#3]#4{% - \setmonohangulfont[#1,Scale=\LKOV@monoscale]{#2} - \setmonohanjafont[#3,Scale=\LKOV@monoscale]{#4} -} - -%%% \setkormonofont{foo} -\def\m@n@f@ntnoparen#1{\setmonohangulfont{#1}} - -\def\m@n@f@ntparen(#1){% - \@ifnextchar({\m@n@f@ntdoubleparen(#1)}{\m@n@f@ntsingleparen(#1)} -} - -\def\m@n@f@ntsingleparen(#1)#2{% - \@ifnextchar({\m@n@f@ntsingleparentrail(#1){#2}}{\m@n@f@ntsingleparennotrail(#1){#2}} -} - -\def\m@n@f@ntsingleparentrail(#1)#2(#3){% - \@ifnextchar({\m@n@f@ntsingleparentraildouble(#1){#2}(#3)}{\m@n@f@ntsingleparentrailsingle(#1){#2}(#3)} -} - -\def\m@n@f@ntdoubleparen(#1)(#2)#3{% - \@ifnextchar({\m@n@f@ntdoubleparentrail(#1)(#2){#3}}{\m@n@f@ntdoubleparennotrail(#1)(#2){#3}} -} - -\def\m@n@f@ntdoubleparentrail(#1)(#2)#3(#4){% - \@ifnextchar({\m@n@f@ntdoubleparentraildouble(#1)(#2){#3}(#4)}{\m@n@f@ntdoubleparentrailsingle(#1)(#2){#3}(#4)} -} - -%%% \setkormonofont(foo){bar} -\def\m@n@f@ntsingleparennotrail(#1)#2{% - \setmonohangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},Scale=\LKOV@monoscale]{#2} -} - -%%% \setkormonofont(foo1){bar1}(foo2){bar2} -\def\m@n@f@ntsingleparentrailsingle(#1)#2(#3)#4{% - \setmonohangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},Scale=\LKOV@monoscale]{#2} - \setmonohanjafont[BoldFont=#3,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#4,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},Scale=\LKOV@monoscale]{#4} -} - -%%% \setkormonofont(foo1){bar1}(foo2)(foo3){bar2} -\def\m@n@f@ntsingleparentraildouble(#1)#2(#3)(#4)#5{% - \setmonohangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},Scale=\LKOV@monoscale]{#2} - \if#4* \def\LKOV@temp{#5}\else \def\LKOV@temp{#4}\fi - \setmonohanjafont[BoldFont=#3,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},Scale=\LKOV@monoscale]{#5} -} - -%%% \setkormonofont(foo1)(foo2){bar} -\def\m@n@f@ntdoubleparennotrail(#1)(#2)#3{% - \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi - \setmonohangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},Scale=\LKOV@monoscale]{#3} -} - -%%% \setkormonofont(foo1)(foo2){bar1}(foo3){bar2} -\def\m@n@f@ntdoubleparentrailsingle(#1)(#2)#3(#4)#5{% - \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi - \setmonohangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},Scale=\LKOV@monoscale]{#3} - \setmonohanjafont[BoldFont=#4,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#5,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},Scale=\LKOV@monoscale]{#5} -} - -%%% \setkormonofont(foo1)(foo2){bar1}(foo3)(foo4){bar2} -\def\m@n@f@ntdoubleparentraildouble(#1)(#2)#3(#4)(#5)#6{% - \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi - \setmonohangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},Scale=\LKOV@monoscale]{#3} - \if#5* \def\LKOV@temp{#6}\else\def\LKOV@temp{#5}\fi - \setmonohanjafont[BoldFont=#4,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},Scale=\LKOV@monoscale]{#5} -} - -%%%%%%%%%%%%%%%%%%%%%% mono: ExternalLocation %%%%%%%%%%%%%%%%%%%% -%%% top level command -\def\setk@rst@rm@n@f@nt*{% - \@ifnextchar[{\st@rm@n@f@ntbracket*}{% - \@ifnextchar({\st@rm@n@f@ntparen*}{\st@rm@n@f@ntnoparen*}}% -} - -\def\st@rm@n@f@ntbracket*[#1]#2{% - \@ifnextchar[{\st@rm@n@f@ntbrackettrail*[#1]{#2}}{\st@rm@n@f@ntbracketnotrail*[#1]{#2}} -} - -%%% \setkormonofont*{bar} -\def\setk@rm@n@f@nt#1{% - \setmonohangulfont[ExternalLocation]{#1} -} - - -%%% \setkormonofont*[foo]{bar} -\def\st@rm@n@f@ntbracketnotrail*[#1]#2{% - \setmonohangulfont[#1,ExternalLocation,Scale=\LKOV@monoscale]{#2} -} - -%%% \setkormonofont*[foo1]{bar1}[foo2]{bar2} -\def\st@rm@n@f@ntbrackettrail*[#1]#2[#3]#4{% - \setmonohangulfont[#1,ExternalLocation,Scale=\LKOV@monoscale]{#2} - \setmonohanjafont[#3,ExternalLocation,Scale=\LKOV@monoscale]{#4} -} - -%%% \setk@rst@rm@n@f@nt*{foo} -\def\st@rm@n@f@ntnoparen*#1{\setmonohangulfont[ExternalLocation]{#1}} - -\def\st@rm@n@f@ntparen*(#1){% - \@ifnextchar({\st@rm@n@f@ntdoubleparen*(#1)}{\st@rm@n@f@ntsingleparen*(#1)} -} - -\def\st@rm@n@f@ntsingleparen*(#1)#2{% - \@ifnextchar({\st@rm@n@f@ntsingleparentrail*(#1){#2}}{\st@rm@n@f@ntsingleparennotrail*(#1){#2}} -} - -\def\st@rm@n@f@ntsingleparentrail*(#1)#2(#3){% - \@ifnextchar({\st@rm@n@f@ntsingleparentraildouble*(#1){#2}(#3)}{\st@rm@n@f@ntsingleparentrailsingle*(#1){#2}(#3)} -} - -\def\st@rm@n@f@ntdoubleparen*(#1)(#2)#3{% - \@ifnextchar({\st@rm@n@f@ntdoubleparentrail*(#1)(#2){#3}}{\st@rm@n@f@ntdoubleparennotrail*(#1)(#2){#3}} -} - -\def\st@rm@n@f@ntdoubleparentrail*(#1)(#2)#3(#4){% - \@ifnextchar({\st@rm@n@f@ntdoubleparentraildouble*(#1)(#2){#3}(#4)}{\st@rm@n@f@ntdoubleparentrailsingle*(#1)(#2){#3}(#4)} -} - -%%% \setk@rst@rm@n@f@nt*(foo){bar} -\def\st@rm@n@f@ntsingleparennotrail*(#1)#2{% - \setmonohangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation,Scale=\LKOV@monoscale]{#2} -} - -%%% \setk@rst@rm@n@f@nt*(foo1){bar1}(foo2){bar2} -\def\st@rm@n@f@ntsingleparentrailsingle*(#1)#2(#3)#4{% - \setmonohangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation,Scale=\LKOV@monoscale]{#2} - \setmonohanjafont[BoldFont=#3,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#4,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation,Scale=\LKOV@monoscale]{#4} -} - -%%% \setk@rst@rm@n@f@nt*(foo1){bar1}(foo2)(foo3){bar2} -\def\st@rm@n@f@ntsingleparentraildouble*(#1)#2(#3)(#4)#5{% - \setmonohangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation,Scale=\LKOV@monoscale]{#2} - \if#4* \def\LKOV@temp{#5}\else \def\LKOV@temp{#4}\fi - \setmonohanjafont[BoldFont=#3,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation,Scale=\LKOV@monoscale]{#5} -} - -%%% \setk@rst@rm@n@f@nt*(foo1)(foo2){bar} -\def\st@rm@n@f@ntdoubleparennotrail(#1)(#2)#3{% - \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi - \setmonohangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation,Scale=\LKOV@monoscale]{#3} -} - -%%% \setk@rst@rm@n@f@nt*(foo1)(foo2){bar1}(foo3){bar2} -\def\st@rm@n@f@ntdoubleparentrailsingle(#1)(#2)#3(#4)#5{% - \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi - \setmonohangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation,Scale=\LKOV@monoscale]{#3} - \setmonohanjafont[BoldFont=#4,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#5,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation,Scale=\LKOV@monoscale]{#5} -} - -%%% \setk@rst@rm@n@f@nt*(foo1)(foo2){bar1}(foo3)(foo4){bar2} -\def\st@rm@n@f@ntdoubleparentraildouble*(#1)(#2)#3(#4)(#5)#6{% - \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi - \setmonohangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation,Scale=\LKOV@monoscale]{#3} - \if#5* \def\LKOV@temp{#6}\else\def\LKOV@temp{#5}\fi - \setmonohanjafont[BoldFont=#4,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation,Scale=\LKOV@monoscale]{#5} -} - -\if@nanumfonts -\setmainhangulfont{NanumMyeongjo} -\setsanshangulfont{NanumGothic} -\setmonohangulfont{NanumGothic} -\fi - -\endinput diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/memhangul-x.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/memhangul-x.sty index 3b54c614f22..e55fadebe03 100644 --- a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/memhangul-x.sty +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/memhangul-x.sty @@ -14,8 +14,8 @@ %% part of oblivoir v2 %% \NeedsTeXFormat{LaTeX2e} -\def\filedate{2014/04/29} -\def\fileversion{11.7.17} +\def\filedate{2014/06/12} +\def\fileversion{11.8} \ProvidesPackage{memhangul-x}[\filedate Hangul Typography for (x)oblivoir] \typeout{Hangul Typography for (x)oblivoir} @@ -76,19 +76,24 @@ \DeclareOption{nowinname}{\PassOptionsToPackage{\CurrentOption}{xetexko-var}} \DeclareOption{unfonts}{\PassOptionsToPackage{\CurrentOption}{xetexko-var}} \DeclareOption{nounfonts}{\PassOptionsToPackage{\CurrentOption}{xetexko-var}} +\DeclareOption{nanum}{\PassOptionsToPackage{\CurrentOption}{xetexko-var}} +\DeclareOption{hcr}{\PassOptionsToPackage{\CurrentOption}{xetexko-var}} \else\ifluatex %%% luatexko options -\DeclareOption{gremph}{\PassOptionsToPackage{\CurrentOption}{luatexko-xobfont}} -\DeclareOption{itemph}{\PassOptionsToPackage{\CurrentOption}{luatexko-xobfont}} +\DeclareOption{gremph}{\PassOptionsToPackage{\CurrentOption}{xob-font}} +\DeclareOption{itemph}{\PassOptionsToPackage{\CurrentOption}{xob-font}} %%% new option -\DeclareOption{latinquote}{\PassOptionsToPackage{\CurrentOption}{luatexko-xobfont}} -\DeclareOption{oldhangul}{\PassOptionsToPackage{\CurrentOption}{luatexko-xobfont}} -\DeclareOption{manualfontspec}{\PassOptionsToPackage{\CurrentOption}{luatexko-xobfont}} -\DeclareOption{nowinname}{\PassOptionsToPackage{\CurrentOption}{luatexko-xobfont}} -\DeclareOption{unfonts}{\PassOptionsToPackage{\CurrentOption}{luatexko-xobfont}} -\DeclareOption{nounfonts}{\PassOptionsToPackage{\CurrentOption}{luatexko-xobfont}} +\DeclareOption{latinquote}{\PassOptionsToPackage{\CurrentOption}{xob-font}} +\DeclareOption{oldhangul}{\PassOptionsToPackage{\CurrentOption}{xob-font}} +\DeclareOption{manualfontspec}{\PassOptionsToPackage{\CurrentOption}{xob-font}} +\DeclareOption{nowinname}{\PassOptionsToPackage{\CurrentOption}{xob-font}} +\DeclareOption{unfonts}{\PassOptionsToPackage{\CurrentOption}{xob-font}} +\DeclareOption{nounfonts}{\PassOptionsToPackage{\CurrentOption}{xob-font}} +\DeclareOption{nanum}{\PassOptionsToPackage{\CurrentOption}{xob-font}} +\DeclareOption{hcr}{\PassOptionsToPackage{\CurrentOption}{xob-font}} \else %%% pdftex options +\ifPDFTeX \DeclareOption{gremph}{\DisabledOption{gremph}} \DeclareOption{itemph}{\DisabledOption{itemph}} \DeclareOption{latinquote}{\DisabledOption{latinquote}} @@ -97,6 +102,9 @@ \DeclareOption{nowinname}{\DisabledOption{nowinname}} \DeclareOption{unfonts}{\DisabledOption{unfonts}} \DeclareOption{nounfonts}{\DisabledOption{nounfonts}} +\DeclareOption{nanum}{\DisabledOption{nanum}} +\DeclareOption{hcr}{\DisabledOption{hcr}} +\fi \fi\fi %%% figtabcapt @@ -109,11 +117,11 @@ \DeclareOption{uset1font}{\PassOptionsToPackage{usecjkt1font}{cjkutf8-ko}} \DeclareOption{usedotemph}{\PassOptionsToPackage{\CurrentOption}{cjkutf8-ko}} -\ProcessOptions +\ProcessOptions \relax \ifluatex \RequirePackage{luatexko} - \RequirePackage{luatexko-xobfont} + \RequirePackage{xob-font} \RequirePackage{xob-dotemph} \else\ifxetex \RequirePackage{xetexko-var} @@ -347,7 +355,7 @@ % 2012/11/29 : \pdfstringdefDisableCommands % 2012/11/22 : [figtabcapt] opton introduced % 2012/11/01 : avoid error in \cnm, \ccnm etc. -% 2012/07/12 : introduce luatexko-xobfont +% 2012/07/12 : introduce xob-font % 2011/09/15 : changes according to xoblivoir % 2010/09/16 : cntrdot, adjustmath % 2009/05/11 : protect bnm commands diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xetexko-var.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xetexko-var.sty index 2aaf1e8b97d..27768dbda6c 100644 --- a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xetexko-var.sty +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xetexko-var.sty @@ -1,6 +1,6 @@ %% xetexko-var.sty %% -%% Copyright (c) 2007-2013 Kangsoo Kim <karnes at ktug org> +%% Copyright (c) 2007-2014 Kangsoo Kim <karnes at ktug org> %% Copyright (c) 2013 Kihwang Lee <leekh at ktug org> %% %% This work may be distributed and/or modified under the @@ -17,14 +17,14 @@ %% 2013.08.26 %% \ProvidesPackage{xetexko-var} - [2013/08/26 v0.12 Korean Typesetting under XeTeX] + [2014/06/12 v0.13 Korean Typesetting under XeTeX] %%% common options for xob-font -\DeclareOption{gremph}{\PassOptionsToPackage{\CurrentOption}{xetexko-xobfont}} -\DeclareOption{itemph}{\PassOptionsToPackage{\CurrentOption}{xetexko-xobfont}} -\DeclareOption{oldhangul}{\PassOptionsToPackage{\CurrentOption}{xetexko-xobfont}} -\DeclareOption{latinquote}{\PassOptionsToPackage{\CurrentOption}{xetexko-xobfont}} -\DeclareOption{nowinname}{\PassOptionsToPackage{\CurrentOption}{xetexko-xobfont}} +\DeclareOption{gremph}{\PassOptionsToPackage{\CurrentOption}{xob-font}} +\DeclareOption{itemph}{\PassOptionsToPackage{\CurrentOption}{xob-font}} +\DeclareOption{oldhangul}{\PassOptionsToPackage{\CurrentOption}{xob-font}} +\DeclareOption{latinquote}{\PassOptionsToPackage{\CurrentOption}{xob-font}} +\DeclareOption{nowinname}{\PassOptionsToPackage{\CurrentOption}{xob-font}} %%% for kolabels \newif\if@hangul \newif\if@hanja @@ -35,8 +35,10 @@ \DeclareOption{manualfontspec}{\@extfontspectrue} %%% unfonts -\DeclareOption{unfonts}{\PassOptionsToPackage{\CurrentOption}{xetexko-xobfont}} -\DeclareOption{nounfonts}{\PassOptionsToPackage{\CurrentOption}{xetexko-xobfont}} +\DeclareOption{unfonts}{\PassOptionsToPackage{\CurrentOption}{xob-font}} +\DeclareOption{nounfonts}{\PassOptionsToPackage{\CurrentOption}{xob-font}} +\DeclareOption{nanum}{\PassOptionsToPackage{\CurrentOption}{xob-font}} +\DeclareOption{hcr}{\PassOptionsToPackage{\CurrentOption}{xob-font}} \ProcessOptions\relax %%% xetexko sub-styles @@ -49,10 +51,11 @@ \RequirePackage{xob-hyper} \if@extfontspec - \PackageWarning{xetexko-var}{Load xetexko-xobfont and configure Korean Fonts manually!}{} - \RequirePackage{xetexko-font} + \PackageWarning{xetexko-var}{Load xetexko-font and configure Korean Fonts manually!}{} \else - \RequirePackage{xetexko-xobfont} +%%% We will never use xetexko/luatexko's unfonts option. + \newif\if@unfonts\@unfontsfalse + \RequirePackage{xob-font} \fi \RequirePackage{kolabels-utf} @@ -60,6 +63,7 @@ \endinput +%%% 2014-06-12: new xob-font.sty %%% 2013-09-27, nounfonts. %%% 오후 3:22 2008-11-16 %%% 오후 17:59 2008-12-03 : nowinname 옵션 추가 diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xetexko-xobfont.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xetexko-xobfont.sty deleted file mode 100644 index abe3c7e1885..00000000000 --- a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xetexko-xobfont.sty +++ /dev/null @@ -1,1060 +0,0 @@ -%% xetexko-xobfont.sty -%% -%% Copyright (c) 2007-2013 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. -%% -%% a variant of xetexko-font.sty -% -\ifdefined\ProvidesPackage - \ProvidesPackage{xetexko-xobfont}[2014/05/12 v0.77 Korean font definition in conjunction with xetexko-space, a variant] -\fi - -\@ifpackageloaded{xetexko-space}{}{% - \PackageError{xetexko-xob}{xetexko-space must be loaded before}{}% -} - -\newif\if@latinquote\@latinquotefalse -\DeclareOption{latinquote}{\@latinquotetrue} -\newif\if@oldhangul\@oldhangulfalse -\DeclareOption{oldhangul}{\@oldhangultrue} -\newif\if@gremph\@gremphtrue -\DeclareOption{gremph}{\@gremphtrue} -\DeclareOption{itemph}{\@gremphfalse} -\newif\if@nowin\@nowinfalse -\DeclareOption{nowinname}{\@nowintrue} - -\newif\if@unfonts\@unfontsfalse -\DeclareOption{unfonts}{\@unfontstrue} -\DeclareOption{nounfonts}{\@unfontsfalse} -\newif\if@nanumfonts\@nanumfontsfalse -\DeclareOption{nanum}{\@nanumfontstrue} - -\ProcessOptions - -\RequirePackage{xetexko-font} - -\if@oldhangul - \def\XKOV@oldhangulscript{Script=Hangul} - \def\XKOV@oldhangullanguage{Language=Korean} - \def\XKOV@oldhangulfeatures{RawFeature=+ccmp;+ljmo;+vjmo;+tjmo} -\else - \def\XKOV@oldhangulscript{} - \def\XKOV@oldhangullanguage{} - \def\XKOV@oldhangulfeatures{} -\fi - -\if@gremph - \def\XKOV@italicfeatures{} - \def\XKOV@bolditalicfeatures{RawFeature={embolden=2}} - \def\XKOV@boldfeatures{RawFeature={embolden=2}} -\else - \def\XKOV@italicfeatures{RawFeature={slant=0.17}} - \def\XKOV@bolditalicfeatures{RawFeature={embolden=2;slant=0.17}} - \def\XKOV@boldfeatures{RawFeature={embolden=2}} -\fi - -\newcommand\setmonoscale[1]{% - \def\XKOV@monoscale{#1}% -} -\setmonoscale{1.05} - -%%% 괄호 재설정 -%\if@latinquote -% \XeTeXcharclass "2018 = 4 % ‘ -% \XeTeXcharclass "201C = 4 % “ -% \XeTeXcharclass "2019 = 5 % ’ -% \XeTeXcharclass "201D = 5 % ” -%\else -% \XeTeXcharclass "2018 = 2 % ‘ -% \XeTeXcharclass "201C = 2 % “ -% \XeTeXcharclass "2019 = 3 % ’ -% \XeTeXcharclass "201D = 3 % ” -%\fi - -%%% 한글 기호 문자 일부. xkospace에 정의되지 않은 것. -%%% 추후 삭제할 수 있는 코드. -%%% ※… = class 1 (한자) -%\XeTeXcharclass "007D = 7 %… class 7 ("AC00) -%%\count255 = "203B -%%\loop \XeTeXcharclass\count255 = 1 -%% \ifnum\count255 < "24EA -%% \advance\count255 1 \repeat -%%\count255 = "3200 -%%\loop \XeTeXcharclass\count255 = 1 -%% \ifnum\count255 < "33DE -%% \advance\count255 1 \repeat -%%\count255 = "25A0 -%%\loop \XeTeXcharclass\count255 = 1 -%% \ifnum\count255 < "266E -%% \advance\count255 1 \repeat - -% \XeTeXcharclass "223C = 1 % ∼ - -%% 한글폰트 지정하기 : -\@ifpackageloaded{xltxtra}{}{\RequirePackage{xltxtra}} - \def\CallKorFont#1{% - \expandafter\newfontfamily\csname kor#1font\endcsname[\XKOV@externallocation,% - BoldFont=\csname XKOV@kor#1@bold\endcsname,% - ItalicFont=\csname XKOV@kor#1@italic\endcsname,% - ItalicFeatures={\XKOV@italicfeatures},% - BoldItalicFont=\csname XKOV@kor#1@bolditalic\endcsname,% - BoldItalicFeatures={\XKOV@italicfeatures},% -% Script=Hangul,% -% Language=Korean,% -% RawFeature=+ccmp;+ljmo;+vjmo;+tjmo - \XKOV@oldhangulscript,\XKOV@oldhangullanguage,% - \XKOV@oldhangulfeatures - ]% - {\csname XKOV@kor#1@regular\endcsname}% - } -%%%%%%%%% mono 폰트는 특별하게 취급한다. - \def\CallKorFontmono{% - \newfontfamily\kormonofont[\XKOV@externallocation,% - BoldFont=\XKOV@kormono@bold,% - BoldFeatures={\XKOV@boldfeatures},% - ItalicFont=\XKOV@kormono@italic,% - ItalicFeatures={\XKOV@italicfeatures},% - BoldItalicFont=\XKOV@kormono@bolditalic,% - BoldItalicFeatures={\XKOV@bolditalicfeatures},% - Scale=\XKOV@monoscale]% - {\XKOV@kormono@regular} - } -% \newfontfamily\korvertfont[ExternalLocation, -% BoldFont=UnBatang, -% BoldFeatures={RawFeature={embolden=2}}, -% ItalicFont=UnBatang, -% ItalicFeatures={RawFeature={slant=0.17}}, -% BoldItalicFont=UnBatang, -% BoldItalicFeatures={RawFeature={embolden=2;slant=0.17}}, -% Script=Hangul, -% Language=Korean, -% Vertical=RotatedGlyphs] -% {UnBatang} - \def\CallHnjFont#1{% - \expandafter\newfontfamily\csname hnj#1font\endcsname[\XKOV@externallocation,% - BoldFont=\csname XKOV@hnj#1@bold\endcsname,% - ItalicFont=\csname XKOV@hnj#1@italic\endcsname,% - ItalicFeatures={\XKOV@italicfeatures},% - BoldItalicFont=\csname XKOV@hnj#1@bolditalic\endcsname,% - BoldItalicFeatures={\XKOV@italicfeatures},% -% Script=Hangul,% -% Language=Korean,% -% RawFeature=+ccmp;+ljmo;+vjmo;+tjmo - \XKOV@oldhangulscript,\XKOV@oldhangullanguage,% - \XKOV@oldhangulfeatures - ]% - {\csname XKOV@hnj#1@regular\endcsname}% - } - \def\CallHnjFontmono{% - \newfontfamily\hnjmonofont[\XKOV@externallocation,% - BoldFont=\XKOV@hnjmono@bold,% - BoldFeatures={\XKOV@boldfeatures},% - ItalicFont=\XKOV@hnjmono@italic,% - ItalicFeatures={\XKOV@italicfeatures},% - BoldItalicFont=\XKOV@hnjmono@bolditalic,% - BoldItalicFeatures={\XKOV@bolditalicfeatures},% - Scale=\XKOV@monoscale - ]% - {\XKOV@hnjmono@regular} - } - \def\CallHnjDefault{% - \let\hnjmainfont\kormainfont - \let\hnjsansfont\korsansfont - \let\hnjmonofont\korsansfont - } - -%%% 사용자 명령 -%%% from here, Karnes writes: - -\RequirePackage{twoopt} -\newif\if@korfnt@external\@korfnt@externaltrue -\newif\if@XKOV@extendcommand\@XKOV@extendcommandfalse - -\let\XKOV@XP\expandafter - -%%%%%%%%%%%%%%%%%%%%%% main -%%% 아무래도 잊어버릴 듯해서... -%%% 다음 네 가지는 xetexko-font의 방식 -%%% \setkormainfont{FontName} -%%% \setkormainfont[Options]{FontName} -%%% \setkormainfont{FontName}[Hanja_Opt]{FontName} -%%% \setkormainfont[Options]{FontName}[Hanja_Opt]{FontName} -%%% xoblivoir 방식은 -%%% \setkormainfont*{FontName} -%%% \setkormainfont(Bold)(Italic){FontName} -%%% \setkormainfont*(Bold)(Italic){FontName} -%%% \setkormainfont(Bold)(Italic){FontName}(Bold)(Italic){FontName} -%%% \setkormainfont*(Bold)(Italic){FontName}(Bold)(Italic){FontName} -%%% (Bold)(Italic)은 optional. -%%% -\def\setkormainfont{% - \@ifnextchar[\setkormainATYPE{% - \@ifnextchar(\setkormainBTYPE{% - \@ifnextchar*\setkormainCTYPE\setkormainDTYPE}}% -} - -\def\setkormainATYPE[#1]#2{% - \gdef\@ATYPEopt@ne{#1}% - \gdef\@ATYPEarg@ne{#2}% - \@ifnextchar[\setkormainATYPEA\setkormainATYPEB -} - -\def\setkormainATYPEA[#1]#2{% - \XKOV@XP\setmainhangulfont\XKOV@XP[\@ATYPEopt@ne]{\@ATYPEarg@ne}% - \setmainhanjafont[#1]{#2}% -} - -\def\setkormainATYPEB{% - \XKOV@XP\setmainhangulfont\XKOV@XP[\@ATYPEopt@ne]{\@ATYPEarg@ne}% -} - -\def\setkormainDTYPE#1{% - \gdef\@ATYPEarg@ne{#1}% - \@ifnextchar[\setkormainDTYPEA\setkormainDTYPEB -} - -\def\setkormainDTYPEA[#1]#2{% - \setmainhangulfont{\@AgTYPEarg@ne}% - \setmainhanjafont[#1]{#2}% -} - -\def\setkormainDTYPEB{% - \setmainhangulfont{\@ATYPEarg@ne}% -} - -\def\setkormainBTYPE(#1){% - \long\gdef\@BTYPEopt@ne{#1}% - \@ifnextchar(\setkormainBTYPEA\setkormainBTYPEB -} - -\def\setkormainBTYPEA(#1)#2{% - \long\gdef\@BTYPEopttw@{#1}% - \long\gdef\@BTYPEarg@ne{#2}% - \@ifnextchar(\setkormainBTYPEC\setkormainBTYPED -} - -\def\setkormainBTYPEB#1{% - \gdef\@BTYPEarg@ne{#1}% - \@ifnextchar(\setkormainBTYPEBA\setkormainBTYPEBB -} - -\def\setkormainBTYPEBB{% - \s@tk@rm@inf@nt[\@BTYPEopt@ne]{\@BTYPEarg@ne}% -} - -\def\setkormainBTYPEBA({% - \@ifnextchar)\setkormainBTYPEBNO\setkormainBTYPEBYES -} - -\def\setkormainBTYPEBNO)#1{% - \s@tk@rm@inf@nt[\@BTYPEopt@ne]{\@BTYPEarg@ne}% - []{#1}% -} - -\def\setkormainBTYPEBYES#1){% - \gdef\@BTYPEoptthr@@{#1}% - \@ifnextchar(\setkormainBTYPEBE\setkormainBTYPEBF -} - -\def\setkormainBTYPEBE(#1)#2{% - \gdef\@BTYPEoptf@ur{#1}% - \s@tk@rm@inf@nt[\@BTYPEopt@ne]{\@BTYPEarg@ne}% - [\@BTYPEoptthr@@][\@BTYPEoptf@ur]{#2}% -} - -\def\setkormainBTYPEBF#1{% - \s@tk@rm@inf@nt[\@BTYPEopt@ne]{\@BTYPEarg@ne}% - [\@BTYPEoptthr@@]{#1}% -} - -\def\setkormainBTYPEC({% - \@ifnextchar)\setkormainBTYPECNO\setkormainBTYPECYES -} - -\def\setkormainBTYPED{% - \s@tk@rm@inf@nt[\@BTYPEopt@ne][\@BTYPEopttw@]{\@BTYPEarg@ne}% -} - -\def\setkormainBTYPECNO)#1{% - \s@tk@rm@inf@nt[\@BTYPEopt@ne][\@BTYPEopttw@]{\@BTYPEarg@ne}% - []{#1}% -} - -\def\setkormainBTYPECYES#1){% - \gdef\@BTYPEoptthr@@{#1}% - \@ifnextchar(\setkormainBTYPEE\setkormainBTYPEF -} - -\def\setkormainBTYPEE(#1)#2{% - \gdef\@BTYPEoptf@ur{#1}% - \s@tk@rm@inf@nt[\@BTYPEopt@ne][\@BTYPEopttw@]{\@BTYPEarg@ne}% - [\@BTYPEoptthr@@][\@BTYPEoptf@ur]{#2}% -} - -\def\setkormainBTYPEF#1{% - \s@tk@rm@inf@nt[\@BTYPEopt@ne][\@BTYPEopttw@]{\@BTYPEarg@ne}% - [\@BTYPEoptthr@@]{#1}% -} - -\def\setkormainCTYPE*{ - \@ifnextchar(\setkormainCTYPEALPHA\setkormainCTYPEBETA -} - -\def\setkormainCTYPEBETA#1{% - \s@tk@rm@inf@nt*{#1}% -} - -\def\setkormainCTYPEALPHA(#1){% - \gdef\@CTYPEopt@ne{#1}% - \@ifnextchar(\setkormainCTYPEA\setkormainCTYPEB -} - -\def\setkormainCTYPEA(#1)#2{% - \gdef\@CTYPEopttw@{#1}% - \gdef\@CTYPEarg@ne{#2}% - \@ifnextchar(\setkormainCTYPEC\setkormainCTYPED -} - -\def\setkormainCTYPEB#1{% - \gdef\@CTYPEarg@ne{#1}% - \@ifnextchar(\setkormainCTYPEBA\setkormainCTYPEBB -} - -\def\setkormainCTYPEBB{% - \s@tk@rm@inf@nt*[\@CTYPEopt@ne]{\@CTYPEarg@ne}% -} - -\def\setkormainCTYPEBA({% - \@ifnextchar)\setkormainCTYPEBNO\setkormainCTYPEBYES -} - -\def\setkormainCTYPEBNO)#1{% - \s@tk@rm@inf@nt*[\@CTYPEopt@ne]{\@CTYPEarg@ne}% - []{#1}% -} - -\def\setkormainCTYPEBYES#1){% - \gdef\@CTYPEoptthr@@{#1}% - \@ifnextchar(\setkormainCTYPEBE\setkormainCTYPEBF -} - -\def\setkormainCTYPEBE(#1)#2{% - \gdef\@CTYPEoptf@ur{#1}% - \s@tk@rm@inf@nt*[\@CTYPEopt@ne]{\@CTYPEarg@ne}% - [\@CTYPEoptthr@@][\@CTYPEoptf@ur]{#2}% -} - -\def\setkormainCTYPEBF#1{% - \s@tk@rm@inf@nt*[\@CTYPEopt@ne]{\@CTYPEarg@ne}% - [\@CTYPEoptthr@@]{#1}% -} - -\def\setkormainCTYPEC({% - \@ifnextchar)\setkormainCTYPECNO\setkormainCTYPECYES -} - -\def\setkormainCTYPED{% - \s@tk@rm@inf@nt*[\@CTYPEopt@ne][\@CTYPEopttw@]{\@CTYPEarg@ne}% -} - -\def\setkormainCTYPECNO)#1{% - \s@tk@rm@inf@nt*[\@CTYPEopt@ne][\@CTYPEopttw@]{\@CTYPEarg@ne}% - []{#1}% -} - -\def\setkormainCTYPECYES#1){% - \gdef\@CTYPEoptthr@@{#1}% - \@ifnextchar(\setkormainCTYPEE\setkormainCTYPEF -} - -\def\setkormainCTYPEE(#1)#2{% - \gdef\@CTYPEoptf@ur{#1}% - \s@tk@rm@inf@nt*[\@CTYPEopt@ne][\@CTYPEopttw@]{\@CTYPEarg@ne}% - [\@CTYPEoptthr@@][\@CTYPEoptf@ur]{#2}% -} - -\def\setkormainCTYPEF#1{% - \s@tk@rm@inf@nt*[\@CTYPEopt@ne][\@CTYPEopttw@]{\@CTYPEarg@ne}% - [\@CTYPEoptthr@@]{#1}% -} - -%%%%%%%%%%%%%%%%%%%%%%%% - -\def\setkorsansfont{% - \@ifnextchar[\setkorsansATYPE{% - \@ifnextchar(\setkorsansBTYPE{% - \@ifnextchar*\setkorsansCTYPE\setkorsansDTYPE}}% -} - -\def\setkorsansATYPE[#1]#2{% - \gdef\@ATYPEopt@ne{#1}% - \gdef\@ATYPEarg@ne{#2}% - \@ifnextchar[\setkorsansATYPEA\setkorsansATYPEB -} - -\def\setkorsansATYPEA[#1]#2{% - \XKOV@XP\setsanshangulfont\XKOV@XP[\@ATYPEopt@ne]{\@ATYPEarg@ne}% - \setsanshanjafont[#1]{#2}% -} - -\def\setkorsansATYPEB{% - \XKOV@XP\setsanshangulfont\XKOV@XP[\@ATYPEopt@ne]{\@ATYPEarg@ne}% -} - -\def\setkorsansDTYPE#1{% - \gdef\@ATYPEarg@ne{#1}% - \@ifnextchar[\setkorsansDTYPEA\setkorsansDTYPEB -} - -\def\setkorsansDTYPEA[#1]#2{% - \setsanshangulfont{\@ATYPEarg@ne}% - \setsanshanjafont[#1]{#2}% -} - -\def\setkorsansDTYPEB{% - \setsanshangulfont{\@ATYPEarg@ne}% -} - -\def\setkorsansBTYPE(#1){% - \long\gdef\@BTYPEopt@ne{#1}% - \@ifnextchar(\setkorsansBTYPEA\setkorsansBTYPEB -} - -\def\setkorsansBTYPEA(#1)#2{% - \long\gdef\@BTYPEopttw@{#1}% - \long\gdef\@BTYPEarg@ne{#2}% - \@ifnextchar(\setkorsansBTYPEC\setkorsansBTYPED -} - -\def\setkorsansBTYPEB#1{% - \gdef\@BTYPEarg@ne{#1}% - \@ifnextchar(\setkorsansBTYPEBA\setkorsansBTYPEBB -} - -\def\setkorsansBTYPEBB{% - \s@tk@rs@nsf@nt[\@BTYPEopt@ne]{\@BTYPEarg@ne}% -} - -\def\setkorsansBTYPEBA({% - \@ifnextchar)\setkorsansBTYPEBNO\setkorsansBTYPEBYES -} - -\def\setkorsansBTYPEBNO)#1{% - \s@tk@rs@nsf@nt[\@BTYPEopt@ne]{\@BTYPEarg@ne}% - []{#1}% -} - -\def\setkorsansBTYPEBYES#1){% - \gdef\@BTYPEoptthr@@{#1}% - \@ifnextchar(\setkorsansBTYPEBE\setkorsansBTYPEBF -} - -\def\setkorsansBTYPEBE(#1)#2{% - \gdef\@BTYPEoptf@ur{#1}% - \s@tk@rs@nsf@nt[\@BTYPEopt@ne]{\@BTYPEarg@ne}% - [\@BTYPEoptthr@@][\@BTYPEoptf@ur]{#2}% -} - -\def\setkorsansBTYPEBF#1{% - \s@tk@rs@nsf@nt[\@BTYPEopt@ne]{\@BTYPEarg@ne}% - [\@BTYPEoptthr@@]{#1}% -} - -\def\setkorsansBTYPEC({% - \@ifnextchar)\setkorsansBTYPECNO\setkorsansBTYPECYES -} - -\def\setkorsansBTYPED{% - \s@tk@rs@nsf@nt[\@BTYPEopt@ne][\@BTYPEopttw@]{\@BTYPEarg@ne}% -} - -\def\setkorsansBTYPECNO)#1{% - \s@tk@rs@nsf@nt[\@BTYPEopt@ne][\@BTYPEopttw@]{\@BTYPEarg@ne}% - []{#1}% -} - -\def\setkorsansBTYPECYES#1){% - \gdef\@BTYPEoptthr@@{#1}% - \@ifnextchar(\setkorsansBTYPEE\setkorsansBTYPEF -} - -\def\setkorsansBTYPEE(#1)#2{% - \gdef\@BTYPEoptf@ur{#1}% - \s@tk@rs@nsf@nt[\@BTYPEopt@ne][\@BTYPEopttw@]{\@BTYPEarg@ne}% - [\@BTYPEoptthr@@][\@BTYPEoptf@ur]{#2}% -} - -\def\setkorsansBTYPEF#1{% - \s@tk@rs@nsf@nt[\@BTYPEopt@ne][\@BTYPEopttw@]{\@BTYPEarg@ne}% - [\@BTYPEoptthr@@]{#1}% -} - -\def\setkorsansCTYPE*{ - \@ifnextchar(\setkorsansCTYPEALPHA\setkorsansCTYPEBETA -} - -\def\setkorsansCTYPEBETA#1{% - \s@tk@rs@nsf@nt*{#1}% -} - -\def\setkorsansCTYPEALPHA(#1){% - \gdef\@CTYPEopt@ne{#1}% - \@ifnextchar(\setkorsansCTYPEA\setkorsansCTYPEB -} - -\def\setkorsansCTYPEA(#1)#2{% - \gdef\@CTYPEopttw@{#1}% - \gdef\@CTYPEarg@ne{#2}% - \@ifnextchar(\setkorsansCTYPEC\setkorsansCTYPED -} - -\def\setkorsansCTYPEB#1{% - \gdef\@CTYPEarg@ne{#1}% - \@ifnextchar(\setkorsansCTYPEBA\setkorsansCTYPEBB -} - -\def\setkorsansCTYPEBB{% - \s@tk@rs@nsf@nt*[\@CTYPEopt@ne]{\@CTYPEarg@ne}% -} - -\def\setkorsansCTYPEBA({% - \@ifnextchar)\setkorsansCTYPEBNO\setkorsansCTYPEBYES -} - -\def\setkorsansCTYPEBNO)#1{% - \s@tk@rs@nsf@nt*[\@CTYPEopt@ne]{\@CTYPEarg@ne}% - []{#1}% -} - -\def\setkorsansCTYPEBYES#1){% - \gdef\@CTYPEoptthr@@{#1}% - \@ifnextchar(\setkorsansCTYPEBE\setkorsansCTYPEBF -} - -\def\setkorsansCTYPEBE(#1)#2{% - \gdef\@CTYPEoptf@ur{#1}% - \s@tk@rs@nsf@nt*[\@CTYPEopt@ne]{\@CTYPEarg@ne}% - [\@CTYPEoptthr@@][\@CTYPEoptf@ur]{#2}% -} - -\def\setkorsansCTYPEBF#1{% - \s@tk@rs@nsf@nt*[\@CTYPEopt@ne]{\@CTYPEarg@ne}% - [\@CTYPEoptthr@@]{#1}% -} - -\def\setkorsansCTYPEC({% - \@ifnextchar)\setkorsansCTYPECNO\setkorsansCTYPECYES -} - -\def\setkorsansCTYPED{% - \s@tk@rs@nsf@nt*[\@CTYPEopt@ne][\@CTYPEopttw@]{\@CTYPEarg@ne}% -} - -\def\setkorsansCTYPECNO)#1{% - \s@tk@rs@nsf@nt*[\@CTYPEopt@ne][\@CTYPEopttw@]{\@CTYPEarg@ne}% - []{#1}% -} - -\def\setkorsansCTYPECYES#1){% - \gdef\@CTYPEoptthr@@{#1}% - \@ifnextchar(\setkorsansCTYPEE\setkorsansCTYPEF -} - -\def\setkorsansCTYPEE(#1)#2{% - \gdef\@CTYPEoptf@ur{#1}% - \s@tk@rs@nsf@nt*[\@CTYPEopt@ne][\@CTYPEopttw@]{\@CTYPEarg@ne}% - [\@CTYPEoptthr@@][\@CTYPEoptf@ur]{#2}% -} - -\def\setkorsansCTYPEF#1{% - \s@tk@rs@nsf@nt*[\@CTYPEopt@ne][\@CTYPEopttw@]{\@CTYPEarg@ne}% - [\@CTYPEoptthr@@]{#1}% -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\def\setkormonofont{% - \@ifnextchar[\setkormonoATYPE{% - \@ifnextchar(\setkormonoBTYPE{% - \@ifnextchar*\setkormonoCTYPE\setkormonoDTYPE}}% -} - -\def\setkormonoATYPE[#1]#2{% - \gdef\@ATYPEopt@ne{#1}% - \gdef\@ATYPEarg@ne{#2}% - \@ifnextchar[\setkormonoATYPEA\setkormonoATYPEB -} - -\def\setkormonoATYPEA[#1]#2{% - \XKOV@XP\setmonohangulfont\XKOV@XP[\@ATYPEopt@ne]{\@ATYPEarg@ne}% - \setmonohanjafont[#1]{#2}% -} - -\def\setkormonoATYPEB{% - \XKOV@XP\setmonohangulfont\XKOV@XP[\@ATYPEopt@ne]{\@ATYPEarg@ne}% -} - -\def\setkormonoDTYPE#1{% - \gdef\@ATYPEarg@ne{#1}% - \@ifnextchar[\setkormonoDTYPEA\setkormonoDTYPEB -} - -\def\setkormonoDTYPEA[#1]#2{% - \setmonohangulfont{\@ATYPEarg@ne}% - \setmonohanjafont[#1]{#2}% -} - -\def\setkormonoDTYPEB{% - \setmonohangulfont{\@ATYPEarg@ne}% -} - -\def\setkormonoBTYPE(#1){% - \long\gdef\@BTYPEopt@ne{#1}% - \@ifnextchar(\setkormonoBTYPEA\setkormonoBTYPEB -} - -\def\setkormonoBTYPEA(#1)#2{% - \long\gdef\@BTYPEopttw@{#1}% - \long\gdef\@BTYPEarg@ne{#2}% - \@ifnextchar(\setkormonoBTYPEC\setkormonoBTYPED -} - -\def\setkormonoBTYPEB#1{% - \gdef\@BTYPEarg@ne{#1}% - \@ifnextchar(\setkormonoBTYPEBA\setkormonoBTYPEBB -} - -\def\setkormonoBTYPEBB{% - \s@tk@rm@n@f@nt[\@BTYPEopt@ne]{\@BTYPEarg@ne}% -} - -\def\setkormonoBTYPEBA({% - \@ifnextchar)\setkormonoBTYPEBNO\setkormonoBTYPEBYES -} - -\def\setkormonoBTYPEBNO)#1{% - \s@tk@rm@n@f@nt[\@BTYPEopt@ne]{\@BTYPEarg@ne}% - []{#1}% -} - -\def\setkormonoBTYPEBYES#1){% - \gdef\@BTYPEoptthr@@{#1}% - \@ifnextchar(\setkormonoBTYPEBE\setkormonoBTYPEBF -} - -\def\setkormonoBTYPEBE(#1)#2{% - \gdef\@BTYPEoptf@ur{#1}% - \s@tk@rm@n@f@nt[\@BTYPEopt@ne]{\@BTYPEarg@ne}% - [\@BTYPEoptthr@@][\@BTYPEoptf@ur]{#2}% -} - -\def\setkormonoBTYPEBF#1{% - \s@tk@rm@n@f@nt[\@BTYPEopt@ne]{\@BTYPEarg@ne}% - [\@BTYPEoptthr@@]{#1}% -} - -\def\setkormonoBTYPEC({% - \@ifnextchar)\setkormonoBTYPECNO\setkormonoBTYPECYES -} - -\def\setkormonoBTYPED{% - \s@tk@rm@n@f@nt[\@BTYPEopt@ne][\@BTYPEopttw@]{\@BTYPEarg@ne}% -} - -\def\setkormonoBTYPECNO)#1{% - \s@tk@rm@n@f@nt[\@BTYPEopt@ne][\@BTYPEopttw@]{\@BTYPEarg@ne}% - []{#1}% -} - -\def\setkormonoBTYPECYES#1){% - \gdef\@BTYPEoptthr@@{#1}% - \@ifnextchar(\setkormonoBTYPEE\setkormonoBTYPEF -} - -\def\setkormonoBTYPEE(#1)#2{% - \gdef\@BTYPEoptf@ur{#1}% - \s@tk@rm@n@f@nt[\@BTYPEopt@ne][\@BTYPEopttw@]{\@BTYPEarg@ne}% - [\@BTYPEoptthr@@][\@BTYPEoptf@ur]{#2}% -} - -\def\setkormonoBTYPEF#1{% - \s@tk@rm@n@f@nt[\@BTYPEopt@ne][\@BTYPEopttw@]{\@BTYPEarg@ne}% - [\@BTYPEoptthr@@]{#1}% -} - -\def\setkormonoCTYPE*{ - \@ifnextchar(\setkormonoCTYPEALPHA\setkormonoCTYPEBETA -} - -\def\setkormonoCTYPEBETA#1{% - \s@tk@rm@n@f@nt*{#1}% -} - -\def\setkormonoCTYPEALPHA(#1){% - \gdef\@CTYPEopt@ne{#1}% - \@ifnextchar(\setkormonoCTYPEA\setkormonoCTYPEB -} - -\def\setkormonoCTYPEA(#1)#2{% - \gdef\@CTYPEopttw@{#1}% - \gdef\@CTYPEarg@ne{#2}% - \@ifnextchar(\setkormonoCTYPEC\setkormonoCTYPED -} - -\def\setkormonoCTYPEB#1{% - \gdef\@CTYPEarg@ne{#1}% - \@ifnextchar(\setkormonoCTYPEBA\setkormonoCTYPEBB -} - -\def\setkormonoCTYPEBB{% - \s@tk@rm@n@f@nt*[\@CTYPEopt@ne]{\@CTYPEarg@ne}% -} - -\def\setkormonoCTYPEBA({% - \@ifnextchar)\setkormonoCTYPEBNO\setkormonoCTYPEBYES -} - -\def\setkormonoCTYPEBNO)#1{% - \s@tk@rm@n@f@nt*[\@CTYPEopt@ne]{\@CTYPEarg@ne}% - []{#1}% -} - -\def\setkormonoCTYPEBYES#1){% - \gdef\@CTYPEoptthr@@{#1}% - \@ifnextchar(\setkormonoCTYPEBE\setkormonoCTYPEBF -} - -\def\setkormonoCTYPEBE(#1)#2{% - \gdef\@CTYPEoptf@ur{#1}% - \s@tk@rm@n@f@nt*[\@CTYPEopt@ne]{\@CTYPEarg@ne}% - [\@CTYPEoptthr@@][\@CTYPEoptf@ur]{#2}% -} - -\def\setkormonoCTYPEBF#1{% - \s@tk@rm@n@f@nt*[\@CTYPEopt@ne]{\@CTYPEarg@ne}% - [\@CTYPEoptthr@@]{#1}% -} - -\def\setkormonoCTYPEC({% - \@ifnextchar)\setkormonoCTYPECNO\setkormonoCTYPECYES -} - -\def\setkormonoCTYPED{% - \s@tk@rm@n@f@nt*[\@CTYPEopt@ne][\@CTYPEopttw@]{\@CTYPEarg@ne}% -} - -\def\setkormonoCTYPECNO)#1{% - \s@tk@rm@n@f@nt*[\@CTYPEopt@ne][\@CTYPEopttw@]{\@CTYPEarg@ne}% - []{#1}% -} - -\def\setkormonoCTYPECYES#1){% - \gdef\@CTYPEoptthr@@{#1}% - \@ifnextchar(\setkormonoCTYPEE\setkormonoCTYPEF -} - -\def\setkormonoCTYPEE(#1)#2{% - \gdef\@CTYPEoptf@ur{#1}% - \s@tk@rm@n@f@nt*[\@CTYPEopt@ne][\@CTYPEopttw@]{\@CTYPEarg@ne}% - [\@CTYPEoptthr@@][\@CTYPEoptf@ur]{#2}% -} - -\def\setkormonoCTYPEF#1{% - \s@tk@rm@n@f@nt*[\@CTYPEopt@ne][\@CTYPEopttw@]{\@CTYPEarg@ne}% - [\@CTYPEoptthr@@]{#1}% -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\if@unfonts - \def\UnBatang{UnBatang} - \def\UnBatangBold{UnBatang-Bold} - \def\UnDotum{UnDotum} - \def\UnDotumBold{UnDotum-Bold} - \def\UnTaza{UnTaza} -\else -\if@nanumfonts - \setmainhangulfont{NanumMyeongjo} - \setsanshangulfont{NanumGothic} - \setmonohangulfont{NanumGothic} -\fi -\fi - -\def\s@tk@rm@inf@nt{% - \@ifnextchar*\s@setk@rmainf@nt\l@setk@rmainf@nt -} -\def\s@setk@rmainf@nt*{\SETKORMAINFONTEL} -\def\l@setk@rmainf@nt{\SETKORMAINFONT} - -\def\NOEXTSETKORMAINFONT{% - \let\hnjmainfont\kormainfont -} - -\def\RESstar{*} - -\newcommandtwoopt{\SETKORMAINFONTEL}[3][][]{% - \def\XKOV@externallocation{ExternalLocation}% - \@korfnt@externaltrue - \def\XKOV@kormain@regular{#3}% - \def\XKOV@kormain@bold{#1}% - \ifx#2\RESstar - \def\XKOV@kormain@italic{#3}% - \else - \def\XKOV@kormain@italic{#2}% - \fi - \def\XKOV@kormain@bolditalic{#2}% - \CallKorFont{main}% - \@korfnt@externaltrue - \@ifnextchar[\EXTSETKORMAINFONTEL\NOEXTSETKORMAINFONT -} - -\newcommandtwoopt{\EXTSETKORMAINFONTEL}[3][][]{% - \def\XKOV@externallocation{ExternalLocation}% - \@korfnt@externaltrue - \def\XKOV@hnjmain@regular{#3}% - \def\XKOV@hnjmain@bold{#1}% - \ifx#2\RESstar - \def\XKOV@hnjmain@italic{#3}% - \else - \def\XKOV@hnjmain@italic{#2}% - \fi - \def\XKOV@hnjmain@bolditalic{#2}% - \CallHnjFont{main}% - \@XKOV@extendcommandfalse -} - -\newcommandtwoopt{\SETKORMAINFONT}[3][][]{% - \def\XKOV@externallocation{}% - \@korfnt@externalfalse - \def\XKOV@kormain@regular{#3}% - \def\XKOV@kormain@bold{#1}% - \ifx#2\RESstar - \def\XKOV@kormain@italic{#3}% - \else - \def\XKOV@kormain@italic{#2}% - \fi - \def\XKOV@kormain@bolditalic{#2}% - \CallKorFont{main}% - \@korfnt@externaltrue - \@ifnextchar[\EXTSETKORMAINFONT\NOEXTSETKORMAINFONT -} - -\newcommandtwoopt{\EXTSETKORMAINFONT}[3][][]{% - \def\XKOV@externallocation{}% - \@korfnt@externalfalse - \def\XKOV@hnjmain@regular{#3}% - \def\XKOV@hnjmain@bold{#1}% - \ifx#2\RESstar - \def\XKOV@hnjmain@italic{#3}% - \else - \def\XKOV@hnjmain@italic{#2}% - \fi - \def\XKOV@hnjmain@bolditalic{#2}% - \CallHnjFont{main}% - \@XKOV@extendcommandfalse -} - -%%%%%%%%%%%%%%%%%%%%%%% sans - -\def\s@tk@rs@nsf@nt{% - \@ifnextchar*\s@setk@rsansf@nt\l@setk@rsansf@nt -} -\def\s@setk@rsansf@nt*{\SETKORSANSFONTEL} -\def\l@setk@rsansf@nt{\SETKORSANSFONT} - -\newcommandtwoopt{\SETKORSANSFONTEL}[3][][]{% - \def\XKOV@externallocation{ExternalLocation}% - \@korfnt@externaltrue - \def\XKOV@korsans@regular{#3}% - \def\XKOV@korsans@bold{#1}% - \ifx#2\RESstar - \def\XKOV@korsans@italic{#3}% - \else - \def\XKOV@korsans@italic{#2}% - \fi - \def\XKOV@korsans@bolditalic{#2}% - \CallKorFont{sans}% - \@korfnt@externaltrue - \@ifnextchar[\EXTSETKORSANSFONTEL\NOEXTSETKORSANSFONT -} - -\newcommandtwoopt{\EXTSETKORSANSFONTEL}[3][][]{% - \def\XKOV@externallocation{ExternalLocation}% - \@korfnt@externaltrue - \def\XKOV@hnjsans@regular{#3}% - \def\XKOV@hnjsans@bold{#1}% - \ifx#2\RESstar - \def\XKOV@hnjsans@italic{#3}% - \else - \def\XKOV@hnjsans@italic{#2}% - \fi - \def\XKOV@hnjsans@bolditalic{#2}% - \CallHnjFont{sans}% - \@XKOV@extendcommandfalse -} - -\newcommandtwoopt{\SETKORSANSFONT}[3][][]{% - \def\XKOV@externallocation{}% - \@korfnt@externalfalse - \def\XKOV@korsans@regular{#3}% - \def\XKOV@korsans@bold{#1}% - \ifx#2\RESstar - \def\XKOV@korsans@italic{#3}% - \else - \def\XKOV@korsans@italic{#2}% - \fi - \def\XKOV@korsans@bolditalic{#2}% - \CallKorFont{sans}% - \@korfnt@externaltrue - \@ifnextchar[\EXTSETKORSANSFONT\NOEXTSETKORSANSFONT -} - -\newcommandtwoopt{\EXTSETKORSANSFONT}[3][][]{% - \def\XKOV@externallocation{}% - \@korfnt@externalfalse - \def\XKOV@hnjsans@regular{#3}% - \def\XKOV@hnjsans@bold{#1}% - \ifx#2\RESstar - \def\XKOV@hnjsans@italic{#3}% - \else - \def\XKOV@hnjsans@italic{#2}% - \fi - \def\XKOV@hnjsans@bolditalic{#2}% - \CallHnjFont{sans}% - \@XKOV@extendcommandfalse -} - -\def\NOEXTSETKORSANSFONT{% - \let\hnjsansfont\korsansfont -} - -%%%%%%%%%%%%%%%%%%%%%%% mono - -\def\s@tk@rm@n@f@nt{% - \@ifnextchar*\s@setk@rmonof@nt\l@setk@rmonof@nt -} -\def\s@setk@rmonof@nt*{\SETKORMONOFONTEL} -\def\l@setk@rmonof@nt{\SETKORMONOFONT} - -\newcommandtwoopt{\SETKORMONOFONTEL}[3][][]{% - \def\XKOV@externallocation{ExternalLocation}% - \@korfnt@externaltrue - \def\XKOV@kormono@regular{#3}% - \def\XKOV@kormono@bold{#1}% - \def\XKOV@kormono@italic{#2}% - \def\XKOV@kormono@bolditalic{#2}% - \CallKorFontmono% - \@korfnt@externaltrue - \@ifnextchar[\EXTSETKORMONOFONTEL\NOEXTSETKORMONOFONT -} - -\newcommandtwoopt{\EXTSETKORMONOFONTEL}[3][][]{% - \setmonoscale{1.0}% - \def\XKOV@externallocation{ExternalLocation}% - \@korfnt@externaltrue - \def\XKOV@hnjmono@regular{#3}% - \def\XKOV@hnjmono@bold{#1}% - \def\XKOV@hnjmono@italic{#2}% - \def\XKOV@hnjmono@bolditalic{#2}% - \CallHnjFontmono% - \@XKOV@extendcommandfalse -} - -\newcommandtwoopt{\SETKORMONOFONT}[3][][]{% - \def\XKOV@externallocation{}% - \@korfnt@externalfalse - \def\XKOV@kormono@regular{#3}% - \def\XKOV@kormono@bold{#1}% - \def\XKOV@kormono@italic{#2}% - \def\XKOV@kormono@bolditalic{#2}% - \CallKorFontmono% - \@korfnt@externaltrue - \@ifnextchar[\EXTSETKORMONOFONT\NOEXTSETKORMONOFONT -} - -\newcommandtwoopt{\EXTSETKORMONOFONT}[3][][]{% - \setmonoscale{1.0}% - \def\XKOV@externallocation{}% - \@korfnt@externalfalse - \def\XKOV@hnjmono@regular{#3}% - \def\XKOV@hnjmono@bold{#1}% - \def\XKOV@hnjmono@italic{#2}% - \def\XKOV@hnjmono@bolditalic{#2}% - \CallHnjFontmono% - \@XKOV@extendcommandfalse -} - -\def\NOEXTSETKORMONOFONT{% - \let\hnjmonofont\korsansfont -} - -%% dummy call -\def\SetDefaultKorFonts{% -\if@unfonts -\if@korfnt@external - \ifx\XKOV@kormain@regular\undefined\def\XKOV@kormain@regular{UnBatang}\fi - \ifx\XKOV@kormain@bold\undefined\def\XKOV@kormain@bold{UnBatangBold}\fi - \ifx\XKOV@kormain@italic\undefined\def\XKOV@kormain@italic{UnBatang}\fi - \ifx\XKOV@kormain@bolditalic\undefined\def\XKOV@kormain@bolditalic{UnBatangBold}\fi - \ifx\XKOV@korsans@regular\undefined\def\XKOV@korsans@regular{UnDotum}\fi - \ifx\XKOV@korsans@bold\undefined\def\XKOV@korsans@bold{UnDotumBold}\fi - \ifx\XKOV@korsans@italic\undefined\def\XKOV@korsans@italic{UnDotum}\fi - \ifx\XKOV@korsans@bolditalic\undefined\def\XKOV@korsans@bolditalic{UnDotumBold}\fi - \ifx\XKOV@kormono@regular\undefined\def\XKOV@kormono@regular{UnTaza}\fi - \ifx\XKOV@kormono@bold\undefined\def\XKOV@kormono@bold{UnTaza}\fi - \ifx\XKOV@kormono@italic\undefined\def\XKOV@kormono@italic{UnTaza}\fi - \ifx\XKOV@kormono@bolditalic\undefined\def\XKOV@kormono@bolditalic{UnTaza}\fi -\else - \ifx\XKOV@kormain@regular\undefined\def\XKOV@kormain@regular{\UnBatang}\fi - \ifx\XKOV@kormain@bold\undefined\def\XKOV@kormain@bold{\UnBatangBold}\fi - \ifx\XKOV@kormain@italic\undefined\def\XKOV@kormain@italic{\UnBatang}\fi - \ifx\XKOV@kormain@bolditalic\undefined\def\XKOV@kormain@bolditalic{\UnBatangBold}\fi - \ifx\XKOV@korsans@regular\undefined\def\XKOV@korsans@regular{\UnDotum}\fi - \ifx\XKOV@korsans@bold\undefined\def\XKOV@korsans@bold{\UnDotumBold}\fi - \ifx\XKOV@korsans@italic\undefined\def\XKOV@korsans@italic{\UnDotum}\fi - \ifx\XKOV@korsans@bolditalic\undefined\def\XKOV@korsans@bolditalic{\UnDotumBold}\fi - \ifx\XKOV@kormono@regular\undefined\def\XKOV@kormono@regular{\UnTaza}\fi - \ifx\XKOV@kormono@bold\undefined\def\XKOV@kormono@bold{\UnTaza}\fi - \ifx\XKOV@kormono@italic\undefined\def\XKOV@kormono@italic{\UnTaza}\fi - \ifx\XKOV@kormono@bolditalic\undefined\def\XKOV@kormono@bolditalic{\UnTaza}\fi -\fi -\else\fi -} - -%%% dummy declaration, to avoid errors! -\if@unfonts -\s@tk@rm@inf@nt*{UnBatang} -\s@tk@rs@nsf@nt*{UnDotum} -\s@tk@rm@n@f@nt*{UnTaza} -\CallHnjDefault -\else -%\input TnX-xob-default.tex -\fi - -\AtBeginDocument{ - \ifx\XKOV@externallocation\undefined\def\XKOV@externallocation{ExternalLocation}\@korfnt@externaltrue\fi -%% \SetDefaultKorFonts -%% \CallKorFont{main}% -%% \CallKorFont{sans}% -%% \CallKorFontmono -} - -\endinput - -%%% 2014-05-12 : disable "223C assignment -%%% 2013-09-27 : nounfonts set to default. -%%% 2012-12-31 : [unfonts], [nounfonts] -%%% 오전 1:21 2008-10-13 : xetexko-xobfont 작성 -%%% 오전 12:12 2008-11-09 : \setkor...font 명령 재작성 -%%% 오후 17:59 2008-12-02 : nowinname 옵션 추가 -%%% 오후 22:05 2008-12-02 : Italic 옵션에 (*) 추가 -%%% 오전 04:04 2008-12-08 : \XKOV@XP -%%% 오전 1:18 2009-08-25 : sans/mono bug fixed (thanks to DH Kim and YW Kim) -%%% 오전 12:22 2009-10-13 : 따옴표 설정을 xetexko에게. diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-dotemph.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-dotemph.sty index e2997e94746..87285578b27 100644 --- a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-dotemph.sty +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-dotemph.sty @@ -1,6 +1,6 @@ %% xob-dotemph.sty %% -%% Copyright (c) 2007-2013 Kangsoo Kim <karnes at ktug org> +%% Copyright (c) 2007-2014 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 @@ -11,13 +11,14 @@ %% version 2006/05/20 or later. %% %% xob-dotemph +%% 2014-06-15, \useremph redefined %% 2014-04-29 %% 2010-03-18 %% 오전 9:01 2008-10-22 %% xetexko-dotemph의 확장 %% dhucs/hangul compatible (\dotemph, \circemph, \useremph) %% ---------- -%% \useremph is different from xetexko's \useremph *** +%% \useremph is different from kotex-utf's \useremph *** %% %% Updated for xetexko v2.1 %% Kihwang Lee <leekh at ktug.org> @@ -30,28 +31,45 @@ \endgroup } -\def\dhucs@useremph#1{\begingroup +\def\xob@useremph#1{\begingroup \let\dotemphchar\useremphchar \let\dotemphraise\useremphraisedim \dotemph{#1}\endgroup} -\protected\def\useremph{% - \@ifnextchar[\@user@emph{% - \@ifnextchar*\@orig@useremph\@@user@emph}% -} +%%%%% 2014/06/15 +%%%%% \useremph[dim][char]{letter} +%%%%% +\RequirePackage{xparse} -\def\@orig@useremph*#1{\dhucs@useremph{#1}} +\ExplSyntaxOn -\def\@user@emph[#1]#2#3{% - \def\useremphchar{#2}% - \def\useremphraisedim{#1}% - \dhucs@useremph{#3}% -} +\dim_new:N \useremphraisedim \dim_set:Nn \useremphraisedim { 1ex } +\tl_set:Nn \useremphchar { ^^^^02da } -\def\@@user@emph#1#2{% - \def\useremphchar{#1}% - \def\useremphraisedim{6pt}% - \dhucs@useremph{#2}% +\DeclareDocumentCommand \useremph { o o m } +{ + \IfValueT { #1 } + { + \tl_if_empty:nF { #1 } + { + \settoheight \useremphraisedim { #3 } + \dim_add:Nn \useremphraisedim { #1 } + } + } + + \IfValueT { #2 } + { + \tl_if_empty:nF { #2 } + { + \tl_set:Nn \useremphchar { #2 } + } + } + \xob@useremph { #3 } } +\ExplSyntaxOff + +\def\useremphstarblack{\tiny★} +\def\useremphstarwhite{\tiny☆} + \endinput diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-font.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-font.sty new file mode 100644 index 00000000000..fa9bf736cf2 --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-font.sty @@ -0,0 +1,678 @@ +%% xob-font.sty +%% +%% Copyright (c) 2014 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. +%% +%% +%% oblivoir hangul/hanja font setting. +%% part of oblivoir +%% +\ProvidesPackage{xob-font}[2014/06/24 v0.6 select hangul/hanja fonts for oblivoir] + +%%% obsolete options: retain \if@.. conditions for backward compatibility +\newif\if@nowin\@nowinfalse +\newif\if@latinquote\@latinquotefalse +\newif\if@unfont\@unfontfalse +\DeclareOption{nowinname}{} +\DeclareOption{latinquote}{} +\DeclareOption{unfonts}{\@unfonttrue} +\DeclareOption{nounfonts}{\@unfontfalse} + +%%% active optoins +\newif\if@oldhangul\@oldhangulfalse +\DeclareOption{oldhangul}{\@oldhangultrue} +\newif\if@gremph\@gremphtrue +\DeclareOption{gremph}{\@gremphtrue} +\DeclareOption{itemph}{\@gremphfalse} + +\newif\if@nanumfonts\@nanumfontsfalse +\newif\if@nanumxfonts\@nanumxfontsfalse +\DeclareOption{nanum}{\@nanumfontstrue} +\DeclareOption{nanumx}{\@nanumfontstrue\@nanumxfontstrue} +\newif\if@hcrfonts\@hcrfontsfalse +\DeclareOption{hcr}{\@hcrfontstrue\@oldhangultrue} + +\ProcessOptions +\relax + +\RequirePackage{xparse} +\@ifclassloaded{oblivoir}{}{% + \RequirePackage{fontspec} + \RequirePackage{kotex} +} + +\ExplSyntaxOn + +\xetex_if_engine:T +{ + \RequirePackage{xetexko-space} + \RequirePackage{xetexko-font} +} + +\if@gremph \bool_set_false:N \ital_fake_bool \else \bool_set_true:N \ital_fake_bool \fi +\if@oldhangul \bool_set_true:N \hangulscript_bool \else \bool_set_false:N \hangulscript_bool \fi + +\bool_set_false:N \bold_prov_bool +\bool_set_false:N \in_hanja_mode +\bool_set_false:N \mono_mode + +\DeclareDocumentCommand \setmonoscale { m } +{ + \tl_set:Nn \_mono_scale { #1 } +} + +\setmonoscale{0.95} + +\DeclareDocumentCommand \treat_feature_name_options { d() d() m o } +{ + \tl_set:Nn \_regu_font_name { #3 } + + \IfValueTF { #1 } + { + \tl_set:Nn \_bold_font_name { #1 } \bool_set_true:N \bold_prov_bool + } + { + \tl_clear:N \_bold_font_name \bool_set_false:N \bold_prov_bool + } + + \IfValueTF { #2 } + { + \tl_if_eq:nnTF { #2 } { * } + { \tl_set_eq:NN \_ital_font_name \_regu_font_name } + { \tl_set:Nn \_ital_font_name { #2 } } + } + { + \tl_set_eq:NN \_ital_font_name \_regu_font_name + } + \IfValueTF { #4 } + { \tl_set:Nn \_additional_feature_str { #4 } } + { \tl_clear:N \_additional_feature_str } + + \bool_if:nTF { \mono_mode || \in_hanja_mode } + { + \tl_clear:N \_font_feature_str + } + { + \tl_set:Nn \_font_feature_str { Ligatures = TeX, } + } + + \bool_if:nT \ital_fake_bool + { + \tl_if_eq:NNTF \_ital_font_name \_regu_font_name + { + \tl_put_right:Nn \_font_feature_str { AutoFakeSlant, } + } + { + \tl_put_right:Nn \_font_feature_str { ItalicFeatures = { FakeSlant = { 0.15 } }, } + } + \tl_put_right:Nn \_font_feature_str { BoldItalicFeatures = { FakeSlant = { 0.15 } }, } + } + + \bool_if:nT \bold_prov_bool + { + \tl_put_right:Nn \_font_feature_str { BoldFont = \_bold_font_name, + BoldItalicFont = \_bold_font_name, + ItalicFont = \_ital_font_name, } + } + + \bool_if:nF \in_hanja_mode + { + \bool_if:nT \hangulscript_bool + { \tl_put_right:Nn \_font_feature_str { Script = Hangul, } } + } + + \bool_if:nT \mono_mode + { + \tl_put_right:Nn \_font_feature_str { Scale = \_mono_scale, } + } +} + +\DeclareDocumentCommand \set_kor_sub_hanja_font { m d() d() m o } +{ + \bool_set_true:N \in_hanja_mode +% \treat_feature_name_options ( #2 ) ( #3 ) { #4 } [ #5 ] + \IfValueTF { #2 } + { + \IfValueTF { #3 } + { + \treat_feature_name_options ( #2 ) ( #3 ) { #4 } [ #5 ] + } + { + \treat_feature_name_options ( #2 ) { #4 } [ #5 ] + } + } + { + \treat_feature_name_options { #4 } [ #5 ] + } + \setmainhanjafont [ \_font_feature_str, \_additional_feature_str ] { \_regu_font_name } + + \luatex_if_engine:T + { + \tl_if_exist:NT \hanjabyhanjafont + { + \AtBeginDocument { \hanjabyhanjafont 1 } + } + } +} + +\DeclareDocumentCommand \setkorfont { m d() d() m o d() } +{ + \bool_set_false:N \in_hanja_mode + + \str_if_eq:nnTF { #1 } { mono } + { \bool_set_true:N \mono_mode } + { \bool_set_false:N \mono_mode } + + %%% when regular fontname contains "HCR", input [ Script=Hangul ] to font features. + \tl_if_in:nnT { #4 } { HCR } + { \bool_set_true:N \hangulscript_bool } + \tl_if_in:nnT { #4 } { hcr } + { \bool_set_true:N \hangulscript_bool } +% \tl_if_in:nnT { #4 } { HAN } +% { \bool_set_true:N \hangulscript_bool } + %%% the following three \tl_if_in's for \setkomainfont + \tl_if_in:NnT { #4 } { HCR } + { \bool_set_true:N \hangulscript_bool } + \tl_if_in:NnT { #4 } { hcr } + { \bool_set_true:N \hangulscript_bool } +% \tl_if_in:NnT { #4 } { HAN } +% { \bool_set_true:N \hangulscript_bool } + + \IfValueTF { #2 } + { + \IfValueTF { #3 } + { + \treat_feature_name_options ( #2 ) ( #3 ) { #4 } [ #5 ] + } + { + \treat_feature_name_options ( #2 ) { #4 } [ #5 ] + } + } + { + \treat_feature_name_options { #4 } [ #5 ] + } + + \cs:w set #1 hangulfont \cs_end: + [ \_font_feature_str, \_additional_feature_str ] { \_regu_font_name } + + %%% \set_kor_sub_hanja_font will take more optional arguments, + %%% hence, this codes have to be located at the end of code block. + \IfValueT { #6 } + { + \set_kor_sub_hanja_font { #1 } ( #6 ) + } +} + +%%% new \setko(main|sans|mono)font +%\bool_new:N \setko_bold_process \bool_set_false:N \setko_bold_process + +\NewDocumentCommand \process_set_korob_hanja { m o d() d() d() o } +{ + \IfValueTF { #2 } + { + \tl_set:Nn \ko_hanja_base_font_name { #2 } + \tl_set_eq:NN \ko_hanja_regu_font_name \ko_hanja_base_font_name + \tl_put_right:Nn \ko_hanja_regu_font_name { #3 } + \IfValueTF { #4 } + { + \tl_if_empty:nTF { #4 } + { + \tl_set_eq:NN \ko_hanja_bold_font_name \ko_hanja_regu_font_name + } + { + \tl_set_eq:NN \ko_hanja_bold_font_name \ko_hanja_base_font_name + \tl_put_right:Nn \ko_hanja_bold_font_name { #4 } + } + \bool_set_false:N \setko_hanja_bold_process + } + { +% \tl_clear:N \ko_hanja_bold_font_name + \bool_set_true:N \setko_hanja_bold_process + } + \IfValueTF { #5 } + { + \tl_if_empty:nTF { #5 } + { + \tl_set_eq:NN \ko_hanja_ital_font_name \ko_hanja_regu_font_name + } + { + \tl_set_eq:NN \ko_hanja_ital_font_name \ko_hanja_base_font_name + \tl_put_right:Nn \ko_hanja_ital_font_name { #5 } + } + } + { + \tl_set_eq:NN \ko_hanja_ital_font_name \ko_hanja_regu_font_name + } + } + { + \tl_clear:N \ko_hanja_base_font_name + \tl_set:Nn \ko_hanja_regu_font_name { #3 } + + \IfValueTF { #4 } + { + \tl_set:Nn \ko_hanja_bold_font_name { #4 } + \bool_set_false:N \setko_hanja_bold_process + } + { +% \tl_clear:N \ko_hanja_bold_font_name + \bool_set_true:N \setko_hanja_bold_process + } + + \IfValueTF { #5 } + { + \tl_set:Nn \ko_hanja_ital_font_name { #5 } + } + { + \tl_set_eq:NN \ko_hanja_ital_font_name \ko_hanja_regu_font_name + } + } + + \IfValueTF { #6 } + { + \tl_set:Nn \ko_hanja_features { #6 } + } + { + \tl_clear:N \ko_hanja_features + } + + \bool_if:nTF \setko_bold_process + { + \bool_if:nTF \setko_hanja_bold_process + { + \cs:w setkor #1 font \cs_end: + { \ko_regu_font_name } + [ \ko_features ] + \bool_if:nTF \ital_fake_bool + { + \cs:w set #1 hanjafont \cs_end: + [ \ko_hanja_features, AutoFakeSlant, BoldItalicFeatures={FakeSlant={0.15}} ] + { \ko_hanja_regu_font_name } + } + { + \cs:w set #1 hanjafont \cs_end: + [ \ko_hanja_features ] + { \ko_hanja_regu_font_name } + } + } + { + \cs:w setkor #1 font \cs_end: + { \ko_regu_font_name } + [ \ko_features ] + ( \ko_hanja_bold_font_name ) + ( \ko_hanja_ital_font_name ) + { \ko_hanja_regu_font_name } + [ \ko_hanja_features ] + } + } + { + \bool_if:nTF \setko_hanja_bold_process + { + \cs:w setkor #1 font \cs_end: + ( \ko_bold_font_name ) + ( \ko_ital_font_name ) + { \ko_regu_font_name } + \bool_if:nTF \ital_fake_bool + { + \cs:w set #1 hanjafont \cs_end: + [ \ko_hanja_features, AutoFakeSlant, BoldItalicFeatures={FakeSlant={0.15}} ] + { \ko_hanja_regu_font_name } + } + { + \cs:w set #1 hanjafont \cs_end: + [ \ko_hanja_features ] + { \ko_hanja_regu_font_name } + } + } + { + \cs:w setkor #1 font \cs_end: + ( \ko_bold_font_name ) + ( \ko_ital_font_name ) + { \ko_regu_font_name } + [ \ko_features ] + ( \ko_hanja_bold_font_name ) + ( \ko_hanja_ital_font_name ) + { \ko_hanja_regu_font_name } + [ \ko_hanja_features ] + } + } + + \luatex_if_engine:T + { + \tl_if_exist:NT \hanjabyhanjafont + { + \AtBeginDocument { \hanjabyhanjafont 1 } + } + } +} + +\NewDocumentCommand \process_korob_only_hangul { m } +{ + \bool_if:nTF \setko_bold_process + { + \cs:w setkor #1 font \cs_end: + { \ko_regu_font_name } + [ \ko_features ] + } + { + \cs:w setkor #1 font \cs_end: + ( \ko_bold_font_name ) + ( \ko_ital_font_name ) + { \ko_regu_font_name } + [ \ko_features ] + } +} + +\DeclareDocumentCommand \setkorfontxob { m o d() d() d() o o d() } +{ + \IfValueTF { #2 } + { \tl_set:Nn \ko_base_font_name { #2 } + \tl_set_eq:NN \ko_regu_font_name \ko_base_font_name + \tl_put_right:Nn \ko_regu_font_name { #3 } + \IfValueTF { #4 } + { + \tl_if_empty:nTF { #4 } + { + \tl_set_eq:NN \ko_bold_font_name \ko_regu_font_name + } + { + \tl_set_eq:NN \ko_bold_font_name \ko_base_font_name + \tl_put_right:Nn \ko_bold_font_name { #4 } + } + \bool_set_false:N \setko_bold_process + } + { +% \tl_set_eq:NN \ko_bold_font_name \ko_regu_font_name + \bool_set_true:N \setko_bold_process + } + \IfValueTF { #5 } + { + \tl_if_empty:nTF { #5} + { + \tl_set_eq:NN \ko_ital_font_name \ko_regu_font_name + } + { + \tl_set_eq:NN \ko_ital_font_name \ko_base_font_name + \tl_put_right:Nn \ko_ital_font_name { #5 } + } + } + { + \tl_set_eq:NN \ko_ital_font_name \ko_regu_font_name + } + } + { + \tl_clear:N \ko_base_font_name + \tl_set:Nn \ko_regu_font_name { #3 } + + \IfValueTF { #4 } + { + \tl_set:Nn \ko_bold_font_name { #4 } + \bool_set_false:N \setko_bold_process + } + { +% \tl_set_eq:NN \ko_bold_font_name \ko_regu_font_name + \bool_set_true:N \setko_bold_process + } + + \IfValueTF { #5 } + { + \tl_set:Nn \ko_ital_font_name { #5 } + } + { + \tl_set_eq:NN \ko_ital_font_name \ko_regu_font_name + } + + } + + \IfValueTF { #6 } + { + \tl_set:Nn \ko_features { #6 } + } + { + \tl_clear:N \ko_features + } + + \IfValueTF { #7 } + { + \IfValueTF { #8 } + { + \process_set_korob_hanja { #1 } [ #7 ] ( #8 ) + } + { + \process_set_korob_hanja { #1 } [ #7 ] + } + } + { + \IfValueTF { #8 } + { + \process_set_korob_hanja { #1 } ( #8 ) + } + { + \process_korob_only_hangul { #1 } + } + } +} + +%%% bracket version. +\bool_set_false:N \ext_loc_bool + +\DeclareDocumentCommand \set_kor_font_orig_method_sub_hanja { m o m } +{ + \IfValueTF { #2 } + { + \cs:w set #1 hanjafont \cs_end: [ #2, \ext_loc_feature ] { #3 } + } + { + \cs:w set #1 hanjafont \cs_end: [ \ext_loc_feature ]{ #3 } + } + \bool_set_false:N \ext_loc_bool +} + +\DeclareDocumentCommand \setkorfontorigmethod { m o m o } +{ + \bool_if:nTF \ext_loc_bool + { + \tl_set:Nn \ext_loc_feature { ExternalLocation, } + } + { + \tl_clear:N \ext_loc_feature + } + \IfValueTF { #2 } + { + \cs:w set #1 hangulfont \cs_end: [ #2, \ext_loc_feature ] { #3 } + } + { + \cs:w set #1 hangulfont \cs_end: [ \ext_loc_feature ] { #3 } + } + + \IfValueTF { #4 } + { + \set_kor_font_orig_method_sub_hanja { #1 } [ #4 ] + } + { + \bool_set_false:N \ext_loc_bool + } +} + +%%% starred version. +\DeclareDocumentCommand \setkorfontorigstar { s m } +{ + \bool_set_true:N \ext_loc_bool + \setkorfontorigmethod { #2 } +} + +%%% \setobmainfont +\DeclareDocumentCommand \setxoblatinfont { m o d() d() d() o } +{ + \IfValueTF { #2 } + { + \tl_set:Nn \latin_base_font_name { #2 } + \tl_set_eq:NN \latin_regu_font_name \latin_base_font_name + \tl_put_right:Nn \latin_regu_font_name { #3 } + \IfValueTF { #4 } + { + \tl_if_empty:nTF { #4 } + { + \tl_set_eq:NN \latin_bold_font_name \latin_regu_font_name + } + { + \tl_set_eq:NN \latin_bold_font_name \latin_base_font_name + \tl_put_right:Nn \latin_bold_font_name { #4 } + } + \bool_set_false:N \setlatin_bold_process + } + { + \bool_set_true:N \setlatin_bold_process + } + \IfValueTF { #5 } + { + \tl_if_empty:nTF { #5} + { + \tl_set_eq:NN \latin_ital_font_name \latin_regu_font_name + } + { + \tl_set_eq:NN \latin_ital_font_name \latin_base_font_name + \tl_put_right:Nn \latin_ital_font_name { #5 } + } + \bool_set_false:N \setlatin_ital_process + } + { + \bool_set_true:N \setlatin_ital_process + } + } + { + \tl_clear:N \latin_base_font_name + \tl_set:Nn \latin_regu_font_name { #3 } + + \IfValueTF { #4 } + { + \tl_set:Nn \latin_bold_font_name { #4 } + \bool_set_false:N \setlatin_bold_process + } + { + \bool_set_true:N \setlatin_bold_process + } + + \IfValueTF { #5 } + { + \tl_set:Nn \latin_ital_font_name { #5 } + \bool_set_false:N \setlatin_ital_process + } + { + \bool_set_true:N \setlatin_ital_process + } + + } + + \tl_if_eq:nnTF { #1 } { mono } + { + \bool_set_true:N \latin_mono_mode + } + { + \bool_set_false:N \latin_mono_mode + } + + \bool_if:nTF \latin_mono_mode + { + \tl_clear:N \latin_feature + } + { + \tl_set:Nn \latin_feature { Ligatures=TeX, } + } + + \bool_if:nF \setlatin_bold_process + { + \tl_put_right:Nn \latin_feature { + BoldFont = { \latin_bold_font_name }, + } + } + + \bool_if:nF \setlatin_ital_process + { + \tl_put_right:Nn \latin_feature { + ItalicFont = { \latin_ital_font_name }, + } + } + + \IfValueT { #6 } + { + \tl_put_right:Nn \latin_feature { #6 } + } + + \cs:w set #1 font \cs_end: + [ \latin_feature ] + { \latin_regu_font_name } + +} + +\ExplSyntaxOff + +%%% starred version commands are provided for backward compatibility. +\protected\def\setkormainfont{% + \@ifstar{\setkorfontorigstar*{main}}{% + \@ifnextchar[{\setkorfontorigmethod{main}}{\setkorfont{main}}}} +\protected\def\setkorsansfont{% + \@ifstar{\setkorfontorigstar*{sans}}{% + \@ifnextchar[{\setkorfontorigmethod{sans}}{\setkorfont{sans}}}} +\protected\def\setkormonofont{% + \@ifstar{\setkorfontorigstar*{mono}}{% + \@ifnextchar[{\setkorfontorigmethod{mono}}{\setkorfont{mono}}}} + +%%% newly defined commands: +%%% \setkomainfont[BASENAME](Regu)(Bold)(Ital)[Feature]% +%%% [HJBASENAME](HJREGU)(HJBOLD)(HJITAL)[HJFeatures] +%%% no spaces allowed between optional arguments, e.g., [...]*nospace*[...] +\protected\def\setkomainfont{\setkorfontxob{main}} +\protected\def\setkosansfont{\setkorfontxob{sans}} +\protected\def\setkomonofont{\setkorfontxob{mono}} + +%%% \setobmainfont(regu)[features] = \setmainfont[features]{regu} +\protected\def\setobmainfont{\setxoblatinfont{main}} +\protected\def\setobsansfont{\setxoblatinfont{sans}} +\protected\def\setobmonofont{\setxoblatinfont{mono}} + +%%% [unfonts] will be deprecated shortly. +\if@unfont + \if@gremph + \setkomainfont(UnBatang.ttf)(UnBatangBold.ttf)(UnGraphic.ttf)[Script=Hangul]% + (UnBatang.ttf)(UnBatangBold.ttf)(UnBatang.ttf)[Script=Hangul] + \else + \setkomainfont(UnBatang.ttf)(UnBatangBold.ttf)(UnBatang.ttf)[Script=Hangul] + \fi + \setkosansfont[UnDotum](.ttf)(Bold.ttf)(.ttf) + \setmonoscale{1.05} + \setkomonofont(UnTaza.ttf) +\fi + +\if@nanumfonts + \if@nanumxfonts + \setkomainfont(NanumMyeongjo)(*ExtraBold)(*)[](NanumGothic)(*Bold) + \else + \setkomainfont(NanumMyeongjo)(*Bold)(*)[](NanumGothic)(*Bold) + \fi + \setkosansfont(NanumGothic)(*Bold)(*) + \setkomonofont(NanumGothic) +\fi + +%%% [hcr] adds [Script=Hangul] feature automatically. +\if@hcrfonts + \setkomainfont(HCRBatangLVT)(*-Bold)(*) + \setkosansfont(HCRDotumLVT)(*-Bold)(*) + \setkomonofont(HCRDotumLVT) +\fi + +\endinput + +%%% end of file `xob-font.sty` +%% CHANGES +%% v0.6 : HCR auto insert Script=Hangul, HAN disabled +%% v0.5 : [nanum] sets Bold, [nanumx] sets ExtraBold for NanumMyeongjo +%% v0.4 : hangul_bold_exist && hanja_bold_no_exist bug fixed. +%% v0.3 : \setobmainfont ( = \setmainfont ) introduced. +%% v0.2 : do not insert [ Ligatures=TeX ] in mono_mode diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-paralist.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-paralist.sty index d090882ab20..534d2b80663 100644 --- a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-paralist.sty +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-paralist.sty @@ -13,7 +13,10 @@ %% paralist, %% \@ifpackageloaded{paralist}{}{\RequirePackage{paralist}} -\makeatletter +\RequirePackage{iftex} +\ifPDFTeX + \RequirePackage{dhucs-paralist} +\else \def\pl@loop@{% \ifx 가\pl@temp \def\@tempa{\pl@label\gana }\else \ifx ㈎\pl@temp \def\@tempa{\pl@label\pgana }\else @@ -41,6 +44,5 @@ \fi\fi\fi\fi\fi\fi\fi\fi \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \@tempa} -\makeatother - +\fi \endinput diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-base.cls b/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-base.cls index 48950391112..dcd3ff77576 100644 --- a/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-base.cls +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-base.cls @@ -1,6 +1,6 @@ %% File `oblivoir.cls` %% -%% (C) Copyright 2006-2013 Kangsoo Kim <karnes at ktug org> +%% (C) Copyright 2006-2014 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 @@ -11,7 +11,7 @@ %% version 2006/05/20 or later. %% \ProvidesClass{oblivoir-base} - [2013/10/26 v0.4.3 article-like class to typeset UTF-8 korean using memoir.] + [2014/06/12 v0.6 article-like class to typeset UTF-8 korean using memoir.] %\typeout{oblivoir requires memoir, dhucs, and memhangul. 2008/10/23.} %%% Acknowledgements: @@ -94,15 +94,19 @@ \DeclareOptionX{figtabcapt}[]{\PassOptionsToPackage{\CurrentOption}{memhangul-ucs}} %%% 2013-09-26 -\newif\if@unfonts\@unfontsfalse -\DeclareOptionX{unfonts}{\@unfontstrue} -\DeclareOptionX{nounfonts}{\@unfontsfalse} -\DeclareOptionX{nanum}{\@unfontsfalse} +%%% disabled option unfonts/nounfonts, 2014-06-13 +\newif\if@unfont\@unfontfalse +\DeclareOptionX{unfonts}{\@unfonttrue} +\DeclareOptionX{nounfonts}{\@unfontfalse} +\DeclareOptionX{nanum}{\@unfontfalse} \DeclareOptionX{uset1font}{\PassOptionsToPackage{\CurrentOption}{nanumfontsel}} \DeclareOptionX{cjk}{\PassOptionsToPackage{\CurrentOption}{memhangul-ucs}} \DeclareOptionX{dhucs}{\PassOptionsToPackage{\CurrentOption}{memhangul-ucs}} +%%% Disabled Options +\DeclareOptionX{hcr}{} % do nothing + \newif\if@AMSmath\@AMSmathfalse \DeclareOptionX{amsmath}{\@AMSmathtrue} @@ -180,7 +184,7 @@ %%% korean fontsettings \ifnokorean\else - \if@unfonts + \if@unfont \RequirePackage{hfontsel} \usehangulfontspec{obut} \else @@ -214,7 +218,7 @@ \if@itemph\else \ifnokorean\else % \ifpdf - \if@unfonts + \if@unfont \SetGremphFonts{outgr}{outgt} \else \SetGremphFonts{nanumgt}{nanumgt} @@ -302,15 +306,15 @@ \renewcommand\chaptitlefont{\Large\bfseries} \renewcommand\printchapternonum{} \renewcommand\printchaptertitle[1]{\chaptitlefont #1} -\renewcommand\afterchapskip{\onelineskip} -\renewcommand\beforechapskip{1.5\onelineskip} +\setlength\afterchapskip{\onelineskip} +\setlength\beforechapskip{1.5\onelineskip} \fi -\renewcommand\cftsectionindent{0pt} +\setlength\cftsectionindent{0pt} \ifnokorean\else -\renewcommand\cftsectionnumwidth{1.8em} -\renewcommand\cftsubsectionindent{1.8em} -\renewcommand\cftsubsectionnumwidth{2.5em} +\setlength\cftsectionnumwidth{1.8em} +\setlength\cftsubsectionindent{1.8em} +\setlength\cftsubsectionnumwidth{2.5em} \fi \if@chapter\else \let\cftchapterindent\cftsectionindent @@ -520,6 +524,8 @@ \endinput %%% ChangeLog: +%%% ver0.6 2014/06/12 : introduce new xob-font.sty +%%% ver0.5 2014/06/06 : replace \renewcommand's with \setlength's. %%% ver0.4.3 2013/10/26 : move \kscntformat definition to memhangul-ucs %%% ver0.4.2 2013/10/03 : fix a typo. %%% ver0.4.1 2013/09/26 : [moreroom] thanks to Juho.Lee diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-xlua.cls b/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-xlua.cls index 01b7d0a0757..21299498c23 100644 --- a/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-xlua.cls +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-xlua.cls @@ -1,6 +1,6 @@ %% File `oblivoir-xlua.cls` %% -%% (C) Copyright 2006-2013 Kangsoo Kim <karnes at ktug org> +%% (C) Copyright 2006-2014 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 @@ -14,7 +14,7 @@ %% depends upon Dohyun Kim's xetexko and the author's memhangul-x. %% \ProvidesClass{oblivoir-xlua} - [2013/09/01 v0.4.5 article-like class to typeset UTF-8 korean using memoir.] + [2014/06/12 v0.7 article-like class to typeset UTF-8 korean using memoir.] \typeout{A variant of oblivoir class for Lua- or XeLaTeX.} \providecommand\@DisabledOption[1]{% @@ -48,7 +48,7 @@ \DeclareOptionX{footnote}{\@koreanfntrue} \newif\if@toclofentry\@toclofentryfalse \DeclareOptionX{tocentry}{\@toclofentrytrue} -\newif\if@itemph\@itemphfalse +%\newif\if@itemph\@itemphfalse \DeclareOptionX{itemph}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} \DeclareOptionX{gremph}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} \newif\if@chapter\@chapterfalse @@ -80,9 +80,10 @@ \DeclareOptionX{preloadoption}[]{\def\PRELOADoptstr{#1}} %% [nounfonts] -\newif\if@unfonts\@unfontstrue \DeclareOptionX{unfonts}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} \DeclareOptionX{nounfonts}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} +\DeclareOptionX{nanum}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} +\DeclareOptionX{hcr}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} \DeclareOptionX{figtabcapt}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} @@ -148,21 +149,6 @@ \RequirePackage{ifluatex} \RequirePackage{ifxetex} -%%% ifluaorxetex.sty -%\RequirePackage{iftex} -% -%\newif\ifLuaOrXeTeX -%\ifXeTeX\global\LuaOrXeTeXtrue -% \else\ifLuaTeX\global\LuaOrXeTeXtrue -% \else\global\LuaOrXeTeXfalse -%\fi\fi - -\ifx\XeTeX\undefined - \def\Xe{X\kern-.0833em\lower.5ex\hbox{\reflectbox{E}}} - \def\XeTeX{\Xe\kern-.1667em\TeX} - \def\XeLaTeX{\Xe\kern-0.0833em\LaTeX} -\fi - %%\RequirePackage{comment} %%\def\finemath@status{} @@ -255,15 +241,15 @@ \renewcommand\chaptitlefont{\Large\bfseries} \renewcommand\printchapternonum{} \renewcommand\printchaptertitle[1]{\chaptitlefont #1} -\renewcommand\afterchapskip{\onelineskip} -\renewcommand\beforechapskip{1.5\onelineskip} +\setlength\afterchapskip{\onelineskip} +\setlength\beforechapskip{1.5\onelineskip} \fi -\renewcommand\cftsectionindent{0pt} +\setlength\cftsectionindent{0pt} \ifnokorean\else -\renewcommand\cftsectionnumwidth{1.8em} -\renewcommand\cftsubsectionindent{1.8em} -\renewcommand\cftsubsectionnumwidth{2.5em} +\setlength\cftsectionnumwidth{1.8em} +\setlength\cftsubsectionindent{1.8em} +\setlength\cftsubsectionnumwidth{2.5em} \fi \if@chapter\else \let\cftchapterindent\cftsectionindent @@ -464,6 +450,8 @@ \endinput %%% ChangeLog: +%%% 2014-06-12 : introduce new xob-font.sty +%%% 2014-06-06 : replace false \renewcommand with \setlength %%% 2013-10-26 : moved \kscntformat definition to memhangul. %%% 2013-09-12 : integrate ifluaorxetex.sty %%% 2013-09-01 : [cjk], [dhucs] option introduced. diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/xoblivoir.cls b/Master/texmf-dist/tex/latex/kotex-oblivoir/xoblivoir.cls index 1723b2beada..f7afbac9044 100644 --- a/Master/texmf-dist/tex/latex/kotex-oblivoir/xoblivoir.cls +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/xoblivoir.cls @@ -1,6 +1,6 @@ %% File `xoblivoir.cls` %% -%% (C) Copyright 2006-2013 Kangsoo Kim <karnes at ktug org> +%% (C) Copyright 2006-2014 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,7 +10,7 @@ %% and version 1.3c or later is part of all distributions of LaTeX %% version 2006/05/20 or later. %% -\ProvidesClass{xoblivoir}[2013/10/26] +\ProvidesClass{xoblivoir}[2014/06/12] \RequirePackage{xkeyval} @@ -36,14 +36,18 @@ \ifLuaOrXeTeX \LoadClassWithOptions{oblivoir-xlua} -\typeout{HANGUL DRIVER: xetexko/luatexko running} + \ifLuaTeX + \typeout{HANGUL DRIVER: luatexko} + \else + \typeout{HANGUL DRIVER: xetexko} + \fi \else \if@CJK \LoadClassWithOptions{oblivoir-xlua} - \typeout{HANGUL DRIVER: cjk-ko running} + \typeout{HANGUL DRIVER: cjk-ko} \else \LoadClassWithOptions{oblivoir-base} - \typeout{HANGUL DRIVER: dhucs running} + \typeout{HANGUL DRIVER: kotex-utf} \fi \fi |