From 58c4ce1681c0ba0f511802729b1409b92a864617 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 14 Mar 2020 21:01:21 +0000 Subject: kotex-oblivoir (14mar20) git-svn-id: svn://tug.org/texlive/trunk@54302 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/doc/latex/kotex-oblivoir/ChangeLog | 14 + Master/texmf-dist/doc/latex/kotex-oblivoir/README | 91 +- .../kotex-oblivoir/doc/oblivoir-simpledoc.pdf | Bin 223149 -> 0 bytes .../kotex-oblivoir/doc/oblivoir-simpledoc.tex | 1591 ------------------- .../doc/latex/kotex-oblivoir/doc/oblivoir-test.tex | 1326 ---------------- .../latex/kotex-oblivoir/oblivoir-simpledoc.pdf | Bin 0 -> 230610 bytes .../latex/kotex-oblivoir/oblivoir-simpledoc.tex | 1677 ++++++++++++++++++++ .../doc/latex/kotex-oblivoir/oblivoir-test.tex | 1339 ++++++++++++++++ .../latex/kotex-oblivoir/memhangul-common/10_5.sty | 82 + .../memhangul-common/fapapersize.sty | 147 ++ .../memhangul-common/memhangul-common.sty | 1184 ++++++++++++++ .../memhangul-common/memhangul-patch.sty | 20 + .../memhangul-common/memucs-enumerate.sty | 49 + .../memhangul-common/memucs-setspace.sty | 587 +++++++ .../memhangul-common/ob-koreanappendix.sty | 98 ++ .../memhangul-common/ob-nokoreanappendix.sty | 96 ++ .../kotex-oblivoir/memhangul-common/ob-toclof.sty | 144 ++ .../latex/kotex-oblivoir/memhangul-ucs/10_5.sty | 82 - .../kotex-oblivoir/memhangul-ucs/fapapersize.sty | 141 -- .../memhangul-ucs/memhangul-common.sty | 1154 -------------- .../memhangul-ucs/memhangul-patch.sty | 20 - .../memhangul-ucs/memucs-enumerate.sty | 49 - .../memhangul-ucs/memucs-setspace.sty | 587 ------- .../memhangul-ucs/ob-koreanappendix.sty | 98 -- .../memhangul-ucs/ob-nokoreanappendix.sty | 96 -- .../kotex-oblivoir/memhangul-ucs/ob-toclof.sty | 144 -- .../kotex-oblivoir/memhangul-x/memhangul-x.sty | 18 +- .../kotex-oblivoir/memhangul-x/xetexko-var.sty | 12 +- .../latex/kotex-oblivoir/memhangul-x/xob-font.sty | 62 +- .../latex/kotex-oblivoir/memhangul-x/xob-lwarp.sty | 177 +++ .../tex/latex/kotex-oblivoir/oblivoir-base.cls | 603 ------- .../tex/latex/kotex-oblivoir/oblivoir-utf.cls | 613 +++++++ .../tex/latex/kotex-oblivoir/oblivoir-xl.cls | 531 +++++++ .../tex/latex/kotex-oblivoir/oblivoir-xlua.cls | 497 ------ .../tex/latex/kotex-oblivoir/oblivoir.cls | 59 +- .../tex/latex/kotex-oblivoir/xoblivoir.cls | 47 +- Master/tlpkg/libexec/ctan2tds | 1 + 37 files changed, 6885 insertions(+), 6551 deletions(-) delete mode 100644 Master/texmf-dist/doc/latex/kotex-oblivoir/doc/oblivoir-simpledoc.pdf delete mode 100644 Master/texmf-dist/doc/latex/kotex-oblivoir/doc/oblivoir-simpledoc.tex delete mode 100644 Master/texmf-dist/doc/latex/kotex-oblivoir/doc/oblivoir-test.tex create mode 100644 Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-simpledoc.pdf create mode 100644 Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-simpledoc.tex create mode 100644 Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-test.tex create mode 100644 Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/10_5.sty create mode 100644 Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/fapapersize.sty create mode 100644 Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memhangul-common.sty create mode 100644 Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memhangul-patch.sty create mode 100644 Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memucs-enumerate.sty create mode 100644 Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memucs-setspace.sty create mode 100644 Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/ob-koreanappendix.sty create mode 100644 Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/ob-nokoreanappendix.sty create mode 100644 Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/ob-toclof.sty delete mode 100644 Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/10_5.sty delete mode 100644 Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/fapapersize.sty delete mode 100644 Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memhangul-common.sty delete mode 100644 Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memhangul-patch.sty delete mode 100644 Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memucs-enumerate.sty delete mode 100644 Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memucs-setspace.sty delete mode 100644 Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/ob-koreanappendix.sty delete mode 100644 Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/ob-nokoreanappendix.sty delete mode 100644 Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/ob-toclof.sty create mode 100644 Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-lwarp.sty delete mode 100644 Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-base.cls create mode 100644 Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-utf.cls create mode 100644 Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-xl.cls delete mode 100644 Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-xlua.cls diff --git a/Master/texmf-dist/doc/latex/kotex-oblivoir/ChangeLog b/Master/texmf-dist/doc/latex/kotex-oblivoir/ChangeLog index ab21d7db9d0..c969d9c9d62 100644 --- a/Master/texmf-dist/doc/latex/kotex-oblivoir/ChangeLog +++ b/Master/texmf-dist/doc/latex/kotex-oblivoir/ChangeLog @@ -1,3 +1,17 @@ +2020-02-09 Kangsoo Kim + + Version 2.2 + + * Full integration of oblivoir.cls and xoblivoir.cls. + * Bug fixes. + * oblivoir.cls: version 2.2 + * oblivoir-utf.cls: version 0.8.2 + * oblivoir-xl.cls: version 0.8.4 + * memhangul-x.sty: version 11.11 + * xetex-var.sty: version 0.14 + * xob-font.sty: version 0.8 + * xob-lwarp.sty: new file + 2017-02-03 Kihwang Lee Version 2.1.8 diff --git a/Master/texmf-dist/doc/latex/kotex-oblivoir/README b/Master/texmf-dist/doc/latex/kotex-oblivoir/README index 0193ea7739e..a91b290d9e9 100644 --- a/Master/texmf-dist/doc/latex/kotex-oblivoir/README +++ b/Master/texmf-dist/doc/latex/kotex-oblivoir/README @@ -1,16 +1,15 @@ -kotex-oblivoir -============== +kotex-oblivoir, v2.2 +==================== Introduction ------------ -This package contains the oblivoir class, a document class based on -the memoir class for typesetting Korean documents. kotex-oblivoir +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. +that provide interfaces between the memoir class and the Korean typesetting packages. -kotex-oblivoir belongs to the ko.TeX, a comprehensive Korean typesetting +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. @@ -20,47 +19,7 @@ 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/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/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/ - -### Documents - - README (this file) -> 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/ +* ko.TeX: Korean typesetting Usage ----- @@ -71,38 +30,11 @@ Call `oblivoir.cls` with class options as follows: ### 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 +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[]{} - \setsansfont[]{} - \setmonofont[]{} - \setmainhangulfont[]{FontName} - \setsanshangulfont[]{FontName} - \setmonohangulfont[]{FontName} - \setmainhanjafont[]{FontName} - \setsanshanjafont[]{FontName} - \setmonohanjafont[]{FontName} - -Oblivoir class also has its own commands for specifying Korean fonts. - - \setkormainfont[]()()() - \setkorsansfont[]()()() - \setkormonofont[]()()() - ### Sample document Please refer to the `oblivoir-test.tex` file provided by this package. @@ -110,7 +42,7 @@ Please refer to the `oblivoir-test.tex` file provided by this package. License ------- -kotex-oblivoir is licensed under the LaTeX Project Public +kotex-oblivoir is licensed under the LaTeX Project Public License (LPPL) version 1.3c or later. Contacts @@ -118,4 +50,3 @@ Contacts Please report any errors or suggestions to the package maintainer, Kihwang Lee . - 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 deleted file mode 100644 index 8863e70e992..00000000000 Binary files a/Master/texmf-dist/doc/latex/kotex-oblivoir/doc/oblivoir-simpledoc.pdf and /dev/null differ diff --git a/Master/texmf-dist/doc/latex/kotex-oblivoir/doc/oblivoir-simpledoc.tex b/Master/texmf-dist/doc/latex/kotex-oblivoir/doc/oblivoir-simpledoc.tex deleted file mode 100644 index 562a9f01908..00000000000 --- a/Master/texmf-dist/doc/latex/kotex-oblivoir/doc/oblivoir-simpledoc.tex +++ /dev/null @@ -1,1591 +0,0 @@ -% !TEX Encoding = UTF-8 Unicode -%% oblivoir-simpledoc.tex -%% written by Nova De Hi, 2015/04/19 -%% public domain. -%% -%% part of oblivoir -%% -% arara: xelatex -% arara: xelatex -% arara: lmkclean -\documentclass[ - 12pt, - a4paper, - kosection, - footnote, - nobookmarks, - microtype, -]{oblivoir} - -\usepackage{fapapersize} -\usefapapersize{*,*,30mm,*,35mm,*} - -\usepackage{kotex-logo} - -\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\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 - -\IfpxlTeX*{x,l} -{ - \defaultfontfeatures{Renderer=OpenType} - \setkomonofont(NanumBarunGothic-YetHangul.ttf)[Scale=0.9] - \setobmonofont(Menlo)[Scale=.9] - \setobmainfont(Minion Pro) - \setobsansfont(Myriad Pro) - \setkomainfont[KoPubBatang ](Light)(Bold) -} - -\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} - -\IfpxlTeX*{p,x} -{ - \usepackage[normalem]{ulem} -} - -\begin{document} - -\title{초간단 \obclass{} v2.1 사용법} - -\date{2015년 4월} - -\author{x-ob-liv-oir } - -\maketitle - -\begin{abstract} -\obclass{} 클래스 2.0 버전은 그 동안 별도의 브랜치로 개발되어 오던 -\xobclass와 \obclass를 통합하여 완전히 동일한 클래스가 되었다. -이 문서는 \obclass{} 즉 \xobclass를 -사용하는 방법을 간략히 기술한다. -\end{abstract} - -\tableofcontents* - -\clearpage - -\section{\obclass와 \xobclass{}} - -%\xobclass{}는 \obclass{}에서 파생된 클래스이다. -%\obclass{}가 \LaTeX, pdf\LaTeX 을 위한 것이라면, \xobclass{}는 Lua\LaTeX이나 \XeLaTeX 을 위한 것이다. -%이 글은 \XeLaTeX\oblivoirallowbreak 으로 \xobclass{}를 쓰려 하는 경우에 대해서만 기술한다. Lua\LaTeX{}에 -%대해서는 별도로 특기할 만한 것이 없기도 하려니와 아직 준비가 미흡하여, 차후로 미룬다.\footnote{% -% 준비가 미흡하다는 것은 \xobclass{}의 입장에서 하는 말이다. 현재도 \xobclass{}를 통한 -% Lua\LaTeX 은 훌륭하게 사용할 수 있다, 고 생각하고 있다.} - -\koTeX\ 2.0 (2013/09/30)의 등장\footnote{% - \texttt{texdoc kotex} 명령을 내리면 kotexdoc 문서를 읽을 수 있다.}% -으로 \koTeX\ 패키지군은 이전의 텍 엔진\footnote{% - 이른바 ``레거시 텍''이라 하는 \hologo{TeX}, \hologo{eTeX}, \hologo{pdfTeX}을 - 가리킨다.}% -과 새로운 엔진들, \hologo{pdfLaTeX}, \hologo{XeLaTeX}, -\hologo{LuaLaTeX}에 모두 일관성있게 대응하도록 변모하였다. -이러한 변화에 발맞추어, 레거시 텍 엔진을 위한 \obclass와 새로운 텍 엔진(주로 \hologo{XeLaTeX})을 위한 \xobclass로 -나누어져 있던 oblivoir 클래스도 체계를 정비하여 그 구별을 없애고 동작하는 엔진에 따라 동작 방식을 -자동으로 대응하도록 고쳐졌다. 그러므로, 현재 \obclass로 작성하는 문서는 -(사용자가 몇 가지 주의깊게 엔진별 동작을 지정하기만 하면) 모든 텍 엔진에서 에러 없이 컴파일되고 -유사한 결과를 얻을 수 있게 되었다.\footnote{% - 폰트 사용 방식의 차이로 인해 ``완전히 동일한'' 결과를 보증하지는 않는다.} - -그 동안 \obclass는 비교적 복잡한 길을 거쳐왔다. 대강 정리하면, -\begin{enumerate}[(1)]\tightlist -\item H\LaTeX\ (나중의 kotex-euc) 한글을 memoir에서 쓰기 위하여 개발된 memhangul. 이 스타일은 더이상 사용할 수 없다. -\item dhucs (현재의 kotex-utf) 유니코드 한글을 memoir에서 쓰기 위하여 개발된 memhangul-ucs -\item memhangul-ucs를 바탕으로 memoir 클래스를 통하여 문서를 만드는 fake-article -\item fake-article을 oblivoir로 개명 -\item \hologo{XeTeX}을 위한 xoblivoir -\item xoblivoir에 \hologo{LuaTeX} 지원의 추가 -\item xoblivoir와 oblivoir를 통합 -\end{enumerate} -이와 같이 발전하여 온 것이고, 이제 oblivoir와 xoblivoir는 완전히 동일한 클래스가 되었다. - -이 문서는 \obclass의 고유한 옵션과 폰트 설정 방식에 대해서만 설명한다. 실제로 \obclass를 -이용하여 문서를 작성할 때는 다음 세 층위의 명령이 모두 사용가능하다. -\begin{enumerate}[(1)]\tightlist -\item memoir 명령 -\item 한글 엔진(\koTeX, \XeTeX-\ko, \LuaTeX-\ko)의 명령 -\item oblivoir 명령 -\end{enumerate} - -이 각각의 명령에 대한 정보를 얻으려면, memoir 매뉴얼(\texttt{texdoc memman}), -한글 패키지 매뉴얼(예컨대, \texttt{texdoc kotex}, \texttt{texdoc xetexko})을 -읽어야 한다. -%이 문서에서는 위의 두 패키지 층위의 명령군에 대해 언급할 때, 여백에 \fbox{memoir}, \fbox{kotex}등을 -%표시하겠다. 그리고 엔진별로 고유한 옵션과 명령에 대해서는 해당 사항을 본문에서 밝힌다. - -위의 두 층위의 문서에서 설명하지 않는 \obclass에 대한 정보를 이 문서에서 얻을 수 있다. - -%%\xobclass{}는 김도현 교수의 xkospace 및 xetexko-josa 패키지를 바탕으로 하고 있다. -%\xobclass{}는 김도현 교수의 xetexko 패키지를 바탕으로 하고 있다. 이 패키지는 -%2008년 10월 12일에 처음 발표되었으며 그 이전에 시험되던 xkospace를 확장하고 다듬은 것이다. -%xetexko-space, xetexko-josa, xetexko-dotemph 및 xetexko-font가 포함되어 있는데 -%\xobclass{}는 이를 바탕으로 하면서 사용자 인터페이스를 조금 확장하고 -%\obclass{}와 호환되게 한 것이다. -%\xobclass{}의 쉬운 인터페이스를 통하여 현재 \TeX 에서의 한글 구현이 어느 단계까지 -%와 있는지를 일반 사용자도 경험하는 기회가 되기를 바란다. 한편 2010년 학술대회를 -%전후하여 \xetexko 는 한글 조판과 식자에 있어 ``거의 완전한 단계''에 이르렀다. -%\xobclass 에서 시도하던 많은 부분이 \xetexko\ 자체에 의해 구현되게 된 것도 많으며 -%실제로 출판 현장에서 이를 활용하는 데 부족함이 없을 정도가 되었다. 이제 \xobclass 는 -%memoir 클래스를 \xetexko 와 함께 쓰도록 하는 클래스라는 데 더 큰 의의가 있게 되었다. -%한글 \TeX\ 개발에 고군분투하시는 김도현 교수께 감사의 말씀을 드린다. -% -%\xetexko 의 이해 없이 \xobclass 를 사용하기 어렵다. 그러므로 반드시 -%\xetexko\ 매뉴얼을 읽어두는 것은 매우 중요하다. \xobclass 에서 -%\xetexko 명령은 원칙적으로 모두 사용할 수 있다. \xetexko\ 매뉴얼을 -%읽으려면, -%\begin{verbatim} -%$ texdoc xetexko -%\end{verbatim} -%를 실행한다. - -\section{oblivoir와 memhangul} - -memhangul은 memoir를 한글 문서 작성에 사용할 수 있게 하기 위하여 개발된 스타일 패키지이다. -원래 독립된 스타일로서 개발되고 유지되어 왔지만, 현재는 더이상 독립적인 스타일로 사용되지 않으며 -oblivoir의 핵심 기능을 정의한 서브스타일로서만 유지된다. -즉 oblivoir란 memhangul을 이용하는 한글 문서작성 클래스라고 할 수 있다. - -\section{한글 드라이버} - -\obclass는 현재 실행되는 텍 엔진의 종류에 따라 한글 식자를 위하여 다음과 같은 한글 패키지를 -부른다. 이 한글 패키지들을 (편의상) \obclass의 한글 드라이버라고 한다. - -\begin{center} -\begin{tabu}to.75\columnwidth{X|X|X} -\hline -oblivoir 옵션 & 텍 엔진 & 한글 식자 패키지 \\ \hline -no option & \hologo{pdfLaTeX} & \koTeX-utf \\ -no option & \hologo{XeLaTeX} & \XeTeX-\ko \\ -no option & \hologo{LuaLaTeX} & \LuaTeX-\ko \\ \hline -\end{tabu} -\end{center} - -\section{옵션들} - -\subsection{memoir 옵션} - -원칙적으로 oblivoir는 memoir의 모든 옵션을 동일한 의미로 다 받아들인다. 여기에 해당하는 것으로 -다음과 같은 것이 있다. -\begin{description} -\item[용지 크기] a6paper, a5paper, a4paper, a3paper, b6paper, b5paper, b4paper, b3paper, mcrownvopaper, mlargecrownvopaper, mdemyvopaper, msmallroyalvopaper, dbillpaper, statementpaper, executivepaper, letterpaper, oldpaper, legalpaper, ledgerpaper, broadsheetpaper, pottvopaper, foolscapvopaper, crownvopaper, postvopaper, largecrownvopaper, largepostvopaper, smalldemyvopaper, demyvopaper, mediumvopaper, smallroyalvopaper, royalvopaper, superroyalvopaper, imperialvopaper. -\item[본문 기본 글자 크기] 9pt, 10pt, 11pt, 12pt, 14pt, 17pt, 20pt, 25pt, 30pt, 36pt, 48pt, 60pt, *pt, extrafontsizes -\item[프린팅 옵션] twoside, oneside, onecolumn, twocolumn, openright, openleft, openany, final, draft, -ms, showtrims -\item[기타 옵션] leqno, fleqn, openbib, article, oldfontcommands -\end{description} -이상의 옵션의 의미와 효과에 대해서는 memoir 매뉴얼을 읽어보라. - -\subsection{한글 드라이버의 옵션} - -한글 식자를 위하여 로드되는 패키지에는 고유한 옵션들이 있다. \obclass는 다음과 같은 옵션을 해당 -한글 드라이버에 넘겨준다. - -\begin{description} -\item [\koTeX-utf] hangul, \uline{hanja}, nojosa, \uline{nonfrench}, \uline{finemath}, \uline{strictcharcheck} -\item [\XeTeX-\ko] hangul, hanja, unfonts.\footnote{unfonts 옵션은 \obclass에서 조금 다르게 동작하므로 아래 해당 부분을 참고할 것.} -\item [\LuaTeX-\ko] hangul, hanja, unfonts -\item [cjk-\ko] hangul, hanja, nojosa, \uline{usedotemph}, \uline{usecjkt1font}. usecjkt1font 옵션은 uset1font로 입력해도 받아들인다. -\end{description} -이 가운데 [hangul] 옵션은 사실상 지정할 필요가 없다. hangul 옵션이 주어져도 예들 들어 절 숫자의 형식 같은 것은 \obclass\ 방식이 유지되기 때문이다. 그러므로 밑줄 그은 옵션만이 \obclass에서 의미가 있다고 할 것이다. - - -\subsection{\obclass의 옵션} - -\subsubsection{한글 드라이버를 지정하는 옵션} - -다음 두 옵션은 한글 드라이버를 강제로 지정하는 옵션이다. 이 옵션을 쓸 때는 오직 \hologo{pdfLaTeX}만을 -실행한다는 의미임을 기억해두자. -\begin{description} -\item [cjk] cjk-\ko 패키지로 한글을 표시한다. 이 패키지는 memhangul의 일부 기능과 충돌할 가능성이 -있으며 memhangul은 원칙적으로 cjk-\ko를 지원하지 않는다. 그러나 한글 표현만을 위해서라면 이 옵션으로 -문서를 작성할 수 있다. -\item [dhucs] \koTeX-utf로 한글을 표현한다. \hologo{pdfLaTeX}에서 디폴트이며 memhangul-ucs는 -이 패키지를 의도하고 작성된 것이다. -\end{description} - -따라서, 다음 옵션들은 해당하는 드라이버에서만 의미를 갖는다. -\begin{description} -\item [strictcharcheck] \koTeX-utf. 엄격한 문자 검사. -\item [finemath] \koTeX-utf. 한글 간격 미세 조정. -\item [nofinemath] \koTeX-utf. finemath 기능을 끔. -\item [usedotemph] cjk-\ko. \verb|\dotemph| 명령 사용 가능. -\item [uset1font] cjk-\ko. 라틴문자도 nanumtype1으로 찍음. -\item [interwordHWP] \koTeX-utf. 단어 간격을 조금 더 넓게 벌려준다. -\item [interworddefault] \koTeX-utf. 단어 간격을 적당히 벌려준다. -\end{description} - -\subsubsection{레거시 텍과 관련된 옵션} - -다음 옵션은 \hologo{pdfTeX} 엔진 또는 \hologo{eTeX} 엔진에서만 의미를 갖는다. 이 옵션이 주어지고 -새로운 텍 엔진이 운영될 때는 무시된다. -\begin{description} -\item [dvips] \obclass로 작성된 문서를 latex $\rightarrow$ dvips $\rightarrow$ ps2pdf 순으로 -컴파일하려 할 때, 즉 pstricks를 이용할 때 이 옵션을 주어야 한다. 이 옵션을 준 문서에 대하여 \hologo{pdfLaTeX}을 -실행하면 안 된다. -\item [romanfixed] 로마 글자의 크기와 위치를 미세조정하는 옵션으로서 untype1을 쓸 때 유용하다. 현재 상황에서는 의미가 크지 않음. -\end{description} - -\subsubsection{여러 가지 옵션} - -다음은 \obclass 의 고유한 옵션들이다. -\begin{description} -\item [chapter] \verb|\chapter| 명령을 제대로 쓸 수 있게 해준다. 이 옵션이 없으면 \obclass는 \verb|\section|부터 시작하는 문서라고 간주하고 식자하지만 \verb|\chapter|에서 에러를 내지는 않는다. -\item [kosection] \verb|\section|에 대하여 ``제''와 ``절''을 찍어주도록 하는 옵션이다. -\item [amsmath] amsmath.sty와 amssymb.sty를 미리 로드해주는 옵션이다. -\item [adjustmath] 한글 문서의 행간격이 벌어짐으로 인해서 display 수식의 전후에 너무 많은 공백이 생기는 것을 막아준다. -\item [arabicfront] \verb|\frontmatter| 부분의 페이지 숫자를 아라비아 숫자로 찍는다. 기본값은 로만 숫자. -\item [footnote] 각주 번호와 숫자를 한국식으로 식자한다. -\item [figtabcapt] 그림과 표에 \cnm{그림 1}과 같은 방식으로 캡션을 단다. -\item [gremph] 글꼴 대체 강조 방식을 쓴다. 이것이 기본값이다. -\item [itemph] 기울인 글꼴 강조 방식을 쓴다. -\item [nonfrench] nonfrenchspacing. -\item [hangulpagestyle] 본문의 페이지 스타일을 hangul 양식으로 한다. -\item [nokorean] 사실상 memoir와 거의 같은 상태가 되게 한다. 즉 pdf bookmark도 만들지 않으며 한글도 찍히지 않는다. -\item [pdfbookmark] nokorean 옵션을 주면서도 북마크는 만들도록 hyperref을 로드해주는 역할을 한다. nokorean 옵션이 주어지지 않을 때는 무의미함. -\item [10.5pt] 본문 활자 크기를 10.5pt로 한다. -\item [quotespacing] quote, quotation 환경의 줄간격을 `좁은 줄간격'으로 줄인다. -\item [nanum] 나눔명조/나눔고딕 트루타입 글꼴을 기본 글꼴로 사용하도록 설정한다. -\item [hcr] 함초롬 LVT 글꼴을 기본 글꼴로 사용하도록 설정한다. -\end{description} - -\bigskip - -다음 옵션들은 특별한 상황에서 의미를 가지는 것이다. -\begin{description} -\item [lyxhyper] LyX에서 문서를 작성할 때 LyX이 강제로 hyperref을 로드하는 기능과 \obclass의 hyperref 로드 기능이 충돌하는 것을 방지하기 위한 것이다. -\item [tocentry] chapter 옵션과 같이 쓰여서 toc, lof의 엔트리를 조정해준다. -\item [microtype] 이 옵션이 지정되면 \hologo{pdfTeX}과 \hologo{LuaTeX}에서 microtype 패키지를 불러온다. 다만 \hologo{XeTeX}에서는 문장부호 끌어내기를 위한 xetexko-hanging 스타일을 로드한다. -\item [subfigure] subfig 패키지 대신 subfigure 패키지를 쓰기 위해서 충돌이 있는 코드 하나를 수정해준다. -\item [manualfontspec] fontspec 패키지를 자동으로 로드하지 않고 사용자가 직접 설정하고자 할 때 -\item [fontspec] fontspec 패키지에 넘겨줄 옵션을 지정한다. -\item [xcolor] xcolor 패키지에 넘겨줄 옵션을 지정한다. -\item [hyperref] hyperref 패키지에 넘겨줄 옵션을 지정한다. -\item [moreverb] moreverb 패키지를 사용하려 할 때. 약간의 충돌을 해결해준다. -\item [preload] \verb|\documentclass|가 시작되기 전에 로드해야 할 패키지를 지정한다. -\item [preloadoption] preload할 때 함께 넘겨줄 옵션을 쓴다. -\item [faht, fawd] 특별히 pdf 사이즈를 조절할 필요가 있을 때 사용한다. 특히 flowfram 패키지를 위해서 필요하다. -\item [noreserveinserts] \hologo{eTeX}의 reserveinserts 확장 코드를 억제한다. 일반적으로 사용할 필요 없다. -\item [moreroom] \hologo{pdfTeX}에서 용량 부족으로 에러가 발생할 때 특별히 지정한다. -\end{description} - -\bigskip - -다음 옵션들은 현재 큰 의미를 지니지 않는 것들이다. 대부분 \koTeX 의 발전과 더불어 \obclass에서 특별히 지정할 필요가 없어졌다. -\begin{description} -\item [unfonts] 은 글꼴을 사용하게 한다. 레거시 텍에서는 untype1이고 새로운 텍 엔진에서는 은글꼴 트루타입이 기본 글꼴이 된다. -\item [nounfonts] 은 글꼴을 사용하지 않게 한다. 이것이 디폴트이다. -\item [latinquote] 따옴표를 라틴 글꼴에서 찍도록 강제하는 옵션이었다. 현재는 아무런 작용도 하지 않는다. -\item [oldhangul] 옛한글 식자를 위한 옵션이었다. 현재는 이 옵션이 없어도 옛한글을 잘 처리한다. -\item [nowinname] 은글꼴을 위해서 마련된 옵션이었으나 현재는 무의미하다. -\end{description} - - -%\section[\obclass{}와 비교]{\obclass{}\footnote{현재 documentclass 이름으로 oblivoir를 쓰든 xoblivoir를 쓰든 실행되는 엔진에 따라 기능이 설정된다. 그러나 여기서는 pdf\TeX\ 엔진에서 쓰던 legacy oblivoir를 가리키는 경우에 ``\obclass''라고 하였다.}와 비교} - -%%%다음 옵션은 disable되었다. 아무런 작용이 없는 것이므로 에러를 -%%%발생하지는 않지만 효과도 없다. -%%%\begin{description} -%%%\item [{[dvips]}] 당연히 더이상 쓸 일이 없으므로. -%%%\item [{[romanfixed]}] 폰트 관련된 옵션은 대부분 비활성화된다. -%%%\item [{[finemath]}, {[nofinemath]}] 이 옵션은 disable되었다. finemath에 관련된 사항은 \xetexko 에서 모두 구현하고 있다. -%%%%그러나 완전한 호환은 아직 되지 않는다. 대표적인 예가 괄호 뒤의 간격이다. -%%%\item [{[strictcharcheck]}] dhucs 특유의 옵션이었다. -%%%\end{description} -%%% -%%%다음 옵션이 새로 생겨났다.\footnote{% -%%% [latinquote] 옵션은 더이상 아무런 작용을 하지 않는다. -%%%} -%%%\begin{description} -%%%%\item [{[latinquote]}] 홑따옴표와 겹따옴표를 식자하는 폰트를 라틴 문자 폰트로 할 것인가 한글 폰트로 할 것인가를 결정하는 -%%%%것이다. 이 옵션이 주어지면 라틴 문자 폰트의 겹따옴표를 식자한다. -%%%\item[{[manualfontspec]}, {[fontspec]}] 이 옵션의 동작에 대해서는 \myREF{sec:fontspec}{sec:폰트스펙}\를 보라. 2011/09/15 이전 버전에서는 옵션 명칭이 [fontspec]이었으나 이 옵션은 다른 기능으로 쓰이게 되었다. -%%%\item[{[moreverb]}] 이 옵션의 동작에 대해서는 \myREF{sec:moreverb}{sec:모아버브}\를 보라. -%%%%\item[{[oldhangul]}] 이 옵션의 동작에 대해서는 \ref{sec:올드한글}\를 보라. -%%%\item[{[amsmath]}] 이 옵션의 동작에 대해서는 \myREF{sec:ams}{sec:에이엠에스}\를 보라. -%%%\item[{[nowinname]}] 이 옵션의 동작에 대해서는 \myREF{sec:nowinname}{sec:노윈네임}\를 보라. -%%%%\item[{[verthangul]}] 이 옵션의 동작에 대해서는 \ref{sec:세로쓰기}\를 보라. %%% not implemented -%%%\item [{[microtype]}] 이 옵션의 동작에 대해서는 \myREF{sec:microtype}{sec:마이크로타입}\를 보라. -%%%\end{description} -%%% -%%%다음 옵션은 그대로 있지만 동작이 달라졌다. -%%%\begin{description} -%%%\item [{[itemph]}] emph 또는 itshape에 한글을 기울여서 식자한다. -%%%\item [{[gremph]}] emph 또는 itshape에 한글을 바로 선 폰트로 식자한다. -%%%\end{description} -%%%%gremph와 itemph의 차이는 이제 italic인가 아닌가의 차이뿐이다. -%%% -%%%다음 옵션은 특별한 예외 처리를 위한 것이다. 일반적인 경우에는 쓰이지 않는다. -%%%\myREF{sec:flowfram}{sec:플로프렘}\를 보라. -%%%\begin{description} -%%%\item [{[faht]}, {[fawd]}] 문서 전체의 stockheight와 stockwidth를 미리 설정한다. -%%%\item[{[preload]}, {[preloadoption]}] 이 옵션의 동작에 대해서는 \myREF{sec:preload}{sec:프리로드}\를 보라. -%%%\end{description} -%%% -%%%레거시 ko.\TeX 의 폰트 설정 명령들은 전혀 동작하지 않고 에러를 토해낸다는 사실을 알아야 한다. 즉, \texttt{\textbackslash{}SetAdhocFonts}라든가 -%%%\texttt{\textbackslash{}SetHangulFonts} 같은 명령은 제거되어 있다. \XeLaTeX{}을 -%%%쓰는 목적이 주로 폰트 문제와 관련이 있으므로, 종래의 폰트 설정 방식은 모두 \XeLaTeX{} 방식으로 바꾸도록 해야 한다. -%%%%다음은 제거된, 더이상 사용할 수 없는 명령들이다. -%%%%\begin{verbatim} -%%%% \SetHangulFonts -%%%% \SetHanjaFonts -%%%% \SetAdhocFonts -%%%% \SetGremphFonts -%%%% \interhchar -%%%%\end{verbatim} -%%% -%%%그밖의 모든 \obclass{}의 기능을 \xobclass{}에서 쓸 수 있다. -%%%한글 문서 작성에 있어서 표준이 되고자 하는 \obclass{}를 -%%%\XeTeX 에서\explpunc.Lua\TeX 에서도.\ 편리하게 사용할 수 있게 되기를 바라 마지 않는다. - -\section{폰트 설정 방식에 대한 간단한 설명}\myLabel{sec:font}{sec:폰트} - -\subsection{\koTeX-utf 엔진} - -글꼴 선택 명령 \verb|\SetHangulFonts|, \verb|\SetHanjaFonts|, \verb|\SetAdhocFonts|와 더불어, -gremph 옵션이 주어졌을 때 \verb|\SetGremphFonts| 등을 사용한다. -이 명령의 의미와 용법에 대해서는 \koTeX\ 사용설명서를 참고하라. - -아무런 지정도 없을 경우 nanumtype1으로 식자하고, 이것은 \koTeX-utf의 디폴트 상황과 동일하다. -gremph는 \koTeX-utf에서 \verb|\usepackage{dhucs-gremph}|를 선언한 경우와 동일하게 -동작하므로 별도로 이 스타일을 얹을 필요는 없다. - -\subsection{\XeTeX-\ko, \LuaTeX-\ko} - -한글 드라이버들은 라틴 문자 폰트와 한글/한자 폰트를 분리하는 것을 기본으로 하고 있다. -% \footnote{% - % 한글과 라틴 문자을 분리하지 않으려 할 경우, fontspec 패키지의 - % \texttt{\textbackslash{}fontspec} 명령 등을 사용할 수 - % 있다. 그러나 폰트 테스트 등의 특별한 목적이 아니고 일반 - % 문서 작성 상황에서 이렇게 써야 할 이유가 별로 없을 것이다. -% % 예를 들어 라틴 문자자까지 바탕체를 쓰면: -% % {\setkormainfont{바탕}\fontspec{바탕}% -% % 한글 바탕체. The quick brown fox jumps over the lazy dog.} - % 또한, 한글 폰트와 한자 폰트를 분리할 수 있는데, 이에 대해서는 - % \ref{sec:디폴트}\를 참조하라. - % } -한글과 라틴 문자 글꼴을 분리하지 않으려 할 경우, -\xetexko\ 명령인 -\verb|\disablekoreanfonts|를 선언한다. -%\footnote{% -% \XeTeX{}ko 2008/11/10 이후 버전.} -%%\xetexko 를 따라서 \verb|\hangulmarks|와 같은 명령군이나 \verb|\xetexkofontregime| -%%명령을 활용하면 된다. 이에 대해서는 \xetexko\ 매뉴얼을 (반드시) 참조하라. -이렇게 하면 한글 글꼴은 -라틴 문자 글꼴을 따라가게 된다. 즉, \texttt{\textbackslash setmainfont} -등으로 선언된 글꼴이 한글과 라틴 문자에 동시에 식자된다.\footnote{% - 이외에도 한글-라틴 문자 글꼴의 분리에 따르는 여러 가지 옵션 정의에 관련된 - \xetexko, \luatexko\ 매크로가 있으므로 이에 대해서는 \xetexko, \luatexko\ 매뉴얼을 - 참고하라. -} - -\paragraph{라틴 문자} -라틴 문자 폰트는 fontspec 패키지의 방식을 따른다. -설정과 사용에 대해서는 fontspec 패키지 문서를 참고하라. -매우 방대하고 훌륭한 문서이다. - -\begin{boxedverbatim} -\setmainfont{} -\setsansfont{...} -\setmonofont{...} -\end{boxedverbatim} - -이 명령의 옵션으로 \verb|[Ligatures=TeX]|을 주면 \verb|``|, \verb|---|와 같은 -입력이 ``, ---와 같이 나타난다. 대부분의 텍 소스에는 이런 이른바 텍 리거쳐를 사용하는 것이 -일반적이므로 이 옵션을 지정하는 것이 좋다. 최신 버전의 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{verbatim} -와 같이 지정하면 된다. - -\paragraph{한글과 한자} -한글 폰트는 다음 명령을 사용하여 설정한다. 자세한 사항은 \xetexko, \luatexko\ 매뉴얼을 참고하라. -\begin{boxedverbatim} -\setmainhangulfont[Options]{FontName} -\setsanshangulfont[Options]{FontName} -\setmonohangulfont[Options]{FontName} -\setmainhanjafont[Options]{FontName} -\setsanshanjafont[Options]{FontName} -\setmonohanjafont[Options]{FontName} -\end{boxedverbatim} - -이밖에 특별한 명령으로 \luatexko에는 fallbackfont를 위한 명령이 있다. -\begin{boxedverbatim} -\setmainfallbackfont -\setsansfallbackfont -\setmonofallbackfont -\end{boxedverbatim} -\xetexko에는 이 명령이 없는 대신 \cs{newfontfamily}\cs{fallbackhanjafont}를 이용하여 -fallback 폰트를 정의할 수 있다. 이 기능은 한자(또는 한글/한자) 글꼴에서도 찾을 수 없는 한자를 -식자하기 위해서 사용된다. - -여기 언급하지 못한 다양한 명령들이 제공되므로 해당 매뉴얼을 반드시 읽어보기 바란다. -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{임시 폰트 교체} -문장을 작성 중에 일시적으로 폰트를 교체하기 위한 명령으로 -\begin{boxedverbatim} -\adhochangulfont -\adhochanjafont -\end{boxedverbatim} -이 정의되어 있다. 이 명령들은 \verb|\setmainhangulfont| 명령과 같은 방법으로 사용한다. 또한, -\begin{boxedverbatim} -\hangulfontspec -\hanjafontspec -\end{boxedverbatim} -명령도 정의되어 있으며, \verb|\fontspec| 명령이 적용되지 않는 한글과 한자 영역에 효력을 발휘하므로 필요한 대로 쓸 수 있다. - -\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''로 되어 있다. 이렇게 글꼴 자체가 글꼴 가족에 대한 정보를 가지고 있으면 Family만 지정해도 자동으로 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} -\setkomainfont[]()()() -\setkosansfont[]()()() -\setkomonofont[]()()() -\end{boxedverbatim} - -이 세 명령을 사용할 때 주의할 점은 중괄호 \{ \}가 전혀 쓰이지 않는다는 것이다. -입력상 실수하기 쉬우므로 주의를 요한다. - -이러한 폰트 정의 방식은 xoblivoir 클래스의 원래 의도인 `되도록 간단하게 -필요한 것만' 사용하자는 데서 나온 것이다. -%그러므로 옛한글 설정이나 -%자간, 장평 등 복잡한 폰트 속성을 적용하려 한다면 당연히 \xetexko 의 (즉 fontspec의) -%설정 방식을 이용하는 것이 좋다. - -이후의 설명은 \verb|\setkomainfont|에 대해서만 한다. 다른 두 명령의 사용법은 동일하다. -\begin{boxedverbatim} -\setkomainfont(Font Name) -\end{boxedverbatim} -가장 기본적인 사용법은 위와 같다. 중괄호 \verb|{ }|가 아니라 괄호 \verb|( )|를 쓰고 있음에 주의하라. - -\paragraph{긴 명령} -이 명령의 완전한 형태는 다음과 같다. -\begin{boxedverbatim} -\setkomainfont[]% - (regular)% - (bold)% - (italic)% - [hangul-feature]% - []% - (hanja-regular)% - (hanja-bold)% - (hanja-italic)% - [hanja-feature] -\end{boxedverbatim} -모두 열 개의 옵션 인자가 올 수 있는데 그 가운데 적어도 하나의 괄호 옵션 인자는 반드시 있어야 한다. -그러므로 그것(첫번째 regular)은 ``옵션'' 인자가 아니라 그냥 인자이지만 하나만을 중괄호로 묶는 것이 오히려 코딩 -실수를 증가시킬 것으로 보아서 모두 괄호 인자를 사용하도록 했다. -괄호 옵션 인자를 하나만 준다면 그것은 한글 regular 글꼴 이름으로 받아들일 것이다. -나머지 아홉 개의 옵션 인자는 생략 가능하다. 각 옵션 인자가 생략가능하기 때문에 -괄호나 꺾쇠괄호 사이에 스페이스를 남기지 않도록 주의해야 한다. 예를 들어 \verb*|(fontname) [feature]|와 같이 -적으면 스페이스 때문에 옵션 인자의 파싱에 실패할 수 있다. - -기본적으로 폰트 이름은 \verb|( )| 안에 들어간다. 그리고 미리 오는 \verb|[ ]|는 이름의 공통 부분을 축약하기 위한 것이고 끝에 오는 \verb|[ ]|는 속성을 추가하기 위한 것이다. 이 규칙이 두 번 반복된다고 생각하면 되겠다. - -\paragraph{한글과 한자} -이 가운데 앞의 다섯 개는 한글, 뒤의 다섯 개는 한자관련 설정이다. 그런데 예컨대 -\begin{verbatim} -\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} - -한자 설정은 한글 설정 이후에 잇대어 쓰는 것으로 한글 설정 방식과 완전히 똑같다. -실제로 \verb|\setkomainfont(A)[](B)| 명령은 -\begin{verbatim} -\setmainhangulfont{A} -\setmainhanjafont{B} -\end{verbatim} -와 동일하기 때문에 굳이 한자 글꼴을 따로 지정하지 않아도 한자 자면을 가진 한글 글꼴을 설정하면 -한자가 잘 표시된다. -그러나 NanumMyeongjo와 같이 한자 자면이 없는 글꼴이라면 한자 글꼴을 별도로 선언해주어야 할 -것이다. - -한자 폰트 부분을 선언하면 \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} -와 같이 하면 될 것이다. - -한글은 이탤릭이 없지만 우사체를 쓰는 관행이 있다. 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} - -\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} - -이 방식에서 주의할 것은 예컨대 이탤릭 글꼴로 완전히 이름이 다른 것을 쓰고자 한다면 -이런 식으로 할 수 없다는 점이다. - -\paragraph{feature의 추가} -네 번째 옵션 인자는 한글 폰트를 설정할 때 넘겨줄 feature를 지정한다. -\begin{verbatim} -\setkomainfont(HCRBatangLVT)[FakeStretch=0.95,InterHangul=-0.05em] -\end{verbatim} -이것은 장평을 95\%로 하고 자간을 5\% 줄이는 예이다. 여기에 쓸 수 있는 feature에 관해서는 -fontspec 설명서와 \xetexko, \luatexko\ 설명서를 참고하라. - -다섯번째 옵션 인자는 한자의 base name이다. 네번째 없이 다섯번째만 올 수 없으므로 이것을 -설정하려면 -\begin{verbatim} -\setkomainfont(HCRBatangLVT)[][KoPubBatang](Light) -\end{verbatim} -와 같이 적어도 네번째 옵션 인자를 (비우더라도) 지정해야 할 것이다. - -\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{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} -\setobmainfont[]()()()[features] -\end{boxedverbatim} -일반적으로는 거의 의미없는 명령이나 반은 재미로 마련해두었다. - -\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()(){} -\setkorsansfont()(){} -\setkormonofont()(){} -\end{boxedverbatim} -이 명령들도 한자 지정을 위하여 확장가능하다. -\begin{boxedverbatim} -\setkormainfont()(){}% - ()(){} -\end{boxedverbatim} - -괄호 옵션 인자와 중괄호 인자가 있다는 점과 bold, italic, regular의 순서가 -\cs{setkomainfont}와 다르다는 데 주의하라. -이전 버전에 비하여 확장된 기능은 feature를 줄 수 있다는 것이다. -\begin{boxedverbatim} -\setkormainfont(Bold)(Italic){Regular}[Feature] -\end{boxedverbatim} -이런 식으로 마지막 옵션 인자로 feature를 지정하면 유효하다. - -한글과 한자 사이에는 적어도 괄호 인자가 하나는 와야 구별된다. -\begin{verbatim} -\setkormainfont{HCR Batang LVT}(){HYhaeseo} -\end{verbatim} - -이 때문에, 예를 들어 다음과 같이 하는 것은 오류이다. -\begin{verbatim} -\setkormainfont{HCR Batang LVT}[]{HYhaeseo} -\end{verbatim} -한글 feature를 지정하고 한자도 지정하려면 다음과 같이 해야 한다. -\begin{verbatim} -\setkormainfont{HCR Batang LVT}[...](){HYhaeseo} -\end{verbatim} - -한편, \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*{한글 폰트 이름} -\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()(){} -%\setkorsansfont()(){} -%\end{boxedverbatim} -%첫 두 인자를 둘러싼 괄호가 각괄호 []가 아니라 괄호 ()임에 주의하라.\footnote{% -% 이것은 2008/11/09 버전의 변경사항이다. 하위호환성을 제공하지 -% 않으므로 이전의 모든 소스를 수정해야 한다.} -%아무튼 괄호 ()로 둘러싸인 부분은 생략가능하다. 첫 괄호 인자만 있고 -%이탤릭 글꼴을 지정하지 않으면 기본 글꼴로 치환된다. -% -%한글 폰트와 별도의 한자 폰트를 설정할 필요가 있을 때는 다음과 같이 한다. -%\begin{boxedverbatim} -%\setkormainfont()(){}()(){} -%\setkorsansfont()(){}()(){} -%\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{} -%\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으로 폰트 파일의 이름을 부르는 것이다. -이 때 몇 가지 이슈가 있다. -\begin{enumerate}[(가)]\tightlist -\item Windows에서는 한글 폰트 파일 이름을 부를 수 없다. 모든 폰트 파일 이름은 -라틴 문자이어야만 한다. 그 이유는 한글 폰트 파일 이름이 윈도우즈 시스템 인코딩인 -CP949로 불려져야 하는데 우리가 작성하는 tex 원본 파일은 UTF-8 인코딩이므로 -한글 파일 이름을 호출하는 것이 윈도우즈에서 원천적으로 불가능하기 때문이다. - -\item 반면, 시스템 로케일이 utf-8인 매킨토시나 리눅스에서는 한글 폰트 파일 이름도 -ExternalLocation으로 호출할 수 있을 것이다. 리눅스에서는 모르겠으나 매킨토시에서는 -이것이 가능했다. - -\item texmf.cnf의 OSFONTDIR 변수를 수작업으로 수정해야 하는 경우가 있다. -이것은 폰트를 ``파일 이름으로'' 찾게 하기 위해 필요하다. -Windows의 \TeX\,Live라면 이것을 잘 설정하여 주므로 사용자가 신경쓸 것이 없으나 -경우에 따라 이 변수를 설정해야 할 필요가 있을 수 있다. 맥의 경우, -/usr/local/texlive/2015/texmf.cnf 파일을 열어서\footnote{/usr/local/texlive/2015/texmf/web2c/texmf.cnf를 -수정해서는 안된다.} 다음 내용을 자신의 환경에 맞게 써넣으면 될 것이다. -\begin{verbatim} -OSFONTDIR = {/Library/Fonts;~/Library/Fonts;/System/Library/Fonts;} -\end{verbatim} - -\item ExternalLocation으로 폰트를 호출한다는 것은 kpathsearch를 이용한다는 -것이다. 그러므로 texmf 트리 아래에 해당 폰트를 가져다두고 mktexlsr해도 그 -폰트에 접근할 수 있다. - -\end{enumerate} - -%폰트를 이름으로 호출하는 것은 폰트 자체에 정의된 이름과 파일이름이 다른 것이 너무 많아서 -%손쉽게 말하기가 어렵다. 대부분의 시스템에서(맥 제외) \verb|fc-list| 명령은 \XeTeX 으로 -%부를 수 있는 폰트 이름을 확인하게 해준다. 한편 \LuaTeX의 경우는 좀더 복잡하여 -%\XeTeX 에서 호출할 수 있는 것과 같을 때도 있고 다를 때도 있다. -%파일 이름으로 호출(즉 ExternalLocation)하는 것이 가장 편리할 때도 있다. - -%\subsection{파일 이름 문제: 조금 더}\myLabel{sec:nowinname}{sec:노윈네임} - -%폰트를 이름으로 호출하는 데 있어 결정적으로 중요한 것은 시스템 로케일이다. -%즉, 한글 로케일이면 한글 폰트 이름을 호출할 수 있지만 그렇지 않으면 -%폰트 이름을 한글로 부를 수 없다. -%\xobclass는 한글 로케일의 시스템\explpunc.한글 Windows, Mac OS X 한글 상위 등.\ 일 것을 기본값으로 하고 있다. -%또한 각 운영체제가 인식하는 파일 이름들이 조금씩 다르다. -%이것은 폰트 자체의 특성에 따르는 경우가 많으므로 -%폰트의 이름이나 특성을 사용자가 잘 이해하고 사용하는 도리밖에 없다. -% -%한글이 아닌 로케일의 시스템에서는 [nowinname] 옵션을 지정하고 -%폰트를 라틴 문자 이름으로 호출하면 대부분의 문제가 해결된다. -%\begin{boxedverbatim} -%\documentclass[nowinname]{xoblivoir} -%\setkormainfont(UnBatangBold){UnBatang} -%\end{boxedverbatim} -% -%예컨대 라틴 문자 상위의 매킨토시에서 다음과 같이 한글 폰트를 정의한 경우, -%\begin{verbatim} -%\setkormainfont(NanumMyeongjoOTF-Bold){NanumMyeongjoOTF-Regular} -%\end{verbatim} -%두 번째 선택인자가 없기 때문에 이탤릭 글꼴은 기본 글꼴인 은 바탕으로 -%치환된다. -%이 때, 운영체제가 한글 글꼴 이름 \oblivoirdblquote{은 바탕}을 -%인식하지 못할 수가 있다.\footnote{% -% 김영욱 교수께서 이 문제를 알려주셨다.} -% -%해결책은 앞서 설명한 ExternalLocation으로 폰트를 호출하든가, 아니면 -%이탤릭 옵션까지 모두 채워서 선언하든가 하면 물론 된다. 그러나 좀 -%번거로울 수도 있는 것이다. -%이런 경우에 대비하여 [nowinname] 옵션을 마련해 두었다. 은 글꼴의 -%호출명을 라틴 문자으로 하게 함으로써 한글 글꼴 이름을 인식 못하는 운영체제의 -%문제를 피해가게 하였다.\footnote{% -% 다행히, 은 글꼴은 한글 윈도우즈에서도 라틴 문자 이름으로 호출할 수도 -% 있다. 즉, 한글 윈도우즈에서는 라틴 문자 이름과 한글 이름을 모두 사용할 -% 수 있는 것이다. 그러나 모든 글꼴이 그렇지는 않다.} -%라틴 문자 상위의 매킨토시, 그리고 한글 로케일을 사용하지 않는 리눅스 -%등에서 이 옵션이 활용될 수 있을 것이다. -% -%이 옵션은 xetexko-xobfont, xetexko-var, memhangul-x 등에 부여할 수도 -%있으므로 Beamer 문서를 작성하기 위해 xetexko-var를 쓰는 경우에는 -%xetexko-var의 옵션으로 지시하면 된다. - -\subsection{이탤릭, 기울임} - -한글 글꼴에 이탤릭은 없다. 그러므로 강조를 위해 기울임으로 이탤릭을 대용하는 것은 그다지 권장하지 않는다. 예를 들어 -\begin{verbatim} -\setkomainfont(Malgun Gothic)(* Bold)(Gungsuh) -\end{verbatim} -으로 지정했을 때, 궁서체가 이탤릭에 해당하는 폰트로 설정된다. gremph가 디폴트이므로 궁서체는 곧은 모양으로 찍힌다. - -그러나 디자인 상의 효과를 위해서나 다른 이유에서 -이 서체를 기울이고 싶은 경우가 있을 것이다. -이 경우 \texttt{[itemph]} 클래스 옵션을 지정한다. -그 반대의 경우는 \texttt{[gremph]}이고 이것이 디폴트이다. 부분부분 기울이려 한다면 \cs{hangulfontspec}이나 -\cs{hanjafontspec}, 즉 \cs{adhochangulfont}를 이용하거나 \cs{addhangulfontfeature} 명령을 써서 조작할 수 있으므로 별도로 명령을 만들어두거나 하지 않았다. - -%\subsection{따옴표} -% -%2010년 초, \xetexko 의 급격한 발전과 더불어 \xobclass 가 시도하던 문장부호에 관한 사항은 사실상 -%\xetexko 를 따르는 것으로 충분해졌다. 문장부호를 식자할 때 라틴 문자 폰트의 것, 한글 폰트의 것을 -%자유롭게 선택할 수 있으며 간격 문제도 글꼴 선택의 옵션으로 가능하여졌다. -%\xetexko\ 매뉴얼을 잘 읽어보기 바란다. -% -%이 절은 더이상 의미가 없게 되어 내용을 삭제한다. - -% 따옴표는 한글 폰트의 것을 쓴다. 그러므로 큰따옴표를 입력할 때 \texttt{``}이 아니라 “으로 입력하는 것이 좋다.\footnote{% - % 윈도우즈 한글 입력기에서, ‘ㄴ’과 한자 키를 누르면 - % 이 부호를 입력할 수 있다.} -% 한글 폰트의 따옴표가 신통찮은 것이 너무 많아서, 라틴 문자 폰트의 것을 식자할 수 있도록 해두었다. -% 입력에서 한글 따옴표를 사용하였으나 식자는 라틴 문자 폰트의 것으로 하려 할 때 이 옵션을 쓰면 된다. -% 클래스 옵션 \texttt{{[}latinquote]}로 -% 지정한다. 아마 \texttt{\textbackslash{}textquotedblleft} 등도 되지 않으려나 한다. - -% 한편, \texttt{``}로 입력된 텍스트를 큰따옴표로 식자되게 하는 등, 전통적인 -% \TeX\ 입력 방식이 유지되게 하려면 라틴 문자 글꼴 지정 시에 -% \texttt{[Mapping=tex-text]} 옵션을 주면 된다. ``큰따옴표로 둘러싸인 텍스트''. -% 이 방식을 이용하면 (당연히) latinquote 옵션 여부와 상관없이 모든 따옴표가 라틴 문자 글꼴로 식자될 것이다. - -% \xobclass{}에는 \texttt{\textbackslash{}oblivoirquote}와 \texttt{\textbackslash{}oblivoirdblquote}라는 명령이 -% 정의되어 있다. \oblivoirdblquote{주어진 인자를 따옴표 안에 넣어주는 -% 명령}이다. 입력이 불편하여 일반적으로 이 명령을 쓸 일이 많으리라고 생각하지는 않지만 -% 한글 폰트 따옴표를 쓸 때, 폰트에 따라 따옴표의 간격이 맞지 않는 경우에 -% 이 명령에 별표를 붙이면 앞뒤의 간격을 조금 커닝해준다. 다만 latinquote 옵션이 -% 주어진 경우에는 아무런 효력이 없을 것이다. - -% 참고로, bnm, cnm 등의 \obclass{} \oblivoirquote{괄호 명령}에도 별표(*)를 붙여 앞뒤 간격을 -% 줄여줄 수 있다. |\ccnm{테스트}|, |\ccnm*{테스트}|. - -\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} -\usefastocksize{210mm,297mm} -\usefapapersize{190mm,260mm,1in,*,1in,*} -\end{boxedverbatim} -\texttt{[showtrims]} 옵션이 주어져 있다면 crop 선이 함께 나타날 것이다. - -\subsection{enumerate} - -enumerate 패키지의 enumerate 아이템 항목 머리 설정은 -다음과 같이 한다. 엔진과 무관하게 동작한다. -\begin{boxedverbatim} -\begin{enumerate}[(㉠)] \tightlist -\item 첫째 항목 -\item 둘째 항목 -\end{enumerate} -\end{boxedverbatim} -\begin{enumerate}[(㉠)] \tightlist -\item 첫째 항목 -\item 둘째 항목 -\end{enumerate} -paralist에서 위와 같은 방식으로 항목 머리를 설정하려면 -xob-paralist를 로드한다.\footnote{% - 물론 paralist 자체는 그 이전에 부르거나 - xob-paralist가 스스로 부르도록 할 것이고 xob-paralist 뒤에 - paralist만 별도로 다시 부르면 안 된다. -} - -\subsection{graphicx, xcolor} - -\hologo{pdfLaTeX} 문서는 dvi 드라이버로 어떤 것이 실행될지 모르기 때문에 graphicx 패키지의 -로딩에 주의를 기울여야 한다. 즉 -\marginpar{\fbox{pdftex}} -\begin{boxedverbatim} -\usepackage[]{graphicx} -\end{boxedverbatim} -과 같이 하는 것이 안전하다. 그러나 대부분의 경우 \verb||를 지정하지 않아도 된다. - -\marginpar{\fbox{xe(lua)tex}} -\XeTeX과 \LuaTeX 의 경우는 graphicx 패키지에 대한 명시적인 호출이 없어도 -png, jpg, pdf 그림을 잘 불러온다. 즉 \obclass가 알맞게 이 패키지를 호출하여준다. - % 이 패키지들을 명시적으로 -% 호출하고자 한다면 옵션 없이 로드하든가 \texttt{[xetex]} 옵션을 준다. -% default가 \texttt{[xetex]}이 되도록 설정되어 있어야 하는데, -% KC2008/\TeX{}Live에는 이것이 잘 되어 있다. -%pdf 그림을 불러오거나 색상 관련 명령을 쓰기 위해 -%color 또는 xcolor를 로드하려면, 옵션 설정을 graphicx와 똑같이 하면 된다. -%\begin{boxedverbatim} -%\usepackage{graphicx} -%\usepackage{xcolor} -%\end{boxedverbatim} - -\subsection{참조 인용, 자동 조사} - -자동 조사는 ko.\TeX 에서와 동일하다. -한글 label은 \XeTeX, \LuaTeX 에서 사용할 수 있다. -레거시 텍에서 label 자리에는 한글을 쓸 수 없다. \marginpar{\fbox{pdftex}} - -\medskip - -\noindent\hologo{pdfTeX}:\\ -\noindent\begin{minipage}{.45\textwidth} -\begin{verbatim} - “소절 \ref{sec:font}\를 보라.” -\end{verbatim} -\end{minipage}\hfill -\begin{minipage}{.45\textwidth} -\hfill “소절 \myREF{sec:font}{sec:폰트}\를 보라.” -\end{minipage} - -\noindent\hologo{XeTeX}, \hologo{LuaTeX}:\\ -\noindent\begin{minipage}{.45\textwidth} -\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와 \luatexko에서도 이 명령을 사용할 수 있으며, -oblivoir에서 조금 확장했다. 기본인 -\texttt{\textbackslash dotemph} -외에 -\texttt{\textbackslash circemph} -\texttt{\textbackslash 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[][]{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[.5ex][\useremphstarwhite]{드러냄표} -\end{verbatim} -\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[]{}{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\ 샘플 문서를 하나 제공한다. -이 문서에서 여러 가지 memoir와 \obclass 의 기능을 살펴볼 수 있을 것이다. -oblivoir-test.tex을 컴파일해보고 소스를 검토해보시기 바란다. - -%\subsection{fontspec 옵션과 수학 글꼴}\myLabel{sec:fontspec}{sec:폰트스펙} -% -%fontspec 패키지와 이를 확장한 mathspec 패키지를 이용하여 -%수학 글꼴 일부를 바꾸고자 하거나 mathpazo와 같은 수학 글꼴 세트를 -%적용하고자 할 경우가 있다. 이 때는 다음 두 가지 조치를 해야 한다. -% -%\begin{enumerate}[(1)] -%\item 클래스 옵션으로 [manualfontspec]을 선언한다.\footnote{% -% 2011/09/15 이전 버전에서는 [fontspec]이라는 이름이었다.} -%이 선언으로 -%사용자는 fontspec을 자신의 책임 하에 로드할 수 있다. 심지어 -%xltxtra나 mathspec과 같이 fontspec을 부르는 패키지를 별도로 -%로드할 수 있다. -%\item 윗항의 fontspec 패키지 로드 후에 xetexko-xobfont 패키지를 -%부른다. 이 설정 이후에야 \textbackslash setkormainfont 와 같은 -%명령을 쓸 수 있게 될 것이다. -%\end{enumerate} -%이것은 mathfont를 조절하려면 fontspec의 옵션을 별도로 정의하여 -%상세한 설정을 해야 할 경우가 있기 때문이다. 예컨대 mathpazo를 -%수학 기본 글꼴로 쓰려 한다면 다음과 같이 하는 것이 가능하다. -%\begin{boxedverbatim} -%\documentclass[manualfontspec]{xoblivoir} -%\usepackage{mathpazo} -%\usepackage[math,quiet]{fontspec} -%\usepackage[math,quiet,MnSymbol]{mathspec} -%\setmathsfont{Asana-Math} -%\setmainfont[Ligatures=Common]{Palatino Linotype} -%\usepackage{xetexko-xobfont} -%\end{boxedverbatim} -%이 예보다 간단하게 할 수 있는 것도 많다. 이 예는 설명을 위하여 -%보인 것일 따름이다. -%위의 mathspec 대신 fontspec 패키지 문서에 나와 있듯이 \textbackslash setmathrm -%등의 명령으로 수학 폰트를 조절할 수 있다. -% -%2011/09/15 버전에서 이와 관련한 몇 가지 사항이 추가되었다. -%\begin{enumerate}[(a)] -%\item {[manualfontspec]} 옵션을 주었을 때는 위와 같은 방법으로 fontspec -%패키지를 수동 로드할 수 있다. -%\item {[fontspec=\{no-math\}]}와 같이 fontspec 패키지에 옵션을 미리 설정해줄 -%수 있다. no-math 옵션을 주면 fontspec 명령들이 수식에는 영향을 끼치지 않으므로 -%익숙한 CM-math 글꼴로 수식이 식자된다. -%\item {[preload=mathspec,preloadoption=\{math\}]}와 같이 preload할 패키지에 -%넘겨줄 옵션을 preloadoption으로 지정할 수 있다. -%\end{enumerate} - -%\subsection{옛한글과 세로쓰기}\myLabel{sec:oldhangul}{sec:올드한글} -% 옛한글 글꼴을 사용하려면 [oldhangul] 옵션을 주고 글꼴을 지정해야 한다. -% 세로쓰기는 사용가능하나, 아직 xoblivoir에서 조작하도록 하지는 않았다. -% \xetexko{} 매뉴얼에 옛한글 쓰기에 관한 간략한 소개가 있다. -%2010년 2월, \xetexko 의 옛한글 조판은 거의 완전한 수준에 이르렀다. -%입력을 표준에 맞는 소위 `첫가끝' 코드로 하면서도 사용자 영역(PUA)에 옛한글이 -%들어 있는 글꼴의 옛한글로 mapping이 가능해졌으며, GSUB 옛한글 글꼴(현재 -%알려진 것으로는 은 바탕과 Microsoft Office 2002 Plus Pack의 옛한글 글꼴밖에 없다)을 -%그대로 이용하여 옛한글 식자가 가능하다. -% -%이 역시 \xetexko 의 기능으로서 \xobclass는 더이상 할 일이 없어 이 절의 내용을 삭제한다. - -%\subsection{amssymb}\myLabel{sec:ams}{sec:에이엠에스} -%amssymb 패키지를 로드하려 시도하면 몇 가지 명령이 이미 정의되어 -%있다는 메시지가 나온다. 이 메시지를 줄이려면 amssymb 대신 -%xob-amssymb를 usepackage하도록 한다. -% -%한편, LyX에는 amsmath와 amssymb 패키지를 자동으로 로드하는 기능이 있다. -%이 때문에 사용자가 xob-amssymb를 로드하려 해도 그보다 이전에 amssymb가 -%LyX에 의해 로드되어 의도하는 결과를 얻지 못하는 경우가 있다. 이 때를 위하여 -%[amsmath] 옵션을 마련해두었다. 이 옵션이 활성화되면 amsmath와 xob-amssymb를 -%xoblivoir가 로드해준다. -% -%\subsection{flowfram}\myLabel{sec:flowfram}{sec:플로프렘} -%fapapersize 및 flowfram 패키지와 함께 쓸 때, 첫 페이지의 pdf 사이즈만이 -%fapapersize로 지정한 것을 따라가지 않는 문제점이 있다.\footnote{% -% 이주호 님이 알려주셨음.} -% -%\xobclass 는 memoir의 페이지 출력 루틴을 조금 수정하여 대부분의 경우 -%pdf 사이즈 충돌 문제가 해결되도록 해두었다. -%그러나 어떤 경우 pdf 파일의 첫 페이지와 이후 페이지의 사이즈가 불일치하는 -%문제가 여전히 발생할 가능성이 있어 다음 옵션을 없애지 않았다. -% -%[a4paper] 등 미리 정의된 페이지의 경우는 아무런 문제가 생기지 않는다. -%그러나 memoir 옵션으로 지정할 수 없는 사이즈, -%예컨대 190mm$\times$260mm pdf를 만들고 싶을 때는 어떻게 하는가? -%\xobclass 에게 페이지 사이즈를 강제로 알려주는 방법이 있다. -%\begin{boxedverbatim} -%\documentclass[,fawd=190mm,faht=260mm]{xoblivoir} -%\usepackage{fapapersize} -%\usefapapersize{190mm,260mm,30mm,*,40mm,*} -%\usepackage{flowfram} -%\end{boxedverbatim} -%이제 첫 페이지의 사이즈도 두번째 이후의 것과 같아졌을 것이다. -% -%\subsection{preload}\myLabel{sec:preload}{sec:프리로드} -%일부 패키지 중에는 이따금 memoir 클래스 자체보다 미리 로드되어야 하는 것이 있다. -%대표적인 예가 아랍어를 식자할 때 빼놓을 수 없는 bidi 패키지이다. -%이와 같이 memoir보다 먼저 로드해야 하는 패키지를 쓸 때 다음과 같이 한다. -%\begin{boxedverbatim} -%\documentclass[preload={bidi}]{xoblivoir} -%\end{boxedverbatim} -% -%preload할 패키지에 전해줄 옵션은 다음과 같이 설정한다. -%\begin{boxedverbatim} -%\documentclass[preload={mathspec},preloadoption={math}]{xoblivoir} -%\end{boxedverbatim} -% -%moreverb의 경우도 이렇게 하면 되므로 이제 의미가 없어진 옵션이 되었지만 종래 -%작성된 문서와의 호환을 위해서 없애지는 않았다. -% -%\subsection{moreverb}\myLabel{sec:moreverb}{sec:모아버브} -%이 옵션은 pstricks를 사용하기 위하여 pdfm\-tricks를 이용하려 할 때 -%필요하다. pdfm\-tricks는 moreverb, graphicx, (x)color 패키지가 미리 -%로드되어야 동작하는데, 이 중 graphicx와 xcolor는 문제가 없지만 -%oblivoir(memoir)에서 moreverb는 \textbackslash usepackage 로 -%로드하면 memoir의 일부 명령과 충돌한다. -%이 충돌을 해결해주는 옵션이며, 이 옵션을 준 후에 moreverb를 별도로 -%로드할 필요 없다. moreverb는 \myPageREF{sec:preload}{sec:프리로드}에서 설명하는 -%preload로 미리 로드하는 방법이 있으므로 사실상 obsolete인 옵션이다. -% -%\subsection{microtype}\myLabel{sec:microtype}{sec:마이크로타입} -%현재까지 \XeTeX 은 pdf\TeX과 Lua\TeX 의 microtype 기능을 엔진 수준에서 지원하지 않는다. -%그러나 \xetexko 는 xetexko-hanging이라는 기법을 이용하여 온점과 반점을 판면 밖으로 밀어냄으로써 -%margin kerning과 비슷한 효과를 줄 수 있게 하는 재미있는 기능을 제공한다. -%이 옵션은 이름은 microtype이지만 실은 xetexko-hanging을 활성화하는 역할을 한다. -%이 문서가 이 기능을 활성화하여 작성되었다. -% -%\subsection{hyperref, xcolor}\label{sec:hyperrefxcolor} -%LyX 을 쓴다거나 할 때 \XeTeX 을 위해서 hyperref의 [unicode] 옵션을 -%꺼주어야 할 때가 있다. 이를 위해서 hyperref 패키지에 미리 넘길 옵션을 지정할 수 있게 -%하였다. -%\begin{boxedverbatim} -%\documentclass[hyperref={unicode=false}]{xoblivoir} -%\end{boxedverbatim} -% -%필요에 의해 xcolor 패키지에 대해서도 비슷하게 할 수 있도록 해두었다. - -\section{첨언} -\xobclass{} 사용이 어느 정도로 쉬운가 하면, 나는 맨처음 이 문서를 -LyX에서 작성하여 export한 다음, 두 줄 정도를 지우고 폰트 -설정명령만을 써넣었다. 그래도 훌륭한 \XeLaTeX\ 문서가 만들어졌던 -것이다. - -이 글을 쓰기 시작할 때만 해도 \xetexko{}와 \xobclass{}는 -완성되어 있지 않았다. 그러나 지금은 일반적인 문서를 작성함에 있어서 -불편이 없을 정도가 되었다. - -\bigskip - -돌이켜보면, 한글을 \TeX\ 문서에 사용할 수 있다는 사실 자체가 -신기했던 그 때로부터 20여년이 흘렀다. 본격적인 한글\LaTeX\ 시스템들이 -나오기 시작했던 1990년대 중반으로부터 헤아려도 십수 년, -이 기간 동안 한글이라는 문자 체계를 식자하기 위해 지불해야 했던 -엄청난 노력과 자원을 생각하면 금석지감이 없지 않다. - -Lua\TeX 과 \XeTeX 이라는 유니코드 텍 엔진의 등장은, 이러한 모든 -노력들을 일시에 해결해버렸다. 이제 한글 문자의 식자는 더이상 -문제가 되지 않는다. -그러나 한글 문서다운 한글 문서, 한글 문서의 타이포그래피의 완성을 -위한 길은 아직도 요원하다. 단순히 “글자를 찍는” 문제가 해결되었다고 -해서 모든 일이 끝난 것은 아닌 것이다. 단지 더 생산적인 문제를 -더 잘 구현할 수 있는 바탕이 갖추어진 것일 뿐이라고 생각한다. - - -% \section{알려진 문제점} - -% 아래 문제점과 버그들은 다음 버전에서 해결하도록 노력할 것이다. - -% \begin{enumerate}[(가)] \tightlist -% % \item ExternalLocation 옵션을 활성화하는 설정과 그렇지 않은 설정을 함께 쓸 때 -% % ExternalLocation 명령이 순서상 먼저 나와야 한다. - -% \item 윈도우즈 폰트 네임과 다른 리눅스 및 매킨토시의 폰트 이름 호출이 -% 실패하는 경우가 있다. 다행히 은 글꼴의 경우는 문제없으나, 은 글꼴은 반드시 -% 최신 버전이어야 한다. 우분투 등의 리눅스에서 패키지로 설치해주는 기본 설치 -% 글꼴은 때로 문제를 일으킨다. 이것은 저자가 어찌해볼 수 있는 문제가 아니다. -% \end{enumerate} - -% 한글 기호 문자 일부는 한자 영역에 배정하였다. 한자가 없는 한글 글꼴을 -% 본문 기본 서체로 지정하는 경우를 위한 것이다. 그러나 이 문제는 아직 -% 확정된 것이 아니며 좀더 테스트를 거쳐서 결정할 일로 보인다. - -%%\section{이 문서의 폰트 사용 설정} -%% -%%이 문서의 폰트 사용 설정은 다음과 같다. -%%\begin{boxedverbatim} -%%\setmainfont[Mapping=tex-text]{Bradley Hand ITC} -%%\setmonofont[Scale=.85]{Consolas} -%%\setkormainfont(문화 궁서 Std L){문화 궁서 흐림 Std L}(){네이버사전} -%%\setkormonofont{은 필기} -%%\setmonoscale{0.9} -%%\end{boxedverbatim} - -%%%\section{버전 인포}\myLabel{sec:versioninfo}{sec:버전인포} -%%% -%%%\begin{enumerate}\tightlist -%%%\item 이 초간단 매뉴얼은 xoblivoir 2011/09/15 버전에 일치한다. -%%%\item 이 초간단 매뉴얼은 xoblivoir 2010/02/10 버전에 일치한다. -%%%\item 이 초간단 매뉴얼은 xoblivoir 2008/12/03 버전에 일치한다. -%%%\item 이 초간단 매뉴얼은 xoblivoir 2008/11/24 버전에 일치한다. -%%%\item 이 초간단 매뉴얼은 xoblivoir 2008/11/09 버전에 일치한다. -%%%\item 이 초간단 매뉴얼은 xoblivoir 2008/10/23 버전에 일치한다. -%%%\item 이 초간단 매뉴얼은 xoblivoir 2008/10/22 버전에 일치한다. -%%%\item 이 초간단 매뉴얼은 xoblivoir 2008/10/12 버전에 일치한다. -%%%\item 이 초간단 매뉴얼은 xoblivoir 2008/10/11 버전에 일치한다. -%%%\end{enumerate} -%%% -%%%%%% 한자 테스트 -%%%이 매뉴얼은 Notepad++로 編輯하였다. 다 좋은데 Notepad++의 -%%%KCmenu plug\-in에 xelatex 實行 命令 短縮키가 없어서 不便했다. -%%%그러던 것이 최근 새로운 단축키가 생김으로써 훨씬 편하게 작업할 -%%%수 있게 되었다. -%%% -%%%%이 글을 더 줄인 \bnm*{極超簡單 매뉴얼}을 究想中이다. - -\end{document} diff --git a/Master/texmf-dist/doc/latex/kotex-oblivoir/doc/oblivoir-test.tex b/Master/texmf-dist/doc/latex/kotex-oblivoir/doc/oblivoir-test.tex deleted file mode 100644 index cdefcb06bbb..00000000000 --- a/Master/texmf-dist/doc/latex/kotex-oblivoir/doc/oblivoir-test.tex +++ /dev/null @@ -1,1326 +0,0 @@ -%!TEX encoding = UTF-8 Unicode -% arara: xelatex -% arara: komkindex -% arara: xelatex -%% -%% 이 파일은 oblivoir 패키지 문서의 일부로서, oblivoir 클래스의 여러 기능을 -%% 테스트하기 위한 목적으로 제공합니다. 일부 기능은 테스트 목적으로 과장되어 있습니다. -%% pdflatex, xelatex, lualatex으로 컴파일할 수 있습니다. (결과의 완전한 동일성은 -%% 보장하지 못합니다.) -%% -%% 2015/04/22. memoir url 수정 -%% 2014/06/15. 부분 수정. -%% 2013/09/28. xoblivoir ver2 버전으로 포팅. -%% 2010/03/17. xoblivoir 버전으로 포팅 -%% -%% oblivoir 2.0.1 테스트 파일 -%% Written by 도은이아빠. -%% public domain. -%% - -\documentclass[demo,chapter,openany,amsmath,gremph,adjustmath]{oblivoir} -%%% amsmath 옵션은 amsmath, amssymb 패키지를 로드해준다.. - -%% display overfullrule -%\setlength\overfullrule{5pt} - -%% 페이지 레이아웃. fapapersize를 이용한다.. -\usepackage{fapapersize} -\usefapapersize{220mm,276mm,20mm,80mm,30mm,35mm} - -% 폰트 설정 -\ifPDFTeX - \usepackage{mathpazo} -\else\ifLuaOrXeTeX - \setmainfont{TeX Gyre Pagella} - \setsansfont[Scale=.95]{TeX Gyre Heros} -%% \setkomain/sansfont : see oblivoir-simpledoc. - \setkomainfont[HCRBatangLVT]()(-Bold)() - \setkosansfont[NanumGothic]()[](HCRDotumLVT) -%% 수학 폰트 -% \usepackage{unicode-math} -% \setmathfont{Asana-Math.otf} -\fi\fi - -\ifLuaTeX -\def\interHANGUL{InterHangul} -\else\ifXeTeX -\def\interHANGUL{interhchar} -\fi\fi - -%% logos -\usepackage{kotex-logo} -%% index for \koTeX -%\let\ORIGkoTeX \koTeX -%\def\koTeX{\ORIGkoTeX\index{ko.TeX}} - -%%% 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 - -%% index를 만든다. -\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와 함께 쓸 수 있다. -%% 참고. [bottom] footnote를 위해서라면 -%% 다음과 같이 할 것을 권장함. raggedbottom에서 동작함. -%\renewcommand*{\footnoterule}{\kern-3pt\vfill -% \hrule width 0.4\columnwidth \kern 2.6pt} -%% 각주를 floats 아래 두는 memoir 명령. -\feetbelowfloat - -%% 밑줄. -\ifLuaTeX\else -\usepackage[normalem]{ulem} -\fi - -%% 사소한 설정 -\def\util#1{\texttt{#1}\index{Utility!#1}} - -%%% -%\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 클래스에서\\ 한글을 쓰자} -\label{sec:firstchap} - -\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{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[.3ex][\tiny★]{발전을 거듭하여} -현재에 이르렀다. -\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{수학질문상자}\label{sec:math} - -%% 절의 카운터를 \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 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://mirror.ctan.org/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/doc/latex/kotex-oblivoir/oblivoir-simpledoc.pdf b/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-simpledoc.pdf new file mode 100644 index 00000000000..7b1184120f0 Binary files /dev/null and b/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-simpledoc.pdf differ diff --git a/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-simpledoc.tex b/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-simpledoc.tex new file mode 100644 index 00000000000..adcec4cc165 --- /dev/null +++ b/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-simpledoc.tex @@ -0,0 +1,1677 @@ +% !TEX Encoding = UTF-8 Unicode +%% oblivoir-simpledoc.tex +%% written by Nova De Hi, 2015/04/19 +%% public domain. +%% +%% part of oblivoir +%% +% arara: xelatex +% arara: xelatex +% arara: lmkclean +\documentclass[ + 12pt, + a4paper, + kosection, + footnote, + nobookmarks, + microtype, +% lwarp +]{oblivoir} + +\usepackage{fapapersize} +\usefapapersize{*,*,30mm,*,35mm,*} + +\usepackage{kotex-logo} + +\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\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 + +\IfpxlTeX*{x,l} +{ + \defaultfontfeatures{Renderer=OpenType} + \setkomonofont(NanumBarunGothic-YetHangul.ttf)[Scale=0.9] + \setobmonofont(Menlo)[Scale=.9] + \setobmainfont(Minion Pro) + \setobsansfont(Myriad Pro) + \setkomainfont[KoPubWorldBatang ](Light)(Bold) +} + +\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} +%%%%%%% tabu-fix 2020/02 +%%%\RequirePackage{etoolbox} +%%%\makeatletter +%%%\patchcmd +%%% \tabu@startpboxmeasure +%%% {\bgroup\begin{varwidth}}% +%%% {\bgroup +%%% \iftabu@spread\color@begingroup\fi\begin{varwidth}}% +%%% {}{} +%%%\def\@tabarray{\m@th\def\tabu@currentgrouptype{\currentgrouptype}\@ifnextchar[\@array{\@array[c]}} +\usepackage{tabularx} +% +%%%% \pdfelapsedtime bug 2019-12-15 +%\patchcmd +% \tabu@message@etime +% {\the\pdfelapsedtime}% +% {\pdfelapsedtime}% +% {}{} +%% +%% +%\makeatother + +\IfpxlTeX*{p,x} +{ + \usepackage[normalem]{ulem} +} + +\begin{document} + +\title{초간단 \obclass{} v2.2 사용법} + +\date{2020년 2월} + +\author{x-ob-liv-oir } + +\maketitle + +\begin{abstract} +\obclass{} 클래스 2.0 버전은 그 동안 별도의 브랜치로 개발되어 오던 +\xobclass와 \obclass를 통합하여 완전히 동일한 클래스가 되었다. +이 문서는 \obclass{} 즉 \xobclass를 +사용하는 방법을 간략히 기술한다. +\end{abstract} + +\tableofcontents* + +\clearpage + +\section{\obclass와 \xobclass{}} + +%\xobclass{}는 \obclass{}에서 파생된 클래스이다. +%\obclass{}가 \LaTeX, pdf\LaTeX 을 위한 것이라면, \xobclass{}는 Lua\LaTeX이나 \XeLaTeX 을 위한 것이다. +%이 글은 \XeLaTeX\oblivoirallowbreak 으로 \xobclass{}를 쓰려 하는 경우에 대해서만 기술한다. Lua\LaTeX{}에 +%대해서는 별도로 특기할 만한 것이 없기도 하려니와 아직 준비가 미흡하여, 차후로 미룬다.\footnote{% +% 준비가 미흡하다는 것은 \xobclass{}의 입장에서 하는 말이다. 현재도 \xobclass{}를 통한 +% Lua\LaTeX 은 훌륭하게 사용할 수 있다, 고 생각하고 있다.} + +\koTeX\ 2.0 (2013/09/30)의 등장\footnote{% + \texttt{texdoc kotex} 명령을 내리면 kotexdoc 문서를 읽을 수 있다.}% +으로 \koTeX\ 패키지군은 이전의 텍 엔진\footnote{% + 이른바 ``레거시 텍''이라 하는 \hologo{TeX}, \hologo{eTeX}, \hologo{pdfTeX}을 + 가리킨다.}% +과 새로운 엔진들, \hologo{pdfLaTeX}, \hologo{XeLaTeX}, +\hologo{LuaLaTeX}에 모두 일관성있게 대응하도록 변모하였다. +이러한 변화에 발맞추어, 레거시 텍 엔진을 위한 \obclass와 새로운 텍 엔진(주로 \hologo{XeLaTeX})을 위한 \xobclass로 +나누어져 있던 oblivoir 클래스도 체계를 정비하여 그 구별을 없애고 동작하는 엔진에 따라 동작 방식을 +자동으로 대응하도록 고쳐졌다. 그러므로, 현재 \obclass로 작성하는 문서는 +(사용자가 몇 가지 주의깊게 엔진별 동작을 지정하기만 하면) 모든 텍 엔진에서 에러 없이 컴파일되고 +유사한 결과를 얻을 수 있게 되었다.\footnote{% + 폰트 사용 방식의 차이로 인해 ``완전히 동일한'' 결과를 보증하지는 않는다.} + +그 동안 \obclass는 비교적 복잡한 길을 거쳐왔다. 대강 정리하면, +\begin{enumerate}[(1)]\tightlist +\item H\LaTeX\ (나중의 kotex-euc) 한글을 memoir에서 쓰기 위하여 개발된 memhangul. 이 스타일은 더이상 사용할 수 없다. +\item dhucs (현재의 kotex-utf) 유니코드 한글을 memoir에서 쓰기 위하여 개발된 memhangul-ucs +\item memhangul-ucs를 바탕으로 memoir 클래스를 통하여 문서를 만드는 fake-article +\item fake-article을 oblivoir로 개명 +\item \hologo{XeTeX}을 위한 xoblivoir +\item xoblivoir에 \hologo{LuaTeX} 지원의 추가 +\item xoblivoir와 oblivoir를 통합 +\end{enumerate} +이와 같이 발전하여 온 것이고, 이제 oblivoir와 xoblivoir는 완전히 동일한 클래스가 되었다. + +이 문서는 \obclass의 고유한 옵션과 폰트 설정 방식에 대해서만 설명한다. 실제로 \obclass를 +이용하여 문서를 작성할 때는 다음 세 층위의 명령이 모두 사용가능하다. +\begin{enumerate}[(1)]\tightlist +\item memoir 명령 +\item 한글 엔진(\koTeX, \XeTeX-\ko, \LuaTeX-\ko)의 명령 +\item oblivoir 명령 +\end{enumerate} + +이 각각의 명령에 대한 정보를 얻으려면, memoir 매뉴얼(\texttt{texdoc memman}), +한글 패키지 매뉴얼(예컨대, \texttt{texdoc kotex}, \texttt{texdoc xetexko})을 +읽어야 한다. +%이 문서에서는 위의 두 패키지 층위의 명령군에 대해 언급할 때, 여백에 \fbox{memoir}, \fbox{kotex}등을 +%표시하겠다. 그리고 엔진별로 고유한 옵션과 명령에 대해서는 해당 사항을 본문에서 밝힌다. + +위의 두 층위의 문서에서 설명하지 않는 \obclass에 대한 정보를 이 문서에서 얻을 수 있다. + +%%\xobclass{}는 김도현 교수의 xkospace 및 xetexko-josa 패키지를 바탕으로 하고 있다. +%\xobclass{}는 김도현 교수의 xetexko 패키지를 바탕으로 하고 있다. 이 패키지는 +%2008년 10월 12일에 처음 발표되었으며 그 이전에 시험되던 xkospace를 확장하고 다듬은 것이다. +%xetexko-space, xetexko-josa, xetexko-dotemph 및 xetexko-font가 포함되어 있는데 +%\xobclass{}는 이를 바탕으로 하면서 사용자 인터페이스를 조금 확장하고 +%\obclass{}와 호환되게 한 것이다. +%\xobclass{}의 쉬운 인터페이스를 통하여 현재 \TeX 에서의 한글 구현이 어느 단계까지 +%와 있는지를 일반 사용자도 경험하는 기회가 되기를 바란다. 한편 2010년 학술대회를 +%전후하여 \xetexko 는 한글 조판과 식자에 있어 ``거의 완전한 단계''에 이르렀다. +%\xobclass 에서 시도하던 많은 부분이 \xetexko\ 자체에 의해 구현되게 된 것도 많으며 +%실제로 출판 현장에서 이를 활용하는 데 부족함이 없을 정도가 되었다. 이제 \xobclass 는 +%memoir 클래스를 \xetexko 와 함께 쓰도록 하는 클래스라는 데 더 큰 의의가 있게 되었다. +%한글 \TeX\ 개발에 고군분투하시는 김도현 교수께 감사의 말씀을 드린다. +% +%\xetexko 의 이해 없이 \xobclass 를 사용하기 어렵다. 그러므로 반드시 +%\xetexko\ 매뉴얼을 읽어두는 것은 매우 중요하다. \xobclass 에서 +%\xetexko 명령은 원칙적으로 모두 사용할 수 있다. \xetexko\ 매뉴얼을 +%읽으려면, +%\begin{verbatim} +%$ texdoc xetexko +%\end{verbatim} +%를 실행한다. + +\section{oblivoir와 memhangul} + +memhangul은 memoir를 한글 문서 작성에 사용할 수 있게 하기 위하여 개발된 스타일 패키지이다. +원래 독립된 스타일로서 개발되고 유지되어 왔지만, 현재는 더이상 독립적인 스타일로 사용되지 않으며 +oblivoir의 핵심 기능을 정의한 서브스타일로서만 유지된다. +즉 oblivoir란 memhangul을 이용하는 한글 문서작성 클래스라고 할 수 있다. + +\section{한글 드라이버} + +\obclass는 현재 실행되는 텍 엔진의 종류에 따라 한글 식자를 위하여 다음과 같은 한글 패키지를 +부른다. 이 한글 패키지들을 (편의상) \obclass의 한글 드라이버라고 한다. + +\begin{center} +%\begin{tabu}to.75\columnwidth{X|X|X} +\begin{tabularx}{.75\columnwidth}{X|X|X} +\hline +oblivoir 옵션 & 텍 엔진 & 한글 식자 패키지 \\ \hline +no option & \hologo{pdfLaTeX} & \koTeX-utf \\ +no option & \hologo{XeLaTeX} & \XeTeX-\ko \\ +no option & \hologo{LuaLaTeX} & \LuaTeX-\ko \\ \hline +%\end{tabu} +\end{tabularx} +\end{center} + +2020년 이후, 이 가운데 \hologo{pdfLaTeX} 지원 브랜치는 더이상 개발을 진행하지 않고 +이전 버전과의 호환성만을 유지한다. + +\section{옵션들} + +\subsection{memoir 옵션} + +원칙적으로 oblivoir는 memoir의 모든 옵션을 동일한 의미로 다 받아들인다. 여기에 해당하는 것으로 +다음과 같은 것이 있다. +\begin{description} +\item[용지 크기] a6paper, a5paper, a4paper, a3paper, b6paper, b5paper, b4paper, b3paper, mcrownvopaper, mlargecrownvopaper, mdemyvopaper, msmallroyalvopaper, dbillpaper, statementpaper, executivepaper, letterpaper, oldpaper, legalpaper, ledgerpaper, broadsheetpaper, pottvopaper, foolscapvopaper, crownvopaper, postvopaper, largecrownvopaper, largepostvopaper, smalldemyvopaper, demyvopaper, mediumvopaper, smallroyalvopaper, royalvopaper, superroyalvopaper, imperialvopaper. +\item[본문 기본 글자 크기] 9pt, 10pt, 11pt, 12pt, 14pt, 17pt, 20pt, 25pt, 30pt, 36pt, 48pt, 60pt, *pt, extrafontsizes +\item[프린팅 옵션] twoside, oneside, onecolumn, twocolumn, openright, openleft, openany, final, draft, +ms, showtrims +\item[기타 옵션] leqno, fleqn, openbib, article, oldfontcommands +\end{description} +이상의 옵션의 의미와 효과에 대해서는 memoir 매뉴얼을 읽어보라. + +\subsection{한글 드라이버의 옵션} + +한글 식자를 위하여 로드되는 패키지에는 고유한 옵션들이 있다. \obclass는 다음과 같은 옵션을 해당 +한글 드라이버에 넘겨준다. + +\begin{description} +\item [\koTeX-utf] hangul, \uline{hanja}, nojosa, \uline{nonfrench}, \uline{finemath}, \uline{strictcharcheck} +\item [\XeTeX-\ko] hangul, hanja, %unfonts.\footnote{unfonts 옵션은 \obclass에서 조금 다르게 동작하므로 아래 해당 부분을 참고할 것.} +\item [\LuaTeX-\ko] hangul, hanja, unfonts +\item [cjk-\ko] hangul, hanja, nojosa, \uline{usedotemph}, \uline{usecjkt1font}. usecjkt1font 옵션은 uset1font로 입력해도 받아들인다. +\end{description} +이 가운데 [hangul] 옵션은 사실상 지정할 필요가 없다. hangul 옵션이 주어져도 예들 들어 절 숫자의 형식 같은 것은 \obclass\ 방식이 유지되기 때문이다. 그러므로 밑줄 그은 옵션만이 \obclass에서 의미가 있다고 할 것이다. + + +\subsection{\obclass의 옵션} + +\subsubsection{한글 드라이버를 지정하는 옵션} + +다음 두 옵션은 한글 드라이버를 강제로 지정하는 옵션이다. 이 옵션을 쓸 때는 오직 \hologo{pdfLaTeX}만을 +실행한다는 의미임을 기억해두자. +\begin{description} +\item [cjk] cjk-\ko 패키지로 한글을 표시한다. 이 패키지는 memhangul의 일부 기능과 충돌할 가능성이 +있으며 memhangul은 원칙적으로 cjk-\ko를 지원하지 않는다. 그러나 한글 표현만을 위해서라면 이 옵션으로 +문서를 작성할 수 있다. +\item [dhucs] \koTeX-utf로 한글을 표현한다. \hologo{pdfLaTeX}에서 디폴트이며 memhangul-ucs는 +이 패키지를 의도하고 작성된 것이다. +\item [polyglossia] 이 옵션이 주어지면 \koTeX 을 로드하지 않는다. 그 대신 \textsf{polyglossia}를 로드하고 이에 의존한 한글 식자를 준비한다. +\end{description} + +다음 옵션들은 해당하는 드라이버에서만 의미를 갖는다. +\begin{description} +\item [strictcharcheck] \koTeX-utf. 엄격한 문자 검사. +\item [finemath] \koTeX-utf. 한글 간격 미세 조정. +\item [nofinemath] \koTeX-utf. finemath 기능을 끔. +\item [usedotemph] cjk-\ko. \verb|\dotemph| 명령 사용 가능. +\item [uset1font] cjk-\ko. 라틴문자도 nanumtype1으로 찍음. +\item [interwordHWP] \koTeX-utf. 단어 간격을 조금 더 넓게 벌려준다. +\item [interworddefault] \koTeX-utf. 단어 간격을 적당히 벌려준다. +\end{description} + +\subsubsection{레거시 텍과 관련된 옵션} + +다음 옵션은 \hologo{pdfTeX} 엔진 또는 \hologo{eTeX} 엔진에서만 의미를 갖는다. 이 옵션이 주어지고 +새로운 텍 엔진이 운영될 때는 무시된다. +\begin{description} +\item [dvips] \obclass로 작성된 문서를 latex $\rightarrow$ dvips $\rightarrow$ ps2pdf 순으로 +컴파일하려 할 때, 즉 pstricks를 이용할 때 이 옵션을 주어야 한다. 이 옵션을 준 문서에 대하여 \hologo{pdfLaTeX}을 +실행하면 안 된다. +\item [romanfixed] 로마 글자의 크기와 위치를 미세조정하는 옵션으로서 untype1을 쓸 때 유용하다. 현재 상황에서는 의미가 크지 않음. +\end{description} + +\subsubsection{여러 가지 옵션} + +다음은 \obclass 의 고유한 옵션들이다. +\begin{description} +\item [chapter] \verb|\chapter| 명령을 제대로 쓸 수 있게 해준다. 이 옵션이 없으면 \obclass는 \verb|\section|부터 시작하는 문서라고 간주하고 식자하지만 \verb|\chapter|에서 에러를 내지는 않는다. +\item [kosection] \verb|\section|에 대하여 ``제''와 ``절''을 찍어주도록 하는 옵션이다. +\item [amsmath] amsmath.sty와 amssymb.sty를 미리 로드해주는 옵션이다. +%\item [adjustmath] 한글 문서의 행간격이 벌어짐으로 인해서 display 수식의 전후에 너무 많은 공백이 생기는 것을 막아준다. +\item [mathdisp] v2.2 버전에서 디스플레이 수식과 본문의 간격을 oblivoir 식으로 재설정하는 것이 디폴트가 되었다. 이전에는 \verb|adjustmath| 옵션을 부여해야 동작하던 기능이 디폴트가 된 것이다. 이 기능을 배제하고 수식과 본문의 간격을 memoir와 amsmath가 설정하는 그대로 두려면 이 옵션을 부여한다. +\item [arabicfront] \verb|\frontmatter| 부분의 페이지 숫자를 아라비아 숫자로 찍는다. 기본값은 로만 숫자. +\item [footnote] 각주 번호와 숫자를 한국식으로 식자한다. +\item [figtabcapt] 그림과 표에 \cnm{그림 1}과 같은 방식으로 캡션을 단다. +\item [gremph] 글꼴 대체 강조 방식을 쓴다. 이것이 기본값이다. +\item [itemph] 기울인 글꼴 강조 방식을 쓴다. +\item [nonfrench] nonfrenchspacing. +\item [hangulpagestyle] 본문의 페이지 스타일을 hangul 양식으로 한다. +\item [nokorean] 사실상 memoir와 거의 같은 상태가 되게 한다. 즉 pdf bookmark도 만들지 않으며 한글도 찍히지 않는다. +\item [pdfbookmark] nokorean 옵션을 주면서도 북마크는 만들도록 hyperref을 로드해주는 역할을 한다. nokorean 옵션이 주어지지 않을 때는 무의미함. +\item [10.5pt] 본문 활자 크기를 10.5pt로 한다. +\item [quotespacing] quote, quotation 환경의 줄간격을 `좁은 줄간격'으로 줄인다. +\item [nanum] 나눔명조/나눔고딕 트루타입 글꼴을 기본 글꼴로 사용하도록 설정한다. +\item [hcr] 함초롬 LVT 글꼴을 기본 글꼴로 사용하도록 설정한다. +\item [lwarp] \textsf{lwarp}를 이용하여 HTML을 제작하는 데 필요한 설정을 활성화하는 옵션이다. +\end{description} + +\bigskip + +다음 옵션들은 특별한 상황에서 의미를 가지는 것이다. +\begin{description} +\item [lyxhyper] LyX에서 문서를 작성할 때 LyX이 강제로 hyperref을 로드하는 기능과 \obclass의 hyperref 로드 기능이 충돌하는 것을 방지하기 위한 것이다. +\item [tocentry] chapter 옵션과 같이 쓰여서 toc, lof의 엔트리를 조정해준다. +\item [microtype] 이 옵션이 지정되면 \hologo{pdfTeX}과 \hologo{LuaTeX}에서 microtype 패키지를 불러온다. 다만 \hologo{XeTeX}에서는 문장부호 끌어내기를 위한 xetexko-hanging 스타일을 로드한다. +\item [subfigure] subfig 패키지 대신 subfigure 패키지를 쓰기 위해서 충돌이 있는 코드 하나를 수정해준다. +\item [manualfontspec] fontspec 패키지를 자동으로 로드하지 않고 사용자가 직접 설정하고자 할 때 +\item [fontspec] fontspec 패키지에 넘겨줄 옵션을 지정한다. +\item [xcolor] xcolor 패키지에 넘겨줄 옵션을 지정한다. +\item [hyperref] hyperref 패키지에 넘겨줄 옵션을 지정한다. +\item [moreverb] moreverb 패키지를 사용하려 할 때. 약간의 충돌을 해결해준다. +\item [preload] \verb|\documentclass|가 시작되기 전에 로드해야 할 패키지를 지정한다. +\item [preloadoption] preload할 때 함께 넘겨줄 옵션을 쓴다. +\item [faht, fawd] 특별히 pdf 사이즈를 조절할 필요가 있을 때 사용한다. 특히 flowfram 패키지를 위해서 필요하다. +\item [noreserveinserts] \hologo{eTeX}의 reserveinserts 확장 코드를 억제한다. 일반적으로 사용할 필요 없다. +\item [moreroom] \hologo{pdfTeX}에서 용량 부족으로 에러가 발생할 때 특별히 지정한다. +\end{description} + +\bigskip + +다음 옵션들은 현재 큰 의미를 지니지 않는 것들이다. 대부분 \koTeX 의 발전과 더불어 \obclass에서 특별히 지정할 필요가 없어졌다. +\begin{description} +%\item [unfonts] 은 글꼴을 사용하게 한다. 레거시 텍에서는 untype1이고 새로운 텍 엔진에서는 은글꼴 트루타입이 기본 글꼴이 된다. +%\item [nounfonts] 은 글꼴을 사용하지 않게 한다. 이것이 디폴트이다. +\item [latinquote] 따옴표를 라틴 글꼴에서 찍도록 강제하는 옵션이었다. 현재는 아무런 작용도 하지 않는다. +\item [oldhangul] 옛한글 식자를 위한 옵션이었다. 현재는 이 옵션이 없어도 옛한글을 잘 처리한다. +\item [nowinname] 은글꼴을 위해서 마련된 옵션이었으나 현재는 무의미하다. +\end{description} + + +%\section[\obclass{}와 비교]{\obclass{}\footnote{현재 documentclass 이름으로 oblivoir를 쓰든 xoblivoir를 쓰든 실행되는 엔진에 따라 기능이 설정된다. 그러나 여기서는 pdf\TeX\ 엔진에서 쓰던 legacy oblivoir를 가리키는 경우에 ``\obclass''라고 하였다.}와 비교} + +%%%다음 옵션은 disable되었다. 아무런 작용이 없는 것이므로 에러를 +%%%발생하지는 않지만 효과도 없다. +%%%\begin{description} +%%%\item [{[dvips]}] 당연히 더이상 쓸 일이 없으므로. +%%%\item [{[romanfixed]}] 폰트 관련된 옵션은 대부분 비활성화된다. +%%%\item [{[finemath]}, {[nofinemath]}] 이 옵션은 disable되었다. finemath에 관련된 사항은 \xetexko 에서 모두 구현하고 있다. +%%%%그러나 완전한 호환은 아직 되지 않는다. 대표적인 예가 괄호 뒤의 간격이다. +%%%\item [{[strictcharcheck]}] dhucs 특유의 옵션이었다. +%%%\end{description} +%%% +%%%다음 옵션이 새로 생겨났다.\footnote{% +%%% [latinquote] 옵션은 더이상 아무런 작용을 하지 않는다. +%%%} +%%%\begin{description} +%%%%\item [{[latinquote]}] 홑따옴표와 겹따옴표를 식자하는 폰트를 라틴 문자 폰트로 할 것인가 한글 폰트로 할 것인가를 결정하는 +%%%%것이다. 이 옵션이 주어지면 라틴 문자 폰트의 겹따옴표를 식자한다. +%%%\item[{[manualfontspec]}, {[fontspec]}] 이 옵션의 동작에 대해서는 \myREF{sec:fontspec}{sec:폰트스펙}\를 보라. 2011/09/15 이전 버전에서는 옵션 명칭이 [fontspec]이었으나 이 옵션은 다른 기능으로 쓰이게 되었다. +%%%\item[{[moreverb]}] 이 옵션의 동작에 대해서는 \myREF{sec:moreverb}{sec:모아버브}\를 보라. +%%%%\item[{[oldhangul]}] 이 옵션의 동작에 대해서는 \ref{sec:올드한글}\를 보라. +%%%\item[{[amsmath]}] 이 옵션의 동작에 대해서는 \myREF{sec:ams}{sec:에이엠에스}\를 보라. +%%%\item[{[nowinname]}] 이 옵션의 동작에 대해서는 \myREF{sec:nowinname}{sec:노윈네임}\를 보라. +%%%%\item[{[verthangul]}] 이 옵션의 동작에 대해서는 \ref{sec:세로쓰기}\를 보라. %%% not implemented +%%%\item [{[microtype]}] 이 옵션의 동작에 대해서는 \myREF{sec:microtype}{sec:마이크로타입}\를 보라. +%%%\end{description} +%%% +%%%다음 옵션은 그대로 있지만 동작이 달라졌다. +%%%\begin{description} +%%%\item [{[itemph]}] emph 또는 itshape에 한글을 기울여서 식자한다. +%%%\item [{[gremph]}] emph 또는 itshape에 한글을 바로 선 폰트로 식자한다. +%%%\end{description} +%%%%gremph와 itemph의 차이는 이제 italic인가 아닌가의 차이뿐이다. +%%% +%%%다음 옵션은 특별한 예외 처리를 위한 것이다. 일반적인 경우에는 쓰이지 않는다. +%%%\myREF{sec:flowfram}{sec:플로프렘}\를 보라. +%%%\begin{description} +%%%\item [{[faht]}, {[fawd]}] 문서 전체의 stockheight와 stockwidth를 미리 설정한다. +%%%\item[{[preload]}, {[preloadoption]}] 이 옵션의 동작에 대해서는 \myREF{sec:preload}{sec:프리로드}\를 보라. +%%%\end{description} +%%% +%%%레거시 ko.\TeX 의 폰트 설정 명령들은 전혀 동작하지 않고 에러를 토해낸다는 사실을 알아야 한다. 즉, \texttt{\textbackslash{}SetAdhocFonts}라든가 +%%%\texttt{\textbackslash{}SetHangulFonts} 같은 명령은 제거되어 있다. \XeLaTeX{}을 +%%%쓰는 목적이 주로 폰트 문제와 관련이 있으므로, 종래의 폰트 설정 방식은 모두 \XeLaTeX{} 방식으로 바꾸도록 해야 한다. +%%%%다음은 제거된, 더이상 사용할 수 없는 명령들이다. +%%%%\begin{verbatim} +%%%% \SetHangulFonts +%%%% \SetHanjaFonts +%%%% \SetAdhocFonts +%%%% \SetGremphFonts +%%%% \interhchar +%%%%\end{verbatim} +%%% +%%%그밖의 모든 \obclass{}의 기능을 \xobclass{}에서 쓸 수 있다. +%%%한글 문서 작성에 있어서 표준이 되고자 하는 \obclass{}를 +%%%\XeTeX 에서\explpunc.Lua\TeX 에서도.\ 편리하게 사용할 수 있게 되기를 바라 마지 않는다. + +\section{폰트 설정 방식에 대한 간단한 설명}\myLabel{sec:font}{sec:폰트} + +\subsection{\koTeX-utf 엔진} + +글꼴 선택 명령 \verb|\SetHangulFonts|, \verb|\SetHanjaFonts|, \verb|\SetAdhocFonts|와 더불어, +gremph 옵션이 주어졌을 때 \verb|\SetGremphFonts| 등을 사용한다. +이 명령의 의미와 용법에 대해서는 \koTeX\ 사용설명서를 참고하라. + +아무런 지정도 없을 경우 nanumtype1으로 식자하고, 이것은 \koTeX-utf의 디폴트 상황과 동일하다. +gremph는 \koTeX-utf에서 \verb|\usepackage{dhucs-gremph}|를 선언한 경우와 동일하게 +동작하므로 별도로 이 스타일을 얹을 필요는 없다. + +\subsection{\XeTeX-\ko, \LuaTeX-\ko} + +한글 드라이버들은 라틴 문자 폰트와 별도로 한글/한자 폰트를 지정할 수 있게 하고 있다. +%분리하는 것을 기본으로 하고 있다. +% \footnote{% + % 한글과 라틴 문자을 분리하지 않으려 할 경우, fontspec 패키지의 + % \texttt{\textbackslash{}fontspec} 명령 등을 사용할 수 + % 있다. 그러나 폰트 테스트 등의 특별한 목적이 아니고 일반 + % 문서 작성 상황에서 이렇게 써야 할 이유가 별로 없을 것이다. +% % 예를 들어 라틴 문자자까지 바탕체를 쓰면: +% % {\setkormainfont{바탕}\fontspec{바탕}% +% % 한글 바탕체. The quick brown fox jumps over the lazy dog.} + % 또한, 한글 폰트와 한자 폰트를 분리할 수 있는데, 이에 대해서는 + % \ref{sec:디폴트}\를 참조하라. + % } +한글과 라틴 문자 글꼴을 분리하지 않으려 할 경우, +\xetexko\ 명령인 +\verb|\disablekoreanfonts|를 선언한다. +%\footnote{% +% \XeTeX{}ko 2008/11/10 이후 버전.} +%%\xetexko 를 따라서 \verb|\hangulmarks|와 같은 명령군이나 \verb|\xetexkofontregime| +%%명령을 활용하면 된다. 이에 대해서는 \xetexko\ 매뉴얼을 (반드시) 참조하라. +이렇게 하면 한글 글꼴은 +라틴 문자 글꼴을 따라가게 된다. 즉, \texttt{\textbackslash setmainfont} +등으로 선언된 글꼴이 한글과 라틴 문자에 동시에 식자된다.\footnote{% + 이외에도 한글-라틴 문자 글꼴의 분리에 따르는 여러 가지 옵션 정의에 관련된 + \xetexko, \luatexko\ 매크로가 있으므로 이에 대해서는 \xetexko, \luatexko\ 매뉴얼을 + 참고하라. +} + +\paragraph{라틴 문자} +라틴 문자 폰트는 fontspec 패키지의 방식을 따른다. +설정과 사용에 대해서는 fontspec 패키지 문서를 참고하라. +매우 방대하고 훌륭한 문서이다. + +\begin{boxedverbatim} +\setmainfont{} +\setsansfont{...} +\setmonofont{...} +\end{boxedverbatim} + +이 명령의 옵션으로 \verb|[Ligatures=TeX]|을 주면 \verb|``|, \verb|---|와 같은 +입력이 ``, ---와 같이 나타난다. 대부분의 텍 소스에는 이런 이른바 텍 리거쳐를 사용하는 것이 +일반적이므로 이 옵션을 지정하는 것이 좋은데, 최신 버전의 fontspec은 이 옵션을 자동으로 붙여주며, +아래 설명할 \cs{setkomainfont} 등의 명령을 써도 역시 이 옵션은 자동으로 붙기 때문에 별다른 고려를 하지 않아도 좋다. +%\XeTeX 에서 \verb|[Mapping=tex-text]| 옵션을 +%써도 좋은데 이 옵션은 \LuaTeX 에서는 무의미하므로 양쪽에 통용되는 \verb|[Ligatures=TeX]|을 +%쓰도록 하자. 따라서 +만약 \ct{TeX Gyre Termes}를 라틴 문자 세리프 글꼴로 쓰려 한다면, +\begin{verbatim} +\setmainfont{TeX Gyre Termes} +\end{verbatim} +으로 충분하다. + +\paragraph{한글과 한자} +한글 폰트는 다음 명령을 사용하여 설정한다. 자세한 사항은 \xetexko, \luatexko\ 매뉴얼을 참고하라. +\begin{boxedverbatim} +\setmainhangulfont[Options]{FontName} +\setsanshangulfont[Options]{FontName} +\setmonohangulfont[Options]{FontName} +\setmainhanjafont[Options]{FontName} +\setsanshanjafont[Options]{FontName} +\setmonohanjafont[Options]{FontName} +\end{boxedverbatim} + +이밖에 특별한 명령으로 \luatexko에는 fallbackfont를 위한 명령이 있다. +\begin{boxedverbatim} +\setmainfallbackfont +\setsansfallbackfont +\setmonofallbackfont +\end{boxedverbatim} +\xetexko에는 이 명령이 없는 대신 \cs{newfontfamily}\cs{fallbackhanjafont}를 이용하여 +fallback 폰트를 정의할 수 있다. 이 기능은 한자(또는 한글/한자) 글꼴에서도 찾을 수 없는 한자를 +식자하기 위해서 사용된다. + +여기 언급하지 못한 다양한 명령들이 제공되므로 해당 매뉴얼을 반드시 읽어보기 바란다. +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{임시 폰트 교체} +문장을 작성 중에 일시적으로 폰트를 교체하기 위한 명령으로 +\begin{boxedverbatim} +\adhochangulfont +\adhochanjafont +\end{boxedverbatim} +이 정의되어 있다. 이 명령들은 \verb|\setmainhangulfont| 명령과 같은 방법으로 사용한다. 또한, +\begin{boxedverbatim} +\hangulfontspec +\hanjafontspec +\end{boxedverbatim} +명령도 정의되어 있으며, \verb|\fontspec| 명령이 적용되지 않는 한글과 한자 영역에 효력을 발휘하므로 필요한 대로 쓸 수 있다. + +\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''로 되어 있다. 이렇게 글꼴 자체가 글꼴 가족에 대한 정보를 가지고 있으면 Family만 지정해도 자동으로 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} +\setkomainfont[]()()() +\setkosansfont[]()()() +\setkomonofont[]()()() +\end{boxedverbatim} + +이 세 명령을 사용할 때 주의할 점은 중괄호 \{ \}가 전혀 쓰이지 않는다는 것이다. +입력상 실수하기 쉬우므로 주의를 요한다. + +이러한 폰트 정의 방식은 xoblivoir 클래스의 원래 의도인 `되도록 간단하게 +필요한 것만' 사용하자는 데서 나온 것이다. +%그러므로 옛한글 설정이나 +%자간, 장평 등 복잡한 폰트 속성을 적용하려 한다면 당연히 \xetexko 의 (즉 fontspec의) +%설정 방식을 이용하는 것이 좋다. + +이후의 설명은 \verb|\setkomainfont|에 대해서만 한다. 다른 두 명령의 사용법은 동일하다. +\begin{boxedverbatim} +\setkomainfont(Font Name) +\end{boxedverbatim} +가장 기본적인 사용법은 위와 같다. 중괄호 \verb|{ }|가 아니라 괄호 \verb|( )|를 쓰고 있음에 주의하라. + +\paragraph{긴 명령} +이 명령의 완전한 형태는 다음과 같다. +\begin{boxedverbatim} +\setkomainfont[]% + (regular)% + (bold)% + (italic)% + [hangul-feature]% + []% + (hanja-regular)% + (hanja-bold)% + (hanja-italic)% + [hanja-feature] +\end{boxedverbatim} +모두 열 개의 옵션 인자가 올 수 있는데 그 가운데 적어도 하나의 괄호 옵션 인자는 반드시 있어야 한다. +그러므로 그것(첫번째 regular)은 ``옵션'' 인자가 아니라 그냥 인자이지만 하나만을 중괄호로 묶는 것이 오히려 코딩 +실수를 증가시킬 것으로 보아서 모두 괄호 인자를 사용하도록 했다. +괄호 옵션 인자를 하나만 준다면 그것은 한글 regular 글꼴 이름으로 받아들일 것이다. +나머지 아홉 개의 옵션 인자는 생략 가능하다. 각 옵션 인자가 생략가능하기 때문에 +괄호나 꺾쇠괄호 사이에 스페이스를 남기지 않도록 주의해야 한다. 예를 들어 \verb*|(fontname) [feature]|와 같이 +적으면 스페이스 때문에 옵션 인자의 파싱에 실패할 수 있다. + +기본적으로 폰트 이름은 \verb|( )| 안에 들어간다. 그리고 미리 오는 \verb|[ ]|는 이름의 공통 부분을 축약하기 위한 것이고 끝에 오는 \verb|[ ]|는 속성을 추가하기 위한 것이다. 이 규칙이 두 번 반복된다고 생각하면 되겠다. + +\paragraph{한글과 한자} +이 가운데 앞의 다섯 개는 한글, 뒤의 다섯 개는 한자관련 설정이다. 그런데 예컨대 +\begin{verbatim} +\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} + +한자 설정은 한글 설정 이후에 잇대어 쓰는 것으로 한글 설정 방식과 완전히 똑같다. +실제로 \verb|\setkomainfont(A)[](B)| 명령은 +\begin{verbatim} +\setmainhangulfont{A} +\setmainhanjafont{B} +\end{verbatim} +와 동일하기 때문에 굳이 한자 글꼴을 따로 지정하지 않아도 한자 자면을 가진 한글 글꼴을 설정하면 +한자가 잘 표시된다. +그러나 NanumMyeongjo와 같이 한자 자면이 없는 글꼴이라면 한자 글꼴을 별도로 선언해주어야 할 +것이다. + +한자 폰트 부분을 선언하면 \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} +와 같이 하면 될 것이다. + +한글은 이탤릭이 없지만 우사체를 쓰는 관행이 있다. 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} + +\paragraph{base name을 사용하여 공통 부분 줄여쓰기} +KoPubWorldBatang체 같은 경우, 글꼴 가족이 서로 다른 다음 세 폰트가 있다. +\begin{verbatim} +KoPubWorldBatangLight.ttf KoPubWorldBatangLight KoPubWorldBatang Light +KoPubWorldBatangMedium.ttf KoPubWorldBatangMedium KoPubWorldBatang Medium +KoPubWorldBatangBold.ttf KoPubWorldBatangBold KoPubWorldBatang Bold +\end{verbatim} +이 글꼴은 앞부분 이름은 같지만 Regular/Bold에 대응하는 글꼴로 설정되어 있지 않다. +이러한 상황에서 앞의 같은 부분을 base name으로 지정하고 나머지 부분을 각각 써넣는 방식으로 +글꼴을 지정할 수 있다. +\begin{verbatim} +\setkomainfont[KoPubWorldBatang](Light)(Bold) +\end{verbatim} +이것은 +\begin{verbatim} +\setkomainfont(KoPubWorldBatangLight)(KoPubWorldBatangBold) +\end{verbatim} +를 줄여쓴 것으로 이해하면 된다. 이탤릭 폰트는 지정하지 않은 보기인데, 원한다면 세번째 괄호 옵션에 +써넣을 수 있다. 단, 이 방법을 쓸 때는 별표(*)를 사용할 수 없다. 왜냐하면 별표를 사용하였을 때 +KoPubWorldBatang*이라는 이름의 폰트를 찾으려 할 것이기 때문이다. + +예를 들어, 서울시체를 본문 글꼴로 하고 바탕 글꼴용 한자는 한양해서를 쓰고 싶다면(실제 해보면 그다지 어울리지 않지만) 어떻게 할 수 있을까? +\begin{verbatim} +\setkomainfont[SeoulHangang](L)(B)[](HYhaeseo) +\setkosansfont[SeoulNamsan](L)(B) +\end{verbatim} + +이 방식에서 주의할 것은 예컨대 이탤릭 글꼴로 완전히 이름이 다른 것을 쓰고자 한다면 +이런 식으로 할 수 없다는 점이다. + +\paragraph{feature의 추가} +네 번째 옵션 인자는 한글 폰트를 설정할 때 넘겨줄 feature를 지정한다. +\begin{verbatim} +\setkomainfont(HCRBatangLVT)[FakeStretch=0.95,InterHangul=-0.05em] +\end{verbatim} +이것은 장평을 95\%로 하고 자간을 5\% 줄이는 예이다. 여기에 쓸 수 있는 feature에 관해서는 +fontspec 설명서와 \xetexko, \luatexko\ 설명서를 참고하라. + +옛한글을 식자하려면 (지원되는 폰트에 대하여) 다음과 같이 feature 옵션을 추가하여야 할 수 있다. +\begin{verbatim} +\setkomainfont(Noto Serif CJK KR)[Script=Hangul,Renderer=OpenType] +\end{verbatim} + +다섯번째 옵션 인자는 한자의 base name이다. 네번째 없이 다섯번째만 올 수 없으므로 이것을 +설정하려면 +\begin{verbatim} +\setkomainfont(HCRBatangLVT)[][KoPubBatang](Light) +\end{verbatim} +와 같이 적어도 네번째 옵션 인자를 (비우더라도) 지정해야 할 것이다. + +\paragraph{파일 이름으로 찾기} +폰트를 그 이름(full name 또는 Postscript name)으로 지정하지 않고 파일 이름으로 찾으려 할 때, +다음과 같은 방법이 있다. + +먼저 옵션 인자로 \texttt{ExternalLocation}을 선언하는 방법이다. 이 때는 확장자를 지정하지 않아도 된다. 현재 \textsf{fontspec}은 이 방법을 지원하기는 하지만 권장하지는 않는다. +\begin{verbatim} +\setkomainfont(HANBatang-LVT)[ExternalLocation] +\end{verbatim} +파일 이름을 그대로 적어주는 방법이 있다. 즉 확장자를 붙여서 파일 이름 자체를 지정하는 방법이다. 이것이 권장하는 방법이 되었다. +\begin{verbatim} +\setkomainfont(HANBatang-LVT.ttf) +\end{verbatim} + +파일 이름으로 호출하는 경우 별표(*)를 이용하여 이름의 공통부분을 줄여쓰는 방법을 사용할 수 없다. +그리고 +하나의 글꼴군 세트에서 ``이름으로 찾기''와 ``파일이름으로 찾기''를 둘 다 사용할 수 없다. 즉 다음과 같이 하는 것은 오류이다. +\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} +\setobmainfont[]()()()[features] +\end{boxedverbatim} +일반적으로는 거의 의미없는 명령이나 반은 재미로 마련해두었다. + +\subsection{기정의 폰트 세트} + +클래스 옵션으로 \texttt{[nanum]}을 지정하면 본문이 나눔명조와 나눔고딕으로 식자된다.\footnote{% +\XeTeX 이나 \LuaTeX 에서는 은 바탕을 기본 글꼴로 하고 있다. \hologo{pdfTeX}을 위한 +kotex-utf의 경우는 여전히 nanumtype1이다.} +%\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()(){} +\setkorsansfont()(){} +\setkormonofont()(){} +\end{boxedverbatim} +%이 명령들도 한자 지정을 위하여 확장가능하다. +%\begin{boxedverbatim} +%\setkormainfont()(){}% +% ()(){} +%\end{boxedverbatim} +% +%괄호 옵션 인자와 중괄호 인자가 있다는 점과 bold, italic, regular의 순서가 +%\cs{setkomainfont}와 다르다는 데 주의하라. +%이전 버전에 비하여 확장된 기능은 feature를 줄 수 있다는 것이다. +%\begin{boxedverbatim} +%\setkormainfont(Bold)(Italic){Regular}[Feature] +%\end{boxedverbatim} +%이런 식으로 마지막 옵션 인자로 feature를 지정하면 유효하다. +% +%한글과 한자 사이에는 적어도 괄호 인자가 하나는 와야 구별된다. +%\begin{verbatim} +%\setkormainfont{HCR Batang LVT}(){HYhaeseo} +%\end{verbatim} +% +%이 때문에, 예를 들어 다음과 같이 하는 것은 오류이다. +%\begin{verbatim} +%\setkormainfont{HCR Batang LVT}[]{HYhaeseo} +%\end{verbatim} +%한글 feature를 지정하고 한자도 지정하려면 다음과 같이 해야 한다. +%\begin{verbatim} +%\setkormainfont{HCR Batang LVT}[...](){HYhaeseo} +%\end{verbatim} +% +%한편, \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*{한글 폰트 이름} +%\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()(){} +%\setkorsansfont()(){} +%\end{boxedverbatim} +%첫 두 인자를 둘러싼 괄호가 각괄호 []가 아니라 괄호 ()임에 주의하라.\footnote{% +% 이것은 2008/11/09 버전의 변경사항이다. 하위호환성을 제공하지 +% 않으므로 이전의 모든 소스를 수정해야 한다.} +%아무튼 괄호 ()로 둘러싸인 부분은 생략가능하다. 첫 괄호 인자만 있고 +%이탤릭 글꼴을 지정하지 않으면 기본 글꼴로 치환된다. +% +%한글 폰트와 별도의 한자 폰트를 설정할 필요가 있을 때는 다음과 같이 한다. +%\begin{boxedverbatim} +%\setkormainfont()(){}()(){} +%\setkorsansfont()(){}()(){} +%\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{} +%\end{boxedverbatim} +% +%한글 mono 폰트를 기본값(은 타자)이 아닌 글꼴로 지정할 경우 scaling이 필요할 때가 있다. +%이를 위하여 위의 명령이 정의되어 있다. 이것은 한글 및 한자 mono 글꼴에만 +%영향을 미친다. 라틴 문자자는 fontspec 옵션으로 지정하면 될 것이다. +%% 이 문서의 경우 mono 한글 폰트를 맑은 고딕으로 +%% 하면서 scale 값을 0.9로 지정했다. +% +%문장 중간에서 한글 및 한자 폰트를 일부 바꾸어 써야 할 때가 있다. 이 경우에는 \xetexko 의 +%\verb|\hangulfontspec| 명령을 이용하면 매우 간편하게 이를 실현할 수 있다. + +\subsection{파일 이름으로 찾기에 관한 첨언} + +폰트를 호출하는 이름은 앞서 설명한 \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으로 폰트 파일의 이름을 부르는 것이다. +이 때 몇 가지 이슈가 있다. +\begin{enumerate}[(가)]\tightlist +\item Windows에서는 한글 폰트 파일 이름을 부를 수 없다. 모든 폰트 파일 이름은 +라틴 문자이어야만 한다. 그 이유는 한글 폰트 파일 이름이 윈도우즈 시스템 인코딩인 +CP949로 불려져야 하는데 우리가 작성하는 tex 원본 파일은 UTF-8 인코딩이므로 +한글 파일 이름을 호출하는 것이 윈도우즈에서 원천적으로 불가능하기 때문이다. + +\item 반면, 시스템 로케일이 utf-8인 매킨토시나 리눅스에서는 한글 폰트 파일 이름도 +ExternalLocation으로 호출할 수 있을 것이다. 리눅스에서는 모르겠으나 매킨토시에서는 +이것이 가능했다. + +\item texmf.cnf의 OSFONTDIR 변수를 수작업으로 수정해야 하는 경우가 있다. +이것은 폰트를 ``파일 이름으로'' 찾게 하기 위해 필요하다. +%Windows의 \TeX\,Live라면 이것을 잘 설정하여 주므로 사용자가 신경쓸 것이 없으나 +%경우에 따라 이 변수를 설정해야 할 필요가 있을 수 있다. 맥의 경우, +%/usr/local/texlive/2015/texmf.cnf 파일을 열어서\footnote{/usr/local/texlive/2015/texmf/web2c/texmf.cnf를 +%수정해서는 안된다.} +%다음 내용을 자신의 환경에 맞게 써넣으면 될 것이다. +%\begin{verbatim} +%OSFONTDIR = {/Library/Fonts;~/Library/Fonts;/System/Library/Fonts;} +%\end{verbatim} + +\item 파일 이름으로 폰트를 호출한다는 것은 kpathsearch를 이용한다는 +것이다. 그러므로 texmf 트리 아래에 해당 폰트를 가져다두고 mktexlsr해도 그 +폰트에 접근할 수 있다. + +\end{enumerate} + +%폰트를 이름으로 호출하는 것은 폰트 자체에 정의된 이름과 파일이름이 다른 것이 너무 많아서 +%손쉽게 말하기가 어렵다. 대부분의 시스템에서(맥 제외) \verb|fc-list| 명령은 \XeTeX 으로 +%부를 수 있는 폰트 이름을 확인하게 해준다. 한편 \LuaTeX의 경우는 좀더 복잡하여 +%\XeTeX 에서 호출할 수 있는 것과 같을 때도 있고 다를 때도 있다. +%파일 이름으로 호출(즉 ExternalLocation)하는 것이 가장 편리할 때도 있다. + +%\subsection{파일 이름 문제: 조금 더}\myLabel{sec:nowinname}{sec:노윈네임} + +%폰트를 이름으로 호출하는 데 있어 결정적으로 중요한 것은 시스템 로케일이다. +%즉, 한글 로케일이면 한글 폰트 이름을 호출할 수 있지만 그렇지 않으면 +%폰트 이름을 한글로 부를 수 없다. +%\xobclass는 한글 로케일의 시스템\explpunc.한글 Windows, Mac OS X 한글 상위 등.\ 일 것을 기본값으로 하고 있다. +%또한 각 운영체제가 인식하는 파일 이름들이 조금씩 다르다. +%이것은 폰트 자체의 특성에 따르는 경우가 많으므로 +%폰트의 이름이나 특성을 사용자가 잘 이해하고 사용하는 도리밖에 없다. +% +%한글이 아닌 로케일의 시스템에서는 [nowinname] 옵션을 지정하고 +%폰트를 라틴 문자 이름으로 호출하면 대부분의 문제가 해결된다. +%\begin{boxedverbatim} +%\documentclass[nowinname]{xoblivoir} +%\setkormainfont(UnBatangBold){UnBatang} +%\end{boxedverbatim} +% +%예컨대 라틴 문자 상위의 매킨토시에서 다음과 같이 한글 폰트를 정의한 경우, +%\begin{verbatim} +%\setkormainfont(NanumMyeongjoOTF-Bold){NanumMyeongjoOTF-Regular} +%\end{verbatim} +%두 번째 선택인자가 없기 때문에 이탤릭 글꼴은 기본 글꼴인 은 바탕으로 +%치환된다. +%이 때, 운영체제가 한글 글꼴 이름 \oblivoirdblquote{은 바탕}을 +%인식하지 못할 수가 있다.\footnote{% +% 김영욱 교수께서 이 문제를 알려주셨다.} +% +%해결책은 앞서 설명한 ExternalLocation으로 폰트를 호출하든가, 아니면 +%이탤릭 옵션까지 모두 채워서 선언하든가 하면 물론 된다. 그러나 좀 +%번거로울 수도 있는 것이다. +%이런 경우에 대비하여 [nowinname] 옵션을 마련해 두었다. 은 글꼴의 +%호출명을 라틴 문자으로 하게 함으로써 한글 글꼴 이름을 인식 못하는 운영체제의 +%문제를 피해가게 하였다.\footnote{% +% 다행히, 은 글꼴은 한글 윈도우즈에서도 라틴 문자 이름으로 호출할 수도 +% 있다. 즉, 한글 윈도우즈에서는 라틴 문자 이름과 한글 이름을 모두 사용할 +% 수 있는 것이다. 그러나 모든 글꼴이 그렇지는 않다.} +%라틴 문자 상위의 매킨토시, 그리고 한글 로케일을 사용하지 않는 리눅스 +%등에서 이 옵션이 활용될 수 있을 것이다. +% +%이 옵션은 xetexko-xobfont, xetexko-var, memhangul-x 등에 부여할 수도 +%있으므로 Beamer 문서를 작성하기 위해 xetexko-var를 쓰는 경우에는 +%xetexko-var의 옵션으로 지시하면 된다. + +\subsection{이탤릭, 기울임} + +한글 글꼴에 이탤릭은 없다. 그러므로 강조를 위해 기울임으로 이탤릭을 대용하는 것은 그다지 권장하지 않는다. 예를 들어 +\begin{verbatim} +\setkomainfont(Malgun Gothic)(* Bold)(Gungsuh) +\end{verbatim} +으로 지정했을 때, 궁서체가 이탤릭에 해당하는 폰트로 설정된다. gremph가 디폴트이므로 궁서체는 곧은 모양으로 찍힌다. + +그러나 디자인 상의 효과를 위해서나 다른 이유에서 +이 서체를 기울이고 싶은 경우가 있을 것이다. +이 경우 \texttt{[itemph]} 클래스 옵션을 지정한다. +그 반대의 경우는 \texttt{[gremph]}이고 이것이 디폴트이다. 부분부분 기울이려 한다면 \cs{hangulfontspec}이나 +\cs{hanjafontspec}, 즉 \cs{adhochangulfont}를 이용하거나 \cs{addhangulfontfeature} 명령을 써서 조작할 수 있으므로 별도로 명령을 만들어두거나 하지 않았다. + +%\subsection{따옴표} +% +%2010년 초, \xetexko 의 급격한 발전과 더불어 \xobclass 가 시도하던 문장부호에 관한 사항은 사실상 +%\xetexko 를 따르는 것으로 충분해졌다. 문장부호를 식자할 때 라틴 문자 폰트의 것, 한글 폰트의 것을 +%자유롭게 선택할 수 있으며 간격 문제도 글꼴 선택의 옵션으로 가능하여졌다. +%\xetexko\ 매뉴얼을 잘 읽어보기 바란다. +% +%이 절은 더이상 의미가 없게 되어 내용을 삭제한다. + +% 따옴표는 한글 폰트의 것을 쓴다. 그러므로 큰따옴표를 입력할 때 \texttt{``}이 아니라 “으로 입력하는 것이 좋다.\footnote{% + % 윈도우즈 한글 입력기에서, ‘ㄴ’과 한자 키를 누르면 + % 이 부호를 입력할 수 있다.} +% 한글 폰트의 따옴표가 신통찮은 것이 너무 많아서, 라틴 문자 폰트의 것을 식자할 수 있도록 해두었다. +% 입력에서 한글 따옴표를 사용하였으나 식자는 라틴 문자 폰트의 것으로 하려 할 때 이 옵션을 쓰면 된다. +% 클래스 옵션 \texttt{{[}latinquote]}로 +% 지정한다. 아마 \texttt{\textbackslash{}textquotedblleft} 등도 되지 않으려나 한다. + +% 한편, \texttt{``}로 입력된 텍스트를 큰따옴표로 식자되게 하는 등, 전통적인 +% \TeX\ 입력 방식이 유지되게 하려면 라틴 문자 글꼴 지정 시에 +% \texttt{[Mapping=tex-text]} 옵션을 주면 된다. ``큰따옴표로 둘러싸인 텍스트''. +% 이 방식을 이용하면 (당연히) latinquote 옵션 여부와 상관없이 모든 따옴표가 라틴 문자 글꼴로 식자될 것이다. + +% \xobclass{}에는 \texttt{\textbackslash{}oblivoirquote}와 \texttt{\textbackslash{}oblivoirdblquote}라는 명령이 +% 정의되어 있다. \oblivoirdblquote{주어진 인자를 따옴표 안에 넣어주는 +% 명령}이다. 입력이 불편하여 일반적으로 이 명령을 쓸 일이 많으리라고 생각하지는 않지만 +% 한글 폰트 따옴표를 쓸 때, 폰트에 따라 따옴표의 간격이 맞지 않는 경우에 +% 이 명령에 별표를 붙이면 앞뒤의 간격을 조금 커닝해준다. 다만 latinquote 옵션이 +% 주어진 경우에는 아무런 효력이 없을 것이다. + +% 참고로, bnm, cnm 등의 \obclass{} \oblivoirquote{괄호 명령}에도 별표(*)를 붙여 앞뒤 간격을 +% 줄여줄 수 있다. |\ccnm{테스트}|, |\ccnm*{테스트}|. + +\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} +\usefastocksize{210mm,297mm} +\usefapapersize{190mm,260mm,1in,*,1in,*} +\end{boxedverbatim} +\texttt{[showtrims]} 옵션이 주어져 있다면 crop 선이 함께 나타날 것이다. + +\textsf{fapapersize}에 기정의 용지 설정이 몇 가지 있다. +\begin{description} \tightlist +\item [mum] 국판. (148mm$\times$210mm). 여백 25mm. +\item [newmum] 신국판. (154mm$\times$225mm). 여백 25mm. +\item [1in] \hologo{plainTeX}에서처럼 1in 오프셋을 설정한 판면. 여백 1in. +\item [dbl4x6] 4$\times$6 배판. (190mm$\times$260mm). 여백 30mm. +\end{description} + +\subsection{enumerate} + +enumerate 패키지의 enumerate 아이템 항목 머리 설정은 +다음과 같이 한다. 엔진과 무관하게 동작한다. +\begin{boxedverbatim} +\begin{enumerate}[(㉠)] \tightlist +\item 첫째 항목 +\item 둘째 항목 +\end{enumerate} +\end{boxedverbatim} +\begin{enumerate}[(㉠)] \tightlist +\item 첫째 항목 +\item 둘째 항목 +\end{enumerate} +paralist에서 위와 같은 방식으로 항목 머리를 설정하려면 +xob-paralist를 로드한다.\footnote{% + 물론 paralist 자체는 그 이전에 부르거나 + xob-paralist가 스스로 부르도록 할 것이고 xob-paralist 뒤에 + paralist만 별도로 다시 부르면 안 된다. +} + +\subsection{graphicx, xcolor} + +\hologo{pdfLaTeX} 문서는 dvi 드라이버로 어떤 것이 실행될지 모르기 때문에 graphicx 패키지의 +로딩에 주의를 기울여야 한다. 즉 +\marginpar{\fbox{pdftex}} +\begin{boxedverbatim} +\usepackage[]{graphicx} +\end{boxedverbatim} +과 같이 하는 것이 안전하다. 그러나 대부분의 경우 \verb||를 지정하지 않아도 된다. + +\marginpar{\fbox{xe(lua)tex}} +\XeTeX과 \LuaTeX 의 경우는 graphicx 패키지에 대한 명시적인 호출이 없어도 +png, jpg, pdf 그림을 잘 불러온다. %즉 \obclass가 알맞게 이 패키지를 호출하여준다. + % 이 패키지들을 명시적으로 +% 호출하고자 한다면 옵션 없이 로드하든가 \texttt{[xetex]} 옵션을 준다. +% default가 \texttt{[xetex]}이 되도록 설정되어 있어야 하는데, +% KC2008/\TeX{}Live에는 이것이 잘 되어 있다. +%pdf 그림을 불러오거나 색상 관련 명령을 쓰기 위해 +%color 또는 xcolor를 로드하려면, 옵션 설정을 graphicx와 똑같이 하면 된다. +%\begin{boxedverbatim} +%\usepackage{graphicx} +%\usepackage{xcolor} +%\end{boxedverbatim} + +\subsection{참조 인용, 자동 조사} + +자동 조사는 ko.\TeX 에서와 동일하다. +한글 label은 \XeTeX, \LuaTeX 에서 사용할 수 있다. +레거시 텍에서 label 자리에는 한글을 쓸 수 없다. \marginpar{\fbox{pdftex}} + +\medskip + +\noindent\hologo{pdfTeX}:\\ +\noindent\begin{minipage}{.45\textwidth} +\begin{verbatim} + “소절 \ref{sec:font}\를 보라.” +\end{verbatim} +\end{minipage}\hfill +\begin{minipage}{.45\textwidth} +\hfill “소절 \myREF{sec:font}{sec:폰트}\를 보라.” +\end{minipage} + +\noindent\hologo{XeTeX}, \hologo{LuaTeX}:\\ +\noindent\begin{minipage}{.45\textwidth} +\begin{verbatim} + “소절 \ref{sec:폰트}\를 보라.” +\end{verbatim} +\end{minipage}\hfill +\begin{minipage}{.45\textwidth} +\hfill “소절 \myREF{sec:font}{sec:폰트}\를 보라.” +\end{minipage} + +\subsection{문장부호} + +이 패키지가 제공하는 문장부호는 다음과 같은 것이 있다. + +\begin{itemize} +\item \verb|\bnm|, \verb|\snm|, \verb|\cnm|, \verb|\ccnm|. 각각 \bnm{제목}, \snm{제목}, \cnm{제목}, \ccnm{제목}과 같이 식자된다. +\item \verb|\obldots|. \verb|\obellipsis|. 각각 \obldots, \obellipsis와 같이 식자된다. 한글 패키지 \koTeX 이 로드되면 \verb|\ldots|의 모양이 \ldots와 같이 바뀌기 때문에 영문서의 \verb|\ldots|는 \verb|\obldots|로 식자할 \obldots 수 있다. \verb|\obellipsis|는 행이 나뉘어지지 않는 여섯 개의 점으로 이루어진 말출임표이다. +\item \verb|\cntrdot|, \verb|\cntrdots|. 각각 \cntrdot, \cntrdots로 식자한다. +\item \verb|\expldash|, \verb|\explpunc|. 이것은 설명을 위하여 삽입하는 괘선\expldash 을 표현하기 위한 매크로이다. \verb|\explpunc|의 사용법이 조금 특별하므로 주의하라. \verb*|\explpunc.some text.\ | \explpunc.some text.\ 와 같이 입력한다. 이 사용법이 복잡하다면 \verb|\expldash|를 두 번 쓰는 방법이 있다. +\end{itemize} + + +\subsection{방점} + +\koTeX 에서는 \texttt{\textbackslash dotemph} 명령의 방점\footnote{% + 가로쓰기에서는 \dotemph{점을 글자 위에 찍으므로} \circemph{傍점}이 아니라 + \circemph{上점}이 맞겠지만 관행적으로 방점이라 불러왔다. + 이 문장부호의 정확한 명칭은 “드러냄표”이다.}% +을 지원했다. \xetexko와 \luatexko에서도 이 명령을 사용할 수 있으며, +oblivoir에서 조금 확장했다. 기본인 +\texttt{\textbackslash dotemph} +외에 +\texttt{\textbackslash circemph} +\texttt{\textbackslash 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[][]{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[.5ex][\useremphstarwhite]{드러냄표} +\end{verbatim} +\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[]{}{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{HTML 제작} + +\textsf{lwarp}를 이용하여 HTML을 제작하려면 문서에 \textsf{lwarp} +옵션을 주고 작성한다. 그 후, +\begin{verbatim} +lwarpmk html .tex +\end{verbatim} +명령을 실행한다. MathJax 수식을 위해서는 +\begin{verbatim} +\documentclass[lwarp,lwarpoption={mathjax}]{oblivoir} +\end{verbatim} +와 같이 옵션을 줄 수 있다. + +모든 문서가 원하는 모양대로 HTML로 만들어지지 않을 것이다. 특히 +사용자화하여 복잡한 환경이나 명령을 만들어 쓴 경우에는 의도하지 않은 +결과가 나올 수도 있음에 주의하라. 이 클래스의 \verb|lwarp| 옵션은 +단지 \verb|lwarpmk| 명령을 부르기 위한 준비를 도와주는 것뿐이다. + +\section{샘플 문서} + +이 작은 안내서에 더하여 간단한 \obclass\ 샘플 문서를 하나 제공한다. +이 문서에서 여러 가지 memoir와 \obclass 의 기능을 살펴볼 수 있을 것이다. +oblivoir-test.tex을 컴파일해보고 소스를 검토해보시기 바란다. + +%\subsection{fontspec 옵션과 수학 글꼴}\myLabel{sec:fontspec}{sec:폰트스펙} +% +%fontspec 패키지와 이를 확장한 mathspec 패키지를 이용하여 +%수학 글꼴 일부를 바꾸고자 하거나 mathpazo와 같은 수학 글꼴 세트를 +%적용하고자 할 경우가 있다. 이 때는 다음 두 가지 조치를 해야 한다. +% +%\begin{enumerate}[(1)] +%\item 클래스 옵션으로 [manualfontspec]을 선언한다.\footnote{% +% 2011/09/15 이전 버전에서는 [fontspec]이라는 이름이었다.} +%이 선언으로 +%사용자는 fontspec을 자신의 책임 하에 로드할 수 있다. 심지어 +%xltxtra나 mathspec과 같이 fontspec을 부르는 패키지를 별도로 +%로드할 수 있다. +%\item 윗항의 fontspec 패키지 로드 후에 xetexko-xobfont 패키지를 +%부른다. 이 설정 이후에야 \textbackslash setkormainfont 와 같은 +%명령을 쓸 수 있게 될 것이다. +%\end{enumerate} +%이것은 mathfont를 조절하려면 fontspec의 옵션을 별도로 정의하여 +%상세한 설정을 해야 할 경우가 있기 때문이다. 예컨대 mathpazo를 +%수학 기본 글꼴로 쓰려 한다면 다음과 같이 하는 것이 가능하다. +%\begin{boxedverbatim} +%\documentclass[manualfontspec]{xoblivoir} +%\usepackage{mathpazo} +%\usepackage[math,quiet]{fontspec} +%\usepackage[math,quiet,MnSymbol]{mathspec} +%\setmathsfont{Asana-Math} +%\setmainfont[Ligatures=Common]{Palatino Linotype} +%\usepackage{xetexko-xobfont} +%\end{boxedverbatim} +%이 예보다 간단하게 할 수 있는 것도 많다. 이 예는 설명을 위하여 +%보인 것일 따름이다. +%위의 mathspec 대신 fontspec 패키지 문서에 나와 있듯이 \textbackslash setmathrm +%등의 명령으로 수학 폰트를 조절할 수 있다. +% +%2011/09/15 버전에서 이와 관련한 몇 가지 사항이 추가되었다. +%\begin{enumerate}[(a)] +%\item {[manualfontspec]} 옵션을 주었을 때는 위와 같은 방법으로 fontspec +%패키지를 수동 로드할 수 있다. +%\item {[fontspec=\{no-math\}]}와 같이 fontspec 패키지에 옵션을 미리 설정해줄 +%수 있다. no-math 옵션을 주면 fontspec 명령들이 수식에는 영향을 끼치지 않으므로 +%익숙한 CM-math 글꼴로 수식이 식자된다. +%\item {[preload=mathspec,preloadoption=\{math\}]}와 같이 preload할 패키지에 +%넘겨줄 옵션을 preloadoption으로 지정할 수 있다. +%\end{enumerate} + +%\subsection{옛한글과 세로쓰기}\myLabel{sec:oldhangul}{sec:올드한글} +% 옛한글 글꼴을 사용하려면 [oldhangul] 옵션을 주고 글꼴을 지정해야 한다. +% 세로쓰기는 사용가능하나, 아직 xoblivoir에서 조작하도록 하지는 않았다. +% \xetexko{} 매뉴얼에 옛한글 쓰기에 관한 간략한 소개가 있다. +%2010년 2월, \xetexko 의 옛한글 조판은 거의 완전한 수준에 이르렀다. +%입력을 표준에 맞는 소위 `첫가끝' 코드로 하면서도 사용자 영역(PUA)에 옛한글이 +%들어 있는 글꼴의 옛한글로 mapping이 가능해졌으며, GSUB 옛한글 글꼴(현재 +%알려진 것으로는 은 바탕과 Microsoft Office 2002 Plus Pack의 옛한글 글꼴밖에 없다)을 +%그대로 이용하여 옛한글 식자가 가능하다. +% +%이 역시 \xetexko 의 기능으로서 \xobclass는 더이상 할 일이 없어 이 절의 내용을 삭제한다. + +%\subsection{amssymb}\myLabel{sec:ams}{sec:에이엠에스} +%amssymb 패키지를 로드하려 시도하면 몇 가지 명령이 이미 정의되어 +%있다는 메시지가 나온다. 이 메시지를 줄이려면 amssymb 대신 +%xob-amssymb를 usepackage하도록 한다. +% +%한편, LyX에는 amsmath와 amssymb 패키지를 자동으로 로드하는 기능이 있다. +%이 때문에 사용자가 xob-amssymb를 로드하려 해도 그보다 이전에 amssymb가 +%LyX에 의해 로드되어 의도하는 결과를 얻지 못하는 경우가 있다. 이 때를 위하여 +%[amsmath] 옵션을 마련해두었다. 이 옵션이 활성화되면 amsmath와 xob-amssymb를 +%xoblivoir가 로드해준다. +% +%\subsection{flowfram}\myLabel{sec:flowfram}{sec:플로프렘} +%fapapersize 및 flowfram 패키지와 함께 쓸 때, 첫 페이지의 pdf 사이즈만이 +%fapapersize로 지정한 것을 따라가지 않는 문제점이 있다.\footnote{% +% 이주호 님이 알려주셨음.} +% +%\xobclass 는 memoir의 페이지 출력 루틴을 조금 수정하여 대부분의 경우 +%pdf 사이즈 충돌 문제가 해결되도록 해두었다. +%그러나 어떤 경우 pdf 파일의 첫 페이지와 이후 페이지의 사이즈가 불일치하는 +%문제가 여전히 발생할 가능성이 있어 다음 옵션을 없애지 않았다. +% +%[a4paper] 등 미리 정의된 페이지의 경우는 아무런 문제가 생기지 않는다. +%그러나 memoir 옵션으로 지정할 수 없는 사이즈, +%예컨대 190mm$\times$260mm pdf를 만들고 싶을 때는 어떻게 하는가? +%\xobclass 에게 페이지 사이즈를 강제로 알려주는 방법이 있다. +%\begin{boxedverbatim} +%\documentclass[,fawd=190mm,faht=260mm]{xoblivoir} +%\usepackage{fapapersize} +%\usefapapersize{190mm,260mm,30mm,*,40mm,*} +%\usepackage{flowfram} +%\end{boxedverbatim} +%이제 첫 페이지의 사이즈도 두번째 이후의 것과 같아졌을 것이다. +% +%\subsection{preload}\myLabel{sec:preload}{sec:프리로드} +%일부 패키지 중에는 이따금 memoir 클래스 자체보다 미리 로드되어야 하는 것이 있다. +%대표적인 예가 아랍어를 식자할 때 빼놓을 수 없는 bidi 패키지이다. +%이와 같이 memoir보다 먼저 로드해야 하는 패키지를 쓸 때 다음과 같이 한다. +%\begin{boxedverbatim} +%\documentclass[preload={bidi}]{xoblivoir} +%\end{boxedverbatim} +% +%preload할 패키지에 전해줄 옵션은 다음과 같이 설정한다. +%\begin{boxedverbatim} +%\documentclass[preload={mathspec},preloadoption={math}]{xoblivoir} +%\end{boxedverbatim} +% +%moreverb의 경우도 이렇게 하면 되므로 이제 의미가 없어진 옵션이 되었지만 종래 +%작성된 문서와의 호환을 위해서 없애지는 않았다. +% +%\subsection{moreverb}\myLabel{sec:moreverb}{sec:모아버브} +%이 옵션은 pstricks를 사용하기 위하여 pdfm\-tricks를 이용하려 할 때 +%필요하다. pdfm\-tricks는 moreverb, graphicx, (x)color 패키지가 미리 +%로드되어야 동작하는데, 이 중 graphicx와 xcolor는 문제가 없지만 +%oblivoir(memoir)에서 moreverb는 \textbackslash usepackage 로 +%로드하면 memoir의 일부 명령과 충돌한다. +%이 충돌을 해결해주는 옵션이며, 이 옵션을 준 후에 moreverb를 별도로 +%로드할 필요 없다. moreverb는 \myPageREF{sec:preload}{sec:프리로드}에서 설명하는 +%preload로 미리 로드하는 방법이 있으므로 사실상 obsolete인 옵션이다. +% +%\subsection{microtype}\myLabel{sec:microtype}{sec:마이크로타입} +%현재까지 \XeTeX 은 pdf\TeX과 Lua\TeX 의 microtype 기능을 엔진 수준에서 지원하지 않는다. +%그러나 \xetexko 는 xetexko-hanging이라는 기법을 이용하여 온점과 반점을 판면 밖으로 밀어냄으로써 +%margin kerning과 비슷한 효과를 줄 수 있게 하는 재미있는 기능을 제공한다. +%이 옵션은 이름은 microtype이지만 실은 xetexko-hanging을 활성화하는 역할을 한다. +%이 문서가 이 기능을 활성화하여 작성되었다. +% +%\subsection{hyperref, xcolor}\label{sec:hyperrefxcolor} +%LyX 을 쓴다거나 할 때 \XeTeX 을 위해서 hyperref의 [unicode] 옵션을 +%꺼주어야 할 때가 있다. 이를 위해서 hyperref 패키지에 미리 넘길 옵션을 지정할 수 있게 +%하였다. +%\begin{boxedverbatim} +%\documentclass[hyperref={unicode=false}]{xoblivoir} +%\end{boxedverbatim} +% +%필요에 의해 xcolor 패키지에 대해서도 비슷하게 할 수 있도록 해두었다. + +\section{첨언} +\xobclass{} 사용이 어느 정도로 쉬운가 하면, 나는 맨처음 이 문서를 +LyX에서 작성하여 export한 다음, 두 줄 정도를 지우고 폰트 +설정명령만을 써넣었다. 그래도 훌륭한 \XeLaTeX\ 문서가 만들어졌던 +것이다. + +이 글을 쓰기 시작할 때만 해도 \xetexko{}와 \xobclass{}는 +완성되어 있지 않았다. 그러나 지금은 일반적인 문서를 작성함에 있어서 +불편이 없을 정도가 되었다. + +\bigskip + +돌이켜보면, 한글을 \TeX\ 문서에 사용할 수 있다는 사실 자체가 +신기했던 그 때로부터 20여년이 흘렀다. 본격적인 한글\LaTeX\ 시스템들이 +나오기 시작했던 1990년대 중반으로부터 헤아려도 십수 년, +이 기간 동안 한글이라는 문자 체계를 식자하기 위해 지불해야 했던 +엄청난 노력과 자원을 생각하면 금석지감이 없지 않다. + +Lua\TeX 과 \XeTeX 이라는 유니코드 텍 엔진의 등장은, 이러한 모든 +노력들을 일시에 해결해버렸다. 이제 한글 문자의 식자는 더이상 +문제가 되지 않는다. +그러나 한글 문서다운 한글 문서, 한글 문서의 타이포그래피의 완성을 +위한 길은 아직도 요원하다. 단순히 “글자를 찍는” 문제가 해결되었다고 +해서 모든 일이 끝난 것은 아닌 것이다. 단지 더 생산적인 문제를 +더 잘 구현할 수 있는 바탕이 갖추어진 것일 뿐이라고 생각한다. + + +\section{변경 이력} + +2020년의 2.2 버전은 그 동안 알려진 몇 가지 버그를 수정하고 약간의 기능을 +추가하는 데 그쳤다. + +% \section{알려진 문제점} + +% 아래 문제점과 버그들은 다음 버전에서 해결하도록 노력할 것이다. + +% \begin{enumerate}[(가)] \tightlist +% % \item ExternalLocation 옵션을 활성화하는 설정과 그렇지 않은 설정을 함께 쓸 때 +% % ExternalLocation 명령이 순서상 먼저 나와야 한다. + +% \item 윈도우즈 폰트 네임과 다른 리눅스 및 매킨토시의 폰트 이름 호출이 +% 실패하는 경우가 있다. 다행히 은 글꼴의 경우는 문제없으나, 은 글꼴은 반드시 +% 최신 버전이어야 한다. 우분투 등의 리눅스에서 패키지로 설치해주는 기본 설치 +% 글꼴은 때로 문제를 일으킨다. 이것은 저자가 어찌해볼 수 있는 문제가 아니다. +% \end{enumerate} + +% 한글 기호 문자 일부는 한자 영역에 배정하였다. 한자가 없는 한글 글꼴을 +% 본문 기본 서체로 지정하는 경우를 위한 것이다. 그러나 이 문제는 아직 +% 확정된 것이 아니며 좀더 테스트를 거쳐서 결정할 일로 보인다. + +%%\section{이 문서의 폰트 사용 설정} +%% +%%이 문서의 폰트 사용 설정은 다음과 같다. +%%\begin{boxedverbatim} +%%\setmainfont[Mapping=tex-text]{Bradley Hand ITC} +%%\setmonofont[Scale=.85]{Consolas} +%%\setkormainfont(문화 궁서 Std L){문화 궁서 흐림 Std L}(){네이버사전} +%%\setkormonofont{은 필기} +%%\setmonoscale{0.9} +%%\end{boxedverbatim} + +%%%\section{버전 인포}\myLabel{sec:versioninfo}{sec:버전인포} +%%% +%%%\begin{enumerate}\tightlist +%%%\item 이 초간단 매뉴얼은 xoblivoir 2011/09/15 버전에 일치한다. +%%%\item 이 초간단 매뉴얼은 xoblivoir 2010/02/10 버전에 일치한다. +%%%\item 이 초간단 매뉴얼은 xoblivoir 2008/12/03 버전에 일치한다. +%%%\item 이 초간단 매뉴얼은 xoblivoir 2008/11/24 버전에 일치한다. +%%%\item 이 초간단 매뉴얼은 xoblivoir 2008/11/09 버전에 일치한다. +%%%\item 이 초간단 매뉴얼은 xoblivoir 2008/10/23 버전에 일치한다. +%%%\item 이 초간단 매뉴얼은 xoblivoir 2008/10/22 버전에 일치한다. +%%%\item 이 초간단 매뉴얼은 xoblivoir 2008/10/12 버전에 일치한다. +%%%\item 이 초간단 매뉴얼은 xoblivoir 2008/10/11 버전에 일치한다. +%%%\end{enumerate} +%%% +%%%%%% 한자 테스트 +%%%이 매뉴얼은 Notepad++로 編輯하였다. 다 좋은데 Notepad++의 +%%%KCmenu plug\-in에 xelatex 實行 命令 短縮키가 없어서 不便했다. +%%%그러던 것이 최근 새로운 단축키가 생김으로써 훨씬 편하게 작업할 +%%%수 있게 되었다. +%%% +%%%%이 글을 더 줄인 \bnm*{極超簡單 매뉴얼}을 究想中이다. + +\end{document} diff --git a/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-test.tex b/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-test.tex new file mode 100644 index 00000000000..58952054f1c --- /dev/null +++ b/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-test.tex @@ -0,0 +1,1339 @@ +%!TEX encoding = UTF-8 Unicode +% arara: xelatex +% arara: texindy: { language: Korean, codepage: utf8 } +% arara: xelatex +%% +%% 이 파일은 oblivoir 패키지 문서의 일부로서, oblivoir 클래스의 여러 기능을 +%% 테스트하기 위한 목적으로 제공합니다. 일부 기능은 테스트 목적으로 과장되어 있습니다. +%% pdflatex, xelatex, lualatex으로 컴파일할 수 있습니다. (결과의 완전한 동일성은 +%% 보장하지 못합니다.) +%% +%% 2020/02/05. +%% 2015/04/22. memoir url 수정 +%% 2014/06/15. 부분 수정. +%% 2013/09/28. xoblivoir ver2 버전으로 포팅. +%% 2010/03/17. xoblivoir 버전으로 포팅 +%% +%% oblivoir 2.0.1 테스트 파일 +%% Written by 도은이아빠. +%% public domain. +%% + +\documentclass[demo,chapter,openany,amsmath,gremph,lwarp]{oblivoir} +%%% amsmath 옵션은 amsmath, amssymb 패키지를 로드해준다.. + +%% display overfullrule +%\setlength\overfullrule{5pt} + +%% 페이지 레이아웃. fapapersize를 이용한다.. +\usepackage{fapapersize} +\usefapapersize{220mm,276mm,20mm,80mm,30mm,35mm} + +% 폰트 설정 +\ifPDFTeX + \usepackage{mathpazo} +\else\ifLuaOrXeTeX + \setmainfont{TeX Gyre Pagella} + \setsansfont[Scale=.95]{TeX Gyre Heros} +%% \setkomain/sansfont : see oblivoir-simpledoc. + \setkomainfont(HCRBatangLVT)(*-Bold)(UnGraphic) + \setkosansfont[NanumGothic]()[](HCRDotumLVT) +%% 수학 폰트 +% \usepackage{unicode-math} +% \setmathfont{Asana-Math.otf} +\fi\fi + +\ifLuaTeX +\def\interHANGUL{InterHangul} +\else\ifXeTeX +\def\interHANGUL{interhchar} +\fi\fi + +%% logos +\usepackage{kotex-logo} +%% index for \koTeX +%\let\ORIGkoTeX \koTeX +%\def\koTeX{\ORIGkoTeX\index{ko.TeX}} + +%%% marginfix +%\usepackage{marginfix} + +%% 좌우 마진의 marginpar 위치가 혼선을 보인다면 +%% 다음을 선언한다. +\strictpagecheck + +\usepackage{cite} + +%\ifPDFTeX +\usepackage{graphicx} +%\fi +%% pdf 정보 +\makeatletter +\if@lwarp +\usepackage{xcolor} +\def\epigraph#1#2{#1\quad #2} +\else +\usepackage[dvipsnames]{xcolor} +\hypersetup{% + bookmarks=true,% + plainpages=false,% + colorlinks=true,% + pdfauthor={Karnes Kim},% + pdfcreator={Karnes Kim} +} +\fi +\makeatother + +\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 + +%% index를 만든다. +\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와 함께 쓸 수 있다. +%% 참고. [bottom] footnote를 위해서라면 +%% 다음과 같이 할 것을 권장함. raggedbottom에서 동작함. +%\renewcommand*{\footnoterule}{\kern-3pt\vfill +% \hrule width 0.4\columnwidth \kern 2.6pt} +%% 각주를 floats 아래 두는 memoir 명령. +\feetbelowfloat + +%% 밑줄. +\ifLuaTeX\else +\usepackage[normalem]{ulem} +\fi + +%% 사소한 설정 +\def\util#1{\texttt{#1}\index{Utility!#1}} + +%%% +%\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 문서이다. + +현재는 |oblivoir|와 |xoblivoir|가 사실상 동일하다. 그러므로 이 글에서 +|xoblivoir|라 한 것은 모두 |oblivoir|로 바꾸어도 된다. + +해당 문단의 여백에 사용되고 있는 명령이 나와 있으므로 참고할 수 있을 +것이다. 실제로 xoblivoir 사용설명서를 작성하기 어려운 것이 +기본적인 것은 모두 memoir에 바탕을 두고 있는 데다가 +한글화하면서 변화한 점도 많아서 이것을 모두 모으면 너무나 방대한 +내용이 된다는 점이다. + +이 문서의 원본을 잘 연구하면 그럭저럭 oblivoir가 어떻게 동작하는지 +짐작할 수 있게 되기를 희망한다. + +이 문서는 다음 순서로 컴파일할 수 있다. |$ENGINE|은 \util{pdflatex}, \util{xelatex}, \util{lualatex} 가운데 하나이고 +|$JOBNAME|은 파일 이름(\texttt{xobtesttest})이다. +한편, 색인을 만드는 유틸리티 |$MAKEINDEXENGINE|은 \util{pdflatex} 상황에서는 +\util{komkindex}이고 그밖의 경우에는 \util{texindy}이다. + +\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 클래스에서\\ 한글을 쓰자} +\label{sec:firstchap} + +\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{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[.3ex][\tiny★]{발전을 거듭하여} +현재에 이르렀다. +\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{수학질문상자}\label{sec:math} + +%% 절의 카운터를 \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{align*} +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{align*} +%\] +%\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 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{texindy에 관하여} +찾아보기를 만들려면 |texindy|를 사용하라. 예를 들면 다음과 같다. +\begin{verbatim} +$ texindy -L korean -C utf8 oblivor-test.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://mirror.ctan.org/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-common/10_5.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/10_5.sty new file mode 100644 index 00000000000..401c569ff9a --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/10_5.sty @@ -0,0 +1,82 @@ +%% File `10_5.sty` +%% +%% Copyright (c) 2006-2013 Kangsoo Kim +%% +%% 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. +%% +%% default font sizes 10.5 +%% 폰트 사이즈 설정. +%% +\def\@xvarpt{10.5} +\def\@ixvarpt{9.5} +\def\@vvarpt{5.5} +\def\@vivarpt{6.5} +\def\@viivarpt{7.5} +\def\@viiivarpt{8.6} +\def\@xivarpt{11.65} +\def\@xiivarpt{12.5} +\def\@xiiipt{13} +\renewcommand{\normalsize}{% + \@setfontsize\normalsize\@xvarpt\@xiipt + \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI} +\normalsize +\renewcommand{\small}{% + \@setfontsize\small\@ixvarpt{11}% + \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus2\p@ + \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 4\p@ \@plus2\p@ \@minus2\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep +%% \itemindent\z@ + }% + \belowdisplayskip \abovedisplayskip +} +\renewcommand{\footnotesize}{% + \@setfontsize\footnotesize\@viiivarpt{9.5}% + \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus\p@ + \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 3\p@ \@plus\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep +%% \itemindent\z@ + }% + \belowdisplayskip \abovedisplayskip +} +\renewcommand{\miniscule}{\@setfontsize\miniscule\@vipt{6}} +\renewcommand{\tiny}{\@setfontsize\tiny\@viipt{7.5}} +\renewcommand{\scriptsize}{\@setfontsize\scriptsize\@viivarpt{8}} +\renewcommand{\large}{\@setfontsize\large\@xivarpt{13.6}} +\renewcommand{\Large}{\@setfontsize\Large\@xiiipt{14.5}} +\renewcommand{\LARGE}{\@setfontsize\LARGE\@xivpt{18}} +\renewcommand{\huge}{\@setfontsize\huge\@xviipt{22}} +\renewcommand{\Huge}{\@setfontsize\Huge\@xxpt{25}} +\renewcommand{\HUGE}{\@setfontsize\HUGE\@xxvpt{30}} +\setlength{\onelineskip}{\@xiipt\p@} +\if@twocolumn + \setlength\parindent{1em} +\else + \setlength\parindent{15\p@} +\fi + +\if@twocolumn + \setlength\marginparsep{11\p@} +\else + \setlength\marginparsep{6\p@} +\fi +\setlength{\marginparpush}{7\p@} + +\endinput diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/fapapersize.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/fapapersize.sty new file mode 100644 index 00000000000..a1a57f113fc --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/fapapersize.sty @@ -0,0 +1,147 @@ +%% File `fapapersize.sty` +%% +%% Copyright (c) 2006-2013 Kangsoo Kim +%% +%% 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. +%% +%% ver 0.031 (2006/12/04) +%% trivial bug fix. +%% ver 0.03 (2006/11/24) +%% stocksize를 별도 지정할 수 있게 함 +%% option [stock], command \usefastocksize{}{} +%% ver 0.02 +%% 사륙배판, 국판, 신국판 정의. +%% marginnote 영역 설정은 제외되어 있음. +%% ver 0.1 +%% option 1in added +%% +\ProvidesPackage{fapapersize}[2020/02/10 v0.1] +%%% +%%% 옵션 +%%% dbl4x6 : 사륙배판 +%%% mum : 국판 +%%% newmum : 신국판 +\DeclareOption{dbl4x6}{% + \AtEndOfPackage{\usefapapersize{190mm,260mm,30mm,*,30mm,*}}% +} +\DeclareOption{mum}{% + \AtEndOfPackage{\usefapapersize{148mm,210mm,25mm,*,25mm,*}}% +} +\DeclareOption{newmum}{% + \AtEndOfPackage{\usefapapersize{154mm,225mm,25mm,*,25mm,*}}% +} +\DeclareOption{1in}{% + \AtEndOfPackage{\usefapapersize{*,*,1in,*,1in,*}}% + } +\newif\ifStockSize@\StockSize@false +\DeclareOption{stock}{% + \StockSize@true +} +\newif\if@showtrim\@showtrimfalse +%\DeclareOption{trimmark}{\@showtrimtrue} +\DeclareOption{showtrims}{\@showtrimtrue} +\ProcessOptions + +\newlength\fa@stockheight\newlength\fa@stockwidth +\newlength\fa@paperheight\newlength\fa@paperwidth +\newlength\fa@leftmargin\newlength\fa@rightmargin +\newlength\fa@uppermargin\newlength\fa@lowermargin +\newlength\fa@tmplenwd\newlength\fa@tmplenht + +\newdimen\tmp@dim + +\def\set@paper@size{% + \ifnum\fa@paperwidth>\fa@tmplenwd + \if@showtrim + \typeout{the page size is too small. Trim mark will not be shown.} + \@showtrimfalse\trimNone + \fi + \fi + \if@showtrim + \setstocksize{\fa@tmplenht}{\fa@tmplenwd} + \settrimmedsize{\fa@paperheight}{\fa@paperwidth}{*} + \setlrmarginsandblock{\fa@leftmargin}{\fa@rightmargin}{*} + \setulmarginsandblock{\fa@uppermargin}{\fa@lowermargin}{*} + \setlength{\trimtop}{\stockheight} + \addtolength{\trimtop}{-\paperheight} + \setlength{\trimedge}{\stockwidth} + \addtolength{\trimedge}{-\paperwidth} + \settrims{.5\trimtop}{.5\trimedge} + \trimLmarks + \else + \setstocksize{\fa@paperheight}{\fa@paperwidth} + \settrimmedsize{\stockheight}{\stockwidth}{*} + \setlrmarginsandblock{\fa@leftmargin}{\fa@rightmargin}{*} + \setulmarginsandblock{\fa@uppermargin}{\fa@lowermargin}{*} + \trimNone + \fi + \tmp@dim=\headheight\advance\tmp@dim by\headsep\advance\tmp@dim by1mm + \ifdim\fa@uppermargin<\tmp@dim + \setheaderspaces{*}{10pt}{*} + \tmp@dim=\fa@uppermargin\advance\tmp@dim by-\headsep\advance\tmp@dim by-1mm + \setheadfoot{\tmp@dim}{\tmp@dim} + \fi + \checkandfixthelayout +} + +\def\@usefastocksize#1#2{% + \setlength\fa@stockheight{#2}% + \setlength\fa@stockwidth{#1}% +} + +\newcommand*{\usefastocksize}[1]{% + \set@fa@stocksizeparameters#1\@nil +} + +\def\set@fa@stocksizeparameters#1,#2\@nil{% + \setlength{\fa@stockwidth}{#1}% + \setlength{\fa@stockheight}{#2}% +} + +\def\@usefapapersize#1#2#3[#4]#5[#6]{% + \setlength\fa@paperwidth{#1} + \setlength\fa@paperheight{#2} + \setlength\fa@leftmargin{#3} + \setlength\fa@rightmargin{#4} + \setlength\fa@uppermargin{#5} + \setlength\fa@lowermargin{#6} +} + +\newcommand*\usefapapersize[1]{% + \get@stocksize + \set@fa@papersizeparameters#1\@nil + \set@paper@size +} + +\def\get@stocksize{% + \ifStockSize@ + \def\fa@tmplenwd{\fa@stockwidth}\def\fa@tmplenht{\fa@stockheight} + \else + \def\fa@tmplenwd{\stockwidth}\def\fa@tmplenht{\stockheight} + \fi +} + +\def\set@fa@papersizeparameters#1,#2,#3,#4,#5,#6\@nil{% + \ifx*#1\def\@tmp@pgwidth{\fa@tmplenwd}\else\def\@tmp@pgwidth{#1}\fi + \ifx*#2\def\@tmp@pgheight{\fa@tmplenht}\else\def\@tmp@pgheight{#2}\fi + \ifx*#4 + \ifx*#6 + \@usefapapersize{\@tmp@pgwidth}{\@tmp@pgheight}{#3}[{#3}]{#5}[{#5}] + \else + \@usefapapersize{\@tmp@pgwidth}{\@tmp@pgheight}{#3}[{#3}]{#5}[{#6}] + \fi\else + \ifx*#6 + \@usefapapersize{\@tmp@pgwidth}{\@tmp@pgheight}{#3}[{#4}]{#5}[{#5}] + \else + \@usefapapersize{\@tmp@pgwidth}{\@tmp@pgheight}{#3}[{#4}]{#5}[{#6}] + \fi + \fi +} + +\endinput diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memhangul-common.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memhangul-common.sty new file mode 100644 index 00000000000..4550be54675 --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memhangul-common.sty @@ -0,0 +1,1184 @@ +%% File `memhangul-common.sty` +%% +%% (C) Copyright 2013-2020 Kangsoo Kim +%% +%% 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. +%% +%%% +%%% part of kotex-oblivoir +%%% +%%% ===================== +%%% 편, 장 섹션 타이틀 재설정 +%%% 절의 섹션 타이틀은 수정하지 않음. +%% +\ProvidesPackage{memhangul-common}[2020/02/05] + +\let\@CHAPAPP\@chapapp +\def\refreshprepostchapters{% + \if@hanja + \def\pre@chapter{第}% + \else + \def\pre@chapter{제}% + \fi + \let\@chapapp\@CHAPAPP + \def\post@chapter{\@chapapp}% +} +\refreshprepostchapters +%\renewcommand\@chapapp{장} +\def\prechapternum{\pre@chapter} +\def\postchapternum{\post@chapter} +\newcommand\hchaptertitlehead{\pre@chapter\,\thechapter\,\post@chapter} +\providecommand\partmark[1]{} + +\let\pre@part\pre@chapter +\let\post@part\partname +%\renewcommand{\printpartname}{\partnamefont \pre@part} +\renewcommand{\printpartname}{} % disabled. +\renewcommand{\partnamenum}{\space} +\def\prepartnum{\partnamefont \pre@part} +\def\postpartnum{\partnamefont \post@part} +\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}% + \def\f@rtoc{#1}% + \@nameuse{part@f@rtoc@before@write@hook}% + \phantomsection + \mempreaddparttotochook + \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 + \mempostaddparttotochook + \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}% + \phantomsection + {\centering + \interlinepenalty \@M + \normalfont + \printparttitle{#1}\par}% + \@endpart} + +%\def\@endpart{\afterpartskip +% \if@twoside +% \if@openright +% \null +% \thispagestyle{empty}% +% \newpage +% \fi +% \fi +% \if@tempswa +% \twocolumn +% \fi} + +%% CHAPTER +%%%%%%%%%%% +\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{% + \m@mpn@new@chaptrue% + \m@mpn@new@schapfalse% + \def\f@rbdy{#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 + \mempostaddchaptertotochook% + \ifheadnameref\M@gettitle{\f@rhdr}\else\M@gettitle{\f@rtoc}\fi +%%% for chapter + \ifanappendix + \protected@edef\@currentlabel{\thechapter}% + \fi + \memendofchapterhook% +} + +%\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@ +% }} +\RequirePackage{etoolbox} +\patchcmd\@makechapterhead{% + \printchaptername \chapternamenum \printchapternum + \afterchapternum}{% + \prechapternum \chapternamenum \printchapternum + \chapternamenum \postchapternum \afterchapternum}{}{} + +\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 + } +} + +%%%%%%%%%%%%% + +\renewcommand{\@chs@def@ult}{% + \def\chapterheadstart{\vspace*{\beforechapskip}} +% \def\printchaptername{\chapnamefont \@chapapp} +% \def\printchaptername{\chapnamefont \pre@chapter} + \def\printchaptername{} % disabled. +% \def\chapternamenum{\space} + \def\chapternamenum{\,} + \def\printchapternum{\chapnumfont \thechapter} + \def\prechapternum{\chapnamefont \pre@chapter} + \def\postchapternum{\chapnamefont \post@chapter} + \def\afterchapternum{\par\nobreak\vskip \midchapskip} + \def\printchapternonum{} + \def\printchaptertitle##1{\chaptitlefont ##1} + \def\postchaptertitle{\post@chapter} + \def\afterchaptertitle{\par\nobreak\vskip \afterchapskip} +} + +%% l@chapter, l@part + +\setlength{\cftpartnumwidth}{4.5em} +\setlength{\cftchapternumwidth}{4.0em} +%% for compatibility with mempatch 3.12 +\def\@chapapp@head{}% + +%% SECTION + +\renewcommand{\section}{% + \sechook\memucsinterwordhook% + \@startsection{section}{1}% level 1 + {\secindent}% heading indent + {\beforesecskip}% skip before the heading + {\aftersecskip}% skip after the heading + {\normalfont\secheadstyle}} % font + +%% PAGESTYLES +%% headings, ruled, Ruled, companioin을 수정함 + +%% pagestyle headings +\if@twoside + \makepagestyle{headings} + \makepsmarks{headings}{% + \let\@mkboth\markboth + \def\chaptermark##1{% + \markboth{\MakeUppercase{% + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \hchaptertitlehead \enskip\ % + \fi + \fi + ##1}}{}}% + \def\tocmark{\markboth{\MakeUppercase{\contentsname}}{}}% + \def\lofmark{\markboth{\MakeUppercase{\listfigurename}}{}}% + \def\lotmark{\markboth{\MakeUppercase{\listtablename}}{}}% + \def\bibmark{\markboth{\MakeUppercase{\bibname}}{}}% + \def\indexmark{\markboth{\MakeUppercase{\indexname}}{}}% + \def\sectionmark##1{% + \markright{\MakeUppercase{% + \ifnum \c@secnumdepth > \z@ + \thesection \enskip\ % + \fi + ##1}}}% + } + \makeevenhead{headings}{\thepage}{}{\normalfont\slshape\leftmark} + \makeoddhead{headings}{\normalfont\slshape\rightmark}{}{\thepage} +\else + \makepagestyle{headings} + \makepsmarks{headings}{% + \let\@mkboth\markboth + \def\chaptermark##1{% + \markright{\MakeUppercase{% + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \hchaptertitlehead \enskip\ % + \fi + \fi + ##1}}}% + \def\tocmark{\markright{\MakeUppercase{\contentsname}}}% + \def\lofmark{\markright{\MakeUppercase{\listfigurename}}}% + \def\lotmark{\markright{\MakeUppercase{\listtablename}}}% + \def\bibmark{\markright{\MakeUppercase{\bibname}}}% + \def\indexmark{\markright{\MakeUppercase{\indexname}}}% + } + \makeoddhead{headings}{\normalfont\slshape\rightmark}{}{\thepage} +\fi + +%% Pagestyle ruled + +\makepagestyle{ruled} +\makeevenfoot{ruled}{\thepage}{}{} +\makeoddfoot{ruled}{}{}{\thepage} +\makeheadrule{ruled}{\textwidth}{\normalrulethickness} +\renewcommand{\@ruledmarks}{% + \let\@mkboth\markboth + \def\chaptermark##1{% + \markboth{% + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \hchaptertitlehead \enskip\ % + \fi + \fi + ##1}{}} + \def\sectionmark##1{\markright{##1}} + \def\tocmark{\markboth{\contentsname}{}} + \def\lofmark{\markboth{\listfigurename}{}} + \def\lotmark{\markboth{\listtablename}{}} + \def\bibmark{\markboth{\bibname}{}} + \def\indexmark{\markboth{\indexname}{}} +} +\makepsmarks{ruled}{\@ruledmarks} +\makeevenhead{ruled}{\normalfont\scshape\leftmark}{}{} +\makeoddhead{ruled}{}{}{\normalfont\rightmark} + + +%%% References +\renewcommand\Cref[1]{% + \pre@chapter\,\ref{#1}\,\chapterrefname% +} +\renewcommand\Pref[1]{% + \pre@part\,\ref{#1}\,\partrefname% +} +\renewcommand\pref[1]{% + \pageref{#1}~\pagerefname +} +\renewcommand\tref[1]{% + \tablerefname~\ref{#1}% +} +\renewcommand\fref[1]{% + \figurerefname~\ref{#1}% +} + +%% arabic, roman... etc. +%%\def\HArabic#1{\arabic{#1}} +\def\HAlph#1{\Alph{#1}} +\def\Halph#1{\alph{#1}} +\def\HROMAN#1{\hRoman{#1}} +\def\Hroman#1{\hroman{#1}} +%% + +%% phantomchapter = phantomsection +\def\phantomchapter{% + \Hy@GlobalStepCount\Hy@linkcounter + \xdef\@currentHref{chapter*.\the\Hy@linkcounter}% + \Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}% +} + +%%% index +\renewcommand{\@wrindexm@m}[1]{\@@wrindexhyp#1||\\} + + +%%% 한글 문장부호 관련 명령 +%%% \hfontfamilynameprefix is deprecated. (ver1.5.0) +\def\hfontfamilynameprefix{ut} % for compatibility only + +\def\cnm@char@open{〈} +\def\cnm@char@close{〉} +\def\ccnm@char@open{《} +\def\ccnm@char@close{》} +\def\snm@char@open{「} +\def\snm@char@close{」} +\def\bnm@char@open{『} +\def\bnm@char@close{』} + +\ExplSyntaxOn +\NewDocumentCommand \memx@make@bnmcmd { mm } +{ + \ifvmode\leavevmode\fi + \memx@bnmcmd@prekern + \use:c { #1@char@open } + #2 + \use:c { #1@char@close } + \memx@bnmcmd@postkern +} +\ExplSyntaxOff + +\protected\def\cnm{% + \@ifnextchar*\cnm@star\cnm@nostar +} + +\def\cnm@star*#1{% + \def\memx@bnmcmd@prekern{\kern-.35em}% + \def\memx@bnmcmd@postkern{\kern-.4em}% + \memx@make@bnmcmd{cnm}{#1}% +} + +\def\cnm@nostar#1{% + \let\memx@bnmcmd@prekern\relax + \let\memx@bnmcmd@postkern\relax + \memx@make@bnmcmd{cnm}{#1}% +} + +\protected\def\ccnm{% + \@ifnextchar*\ccnm@star\ccnm@nostar +} + +\def\ccnm@star*#1{% + \def\memx@bnmcmd@prekern{\kern-.35em}% + \def\memx@bnmcmd@postkern{\kern-.4em}% + \memx@make@bnmcmd{ccnm}{#1}% +} + +\def\ccnm@nostar#1{% + \let\memx@bnmcmd@prekern\relax + \let\memx@bnmcmd@postkern\relax + \memx@make@bnmcmd{ccnm}{#1}% +} + +\protected\def\snm{% + \@ifnextchar*\snm@star\snm@nostar +} + +\def\snm@star*#1{% + \def\memx@bnmcmd@prekern{\kern-.35em}% + \def\memx@bnmcmd@postkern{\kern-.4em}% + \memx@make@bnmcmd{snm}{#1}% +} + +\def\snm@nostar#1{% + \let\memx@bnmcmd@prekern\relax + \let\memx@bnmcmd@postkern\relax + \memx@make@bnmcmd{snm}{#1}% +} + +\protected\def\bnm{% + \@ifnextchar*\bnm@star\bnm@nostar +} + +\def\bnm@star*#1{% + \def\memx@bnmcmd@prekern{\kern-.35em}% + \def\memx@bnmcmd@postkern{\kern-.4em}% + \memx@make@bnmcmd{bnm}{#1}% +} + +\def\bnm@nostar#1{% + \let\memx@bnmcmd@prekern\relax + \let\memx@bnmcmd@postkern\relax + \memx@make@bnmcmd{bnm}{#1}% +} + +%%% ldots, hdots, +\ExplSyntaxOn + +\NewDocumentCommand \obldots {} { + .\kern\fontdimen3\font + .\kern\fontdimen3\font + .\kern\fontdimen3\font +} + +\NewDocumentCommand \obellipsis {} { + \nobreak \mbox{\textellipsis\textellipsis} +} + +\ExplSyntaxOff + + +\AtBeginDocument{ + \@ifpackageloaded{hyperref}{% + \pdfstringdefDisableCommands{% + \def\cnm#1{\ifx#1*\expandafter\@@cnm\else <#1>\fi} + \def\@@cnm#1{<#1>} + \def\snm#1{\ifx#1*\expandafter\@@cnm\else <#1>\fi} + \def\ccnm#1{\ifx#1*\expandafter\@@cnm\else <#1>\fi} + \def\bnm#1{\ifx#1*\expandafter\@@cnm\else <#1>\fi} + \def\oblivoirdblquote#1{\ifx#1*\expandafter\@@obquote\else "#1"\fi} + \def\@@obquote#1{"#1"} + \def\oblivoirquote#1{\ifx#1*\expandafter\@@obsquote\else '#1'\fi} + \def\@@obsquote#1{'#1'} + \def\cntrdots{…} + }% + }{} +} + +%%%% 따옴표 +\def\oblivoirdblquote@char@open{“} +\def\oblivoirdblquote@char@close{”} +\def\oblivoirquote@char@open{‘} +\def\oblivoirquote@char@close{’} + +\protected\def\oblivoirdblquote{% + \@ifnextchar*\oblivoirdblquote@star\oblivoirdblquote@nostar +} + +\def\oblivoirdblquote@star*#1{% + \def\memx@bnmcmd@prekern{\kern-.35em}% + \def\memx@bnmcmd@postkern{\kern-.4em}% + \memx@make@bnmcmd{oblivoirdblquote}{#1}% +} + +\def\oblivoirdblquote@nostar#1{% + \let\memx@bnmcmd@prekern\relax + \let\memx@bnmcmd@postkern\relax + \memx@make@bnmcmd{oblivoirdblquote}{#1}% +} + +\protected\def\oblivoirquote{% + \@ifnextchar*\oblivoirquote@star\oblivoirquote@nostar +} + +\def\oblivoirquote@star*#1{% + \def\memx@bnmcmd@prekern{\kern-.35em}% + \def\memx@bnmcmd@postkern{\kern-.4em}% + \memx@make@bnmcmd{oblivoirquote}{#1}% +} + +\def\oblivoirquote@nostar#1{% + \let\memx@bnmcmd@prekern\relax + \let\memx@bnmcmd@postkern\relax + \memx@make@bnmcmd{oblivoirquote}{#1}% +} + +%%%% cntrdots + +\ifx\cntrdot\undefined +\DeclareRobustCommand{\cntrdot}{% + \@ifnextchar*\@cntrd@t\@@cntrd@t +} +\else +\renewcommand{\cntrdot}{% + \@ifnextchar*\@cntrd@t\@@cntrd@t +} +\fi + +\ifx\oblivoirallowbreak\undefined +\let\oblivoirallowbreak\allowbreak +\fi + +\def\@cntrd@t*{% + \leavevmode\kern.2em\@@cntrd@t\hskip.2em\oblivoirallowbreak +} +\def\@@cntrd@t{% + \leavevmode\nobreak\raise.02ex\hbox{·}\oblivoirallowbreak +} + +\DeclareRobustCommand{\cntrdots}{% + \leavevmode…%\oblivoirallowbreak +} + +\DeclareRobustCommand{\cntrdotss}{% + \leavevmode ……% +} + +%% Punctuation Explanation Rule. +%% usage: \explpunc.Some_running_texts.\ % last space must not be succeeded by ^M. +\protected\def\explpunc.#1.\ {\leavevmode\,\XBrule#1\XErule\,} +\protected\def\expldash{\leavevmode\,\XBrule\,} +% +\newsavebox\togetheightoffont\sbox\togetheightoffont{!} +\newlength\htoffnt\setlength\htoffnt{\ht\togetheightoffont} +\addtolength\htoffnt{\dp\togetheightoffont} +\def\XBrule{\raise.45\htoffnt\hbox{\rule{1.25em}{.25pt}}} +\def\XErule{\raise.45\htoffnt\hbox{\hskip1pt\rule{1.25em}{.25pt}}} + +%% Misc def. +%\def\PageName{페이지} +%\def\AltPageName{쪽} + +%% \titleref +%% -- 2009/02/11. revert to original definition. +\let\M@TitleReference\@firstoftwo +\let\M@M@TitleReference\@firstoftwo +\def\@mem@theTR{\let\M@M@TitleReference\@firstoftwo\theTitleReference} + +%% vertical distance of math display +\if@mathdisp +\addtodef{\normalsize}{}{% + \abovedisplayskip 6\p@ \@plus2\p@ \@minus1\p@ + \abovedisplayshortskip .5\p@ \@plus2\p@ \@minus1\p@ + \belowdisplayshortskip 6\p@ \@plus2\p@ \@minus1\p@ + \belowdisplayskip \abovedisplayskip} +\fi + +%% arabic frontmatter numbering +\if@arabicfrontmatter +\renewcommand{\@memfront}{% + \@smemfront\pagenumbering{arabic}} +\fi + +%% 할주. +%% 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} +\protected\def\divnote#1{% + \settowidth{\@tempdima}{\divnotestyle #1}% + \ifvmode\leavevmode\fi\divnotedelimopen + \raise.2em\hbox{\parbox{.525\@tempdima}{\divnotestyle\singlespace #1}}\divnotedelimclose +} + +%% 각주 설정을 위한 추가 매크로 +\def\SetFnmark#1#2{% + \expandafter\def\csname @makefnmark\endcsname{\bgroup #1\@thefnmark#2\egroup}% +} + +%% chapter의 첫 단락 들여쓰기. +\newcommand*\chapterindentfirst{% + \addtodef{\@afterheading}{\@afterindenttrue}{} +} + +%% memhangul-patch +\InputIfFileExists{memhangul-patch.sty}{}{} + +%%% fig, tab caption +\def\obCaptionFont#1{\def\@figtabcaptfont@{#1}} +\providecommand\@figtabcaptfont@{\normalfont} +\if@figtabcapt@ +\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 + +%% Pagestyle Ruled + +\makepagestyle{Ruled} +\makerunningwidth{Ruled}{1.1\textwidth} +\makeheadposition{Ruled}{flushright}{flushleft}{flushright}{flushleft} +\makeevenfoot{Ruled}{\thepage}{}{} +\makeoddfoot{Ruled}{}{}{\thepage} +\makeheadrule{Ruled}{1.1\textwidth}{\normalrulethickness} +\makepsmarks{Ruled}{\@ruledmarks} +\makeevenhead{Ruled}{\normalfont\scshape\leftmark}{}{} +\makeoddhead{Ruled}{}{}{\normalfont\rightmark} + +%% Pagestyle companion + +%\makepagestyle{companion} +%\setlength{\headwidth}{\textwidth} +% \addtolength{\headwidth}{\marginparsep} +% \addtolength{\headwidth}{\marginparwidth} +%\makerunningwidth{companion}{\headwidth} +%\makeheadrule{companion}{\headwidth}{\normalrulethickness} +%\makeheadposition{companion}{flushright}{flushleft}{}{} +%\makepsmarks{companion}{% +% \let\@mkboth\markboth +% \def\chaptermark##1{\markboth{##1}{##1}} % left mark & right marks +% \def\sectionmark##1{\markright{% +% \ifnum \c@secnumdepth>\z@ +% \thesection. \ % +% \fi +% ##1}} +% \def\tocmark{\markboth{\contentsname}{\contentsname}} +% \def\lofmark{\markboth{\listfigurename}{\listfigurename}} +% \def\lotmark{\markboth{\listtablename}{\listtablename}} +% \def\bibmark{\markboth{\bibname}{\bibname}} +% \def\indexmark{\markboth{\indexname}{\indexname}} +%} +%\makeevenhead{companion}{\normalfont\bfseries\thepage}{}% +% {\normalfont\bfseries\leftmark} +%\makeoddhead{companion}{\normalfont\bfseries\rightmark}{}% +% {\normalfont\bfseries\thepage} + +%% 한글 pagestyle hangul +\makepagestyle{hangul} +\newdimen\pghgheadwidth\let\pghgheadwidth=\textwidth +\makerunningwidth{hangul}{\pghgheadwidth} +%\makeheadrule{hangul}{\pghgheadwidth}{0pt} +\makeheadposition{hangul}{flushleft}{flushright}{flushleft}{flushright} +\def\@hgpsmarks{% + \let\@mkboth\markboth + \def\chaptermark##1{% + \markboth{\scshape + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \hchaptertitlehead \enskip\ % + \fi + \fi + ##1}{}}% + \def\tocmark{\markboth{\scshape\contentsname}{}}% + \def\lofmark{\markboth{\scshape\listfigurename}{}}% + \def\lotmark{\markboth{\scshape\listtablename}{}}% + \def\bibmark{\markboth{\scshape\bibname}{}}% + \def\indexmark{\markboth{\scshape\indexname}{}}% + \def\sectionmark##1{% + \markright{\scshape +%% disabled printing \thesection. +% \ifnum \c@secnumdepth >\z@ +% \thesection \enskip\ % +% \fi + ##1}}% + } +\makepsmarks{hangul}{\@hgpsmarks} +\makeoddhead{hangul}{}{}{\normalfont\small\rightmark~\makebox[2em][r]{\normalfont\normalsize\sffamily\thepage}} +\makeevenhead{hangul}{\makebox[2em][l]{\normalfont\normalsize\sffamily\thepage}~\normalfont\small\leftmark}{}{} + +%%%%%%%%%%%%%%%% chapterstyles %%%%%%%%%%%%%%% +\makechapterstyle{default}{% + \renewcommand{\post@chapter}{\chaptername}% + \renewcommand{\chapnamefont}{\normalfont\huge\bfseries} + \renewcommand{\chapnumfont}{\normalfont\huge\bfseries} + \renewcommand{\chaptitlefont}{\normalfont\Huge\bfseries} + \setlength{\beforechapskip}{50pt} + \setlength{\midchapskip}{20pt} + \setlength{\afterchapskip}{40pt} +} +\chapterstyle{default} + +%% for Appendix +\makechapterstyle{appendixdefault}{% + \renewcommand{\chapnamefont}{\normalfont\huge\bfseries} + \renewcommand{\chapnumfont}{\normalfont\huge\bfseries} + \renewcommand{\chaptitlefont}{\normalfont\Huge\bfseries} +% \renewcommand{\printchaptername}{\chapnumfont\@chapapp} + \renewcommand{\prechapternum}{\chapnumfont\@chapapp} + \renewcommand{\postchapternum}{} + \renewcommand{\chapternamenum}{\enskip} + \setlength{\beforechapskip}{50pt} + \setlength{\midchapskip}{20pt} + \setlength{\afterchapskip}{40pt} +} + +\makechapterstyle{section}{% +% \renewcommand{\printchaptername}{} + \renewcommand{\chapternamenum}{\enskip} + \renewcommand{\prechapternum}{} + \renewcommand{\postchapternum}{} + \renewcommand{\chapnumfont}{\normalfont\Huge\bfseries} + \renewcommand{\printchapternum}{\chapnumfont \thechapter\space} + \renewcommand{\afterchapternum}{} +} + +%% for appendix +\makechapterstyle{appendixsection}{% +% \renewcommand{\printchaptername}{\chapnumfont\@chapapp} + \renewcommand{\chapternamenum}{\enskip} + \renewcommand{\prechapternum}{\chapnumfont\@chapapp} + \renewcommand{\postchapternum}{} + \renewcommand{\chapnumfont}{\normalfont\Huge\bfseries} + \renewcommand{\printchapternum}{\chapnumfont \thechapter\space} + \renewcommand{\afterchapternum}{} +} + +\makechapterstyle{article}{% + \renewcommand{\chapterheadstart}{\vspace{\beforechapskip}} + \setlength{\beforechapskip}{3.5ex \@plus 1ex \@minus .2ex} + \setlength{\afterchapskip}{2.3ex \@plus .2ex} +% \renewcommand{\printchaptername}{} + \renewcommand{\prechapternum}{} + \renewcommand{\chapternamenum}{} + \renewcommand{\postchapternum}{} + \renewcommand{\chaptitlefont}{\normalfont\Large\bfseries} + \renewcommand{\chapnumfont}{\normalfont\Large\bfseries} + \renewcommand{\printchapternum}{\chapnumfont \thechapter\quad} + \renewcommand{\afterchapternum}{} +} + +\makechapterstyle{hangnum}{% + \renewcommand{\chapnumfont}{\chaptitlefont} + \settowidth{\chapindent}{\chapnumfont 999} +% \renewcommand{\printchaptername}{} + \renewcommand{\chapternamenum}{} + \renewcommand{\prechapternum}{} + \renewcommand{\postchapternum}{} + \renewcommand{\printchapternum}{% + \noindent\llap{\makebox[\chapindent][l]{\chapnumfont \thechapter}}} + \renewcommand{\afterchapternum}{} +} + +%\newlength{\chapindent} + +\makechapterstyle{companion}{% + \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} + \addtolength{\chapindent}{\marginparwidth} + \renewcommand*{\printchaptertitle}[1]{% + \begin{adjustwidth}{}{-\chapindent} + \raggedleft \chaptitlefont ##1\par\nobreak + \end{adjustwidth}}} + +%% for appendix. +\makechapterstyle{appendixcompanion}{% + \renewcommand{\chapnamefont}{\normalfont\LARGE\scshape} + \renewcommand{\prechapternum}{\raggedleft\chapnamefont \@chapapp} +% \renewcommand{\printchaptername}{\raggedleft\chapnamefont \pre@chapter} + \renewcommand{\chapnumfont}{\normalfont\Huge} + \renewcommand{\postchapternum}{} + \setlength{\chapindent}{\marginparsep} + \addtolength{\chapindent}{\marginparwidth} + \renewcommand{\printchaptertitle}[1]{% + \begin{adjustwidth}{}{-\chapindent} + \raggedleft \chaptitlefont ##1\par\nobreak + \end{adjustwidth}} +} + +\makechapterstyle{demo}{ +% \renewcommand{\printchaptername}{\centering} + \renewcommand{\prechapternum}{\centering} + \renewcommand{\printchapternum}{\chapnumfont \numtoName{\c@chapter}} + \renewcommand{\postchapternum}{} + \renewcommand{\chaptitlefont}{\normalfont\Huge\sffamily} + \renewcommand{\printchaptertitle}[1]{% + \hrule\vskip\onelineskip \raggedleft \chaptitlefont ##1} + \renewcommand{\afterchaptertitle}{\vskip\onelineskip \hrule\vskip \afterchapskip} +} + +\makechapterstyle{demovar}{ +% \renewcommand{\printchaptername}{\centering} + \renewcommand{\prechapternum}{\centering} + \renewcommand{\printchapternum}{\chapnumfont \hNum{chapter}} + \renewcommand{\postchapternum}{\post@chapter} + \renewcommand{\chaptitlefont}{\normalfont\Huge\sffamily} + \renewcommand{\printchaptertitle}[1]{% + \hrule\vskip\onelineskip \raggedleft \chaptitlefont ##1} + \renewcommand{\afterchaptertitle}{\vskip\onelineskip \hrule\vskip \afterchapskip} +} + +%% for appendix +\makechapterstyle{appendixdemo}{ +% \renewcommand{\printchaptername}{\centering\chapnumfont\@chapapp} + \renewcommand{\prechapternum}{\centering\chapnumfont\@chapapp} + \renewcommand{\printchapternum}{\chapnumfont \@Alph\c@chapter} + \renewcommand{\postchapternum}{\ } + \renewcommand{\chaptitlefont}{\normalfont\Huge\sffamily} + \renewcommand{\printchaptertitle}[1]{% + \hrule\vskip\onelineskip \raggedleft \chaptitlefont ##1} + \renewcommand{\afterchaptertitle}{\vskip\onelineskip \hrule\vskip \afterchapskip} +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%% appendix %%%%%%%%%%%%%%%%%%%%%%%%% + +\def\set@appendix@chapsec{% + %%% SECTION in APPENDIX + \renewcommand{\section}{% + \sechook\memucsinterwordhook% + \@startsection{section}{1}% level 1 + {\secindent}% heading indent + {\beforesecskip}% skip before the heading + {\aftersecskip}% skip after the heading + {\normalfont\secheadstyle}} % font + \def\M@sect##1##2##3##4##5##6[##7][##8]##9{% + \ifheadnameref\M@gettitle{##8}\else\M@gettitle{##7}\fi + \ifnum ##2>\c@secnumdepth + \let\@svsec\@empty + \else + \refstepcounter{APP##1}% + \protected@edef\@svsec{\@seccntformat{##1}\relax}% + \fi + \@tempskipa ##5\relax + \ifdim \@tempskipa>\z@ + \begingroup + ##6{% + \@hangfrom{\hskip ##3\relax\@svsec}% + \interlinepenalty \@M ##9\@@par}% + \endgroup + \csname ##1mark\endcsname{##8}% + \addcontentsline{toc}{##1}{% + \ifnum ##2>\c@secnumdepth \else + \protect\numberline{\noexpand\protect\csname the##1\endcsname}% + \fi + ##7}% + \else + \def\@svsechd{% + ##6{\hskip ##3\relax + \@svsec ##9}% + \csname ##1mark\endcsname{##8}% + \addcontentsline{toc}{##1}{% + \ifnum ##2>\c@secnumdepth \else + \protect\numberline{\csname the##1\endcsname}% + \fi + ##7}}% + \fi + \@xsect{##5}}% +} + +\def\restorechapsec{% + %%% SECTION in APPENDIX + \renewcommand{\section}{% + \sechook\memucsinterwordhook% + \@startsection{section}{1}% level 1 + {\secindent}% heading indent + {\beforesecskip}% skip before the heading + {\aftersecskip}% skip after the heading + {\normalfont\secheadstyle}} % font + \def\M@sect##1##2##3##4##5##6[##7][##8]##9{% + \ifheadnameref\M@gettitle{##8}\else\M@gettitle{##7}\fi + \ifnum ##2>\c@secnumdepth + \let\@svsec\@empty + \else + \refstepcounter{##1}% + \protected@edef\@svsec{\@seccntformat{##1}\relax}% + \fi + \@tempskipa ##5\relax + \ifdim \@tempskipa>\z@ + \begingroup + ##6{% + \@hangfrom{\hskip ##3\relax\@svsec}% + \interlinepenalty \@M ##9\@@par}% + \endgroup + \csname ##1mark\endcsname{##8}% + \addcontentsline{toc}{##1}{% + \ifnum ##2>\c@secnumdepth \else + \protect\numberline{\noexpand\protect\csname the##1\endcsname}% + \fi + ##7}% + \else + \def\@svsechd{% + ##6{\hskip ##3\relax + \@svsec ##9}% + \csname ##1mark\endcsname{##8}% + \addcontentsline{toc}{##1}{% + \ifnum ##2>\c@secnumdepth \else + \protect\numberline{\csname the##1\endcsname}% + \fi + ##7}}% + \fi + \@xsect{##5}} +} + +\renewcommand{\appendix}{\par +% \setcounter{chapter}{0}% +% \setcounter{section}{0}% +% \gdef\@chapapp{\appendixname}% +% \gdef\thechapter{\@Alph\c@chapter}% + \set@appendix@chapter + \anappendixtrue + \chapterstyle{appendixdefault}% +} + +\newcounter{APPchapter}\setcounter{APPchapter}{0}% +\newcounter{APPsection}[APPchapter]\setcounter{APPsection}{0}% +\newcounter{APPsubsection}[APPsection]\setcounter{APPsubsection}{0}% + +\def\set@appendix@chapter{% + \gdef\@chapapp{\appendixname}% + \gdef\thechapter{\Alph{APPchapter}}% + \gdef\thesection{\thechapter.\arabic{APPsection}}% +% \counterwithout{figure}{chapter}\counterwithout{table}{chapter}% + \counterwithin{figure}{APPchapter}\counterwithin{table}{APPchapter}% + \counterwithin{equation}{APPchapter}% + \renewcommand\thefigure{\thechapter.\arabic{figure}}% + \renewcommand\thetable{\thechapter.\arabic{table}}% + \renewcommand\theequation{\thechapter.\arabic{equation}}% + \set@appendix@chapsec + \renewcommand\hchaptertitlehead{\appendixname\:\thechapter}% +} + +%%% here, I will renewcommand chapterstyle, +%%% to recover chapterstyle after appendices. +\renewcommand{\chapterstyle}[1]{% + \@nameuse{chs@#1}% + \ifanappendix\else\gdef\CURR@chpstyle{#1}\fi +} + +\def\restore@appendices@chapter{% + \refreshprepostchapters + \gdef\thechapter{\arabic{chapter}}% + \gdef\thesection{\thechapter.\arabic{section}}% + \def\hchaptertitlehead{\pre@chapter\:\thechapter}% + \counterwithin{figure}{chapter}\counterwithin{table}{chapter}% + \restorechapsec + \@ifundefined{CURR@chapstyle}{\chapterstyle{default}}% + {\expandafter\expandafter\chapterstyle{\CURR@chapstyle}}% +} + +\renewcommand{\@resets@pp}{% + \par + \@ppsavesec +% \setcounter{section}{0}% +% \setcounter{chapter}{0}% +% \renewcommand\@chapapp{\appendixname}% +% \renewcommand\thechapter{\@Alph\c@chapter}% + \set@appendix@chapter + \chapterstyle{appendixdefault} + \restoreapp +} + +\renewenvironment{appendices}% + {\@resets@pp\anappendixtrue}% + {\@ppsaveapp\@pprestoresec\restore@appendices@chapter\anappendixfalse} + +\renewenvironment{subappendices}{% + \@resets@ppsub + \def\addappheadtotoc{\phantomsection\addcontentsline{toc}{section}{\appendixtocname}} % <- mempatch 2.3 + \ifnamesubappendix + \def\sectionname{\protect\subappendixname}% + \def\@seccntformat##1{\@ifundefined{##1name}{}{\csname ##1name\endcsname\ }% + \csname the##1\endcsname\quad} + \fi + }{} + +%% default pagestyle +\if@defaulthangulpagestyle + \pagestyle{hangul} +\fi + + + +\endinput + +%%% 2015/10/15: \@part, \@chapter renewal. +%%% 2015/08/07: default chapter style, postchapternum (hoze & gromov) diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memhangul-patch.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memhangul-patch.sty new file mode 100644 index 00000000000..b3cf7299587 --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memhangul-patch.sty @@ -0,0 +1,20 @@ +%% File `memhangul-patch.sty` +%% +%% Copyright (c) 2005-2013 Kangsoo Kim +%% +%% 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. +%% +%% 2005/10/15 +%% some day, this patch has to be weaved into memhangul-use, 1.4, I hope. +%% 2005/12/28 +%% appendix-related minor fix +%% 2006/04/27 +%% remove redundant prerenderunicodes according to dhucs 3.0.0 +%% +\endinput \ No newline at end of file diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memucs-enumerate.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memucs-enumerate.sty new file mode 100644 index 00000000000..c3fd53f85ed --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memucs-enumerate.sty @@ -0,0 +1,49 @@ +%% File `memucs-enumerate.sty` +%% +%% (C) Copyright 2006-2013 Dohyun Kim +%% Kangsoo Kim +%% +%% 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. +%% +\ProvidesPackage{memucs-enumerate} + [2006/07/01 partially support enumrate in memoir under memhangul] + +%\@ifpackageloaded{enumerate}{}{\RequirePackage{enumerate}} + +\g@addto@macro\@enhook{% + \ifx^^ea\@entemp % 가, + \let\@memtempa\@dhucs@enumerate\else %%%%% + \ifx^^e2\@entemp % ①, ⑴, ⒜, ⓐ, ⅰ, Ⅰ + \let\@memtempa\@dhucs@enumerate\else %%%%% + \ifx^^e3\@entemp % ㄱ, ㉠, ㉮, ㈀, ㈎ + \let\@memtempa\@dhucs@enumerate + \fi\fi\fi} +\def\@dhucs@enumerate#1#2#3{% + \bgroup\let\unihangulchar\@firstofone + \xdef\@dhucs@enum@temp{#1#2#3}\egroup + \ifnum\@dhucs@enum@temp=44032 \def\@tempa{\@enLabel\gana}\else + \ifnum\@dhucs@enum@temp=8560 \def\@tempa{\@enLabel\hroman}\else + \ifnum\@dhucs@enum@temp=8544 \def\@tempa{\@enLabel\hRoman}\else + \ifnum\@dhucs@enum@temp=9372 \def\@tempa{\@enLabel\peng}\else + \ifnum\@dhucs@enum@temp=9424 \def\@tempa{\@enLabel\oeng}\else + \ifnum\@dhucs@enum@temp=9332 \def\@tempa{\@enLabel\pnum}\else + \ifnum\@dhucs@enum@temp=9312 \def\@tempa{\@enLabel\onum}\else + \ifnum\@dhucs@enum@temp=12814 \def\@tempa{\@enLabel\pgana}\else + \ifnum\@dhucs@enum@temp=12910 \def\@tempa{\@enLabel\ogana}\else + \ifnum\@dhucs@enum@temp=12896 \def\@tempa{\@enLabel\ojaso}\else + \ifnum\@dhucs@enum@temp=12593 \def\@tempa{\@enLabel\jaso}\else + \ifnum\@dhucs@enum@temp=12800 \def\@tempa{\@enLabel\pjaso}\else + \PackageError{dhucs-enumerate} + {You can't use `\unexpanded{#1#2#3}' as enum label} + {Legal enum labels of hangul-ucs are: \MessageBreak\space\space + \unexpanded{가, ㄱ, ㉠, ㉮, ㈀, ㈎, ①, ⑴, ⒜, ⓐ, ⅰ, Ⅰ}.} + \fi\fi\fi\fi\fi \fi\fi\fi\fi\fi \fi\fi + \@tempa\relax} + +\endinput diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memucs-setspace.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memucs-setspace.sty new file mode 100644 index 00000000000..a4353ab9715 --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memucs-setspace.sty @@ -0,0 +1,587 @@ +%% File `memucs-setspace.sty` +%% +%% Copyright (c) 2007-2013 Kangsoo Kim +%% +%% 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. +%% +%% ======================= +%% +%% 이 스타일은 setspace 6.7을 바탕으로, memoir의 +%% 출력루틴을 hooking하여 거의 동일하게 동작하도록 +%% 수정한 스타일이다. +%% memoir 클래스에서 memhangul 스타일을 사용했을 때 +%% 불린다. 다른 용도로는 사용할 수 없음. +%% +%% This style is a modified version of SETSTYLE ver 6.7 by Erica M. S. Harris +%% modified by Karnes Kim +%% +%% FEATURES: +%% all the features of setstyle package +%% +%% NEW FEATURES: +%% +%% 1. [nofloatspacing] option +%% disables the feature of SETSTYLE, turning off all the line spacing +%% in the floats(figures, tables) and footnotes. +%% \noadjustfloatfnspacing, \adjustfloatfnspacing +%% 2. [hangul] option +%% When [hangul] option is on, the basic line spreading is set to +%% a proper line spacing in Korean(Hangul) documents, which has +%% a wider gap between the lines. +%% \SetHangulspace +%% 3. quote and quotation environment +%% quote and quotation environment have the same line spacing +%% with the floats and footnotes, verse. +%% \noadjustquotespacing, \adjustquotespacing +%% 4. [adjustfootnotesep] option +%% this option is meaningful only when [hangul] is on and +%% [nofloatspacing] off. +%% 5. [adjustverbatim] option. +%% verbatim environment. +%% \SetHangulVerbatimSpace. +%% 6. \ResetHangulspace, \RestoreHangulspace +%% + +\NeedsTeXFormat {LaTeX2e}[1994/12/09] +\def \filename {memucs-setspace.sty} +\def \filedate {2007/09/21} +\def \fileversion {6.7-memucs8} +\ProvidesPackage {memucs-setspace}[\filedate\space\fileversion\space + Contributed and Supported LaTeX2e package] +\typeout {Package: `memucs-setspace', a modified version of `setspace', \fileversion\space <\filedate>} + +% BP: add nodisplayskipstretch option and \setdisplayskipstretch command. + +\providecommand{\displayskipstretch}{\baselinestretch} +\providecommand{\setdisplayskipstretch}[1]{\renewcommand{\displayskipstretch}{#1}} +\DeclareOption{nodisplayskipstretch}{\setdisplayskipstretch{1.0}} + +% GT: add George Pearsons' suggested options. + +%% Karnes' +\newif\if@singlespacefn +\DeclareOption{nofloatspacing}{\@singlespacefnfalse} +\newif\if@singlespacequote +\DeclareOption{quotespacing}{\@singlespacequotetrue} +\newif\if@hangul +\DeclareOption{hangul}{\@hangultrue\AtEndOfPackage{\hangulspacing}} +\newif\if@adjustfootnotesep +\DeclareOption{adjustfootnotesep}{\@adjustfootnoteseptrue} +\newif\if@adjustverbatim +\DeclareOption{adjustverbatim}{\@adjustverbatimtrue} + +\DeclareOption{singlespacing}{\AtEndOfPackage{\singlespacing}} +\DeclareOption{onehalfspacing}{\AtEndOfPackage{\onehalfspacing}} +\DeclareOption{doublespacing}{\AtEndOfPackage{\doublespacing}} + +\@singlespacefntrue +\@singlespacequotefalse +\@hangulfalse +\@adjustfootnotesepfalse +\@adjustverbatimfalse +\ProcessOptions + +%%% provide memucsfninterwordhook +\ifx\undefined\memucsfninterwordhook + \providecommand\memucsfninterwordhook{}% +\fi + +\def\@floatfnspacinghook{% + \if@singlespacefn + \hangulfspacing + \else + \hangulspacing + \fi +} + +\providecommand\noadjustquotespacing{% + \@singlespacequotefalse +} + +\providecommand\adjustquotespacing{% + \@singlespacequotetrue +} + +\providecommand\adjustfloatfnspacing{% + \@singlespacefntrue +} + +\providecommand\noadjustfloatfnspacing{% + \@singlespacefnfalse +} + +% GT: Sat 28 Sep 1996: Widely using \providecommand, \renewcommand, and +% \provideenvironment, instead of \def. + +% ** Line space commands. + +\providecommand{\setstretch}[1]{% + \def\baselinestretch{#1}% + \@currsize +} + +% GT: Sat 28 Sep 1996: spacing commands and environments modified to +% use \setstretch instead of \baselinestretch. +% +% GT: Sat 28 Sep 1996: No, I don't know understand the line spacing +% algorithms! If someone (LaTeX team) can enlighten me as to the +% general rule, please do! It would be very pleasant if setspace.sty +% were suited for document font sizes other than 10, 11 and 12 pt. +% +% GT: Tue 10 Dec 1996: Instead of fixing singlespacing to exact unity, +% allow user to redefine it (only slightly, please!) from its initial +% value of unity, in the case when a particular font is slightly larger +% or slightly smaller than its point size would indicate. This change +% affects setspace's single spacing commands, and LaTeX's footnote and +% float environments. The one and a half, double, and arbitrary +% spacing commands are unaltered. + +\providecommand{\SetSinglespace}[1]{% + \def\setspace@singlespace{#1}% +} + +%% Karnes. +\providecommand{\Set@Hangulspace}[2]{% + \def\setspace@hangulspace{#1}% + \def\setspace@hangulfspace{#2}% + \setstretch{#1}% +} + +\def\SetHangulspace#1#2{% + \AtBeginDocument{% + \gdef\setspace@hangulspace{#1}% + \gdef\setspace@hangulfspace{#2}% + }% + \setstretch{#1}% +} + +\providecommand{\SetHangulVerbatimSpace}[1]{% + \def\setspace@hangulverbspace{#1}% +} + +\let\tmp@current@hangulspace\setspace@hangulspace +\let\tmp@current@hangulfspace\setspace@hangulfspace + +\providecommand{\ResetHangulspace}[2]{% + \let\tmp@current@hangulspace\setspace@hangulspace% + \let\tmp@current@hangulfspace\setspace@hangulfspace% + \Set@Hangulspace{#1}{#2}% +} + +\providecommand{\RestoreHangulspace}{% + \Set@Hangulspace{\tmp@current@hangulspace}{\tmp@current@hangulfspace}% +} + +% Here's the default single line spacing value. +\SetSinglespace{1} + +%% Karnes. +\if@hangul +\Set@Hangulspace{1.333}{1.1} +\else +\Set@Hangulspace{1.0}{1.0} +\fi + +\providecommand{\singlespacing}{% + \setstretch {\setspace@singlespace}% normally 1 + \vskip \baselineskip % Correction for coming into singlespace +} + +%% Karnes. +\providecommand{\hangulspacing}{% + \setstretch{\setspace@hangulspace}% default +} + +\providecommand{\hangulfspacing}{% + \setstretch{\setspace@hangulfspace}% +} + +\providecommand{\hangulverbspacing}{% + \setstretch{\setspace@hangulverbspace}% +} + +\providecommand{\onehalfspacing}{% + \setstretch{1.25}% default + \ifcase \@ptsize \relax % 10pt + \setstretch {1.25}% + \or % 11pt + \setstretch {1.213}% + \or % 12pt + \setstretch {1.241}% + \fi +} + +\providecommand{\doublespacing}{% + \setstretch {1.667}% default + \ifcase \@ptsize \relax % 10pt + \setstretch {1.667}% + \or % 11pt + \setstretch {1.618}% + \or % 12pt + \setstretch {1.655}% + \fi +} + +%% adjust verbatim +%% if and only if [nofloatspacing] and [adjustverbatim] is on, +%% the verbatim will be the same to the main text linestretch. +%% if [hangul] it will adjust the linestretch to the quote or quotation +%% the other case, it will be 1.0, I hope. +%% +\if@adjustverbatim +\SetHangulVerbatimSpace{\setspace@hangulfspace}% +\else +\SetHangulVerbatimSpace{1.0} +\fi + +% ** Modification of the LaTeX command \@setsize. + +%---Stretch the baseline BEFORE calculating the strut size. This improves +% spacing below tabular environments etc., probably... +% Comments are welcomed. + +% GT: Sun 29 Sep 1996: Question: Is this code anywhere near correct +% since this part of LaTeX (in, eg, latex.ltx) has been greatly changed? + +% GT: Sun 29 Sep 1996: The meanings of the arguments to \@setsize +% appear to be (whatever these may signify) : +% current size; font baselineskip; ignored (!); and font size. + +% GT: Sun 29 Sep 1996: Note that \@setsize (in latest LaTeX, +% \@setfontsize, which is called by \@setsize) seems to be the only +% place in purely modern LaTeX where \@currsize is set, and ltxguide.cls +% seems to be the only file in the LaTeX base distribution that uses it! + +\def\@setsize#1#2#3#4{% + % Modified 1993.04.07--GDG per KPC + \@nomath#1% + \let\@currsize#1% + \baselineskip #2% + \baselineskip \baselinestretch\baselineskip + \parskip \baselinestretch\parskip + \setbox\strutbox \hbox{% + \vrule height.7\baselineskip + depth.3\baselineskip + width\z@}% + \skip\footins \baselinestretch\skip\footins + \normalbaselineskip\baselineskip#3#4} + +% ** Float and footnote adjustments to compensate for a change in the +% ** main text's line spacing. + +%---Increase the space between last line of text and footnote rule. +%\skip\footins 20pt plus4pt minus4pt + +%---Reset baselinestretch within floats and footnotes. + +% GT: Tue 23 Jan 1996: This is where the conflict with the combination +% of the color package and the figure environment used to occur. + +% Floats. + +% GT: Sat 28 Sep 1996: \@xfloat is the only place where \normalsize +% is still used in setspace.sty ! + +\if@singlespacefn +\let\latex@xfloat=\@xfloat +\def\@xfloat #1[#2]{% + \latex@xfloat #1[#2]% + \if@singlespacefn + \def\baselinestretch {\setspace@hangulfspace} + \else + \def\baselinestretch {\setspace@hangulspace} + \fi + \normalsize +} +\else\fi + +% Karnes: footnotesep for hangul +\if@adjustfootnotesep +\if@hangul +\if@singlespacefn + \ifcase \@ptsize \relax + \setlength\footnotesep{8.51 pt}% 10pt + \or + \setlength\footnotesep{9.6 pt}% 11pt + \or + \setlength\footnotesep{10.3 pt}% 12pt + \fi +\else +\fi +\else\fi +\else\fi + +% GT: Wed 24 Jan 1996: This footnote code was copied from LaTeX and +% modified rather naively. It had to be brought up to date, not only +% because of LaTeX's new color ability, but also because ther had +% been major changes to this code in LaTeX at least as far back as +% March 1992. + +% Normal, bottom of the page, footnotes. +% +% GT: Based HEAVILY on original LaTeX (2e) code. A standard hook would +% be MUCH preferred, so that LaTeX's footnote implementation needn't be +% copied each time it changes. +% +% GT: The \protected@edef requires at least the December 1994 LaTeX. +% This is precisely the kind of VERSION DEPENDENCY situation that +% cannot (AFAIK) be avoided, because LaTeX (2e) LACKS appropriate +% standard hooks and/or context markers. +\if@singlespacefn +\def\m@mold@footnotetext{\@memsetspace@footnotetext} +\renewcommand{\@footnotetext}[1]{\m@mold@footnotetext{#1}\m@mmf@prepare} +\long\def\@memsetspace@footnotetext#1{% + \insert\footins{% +% GT: Next line added. Hook desired here! + \@floatfnspacinghook\memucsfninterwordhook +% \def\baselinestretch {\setspace@hangulfspace}% +% \@SetFloatspaces + \reset@font\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth + \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark + }% + \color@begingroup + \@makefntext{% + \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% + \color@endgroup}} + +% Minipage footnotes. +\renewcommand{\@mpfootnotetext}[1]{% + \global\setbox\@mpfootins\vbox{% + \unvbox\@mpfootins +% GT: Next line added. Hook desired here! + \@floatfnspacinghook\memucsfninterwordhook +% \def\baselinestretch {\setspace@hangulfspace}% + \foottextfont \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{\csname p@mpfootnote\endcsname\@thefnmark}% + \color@begingroup + \@makefntext{% + \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% + \color@endgroup}} + +\else\fi + +% ** Line space environments. + +% A single spaced quote (say) is done by surrounding singlespace with quote. + +\provideenvironment{singlespace}{% + \vskip \baselineskip + \setstretch {\setspace@singlespace}% + \vskip -\baselineskip +}{% + \par +} + +% GT (c/o Mark Olesen), Wed 15 April 1998. + +\provideenvironment{singlespace*}{% + \setstretch {\setspace@singlespace}% + \vskip -\baselineskip +}{% + \vskip -0.5\baselineskip +} + +% spacing, doublespace and onehalfspace all are meant to INCREASE the +% spacing (i.e. calling onehalfspace from within doublespace will not +% produce a graceful transition between spacings) +% +% Next two definitions fixed for consistency with TeX 3.x + +% In order to use \provideenvironment, while easily using same code for +% end of each environment, the code that used to be in \endspacing has +% been moved into a new (but internal) macro, \restore@spacing. + +\providecommand{\restore@spacing}{% + \par + \vskip \parskip + \vskip \baselineskip + \endgroup + \vskip -\parskip + \vskip -\baselineskip +} + +\provideenvironment{spacing}[1]{% + \par + \begingroup % moved from \endspacing by PGBR 29-1-91 + \setstretch {#1}% +}{% + \restore@spacing +} + +% one and a half spacing is 1.5 x pt size +\provideenvironment{onehalfspace}{% + \begingroup + \onehalfspacing +}{% + \restore@spacing +} + +% double spacing is 2 x pt size +\provideenvironment{doublespace}{% + \begingroup + \doublespacing +}{% + \restore@spacing +} + +%% quote and quotation environment : Karnes. +\def\@quotespacinghook{% + \if@singlespacequote + \hangulfspacing% + \else + \hangulspacing% + \fi +} + +\renewenvironment{quotation}% + {\list{}{\listparindent 1.5em% + \itemindent \listparindent + \rightmargin \leftmargin + \parsep \z@ \@plus\p@}% +% \memhangulinterwordhook + \item[]% + \@quotespacinghook + }% + {\endlist + \if@singlespacequote\vskip-.2\onelineskip\fi} +\renewenvironment{quote}% + {\list{}{\rightmargin\leftmargin}% +% \memhangulinterwordhook + \item[] + \@quotespacinghook + }% + {\endlist + \if@singlespacequote\vskip-.2\onelineskip\fi} +\renewenvironment{symbols}{\list{}% + {\itemindent 0em \leftmargin 8em + \labelsep 1em \labelwidth 5em +% \memhangulinterwordhook + \let\makelabel\symbollabel}% + \@quotespacinghook + }% + {\endlist} + +%%%%%%%%%%%%%%%%%%%% +%%%% fix vertical spacing in the verse environment. mempatch 3.3 +\renewenvironment{verse}[1][\linewidth]{% + \refstepcounter{verse}% + \setcounter{poemline}{0}\refstepcounter{poemline}% + \setcounter{vslineno}{1}% + \let\\=\@vscentercr + \list{}{\itemsep \z@ + \itemindent -\vindent + \listparindent\itemindent + \parsep \stanzaskip + \ifdim #1<\linewidth %% short line + \rightmargin \z@ + \leftmargin \linewidth + \advance\leftmargin -#1\relax + \advance\leftmargin -0.5\leftmargin + \advance\leftmargin \vindent + \else + \ifdim #1>\linewidth %% long line + \rightmargin \z@ + \leftmargin \vindent + \else %% default + \rightmargin \leftmargin + \advance\leftmargin \vindent + \fi + \fi} + \item[]% + \@quotespacinghook}{\endlist} +%%%%%%%%%%%%%% + +\renewenvironment{altverse}% + {\starpatternfalse\patternfalse\altindenttrue\setcounter{vslineno}{1}% + \@quotespacinghook + }% + {\altindentfalse} + +\def\@verbatim{\the\every@verbatim + \trivlist + \if@adjustverbatim\hangulverbspacing\else\fi% + \item \relax + \if@minipage\else\vskip\parskip\fi + \@beginparpenalty \predisplaypenalty + \leftskip\@totalleftmargin\rightskip\z@ + \parindent\z@\parfillskip\@flushglue\parskip\z@ + \@@par + \def\par{% + \if@tempswa + \leavevmode\null\@@par\penalty\interlinepenalty + \else + \@tempswatrue + \ifhmode\@@par\penalty\interlinepenalty\fi + \fi}% + \def\@noitemerr{\@warning{No verbatim text}}% + \obeylines + \let\do\@makeother \dospecials + \verbatim@font + \everypar \expandafter{\the\everypar \unpenalty}% + \wrapright\the\afterevery@verbatim} + +%% Karnes : epigraph +\providecommand\epigraphspacinghook{\setstretch{1.0}} +\providecommand\epigraphspacing[1]{% + \renewcommand\epigraphspacinghook{\setstretch{#1}}% +} + +\renewcommand{\epigraph}[2]{\vspace{\beforeepigraphskip} + {\epigraphsize\begin{\epigraphflush}% + \epigraphspacinghook + \begin{minipage}{\epigraphwidth} + \@epitext{#1}\\ \@episource{#2} + \end{minipage}\end{\epigraphflush} + \vspace{\afterepigraphskip}}} + +\renewenvironment{epigraphs}{% + \vspace{\beforeepigraphskip}\begin{\epigraphflush} + \epigraphsize + \begin{minipage}{\epigraphwidth} + \epigraphspacinghook + \list{}% + {\itemindent\z@ \labelwidth\z@ \labelsep\z@ + \leftmargin\z@ \rightmargin\z@ + \let\makelabel\qitemlabel}}% + {\endlist\end{minipage}\end{\epigraphflush} + \vspace{\afterepigraphskip}} + +% GT: EMSH chose to omit display math part that follows. +% She wrote (see above) that the "altered spacing before and after displayed +% equations ... just looked too much". +% +% Fix up spacing before and after displayed math +% (arraystretch seems to do a fine job for inside LaTeX displayed math, +% since array and eqnarray seem to be affected as expected). +% Changing \baselinestretch and doing a font change also works if done here, +% but then you have to change @setsize to remove the call to @nomath) +% +% GT: The \belowdisplayskip line was mistyped; now fixed, courtesy of +% David Hull. +% +% GT: Brett Parnell has addressed EMSH's concern by replacing +% \baselinestretch by \displayskipstretch in displays, as follows. + +\everydisplay\expandafter{% + \the\everydisplay + \abovedisplayskip \displayskipstretch\abovedisplayskip + \belowdisplayskip \displayskipstretch\belowdisplayskip + \abovedisplayshortskip \displayskipstretch\abovedisplayshortskip + \belowdisplayshortskip \displayskipstretch\belowdisplayshortskip +} + +\endinput + +%%% EOF. diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/ob-koreanappendix.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/ob-koreanappendix.sty new file mode 100644 index 00000000000..9c46eaa9c58 --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/ob-koreanappendix.sty @@ -0,0 +1,98 @@ +%% File `ob-koreanappendix.sty` +%% +%% Copyright (c) 2007-2015 Kangsoo Kim +%% +%% 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 sub-style. part of oblivoir +%% \appendix (부록) +%% +\gdef\set@appendix@chapter{% + \renewcommand\thesection{\Alph{APPsection}}% + \renewcommand\thesubsection{\thesection.\arabic{APPsubsection}} + \ifanappendix + \counterwithout{APPsection}{APPchapter} + \counterwithin{APPsubsection}{APPsection} + \fi% + \counterwithin{figure}{APPsection}\counterwithin{table}{APPsection}% + \counterwithin{equation}{APPsection}% + \renewcommand\thefigure{\Alph{APPsection}.\arabic{figure}}% + \renewcommand\thetable{\Alph{APPsection}.\arabic{table}}% + \renewcommand\theequation{\Alph{APPsection}.\arabic{equation}}% + \set@appendix@chapsec +} + +\renewcommand{\@resets@pp}{% + \par + \@ppsavesec + \set@appendix@chapter + \restoreapp +} + +\renewcommand{\appendix}{\par + \set@appendix@chapter + \anappendixtrue +% \chapterstyle{appendixdefault}% + \if@AppendixTitleToToc + \addcontentsline{toc}{chapter}{\appendixname}% + \fi + \if@AttachAppendixTitleToSecnum + \addtodef{\secheadstyle}{}{\appendixrefname~}% + \fi +} + +\def\set@appendix@chapsec{% + %%% SECTION in APPENDIX + \renewcommand{\section}{% + \sechook\memucsinterwordhook% + \@startsection{section}{1}% level 1 + {\secindent}% heading indent + {\beforesecskip}% skip before the heading + {\aftersecskip}% skip after the heading + {\normalfont\secheadstyle}} % font + % + \def\M@sect##1##2##3##4##5##6[##7][##8]##9{% + \ifheadnameref\M@gettitle{##8}\else\M@gettitle{##7}\fi + \ifnum ##2>\c@secnumdepth + \let\@svsec\@empty + \else + \refstepcounter{APP##1}% + \protected@edef\@svsec{\@seccntformat{##1}\relax}% + \fi + \@tempskipa ##5\relax + \ifdim \@tempskipa>\z@ + \begingroup + ##6{% + \@hangfrom{\hskip ##3\relax\@svsec}% + \interlinepenalty \@M ##9\@@par}% + \endgroup + \csname ##1mark\endcsname{##8}% + \addcontentsline{toc}{##1}{% + \ifnum ##2>\c@secnumdepth \else + \protect\numberline{\noexpand\protect\csname the##1\endcsname}% + \fi + ##7}% + \else + \def\@svsechd{% + ##6{\hskip ##3\relax + \@svsec ##9}% + \csname ##1mark\endcsname{##8}% + \addcontentsline{toc}{##1}{% + \ifnum ##2>\c@secnumdepth \else + \protect\numberline{\csname the##1\endcsname}% + \fi + ##7}}% + \fi + \expandafter\protected@edef + \expandafter\@currentlabel + \expandafter{\csname the##1\endcsname}% + \@xsect{##5}}% +} + +\endinput diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/ob-nokoreanappendix.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/ob-nokoreanappendix.sty new file mode 100644 index 00000000000..69044f5eba1 --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/ob-nokoreanappendix.sty @@ -0,0 +1,96 @@ +%% File `ob-nokoreanappendix.sty` +%% +%% Copyright (c) 2007-2013 Kangsoo Kim +%% +%% 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 sub-style. part of oblivoir +%% \appendix (부록) : nokorean +%% +\gdef\set@appendix@chapter{% + \ifanappendix\counterwithout{section}{chapter}\fi% + \setcounter{section}{0} + \setcounter{chapter}{0} + \renewcommand\thesection{\Alph{section}}% + \counterwithin{figure}{section}\counterwithin{table}{section}% + \counterwithin{equation}{section}% + \renewcommand\thefigure{\Alph{section}.\arabic{figure}}% + \renewcommand\thetable{\Alph{section}.\arabic{table}}% + \renewcommand\theequation{\Alph{section}.\arabic{equation}}% + \set@appendix@chapsec +} + +\renewcommand{\@resets@pp}{% + \par + \@ppsavesec + \set@appendix@chapter + \restoreapp +} + +\renewcommand{\appendix}{\par + \set@appendix@chapter + \anappendixtrue +% \chapterstyle{appendixdefault}% + \if@AppendixTitleToToc + \addcontentsline{toc}{chapter}{\appendixname}% + \fi + \if@AttachAppendixTitleToSecnum + \addtodef{\secheadstyle}{}{\appendixrefname~}% + \fi +} + +\def\set@appendix@chapsec{% + %%% SECTION in APPENDIX + \renewcommand{\section}{% + \sechook + \@startsection{section}{1}% level 1 + {\secindent}% heading indent + {\beforesecskip}% skip before the heading + {\aftersecskip}% skip after the heading + {\normalfont\secheadstyle}} % font + % + \def\M@sect##1##2##3##4##5##6[##7][##8]##9{% + \ifheadnameref\M@gettitle{##8}\else\M@gettitle{##7}\fi + \ifnum ##2>\c@secnumdepth + \let\@svsec\@empty + \else + \refstepcounter{##1}% + \protected@edef\@svsec{\@seccntformat{##1}\relax}% + \fi + \@tempskipa ##5\relax + \ifdim \@tempskipa>\z@ + \begingroup + ##6{% + \@hangfrom{\hskip ##3\relax\@svsec}% + \interlinepenalty \@M ##9\@@par}% + \endgroup + \csname ##1mark\endcsname{##8}% + \addcontentsline{toc}{##1}{% + \ifnum ##2>\c@secnumdepth \else + \protect\numberline{\noexpand\protect\csname the##1\endcsname}% + \fi + ##7}% + \else + \def\@svsechd{% + ##6{\hskip ##3\relax + \@svsec ##9}% + \csname ##1mark\endcsname{##8}% + \addcontentsline{toc}{##1}{% + \ifnum ##2>\c@secnumdepth \else + \protect\numberline{\csname the##1\endcsname}% + \fi + ##7}}% + \fi + \expandafter\protected@edef + \expandafter\@currentlabel + \expandafter{\csname the##1\endcsname}% + \@xsect{##5}}% +} + +\endinput diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/ob-toclof.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/ob-toclof.sty new file mode 100644 index 00000000000..5ef56b463fb --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/ob-toclof.sty @@ -0,0 +1,144 @@ +%% File `ob-toclof.sty` +%% +%% Copyright (c) 2007-2013 Kangsoo Kim +%% +%% 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 substyle. part of oblivoir, +%% +%% \newlistof{listoffigures}{lof}{\listfigurename} +%% \kill@lastcounter{lofdepth} +%% \newlistentry[section]{figure}{lof}{0} +%% \cftsetindents{figure}{0em}{2.3em} +%% +\if@toclofentry\else +\renewcommand{\put@bsintoc}{% + \ifadd@bstotoc + \ifnumber@bs\else + \phantomsection + \addcontentsline{toc}{section}{\abstractname} + \fi + \fi} + +\def\addappheadtotoc{\addcontentsline{toc}{section}{\appendixtocname}} + +\renewcommand{\newlistof}[3]{% + \@namedef{ext@#2}{#2} + \@ifundefined{c@#2depth}{\newcounter{#2depth}}{} + \setcounter{#2depth}{1} + \@namedef{#2mark}{\markboth{#3}{#3}} + \@namedef{#1}{\@ifstar{\@nameuse{@star#2}}{\@nameuse{@plain#2}}} + \@namedef{@star#2}{% + \ensureonecol + \par + \begingroup +%%% \parindent\z@ \parskip\cftparskip + \@nameuse{@#2maketitle} + \@starttoc{#2}% + \endgroup + \restorefromonecol} + \@namedef{@plain#2}{% + \ensureonecol + \par + \begingroup +%%% \parindent\z@ \parskip\cftparskip + \@nameuse{@#2maketitle} + \phantomsection + \addcontentsline{toc}{section}{#3} + \@starttoc{#2}% + \endgroup + \restorefromonecol} + \@namedef{@#2maketitle}{% + \@nameuse{#2headstart} + {\parindent\z@ \parskip\cftparskip + \interlinepenalty\@M + \@nameuse{print#2nonum}% + \@nameuse{print#2title}{#3}% + \@nameuse{#2mark}% + \thispagestyle{chapter}% + \@nameuse{after#2title} + } + \@afterheading} +% \@namedef{#2headstart}{\chapterheadstart} +% \@namedef{after#2title}{\afterchaptertitle} +% \@namedef{print#2nonum}{\printchapternonum} +% \@namedef{print#2title}##1{\printchaptertitle{##1}} +} % end \newlistof + +\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 + \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{\hchaptertitlehead}\f@rtoc}% + \memappchapinfo{\thechapter}{\f@rtoc}{\f@rhdr}{#2}% + \else + \addcontentsline{toc}{section}{% + \protect\chapternumberline{\hchaptertitlehead}\f@rtoc}% + \memchapinfo{\hchaptertitlehead}{\f@rtoc}{\f@rhdr}{#2}% + \fi + \else + \addcontentsline{toc}{section}{\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 +} + +\newlistof{tableofcontents}{toc}{\contentsname} +\newlistof{listoffigures}{lof}{\listfigurename} +\newlistof{listoftables}{lot}{\listtablename} + +\fi % of \if@toclofentry + +\endinput diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/10_5.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/10_5.sty deleted file mode 100644 index 401c569ff9a..00000000000 --- a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/10_5.sty +++ /dev/null @@ -1,82 +0,0 @@ -%% File `10_5.sty` -%% -%% Copyright (c) 2006-2013 Kangsoo Kim -%% -%% 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. -%% -%% default font sizes 10.5 -%% 폰트 사이즈 설정. -%% -\def\@xvarpt{10.5} -\def\@ixvarpt{9.5} -\def\@vvarpt{5.5} -\def\@vivarpt{6.5} -\def\@viivarpt{7.5} -\def\@viiivarpt{8.6} -\def\@xivarpt{11.65} -\def\@xiivarpt{12.5} -\def\@xiiipt{13} -\renewcommand{\normalsize}{% - \@setfontsize\normalsize\@xvarpt\@xiipt - \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ - \abovedisplayshortskip \z@ \@plus3\p@ - \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ - \belowdisplayskip \abovedisplayskip - \let\@listi\@listI} -\normalsize -\renewcommand{\small}{% - \@setfontsize\small\@ixvarpt{11}% - \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@ - \abovedisplayshortskip \z@ \@plus2\p@ - \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ - \def\@listi{\leftmargin\leftmargini - \topsep 4\p@ \@plus2\p@ \@minus2\p@ - \parsep 2\p@ \@plus\p@ \@minus\p@ - \itemsep \parsep -%% \itemindent\z@ - }% - \belowdisplayskip \abovedisplayskip -} -\renewcommand{\footnotesize}{% - \@setfontsize\footnotesize\@viiivarpt{9.5}% - \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@ - \abovedisplayshortskip \z@ \@plus\p@ - \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@ - \def\@listi{\leftmargin\leftmargini - \topsep 3\p@ \@plus\p@ \@minus\p@ - \parsep 2\p@ \@plus\p@ \@minus\p@ - \itemsep \parsep -%% \itemindent\z@ - }% - \belowdisplayskip \abovedisplayskip -} -\renewcommand{\miniscule}{\@setfontsize\miniscule\@vipt{6}} -\renewcommand{\tiny}{\@setfontsize\tiny\@viipt{7.5}} -\renewcommand{\scriptsize}{\@setfontsize\scriptsize\@viivarpt{8}} -\renewcommand{\large}{\@setfontsize\large\@xivarpt{13.6}} -\renewcommand{\Large}{\@setfontsize\Large\@xiiipt{14.5}} -\renewcommand{\LARGE}{\@setfontsize\LARGE\@xivpt{18}} -\renewcommand{\huge}{\@setfontsize\huge\@xviipt{22}} -\renewcommand{\Huge}{\@setfontsize\Huge\@xxpt{25}} -\renewcommand{\HUGE}{\@setfontsize\HUGE\@xxvpt{30}} -\setlength{\onelineskip}{\@xiipt\p@} -\if@twocolumn - \setlength\parindent{1em} -\else - \setlength\parindent{15\p@} -\fi - -\if@twocolumn - \setlength\marginparsep{11\p@} -\else - \setlength\marginparsep{6\p@} -\fi -\setlength{\marginparpush}{7\p@} - -\endinput diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/fapapersize.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/fapapersize.sty deleted file mode 100644 index 4cb7d1ffd6b..00000000000 --- a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/fapapersize.sty +++ /dev/null @@ -1,141 +0,0 @@ -%% File `fapapersize.sty` -%% -%% Copyright (c) 2006-2013 Kangsoo Kim -%% -%% 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. -%% -%% ver 0.031 (2006/12/04) -%% trivial bug fix. -%% ver 0.03 (2006/11/24) -%% stocksize를 별도 지정할 수 있게 함 -%% option [stock], command \usefastocksize{}{} -%% ver 0.02 -%% 사륙배판, 국판, 신국판 정의. -%% marginnote 영역 설정은 제외되어 있음. -\ProvidesPackage{fapapersize} -%%% -%%% 옵션 -%%% dbl4x6 : 사륙배판 -%%% mum : 국판 -%%% newmum : 신국판 -\DeclareOption{dbl4x6}{% - \AtEndOfPackage{\usefapapersize{190mm,260mm,30mm,*,30mm,*}}% -} -\DeclareOption{mum}{% - \AtEndOfPackage{\usefapapersize{148mm,210mm,25mm,*,25mm,*}}% -} -\DeclareOption{newmum}{% - \AtEndOfPackage{\usefapapersize{154mm,225mm,25mm,*,25mm,*}}% -} -\newif\ifStockSize@\StockSize@false -\DeclareOption{stock}{% - \StockSize@true -} -\newif\if@showtrim\@showtrimfalse -%\DeclareOption{trimmark}{\@showtrimtrue} -\DeclareOption{showtrims}{\@showtrimtrue} -\ProcessOptions - -\newlength\fa@stockheight\newlength\fa@stockwidth -\newlength\fa@paperheight\newlength\fa@paperwidth -\newlength\fa@leftmargin\newlength\fa@rightmargin -\newlength\fa@uppermargin\newlength\fa@lowermargin -\newlength\fa@tmplenwd\newlength\fa@tmplenht - -\newdimen\tmp@dim - -\def\set@paper@size{% - \ifnum\fa@paperwidth>\fa@tmplenwd - \if@showtrim - \typeout{the page size is too small. Trim mark will not be shown.} - \@showtrimfalse\trimNone - \fi - \fi - \if@showtrim - \setstocksize{\fa@tmplenht}{\fa@tmplenwd} - \settrimmedsize{\fa@paperheight}{\fa@paperwidth}{*} - \setlrmarginsandblock{\fa@leftmargin}{\fa@rightmargin}{*} - \setulmarginsandblock{\fa@uppermargin}{\fa@lowermargin}{*} - \setlength{\trimtop}{\stockheight} - \addtolength{\trimtop}{-\paperheight} - \setlength{\trimedge}{\stockwidth} - \addtolength{\trimedge}{-\paperwidth} - \settrims{.5\trimtop}{.5\trimedge} - \trimLmarks - \else - \setstocksize{\fa@paperheight}{\fa@paperwidth} - \settrimmedsize{\stockheight}{\stockwidth}{*} - \setlrmarginsandblock{\fa@leftmargin}{\fa@rightmargin}{*} - \setulmarginsandblock{\fa@uppermargin}{\fa@lowermargin}{*} - \trimNone - \fi - \tmp@dim=\headheight\advance\tmp@dim by\headsep\advance\tmp@dim by1mm - \ifdim\fa@uppermargin<\tmp@dim - \setheaderspaces{*}{10pt}{*} - \tmp@dim=\fa@uppermargin\advance\tmp@dim by-\headsep\advance\tmp@dim by-1mm - \setheadfoot{\tmp@dim}{\tmp@dim} - \fi - \checkandfixthelayout -} - -\def\@usefastocksize#1#2{% - \setlength\fa@stockheight{#2}% - \setlength\fa@stockwidth{#1}% -} - -\newcommand*{\usefastocksize}[1]{% - \set@fa@stocksizeparameters#1\@nil -} - -\def\set@fa@stocksizeparameters#1,#2\@nil{% - \setlength{\fa@stockwidth}{#1}% - \setlength{\fa@stockheight}{#2}% -} - -\def\@usefapapersize#1#2#3[#4]#5[#6]{% - \setlength\fa@paperwidth{#1} - \setlength\fa@paperheight{#2} - \setlength\fa@leftmargin{#3} - \setlength\fa@rightmargin{#4} - \setlength\fa@uppermargin{#5} - \setlength\fa@lowermargin{#6} -} - -\newcommand*\usefapapersize[1]{% - \get@stocksize - \set@fa@papersizeparameters#1\@nil - \set@paper@size -} - -\def\get@stocksize{% - \ifStockSize@ - \def\fa@tmplenwd{\fa@stockwidth}\def\fa@tmplenht{\fa@stockheight} - \else - \def\fa@tmplenwd{\stockwidth}\def\fa@tmplenht{\stockheight} - \fi -} - -\def\set@fa@papersizeparameters#1,#2,#3,#4,#5,#6\@nil{% - \ifx*#1\def\@tmp@pgwidth{\fa@tmplenwd}\else\def\@tmp@pgwidth{#1}\fi - \ifx*#2\def\@tmp@pgheight{\fa@tmplenht}\else\def\@tmp@pgheight{#2}\fi - \ifx*#4 - \ifx*#6 - \@usefapapersize{\@tmp@pgwidth}{\@tmp@pgheight}{#3}[{#3}]{#5}[{#5}] - \else - \@usefapapersize{\@tmp@pgwidth}{\@tmp@pgheight}{#3}[{#3}]{#5}[{#6}] - \fi\else - \ifx*#6 - \@usefapapersize{\@tmp@pgwidth}{\@tmp@pgheight}{#3}[{#4}]{#5}[{#5}] - \else - \@usefapapersize{\@tmp@pgwidth}{\@tmp@pgheight}{#3}[{#4}]{#5}[{#6}] - \fi - \fi -} - -\endinput 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 deleted file mode 100644 index 2b0ae2ef71e..00000000000 --- a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memhangul-common.sty +++ /dev/null @@ -1,1154 +0,0 @@ -%% File `memhangul-common.sty` -%% -%% (C) Copyright 2013-2015 Kangsoo Kim -%% -%% 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. -%% -%%% -%%% part of kotex-oblivoir -%%% -%%% ===================== -%%% 편, 장 섹션 타이틀 재설정 -%%% 절의 섹션 타이틀은 수정하지 않음. -%% -\ProvidesPackage{memhangul-common}[2015/10/15] - -\let\@CHAPAPP\@chapapp -\def\refreshprepostchapters{% - \if@hanja - \def\pre@chapter{第}% - \else - \def\pre@chapter{제}% - \fi - \let\@chapapp\@CHAPAPP - \def\post@chapter{\@chapapp}% -} -\refreshprepostchapters -%\renewcommand\@chapapp{장} -\def\prechapternum{\pre@chapter} -\def\postchapternum{\post@chapter} -\newcommand\hchaptertitlehead{\pre@chapter\,\thechapter\,\post@chapter} -\providecommand\partmark[1]{} - -\let\pre@part\pre@chapter -\let\post@part\partname -%\renewcommand{\printpartname}{\partnamefont \pre@part} -\renewcommand{\printpartname}{} % disabled. -\renewcommand{\partnamenum}{\space} -\def\prepartnum{\partnamefont \pre@part} -\def\postpartnum{\partnamefont \post@part} -\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}% - \def\f@rtoc{#1}% - \@nameuse{part@f@rtoc@before@write@hook}% - \phantomsection - \mempreaddparttotochook - \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 - \mempostaddparttotochook - \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}% - \phantomsection - {\centering - \interlinepenalty \@M - \normalfont - \printparttitle{#1}\par}% - \@endpart} - -%\def\@endpart{\afterpartskip -% \if@twoside -% \if@openright -% \null -% \thispagestyle{empty}% -% \newpage -% \fi -% \fi -% \if@tempswa -% \twocolumn -% \fi} - -%% CHAPTER -%%%%%%%%%%% -\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{% - \m@mpn@new@chaptrue% - \m@mpn@new@schapfalse% - \def\f@rbdy{#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 - \mempostaddchaptertotochook% - \ifheadnameref\M@gettitle{\f@rhdr}\else\M@gettitle{\f@rtoc}\fi -%%% for chapter - \ifanappendix - \protected@edef\@currentlabel{\thechapter}% - \fi - \memendofchapterhook% -} - -\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 - } -} - -%%%%%%%%%%%%% - -\renewcommand{\@chs@def@ult}{% - \def\chapterheadstart{\vspace*{\beforechapskip}} -% \def\printchaptername{\chapnamefont \@chapapp} -% \def\printchaptername{\chapnamefont \pre@chapter} - \def\printchaptername{} % disabled. -% \def\chapternamenum{\space} - \def\chapternamenum{\,} - \def\printchapternum{\chapnumfont \thechapter} - \def\prechapternum{\chapnamefont \pre@chapter} - \def\postchapternum{\chapnamefont \post@chapter} - \def\afterchapternum{\par\nobreak\vskip \midchapskip} - \def\printchapternonum{} - \def\printchaptertitle##1{\chaptitlefont ##1} - \def\postchaptertitle{\post@chapter} - \def\afterchaptertitle{\par\nobreak\vskip \afterchapskip} -} - -%% l@chapter, l@part - -\setlength{\cftpartnumwidth}{4.5em} -\setlength{\cftchapternumwidth}{4.0em} -%% for compatibility with mempatch 3.12 -\def\@chapapp@head{}% - -%% SECTION - -\renewcommand{\section}{% - \sechook\memucsinterwordhook% - \@startsection{section}{1}% level 1 - {\secindent}% heading indent - {\beforesecskip}% skip before the heading - {\aftersecskip}% skip after the heading - {\normalfont\secheadstyle}} % font - -%% PAGESTYLES -%% headings, ruled, Ruled, companioin을 수정함 - -%% pagestyle headings -\if@twoside - \makepagestyle{headings} - \makepsmarks{headings}{% - \let\@mkboth\markboth - \def\chaptermark##1{% - \markboth{\MakeUppercase{% - \ifnum \c@secnumdepth >\m@ne - \if@mainmatter - \hchaptertitlehead \enskip\ % - \fi - \fi - ##1}}{}}% - \def\tocmark{\markboth{\MakeUppercase{\contentsname}}{}}% - \def\lofmark{\markboth{\MakeUppercase{\listfigurename}}{}}% - \def\lotmark{\markboth{\MakeUppercase{\listtablename}}{}}% - \def\bibmark{\markboth{\MakeUppercase{\bibname}}{}}% - \def\indexmark{\markboth{\MakeUppercase{\indexname}}{}}% - \def\sectionmark##1{% - \markright{\MakeUppercase{% - \ifnum \c@secnumdepth > \z@ - \thesection \enskip\ % - \fi - ##1}}}% - } - \makeevenhead{headings}{\thepage}{}{\normalfont\slshape\leftmark} - \makeoddhead{headings}{\normalfont\slshape\rightmark}{}{\thepage} -\else - \makepagestyle{headings} - \makepsmarks{headings}{% - \let\@mkboth\markboth - \def\chaptermark##1{% - \markright{\MakeUppercase{% - \ifnum \c@secnumdepth >\m@ne - \if@mainmatter - \hchaptertitlehead \enskip\ % - \fi - \fi - ##1}}}% - \def\tocmark{\markright{\MakeUppercase{\contentsname}}}% - \def\lofmark{\markright{\MakeUppercase{\listfigurename}}}% - \def\lotmark{\markright{\MakeUppercase{\listtablename}}}% - \def\bibmark{\markright{\MakeUppercase{\bibname}}}% - \def\indexmark{\markright{\MakeUppercase{\indexname}}}% - } - \makeoddhead{headings}{\normalfont\slshape\rightmark}{}{\thepage} -\fi - -%% Pagestyle ruled - -\makepagestyle{ruled} -\makeevenfoot{ruled}{\thepage}{}{} -\makeoddfoot{ruled}{}{}{\thepage} -\makeheadrule{ruled}{\textwidth}{\normalrulethickness} -\renewcommand{\@ruledmarks}{% - \let\@mkboth\markboth - \def\chaptermark##1{% - \markboth{% - \ifnum \c@secnumdepth >\m@ne - \if@mainmatter - \hchaptertitlehead \enskip\ % - \fi - \fi - ##1}{}} - \def\sectionmark##1{\markright{##1}} - \def\tocmark{\markboth{\contentsname}{}} - \def\lofmark{\markboth{\listfigurename}{}} - \def\lotmark{\markboth{\listtablename}{}} - \def\bibmark{\markboth{\bibname}{}} - \def\indexmark{\markboth{\indexname}{}} -} -\makepsmarks{ruled}{\@ruledmarks} -\makeevenhead{ruled}{\normalfont\scshape\leftmark}{}{} -\makeoddhead{ruled}{}{}{\normalfont\rightmark} - -%% Pagestyle Ruled - -\makepagestyle{Ruled} -\makerunningwidth{Ruled}{1.1\textwidth} -\makeheadposition{Ruled}{flushright}{flushleft}{flushright}{flushleft} -\makeevenfoot{Ruled}{\thepage}{}{} -\makeoddfoot{Ruled}{}{}{\thepage} -\makeheadrule{Ruled}{1.1\textwidth}{\normalrulethickness} -\makepsmarks{Ruled}{\@ruledmarks} -\makeevenhead{Ruled}{\normalfont\scshape\leftmark}{}{} -\makeoddhead{Ruled}{}{}{\normalfont\rightmark} - -%% Pagestyle companion - -%\makepagestyle{companion} -%\setlength{\headwidth}{\textwidth} -% \addtolength{\headwidth}{\marginparsep} -% \addtolength{\headwidth}{\marginparwidth} -%\makerunningwidth{companion}{\headwidth} -%\makeheadrule{companion}{\headwidth}{\normalrulethickness} -%\makeheadposition{companion}{flushright}{flushleft}{}{} -%\makepsmarks{companion}{% -% \let\@mkboth\markboth -% \def\chaptermark##1{\markboth{##1}{##1}} % left mark & right marks -% \def\sectionmark##1{\markright{% -% \ifnum \c@secnumdepth>\z@ -% \thesection. \ % -% \fi -% ##1}} -% \def\tocmark{\markboth{\contentsname}{\contentsname}} -% \def\lofmark{\markboth{\listfigurename}{\listfigurename}} -% \def\lotmark{\markboth{\listtablename}{\listtablename}} -% \def\bibmark{\markboth{\bibname}{\bibname}} -% \def\indexmark{\markboth{\indexname}{\indexname}} -%} -%\makeevenhead{companion}{\normalfont\bfseries\thepage}{}% -% {\normalfont\bfseries\leftmark} -%\makeoddhead{companion}{\normalfont\bfseries\rightmark}{}% -% {\normalfont\bfseries\thepage} - -%% 한글 pagestyle hangul -\makepagestyle{hangul} -\newdimen\pghgheadwidth\let\pghgheadwidth=\textwidth -\makerunningwidth{hangul}{\pghgheadwidth} -%\makeheadrule{hangul}{\pghgheadwidth}{0pt} -\makeheadposition{hangul}{flushleft}{flushright}{flushleft}{flushright} -\def\@hgpsmarks{% - \let\@mkboth\markboth - \def\chaptermark##1{% - \markboth{\scshape - \ifnum \c@secnumdepth >\m@ne - \if@mainmatter - \hchaptertitlehead \enskip\ % - \fi - \fi - ##1}{}}% - \def\tocmark{\markboth{\scshape\contentsname}{}}% - \def\lofmark{\markboth{\scshape\listfigurename}{}}% - \def\lotmark{\markboth{\scshape\listtablename}{}}% - \def\bibmark{\markboth{\scshape\bibname}{}}% - \def\indexmark{\markboth{\scshape\indexname}{}}% - \def\sectionmark##1{% - \markright{\scshape -%% disabled printing \thesection. -% \ifnum \c@secnumdepth >\z@ -% \thesection \enskip\ % -% \fi - ##1}}% - } -\makepsmarks{hangul}{\@hgpsmarks} -\makeoddhead{hangul}{}{}{\normalfont\small\rightmark~\makebox[2em][r]{\normalfont\normalsize\sffamily\thepage}} -\makeevenhead{hangul}{\makebox[2em][l]{\normalfont\normalsize\sffamily\thepage}~\normalfont\small\leftmark}{}{} - -%%% CHAPTERSTYLE - -\makechapterstyle{default}{% - \renewcommand{\post@chapter}{\chaptername}% - \renewcommand{\chapnamefont}{\normalfont\huge\bfseries} - \renewcommand{\chapnumfont}{\normalfont\huge\bfseries} - \renewcommand{\chaptitlefont}{\normalfont\Huge\bfseries} - \setlength{\beforechapskip}{50pt} - \setlength{\midchapskip}{20pt} - \setlength{\afterchapskip}{40pt} -} -\chapterstyle{default} - -%% for Appendix -\makechapterstyle{appendixdefault}{% - \renewcommand{\chapnamefont}{\normalfont\huge\bfseries} - \renewcommand{\chapnumfont}{\normalfont\huge\bfseries} - \renewcommand{\chaptitlefont}{\normalfont\Huge\bfseries} -% \renewcommand{\printchaptername}{\chapnumfont\@chapapp} - \renewcommand{\prechapternum}{\chapnumfont\@chapapp} - \renewcommand{\postchapternum}{} - \renewcommand{\chapternamenum}{\enskip} - \setlength{\beforechapskip}{50pt} - \setlength{\midchapskip}{20pt} - \setlength{\afterchapskip}{40pt} -} - -\makechapterstyle{section}{% -% \renewcommand{\printchaptername}{} - \renewcommand{\chapternamenum}{\enskip} - \renewcommand{\prechapternum}{} - \renewcommand{\postchapternum}{} - \renewcommand{\chapnumfont}{\normalfont\Huge\bfseries} - \renewcommand{\printchapternum}{\chapnumfont \thechapter\space} - \renewcommand{\afterchapternum}{} -} - -%% for appendix -\makechapterstyle{appendixsection}{% -% \renewcommand{\printchaptername}{\chapnumfont\@chapapp} - \renewcommand{\chapternamenum}{\enskip} - \renewcommand{\prechapternum}{\chapnumfont\@chapapp} - \renewcommand{\postchapternum}{} - \renewcommand{\chapnumfont}{\normalfont\Huge\bfseries} - \renewcommand{\printchapternum}{\chapnumfont \thechapter\space} - \renewcommand{\afterchapternum}{} -} - -\makechapterstyle{article}{% - \renewcommand{\chapterheadstart}{\vspace{\beforechapskip}} - \setlength{\beforechapskip}{3.5ex \@plus 1ex \@minus .2ex} - \setlength{\afterchapskip}{2.3ex \@plus .2ex} -% \renewcommand{\printchaptername}{} - \renewcommand{\prechapternum}{} - \renewcommand{\chapternamenum}{} - \renewcommand{\postchapternum}{} - \renewcommand{\chaptitlefont}{\normalfont\Large\bfseries} - \renewcommand{\chapnumfont}{\normalfont\Large\bfseries} - \renewcommand{\printchapternum}{\chapnumfont \thechapter\quad} - \renewcommand{\afterchapternum}{} -} - -\makechapterstyle{hangnum}{% - \renewcommand{\chapnumfont}{\chaptitlefont} - \settowidth{\chapindent}{\chapnumfont 999} -% \renewcommand{\printchaptername}{} - \renewcommand{\chapternamenum}{} - \renewcommand{\prechapternum}{} - \renewcommand{\postchapternum}{} - \renewcommand{\printchapternum}{% - \noindent\llap{\makebox[\chapindent][l]{\chapnumfont \thechapter}}} - \renewcommand{\afterchapternum}{} -} - -%\newlength{\chapindent} - -\makechapterstyle{companion}{% - \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} - \addtolength{\chapindent}{\marginparwidth} - \renewcommand*{\printchaptertitle}[1]{% - \begin{adjustwidth}{}{-\chapindent} - \raggedleft \chaptitlefont ##1\par\nobreak - \end{adjustwidth}}} - -%% for appendix. -\makechapterstyle{appendixcompanion}{% - \renewcommand{\chapnamefont}{\normalfont\LARGE\scshape} - \renewcommand{\prechapternum}{\raggedleft\chapnamefont \@chapapp} -% \renewcommand{\printchaptername}{\raggedleft\chapnamefont \pre@chapter} - \renewcommand{\chapnumfont}{\normalfont\Huge} - \renewcommand{\postchapternum}{} - \setlength{\chapindent}{\marginparsep} - \addtolength{\chapindent}{\marginparwidth} - \renewcommand{\printchaptertitle}[1]{% - \begin{adjustwidth}{}{-\chapindent} - \raggedleft \chaptitlefont ##1\par\nobreak - \end{adjustwidth}} -} - -\makechapterstyle{demo}{ -% \renewcommand{\printchaptername}{\centering} - \renewcommand{\prechapternum}{\centering} - \renewcommand{\printchapternum}{\chapnumfont \numtoName{\c@chapter}} - \renewcommand{\postchapternum}{} - \renewcommand{\chaptitlefont}{\normalfont\Huge\sffamily} - \renewcommand{\printchaptertitle}[1]{% - \hrule\vskip\onelineskip \raggedleft \chaptitlefont ##1} - \renewcommand{\afterchaptertitle}{\vskip\onelineskip \hrule\vskip \afterchapskip} -} - -\makechapterstyle{demovar}{ -% \renewcommand{\printchaptername}{\centering} - \renewcommand{\prechapternum}{\centering} - \renewcommand{\printchapternum}{\chapnumfont \hNum{chapter}} - \renewcommand{\postchapternum}{\post@chapter} - \renewcommand{\chaptitlefont}{\normalfont\Huge\sffamily} - \renewcommand{\printchaptertitle}[1]{% - \hrule\vskip\onelineskip \raggedleft \chaptitlefont ##1} - \renewcommand{\afterchaptertitle}{\vskip\onelineskip \hrule\vskip \afterchapskip} -} - -%% for appendix -\makechapterstyle{appendixdemo}{ -% \renewcommand{\printchaptername}{\centering\chapnumfont\@chapapp} - \renewcommand{\prechapternum}{\centering\chapnumfont\@chapapp} - \renewcommand{\printchapternum}{\chapnumfont \@Alph\c@chapter} - \renewcommand{\postchapternum}{\ } - \renewcommand{\chaptitlefont}{\normalfont\Huge\sffamily} - \renewcommand{\printchaptertitle}[1]{% - \hrule\vskip\onelineskip \raggedleft \chaptitlefont ##1} - \renewcommand{\afterchaptertitle}{\vskip\onelineskip \hrule\vskip \afterchapskip} -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%% appendix %%%%%%%%%%%%%%%%%%%%%%%%% - -\def\set@appendix@chapsec{% - %%% SECTION in APPENDIX - \renewcommand{\section}{% - \sechook\memucsinterwordhook% - \@startsection{section}{1}% level 1 - {\secindent}% heading indent - {\beforesecskip}% skip before the heading - {\aftersecskip}% skip after the heading - {\normalfont\secheadstyle}} % font - \def\M@sect##1##2##3##4##5##6[##7][##8]##9{% - \ifheadnameref\M@gettitle{##8}\else\M@gettitle{##7}\fi - \ifnum ##2>\c@secnumdepth - \let\@svsec\@empty - \else - \refstepcounter{APP##1}% - \protected@edef\@svsec{\@seccntformat{##1}\relax}% - \fi - \@tempskipa ##5\relax - \ifdim \@tempskipa>\z@ - \begingroup - ##6{% - \@hangfrom{\hskip ##3\relax\@svsec}% - \interlinepenalty \@M ##9\@@par}% - \endgroup - \csname ##1mark\endcsname{##8}% - \addcontentsline{toc}{##1}{% - \ifnum ##2>\c@secnumdepth \else - \protect\numberline{\noexpand\protect\csname the##1\endcsname}% - \fi - ##7}% - \else - \def\@svsechd{% - ##6{\hskip ##3\relax - \@svsec ##9}% - \csname ##1mark\endcsname{##8}% - \addcontentsline{toc}{##1}{% - \ifnum ##2>\c@secnumdepth \else - \protect\numberline{\csname the##1\endcsname}% - \fi - ##7}}% - \fi - \@xsect{##5}}% -} - -\def\restorechapsec{% - %%% SECTION in APPENDIX - \renewcommand{\section}{% - \sechook\memucsinterwordhook% - \@startsection{section}{1}% level 1 - {\secindent}% heading indent - {\beforesecskip}% skip before the heading - {\aftersecskip}% skip after the heading - {\normalfont\secheadstyle}} % font - \def\M@sect##1##2##3##4##5##6[##7][##8]##9{% - \ifheadnameref\M@gettitle{##8}\else\M@gettitle{##7}\fi - \ifnum ##2>\c@secnumdepth - \let\@svsec\@empty - \else - \refstepcounter{##1}% - \protected@edef\@svsec{\@seccntformat{##1}\relax}% - \fi - \@tempskipa ##5\relax - \ifdim \@tempskipa>\z@ - \begingroup - ##6{% - \@hangfrom{\hskip ##3\relax\@svsec}% - \interlinepenalty \@M ##9\@@par}% - \endgroup - \csname ##1mark\endcsname{##8}% - \addcontentsline{toc}{##1}{% - \ifnum ##2>\c@secnumdepth \else - \protect\numberline{\noexpand\protect\csname the##1\endcsname}% - \fi - ##7}% - \else - \def\@svsechd{% - ##6{\hskip ##3\relax - \@svsec ##9}% - \csname ##1mark\endcsname{##8}% - \addcontentsline{toc}{##1}{% - \ifnum ##2>\c@secnumdepth \else - \protect\numberline{\csname the##1\endcsname}% - \fi - ##7}}% - \fi - \@xsect{##5}} -} - -\renewcommand{\appendix}{\par -% \setcounter{chapter}{0}% -% \setcounter{section}{0}% -% \gdef\@chapapp{\appendixname}% -% \gdef\thechapter{\@Alph\c@chapter}% - \set@appendix@chapter - \anappendixtrue - \chapterstyle{appendixdefault}% -} - -\newcounter{APPchapter}\setcounter{APPchapter}{0}% -\newcounter{APPsection}[APPchapter]\setcounter{APPsection}{0}% -\newcounter{APPsubsection}[APPsection]\setcounter{APPsubsection}{0}% - -\def\set@appendix@chapter{% - \gdef\@chapapp{\appendixname}% - \gdef\thechapter{\Alph{APPchapter}}% - \gdef\thesection{\thechapter.\arabic{APPsection}}% -% \counterwithout{figure}{chapter}\counterwithout{table}{chapter}% - \counterwithin{figure}{APPchapter}\counterwithin{table}{APPchapter}% - \counterwithin{equation}{APPchapter}% - \renewcommand\thefigure{\thechapter.\arabic{figure}}% - \renewcommand\thetable{\thechapter.\arabic{table}}% - \renewcommand\theequation{\thechapter.\arabic{equation}}% - \set@appendix@chapsec - \renewcommand\hchaptertitlehead{\appendixname\:\thechapter}% -} - -%%% here, I will renewcommand chapterstyle, -%%% to recover chapterstyle after appendices. -\renewcommand{\chapterstyle}[1]{% - \@nameuse{chs@#1}% - \ifanappendix\else\gdef\CURR@chpstyle{#1}\fi -} - -\def\restore@appendices@chapter{% - \refreshprepostchapters - \gdef\thechapter{\arabic{chapter}}% - \gdef\thesection{\thechapter.\arabic{section}}% - \def\hchaptertitlehead{\pre@chapter\:\thechapter}% - \counterwithin{figure}{chapter}\counterwithin{table}{chapter}% - \restorechapsec - \@ifundefined{CURR@chapstyle}{\chapterstyle{default}}% - {\expandafter\expandafter\chapterstyle{\CURR@chapstyle}}% -} - -\renewcommand{\@resets@pp}{% - \par - \@ppsavesec -% \setcounter{section}{0}% -% \setcounter{chapter}{0}% -% \renewcommand\@chapapp{\appendixname}% -% \renewcommand\thechapter{\@Alph\c@chapter}% - \set@appendix@chapter - \chapterstyle{appendixdefault} - \restoreapp -} - -\renewenvironment{appendices}% - {\@resets@pp\anappendixtrue}% - {\@ppsaveapp\@pprestoresec\restore@appendices@chapter\anappendixfalse} - -\renewenvironment{subappendices}{% - \@resets@ppsub - \def\addappheadtotoc{\phantomsection\addcontentsline{toc}{section}{\appendixtocname}} % <- mempatch 2.3 - \ifnamesubappendix - \def\sectionname{\protect\subappendixname}% - \def\@seccntformat##1{\@ifundefined{##1name}{}{\csname ##1name\endcsname\ }% - \csname the##1\endcsname\quad} - \fi - }{} - -%%% References -\renewcommand\Cref[1]{% - \pre@chapter\,\ref{#1}\,\chapterrefname% -} -\renewcommand\Pref[1]{% - \pre@part\,\ref{#1}\,\partrefname% -} -\renewcommand\pref[1]{% - \pageref{#1}~\pagerefname -} -\renewcommand\tref[1]{% - \tablerefname~\ref{#1}% -} -\renewcommand\fref[1]{% - \figurerefname~\ref{#1}% -} - -%% arabic, roman... etc. -%%\def\HArabic#1{\arabic{#1}} -\def\HAlph#1{\Alph{#1}} -\def\Halph#1{\alph{#1}} -\def\HROMAN#1{\hRoman{#1}} -\def\Hroman#1{\hroman{#1}} -%% - -%% phantomchapter = phantomsection -\def\phantomchapter{% - \Hy@GlobalStepCount\Hy@linkcounter - \xdef\@currentHref{chapter*.\the\Hy@linkcounter}% - \Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}% -} - -%%% index -\renewcommand{\@wrindexm@m}[1]{\@@wrindexhyp#1||\\} - - -%%% 한글 문장부호 관련 명령 -%%% \hfontfamilynameprefix is deprecated. (ver1.5.0) -\def\hfontfamilynameprefix{ut} % for compatibility only - -\def\cnm@char@open{〈} -\def\cnm@char@close{〉} -\def\ccnm@char@open{《} -\def\ccnm@char@close{》} -\def\snm@char@open{「} -\def\snm@char@close{」} -\def\bnm@char@open{『} -\def\bnm@char@close{』} - -\def\memx@make@bnmcmd#1#2{% - \leavevmode - \unhbox0\memx@bnmcmd@prekern\csname #1@char@open\endcsname - #2\csname #1@char@close\endcsname\memx@bnmcmd@postkern -} - -\protected\def\cnm{% - \@ifnextchar*\cnm@star\cnm@nostar -} - -\def\cnm@star*#1{% - \def\memx@bnmcmd@prekern{\kern-.35em}% - \def\memx@bnmcmd@postkern{\kern-.4em}% - \memx@make@bnmcmd{cnm}{#1}% -} - -\def\cnm@nostar#1{% - \let\memx@bnmcmd@prekern\relax - \let\memx@bnmcmd@postkern\relax - \memx@make@bnmcmd{cnm}{#1}% -} - -\protected\def\ccnm{% - \@ifnextchar*\ccnm@star\ccnm@nostar -} - -\def\ccnm@star*#1{% - \def\memx@bnmcmd@prekern{\kern-.35em}% - \def\memx@bnmcmd@postkern{\kern-.4em}% - \memx@make@bnmcmd{ccnm}{#1}% -} - -\def\ccnm@nostar#1{% - \let\memx@bnmcmd@prekern\relax - \let\memx@bnmcmd@postkern\relax - \memx@make@bnmcmd{ccnm}{#1}% -} - - -\protected\def\snm{% - \@ifnextchar*\snm@star\snm@nostar -} - -\def\snm@star*#1{% - \def\memx@bnmcmd@prekern{\kern-.35em}% - \def\memx@bnmcmd@postkern{\kern-.4em}% - \memx@make@bnmcmd{snm}{#1}% -} - -\def\snm@nostar#1{% - \let\memx@bnmcmd@prekern\relax - \let\memx@bnmcmd@postkern\relax - \memx@make@bnmcmd{snm}{#1}% -} - - -\protected\def\bnm{% - \@ifnextchar*\bnm@star\bnm@nostar -} - -\def\bnm@star*#1{% - \def\memx@bnmcmd@prekern{\kern-.35em}% - \def\memx@bnmcmd@postkern{\kern-.4em}% - \memx@make@bnmcmd{bnm}{#1}% -} - -\def\bnm@nostar#1{% - \let\memx@bnmcmd@prekern\relax - \let\memx@bnmcmd@postkern\relax - \memx@make@bnmcmd{bnm}{#1}% -} - -\AtBeginDocument{ - \@ifpackageloaded{hyperref}{% - \pdfstringdefDisableCommands{% - \def\cnm#1{\ifx#1*\expandafter\@@cnm\else <#1>\fi} - \def\@@cnm#1{<#1>} - \def\snm#1{\ifx#1*\expandafter\@@cnm\else <#1>\fi} - \def\ccnm#1{\ifx#1*\expandafter\@@cnm\else <#1>\fi} - \def\bnm#1{\ifx#1*\expandafter\@@cnm\else <#1>\fi} - \def\oblivoirdblquote#1{\ifx#1*\expandafter\@@obquote\else "#1"\fi} - \def\@@obquote#1{"#1"} - \def\oblivoirquote#1{\ifx#1*\expandafter\@@obsquote\else '#1'\fi} - \def\@@obsquote#1{'#1'} - \def\cntrdots{…} - }% - }{} -} - -%%%% 따옴표 -\def\oblivoirdblquote@char@open{“} -\def\oblivoirdblquote@char@close{”} -\def\oblivoirquote@char@open{‘} -\def\oblivoirquote@char@close{’} - -\protected\def\oblivoirdblquote{% - \@ifnextchar*\oblivoirdblquote@star\oblivoirdblquote@nostar -} - -\def\oblivoirdblquote@star*#1{% - \def\memx@bnmcmd@prekern{\kern-.35em}% - \def\memx@bnmcmd@postkern{\kern-.4em}% - \memx@make@bnmcmd{oblivoirdblquote}{#1}% -} - -\def\oblivoirdblquote@nostar#1{% - \let\memx@bnmcmd@prekern\relax - \let\memx@bnmcmd@postkern\relax - \memx@make@bnmcmd{oblivoirdblquote}{#1}% -} - -\protected\def\oblivoirquote{% - \@ifnextchar*\oblivoirquote@star\oblivoirquote@nostar -} - -\def\oblivoirquote@star*#1{% - \def\memx@bnmcmd@prekern{\kern-.35em}% - \def\memx@bnmcmd@postkern{\kern-.4em}% - \memx@make@bnmcmd{oblivoirquote}{#1}% -} - -\def\oblivoirquote@nostar#1{% - \let\memx@bnmcmd@prekern\relax - \let\memx@bnmcmd@postkern\relax - \memx@make@bnmcmd{oblivoirquote}{#1}% -} - -%%%% cntrdots - -\ifx\cntrdot\undefined -\DeclareRobustCommand{\cntrdot}{% - \@ifnextchar*\@cntrd@t\@@cntrd@t -} -\else -\renewcommand{\cntrdot}{% - \@ifnextchar*\@cntrd@t\@@cntrd@t -} -\fi - -\ifx\oblivoirallowbreak\undefined -\let\oblivoirallowbreak\allowbreak -\fi - -\def\@cntrd@t*{% - \leavevmode\kern.2em\@@cntrd@t\hskip.2em\oblivoirallowbreak -} -\def\@@cntrd@t{% - \leavevmode\nobreak\raise.02ex\hbox{·}\oblivoirallowbreak -} - -\DeclareRobustCommand{\cntrdots}{% - \leavevmode…%\oblivoirallowbreak -} - -\DeclareRobustCommand{\cntrdotss}{% - \leavevmode ……% -} - -%% Punctuation Explanation Rule. -%% usage: \explpunc.Some_running_texts.\ % last space must not be succeeded by ^M. -\protected\def\explpunc.#1.\ {\leavevmode\,\XBrule#1\XErule\,} -\protected\def\expldash{\leavevmode\,\XBrule\,} -% -\newsavebox\togetheightoffont\sbox\togetheightoffont{!} -\newlength\htoffnt\setlength\htoffnt{\ht\togetheightoffont} -\addtolength\htoffnt{\dp\togetheightoffont} -\def\XBrule{\raise.45\htoffnt\hbox{\rule{1.25em}{.25pt}}} -\def\XErule{\raise.45\htoffnt\hbox{\hskip1pt\rule{1.25em}{.25pt}}} - -%% Misc def. -%\def\PageName{페이지} -%\def\AltPageName{쪽} - -%% \titleref -%% -- 2009/02/11. revert to original definition. -\let\M@TitleReference\@firstoftwo -\let\M@M@TitleReference\@firstoftwo -\def\@mem@theTR{\let\M@M@TitleReference\@firstoftwo\theTitleReference} - -%% vertical distance of math display -\if@mathdisp -\addtodef{\normalsize}{}{\abovedisplayskip 6\p@ \@plus2\p@ \@minus5\p@ - \abovedisplayshortskip \z@ \@plus3\p@ - \belowdisplayshortskip 3\p@ \@plus3\p@ \@minus3\p@ - \belowdisplayskip \abovedisplayskip} -\fi - -%% arabic frontmatter numbering -\if@arabicfrontmatter -\renewcommand{\@memfront}{% - \@smemfront\pagenumbering{arabic}} -\fi - -%% default pagestyle -\if@defaulthangulpagestyle - \pagestyle{hangul} -\fi - -%% 할주. -%% 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} -\protected\def\divnote#1{% - \settowidth{\@tempdima}{\divnotestyle #1}% - \ifvmode\leavevmode\fi\divnotedelimopen - \raise.2em\hbox{\parbox{.525\@tempdima}{\divnotestyle\singlespace #1}}\divnotedelimclose -} - -%% 각주 설정을 위한 추가 매크로 -\def\SetFnmark#1#2{% - \expandafter\def\csname @makefnmark\endcsname{\bgroup #1\@thefnmark#2\egroup}% -} - -%% chapter의 첫 단락 들여쓰기. -\newcommand*\chapterindentfirst{% - \addtodef{\@afterheading}{\@afterindenttrue}{} -} - -%% memhangul-patch -\InputIfFileExists{memhangul-patch.sty}{}{} - -%%% fig, tab caption -\def\obCaptionFont#1{\def\@figtabcaptfont@{#1}} -\providecommand\@figtabcaptfont@{\normalfont} -\if@figtabcapt@ -\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 - -%%% 2015/10/15: \@part, \@chapter renewal. -%%% 2015/08/07: default chapter style, postchapternum (hoze & gromov) 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 deleted file mode 100644 index b3cf7299587..00000000000 --- a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memhangul-patch.sty +++ /dev/null @@ -1,20 +0,0 @@ -%% File `memhangul-patch.sty` -%% -%% Copyright (c) 2005-2013 Kangsoo Kim -%% -%% 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. -%% -%% 2005/10/15 -%% some day, this patch has to be weaved into memhangul-use, 1.4, I hope. -%% 2005/12/28 -%% appendix-related minor fix -%% 2006/04/27 -%% remove redundant prerenderunicodes according to dhucs 3.0.0 -%% -\endinput \ No newline at end of file diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memucs-enumerate.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memucs-enumerate.sty deleted file mode 100644 index c3fd53f85ed..00000000000 --- a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memucs-enumerate.sty +++ /dev/null @@ -1,49 +0,0 @@ -%% File `memucs-enumerate.sty` -%% -%% (C) Copyright 2006-2013 Dohyun Kim -%% Kangsoo Kim -%% -%% 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. -%% -\ProvidesPackage{memucs-enumerate} - [2006/07/01 partially support enumrate in memoir under memhangul] - -%\@ifpackageloaded{enumerate}{}{\RequirePackage{enumerate}} - -\g@addto@macro\@enhook{% - \ifx^^ea\@entemp % 가, - \let\@memtempa\@dhucs@enumerate\else %%%%% - \ifx^^e2\@entemp % ①, ⑴, ⒜, ⓐ, ⅰ, Ⅰ - \let\@memtempa\@dhucs@enumerate\else %%%%% - \ifx^^e3\@entemp % ㄱ, ㉠, ㉮, ㈀, ㈎ - \let\@memtempa\@dhucs@enumerate - \fi\fi\fi} -\def\@dhucs@enumerate#1#2#3{% - \bgroup\let\unihangulchar\@firstofone - \xdef\@dhucs@enum@temp{#1#2#3}\egroup - \ifnum\@dhucs@enum@temp=44032 \def\@tempa{\@enLabel\gana}\else - \ifnum\@dhucs@enum@temp=8560 \def\@tempa{\@enLabel\hroman}\else - \ifnum\@dhucs@enum@temp=8544 \def\@tempa{\@enLabel\hRoman}\else - \ifnum\@dhucs@enum@temp=9372 \def\@tempa{\@enLabel\peng}\else - \ifnum\@dhucs@enum@temp=9424 \def\@tempa{\@enLabel\oeng}\else - \ifnum\@dhucs@enum@temp=9332 \def\@tempa{\@enLabel\pnum}\else - \ifnum\@dhucs@enum@temp=9312 \def\@tempa{\@enLabel\onum}\else - \ifnum\@dhucs@enum@temp=12814 \def\@tempa{\@enLabel\pgana}\else - \ifnum\@dhucs@enum@temp=12910 \def\@tempa{\@enLabel\ogana}\else - \ifnum\@dhucs@enum@temp=12896 \def\@tempa{\@enLabel\ojaso}\else - \ifnum\@dhucs@enum@temp=12593 \def\@tempa{\@enLabel\jaso}\else - \ifnum\@dhucs@enum@temp=12800 \def\@tempa{\@enLabel\pjaso}\else - \PackageError{dhucs-enumerate} - {You can't use `\unexpanded{#1#2#3}' as enum label} - {Legal enum labels of hangul-ucs are: \MessageBreak\space\space - \unexpanded{가, ㄱ, ㉠, ㉮, ㈀, ㈎, ①, ⑴, ⒜, ⓐ, ⅰ, Ⅰ}.} - \fi\fi\fi\fi\fi \fi\fi\fi\fi\fi \fi\fi - \@tempa\relax} - -\endinput diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memucs-setspace.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memucs-setspace.sty deleted file mode 100644 index 8db9d17acfa..00000000000 --- a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memucs-setspace.sty +++ /dev/null @@ -1,587 +0,0 @@ -%% File `memucs-setspace.sty` -%% -%% Copyright (c) 2007-2013 Kangsoo Kim -%% -%% 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. -%% -%% ======================= -%% -%% 이 스타일은 setspace 6.7을 바탕으로, memoir의 -%% 출력루틴을 hooking하여 거의 동일하게 동작하도록 -%% 수정한 스타일이다. -%% memoir 클래스에서 memhangul 스타일을 사용했을 때 -%% 불린다. 다른 용도로는 사용할 수 없음. -%% -%% This style is a modified version of SETSTYLE ver 6.7 by Erica M. S. Harris -%% modified by Karnes Kim -%% -%% FEATURES: -%% all the features of setstyle package -%% -%% NEW FEATURES: -%% -%% 1. [nofloatspacing] option -%% disables the feature of SETSTYLE, turning off all the line spacing -%% in the floats(figures, tables) and footnotes. -%% \noadjustfloatfnspacing, \adjustfloatfnspacing -%% 2. [hangul] option -%% When [hangul] option is on, the basic line spreading is set to -%% a proper line spacing in Korean(Hangul) documents, which has -%% a wider gap between the lines. -%% \SetHangulspace -%% 3. quote and quotation environment -%% quote and quotation environment have the same line spacing -%% with the floats and footnotes, verse. -%% \noadjustquotespacing, \adjustquotespacing -%% 4. [adjustfootnotesep] option -%% this option is meaningful only when [hangul] is on and -%% [nofloatspacing] off. -%% 5. [adjustverbatim] option. -%% verbatim environment. -%% \SetHangulVerbatimSpace. -%% 6. \ResetHangulspace, \RestoreHangulspace -%% - -\NeedsTeXFormat {LaTeX2e}[1994/12/09] -\def \filename {memucs-setspace.sty} -\def \filedate {2007/09/21} -\def \fileversion {6.7-memucs8} -\ProvidesPackage {memucs-setspace}[\filedate\space\fileversion\space - Contributed and Supported LaTeX2e package] -\typeout {Package: `memucs-setspace', a modified version of `setspace', \fileversion\space <\filedate>} - -% BP: add nodisplayskipstretch option and \setdisplayskipstretch command. - -\newcommand{\displayskipstretch}{\baselinestretch} -\newcommand{\setdisplayskipstretch}[1]{\renewcommand{\displayskipstretch}{#1}} -\DeclareOption{nodisplayskipstretch}{\setdisplayskipstretch{1.0}} - -% GT: add George Pearsons' suggested options. - -%% Karnes' -\newif\if@singlespacefn -\DeclareOption{nofloatspacing}{\@singlespacefnfalse} -\newif\if@singlespacequote -\DeclareOption{quotespacing}{\@singlespacequotetrue} -\newif\if@hangul -\DeclareOption{hangul}{\@hangultrue\AtEndOfPackage{\hangulspacing}} -\newif\if@adjustfootnotesep -\DeclareOption{adjustfootnotesep}{\@adjustfootnoteseptrue} -\newif\if@adjustverbatim -\DeclareOption{adjustverbatim}{\@adjustverbatimtrue} - -\DeclareOption{singlespacing}{\AtEndOfPackage{\singlespacing}} -\DeclareOption{onehalfspacing}{\AtEndOfPackage{\onehalfspacing}} -\DeclareOption{doublespacing}{\AtEndOfPackage{\doublespacing}} - -\@singlespacefntrue -\@singlespacequotefalse -\@hangulfalse -\@adjustfootnotesepfalse -\@adjustverbatimfalse -\ProcessOptions - -%%% provide memucsfninterwordhook -\ifx\undefined\memucsfninterwordhook - \providecommand\memucsfninterwordhook{}% -\fi - -\def\@floatfnspacinghook{% - \if@singlespacefn - \hangulfspacing - \else - \hangulspacing - \fi -} - -\newcommand\noadjustquotespacing{% - \@singlespacequotefalse -} - -\newcommand\adjustquotespacing{% - \@singlespacequotetrue -} - -\newcommand\adjustfloatfnspacing{% - \@singlespacefntrue -} - -\newcommand\noadjustfloatfnspacing{% - \@singlespacefnfalse -} - -% GT: Sat 28 Sep 1996: Widely using \newcommand, \renewcommand, and -% \newenvironment, instead of \def. - -% ** Line space commands. - -\newcommand{\setstretch}[1]{% - \def\baselinestretch{#1}% - \@currsize -} - -% GT: Sat 28 Sep 1996: spacing commands and environments modified to -% use \setstretch instead of \baselinestretch. -% -% GT: Sat 28 Sep 1996: No, I don't know understand the line spacing -% algorithms! If someone (LaTeX team) can enlighten me as to the -% general rule, please do! It would be very pleasant if setspace.sty -% were suited for document font sizes other than 10, 11 and 12 pt. -% -% GT: Tue 10 Dec 1996: Instead of fixing singlespacing to exact unity, -% allow user to redefine it (only slightly, please!) from its initial -% value of unity, in the case when a particular font is slightly larger -% or slightly smaller than its point size would indicate. This change -% affects setspace's single spacing commands, and LaTeX's footnote and -% float environments. The one and a half, double, and arbitrary -% spacing commands are unaltered. - -\newcommand{\SetSinglespace}[1]{% - \def\setspace@singlespace{#1}% -} - -%% Karnes. -\newcommand{\Set@Hangulspace}[2]{% - \def\setspace@hangulspace{#1}% - \def\setspace@hangulfspace{#2}% - \setstretch{#1}% -} - -\def\SetHangulspace#1#2{% - \AtBeginDocument{% - \gdef\setspace@hangulspace{#1}% - \gdef\setspace@hangulfspace{#2}% - }% - \setstretch{#1}% -} - -\newcommand{\SetHangulVerbatimSpace}[1]{% - \def\setspace@hangulverbspace{#1}% -} - -\let\tmp@current@hangulspace\setspace@hangulspace -\let\tmp@current@hangulfspace\setspace@hangulfspace - -\newcommand{\ResetHangulspace}[2]{% - \let\tmp@current@hangulspace\setspace@hangulspace% - \let\tmp@current@hangulfspace\setspace@hangulfspace% - \Set@Hangulspace{#1}{#2}% -} - -\newcommand{\RestoreHangulspace}{% - \Set@Hangulspace{\tmp@current@hangulspace}{\tmp@current@hangulfspace}% -} - -% Here's the default single line spacing value. -\SetSinglespace{1} - -%% Karnes. -\if@hangul -\Set@Hangulspace{1.333}{1.1} -\else -\Set@Hangulspace{1.0}{1.0} -\fi - -\newcommand{\singlespacing}{% - \setstretch {\setspace@singlespace}% normally 1 - \vskip \baselineskip % Correction for coming into singlespace -} - -%% Karnes. -\newcommand{\hangulspacing}{% - \setstretch{\setspace@hangulspace}% default -} - -\newcommand{\hangulfspacing}{% - \setstretch{\setspace@hangulfspace}% -} - -\newcommand{\hangulverbspacing}{% - \setstretch{\setspace@hangulverbspace}% -} - -\newcommand{\onehalfspacing}{% - \setstretch{1.25}% default - \ifcase \@ptsize \relax % 10pt - \setstretch {1.25}% - \or % 11pt - \setstretch {1.213}% - \or % 12pt - \setstretch {1.241}% - \fi -} - -\newcommand{\doublespacing}{% - \setstretch {1.667}% default - \ifcase \@ptsize \relax % 10pt - \setstretch {1.667}% - \or % 11pt - \setstretch {1.618}% - \or % 12pt - \setstretch {1.655}% - \fi -} - -%% adjust verbatim -%% if and only if [nofloatspacing] and [adjustverbatim] is on, -%% the verbatim will be the same to the main text linestretch. -%% if [hangul] it will adjust the linestretch to the quote or quotation -%% the other case, it will be 1.0, I hope. -%% -\if@adjustverbatim -\SetHangulVerbatimSpace{\setspace@hangulfspace}% -\else -\SetHangulVerbatimSpace{1.0} -\fi - -% ** Modification of the LaTeX command \@setsize. - -%---Stretch the baseline BEFORE calculating the strut size. This improves -% spacing below tabular environments etc., probably... -% Comments are welcomed. - -% GT: Sun 29 Sep 1996: Question: Is this code anywhere near correct -% since this part of LaTeX (in, eg, latex.ltx) has been greatly changed? - -% GT: Sun 29 Sep 1996: The meanings of the arguments to \@setsize -% appear to be (whatever these may signify) : -% current size; font baselineskip; ignored (!); and font size. - -% GT: Sun 29 Sep 1996: Note that \@setsize (in latest LaTeX, -% \@setfontsize, which is called by \@setsize) seems to be the only -% place in purely modern LaTeX where \@currsize is set, and ltxguide.cls -% seems to be the only file in the LaTeX base distribution that uses it! - -\def\@setsize#1#2#3#4{% - % Modified 1993.04.07--GDG per KPC - \@nomath#1% - \let\@currsize#1% - \baselineskip #2% - \baselineskip \baselinestretch\baselineskip - \parskip \baselinestretch\parskip - \setbox\strutbox \hbox{% - \vrule height.7\baselineskip - depth.3\baselineskip - width\z@}% - \skip\footins \baselinestretch\skip\footins - \normalbaselineskip\baselineskip#3#4} - -% ** Float and footnote adjustments to compensate for a change in the -% ** main text's line spacing. - -%---Increase the space between last line of text and footnote rule. -%\skip\footins 20pt plus4pt minus4pt - -%---Reset baselinestretch within floats and footnotes. - -% GT: Tue 23 Jan 1996: This is where the conflict with the combination -% of the color package and the figure environment used to occur. - -% Floats. - -% GT: Sat 28 Sep 1996: \@xfloat is the only place where \normalsize -% is still used in setspace.sty ! - -\if@singlespacefn -\let\latex@xfloat=\@xfloat -\def\@xfloat #1[#2]{% - \latex@xfloat #1[#2]% - \if@singlespacefn - \def\baselinestretch {\setspace@hangulfspace} - \else - \def\baselinestretch {\setspace@hangulspace} - \fi - \normalsize -} -\else\fi - -% Karnes: footnotesep for hangul -\if@adjustfootnotesep -\if@hangul -\if@singlespacefn - \ifcase \@ptsize \relax - \setlength\footnotesep{8.51 pt}% 10pt - \or - \setlength\footnotesep{9.6 pt}% 11pt - \or - \setlength\footnotesep{10.3 pt}% 12pt - \fi -\else -\fi -\else\fi -\else\fi - -% GT: Wed 24 Jan 1996: This footnote code was copied from LaTeX and -% modified rather naively. It had to be brought up to date, not only -% because of LaTeX's new color ability, but also because ther had -% been major changes to this code in LaTeX at least as far back as -% March 1992. - -% Normal, bottom of the page, footnotes. -% -% GT: Based HEAVILY on original LaTeX (2e) code. A standard hook would -% be MUCH preferred, so that LaTeX's footnote implementation needn't be -% copied each time it changes. -% -% GT: The \protected@edef requires at least the December 1994 LaTeX. -% This is precisely the kind of VERSION DEPENDENCY situation that -% cannot (AFAIK) be avoided, because LaTeX (2e) LACKS appropriate -% standard hooks and/or context markers. -\if@singlespacefn -\def\m@mold@footnotetext{\@memsetspace@footnotetext} -\renewcommand{\@footnotetext}[1]{\m@mold@footnotetext{#1}\m@mmf@prepare} -\long\def\@memsetspace@footnotetext#1{% - \insert\footins{% -% GT: Next line added. Hook desired here! - \@floatfnspacinghook\memucsfninterwordhook -% \def\baselinestretch {\setspace@hangulfspace}% -% \@SetFloatspaces - \reset@font\footnotesize - \interlinepenalty\interfootnotelinepenalty - \splittopskip\footnotesep - \splitmaxdepth \dp\strutbox \floatingpenalty \@MM - \hsize\columnwidth - \@parboxrestore - \protected@edef\@currentlabel{% - \csname p@footnote\endcsname\@thefnmark - }% - \color@begingroup - \@makefntext{% - \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% - \color@endgroup}} - -% Minipage footnotes. -\renewcommand{\@mpfootnotetext}[1]{% - \global\setbox\@mpfootins\vbox{% - \unvbox\@mpfootins -% GT: Next line added. Hook desired here! - \@floatfnspacinghook\memucsfninterwordhook -% \def\baselinestretch {\setspace@hangulfspace}% - \foottextfont \hsize\columnwidth \@parboxrestore - \protected@edef\@currentlabel{\csname p@mpfootnote\endcsname\@thefnmark}% - \color@begingroup - \@makefntext{% - \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% - \color@endgroup}} - -\else\fi - -% ** Line space environments. - -% A single spaced quote (say) is done by surrounding singlespace with quote. - -\newenvironment{singlespace}{% - \vskip \baselineskip - \setstretch {\setspace@singlespace}% - \vskip -\baselineskip -}{% - \par -} - -% GT (c/o Mark Olesen), Wed 15 April 1998. - -\newenvironment{singlespace*}{% - \setstretch {\setspace@singlespace}% - \vskip -\baselineskip -}{% - \vskip -0.5\baselineskip -} - -% spacing, doublespace and onehalfspace all are meant to INCREASE the -% spacing (i.e. calling onehalfspace from within doublespace will not -% produce a graceful transition between spacings) -% -% Next two definitions fixed for consistency with TeX 3.x - -% In order to use \newenvironment, while easily using same code for -% end of each environment, the code that used to be in \endspacing has -% been moved into a new (but internal) macro, \restore@spacing. - -\newcommand{\restore@spacing}{% - \par - \vskip \parskip - \vskip \baselineskip - \endgroup - \vskip -\parskip - \vskip -\baselineskip -} - -\newenvironment{spacing}[1]{% - \par - \begingroup % moved from \endspacing by PGBR 29-1-91 - \setstretch {#1}% -}{% - \restore@spacing -} - -% one and a half spacing is 1.5 x pt size -\newenvironment{onehalfspace}{% - \begingroup - \onehalfspacing -}{% - \restore@spacing -} - -% double spacing is 2 x pt size -\newenvironment{doublespace}{% - \begingroup - \doublespacing -}{% - \restore@spacing -} - -%% quote and quotation environment : Karnes. -\def\@quotespacinghook{% - \if@singlespacequote - \hangulfspacing% - \else - \hangulspacing% - \fi -} - -\renewenvironment{quotation}% - {\list{}{\listparindent 1.5em% - \itemindent \listparindent - \rightmargin \leftmargin - \parsep \z@ \@plus\p@}% -% \memhangulinterwordhook - \item[]% - \@quotespacinghook - }% - {\endlist - \if@singlespacequote\vskip-.2\onelineskip\fi} -\renewenvironment{quote}% - {\list{}{\rightmargin\leftmargin}% -% \memhangulinterwordhook - \item[] - \@quotespacinghook - }% - {\endlist - \if@singlespacequote\vskip-.2\onelineskip\fi} -\renewenvironment{symbols}{\list{}% - {\itemindent 0em \leftmargin 8em - \labelsep 1em \labelwidth 5em -% \memhangulinterwordhook - \let\makelabel\symbollabel}% - \@quotespacinghook - }% - {\endlist} - -%%%%%%%%%%%%%%%%%%%% -%%%% fix vertical spacing in the verse environment. mempatch 3.3 -\renewenvironment{verse}[1][\linewidth]{% - \refstepcounter{verse}% - \setcounter{poemline}{0}\refstepcounter{poemline}% - \setcounter{vslineno}{1}% - \let\\=\@vscentercr - \list{}{\itemsep \z@ - \itemindent -\vindent - \listparindent\itemindent - \parsep \stanzaskip - \ifdim #1<\linewidth %% short line - \rightmargin \z@ - \leftmargin \linewidth - \advance\leftmargin -#1\relax - \advance\leftmargin -0.5\leftmargin - \advance\leftmargin \vindent - \else - \ifdim #1>\linewidth %% long line - \rightmargin \z@ - \leftmargin \vindent - \else %% default - \rightmargin \leftmargin - \advance\leftmargin \vindent - \fi - \fi} - \item[]% - \@quotespacinghook}{\endlist} -%%%%%%%%%%%%%% - -\renewenvironment{altverse}% - {\starpatternfalse\patternfalse\altindenttrue\setcounter{vslineno}{1}% - \@quotespacinghook - }% - {\altindentfalse} - -\def\@verbatim{\the\every@verbatim - \trivlist - \if@adjustverbatim\hangulverbspacing\else\fi% - \item \relax - \if@minipage\else\vskip\parskip\fi - \@beginparpenalty \predisplaypenalty - \leftskip\@totalleftmargin\rightskip\z@ - \parindent\z@\parfillskip\@flushglue\parskip\z@ - \@@par - \def\par{% - \if@tempswa - \leavevmode\null\@@par\penalty\interlinepenalty - \else - \@tempswatrue - \ifhmode\@@par\penalty\interlinepenalty\fi - \fi}% - \def\@noitemerr{\@warning{No verbatim text}}% - \obeylines - \let\do\@makeother \dospecials - \verbatim@font - \everypar \expandafter{\the\everypar \unpenalty}% - \wrapright\the\afterevery@verbatim} - -%% Karnes : epigraph -\newcommand\epigraphspacinghook{\setstretch{1.0}} -\newcommand\epigraphspacing[1]{% - \renewcommand\epigraphspacinghook{\setstretch{#1}}% -} - -\renewcommand{\epigraph}[2]{\vspace{\beforeepigraphskip} - {\epigraphsize\begin{\epigraphflush}% - \epigraphspacinghook - \begin{minipage}{\epigraphwidth} - \@epitext{#1}\\ \@episource{#2} - \end{minipage}\end{\epigraphflush} - \vspace{\afterepigraphskip}}} - -\renewenvironment{epigraphs}{% - \vspace{\beforeepigraphskip}\begin{\epigraphflush} - \epigraphsize - \begin{minipage}{\epigraphwidth} - \epigraphspacinghook - \list{}% - {\itemindent\z@ \labelwidth\z@ \labelsep\z@ - \leftmargin\z@ \rightmargin\z@ - \let\makelabel\qitemlabel}}% - {\endlist\end{minipage}\end{\epigraphflush} - \vspace{\afterepigraphskip}} - -% GT: EMSH chose to omit display math part that follows. -% She wrote (see above) that the "altered spacing before and after displayed -% equations ... just looked too much". -% -% Fix up spacing before and after displayed math -% (arraystretch seems to do a fine job for inside LaTeX displayed math, -% since array and eqnarray seem to be affected as expected). -% Changing \baselinestretch and doing a font change also works if done here, -% but then you have to change @setsize to remove the call to @nomath) -% -% GT: The \belowdisplayskip line was mistyped; now fixed, courtesy of -% David Hull. -% -% GT: Brett Parnell has addressed EMSH's concern by replacing -% \baselinestretch by \displayskipstretch in displays, as follows. - -\everydisplay\expandafter{% - \the\everydisplay - \abovedisplayskip \displayskipstretch\abovedisplayskip - \belowdisplayskip \displayskipstretch\belowdisplayskip - \abovedisplayshortskip \displayskipstretch\abovedisplayshortskip - \belowdisplayshortskip \displayskipstretch\belowdisplayshortskip -} - -\endinput - -%%% EOF. diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/ob-koreanappendix.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/ob-koreanappendix.sty deleted file mode 100644 index 9c46eaa9c58..00000000000 --- a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/ob-koreanappendix.sty +++ /dev/null @@ -1,98 +0,0 @@ -%% File `ob-koreanappendix.sty` -%% -%% Copyright (c) 2007-2015 Kangsoo Kim -%% -%% 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 sub-style. part of oblivoir -%% \appendix (부록) -%% -\gdef\set@appendix@chapter{% - \renewcommand\thesection{\Alph{APPsection}}% - \renewcommand\thesubsection{\thesection.\arabic{APPsubsection}} - \ifanappendix - \counterwithout{APPsection}{APPchapter} - \counterwithin{APPsubsection}{APPsection} - \fi% - \counterwithin{figure}{APPsection}\counterwithin{table}{APPsection}% - \counterwithin{equation}{APPsection}% - \renewcommand\thefigure{\Alph{APPsection}.\arabic{figure}}% - \renewcommand\thetable{\Alph{APPsection}.\arabic{table}}% - \renewcommand\theequation{\Alph{APPsection}.\arabic{equation}}% - \set@appendix@chapsec -} - -\renewcommand{\@resets@pp}{% - \par - \@ppsavesec - \set@appendix@chapter - \restoreapp -} - -\renewcommand{\appendix}{\par - \set@appendix@chapter - \anappendixtrue -% \chapterstyle{appendixdefault}% - \if@AppendixTitleToToc - \addcontentsline{toc}{chapter}{\appendixname}% - \fi - \if@AttachAppendixTitleToSecnum - \addtodef{\secheadstyle}{}{\appendixrefname~}% - \fi -} - -\def\set@appendix@chapsec{% - %%% SECTION in APPENDIX - \renewcommand{\section}{% - \sechook\memucsinterwordhook% - \@startsection{section}{1}% level 1 - {\secindent}% heading indent - {\beforesecskip}% skip before the heading - {\aftersecskip}% skip after the heading - {\normalfont\secheadstyle}} % font - % - \def\M@sect##1##2##3##4##5##6[##7][##8]##9{% - \ifheadnameref\M@gettitle{##8}\else\M@gettitle{##7}\fi - \ifnum ##2>\c@secnumdepth - \let\@svsec\@empty - \else - \refstepcounter{APP##1}% - \protected@edef\@svsec{\@seccntformat{##1}\relax}% - \fi - \@tempskipa ##5\relax - \ifdim \@tempskipa>\z@ - \begingroup - ##6{% - \@hangfrom{\hskip ##3\relax\@svsec}% - \interlinepenalty \@M ##9\@@par}% - \endgroup - \csname ##1mark\endcsname{##8}% - \addcontentsline{toc}{##1}{% - \ifnum ##2>\c@secnumdepth \else - \protect\numberline{\noexpand\protect\csname the##1\endcsname}% - \fi - ##7}% - \else - \def\@svsechd{% - ##6{\hskip ##3\relax - \@svsec ##9}% - \csname ##1mark\endcsname{##8}% - \addcontentsline{toc}{##1}{% - \ifnum ##2>\c@secnumdepth \else - \protect\numberline{\csname the##1\endcsname}% - \fi - ##7}}% - \fi - \expandafter\protected@edef - \expandafter\@currentlabel - \expandafter{\csname the##1\endcsname}% - \@xsect{##5}}% -} - -\endinput diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/ob-nokoreanappendix.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/ob-nokoreanappendix.sty deleted file mode 100644 index 69044f5eba1..00000000000 --- a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/ob-nokoreanappendix.sty +++ /dev/null @@ -1,96 +0,0 @@ -%% File `ob-nokoreanappendix.sty` -%% -%% Copyright (c) 2007-2013 Kangsoo Kim -%% -%% 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 sub-style. part of oblivoir -%% \appendix (부록) : nokorean -%% -\gdef\set@appendix@chapter{% - \ifanappendix\counterwithout{section}{chapter}\fi% - \setcounter{section}{0} - \setcounter{chapter}{0} - \renewcommand\thesection{\Alph{section}}% - \counterwithin{figure}{section}\counterwithin{table}{section}% - \counterwithin{equation}{section}% - \renewcommand\thefigure{\Alph{section}.\arabic{figure}}% - \renewcommand\thetable{\Alph{section}.\arabic{table}}% - \renewcommand\theequation{\Alph{section}.\arabic{equation}}% - \set@appendix@chapsec -} - -\renewcommand{\@resets@pp}{% - \par - \@ppsavesec - \set@appendix@chapter - \restoreapp -} - -\renewcommand{\appendix}{\par - \set@appendix@chapter - \anappendixtrue -% \chapterstyle{appendixdefault}% - \if@AppendixTitleToToc - \addcontentsline{toc}{chapter}{\appendixname}% - \fi - \if@AttachAppendixTitleToSecnum - \addtodef{\secheadstyle}{}{\appendixrefname~}% - \fi -} - -\def\set@appendix@chapsec{% - %%% SECTION in APPENDIX - \renewcommand{\section}{% - \sechook - \@startsection{section}{1}% level 1 - {\secindent}% heading indent - {\beforesecskip}% skip before the heading - {\aftersecskip}% skip after the heading - {\normalfont\secheadstyle}} % font - % - \def\M@sect##1##2##3##4##5##6[##7][##8]##9{% - \ifheadnameref\M@gettitle{##8}\else\M@gettitle{##7}\fi - \ifnum ##2>\c@secnumdepth - \let\@svsec\@empty - \else - \refstepcounter{##1}% - \protected@edef\@svsec{\@seccntformat{##1}\relax}% - \fi - \@tempskipa ##5\relax - \ifdim \@tempskipa>\z@ - \begingroup - ##6{% - \@hangfrom{\hskip ##3\relax\@svsec}% - \interlinepenalty \@M ##9\@@par}% - \endgroup - \csname ##1mark\endcsname{##8}% - \addcontentsline{toc}{##1}{% - \ifnum ##2>\c@secnumdepth \else - \protect\numberline{\noexpand\protect\csname the##1\endcsname}% - \fi - ##7}% - \else - \def\@svsechd{% - ##6{\hskip ##3\relax - \@svsec ##9}% - \csname ##1mark\endcsname{##8}% - \addcontentsline{toc}{##1}{% - \ifnum ##2>\c@secnumdepth \else - \protect\numberline{\csname the##1\endcsname}% - \fi - ##7}}% - \fi - \expandafter\protected@edef - \expandafter\@currentlabel - \expandafter{\csname the##1\endcsname}% - \@xsect{##5}}% -} - -\endinput diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/ob-toclof.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/ob-toclof.sty deleted file mode 100644 index 5ef56b463fb..00000000000 --- a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/ob-toclof.sty +++ /dev/null @@ -1,144 +0,0 @@ -%% File `ob-toclof.sty` -%% -%% Copyright (c) 2007-2013 Kangsoo Kim -%% -%% 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 substyle. part of oblivoir, -%% -%% \newlistof{listoffigures}{lof}{\listfigurename} -%% \kill@lastcounter{lofdepth} -%% \newlistentry[section]{figure}{lof}{0} -%% \cftsetindents{figure}{0em}{2.3em} -%% -\if@toclofentry\else -\renewcommand{\put@bsintoc}{% - \ifadd@bstotoc - \ifnumber@bs\else - \phantomsection - \addcontentsline{toc}{section}{\abstractname} - \fi - \fi} - -\def\addappheadtotoc{\addcontentsline{toc}{section}{\appendixtocname}} - -\renewcommand{\newlistof}[3]{% - \@namedef{ext@#2}{#2} - \@ifundefined{c@#2depth}{\newcounter{#2depth}}{} - \setcounter{#2depth}{1} - \@namedef{#2mark}{\markboth{#3}{#3}} - \@namedef{#1}{\@ifstar{\@nameuse{@star#2}}{\@nameuse{@plain#2}}} - \@namedef{@star#2}{% - \ensureonecol - \par - \begingroup -%%% \parindent\z@ \parskip\cftparskip - \@nameuse{@#2maketitle} - \@starttoc{#2}% - \endgroup - \restorefromonecol} - \@namedef{@plain#2}{% - \ensureonecol - \par - \begingroup -%%% \parindent\z@ \parskip\cftparskip - \@nameuse{@#2maketitle} - \phantomsection - \addcontentsline{toc}{section}{#3} - \@starttoc{#2}% - \endgroup - \restorefromonecol} - \@namedef{@#2maketitle}{% - \@nameuse{#2headstart} - {\parindent\z@ \parskip\cftparskip - \interlinepenalty\@M - \@nameuse{print#2nonum}% - \@nameuse{print#2title}{#3}% - \@nameuse{#2mark}% - \thispagestyle{chapter}% - \@nameuse{after#2title} - } - \@afterheading} -% \@namedef{#2headstart}{\chapterheadstart} -% \@namedef{after#2title}{\afterchaptertitle} -% \@namedef{print#2nonum}{\printchapternonum} -% \@namedef{print#2title}##1{\printchaptertitle{##1}} -} % end \newlistof - -\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 - \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{\hchaptertitlehead}\f@rtoc}% - \memappchapinfo{\thechapter}{\f@rtoc}{\f@rhdr}{#2}% - \else - \addcontentsline{toc}{section}{% - \protect\chapternumberline{\hchaptertitlehead}\f@rtoc}% - \memchapinfo{\hchaptertitlehead}{\f@rtoc}{\f@rhdr}{#2}% - \fi - \else - \addcontentsline{toc}{section}{\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 -} - -\newlistof{tableofcontents}{toc}{\contentsname} -\newlistof{listoffigures}{lof}{\listfigurename} -\newlistof{listoftables}{lot}{\listtablename} - -\fi % of \if@toclofentry - -\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 787df1d0dbf..31a600349ec 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 @@ -1,6 +1,6 @@ %% File `memhangul-x.sty` %% -%% (C) Copyright 2006-2015 Kangsoo Kim +%% (C) Copyright 2006-2020 Kangsoo Kim %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3c @@ -14,8 +14,8 @@ %% part of oblivoir v2 %% \NeedsTeXFormat{LaTeX2e} -\def\filedate{2015/10/05} -\def\fileversion{11.10} +\def\filedate{2020/02/05} +\def\fileversion{11.11} \ProvidesPackage{memhangul-x}[\filedate Hangul Typography for (x)oblivoir] %\typeout{Hangul Typography for (x)oblivoir} @@ -37,6 +37,7 @@ %\newif\if@dvips{\@dvipsfalse} \DeclareOption{dvips}{\DisabledOption{dvips}} \DeclareOption{strictcharcheck}{\DisabledOption{strictcharcheck}} +\DeclareOption{adjustmath}{\DisabledOption{adjustmath}} %%%% active options \newif\if@hsspace\@hsspacetrue @@ -55,8 +56,8 @@ \DeclareOption{nonfrench}{\@nonfrenchtrue} \newif\if@hanja\@hanjafalse \DeclareOption{hanja}{\@hanjatrue} -\newif\if@mathdisp\@mathdispfalse -\DeclareOption{adjustmath}{\@mathdisptrue} +\newif\if@mathdisp\@mathdisptrue +\DeclareOption{mathdisp}{\@mathdispfalse} \newif\if@arabicfrontmatter{\@arabicfrontmatterfalse} \DeclareOption{arabicfront}{\@arabicfrontmattertrue} @@ -80,6 +81,7 @@ \DeclareOption{nounfonts}{\PassOptionsToPackage{\CurrentOption}{xetexko-var}} \DeclareOption{nanum}{\PassOptionsToPackage{\CurrentOption}{xetexko-var}} \DeclareOption{hcr}{\PassOptionsToPackage{\CurrentOption}{xetexko-var}} +\DeclareOption{noto}{\PassOptionsToPackage{\CurrentOption}{xetexko-var}} \else\ifluatex %%% luatexko options \DeclareOption{gremph}{\PassOptionsToPackage{\CurrentOption}{xob-font}} @@ -93,6 +95,7 @@ \DeclareOption{nounfonts}{\PassOptionsToPackage{\CurrentOption}{xob-font}} \DeclareOption{nanum}{\PassOptionsToPackage{\CurrentOption}{xob-font}} \DeclareOption{hcr}{\PassOptionsToPackage{\CurrentOption}{xob-font}} +\DeclareOption{noto}{\PassOptionsToPackage{\CurrentOption}{xob-font}} \else %%% pdftex options \ifPDFTeX @@ -106,6 +109,7 @@ \DeclareOption{nounfonts}{\DisabledOption{nounfonts}} \DeclareOption{nanum}{\DisabledOption{nanum}} \DeclareOption{hcr}{\DisabledOption{hcr}} +\DeclareOption{noto}{\DisableOption{noto}} \fi \fi\fi @@ -143,7 +147,7 @@ } \else \ifluatex - \RequirePackage{luatexko} + \@ifpackageloaded{luatexko}{}{\RequirePackage{luatexko}} \RequirePackage{xob-font} \RequirePackage{xob-dotemph} \else\ifxetex @@ -339,7 +343,7 @@ \if@hsspacenoquote\else\adjustquotespacing\fi \else \RequirePackage{memucs-setspace} - \linespread{1.333} + \linespread{1.33} \fi %\SetHangulspace{1.333}{1.1} 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 27768dbda6c..f8acc43a231 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-2014 Kangsoo Kim +%% Copyright (c) 2007-2020 Kangsoo Kim %% Copyright (c) 2013 Kihwang Lee %% %% This work may be distributed and/or modified under the @@ -17,7 +17,7 @@ %% 2013.08.26 %% \ProvidesPackage{xetexko-var} - [2014/06/12 v0.13 Korean Typesetting under XeTeX] + [2020/02/05 v0.14 Korean Typesetting under XeTeX] %%% common options for xob-font \DeclareOption{gremph}{\PassOptionsToPackage{\CurrentOption}{xob-font}} @@ -35,8 +35,8 @@ \DeclareOption{manualfontspec}{\@extfontspectrue} %%% unfonts -\DeclareOption{unfonts}{\PassOptionsToPackage{\CurrentOption}{xob-font}} -\DeclareOption{nounfonts}{\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}} \ProcessOptions\relax @@ -44,7 +44,9 @@ %%% xetexko sub-styles \RequirePackage{xetexko-space} \RequirePackage{xetexko-josa} +\if@lwarp\else \RequirePackage{xetexko-vertical} +\fi %%% xoblivoir sub-styles \RequirePackage{xob-dotemph} @@ -54,7 +56,7 @@ \PackageWarning{xetexko-var}{Load xetexko-font and configure Korean Fonts manually!}{} \else %%% We will never use xetexko/luatexko's unfonts option. - \newif\if@unfonts\@unfontsfalse +% \newif\if@unfonts\@unfontsfalse \RequirePackage{xob-font} \fi 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 index 16095498f7b..cab543826df 100644 --- 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 @@ -1,12 +1,12 @@ %% xob-font.sty %% -%% Copyright (c) 2014 Kangsoo Kim -%% Copyright (c) 2017 Kihwang Lee +%% Copyright (c) 2014-2020 Kangsoo Kim +%% Copyright (c) 2017-2020 Kihwang Lee %% %% 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 +%% The latest version otef 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. @@ -15,7 +15,7 @@ %% oblivoir hangul/hanja font setting. %% part of oblivoir %% -\ProvidesPackage{xob-font}[2017/02/03 v0.7 select hangul/hanja fonts for oblivoir] +\ProvidesPackage{xob-font}[2020/02/04 v0.8 select hangul/hanja fonts for oblivoir] %%% obsolete options: retain \if@.. conditions for backward compatibility \newif\if@nowin\@nowinfalse @@ -118,9 +118,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, } + \tl_put_right:Nn \_font_feature_str + { + BoldFont = \_bold_font_name, + BoldItalicFont = \_bold_font_name, + ItalicFont = \_ital_font_name, +% FontFace = {bx}{n} {Font = {\_bold_font_name}}, +% FontFace = {bx}{it} {Font = {\_bold_font_name}}, +% FontFace = {m}{up} {Font = {\_regu_font_name}} + } } \bool_if:nF \in_hanja_mode @@ -200,8 +206,14 @@ \treat_feature_name_options { #4 } [ #5 ] } +% \tl_set:Nx \l_tmpa_tl { \_font_feature_str, \_additional_feature_str } + \cs:w set #1 hangulfont \cs_end: - [ \_font_feature_str, \_additional_feature_str ] { \_regu_font_name } + [ \_font_feature_str, \_additional_feature_str, + FontFace = {bx}{n}{ Font={\_bold_font_name} , \_font_feature_str }, + FontFace = {m}{up}{ Font={\_regu_font_name} , \_font_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. @@ -639,17 +651,17 @@ \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@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 @@ -659,19 +671,21 @@ \fi \setkosansfont(NanumGothic)(*Bold)(*) \setkomonofont(NanumGothic) -\fi - +\else %%% [hcr] adds [Script=Hangul] feature automatically. \if@hcrfonts - \setkomainfont(HCRBatangLVT)(*-Bold)(*) - \setkosansfont(HCRDotumLVT)(*-Bold)(*) + \setkomainfont(HCRBatangLVT)(HCRBatangLVT-Bold)(HCRBatangLVT) + \setkosansfont(HCRDotumLVT)(HCRDotumLVT-Bold)(HCRDotumLVT) \setkomonofont(HCRDotumLVT) -\fi +\else +\setkomainfont(UnBatang.ttf)(UnBatangBold.ttf)(UnGraphic.ttf) +\fi\fi \endinput %%% end of file `xob-font.sty` %% CHANGES +%% v0.8 : suport fontspec’s FontFace feature. %% v0.7 : Use \sys_if_engine_xetex and \sys_if_engine_luatex instead of xetex_if_engine and luatex_if_engine to be compatible with latest l3kernel. %% v0.6 : HCR auto insert Script=Hangul, HAN disabled %% v0.5 : [nanum] sets Bold, [nanumx] sets ExtraBold for NanumMyeongjo diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-lwarp.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-lwarp.sty new file mode 100644 index 00000000000..bbfea75956d --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-lwarp.sty @@ -0,0 +1,177 @@ +%% xob-lwarp.sty +%% +%% part of xoblivoir package bundle +%% 2020/02/09 +%% +\ProvidesPackage{xob-lwarp} + +\if@lwarp + \def\makerunningwidth#1#2{% + \expandafter\let\csname #1headrunwidth\endcsname\textwidth + \expandafter\let\csname #1footrunwidth\endcsname\textwidth + } + \def\makeheadposition#1#2#3#4#5{} + \def\copypagestyle#1#2{\makepagestyle{#1}} + \AtBeginDocument{ + \def\@partapp{Part} + \def\@chapapp{Chapter} + } + \AtEndPreamble{ + \HTMLLanguage{\LWARPlan} + } + + \let\if@bsstyle\iftrue + \let\abstitlestyle\textbf +% + %%%% copy-paste from xetexko-vertical.sty + \ifxetex + % do not veticalize headline/footline + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname selectfont\endcsname\relax % plain + \protected\def\verticaltypesetting{% + \dimen@\hsize\hsize\vsize\vsize\dimen@ + \edef\plainoutput{\unexpanded{\dimen@\hsize\hsize\vsize\vsize\dimen@}% + \unexpanded\expandafter{\plainoutput}}% + \def\pagebody{\setbox\z@\vbox to\hsize{\boxmaxdepth=\maxdepth + \pagecontents}\xetexko@rotatebox\z@\box\z@}% + \maxdepth\z@ \XK@vertical@spacing} + \else % latex + \protected\def\verticaltypesetting{% + \AtBeginDocument{\XK@vertical@spacing}% + \maxdepth\z@ + \dimen@\textwidth + \textwidth\textheight + \textheight\dimen@ + \edef\@outputpage{% + \unexpanded{\xetexko@rotatebox\@outputbox\textwidth\textheight}% + \unexpanded\expandafter{\@outputpage}}% + } + \@onlypreamble\verticaltypesetting + \fi + + \def\xetexko@rotatebox#1{% + \ifvbox#1\count@\@ne\else\count@\z@\fi + \dimen@\wd#1\dimen@ii\dimexpr\ht#1+\dp#1\relax + \setbox#1\ifnum\count@=\@ne + \vbox to\dimen@\bgroup\hbox to\dimen@ii\bgroup\hfil\else + \hbox to\dimen@ii\bgroup\vbox to\dimen@\bgroup\fi + \wd#1\z@ \ht#1\z@ \dp#1\z@ + \special{x:gsave}\special{x:rotate -90}\box#1\special{x:grestore}% + \ifnum\count@=\@ne\egroup\vfil\else\vfil\egroup\hfil\fi\egroup + } + + % users can declare vertical EM size, which might be different from 1em. + \newdimen\verticalem + + \def\XK@vertical@spacing{% + \ifnum\verticalem > \z@ + \def\XK@vert@half@em{.5\verticalem}% + \else + \def\XK@vert@half@em{.5em}% + \fi + \let\xk@horiz@precjkopenparen \precjkopenparen + \let\xk@horiz@precjkcloseparen\precjkcloseparen + \let\xk@horiz@precjkfullstop \precjkfullstop + \ifx\precjkopenparen\relax\else + \def\precjkopenparen {\leavevmode + \ifx\empty\xetexkocharraise\else\raise\xetexkocharraise\fi + \hbox + \ifx\XKdisablecjksymbolspacing\empty + \bgroup + \else + to\XK@vert@half@em \bgroup \hss + \fi + }% + \fi + \ifx\precjkcloseparen\relax\else + \def\precjkcloseparen{\leavevmode + \ifx\empty\xetexkocharraise\else\raise\xetexkocharraise\fi + \hbox + \ifx\XKdisablecjksymbolspacing\empty\else + to\XK@vert@half@em + \fi + \bgroup}% + \fi + \ifx\precjkfullstop\relax\else + \def\precjkfullstop {\leavevmode + \ifx\empty\xetexkocharraise\else\raise\xetexkocharraise\fi + \hbox + \ifx\XKdisablecjksymbolspacing\empty\else + to\XK@vert@half@em + \fi + \bgroup}% + \fi + \spaceskip\XK@vert@half@em plus\XK@vert@half@em\relax + \parindent\XK@vert@half@em \parindent2\parindent + } + + \protected\def\vertical#1{% + \setbox\z@\vbox\bgroup + \hsize=#1% + \leftskip\z@ + \rightskip\z@ + \parindent\z@ + \everypar{}% + \XK@vertical@spacing + } + + \protected\def\endvertical{% + \egroup + \dimen@\dimexpr\ht\z@+\dp\z@\relax + \dimen@ii\dimexpr\wd\z@-\dp\z@\relax + \setbox\z@\hbox{% + \kern\dimexpr\ht\z@+0.5em\relax + \wd\z@\z@ + \ht\z@\z@ + \dp\z@\z@ + \special{x:gsave}% + \special{x:rotate -90}% + \box\z@ + \special{x:grestore}}% + \wd\z@\dimen@ + \ht\z@\z@ + \dp\z@\z@ + \leavevmode + \raise\dimen@ii\box\z@ + } + + % horizontal box inside vertical typesetting + \protected\def\horizontal#1{% + \setbox\z@\vbox\bgroup + \hsize=#1% + \leftskip \z@ + \rightskip\z@ + \parindent\z@ + \everypar {}% + \spaceskip \fontdimen2\font + plus \fontdimen3\font + minus\fontdimen4\font + \ifdefined\xk@horiz@precjkopenparen + \let\precjkopenparen \xk@horiz@precjkopenparen + \let\precjkcloseparen\xk@horiz@precjkcloseparen + \let\precjkfullstop \xk@horiz@precjkfullstop + \fi + } + \protected\def\endhorizontal{% + \egroup + \dimen@\dimexpr\ht\z@+\dp\z@\relax + \dimen@ii\dimexpr\wd\z@+.5ex\relax + \setbox\z@\hbox\bgroup + \wd\z@\z@\ht\z@\z@\dp\z@\z@ + \special{x:gsave}% + \special{x:rotate 90}% + \box\z@ + \special{x:grestore}% + \egroup + \wd\z@\dimen@ + \ht\z@\dimen@ii + \dp\z@\z@ + \fboxsep=-\fboxrule + \leavevmode\lower.5ex\box\z@ + } + + \protected\def\vertlatin#1{\leavevmode\lower0.5ex\hbox{\latinmarks #1}} + \fi % end of vertical +\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 deleted file mode 100644 index bff68d1565e..00000000000 --- a/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-base.cls +++ /dev/null @@ -1,603 +0,0 @@ -%% File `oblivoir.cls` -%% -%% (C) Copyright 2006-2015 Kangsoo Kim -%% -%% 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. -%% -\ProvidesClass{oblivoir-base} - [2015/10/19 v0.8.1 article-like class to typeset UTF-8 korean using memoir.] -%\typeout{oblivoir requires memoir, dhucs, and memhangul. 2008/10/23.} - -%%% Acknowledgements: -%%% Many thanks to -%%% ischo who provided a computer, place and time for developing and testing. -%%% smcho, ischo, synapse and beomsukhyun who requested functional improvements. -%%% progress who wrote a nice introductory document. -%%% and all the people who do or do not use this class. -%%% -%%% Options: -%%% nokorean : 영문용 -%%% twoside : twoside -%%% openright -%%% kosection : 절 표제항의 한글화 -%%% nobookmarks : 북마크 만들지 않음 -%%% dvips : dvips 작업용 옵션 -%%% 10.5pt : 10.5pt 본문 폰트 사이즈. -%%% footnote : 한글식 각주 모양 사용. -%%% tocentry : toc 등을 한 수준 위에서 처리. -%%% itemph : 강조를 itshape로 처리함. -%%% finemath : pass finemath option to dhucs. made default. -%%% nofinemath : no finemath. -%%% strictcharcheck : strictcharcheck to dhucs. -%%% microtype : load microtype and apply margin-kerning & font-expansion -%%% romanfixed : 10.5pt 옵션 사용시 영문 글꼴은 10pt로 고정. -%%% faht,fawd : flowfram과 함께 쓸 때 임의의 페이지 사이즈. -%%% moreverb : pdfmtricks와 함께 쓰기 위해 moreverb를 로드. -%%% 기타 옵션 : memoir 옵션 사용. -%%% default는 oneside, openany, kosection false, pdfbookmark임. -%%% subfigure : load old subfigure packaged -%%% -%%% 한글 폰트 관련: -%%% unfonts-type-1 -%%% - -%\RequirePackage{etex} -\RequirePackage{xkeyval} - -\newif\ifnokorean\nokoreanfalse -\DeclareOptionX{nokorean}{\nokoreantrue} -\newif\iftwosidedoc\twosidedocfalse -\DeclareOptionX{twoside}{\twosidedoctrue} -\newif\ifopenrightdoc\openrightdocfalse -\DeclareOptionX{openright}{\openrightdoctrue} -\newif\ifkosection\kosectionfalse -\DeclareOptionX{kosection}{\kosectiontrue} -\newif\ifnobookmarks\nobookmarksfalse -\DeclareOptionX{nobookmarks}{\nobookmarkstrue} -\newif\ifhyperrefwithlyx\hyperrefwithlyxfalse -\DeclareOptionX{lyxhyper}{\hyperrefwithlyxtrue}{\hyperrefwithlyxfalse} -\newif\if@dvips\@dvipsfalse -\DeclareOptionX{dvips}{\@dvipstrue} -\newif\if@tendotfive\@tendotfivefalse -\DeclareOptionX{10.5pt}{\@tendotfivetrue} -\newif\if@koreanfn\@koreanfnfalse -\DeclareOptionX{footnote}{\@koreanfntrue} -\newif\if@toclofentry\@toclofentryfalse -\DeclareOptionX{tocentry}{\@toclofentrytrue} -\newif\if@itemph\@itemphfalse -\DeclareOptionX{itemph}{\@itemphtrue} -\newif\if@resizelatin\@resizelatintrue -\DeclareOptionX{romanfixed}{\@resizelatinfalse} -\newif\if@chapter\@chapterfalse -\DeclareOptionX{chapter}{\@chaptertrue\@toclofentrytrue} -\newif\if@finemath\@finemathtrue -\DeclareOptionX{finemath}{\@finemathtrue} -\DeclareOptionX{nofinemath}{\@finemathfalse} -\newif\if@microtype\@microtypefalse -\DeclareOptionX{microtype}{\@microtypetrue} -\newif\if@subfigure\@subfigurefalse -\DeclareOptionX{subfigure}{\@subfiguretrue} -\DeclareOptionX{strictcharcheck}{\PassOptionsToPackage{\CurrentOption}{memhangul-ucs}} - -\newif\if@moreverb\@moreverbfalse -\DeclareOptionX{moreverb}{\@moreverbtrue} -\newif\if@foursix\@foursixfalse\newlength\fa@setheight\newlength\fa@setwidth -\DeclareOptionX{faht}[]{\fa@setheight=#1\@foursixtrue} -\DeclareOptionX{fawd}[]{\fa@setwidth=#1\@foursixtrue} - -\DeclareOptionX{figtabcapt}[]{\PassOptionsToPackage{\CurrentOption}{memhangul-ucs}} - -%%% 2013-09-26 -%%% 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} - -\newif\if@FULLROOM\@FULLROOMfalse -\DeclareOptionX{moreroom}{\@FULLROOMtrue} - -\DeclareOptionX*{% - \PassOptionsToClass{\CurrentOption}{memoir}% -} -\ProcessOptionsX - -%%% moreroom, reported by Juho Lee, 2013-09-26. -%%% 2015-08-01: LaTeX will do auto-alloc. -%\if@FULLROOM -%\def\alloc@#1#2#3#4#5% -% {\ifnum\count1#1<#4% make sure there's still room -% \allocationnumber\count1#1 -% \global\advance\count1#1\@ne -% \global#3#5\allocationnumber -% \wlog{\string#5=\string#2\the\allocationnumber}% -% \else\ifnum#1<6 -% \def\etex@dummy@definition{}% <-- code added -% \begingroup \escapechar\m@ne -% \expandafter\alloc@@\expandafter{\string#2}#5% -% \else\errmessage{No room for a new #2}\fi\fi -% } -%\fi - -%% expl3 -\RequirePackage{xparse,expl3} - -%%% moreverb : 2008/10/23 -\if@moreverb - \RequirePackage{moreverb} -\fi - -%%% dvips -\ifnokorean\else -\if@dvips - \PassOptionsToPackage{dvips}{memhangul-ucs} -\fi\fi - -%%% memoir/memhangul-ucs 로드. -\if@chapter - \LoadClass[openany]{memoir} -\else -\iftwosidedoc - \LoadClass[article,openany]{memoir} -\else - \LoadClass[article,openany,oneside]{memoir} -\fi -\fi -%%% flowfram confict : 2008/10/23 -\if@foursix - \newcommand*{\fa@dblfoursix}{\stockheight=\fa@setheight \stockwidth=\fa@setwidth} - \fa@dblfoursix -\fi - -\if@AMSmath -\RequirePackage{amsmath,amssymb} -\fi - -%%% -\ifopenrightdoc\openright\fi -\newcommand\finemath@status{\if@finemath finemath\else\fi} -\ifnokorean\else - \if@itemph - \RequirePackage[nonfrench,interworddefault,hangulpagestyle,\finemath@status]{memhangul-ucs} - \else - \RequirePackage[nonfrench,interworddefault,hangulpagestyle,gremph,\finemath@status]{memhangul-ucs} - \fi -\fi -\if@chapter\else -\counterwithout{section}{chapter} -\fi - -%%% hfontspec -\ifnokorean\let\usehangulfontspec\@gobble\fi - -%%% korean fontsettings -\ifnokorean\else - \if@unfont - \RequirePackage{hfontsel} - \usehangulfontspec{obut} - \else - \RequirePackage{nanumfontsel} - \usehangulfontspec{nanum} - \fi - \ifpdf - \input glyphtounicode\pdfgentounicode=1 - \RequirePackage{dhucs-cmap} - \else\fi -% \ifpdf -% \RequirePackage[ps]{hfontsel} % ut**를 기본 글꼴로 -% \usehangulfontspec{obut} -% \pdfmapfile{=unttf-pdftex-dhucs.map} % 그래도 혹시 모르므로 -%%%% dhucs-cmap은 여기서 로드한다. -% \RequirePackage{dhucs-cmap} % ut**가 기본글꼴일 때는 disable? -% \input glyphtounicode\pdfgentounicode=1 -% \else -% \if@dvips -% \RequirePackage[ps]{hfontsel} % ut**를 기본 글꼴로 -% \usehangulfontspec{obut} -% \else -% \RequirePackage{hfontsel} % 아무 옵션도 없다면 un** -% \usehangulfontspec{obun} -% \RequirePackage{dhucs-cmap} % un**일 때 -% \fi -% \fi -\fi - -%%% Gremph -\if@itemph\else - \ifnokorean\else -% \ifpdf - \if@unfont - \SetGremphFonts{outgr}{outgt} - \else - \SetGremphFonts{nanumgt}{nanumgt} - \fi -% \else -% \if@dvips -% \SetGremphFonts{utgr}{utgt} -% \fi -% \fi - \fi -\fi - -%%% microtype -\ifpdf - \if@microtype - \RequirePackage[expansion=all]{microtype} - % for more elaborated operation, document specific config is needed. - % expansion works for ONE fontset only; so, basictext + LUC. -% \DeclareMicrotypeSet{dhucsmicro} -% { encoding = {LUC,OT1,T1,LY1,OT4,QX,T5}, -% % family = {rm*,sf*}, -% % series = {md*}, -% % size = {normalsize,footnotesize,small,large} -% } -% \UseMicrotypeSet[expansion]{dhucsmicro} - \fi -\else - \if@microtype -% \ClassWarningNoLine{oblivoir}{no pdflatex runs! microtype option is ignored.}{} - \RequirePackage{microtype} - \fi -\fi - -%%% 기본 자간 -\newdimen\ob@hu % 1jw=.95em, 1hu=1/16jw. see hfontspec.oblivoir -\ifnokorean\ob@hu=\z@\else\ob@hu=\dhucs@hu\fi -% 기본 자간 설정은 hfontspec.obu{n/t}. -%%%\newdimen\ob@hangulglue\ob@hangulglue=-.55\ob@hu -%%%\interhchar{\ob@hangulglue} - -\def\ob@DEFAULTskips{% - \def\memucshangulskips{% -% \interhchar{\ob@hangulglue}% - }% - \def\memucsinterwordskip{% - \spaceskip = .390\BASE@FONTsize plus .1\BASE@FONTsize minus .1\BASE@FONTsize - \if@nonfrench - \xspaceskip = .432\BASE@FONTsize plus .11\BASE@FONTsize minus .1\BASE@FONTsize - \fi - }% - \def\memucsinterwordchapterskip{% - \spaceskip = .41\BASE@FONTsize plus .11\BASE@FONTsize minus .1\BASE@FONTsize - \if@nonfrench - \xspaceskip = .55\BASE@FONTsize plus .1\BASE@FONTsize minus .1\BASE@FONTsize - \fi - }% -} - -\let\DEFAULTskips\ob@DEFAULTskips -\def\ob@thinthinspace{\hskip2\ob@hu} -\def\ob@onethirdspace{\hskip5\ob@hu} - -\ifnokorean\else -\if@koreanfn -%%% footnote setting -%%% 99)에 해당하는 박스 길이를 구한 다음 -\newsavebox\mytmpbox\sbox\mytmpbox{\footnotesize 99)\ } -%%% 각주 번호 박스를 길이에 대하여 오른쪽 정렬함. 두 자리 -%%% 각주 번호 기준으로 오른쪽 정렬되도록 만든다. -\footmarkstyle{\makebox[\wd\mytmpbox][r]{#1)\ }} -\setlength\footmarksep{\wd\mytmpbox} -\setlength\footmarkwidth{0pt} -\setlength\footparindent{0pt} -%\ifnokorean\else -\SetFnmark{\textsuperscript}{\textsuperscript{)}} -%\fi -\fi\fi -%%% footnotes and floats. codes from memmanadd.pdf -\renewcommand*{\footnoterule}{\kern-3pt\vfill - \hrule width 0.4\columnwidth \kern 2.6pt} -\setlength{\skip\footins}{1.3\onelineskip} - -%%% toc 등의 레이아웃. -\if@chapter\else -\renewcommand\chaptitlefont{\Large\bfseries} -\renewcommand\printchapternonum{} -\renewcommand\printchaptertitle[1]{\chaptitlefont #1} -\setlength\afterchapskip{\onelineskip} -\setlength\beforechapskip{1.5\onelineskip} -\fi - -\setlength\cftsectionindent{0pt} -\ifnokorean\else -\setlength\cftsectionnumwidth{1.8em} -\setlength\cftsubsectionindent{1.8em} -\setlength\cftsubsectionnumwidth{2.5em} -\fi -\if@chapter\else -\let\cftchapterindent\cftsectionindent -\let\cftchapternumwidth\cftsectionnumwidth -\let\cftbeforechapterskip\cftbeforesectionskip -\fi - -\renewcommand\cftsectionpresnum{\hfill} -\renewcommand\cftsectionaftersnum{\hskip.8em} - -%%%% kscntformat definition moved to memhangul-ucs. -%%%% HLaTeX의 \kscntformat 명령을 흉내냄 -%%%% \kscntformat{section}{제}{절} 형식으로 쓴다. -%\newsavebox{\tmp@XXbox} -%\newdimen\tmp@XXdim -%\def\kscntformat#1#2#3{% -% \sbox{\tmp@XXbox}{#2\expandafter\number\csname c@#1\endcsname#3}% -% \setlength\tmp@XXdim{\wd\tmp@XXbox}\advance\tmp@XXdim by1em% -% \expandafter\def\csname the#1\endcsname{#2\expandafter\number\csname c@#1\endcsname#3}% -% \expandafter\renewcommand\csname cft#1numwidth\endcsname{\tmp@XXdim}% -% \expandafter\renewcommand\csname cft#1presnum\endcsname{}% -% \expandafter\renewcommand\csname cft#1aftersnum\endcsname{}% -%} -% -%\ifnokorean\else -%\ifkosection -%\kscntformat{section}{제\ob@onethirdspace}{\ob@onethirdspace 절} -%\renewcommand\thesubsection{\arabic{section}.\arabic{subsection}} -%\fi\fi - -%%% misc settings -\raggedbottom -\ifnokorean -\renewcommand\sectionmark[1]{\markboth{\thetitle}{#1}} -\else -\renewcommand\sectionmark[1]{\markboth{\thetitle}{#1}} -\fi -%\renewcommand\subsectionmark[1]{\markright{#1}} -\ifnokorean -\newcommand*\MarkDocTitle{\markboth{\thetitle}{}} -\else -\newcommand*\MarkDocTitle{\markboth{\thetitle}{}} -\fi - -%%% for bookmarks and hyperref -\def\CallHyperref{% - \ifnobookmarks - \@Call@Hyperref@Without@Bookmarks - \else - \@Call@Hyperref@With@Bookmarks - \fi -} - -\def\@Call@Hyperref@Without@Bookmarks{% - \ifpdf - \RequirePackage[pdftex,unicode,bookmarks=false]{hyperref} - \else - \if@dvips - \RequirePackage[dvips,unicode,bookmarks=false]{hyperref} - \else - \RequirePackage[dvipdfm,unicode,bookmarks=false]{hyperref} - \fi - \fi -} - -\def\@Call@Hyperref@With@Bookmarks{% - \ifpdf - \RequirePackage[pdftex,unicode]{hyperref} - \else - \if@dvips - \RequirePackage[dvips,unicode]{hyperref} - \else - \RequirePackage[dvipdfm,unicode]{hyperref} - \fi - \fi -} - -%% LyX 1.6.x의 Insert-Hyperlink 기능과 충돌하지 않게 하기 위하여 -%% hyperref을 로드하지 않음. (lyxhyper 옵션) -%% note: memhfixc는 memoir 자신이 로드해준다. -\ifnokorean\relax\else - \ifhyperrefwithlyx\relax\else - \CallHyperref -\fi\fi - -%%% \engtxt를 일일이 쓰기 귀찮고 space가 하나밖에 없을 때 -%%% 쓰기 위한 \ensp 매크로. -\newskip\@ensp -\@ensp=.297em plus .02em minus .01em -\def\ensp{\hskip\@ensp} - -%%% article의 pagestyle 기본값은 plain임. -\pagestyle{plain} - -%%% 2006/09/01 \title, \author 문제. reported by IsCho -\AtBeginDocument{% - \@ifundefined{thetitle}{\title{}}{\relax} - \@ifundefined{theauthor}{\author{}}{\relax} -} - -%%% 2006/09/05 [10.5pt] option, [romanfixed] 2006/10/22. -\if@tendotfive - \RequirePackage{10_5} - \if@resizelatin - \RequirePackage{type1cm} - \RequirePackage{type1ec} - \fi -\fi - -%%%% 2006/10/19. 현범석 님이 지적한 lof, toc 문제 -\if@chapter\else - \RequirePackage{ob-toclof} -\fi - -%%% oblivoir-chapter (12/20) -\if@chapter -\newcommand\oblivoirchapterstyle[1]{% - \chapterstyle{#1} - \renewcommand{\chapterheadstart}{\clearforchapter\vspace*{\beforechapskip}} -} -\fi - -%%%%%%%%%%%%% APPENDIX - -\ifnokorean\def\appendixrefname{Appendix}\else\def\appendixrefname{부록}\fi -\def\appref#1{\appendixrefname~\ref{#1}} - -\newif\if@AppendixTitleToToc\@AppendixTitleToTocfalse -\newif\if@AttachAppendixTitleToSecnum\@AttachAppendixTitleToSecnumfalse - -\def\AppendixTitleToToc{% - \@AppendixTitleToToctrue -} - -\def\AttachAppendixTitleToSecnum{% - \@AttachAppendixTitleToSecnumtrue -} - -\def\AppendixTitle{% - \chapter*{\appendixname} -} - -\ifnokorean -\RequirePackage{ob-nokoreanappendix} -\else -\RequirePackage{ob-koreanappendix} -\fi - -%%% modified from dhucs-enumerate.sty -\ifnokorean\else -\def\@enloop@{% - \ifx A\@entemp \def\@memtempa{\@enLabel\Alph }\else - \ifx a\@entemp \def\@memtempa{\@enLabel\alph }\else - \ifx i\@entemp \def\@memtempa{\@enLabel\roman }\else - \ifx I\@entemp \def\@memtempa{\@enLabel\Roman }\else - \ifx 1\@entemp \def\@memtempa{\@enLabel\arabic}\else - \ifx \@sptoken\@entemp \let\@memtempa\@enSpace \else - \ifx \bgroup\@entemp \let\@memtempa\@enGroup \else - \ifx \@enum@\@entemp \let\@memtempa\@gobble \else - \ifx^^ea\@entemp % 가, - \let\@memtempa\@dhucs@enumerate@EA\else %%%%% - \ifx^^e2\@entemp % ①, ⑴, ⒜, ⓐ, ⅰ, Ⅰ - \let\@memtempa\@dhucs@enumerate@Eii\else %%%%% - \ifx^^e3\@entemp % ㄱ, ㉠, ㉮, ㈀, ㈎ - \let\@memtempa\@dhucs@enumerate@Eiii\else - \let\@memtempa\@enOther - \@enhook - \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi - \@memtempa} - -\def\@dhucs@enumerate@error#1{% - \PackageError{dhucs-enumerate} - {You can't use `\unexpanded{#1}' as enum label} - {Legal enum labels of hangul-ucs are: \MessageBreak\space\space - \unexpanded{가, ㄱ, ㉠, ㉮, ㈀, ㈎, ①, ⑴, ⒜, ⓐ, ⅰ, Ⅰ}.}% -} -\def\@dhucs@enumerate@EA#1#2#3{% - \ifnum\pdfstrcmp{#1#2#3}{^^ea^^b0^^80}=\z@ \def\@tempa{\@enLabel\gana}\else - \@dhucs@enumerate@error{#1#2#3}% - \fi - \@tempa\relax -} -\def\@dhucs@enumerate@Eii#1#2#3{% - \ifnum\pdfstrcmp{#1#2#3}{^^e2^^85^^b0}=\z@ \def\@tempa{\@enLabel\hroman}\else - \ifnum\pdfstrcmp{#1#2#3}{^^e2^^85^^a0}=\z@ \def\@tempa{\@enLabel\hRoman}\else - \ifnum\pdfstrcmp{#1#2#3}{^^e2^^92^^9c}=\z@ \def\@tempa{\@enLabel\peng}\else - \ifnum\pdfstrcmp{#1#2#3}{^^e2^^93^^90}=\z@ \def\@tempa{\@enLabel\oeng}\else - \ifnum\pdfstrcmp{#1#2#3}{^^e2^^91^^b4}=\z@ \def\@tempa{\@enLabel\pnum}\else - \ifnum\pdfstrcmp{#1#2#3}{^^e2^^91^^a0}=\z@ \def\@tempa{\@enLabel\onum}\else - \@dhucs@enumerate@error{#1#2#3}% - \fi\fi\fi\fi\fi\fi - \@tempa\relax -} -\def\@dhucs@enumerate@Eiii#1#2#3{% - \ifnum\pdfstrcmp{#1#2#3}{^^e3^^88^^8e}=\z@ \def\@tempa{\@enLabel\pgana}\else - \ifnum\pdfstrcmp{#1#2#3}{^^e3^^89^^ae}=\z@ \def\@tempa{\@enLabel\ogana}\else - \ifnum\pdfstrcmp{#1#2#3}{^^e3^^89^^a0}=\z@ \def\@tempa{\@enLabel\ojaso}\else - \ifnum\pdfstrcmp{#1#2#3}{^^e3^^84^^b1}=\z@ \def\@tempa{\@enLabel\jaso}\else - \ifnum\pdfstrcmp{#1#2#3}{^^e3^^88^^80}=\z@ \def\@tempa{\@enLabel\pjaso}\else - \@dhucs@enumerate@error{#1#2#3}% - \fi\fi\fi\fi\fi - \@tempa\relax -} - -\fi - -%%% subsection까지 항번을 붙이고 toc에 두자. -\maxtocdepth{subsection} -\maxsecnumdepth{subsection} - -%%% oblivoirallowbreak -\ifx\oblivoirallowbreak\undefined -\def\oblivoirallowbreak{\hskip1sp\hskip-1sp} -\fi - -%%% subfigure package compatibility -\if@subfigure - \let\c@lofdepth\relax - \let\c@lotdepth\relax -\fi - -%%% redefine \see or \seealso -\ifnokorean\else -\@ifundefined{see}{}{% - \renewcommand*{\see}[2]{#1\seename, \hyperpage{#2}} -} -\@ifundefined{seealso}{}{% - \renewcommand*{\seealso}[2]{#1\alsoname, \hyperpage{#2}} -} -\fi - -%%% to avoid conflicts with etextools -\ExplSyntaxOn -\cs_if_exist:NF \globcount -{ \let\globcount\newcount } -\ExplSyntaxOff - -\endinput - -%%% ChangeLog: -%%% 2015/10/19 : fix conflicts with etextools package. -%%% 2015/08/24 : dhuce-enumerate compatibility. -%%% 2015/08/01 : etex.sty dropped -%%% 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 -%%% ver0.4.0 2013/09/25 : redesign for nanum type 1 -%%% ver0.3.9 2012/11/22 : [figtabcapt] option -%%% ver0.3.8 2009/04/06 : [lyxhyper] option -%%% ver0.3.4 2008/10/23 : moreverb, faht, fawd options. (See xoblivoir.cls) -%%% ver0.3.3a 2008/09/30 : change the way of calling microtype (non-released version) -%%% ver0.3.3 2008/09/16 : apply microtype to non-pdflatex -%%% ver0.3.2 2007/11/18 : add \see, \seealso definition -%%% ver0.3.1 2007/10/23 : subfigure package compatibility (in order to use with LyX) -%%% ver0.3.0 2007/07/15 : no changes. part of ko.TeX -%%% ver0.2.4a 2007/07/05 : add \pjaso to enumerate -%%% ver0.2.4 2007/07/01 : adopt dhucs-enumerate.sty, enumerate hook. -%%% ver0.2.3 2007/06/26 : strictcharcheck option introduced. cf. dhucs 4.0.6 -%%% ver0.2.2 2007/06/16 : finemath setto default. [nofinemath] introduced. [microtype] introduces, which works only under pdflatex. -%%% ver0.2.1 2007/06/14 : dhucs 4.0.1, memhangul-ucs 1.5.1 -%%% ver0.20c 2007/06/03 : pdfbookmark option to memhangul-ucs dropped. -%%% ver0.20a 2007/05/24 : \oblivoirallowbreak introduced -%%% ver0.20 2007/05/17 : dhucs 4.0, memhangul-ucs 1.5.0 -%%% ver0.18a 2007/01/14 : slightly alter calling-hyperref method. -%%% ver0.17C.a 2006/12/20 : \chapter-compatible feature. (private version) : \oblivoirchapterstyle command added. -%%% ver0.17 2006/12/06 : \appendix+nokorean option bug fix (req. by Beomsuk Hyun) -%%% ver0.16 2006/11/23 : \appendix features added. (req. by Beomsuk Hyun) -%%% ver0.15 2006/11/01 : [nokorean] option \if..\fi pair bug fix (rep. by smcho) -%%% ver0.14 2006/10/22 : [itemph], [romanfixed] option introduced. -%%% ver0.13 2006/10/19 : [tocentry] option introduced. (req. by Beomsuk Hyun) -%%% ver0.12 2006/09/25 : \kscntformat bug fix -%%% ver0.11 2006/09/18 : article-like footnote style made default, [footnote] option introduced -%%% ver0.1 2006/09/13 : renamed to oblivoir (req. by ischo) -%%% ver0.014 2006/09/05 : introduce [10.5pt] option with 10_5.sty (req. by synapse) -%%% ver0.013 2006/09/03 : introduce hfontsel.sty. (req. by synapse) -%%% ver0.012 2006/09/01 : \thetitle, \theauthor undefined problem fixed. (rep. by IsCho) -%%% ver0.011 2006/05/02 : rename ksnamedef(false) to kscntformat -%%% ver0.01 2006/04/27 : introduce [nokorean] option requested by smcho. -%%% ver0.001 2006/03/11 : started this class, just for fun! -%%% diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-utf.cls b/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-utf.cls new file mode 100644 index 00000000000..535b74dbd4c --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-utf.cls @@ -0,0 +1,613 @@ +%% File `oblivoir-utf.cls` +%% +%% (C) Copyright 2006-2015 Kangsoo Kim +%% +%% 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. +%% +\ProvidesClass{oblivoir-utf} + [2020/02/10 v0.8.2 article-like class to typeset UTF-8 korean using memoir.] +%\typeout{oblivoir requires memoir, dhucs, and memhangul. 2008/10/23.} + +%%% Acknowledgements: +%%% Many thanks to +%%% ischo who provided a computer, place and time for developing and testing. +%%% smcho, ischo, synapse and beomsukhyun who requested functional improvements. +%%% progress who wrote a nice introductory document. +%%% and all the people who do or do not use this class. +%%% +%%% Options: +%%% nokorean : 영문용 +%%% twoside : twoside +%%% openright +%%% kosection : 절 표제항의 한글화 +%%% nobookmarks : 북마크 만들지 않음 +%%% dvips : dvips 작업용 옵션 +%%% 10.5pt : 10.5pt 본문 폰트 사이즈. +%%% footnote : 한글식 각주 모양 사용. +%%% tocentry : toc 등을 한 수준 위에서 처리. +%%% itemph : 강조를 itshape로 처리함. +%%% finemath : pass finemath option to dhucs. made default. +%%% nofinemath : no finemath. +%%% strictcharcheck : strictcharcheck to dhucs. +%%% microtype : load microtype and apply margin-kerning & font-expansion +%%% romanfixed : 10.5pt 옵션 사용시 영문 글꼴은 10pt로 고정. +%%% faht,fawd : flowfram과 함께 쓸 때 임의의 페이지 사이즈. +%%% moreverb : pdfmtricks와 함께 쓰기 위해 moreverb를 로드. +%%% 기타 옵션 : memoir 옵션 사용. +%%% default는 oneside, openany, kosection false, pdfbookmark임. +%%% subfigure : load old subfigure packaged +%%% +%%% 한글 폰트 관련: +%%% unfonts-type-1 +%%% + +%\RequirePackage{etex} +\RequirePackage{xkeyval} + +\newif\ifnokorean\nokoreanfalse +\DeclareOptionX{nokorean}{\nokoreantrue} +\newif\iftwosidedoc\twosidedocfalse +\DeclareOptionX{twoside}{\twosidedoctrue} +\newif\ifopenrightdoc\openrightdocfalse +\DeclareOptionX{openright}{\openrightdoctrue} +\newif\ifkosection\kosectionfalse +\DeclareOptionX{kosection}{\kosectiontrue} +\newif\ifnobookmarks\nobookmarksfalse +\DeclareOptionX{nobookmarks}{\nobookmarkstrue} +\newif\ifhyperrefwithlyx\hyperrefwithlyxfalse +\DeclareOptionX{lyxhyper}{\hyperrefwithlyxtrue}{\hyperrefwithlyxfalse} +\newif\if@dvips\@dvipsfalse +\DeclareOptionX{dvips}{\@dvipstrue} +\newif\if@tendotfive\@tendotfivefalse +\DeclareOptionX{10.5pt}{\@tendotfivetrue} +\newif\if@koreanfn\@koreanfnfalse +\DeclareOptionX{footnote}{\@koreanfntrue} +\newif\if@toclofentry\@toclofentryfalse +\DeclareOptionX{tocentry}{\@toclofentrytrue} +\newif\if@itemph\@itemphfalse +\DeclareOptionX{itemph}{\@itemphtrue} +\newif\if@resizelatin\@resizelatintrue +\DeclareOptionX{romanfixed}{\@resizelatinfalse} +\newif\if@chapter\@chapterfalse +\DeclareOptionX{chapter}{\@chaptertrue\@toclofentrytrue} +\newif\if@finemath\@finemathtrue +\DeclareOptionX{finemath}{\@finemathtrue} +\DeclareOptionX{nofinemath}{\@finemathfalse} +\newif\if@microtype\@microtypefalse +\DeclareOptionX{microtype}{\@microtypetrue} +\newif\if@subfigure\@subfigurefalse +\DeclareOptionX{subfigure}{\@subfiguretrue} +\DeclareOptionX{strictcharcheck}{\PassOptionsToPackage{\CurrentOption}{memhangul-ucs}} + +\newif\if@moreverb\@moreverbfalse +\DeclareOptionX{moreverb}{\@moreverbtrue} +\newif\if@foursix\@foursixfalse\newlength\fa@setheight\newlength\fa@setwidth +\DeclareOptionX{faht}[]{\fa@setheight=#1\@foursixtrue} +\DeclareOptionX{fawd}[]{\fa@setwidth=#1\@foursixtrue} + +\DeclareOptionX{figtabcapt}[]{\PassOptionsToPackage{\CurrentOption}{memhangul-ucs}} + +%%% 2013-09-26 +%%% 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} + +\newif\if@FULLROOM\@FULLROOMfalse +\DeclareOptionX{moreroom}{\@FULLROOMtrue} + +\DeclareOptionX*{% + \PassOptionsToClass{\CurrentOption}{memoir}% +} +\newif\if@lwarp\@lwarpfalse +\DeclareOptionX{lwarp}{} +\DeclareOptionX{lwarpoption}[]{} +\DeclareOptionX{lwarplanguage}[]{} + +\ProcessOptionsX + +%%% \ifLwarp compatibility +\ExplSyntaxOn +\tl_new:N \g_lwarp_option_str +\ExplSyntaxOff + +%%% moreroom, reported by Juho Lee, 2013-09-26. +%%% 2015-08-01: LaTeX will do auto-alloc. +%\if@FULLROOM +%\def\alloc@#1#2#3#4#5% +% {\ifnum\count1#1<#4% make sure there's still room +% \allocationnumber\count1#1 +% \global\advance\count1#1\@ne +% \global#3#5\allocationnumber +% \wlog{\string#5=\string#2\the\allocationnumber}% +% \else\ifnum#1<6 +% \def\etex@dummy@definition{}% <-- code added +% \begingroup \escapechar\m@ne +% \expandafter\alloc@@\expandafter{\string#2}#5% +% \else\errmessage{No room for a new #2}\fi\fi +% } +%\fi + +%% expl3 +\RequirePackage{xparse,expl3} + +%%% moreverb : 2008/10/23 +\if@moreverb + \RequirePackage{moreverb} +\fi + +%%% dvips +\ifnokorean\else +\if@dvips + \PassOptionsToPackage{dvips}{memhangul-ucs} +\fi\fi + +%%% memoir/memhangul-ucs 로드. +\if@chapter + \LoadClass[openany]{memoir} +\else +\iftwosidedoc + \LoadClass[article,openany]{memoir} +\else + \LoadClass[article,openany,oneside]{memoir} +\fi +\fi +%%% flowfram confict : 2008/10/23 +\if@foursix + \newcommand*{\fa@dblfoursix}{\stockheight=\fa@setheight \stockwidth=\fa@setwidth} + \fa@dblfoursix +\fi + +\if@AMSmath +\RequirePackage{amsmath,amssymb} +\fi + +%%% +\ifopenrightdoc\openright\fi +\newcommand\finemath@status{\if@finemath finemath\else\fi} +\ifnokorean\else + \if@itemph + \RequirePackage[nonfrench,interworddefault,hangulpagestyle,\finemath@status]{memhangul-ucs} + \else + \RequirePackage[nonfrench,interworddefault,hangulpagestyle,gremph,\finemath@status]{memhangul-ucs} + \fi +\fi +\if@chapter\else +\counterwithout{section}{chapter} +\fi + +%%% hfontspec +\ifnokorean\let\usehangulfontspec\@gobble\fi + +%%% korean fontsettings +\ifnokorean\else + \if@unfont + \RequirePackage{hfontsel} + \usehangulfontspec{obut} + \else + \RequirePackage{nanumfontsel} + \usehangulfontspec{nanum} + \fi + \ifpdf + \input glyphtounicode\pdfgentounicode=1 + \RequirePackage{dhucs-cmap} + \else\fi +% \ifpdf +% \RequirePackage[ps]{hfontsel} % ut**를 기본 글꼴로 +% \usehangulfontspec{obut} +% \pdfmapfile{=unttf-pdftex-dhucs.map} % 그래도 혹시 모르므로 +%%%% dhucs-cmap은 여기서 로드한다. +% \RequirePackage{dhucs-cmap} % ut**가 기본글꼴일 때는 disable? +% \input glyphtounicode\pdfgentounicode=1 +% \else +% \if@dvips +% \RequirePackage[ps]{hfontsel} % ut**를 기본 글꼴로 +% \usehangulfontspec{obut} +% \else +% \RequirePackage{hfontsel} % 아무 옵션도 없다면 un** +% \usehangulfontspec{obun} +% \RequirePackage{dhucs-cmap} % un**일 때 +% \fi +% \fi +\fi + +%%% Gremph +\if@itemph\else + \ifnokorean\else +% \ifpdf + \if@unfont + \SetGremphFonts{outgr}{outgt} + \else + \SetGremphFonts{nanumgt}{nanumgt} + \fi +% \else +% \if@dvips +% \SetGremphFonts{utgr}{utgt} +% \fi +% \fi + \fi +\fi + +%%% microtype +\ifpdf + \if@microtype + \RequirePackage[expansion=all]{microtype} + % for more elaborated operation, document specific config is needed. + % expansion works for ONE fontset only; so, basictext + LUC. +% \DeclareMicrotypeSet{dhucsmicro} +% { encoding = {LUC,OT1,T1,LY1,OT4,QX,T5}, +% % family = {rm*,sf*}, +% % series = {md*}, +% % size = {normalsize,footnotesize,small,large} +% } +% \UseMicrotypeSet[expansion]{dhucsmicro} + \fi +\else + \if@microtype +% \ClassWarningNoLine{oblivoir}{no pdflatex runs! microtype option is ignored.}{} + \RequirePackage{microtype} + \fi +\fi + +%%% 기본 자간 +\newdimen\ob@hu % 1jw=.95em, 1hu=1/16jw. see hfontspec.oblivoir +\ifnokorean\ob@hu=\z@\else\ob@hu=\dhucs@hu\fi +% 기본 자간 설정은 hfontspec.obu{n/t}. +%%%\newdimen\ob@hangulglue\ob@hangulglue=-.55\ob@hu +%%%\interhchar{\ob@hangulglue} + +\def\ob@DEFAULTskips{% + \def\memucshangulskips{% +% \interhchar{\ob@hangulglue}% + }% + \def\memucsinterwordskip{% + \spaceskip = .390\BASE@FONTsize plus .1\BASE@FONTsize minus .1\BASE@FONTsize + \if@nonfrench + \xspaceskip = .432\BASE@FONTsize plus .11\BASE@FONTsize minus .1\BASE@FONTsize + \fi + }% + \def\memucsinterwordchapterskip{% + \spaceskip = .41\BASE@FONTsize plus .11\BASE@FONTsize minus .1\BASE@FONTsize + \if@nonfrench + \xspaceskip = .55\BASE@FONTsize plus .1\BASE@FONTsize minus .1\BASE@FONTsize + \fi + }% +} + +\let\DEFAULTskips\ob@DEFAULTskips +\def\ob@thinthinspace{\hskip2\ob@hu} +\def\ob@onethirdspace{\hskip5\ob@hu} + +\ifnokorean\else +\if@koreanfn +%%% footnote setting +%%% 99)에 해당하는 박스 길이를 구한 다음 +\newsavebox\mytmpbox\sbox\mytmpbox{\footnotesize 99)\ } +%%% 각주 번호 박스를 길이에 대하여 오른쪽 정렬함. 두 자리 +%%% 각주 번호 기준으로 오른쪽 정렬되도록 만든다. +\footmarkstyle{\makebox[\wd\mytmpbox][r]{#1)\ }} +\setlength\footmarksep{\wd\mytmpbox} +\setlength\footmarkwidth{0pt} +\setlength\footparindent{0pt} +%\ifnokorean\else +\SetFnmark{\textsuperscript}{\textsuperscript{)}} +%\fi +\fi\fi +%%% footnotes and floats. codes from memmanadd.pdf +\renewcommand*{\footnoterule}{\kern-3pt\vfill + \hrule width 0.4\columnwidth \kern 2.6pt} +\setlength{\skip\footins}{1.3\onelineskip} + +%%% toc 등의 레이아웃. +\if@chapter\else +\renewcommand\chaptitlefont{\Large\bfseries} +\renewcommand\printchapternonum{} +\renewcommand\printchaptertitle[1]{\chaptitlefont #1} +\setlength\afterchapskip{\onelineskip} +\setlength\beforechapskip{1.5\onelineskip} +\fi + +\setlength\cftsectionindent{0pt} +\ifnokorean\else +\setlength\cftsectionnumwidth{1.8em} +\setlength\cftsubsectionindent{1.8em} +\setlength\cftsubsectionnumwidth{2.5em} +\fi +\if@chapter\else +\let\cftchapterindent\cftsectionindent +\let\cftchapternumwidth\cftsectionnumwidth +\let\cftbeforechapterskip\cftbeforesectionskip +\fi + +\renewcommand\cftsectionpresnum{\hfill} +\renewcommand\cftsectionaftersnum{\hskip.8em} + +%%%% kscntformat definition moved to memhangul-ucs. +%%%% HLaTeX의 \kscntformat 명령을 흉내냄 +%%%% \kscntformat{section}{제}{절} 형식으로 쓴다. +%\newsavebox{\tmp@XXbox} +%\newdimen\tmp@XXdim +%\def\kscntformat#1#2#3{% +% \sbox{\tmp@XXbox}{#2\expandafter\number\csname c@#1\endcsname#3}% +% \setlength\tmp@XXdim{\wd\tmp@XXbox}\advance\tmp@XXdim by1em% +% \expandafter\def\csname the#1\endcsname{#2\expandafter\number\csname c@#1\endcsname#3}% +% \expandafter\renewcommand\csname cft#1numwidth\endcsname{\tmp@XXdim}% +% \expandafter\renewcommand\csname cft#1presnum\endcsname{}% +% \expandafter\renewcommand\csname cft#1aftersnum\endcsname{}% +%} +% +%\ifnokorean\else +%\ifkosection +%\kscntformat{section}{제\ob@onethirdspace}{\ob@onethirdspace 절} +%\renewcommand\thesubsection{\arabic{section}.\arabic{subsection}} +%\fi\fi + +%%% misc settings +\raggedbottom +\ifnokorean +\renewcommand\sectionmark[1]{\markboth{\thetitle}{#1}} +\else +\renewcommand\sectionmark[1]{\markboth{\thetitle}{#1}} +\fi +%\renewcommand\subsectionmark[1]{\markright{#1}} +\ifnokorean +\newcommand*\MarkDocTitle{\markboth{\thetitle}{}} +\else +\newcommand*\MarkDocTitle{\markboth{\thetitle}{}} +\fi + +%%% for bookmarks and hyperref +\def\CallHyperref{% + \ifnobookmarks + \@Call@Hyperref@Without@Bookmarks + \else + \@Call@Hyperref@With@Bookmarks + \fi +} + +\def\@Call@Hyperref@Without@Bookmarks{% + \ifpdf + \RequirePackage[pdftex,unicode,bookmarks=false]{hyperref} + \else + \if@dvips + \RequirePackage[dvips,unicode,bookmarks=false]{hyperref} + \else + \RequirePackage[dvipdfm,unicode,bookmarks=false]{hyperref} + \fi + \fi +} + +\def\@Call@Hyperref@With@Bookmarks{% + \ifpdf + \RequirePackage[pdftex,unicode]{hyperref} + \else + \if@dvips + \RequirePackage[dvips,unicode]{hyperref} + \else + \RequirePackage[dvipdfm,unicode]{hyperref} + \fi + \fi +} + +%% LyX 1.6.x의 Insert-Hyperlink 기능과 충돌하지 않게 하기 위하여 +%% hyperref을 로드하지 않음. (lyxhyper 옵션) +%% note: memhfixc는 memoir 자신이 로드해준다. +\ifnokorean\relax\else + \ifhyperrefwithlyx\relax\else + \CallHyperref +\fi\fi + +%%% \engtxt를 일일이 쓰기 귀찮고 space가 하나밖에 없을 때 +%%% 쓰기 위한 \ensp 매크로. +\newskip\@ensp +\@ensp=.297em plus .02em minus .01em +\def\ensp{\hskip\@ensp} + +%%% article의 pagestyle 기본값은 plain임. +\pagestyle{plain} + +%%% 2006/09/01 \title, \author 문제. reported by IsCho +\AtBeginDocument{% + \@ifundefined{thetitle}{\title{}}{\relax} + \@ifundefined{theauthor}{\author{}}{\relax} +} + +%%% 2006/09/05 [10.5pt] option, [romanfixed] 2006/10/22. +\if@tendotfive + \RequirePackage{10_5} + \if@resizelatin + \RequirePackage{type1cm} + \RequirePackage{type1ec} + \fi +\fi + +%%%% 2006/10/19. 현범석 님이 지적한 lof, toc 문제 +\if@chapter\else + \RequirePackage{ob-toclof} +\fi + +%%% oblivoir-chapter (12/20) +\if@chapter +\newcommand\oblivoirchapterstyle[1]{% + \chapterstyle{#1} + \renewcommand{\chapterheadstart}{\clearforchapter\vspace*{\beforechapskip}} +} +\fi + +%%%%%%%%%%%%% APPENDIX + +\ifnokorean\def\appendixrefname{Appendix}\else\def\appendixrefname{부록}\fi +\def\appref#1{\appendixrefname~\ref{#1}} + +\newif\if@AppendixTitleToToc\@AppendixTitleToTocfalse +\newif\if@AttachAppendixTitleToSecnum\@AttachAppendixTitleToSecnumfalse + +\def\AppendixTitleToToc{% + \@AppendixTitleToToctrue +} + +\def\AttachAppendixTitleToSecnum{% + \@AttachAppendixTitleToSecnumtrue +} + +\def\AppendixTitle{% + \chapter*{\appendixname} +} + +\ifnokorean +\RequirePackage{ob-nokoreanappendix} +\else +\RequirePackage{ob-koreanappendix} +\fi + +%%% modified from dhucs-enumerate.sty +\ifnokorean\else +\def\@enloop@{% + \ifx A\@entemp \def\@memtempa{\@enLabel\Alph }\else + \ifx a\@entemp \def\@memtempa{\@enLabel\alph }\else + \ifx i\@entemp \def\@memtempa{\@enLabel\roman }\else + \ifx I\@entemp \def\@memtempa{\@enLabel\Roman }\else + \ifx 1\@entemp \def\@memtempa{\@enLabel\arabic}\else + \ifx \@sptoken\@entemp \let\@memtempa\@enSpace \else + \ifx \bgroup\@entemp \let\@memtempa\@enGroup \else + \ifx \@enum@\@entemp \let\@memtempa\@gobble \else + \ifx^^ea\@entemp % 가, + \let\@memtempa\@dhucs@enumerate@EA\else %%%%% + \ifx^^e2\@entemp % ①, ⑴, ⒜, ⓐ, ⅰ, Ⅰ + \let\@memtempa\@dhucs@enumerate@Eii\else %%%%% + \ifx^^e3\@entemp % ㄱ, ㉠, ㉮, ㈀, ㈎ + \let\@memtempa\@dhucs@enumerate@Eiii\else + \let\@memtempa\@enOther + \@enhook + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi + \@memtempa} + +\def\@dhucs@enumerate@error#1{% + \PackageError{dhucs-enumerate} + {You can't use `\unexpanded{#1}' as enum label} + {Legal enum labels of hangul-ucs are: \MessageBreak\space\space + \unexpanded{가, ㄱ, ㉠, ㉮, ㈀, ㈎, ①, ⑴, ⒜, ⓐ, ⅰ, Ⅰ}.}% +} +\def\@dhucs@enumerate@EA#1#2#3{% + \ifnum\pdfstrcmp{#1#2#3}{^^ea^^b0^^80}=\z@ \def\@tempa{\@enLabel\gana}\else + \@dhucs@enumerate@error{#1#2#3}% + \fi + \@tempa\relax +} +\def\@dhucs@enumerate@Eii#1#2#3{% + \ifnum\pdfstrcmp{#1#2#3}{^^e2^^85^^b0}=\z@ \def\@tempa{\@enLabel\hroman}\else + \ifnum\pdfstrcmp{#1#2#3}{^^e2^^85^^a0}=\z@ \def\@tempa{\@enLabel\hRoman}\else + \ifnum\pdfstrcmp{#1#2#3}{^^e2^^92^^9c}=\z@ \def\@tempa{\@enLabel\peng}\else + \ifnum\pdfstrcmp{#1#2#3}{^^e2^^93^^90}=\z@ \def\@tempa{\@enLabel\oeng}\else + \ifnum\pdfstrcmp{#1#2#3}{^^e2^^91^^b4}=\z@ \def\@tempa{\@enLabel\pnum}\else + \ifnum\pdfstrcmp{#1#2#3}{^^e2^^91^^a0}=\z@ \def\@tempa{\@enLabel\onum}\else + \@dhucs@enumerate@error{#1#2#3}% + \fi\fi\fi\fi\fi\fi + \@tempa\relax +} +\def\@dhucs@enumerate@Eiii#1#2#3{% + \ifnum\pdfstrcmp{#1#2#3}{^^e3^^88^^8e}=\z@ \def\@tempa{\@enLabel\pgana}\else + \ifnum\pdfstrcmp{#1#2#3}{^^e3^^89^^ae}=\z@ \def\@tempa{\@enLabel\ogana}\else + \ifnum\pdfstrcmp{#1#2#3}{^^e3^^89^^a0}=\z@ \def\@tempa{\@enLabel\ojaso}\else + \ifnum\pdfstrcmp{#1#2#3}{^^e3^^84^^b1}=\z@ \def\@tempa{\@enLabel\jaso}\else + \ifnum\pdfstrcmp{#1#2#3}{^^e3^^88^^80}=\z@ \def\@tempa{\@enLabel\pjaso}\else + \@dhucs@enumerate@error{#1#2#3}% + \fi\fi\fi\fi\fi + \@tempa\relax +} + +\fi + +%%% subsection까지 항번을 붙이고 toc에 두자. +\maxtocdepth{subsection} +\maxsecnumdepth{subsection} + +%%% oblivoirallowbreak +\ifx\oblivoirallowbreak\undefined +\def\oblivoirallowbreak{\hskip1sp\hskip-1sp} +\fi + +%%% subfigure package compatibility +\if@subfigure + \let\c@lofdepth\relax + \let\c@lotdepth\relax +\fi + +%%% redefine \see or \seealso +\ifnokorean\else +\@ifundefined{see}{}{% + \renewcommand*{\see}[2]{#1\seename, \hyperpage{#2}} +} +\@ifundefined{seealso}{}{% + \renewcommand*{\seealso}[2]{#1\alsoname, \hyperpage{#2}} +} +\fi + +%%% to avoid conflicts with etextools +\ExplSyntaxOn +\cs_if_exist:NF \globcount +{ \let\globcount\newcount } +\ExplSyntaxOff + +\endinput + +%%% ChangeLog: +%%% 2015/10/19 : fix conflicts with etextools package. +%%% 2015/08/24 : dhuce-enumerate compatibility. +%%% 2015/08/01 : etex.sty dropped +%%% 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 +%%% ver0.4.0 2013/09/25 : redesign for nanum type 1 +%%% ver0.3.9 2012/11/22 : [figtabcapt] option +%%% ver0.3.8 2009/04/06 : [lyxhyper] option +%%% ver0.3.4 2008/10/23 : moreverb, faht, fawd options. (See xoblivoir.cls) +%%% ver0.3.3a 2008/09/30 : change the way of calling microtype (non-released version) +%%% ver0.3.3 2008/09/16 : apply microtype to non-pdflatex +%%% ver0.3.2 2007/11/18 : add \see, \seealso definition +%%% ver0.3.1 2007/10/23 : subfigure package compatibility (in order to use with LyX) +%%% ver0.3.0 2007/07/15 : no changes. part of ko.TeX +%%% ver0.2.4a 2007/07/05 : add \pjaso to enumerate +%%% ver0.2.4 2007/07/01 : adopt dhucs-enumerate.sty, enumerate hook. +%%% ver0.2.3 2007/06/26 : strictcharcheck option introduced. cf. dhucs 4.0.6 +%%% ver0.2.2 2007/06/16 : finemath setto default. [nofinemath] introduced. [microtype] introduces, which works only under pdflatex. +%%% ver0.2.1 2007/06/14 : dhucs 4.0.1, memhangul-ucs 1.5.1 +%%% ver0.20c 2007/06/03 : pdfbookmark option to memhangul-ucs dropped. +%%% ver0.20a 2007/05/24 : \oblivoirallowbreak introduced +%%% ver0.20 2007/05/17 : dhucs 4.0, memhangul-ucs 1.5.0 +%%% ver0.18a 2007/01/14 : slightly alter calling-hyperref method. +%%% ver0.17C.a 2006/12/20 : \chapter-compatible feature. (private version) : \oblivoirchapterstyle command added. +%%% ver0.17 2006/12/06 : \appendix+nokorean option bug fix (req. by Beomsuk Hyun) +%%% ver0.16 2006/11/23 : \appendix features added. (req. by Beomsuk Hyun) +%%% ver0.15 2006/11/01 : [nokorean] option \if..\fi pair bug fix (rep. by smcho) +%%% ver0.14 2006/10/22 : [itemph], [romanfixed] option introduced. +%%% ver0.13 2006/10/19 : [tocentry] option introduced. (req. by Beomsuk Hyun) +%%% ver0.12 2006/09/25 : \kscntformat bug fix +%%% ver0.11 2006/09/18 : article-like footnote style made default, [footnote] option introduced +%%% ver0.1 2006/09/13 : renamed to oblivoir (req. by ischo) +%%% ver0.014 2006/09/05 : introduce [10.5pt] option with 10_5.sty (req. by synapse) +%%% ver0.013 2006/09/03 : introduce hfontsel.sty. (req. by synapse) +%%% ver0.012 2006/09/01 : \thetitle, \theauthor undefined problem fixed. (rep. by IsCho) +%%% ver0.011 2006/05/02 : rename ksnamedef(false) to kscntformat +%%% ver0.01 2006/04/27 : introduce [nokorean] option requested by smcho. +%%% ver0.001 2006/03/11 : started this class, just for fun! +%%% diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-xl.cls b/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-xl.cls new file mode 100644 index 00000000000..c4ab0916fb1 --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-xl.cls @@ -0,0 +1,531 @@ +%% File `oblivoir-xl.cls` +%% +%% (C) Copyright 2006-2020 Kangsoo Kim +%% +%% 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. +%% +%% an oblivoir-compatible package for using with LuaLaTeX or XeLaTeX. +%% depends upon Dohyun Kim's xetexko and the author's memhangul-x. +%% +\ProvidesClass{oblivoir-xl} + [2020/02/05 v0.8.4 article-like class to typeset Korean] +%\typeout{A variant of oblivoir class for Lua- or XeLaTeX.} + +\providecommand\@DisabledOption[1]{% + \typeout{[#1] option is deprecated}} + +%\RequirePackage{xkeyval} +%% expl3 and xparse +%\RequirePackage{xparse} + +%%% Disabled Options +\DeclareOptionX{dvips}{\@DisabledOption{\CurrentOption}} +\DeclareOptionX{romanfixed}{\@DisabledOption{\CurrentOption}} +\DeclareOptionX{finemath}{\@DisabledOption{\CurrentOption}} +\DeclareOptionX{nofinemath}{\@DisabledOption{\CurrentOption}} +\DeclareOptionX{strictcharcheck}{\@DisabledOption{\CurrentOption}} +\DeclareOptionX{noreserveinserts}{\@DisabledOption{\CurrentOption}} + +%%% active Options +\newif\ifnokorean\nokoreanfalse +\DeclareOptionX{nokorean}{\nokoreantrue} +\newif\if@polyglossia\@polyglossiafalse +\DeclareOptionX{polyglossia}{\@polyglossiatrue} +\newif\iftwosidedoc\twosidedocfalse +\DeclareOptionX{twoside}{\twosidedoctrue} +\newif\ifopenrightdoc\openrightdocfalse +\DeclareOptionX{openright}{\openrightdoctrue} +\newif\ifkosection\kosectionfalse +\DeclareOptionX{kosection}{\kosectiontrue} +\newif\ifnobookmarks\nobookmarksfalse +\DeclareOptionX{nobookmarks}{\nobookmarkstrue} +\newif\ifhyperrefwithlyx\hyperrefwithlyxfalse +\DeclareOptionX{lyxhyper}{\hyperrefwithlyxtrue}{\hyperrefwithlyxfalse} +\newif\if@tendotfive\@tendotfivefalse +\DeclareOptionX{10.5pt}{\@tendotfivetrue} +\newif\if@koreanfn\@koreanfnfalse +\DeclareOptionX{footnote}{\@koreanfntrue} +\newif\if@toclofentry\@toclofentryfalse +\DeclareOptionX{tocentry}{\@toclofentrytrue} +%\newif\if@itemph\@itemphfalse +\DeclareOptionX{itemph}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} +\DeclareOptionX{gremph}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} +\newif\if@chapter\@chapterfalse +\DeclareOptionX{chapter}{\@chaptertrue\@toclofentrytrue} +\newif\if@microtype\@microtypefalse +\DeclareOptionX{microtype}{\@microtypetrue} +\newif\if@subfigure\@subfigurefalse +\DeclareOptionX{subfigure}{\@subfiguretrue} +\newif\if@manspace\@manspacefalse +\DeclareOptionX{obspace}{\@manspacetrue} +\DeclareOptionX{adjustmath}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} %%% disabled 2020 +\DeclareOptionX{mathdisp}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} +% +%%% new Options +\DeclareOptionX{latinquote}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} +%%% changed fontspec -> manualfontspec +\DeclareOptionX{fontspec}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} +\newif\if@moreverb\@moreverbfalse +\DeclareOptionX{moreverb}{\@moreverbtrue} +\newif\if@foursix\@foursixfalse\newlength\fa@setheight\newlength\fa@setwidth +\DeclareOptionX{faht}[]{\fa@setheight=#1\@foursixtrue} +\DeclareOptionX{fawd}[]{\fa@setwidth=#1\@foursixtrue} +\newif\if@amsmath\@amsmathfalse +\DeclareOptionX{amsmath}{\@amsmathtrue} +\DeclareOptionX{nowinname}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} +% +\newif\ifPRELOAD\PRELOADfalse +\DeclareOptionX{preload}[]{\PRELOADtrue\gdef\PRELOADstr{#1}} + +\ExplSyntaxOn +\tl_new:N \g_preload_option_str +\DeclareOptionX{preloadoption}[]{ + \tl_gset:Nn \g_preload_option_str { #1 } +} +\ExplSyntaxOff + +\newif\if@lwarp\@lwarpfalse +\DeclareOptionX{lwarp}{\@lwarptrue}{\@lwarpfalse} +\ExplSyntaxOn +\tl_new:N \g_lwarp_option_str +\DeclareOptionX{lwarpoption}[]{% + \tl_gset:Nn \g_lwarp_option_str { #1 } +} +\ExplSyntaxOff +\def\LWARPlan{en-US} +\DeclareOptionX{lwarplanguage}[]{\gdef\LWARPlan{#1}} + +%% [nounfonts] +\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}} + +\DeclareOptionX{cjk}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} +%\DeclareOptionX{cjkoption}[]{\PassOptionsToPackage{#1}{cjkutf8-ko}} +\DeclareOptionX{dhucs}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} + +%%% compatibility options +\DeclareOptionX{uset1font}{\PassOptionsToPackage{usecjkt1font}{cjkutf8-ko}} +\DeclareOptionX{usedotemph}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} + +%%% +\DeclareOptionX*{% + \PassOptionsToClass{\CurrentOption}{memoir}% +} +% +\ProcessOptionsX + +%%% moreverb +\if@moreverb + \RequirePackage{moreverb} +\fi + +%%% preload +\ifPRELOAD +\ExplSyntaxOn + \RequirePackage[\g_preload_option_str]{\PRELOADstr} +\ExplSyntaxOff +\ifx\medspace\undefined\relax\else\let\medspace\relax\fi +\fi + +%% LyX compatibility +%\ifx\@textsubscript\undefined\else +% \let\@textsubscript\relax +%\fi + +%%% memoir/memhangul-ucs 로드. +\if@chapter + \LoadClass[openany]{memoir} +\else +\iftwosidedoc + \LoadClass[article,openany]{memoir} +\else + \LoadClass[article,openany,oneside]{memoir} +\fi +\fi + +%%% fontspec problem +% \RequirePackage{etex}\reserveinserts{40}% + +%%% workaround with flowfram +\if@foursix + \newcommand*{\fa@dblfoursix}{\stockheight=\fa@setheight \stockwidth=\fa@setwidth} + \fa@dblfoursix +\fi + +%%% +\ifopenrightdoc\openright\fi + +\RequirePackage{ifluatex} +\RequirePackage{ifxetex} + +%%\RequirePackage{comment} +%%\def\finemath@status{} + +%\ifxetex\else\ifluatex\else +% \PackageError{xoblivoir}{This Document requires Xe(La)TeX or Lua(La)TeX!}{} +%\fi\fi + +%%% lwarp +\ExplSyntaxOn + +\if@lwarp + \ifluatex + \RequirePackage{luatexko} + \fi + \RequirePackage[\g_lwarp_option_str]{lwarp} + \RequirePackage{xob-lwarp} +\fi + +\ExplSyntaxOff + +%%% ams{math|symb} +\if@amsmath + \RequirePackage{amsmath,xob-amssymb} +\fi + +\def\@Load@Memhangul{% + \if@polyglossia + \RequirePackage[polyglossia]{memhangul-x} + \else + \RequirePackage[nonfrench,hangulpagestyle]{memhangul-x} + \fi +} + +\ifnokorean\else + \@Load@Memhangul +\fi + +\if@chapter\else + \counterwithout{section}{chapter} +\fi + +%%% +%%% xetex doesn't know microtype, +%%% but xetexko has hangingpunctuation feature, which +%%% we will use instead. +%%% +\ifnokorean\else +\if@microtype + \ifxetex + \usepackage{xetexko-hanging} + \AtBeginDocument{\hangingpunctuation} + \typeout {xoblivoir: use xetexko-hanging instead of microtype} + \else +% \ifluatex +% \enablemicrotype +% \fi + \fi +\fi +\fi + +%%% 기본 자간 +\newdimen\ob@hu % 1jw=.95em, 1hu=1/16jw. see hfontspec.oblivoir +\ifnokorean\ob@hu=\z@\else\ob@hu=.059375em\fi +%%% defaultskip: suppressed (2015/04/19) +\if@manspace +\def\ob@DEFAULTskips{% + \def\memucshangulskips{}% + \def\memucsinterwordskip{% + \spaceskip = .390\BASE@FONTsize plus .1\BASE@FONTsize minus .1\BASE@FONTsize +% \if@nonfrench + \xspaceskip = .432\BASE@FONTsize plus .11\BASE@FONTsize minus .1\BASE@FONTsize +% \fi + }% + \def\memucsinterwordchapterskip{% + \spaceskip = .41\BASE@FONTsize plus .11\BASE@FONTsize minus .1\BASE@FONTsize +% \if@nonfrench + \xspaceskip = .55\BASE@FONTsize plus .1\BASE@FONTsize minus .1\BASE@FONTsize +% \fi + }% +} +\let\DEFAULTskips\ob@DEFAULTskips +\else +\let\memucshangulskips\relax +\let\memucsinterwordskip\relax +\let\memucsinterwordchapterskip\relax +\let\DEFAULTskips\relax +\fi +\def\ob@thinthinspace{\hskip2\ob@hu} +\def\ob@onethirdspace{\hskip5\ob@hu} + +\ifnokorean\else +\if@koreanfn +%%% footnote setting +%%% 99)에 해당하는 박스 길이를 구한 다음 +\newsavebox\mytmpbox\sbox\mytmpbox{\footnotesize 99)\ } +%%% 각주 번호 박스를 길이에 대하여 오른쪽 정렬함. 두 자리 +%%% 각주 번호 기준으로 오른쪽 정렬되도록 만든다. +\footmarkstyle{\makebox[\wd\mytmpbox][r]{#1)\ }} +\setlength\footmarksep{\wd\mytmpbox} +\setlength\footmarkwidth{0pt} +\setlength\footparindent{0pt} +%\ifnokorean\else +\SetFnmark{\textsuperscript}{\textsuperscript{)}} +%\fi +\fi\fi +%%% footnotes and floats. codes from memmanadd.pdf +\renewcommand*{\footnoterule}{\kern-3pt\vfill + \hrule width 0.4\columnwidth \kern 2.6pt} +\setlength{\skip\footins}{1.3\onelineskip} + +%%% toc 등의 레이아웃. +\if@chapter\else +\renewcommand\chaptitlefont{\Large\bfseries} +\renewcommand\printchapternonum{} +\renewcommand\printchaptertitle[1]{\chaptitlefont #1} +\setlength\afterchapskip{\onelineskip} +\setlength\beforechapskip{1.5\onelineskip} +\fi + +\setlength\cftsectionindent{0pt} +\ifnokorean\else +\setlength\cftsectionnumwidth{1.8em} +\setlength\cftsubsectionindent{1.8em} +\setlength\cftsubsectionnumwidth{2.5em} +\fi +\if@chapter\else +\let\cftchapterindent\cftsectionindent +\let\cftchapternumwidth\cftsectionnumwidth +\let\cftbeforechapterskip\cftbeforesectionskip +\fi + +\renewcommand\cftsectionpresnum{\hfill} +\renewcommand\cftsectionaftersnum{\hskip.8em} + +%% moved kscntformat to memhangul-x +%%%% kscntformat +%%%% HLaTeX의 \kscntformat 명령을 흉내냄 +%%%% \kscntformat{section}{제}{절} 형식으로 쓴다. +%\newsavebox{\tmp@XXbox} +%\newdimen\tmp@XXdim +%\def\kscntformat#1#2#3{% +% \sbox{\tmp@XXbox}{#2\expandafter\number\csname c@#1\endcsname#3}% +% \setlength\tmp@XXdim{\wd\tmp@XXbox}\advance\tmp@XXdim by1em% +% \expandafter\def\csname the#1\endcsname{#2\expandafter\number\csname c@#1\endcsname#3}% +% \expandafter\renewcommand\csname cft#1numwidth\endcsname{\tmp@XXdim}% +% \expandafter\renewcommand\csname cft#1presnum\endcsname{}% +% \expandafter\renewcommand\csname cft#1aftersnum\endcsname{}% +%} + +%\ifnokorean\else +%\ifkosection +%\kscntformat{section}{제}{절} +%\renewcommand\thesubsection{\arabic{section}.\arabic{subsection}} +%\fi\fi + +%%% misc settings +\raggedbottom +\ifnokorean +\renewcommand\sectionmark[1]{\markboth{\thetitle}{#1}} +\else +\renewcommand\sectionmark[1]{\markboth{\thetitle}{#1}} +\fi +%\renewcommand\subsectionmark[1]{\markright{#1}} +\ifnokorean +\newcommand*\MarkDocTitle{\markboth{\thetitle}{}} +\else +\newcommand*\MarkDocTitle{\markboth{\thetitle}{}} +\fi + +%%% for bookmarks and hyperref +\def\CallHyperref{% + \ifnobookmarks + \@Call@Hyperref@Without@Bookmarks + \else + \@Call@Hyperref@With@Bookmarks + \fi +} + +\def\@Call@Hyperref@Without@Bookmarks{% + \ifluatex + \usepackage[unicode,bookmarks=false]{hyperref} + \else\ifxetex + \usepackage[bookmarks=false]{hyperref} + \else + \usepackage[unicode,bookmarks=false]{hyperref} + \fi\fi +} + +\def\@Call@Hyperref@With@Bookmarks{% + \ifluatex + \usepackage[unicode]{hyperref} + \else\ifxetex + \usepackage{hyperref} + \else + \usepackage[unicode]{hyperref} + \fi\fi +} + +%% LyX 1.6.x의 Insert-Hyperlink 기능과 충돌하지 않게 하기 위하여 +%% hyperref을 로드하지 않음. (lyxhyper 옵션) +%% note: memhfixc는 memoir 자신이 로드해준다. +\ifnokorean\relax\else + \ifhyperrefwithlyx\relax\else + \CallHyperref +\fi\fi + +%%% \engtxt를 일일이 쓰기 귀찮고 space가 하나밖에 없을 때 +%%% 쓰기 위한 \ensp 매크로. +\newskip\@ensp +\@ensp=.297em plus .02em minus .01em +\def\ensp{\hskip\@ensp} + +%%% article의 pagestyle 기본값은 plain임. +\pagestyle{plain} + +%%% 2006/09/01 \title, \author 문제. reported by IsCho +\AtBeginDocument{% + \@ifundefined{thetitle}{\title{}}{\relax} + \@ifundefined{theauthor}{\author{}}{\relax} +} + +%%% 2006/09/05 [10.5pt] option, [romanfixed] 2006/10/22. +\if@tendotfive + \RequirePackage{10_5} +\fi + +%%%% 2006/10/19. 현범석 님이 지적한 lof, toc 문제 +\if@chapter\else + \usepackage{ob-toclof} +\fi + +%%% oblivoir-chapter (12/20) +\if@chapter +\newcommand\oblivoirchapterstyle[1]{% + \chapterstyle{#1} + \renewcommand{\chapterheadstart}{\clearforchapter\vspace*{\beforechapskip}} +} +\fi + +%%%%%%%%%%%%% APPENDIX + +\ifnokorean\def\appendixrefname{Appendix}\else\def\appendixrefname{부록}\fi +\def\appref#1{\appendixrefname~\ref{#1}} + +\newif\if@AppendixTitleToToc\@AppendixTitleToTocfalse +\newif\if@AttachAppendixTitleToSecnum\@AttachAppendixTitleToSecnumfalse + +\def\AppendixTitleToToc{% + \@AppendixTitleToToctrue +} + +\def\AttachAppendixTitleToSecnum{% + \@AttachAppendixTitleToSecnumtrue +} + +\def\AppendixTitle{% + \chapter*{\appendixname} +} + +\ifnokorean +\usepackage{ob-nokoreanappendix} +\else +\usepackage{ob-koreanappendix} +\fi + +%%%%%%%%%%%%%%% enumerate +\@ifpackageloaded{enumerate}{}{\RequirePackage{enumerate}} +\def\@enloop@{% +%%% why @enhook doesn't work? + \ifx 가\@entemp \def\@tempa{\@enLabel\gana }\else + \ifx ㈎\@entemp \def\@tempa{\@enLabel\pgana }\else + \ifx ㉮\@entemp \def\@tempa{\@enLabel\ogana }\else + \ifx ㄱ\@entemp \def\@tempa{\@enLabel\jaso }\else + \ifx ㈀\@entemp \def\@tempa{\@enLabel\pjaso }\else + \ifx ㉠\@entemp \def\@tempa{\@enLabel\ojaso }\else + \ifx ⑴\@entemp \def\@tempa{\@enLabel\pnum }\else + \ifx ①\@entemp \def\@tempa{\@enLabel\onum }\else + \ifx ⒜\@entemp \def\@tempa{\@enLabel\peng }\else + \ifx ⓐ\@entemp \def\@tempa{\@enLabel\oeng }\else + \ifx ⅰ\@entemp \def\@tempa{\@enLabel\hroman}\else + \ifx Ⅰ\@entemp \def\@tempa{\@enLabel\hRoman}\else +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifx A\@entemp \def\@tempa{\@enLabel\Alph }\else + \ifx a\@entemp \def\@tempa{\@enLabel\alph }\else + \ifx i\@entemp \def\@tempa{\@enLabel\roman }\else + \ifx I\@entemp \def\@tempa{\@enLabel\Roman }\else + \ifx 1\@entemp \def\@tempa{\@enLabel\arabic}\else + \ifx \@sptoken\@entemp \let\@tempa\@enSpace \else + \ifx \bgroup\@entemp \let\@tempa\@enGroup \else + \ifx \@enum@\@entemp \let\@tempa\@gobble \else + \let\@tempa\@enOther + \@enhook + \fi\fi\fi\fi\fi\fi\fi\fi + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi + \@tempa} + +%%% subsection까지 항번을 붙이고 toc에 두자. +\maxtocdepth{subsection} +\maxsecnumdepth{subsection} + +%%% oblivoirallowbreak +\ifx\oblivoirallowbreak\undefined +\def\oblivoirallowbreak{\hskip1sp\hskip-1sp} +\fi + +%%% subfigure package compatibility +\if@subfigure + \let\c@lofdepth\relax + \let\c@lotdepth\relax +\fi + +%%% redefine \see or \seealso +\ifnokorean\else +\@ifundefined{see}{}{% + \renewcommand*{\see}[2]{#1\seename, \hyperpage{#2}} +} +\@ifundefined{seealso}{}{% + \renewcommand*{\seealso}[2]{#1\alsoname, \hyperpage{#2}} +} +\fi + +%%% to avoid conflicts with etextools +\ExplSyntaxOn +\cs_if_exist:NF \globcount +{ \let\globcount\newcount } +\ExplSyntaxOff + +%%% for LaTeX programmers +\let\ifLwarp\if@lwarp + +\endinput + +%%% ChangeLog: +%%% 2015-10-19 : fix conflicts with etextools package. +%%%% 2015-08-01 : drop etex.sty +%%% 2015-07-27 : fix nokorean bug +%%% 2015-07-10 : etex-pkg conflicts fixed. +%%% 2015-04-19 : suppress space factors +%%% 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. +%%% 2011-09-26 : [preloadoption] bugfix. +%%% 2011-09-15 : [fontspec] renamed to [manualfontspec]; and intrudoce [fontspec, xcolor, hyperref, preloadoption] +%%% 2010-09-16 : reserveinserts, lyx compatibility etc. (for TeX Live 2010) +%%% 08:46 2010-02-09 : [microtype] -> hanging punctuation (xetexko) +%%% 10:16 2009-10-27 : [preload] 옵션 +%%% 오전 3:12 2009-04-07 : [lyxhyper] 옵션 +%%% 오전 6:36 2008-09-18 : revive microtype option, in spite of its impotence. +%%% 오후 2:16 2008-09-18 : latinquote 옵션 +%%% 오전 4:58 2008-09-30 : xkospace 새 버전에 맞춘 대대적인 수정. +%%% : enumerate, hangul item title, 기호문자 등을 추가. +%%% 오후 5:25 2008-10-07 : revive gremph/itemph +%%% 오전 10:51 2008-10-08 : revive kscntformat +%%% 오전 5:12 2008-10-12 : fontspec, moreverb, xob-hanfont +%%% 오전 1:19 2008-10-13 : xetexko v0.1 반영 +%%% 오전 12:50 2008-10-22 : fawd, faht 옵션 추가. (workaround with flowfram) +%%% 오후 12:22 2008-10-24 : add [unicode] option to hyperref under LuaTeX +%%% 13:49 2008-11-24 : add [amsmath] option to avoid LyX's auto loading problem under XeLaTeX. +%%% 오후 17:59 2008-12-03 : nowinname 옵션 추가 diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-xlua.cls b/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-xlua.cls deleted file mode 100644 index 5afc06b4b9e..00000000000 --- a/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-xlua.cls +++ /dev/null @@ -1,497 +0,0 @@ -%% File `oblivoir-xlua.cls` -%% -%% (C) Copyright 2006-2015 Kangsoo Kim -%% -%% 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. -%% -%% an oblivoir-compatible package for using with LuaLaTeX or XeLaTeX. -%% depends upon Dohyun Kim's xetexko and the author's memhangul-x. -%% -\ProvidesClass{oblivoir-xlua} - [2015/10/19 v0.8.3 article-like class to typeset UTF-8 korean using memoir.] -\typeout{A variant of oblivoir class for Lua- or XeLaTeX.} - -\providecommand\@DisabledOption[1]{% - \typeout{[#1] option is deprecated}} - -\RequirePackage{xkeyval} - -%%% Disabled Options -\DeclareOptionX{dvips}{\@DisabledOption{\CurrentOption}} -\DeclareOptionX{romanfixed}{\@DisabledOption{\CurrentOption}} -\DeclareOptionX{finemath}{\@DisabledOption{\CurrentOption}} -\DeclareOptionX{nofinemath}{\@DisabledOption{\CurrentOption}} -\DeclareOptionX{strictcharcheck}{\@DisabledOption{\CurrentOption}} -\DeclareOptionX{noreserveinserts}{\@DisabledOption{\CurrentOption}} - -%%% active Options -\newif\ifnokorean\nokoreanfalse -\DeclareOptionX{nokorean}{\nokoreantrue} -\newif\if@polyglossia\@polyglossiafalse -\DeclareOptionX{polyglossia}{\@polyglossiatrue} -\newif\iftwosidedoc\twosidedocfalse -\DeclareOptionX{twoside}{\twosidedoctrue} -\newif\ifopenrightdoc\openrightdocfalse -\DeclareOptionX{openright}{\openrightdoctrue} -\newif\ifkosection\kosectionfalse -\DeclareOptionX{kosection}{\kosectiontrue} -\newif\ifnobookmarks\nobookmarksfalse -\DeclareOptionX{nobookmarks}{\nobookmarkstrue} -\newif\ifhyperrefwithlyx\hyperrefwithlyxfalse -\DeclareOptionX{lyxhyper}{\hyperrefwithlyxtrue}{\hyperrefwithlyxfalse} -\newif\if@tendotfive\@tendotfivefalse -\DeclareOptionX{10.5pt}{\@tendotfivetrue} -\newif\if@koreanfn\@koreanfnfalse -\DeclareOptionX{footnote}{\@koreanfntrue} -\newif\if@toclofentry\@toclofentryfalse -\DeclareOptionX{tocentry}{\@toclofentrytrue} -%\newif\if@itemph\@itemphfalse -\DeclareOptionX{itemph}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} -\DeclareOptionX{gremph}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} -\newif\if@chapter\@chapterfalse -\DeclareOptionX{chapter}{\@chaptertrue\@toclofentrytrue} -\newif\if@microtype\@microtypefalse -\DeclareOptionX{microtype}{\@microtypetrue} -\newif\if@subfigure\@subfigurefalse -\DeclareOptionX{subfigure}{\@subfiguretrue} -\DeclareOptionX{adjustmath}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} -\newif\if@manspace\@manspacefalse -\DeclareOptionX{obspace}{\@manspacetrue} -% -%%% new Options -\DeclareOptionX{latinquote}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} -%%% changed fontspec -> manualfontspec -\DeclareOptionX{fontspec}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} -\newif\if@moreverb\@moreverbfalse -\DeclareOptionX{moreverb}{\@moreverbtrue} -\newif\if@foursix\@foursixfalse\newlength\fa@setheight\newlength\fa@setwidth -\DeclareOptionX{faht}[]{\fa@setheight=#1\@foursixtrue} -\DeclareOptionX{fawd}[]{\fa@setwidth=#1\@foursixtrue} -\newif\if@amsmath\@amsmathfalse -\DeclareOptionX{amsmath}{\@amsmathtrue} -\DeclareOptionX{nowinname}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} -% -\newif\ifPRELOAD\PRELOADfalse -\DeclareOptionX{preload}[]{\PRELOADtrue\def\PRELOADstr{#1}} -\def\PRELOADoptstr{} -\DeclareOptionX{preloadoption}[]{\def\PRELOADoptstr{#1}} - -%% [nounfonts] -\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}} - -\DeclareOptionX{cjk}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} -%\DeclareOptionX{cjkoption}[]{\PassOptionsToPackage{#1}{cjkutf8-ko}} -\DeclareOptionX{dhucs}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} - -%%% compatibility options -\DeclareOptionX{uset1font}{\PassOptionsToPackage{usecjkt1font}{cjkutf8-ko}} -\DeclareOptionX{usedotemph}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} - -%%% -\DeclareOptionX*{% - \PassOptionsToClass{\CurrentOption}{memoir}% -} -% -\ProcessOptionsX - -% expl3 -\RequirePackage{expl3,xparse} - -%%% moreverb -\if@moreverb - \RequirePackage{moreverb} -\fi - -%%% preload -\ifPRELOAD - \RequirePackage[\PRELOADoptstr]{\PRELOADstr} - \ifx\medspace\undefined\relax\else\let\medspace\relax\fi -\fi - -%% LyX compatibility -\ifx\@textsubscript\undefined\else - \let\@textsubscript\relax -\fi - -%%% memoir/memhangul-ucs 로드. -\if@chapter - \LoadClass[openany]{memoir} -\else -\iftwosidedoc - \LoadClass[article,openany]{memoir} -\else - \LoadClass[article,openany,oneside]{memoir} -\fi -\fi - -%%% fontspec problem -% \RequirePackage{etex}\reserveinserts{40}% - -%%% workaround with flowfram -\if@foursix - \newcommand*{\fa@dblfoursix}{\stockheight=\fa@setheight \stockwidth=\fa@setwidth} - \fa@dblfoursix -\fi - -%%% ams{math|symb} -\if@amsmath - \RequirePackage{amsmath,xob-amssymb} -\fi - -%%% -\ifopenrightdoc\openright\fi - -\RequirePackage{ifluatex} -\RequirePackage{ifxetex} - -%%\RequirePackage{comment} -%%\def\finemath@status{} - -%\ifxetex\else\ifluatex\else -% \PackageError{xoblivoir}{This Document requires Xe(La)TeX or Lua(La)TeX!}{} -%\fi\fi - -\def\@Load@Memhangul{% - \if@polyglossia - \RequirePackage[polyglossia]{memhangul-x} - \else - \RequirePackage[nonfrench,hangulpagestyle]{memhangul-x} - \fi -} - -\ifnokorean\else - \@Load@Memhangul -\fi - -\if@chapter\else - \counterwithout{section}{chapter} -\fi - -%%% -%%% xetex doesn't know microtype, -%%% but xetexko has hangingpunctuation feature, which -%%% we will use instead. -%%% -\ifnokorean\else -\if@microtype - \ifxetex - \usepackage{xetexko-hanging} - \AtBeginDocument{\hangingpunctuation} - \typeout {xoblivoir: use xetexko-hanging instead of microtype} - \else -% \ifluatex -% \enablemicrotype -% \fi - \fi -\fi -\fi - -%%% 기본 자간 -\newdimen\ob@hu % 1jw=.95em, 1hu=1/16jw. see hfontspec.oblivoir -\ifnokorean\ob@hu=\z@\else\ob@hu=.059375em\fi -%%% defaultskip: suppressed (2015/04/19) -\if@manspace -\def\ob@DEFAULTskips{% - \def\memucshangulskips{}% - \def\memucsinterwordskip{% - \spaceskip = .390\BASE@FONTsize plus .1\BASE@FONTsize minus .1\BASE@FONTsize -% \if@nonfrench - \xspaceskip = .432\BASE@FONTsize plus .11\BASE@FONTsize minus .1\BASE@FONTsize -% \fi - }% - \def\memucsinterwordchapterskip{% - \spaceskip = .41\BASE@FONTsize plus .11\BASE@FONTsize minus .1\BASE@FONTsize -% \if@nonfrench - \xspaceskip = .55\BASE@FONTsize plus .1\BASE@FONTsize minus .1\BASE@FONTsize -% \fi - }% -} -\let\DEFAULTskips\ob@DEFAULTskips -\else -\let\memucshangulskips\relax -\let\memucsinterwordskip\relax -\let\memucsinterwordchapterskip\relax -\let\DEFAULTskips\relax -\fi -\def\ob@thinthinspace{\hskip2\ob@hu} -\def\ob@onethirdspace{\hskip5\ob@hu} - -\ifnokorean\else -\if@koreanfn -%%% footnote setting -%%% 99)에 해당하는 박스 길이를 구한 다음 -\newsavebox\mytmpbox\sbox\mytmpbox{\footnotesize 99)\ } -%%% 각주 번호 박스를 길이에 대하여 오른쪽 정렬함. 두 자리 -%%% 각주 번호 기준으로 오른쪽 정렬되도록 만든다. -\footmarkstyle{\makebox[\wd\mytmpbox][r]{#1)\ }} -\setlength\footmarksep{\wd\mytmpbox} -\setlength\footmarkwidth{0pt} -\setlength\footparindent{0pt} -%\ifnokorean\else -\SetFnmark{\textsuperscript}{\textsuperscript{)}} -%\fi -\fi\fi -%%% footnotes and floats. codes from memmanadd.pdf -\renewcommand*{\footnoterule}{\kern-3pt\vfill - \hrule width 0.4\columnwidth \kern 2.6pt} -\setlength{\skip\footins}{1.3\onelineskip} - -%%% toc 등의 레이아웃. -\if@chapter\else -\renewcommand\chaptitlefont{\Large\bfseries} -\renewcommand\printchapternonum{} -\renewcommand\printchaptertitle[1]{\chaptitlefont #1} -\setlength\afterchapskip{\onelineskip} -\setlength\beforechapskip{1.5\onelineskip} -\fi - -\setlength\cftsectionindent{0pt} -\ifnokorean\else -\setlength\cftsectionnumwidth{1.8em} -\setlength\cftsubsectionindent{1.8em} -\setlength\cftsubsectionnumwidth{2.5em} -\fi -\if@chapter\else -\let\cftchapterindent\cftsectionindent -\let\cftchapternumwidth\cftsectionnumwidth -\let\cftbeforechapterskip\cftbeforesectionskip -\fi - -\renewcommand\cftsectionpresnum{\hfill} -\renewcommand\cftsectionaftersnum{\hskip.8em} - -%% moved kscntformat to memhangul-x -%%%% kscntformat -%%%% HLaTeX의 \kscntformat 명령을 흉내냄 -%%%% \kscntformat{section}{제}{절} 형식으로 쓴다. -%\newsavebox{\tmp@XXbox} -%\newdimen\tmp@XXdim -%\def\kscntformat#1#2#3{% -% \sbox{\tmp@XXbox}{#2\expandafter\number\csname c@#1\endcsname#3}% -% \setlength\tmp@XXdim{\wd\tmp@XXbox}\advance\tmp@XXdim by1em% -% \expandafter\def\csname the#1\endcsname{#2\expandafter\number\csname c@#1\endcsname#3}% -% \expandafter\renewcommand\csname cft#1numwidth\endcsname{\tmp@XXdim}% -% \expandafter\renewcommand\csname cft#1presnum\endcsname{}% -% \expandafter\renewcommand\csname cft#1aftersnum\endcsname{}% -%} - -%\ifnokorean\else -%\ifkosection -%\kscntformat{section}{제}{절} -%\renewcommand\thesubsection{\arabic{section}.\arabic{subsection}} -%\fi\fi - -%%% misc settings -\raggedbottom -\ifnokorean -\renewcommand\sectionmark[1]{\markboth{\thetitle}{#1}} -\else -\renewcommand\sectionmark[1]{\markboth{\thetitle}{#1}} -\fi -%\renewcommand\subsectionmark[1]{\markright{#1}} -\ifnokorean -\newcommand*\MarkDocTitle{\markboth{\thetitle}{}} -\else -\newcommand*\MarkDocTitle{\markboth{\thetitle}{}} -\fi - -%%% for bookmarks and hyperref -\def\CallHyperref{% - \ifnobookmarks - \@Call@Hyperref@Without@Bookmarks - \else - \@Call@Hyperref@With@Bookmarks - \fi -} - -\def\@Call@Hyperref@Without@Bookmarks{% - \ifluatex - \usepackage[unicode,bookmarks=false]{hyperref} - \else\ifxetex - \usepackage[bookmarks=false]{hyperref} - \else - \usepackage[unicode,bookmarks=false]{hyperref} - \fi\fi -} - -\def\@Call@Hyperref@With@Bookmarks{% - \ifluatex - \usepackage[unicode]{hyperref} - \else\ifxetex - \usepackage{hyperref} - \else - \usepackage[unicode]{hyperref} - \fi\fi -} - -%% LyX 1.6.x의 Insert-Hyperlink 기능과 충돌하지 않게 하기 위하여 -%% hyperref을 로드하지 않음. (lyxhyper 옵션) -%% note: memhfixc는 memoir 자신이 로드해준다. -\ifnokorean\relax\else - \ifhyperrefwithlyx\relax\else - \CallHyperref -\fi\fi - -%%% \engtxt를 일일이 쓰기 귀찮고 space가 하나밖에 없을 때 -%%% 쓰기 위한 \ensp 매크로. -\newskip\@ensp -\@ensp=.297em plus .02em minus .01em -\def\ensp{\hskip\@ensp} - -%%% article의 pagestyle 기본값은 plain임. -\pagestyle{plain} - -%%% 2006/09/01 \title, \author 문제. reported by IsCho -\AtBeginDocument{% - \@ifundefined{thetitle}{\title{}}{\relax} - \@ifundefined{theauthor}{\author{}}{\relax} -} - -%%% 2006/09/05 [10.5pt] option, [romanfixed] 2006/10/22. -\if@tendotfive - \RequirePackage{10_5} -\fi - -%%%% 2006/10/19. 현범석 님이 지적한 lof, toc 문제 -\if@chapter\else - \usepackage{ob-toclof} -\fi - -%%% oblivoir-chapter (12/20) -\if@chapter -\newcommand\oblivoirchapterstyle[1]{% - \chapterstyle{#1} - \renewcommand{\chapterheadstart}{\clearforchapter\vspace*{\beforechapskip}} -} -\fi - -%%%%%%%%%%%%% APPENDIX - -\ifnokorean\def\appendixrefname{Appendix}\else\def\appendixrefname{부록}\fi -\def\appref#1{\appendixrefname~\ref{#1}} - -\newif\if@AppendixTitleToToc\@AppendixTitleToTocfalse -\newif\if@AttachAppendixTitleToSecnum\@AttachAppendixTitleToSecnumfalse - -\def\AppendixTitleToToc{% - \@AppendixTitleToToctrue -} - -\def\AttachAppendixTitleToSecnum{% - \@AttachAppendixTitleToSecnumtrue -} - -\def\AppendixTitle{% - \chapter*{\appendixname} -} - -\ifnokorean -\usepackage{ob-nokoreanappendix} -\else -\usepackage{ob-koreanappendix} -\fi - -%%%%%%%%%%%%%%% enumerate -\@ifpackageloaded{enumerate}{}{\RequirePackage{enumerate}} -\def\@enloop@{% -%%% why @enhook doesn't work? - \ifx 가\@entemp \def\@tempa{\@enLabel\gana }\else - \ifx ㈎\@entemp \def\@tempa{\@enLabel\pgana }\else - \ifx ㉮\@entemp \def\@tempa{\@enLabel\ogana }\else - \ifx ㄱ\@entemp \def\@tempa{\@enLabel\jaso }\else - \ifx ㈀\@entemp \def\@tempa{\@enLabel\pjaso }\else - \ifx ㉠\@entemp \def\@tempa{\@enLabel\ojaso }\else - \ifx ⑴\@entemp \def\@tempa{\@enLabel\pnum }\else - \ifx ①\@entemp \def\@tempa{\@enLabel\onum }\else - \ifx ⒜\@entemp \def\@tempa{\@enLabel\peng }\else - \ifx ⓐ\@entemp \def\@tempa{\@enLabel\oeng }\else - \ifx ⅰ\@entemp \def\@tempa{\@enLabel\hroman}\else - \ifx Ⅰ\@entemp \def\@tempa{\@enLabel\hRoman}\else -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \ifx A\@entemp \def\@tempa{\@enLabel\Alph }\else - \ifx a\@entemp \def\@tempa{\@enLabel\alph }\else - \ifx i\@entemp \def\@tempa{\@enLabel\roman }\else - \ifx I\@entemp \def\@tempa{\@enLabel\Roman }\else - \ifx 1\@entemp \def\@tempa{\@enLabel\arabic}\else - \ifx \@sptoken\@entemp \let\@tempa\@enSpace \else - \ifx \bgroup\@entemp \let\@tempa\@enGroup \else - \ifx \@enum@\@entemp \let\@tempa\@gobble \else - \let\@tempa\@enOther - \@enhook - \fi\fi\fi\fi\fi\fi\fi\fi - \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi - \@tempa} - -%%% subsection까지 항번을 붙이고 toc에 두자. -\maxtocdepth{subsection} -\maxsecnumdepth{subsection} - -%%% oblivoirallowbreak -\ifx\oblivoirallowbreak\undefined -\def\oblivoirallowbreak{\hskip1sp\hskip-1sp} -\fi - -%%% subfigure package compatibility -\if@subfigure - \let\c@lofdepth\relax - \let\c@lotdepth\relax -\fi - -%%% redefine \see or \seealso -\ifnokorean\else -\@ifundefined{see}{}{% - \renewcommand*{\see}[2]{#1\seename, \hyperpage{#2}} -} -\@ifundefined{seealso}{}{% - \renewcommand*{\seealso}[2]{#1\alsoname, \hyperpage{#2}} -} -\fi - -%%% to avoid conflicts with etextools -\ExplSyntaxOn -\cs_if_exist:NF \globcount -{ \let\globcount\newcount } -\ExplSyntaxOff - -\endinput - -%%% ChangeLog: -%%% 2015-10-19 : fix conflicts with etextools package. -%%%% 2015-08-01 : drop etex.sty -%%% 2015-07-27 : fix nokorean bug -%%% 2015-07-10 : etex-pkg conflicts fixed. -%%% 2015-04-19 : suppress space factors -%%% 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. -%%% 2011-09-26 : [preloadoption] bugfix. -%%% 2011-09-15 : [fontspec] renamed to [manualfontspec]; and intrudoce [fontspec, xcolor, hyperref, preloadoption] -%%% 2010-09-16 : reserveinserts, lyx compatibility etc. (for TeX Live 2010) -%%% 08:46 2010-02-09 : [microtype] -> hanging punctuation (xetexko) -%%% 10:16 2009-10-27 : [preload] 옵션 -%%% 오전 3:12 2009-04-07 : [lyxhyper] 옵션 -%%% 오전 6:36 2008-09-18 : revive microtype option, in spite of its impotence. -%%% 오후 2:16 2008-09-18 : latinquote 옵션 -%%% 오전 4:58 2008-09-30 : xkospace 새 버전에 맞춘 대대적인 수정. -%%% : enumerate, hangul item title, 기호문자 등을 추가. -%%% 오후 5:25 2008-10-07 : revive gremph/itemph -%%% 오전 10:51 2008-10-08 : revive kscntformat -%%% 오전 5:12 2008-10-12 : fontspec, moreverb, xob-hanfont -%%% 오전 1:19 2008-10-13 : xetexko v0.1 반영 -%%% 오전 12:50 2008-10-22 : fawd, faht 옵션 추가. (workaround with flowfram) -%%% 오후 12:22 2008-10-24 : add [unicode] option to hyperref under LuaTeX -%%% 13:49 2008-11-24 : add [amsmath] option to avoid LyX's auto loading problem under XeLaTeX. -%%% 오후 17:59 2008-12-03 : nowinname 옵션 추가 diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir.cls b/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir.cls index 82c2faa98db..79a0f8f908b 100644 --- a/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir.cls +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir.cls @@ -1,7 +1,6 @@ %% File `oblivoir.cls` %% -%% (C) Copyright 2006-2013 Kangsoo Kim -%% (C) Copyright 2013 Kihwang Lee +%% (C) Copyright 2006-2020 Kangsoo Kim %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3c @@ -11,13 +10,57 @@ %% and version 1.3c or later is part of all distributions of LaTeX %% version 2006/05/20 or later. %% -%% Read LICENSE included in the package. -%% -%% -------------------------------------------------------- -%% oblivoir.cls +\ProvidesClass{oblivoir}[2020/02/09 v2.2] + +\RequirePackage{xkeyval} +\RequirePackage{xparse} + +\newif\if@CJK\@CJKfalse +\DeclareOptionX{cjk}[]{\@CJKtrue} +\DeclareOptionX{dhucs}[]{\@CJKfalse} +%%% +%%% [fontspec] option introduced +\DeclareOptionX{fontspec}[]{\PassOptionsToPackage{{#1}}{fontspec}} +\DeclareOptionX{hyperref}[]{\PassOptionsToPackage{#1}{hyperref}} +\DeclareOptionX{xcolor}[]{\PassOptionsToPackage{#1}{xcolor}} +\DeclareOptionX{chapter}[]{} + +\ProcessOptionsX + +%%% ifluaorxetex.sty +\RequirePackage{iftex} + +\newif\ifLuaOrXeTeX +%\ifXeTeX\global\LuaOrXeTeXtrue +% \else\ifLuaTeX\global\LuaOrXeTeXtrue +% \else\global\LuaOrXeTeXfalse +%\fi\fi +\ExplSyntaxOn +\bool_if:nTF { \sys_if_engine_xetex_p: || \sys_if_engine_luatex_p: } +{ + \LuaOrXeTeXtrue +} +{ + \LuaOrXeTeXfalse +} +\ExplSyntaxOff -\ProvidesClass{oblivoir} -\LoadClassWithOptions{xoblivoir} +\ifLuaOrXeTeX +\LoadClassWithOptions{oblivoir-xl} +% \ifLuaTeX +% \typeout{HANGUL DRIVER: luatexko} +% \else +% \typeout{HANGUL DRIVER: xetexko} +% \fi +\else + \if@CJK + \LoadClassWithOptions{oblivoir-xl} + \typeout{HANGUL DRIVER: cjk-ko} + \else + \LoadClassWithOptions{oblivoir-utf} + \typeout{HANGUL DRIVER: kotex-utf} + \fi +\fi \endinput diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/xoblivoir.cls b/Master/texmf-dist/tex/latex/kotex-oblivoir/xoblivoir.cls index 4d7851eba89..4d2c8424255 100644 --- a/Master/texmf-dist/tex/latex/kotex-oblivoir/xoblivoir.cls +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/xoblivoir.cls @@ -1,6 +1,7 @@ %% File `xoblivoir.cls` %% -%% (C) Copyright 2006-2015 Kangsoo Kim +%% (C) Copyright 2006-2020 Kangsoo Kim +%% (C) Copyright 2013 Kihwang Lee %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3c @@ -10,45 +11,13 @@ %% and version 1.3c or later is part of all distributions of LaTeX %% version 2006/05/20 or later. %% -\ProvidesClass{xoblivoir}[2015/07/27] - -\RequirePackage{xkeyval} - -\newif\if@CJK\@CJKfalse -\DeclareOptionX{cjk}[]{\@CJKtrue} -\DeclareOptionX{dhucs}[]{\@CJKfalse} -%%% -%%% [fontspec] option introduced -\DeclareOptionX{fontspec}[]{\PassOptionsToPackage{{#1}}{fontspec}} -\DeclareOptionX{hyperref}[]{\PassOptionsToPackage{#1}{hyperref}} -\DeclareOptionX{xcolor}[]{\PassOptionsToPackage{#1}{xcolor}} - -\ProcessOptionsX - -%%% ifluaorxetex.sty -\RequirePackage{iftex} +%% Read LICENSE included in the package. +%% +%% -------------------------------------------------------- +%% oblivoir.cls -\newif\ifLuaOrXeTeX -\ifXeTeX\global\LuaOrXeTeXtrue - \else\ifLuaTeX\global\LuaOrXeTeXtrue - \else\global\LuaOrXeTeXfalse -\fi\fi +\ProvidesClass{xoblivoir} -\ifLuaOrXeTeX -\LoadClassWithOptions{oblivoir-xlua} -% \ifLuaTeX -% \typeout{HANGUL DRIVER: luatexko} -% \else -% \typeout{HANGUL DRIVER: xetexko} -% \fi -\else - \if@CJK - \LoadClassWithOptions{oblivoir-xlua} - \typeout{HANGUL DRIVER: cjk-ko} - \else - \LoadClassWithOptions{oblivoir-base} - \typeout{HANGUL DRIVER: kotex-utf} - \fi -\fi +\LoadClassWithOptions{oblivoir} \endinput diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds index 788bfd34018..333d335e7da 100755 --- a/Master/tlpkg/libexec/ctan2tds +++ b/Master/tlpkg/libexec/ctan2tds @@ -1417,6 +1417,7 @@ chomp (my $ctan_root = `tlpkginfo --ctan-root`); 'ibygrk' => '&PREHOOK_ibygrk', 'iodhbwm' => '&PREHOOK_flatten1', 'knuth-local' => '&PREHOOK_knuth_local', + 'kotex-oblivoir' => '&PREHOOK_flatten1', 'ktv-texdata' => '&PREHOOK_ktv_texdata', 'latexdiff' => '&PREHOOK_latexdiff', 'latexindent' => '&PREHOOK_latexindent', -- cgit v1.2.3