diff options
author | Karl Berry <karl@freefriends.org> | 2013-11-09 00:55:18 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-11-09 00:55:18 +0000 |
commit | f4d3a4f47afd5a44932519e53c9660c90c3cd61c (patch) | |
tree | 0d27d4a429ce9b16bc95d09e09fce66c8018c394 /Master/texmf-dist | |
parent | d6aeafcbba09b7d46df19292790393b475facb8e (diff) |
kotex-oblivoir
git-svn-id: svn://tug.org/texlive/trunk@32105 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
32 files changed, 9634 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/kotex-oblivoir/README b/Master/texmf-dist/doc/latex/kotex-oblivoir/README new file mode 100644 index 00000000000..83b00755a34 --- /dev/null +++ b/Master/texmf-dist/doc/latex/kotex-oblivoir/README @@ -0,0 +1,122 @@ +kotex-oblivoir +============== + +Introduction +------------ + +This package contains the oblivoir class, a document class based on +the memoir class for typesetting Korean documents. kotex-oblivoir +comes with two sub-packages memhangul-ucs and memhangul-x +that provide interfaces between the memoir class and the Korean typesetting +packages. + +kotex-oblivoir belongs to the ko.TeX, a comprehensive Korean typesetting +system together with packages kotex-utf, kotex-plain, kotex-utils, +cjk-ko, xetexko, and luatexko. + +Dependencies +------------ + +kotex-oblivoir depends on the following packages to function: + +* memoir: base class +* kotex-utf: Korean typesetting + +Files +----- + +### TeXinputs + + oblivoir-base.cls -> tex/latex/kotex-oblivoir/ + oblivoir-xlua.cls -> tex/latex/kotex-oblivoir/ + oblivoir.cls -> tex/latex/kotex-oblivoir/ + xoblivoir.cls -> tex/latex/kotex-oblivoir/ + memhangul-ucs/10_5.sty -> tex/latex/kotex-oblvoir/memhangul-ucs/ + memhangul-ucs/fapapersize.sty -> tex/latex/kotex-oblvoir/memhangul-ucs/ + memhangul-ucs/hfontsel.sty -> tex/latex/kotex-oblvoir/memhangul-ucs/ + memhangul-ucs/hfontspec.nanum -> tex/latex/kotex-oblvoir/memhangul-ucs/ + memhangul-ucs/memhangul-common.sty -> tex/latex/kotex-oblvoir/memhangul-ucs/ + memhangul-ucs/memhangul-patch.sty -> tex/latex/kotex-oblvoir/memhangul-ucs/ + memhangul-ucs/memhangul-ucs.sty -> tex/latex/kotex-oblvoir/memhangul-ucs/ + memhangul-ucs/memucs-enumerate.sty -> tex/latex/kotex-oblvoir/memhangul-ucs/ + memhangul-ucs/memucs-gremph.sty -> tex/latex/kotex-oblvoir/memhangul-ucs/ + memhangul-ucs/memucs-interword.sty -> tex/latex/kotex-oblvoir/memhangul-ucs/ + memhangul-ucs/memucs-setspace.sty -> tex/latex/kotex-oblvoir/memhangul-ucs/ + memhangul-ucs/nanumfontsel.sty -> tex/latex/kotex-oblvoir/memhangul-ucs/ + memhangul-ucs/ob-koreanappendix.sty -> tex/latex/kotex-oblvoir/memhangul-ucs/ + memhangul-ucs/ob-nokoreanappendix.sty -> tex/latex/kotex-oblvoir/memhangul-ucs/ + memhangul-ucs/ob-toclof.sty -> tex/latex/kotex-oblvoir/memhangul-ucs/ + memhangul-x/luatexko-xobfont.sty -> tex/latex/kotex-oblivoir/memhangul-x/ + memhangul-x/memhangul-x.sty -> tex/latex/kotex-oblivoir/memhangul-x/ + memhangul-x/memucs-interword-x.sty -> tex/latex/kotex-oblivoir/memhangul-x/ + memhangul-x/xetexko-var.sty -> tex/latex/kotex-oblivoir/memhangul-x/ + memhangul-x/xetexko-xobfont.sty -> tex/latex/kotex-oblivoir/memhangul-x/ + memhangul-x/xob-amssymb.sty -> tex/latex/kotex-oblivoir/memhangul-x/ + memhangul-x/xob-dotemph.sty -> tex/latex/kotex-oblivoir/memhangul-x/ + memhangul-x/xob-hyper.sty -> tex/latex/kotex-oblivoir/memhangul-x/ + memhangul-x/xob-paralist.sty -> tex/latex/kotex-oblivoir/memhangul-x/ + +### Documents + + README (this file) -> doc/latex/kotex-oblivoir/ + oblivoir-simpledoc.pdf -> doc/latex/kotex-oblivoir/ + oblivoir-simpledoc.tex -> doc/latex/kotex-oblivoir/ + oblivoir-text.tex -> doc/latex/kotex-oblivoir/ + +Usage +----- + +Call `oblivoir.cls` with class options as follows: + + \documentclass[<options>]{oblivoir} + +### Class options + +Oblivoir inherits many options from the memoir and underlying +Korean typesetting packages in addition to its own class options. +For a detailed description of the class options, please refer +to the included documentation (written in Korean). + +### Specifying Korean fonts + +Specifying Korean fonts in oblivoir class depends on the Korean +typesetting packages being used when compiling a document. + +With kotex-utf package, you can use `\SetHangulFonts`, `\SetHanjaFonts`, +`\SetAdhocFonts`. + +You can use fontspec package style commands when typesetting Korean +using XeTeX-ko or LuaTeX-ko as follows: + + \setmainfont[<Options>]{<Font Name>} + \setsansfont[<Options>]{<Font Name>} + \setmonofont[<Options>]{<Font Name>} + \setmainhangulfont[<Options>]{FontName} + \setsanshangulfont[<Options>]{FontName} + \setmonohangulfont[<Options>]{FontName} + \setmainhanjafont[<Options>]{FontName} + \setsanshanjafont[<Options>]{FontName} + \setmonohanjafont[<Options>]{FontName} + +Oblivoir class also has its own commands for specifying Korean fonts. + + \setkormainfont(<Bold>)(<Italic>){<Regular>} + \setkorsansfont(<Bold>)(<Italic>){<Regular>} + \setkormonofont{<Mono>} + +### Sample document + +Please refer to the `oblivoir-test.tex` file provided by this package. + +License +------- + +kotex-oblivoir is licensed under the LaTeX Project Public +License (LPPL). + +Contacts +-------- + +Please report any errors or suggestions to the package maintainer, +Kihwang Lee <leekh at ktug org>. + diff --git a/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-simpledoc.pdf b/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-simpledoc.pdf Binary files differnew file mode 100644 index 00000000000..96a9a9ea606 --- /dev/null +++ b/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-simpledoc.pdf 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..3dc35ee9c2a --- /dev/null +++ b/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-simpledoc.tex @@ -0,0 +1,1113 @@ +% !TEX Encoding = UTF-8 Unicode +%%% +%%% \xobclass{} 2008/10/23 +%%% --10/09 Windows에서 작성/테스트함. +%%% ---10/10 Ubuntu Hardy에서 테스트함. 나눔명조체 설치. +%%% +\documentclass[ + 12pt, + a4paper, + kosection, + footnote, + nobookmarks, + microtype, + hyperref=colorlinks, +% xcolor=x11names, +% fontspec=no-math, +]{xoblivoir} %% ,latinquote + +%\documentclass[12pt,a4paper,footnote,xcolor={svgnames}{oblivoir} + +\usepackage{fapapersize} +\usefapapersize{*,*,30mm,*,35mm,*} + +\usepackage{kotex-logo} + +\def\myREF#1#2{% + \ifPDFTeX \ref{#1}\else \ref{#2}\fi +} +\def\myLabel#1#2{% + \ifPDFTeX \label{#1}\else \label{#2}\fi +} +\def\myPageREF#1#2{% + \ifPDFTeX \pageref{#1}\else \pageref{#2}\fi +} + +\ifx\oblivoirdblquote\undefined +\def\oblivoirdblquote#1{``#1''} +\fi + +\ifPDFTeX +\ifx\XeTeX\undefined +\def\Xe{\hologo{Xe}} +\def\XeTeX{\hologo{XeTeX}} +\def\XeLaTeX{\hologo{XeLaTeX}} +\fi +\ifx\LuaTeX\undefined +\def\LuaTeX{\hologo{LuaTeX}} +\def\LuaLaTeX{\hologo{LuaLaTeX}} +\fi +\else +%%%%%% tested on Windows XP SP3 +\setkormonofont{은 필기} +\setmonoscale{0.9} +\defaultfontfeatures{Mapping=tex-text} +%%%%%% tested on Linux/Ubuntu +%\setmainfont[Mapping=tex-text]{Bradley Hand ITC} +%\setmonofont[Scale=.85]{Comic Sans MS} +%\setmainfont[Mapping=tex-text]{Monotype Corsiva} +\setmonofont[Scale=.85]{Monaco} +%\setkormainfont(문화 궁서 Std L){문화 궁서 흐림 Std L}(){네이버사전} +\setkormainfont(* Bold)(*){HCR Batang LVT} +%\setkorsansfont(문화 궁서 Std B)(문화 훈민 Std R){문화 고딕 Std R}(){한컴돋움} +%%%%%%%%%%%%%%%%%%%%%%%%%%% +\fi + +\newcommand\xobclass{x\-ob\-liv\-oir\oblivoirallowbreak} +\newcommand\obclass{ob\-liv\-oir\oblivoirallowbreak} +\def\xetexko{\XeTeX-\ko} + +\pagestyle{ruled} + +\usepackage{tabu} +\usepackage[normalem]{ulem} + +\begin{document} + +\title{초간단 \obclass{} v2.0 사용법} + +\date{2013년 10월} + +\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] 그림과 표에 <그림 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 환경의 줄간격을 `좁은 줄간격'으로 줄인다. +\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{폰트 설정 방식에 대한 간단한 설명}\label{sec:font} + +\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{} 매크로가 있으므로 이에 대해서는 \xetexko{} 매뉴얼을 + 참고하라. +} + +\paragraph{라틴 문자} +라틴 문자 폰트는 fontspec 패키지의 방식을 따른다. +설정과 사용에 대해서는 fontspec 패키지 문서를 참고하라. +매우 방대하고 훌륭한 문서이다. +\begin{boxedverbatim} +\setmainfont{<Font Name>} +\setsansfont{...} +\setmonofont{...} +\end{boxedverbatim} + +이 명령의 옵션으로 \verb|[Ligatures=TeX]|을 주면 \verb|``|, \verb|---|와 같은 +입력이 ``, ---와 같이 나타난다. 대부분의 텍 소스에는 이런 이른바 텍 리거쳐를 사용하는 것이 +일반적이므로 이 옵션을 지정하는 것이 좋다. \XeTeX 에서 \verb|[Mapping=tex-text]| 옵션을 +써도 좋은데 이 옵션은 \LuaTeX 에서는 무의미하므로 양쪽에 통용되는 \verb|[Ligatures=TeX]|을 +쓰도록 하자. 따라서 만약 TeX Gyre Termes를 라틴 문자 세리프 글꼴로 쓰려 한다면, +\begin{boxedverbatim} +\setmainfont[Ligatures=TeX]{TeX Gyre Termes} +\end{boxedverbatim} +와 같이 지정하면 된다. + +\paragraph{한글과 한자} +한글 폰트는 다음과 같이 설정한다. 자세한 사항은 +매뉴얼을 참고하라. +\begin{boxedverbatim} +\setmainhangulfont[Options]{FontName} +\setsanshangulfont[Options]{FontName} +\setmonohangulfont[Options]{FontName} +\setmainhanjafont[Options]{FontName} +\setsanshanjafont[Options]{FontName} +\setmonohanjafont[Options]{FontName} +\end{boxedverbatim} +\xobclass 에서도 이 방식의 폰트 정의를 할 수 있다. %이 문법은 +%fontspec 패키지를 따르는 것이다. + +한글 폰트만을 이용해서 한글/라틴 문자에 모두 식자할 필요가 있을 +수 있다. 이 경우 다음과 같이 하는 것이 한 가지 방법이다. +\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의 폰트 설정 명령} + +\subsubsection{간단한 폰트 지정} + +한편, 한글 글꼴을 선언하는 데 있어서 +\xobclass 에서는 약간 다른 방법(더 편리한?)의 폰트 정의가 +가능하다. 이것은 다음 세 명령으로 이루어져 있다. +\begin{boxedverbatim} +\setkormainfont(<Bold>)(<Italic>){<Regular>} +\setkorsansfont(<Bold>)(<Italic>){<Regular>} +\setkormonofont{<Mono>} +\end{boxedverbatim} + +이러한 폰트 정의 방식은 xoblivoir 클래스의 원래 의도인 `되도록 간단하게 +필요한 것만' 사용하자는 데서 나온 것이다. 그러므로 옛한글 설정이나 +자간, 장평 등 복잡한 폰트 속성을 적용하려 한다면 당연히 \xetexko 의 (즉 fontspec의) +설정 방식을 이용하는 것이 좋다. + +이후의 설명은 \verb|\setkormainfont|에 대해서만 한다. 다른 두 +명령의 사용법은 동일하다. + +\begin{boxedverbatim} +\setkormainfont{Font_Family_Name} +\end{boxedverbatim} +한글 글꼴 가운데 어떤 것은\explpunc.모든 한글 글꼴이 그렇지는 않다는 +데 주의하라.\ 글꼴 가족을 이루고 있는 것이 있다. 예를 들면 +\oblivoirdblquote{맑은 고딕}은 맥락에 따라 \oblivoirdblquote{맑은 고딕 Bold}를 +글꼴 가족으로 인식한다. 이런 경우 예를 들어 +\begin{verbatim} +\setsansfont{Malgun Gothic} +\end{verbatim} +이렇게만 지정해도 굵은 글꼴이 요구되는 곳에서는 \oblivoirdblquote{맑은 고딕 Bold}를 +식자해준다. +이렇게 잘 만들어진 글꼴을 이용하는 경우, 간단히 하나의 옵션으로 +글꼴을 지정해주는 것만으로 굵은 글꼴을 사용하게 할 수 있다. + +\begin{boxedverbatim} +\setkormainfont[Options]{Font_Name} +\end{boxedverbatim} +만약 각괄호(\verb|[|)가 첫 인자로 나오면 이 명령의 사용법은 +\verb|\setmainhangulfont|와 동일하다. 즉 fontspec 명령을 그대로 +쓸 수 있다. +\begin{boxedverbatim} +\setkormainfont[Options]{Font_Name}[hnj_Options]{hnj_Font_Name} +\end{boxedverbatim} +다른 점은 위와 같이 한자 글꼴을 잇대어 정의할 수 있다는 것이다. +이 때 반드시 한자 글꼴 추가 정의가 시작된다는 듯으로 각괄호 []를 +써주어야 한다. 아무런 옵션을 지정하지 않더라도 이 부호는 있어야 +한다. + +\subsubsection{폰트 가족의 지정} + +한글 폰트의 폰트 가족(font family)은 인위적으로 지정해주어야 할 때가 있다. +여러 한글 폰트를 임의로 묶어서 하나의 폰트 가족처럼 다루는 경우이다. + +한글의 폰트 가족은 Regular/Bold/Italic +으로 이루어진다고 가정하고 있다.% +\footnote{원한다면 BoldItalic까지 포함할 수 있으나, \xobclass{}는 + BoldItalic을 별도로 설정하는 것을 기본으로 + 삼지 않았다. 지나치게 번거로울 뿐 아니라 BoldItalic에 + 특별한 의미를 부여하기 힘들었기 때문이다. 반면, \xetexko 는 + BoldItalic을 별도로 설정할 수 있게 하고 있으므로 혹시라도 + 원한다면 이것은 사용자에게 맡겨져 있다. +} +폰트 가족을 지정하여 글꼴 설정을 할 때는 다음과 같이 한다. +\begin{boxedverbatim} +\setkormainfont(<hgBd>)(<hgIt>){<Hangul>} +\setkorsansfont(<hgBd>)(<hgIt>){<Hangul>} +\end{boxedverbatim} +첫 두 인자를 둘러싼 괄호가 각괄호 []가 아니라 괄호 ()임에 주의하라.\footnote{% + 이것은 2008/11/09 버전의 변경사항이다. 하위호환성을 제공하지 + 않으므로 이전의 모든 소스를 수정해야 한다.} +아무튼 괄호 ()로 둘러싸인 부분은 생략가능하다. 첫 괄호 인자만 있고 +이탤릭 글꼴을 지정하지 않으면 기본 글꼴로 치환된다. + +한글 폰트와 별도의 한자 폰트를 설정할 필요가 있을 때는 다음과 같이 한다. +\begin{boxedverbatim} +\setkormainfont(<hgBd>)(<hgIt>){<Hangul>}(<hjBd>)(<hjIt>){<Hanja>} +\setkorsansfont(<hgBd>)(<hgIt>){<Hangul>}(<hjBd>)(<hjIt>){<Hanja>} +\end{boxedverbatim} +한자를 한글과 별도의 폰트로 식자하도록 하는 것은 그 번거로움을 피할 수 없지만, +한글 폰트 가운데 한자 영역이 거의 없거나 있더라도 부실한 것이 너무 많기 때문에 +현재의 한글 폰트의 사정을 돌아볼 때 부득이하고 불가피하다. + +두 번째 선택 인자는 이탤릭체를 나타낸다. 이 인자를 지정하지 않으면 +기본 글꼴로 치환된다. Regular 폰트를 이 자리에 쓰고 싶을 때가 있다. 이럴 경우 간단히 +\begin{boxedverbatim} +\setkormainfont(BOLD)(*){REGULAR} +\end{boxedverbatim} +와 같이 (*)로 줄여 쓸 수 있다. 즉, 아예 두번째 인자가 없으면 REGULAR 폰트로 치환되고, (*)로 지시되면 REGULAR 글꼴을 이탤릭으로 식자한다. +만약 itemph 옵션이 지시되어 있다면 REGULAR의 FakeSlanted 글자가 +식자되고, gremph 옵션이 지시되어 있다면 이 자리에 선언된 글꼴이 곧은 모양으로 찍힐 것이다. +이 줄인 옵션은 두 번째 선택 인자, 즉 이탤릭 선언에만 동작하며, +\verb|\setkormainfont|와 \verb|\setkorsansfont|에서 쓸 수 있다. + +\subsection{디폴트 치환}\myLabel{sec:default}{sec:디폴트} + +필요한 정보가 충분히 주어지지 않으면 폰트 설정은 기본값으로 +치환된다. 아래 몇 가지 사용례를 보기로 하자. + +\begin{boxedverbatim} +\setkormainfont{HCR Batang LVT} +\end{boxedverbatim} +위의 명령을 실행하면 Regular와 Bold, Italic이 지정한 폰트로 바뀐다. +%여기 예시한 글꼴은 font family를 이루고 있지 않은 개별 글꼴이므로 +%굵은 글꼴에도 같은 폰트가 식자된다. +예시한 글꼴은 Bold 서체가 font family를 이루고 있으므로 굵은 글꼴을 자동으로 +HCR Batang LVT Bold로 식자한다. 그러나 그렇지 않은 글꼴을 예를 들면, +\begin{boxedverbatim} +\setmainfont{YJ BELLA Medium} +\end{boxedverbatim} +과 같이 하는 경우 양재벨라체가 굵은 글꼴 자리에도 똑같은 글꼴로 식자하게 된다. + + +\begin{boxedverbatim} +\setkormainfont[BoldFont={NanumMyeongjo ExtraBold},% + ItalicFont={NanumBarunGothic},% + ItalicFeatures={FakeSlant={.17}}]{NanumMyeongjo} +\end{boxedverbatim} +위와 같이 fontspec 문법의 옵션을 지정할 수 있다. + +\begin{boxedverbatim} +\setkormainfont(NanumMyeongjo ExtraBold){NanumMyeongjo} +\end{boxedverbatim} +이 명령은 Regular와 Bold만 지정된다. + +\begin{boxedverbatim} +\setkormainfont(NanumMyeongjo ExtraBold)(*){NanumMyeongjo} +\end{boxedverbatim} +이 명령은 Italic에 NanumMyeonjo를 식자하게 한다. gremph에서는 +upshape와 itshape가 똑같이 찍히게 되지만 itemph에서는 같은 +글꼴이 기울어져 식자될 것이다. + +\begin{boxedverbatim} +\setkormainfont(* ExtraBold)(Malgun Gothic){NanumMyeongjo} +\end{boxedverbatim} +이것은 Regular, Bold, Italic을 한 가족으로 묶는다. BoldItalic이 만약 필요해지면 Bold체와 +동일하게 설정된다.\footnote{% + BoldItalic은 위에서 설명한 (*) 줄인 옵션의 영향을 받지 않는다.} +한편 (* ExtraBold)라는 표기는 NanumMyeongjo와 같은 이름이기 때문에 줄여 쓴 것이다. + +한자 글꼴을 별도로 설정해야 할 때가 있다. +% \footnote{% + % 이 기능은 2008/10/09 이후의 xkospace에 바탕을 둔 \xobclass{} 이후 버전에서 가능하다. +% } +한자 글꼴을 설정하기 위해서는 위의 명령을 확장하여 다음과 같이 지정한다. + +\begin{boxedverbatim} +\setkormainfont(한글볼드)(한글이탤릭){한글레귤러}% + (한자볼드)(한자이탤릭){한자레귤러} +\end{boxedverbatim} + +\texttt{()}로 둘러싸인 부분은 모두 생략가능하지만, 이것이 한자 폰트를 설정하는 것이라는 +점을 알리기 위해 한자 시작 부분에 ( 문자를 지정해야 한다. 즉, +\begin{boxedverbatim} +\setkormainfont(){NanumMyeongjo}(){HCR Batang LVT} +\end{boxedverbatim} +위와 같이 하면 한글 영역에 나눔명조, 한자 영역에 함초롬 LVT 바탕을 식자할 수 있다. +이 때 볼드를 지정하지 않지만 최소한 \texttt{()}를 써주어야 한다는 점에 주의한다. +한글 폰트 정의에서 괄호 ()를 사용했다면 한자 정의 확장에도 같은 괄호 ()를 +써야 한다. 한글 폰트 정의에서 각괄호 []를 사용했다면 한자 정의 확장에도 +같은 괄호 []를 써야 한다. +%참고로, 일부 한글 기호문자는 한자 폰트로 식자된다. + +\begin{boxedverbatim} +\setmonoscale{<scale>} +\end{boxedverbatim} + +한글 mono 폰트를 기본값(은 타자)이 아닌 글꼴로 지정할 경우 scaling이 필요할 때가 있다. +이를 위하여 위의 명령이 정의되어 있다. 이것은 한글 및 한자 mono 글꼴에만 +영향을 미친다. 라틴 문자자는 fontspec 옵션으로 지정하면 될 것이다. +% 이 문서의 경우 mono 한글 폰트를 맑은 고딕으로 +% 하면서 scale 값을 0.9로 지정했다. + +문장 중간에서 한글 및 한자 폰트를 일부 바꾸어 써야 할 때가 있다. 이 경우에는 \xetexko 의 +\verb|\hangulfontspec| 명령을 이용하면 매우 간편하게 이를 실현할 수 있다. + +\subsection{ExternalLocation} + +ExternalLocation으로 폰트를 찾도록 하는 설정은 특히 폰트 정보가 이상한 한글 폰트를 사용할 때를 위해서도 +매우 중요하다. 굳이 폰트 캐싱을 할 필요가 줄어들기도 하므로, 이 방식을 선호하는 경우도 있다. \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의 +KC2008이나 TeXLive 자체가 이것을 잘 설정하여 주므로 사용자가 신경쓸 것이 없으나 +경우에 따라 이 변수를 설정해야 할 필요가 있을 수 있다. 맥의 경우, +/usr/local/texlive/2013/texmf.cnf 파일을 열어서\footnote{/usr/local/texlive/2013/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{boxedverbatim} +\setkormainfont(* Bold)(Gungsuh){Malgun Gothic} +\end{boxedverbatim} +으로 지정했을 때, 궁서체가 이탤릭에 해당하는 폰트로 설정된다. gremph가 디폴트이므로 궁서체는 곧은 모양으로 찍힌다. + +그러나 디자인 상의 효과를 위해서나 다른 이유에서 +이 서체를 기울이고 싶은 경우가 있을 것이다. +이 경우 \texttt{[itemph]} 클래스 옵션을 지정한다. +그 반대의 경우는 \texttt{[gremph]}이고 이것이 디폴트이다. 부분부분 기울이려 한다면 fontspec +명령을 써서 조작할 수 있으므로 별도로 명령을 만들어두거나 하지 않았다. + +%\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{enumerate} + +enumerate 패키지의 enumerate 아이템 항목 머리 설정은 +다음과 같이 한다. 엔진과 무관하게 동작한다. +\begin{boxedverbatim} +\begin{enumerate}[(㉠)] \tightlist +\item 첫째 항목 +\item 둘째 항목 +\end{enumerate} +\end{boxedverbatim} +\begin{enumerate}[(㉠)] \tightlist +\item 첫째 항목 +\item 둘째 항목 +\end{enumerate} +paralist에서 위와 같은 방식으로 항목 머리를 설정하려면 +레거시 텍을 위해서는 dhucs-paralist를, \XeTeX과 \LuaTeX을 위해서는 +xob-paralist를 로드한다.\footnote{% + 물론 paralist 자체는 그 이전에 부르거나 + xob-paralist(dhucs-paralist)가 스스로 부르도록 할 것이고 xob-paralist(dhucs-paralist) 뒤에 + paralist만 별도로 다시 부르면 안 된다. +} + +\subsection{graphicx, xcolor} + +\hologo{pdfLaTeX} 문서는 dvi 드라이버로 어떤 것이 실행될지 모르기 때문에 graphicx 패키지의 +로딩에 주의를 기울여야 한다. 즉 +\marginpar{\fbox{pdftex}} +\begin{boxedverbatim} +\usepackage[<driver>]{graphicx} +\end{boxedverbatim} +과 같이 하는 것이 안전하다. 그러나 대부분의 경우 \verb|<driver>|를 지정하지 않아도 된다. + +\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 “소절 \ref{sec:font}\를 보라.” +\end{minipage} + +\noindent\hologo{XeTeX}, \hologo{LuaTeX}:\\ +\noindent\begin{minipage}{.45\textwidth} +\begin{verbatim} + “소절 \ref{sec:폰트}\를 보라.” +\end{verbatim} +\end{minipage} + + +\subsection{방점} + +\koTeX 에서는 \texttt{\textbackslash dotemph} 명령의 방점\footnote{% + 가로쓰기에서는 \dotemph{점을 글자 위에 찍으므로} \circemph{傍점}이 아니라 + \circemph{上점}이 맞겠지만 관행적으로 방점이라 불러왔다. + 이 문장부호의 정확한 명칭은 “드러냄표”이다.}% +을 지원했다. \xetexko{}에서도 이 명령을 사용할 수 있게 되었고, +xoblivoir에서 조금 확장했다. 기본인 +\texttt{\textbackslash dotemph} +외에 +\texttt{\textbackslash circemph} +\texttt{\textbackslash useremph} +두 개의 명령을 더 쓸 수 있다. + +\marginpar{\fbox{xe(lua)tex}} +\xobclass에서 기원한 새로운 텍 엔진을 위한 \obclass 에서 +마지막의 \texttt{\textbackslash useremph} 명령은 +\useremph{˚}{하나의 선택 인자와 두 개의 인자}를 요구한다. 즉, +\begin{verbatim} +\useremph[<height>]{<dotchar>}{text} +\end{verbatim} +height는 방점으로 사용할 문자가 올라갈 길이이고 dotchar는 +방점 문자이다. text는 방점을 찍을 텍스트. +단, 이 \verb|\useremph| 명령은 \xetexko 에서 제공되는 같은 이름의 +명령과도 그 사용법이 다르고 레거시 텍을 위한 \obclass에서의 사용법과도 다르므로 주의를 요한다. + +\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[<other options>,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/oblivoir-test.tex b/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-test.tex new file mode 100644 index 00000000000..c392205ca52 --- /dev/null +++ b/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-test.tex @@ -0,0 +1,1377 @@ +% -*- UTF-8 : LaTeX -*- +%% +%% 2013/09/28. xoblivoir ver2 버전으로 포팅. +%% 2010/03/17. xoblivoir 버전으로 포팅 +%% +%% memhangul-ucs v1.44 테스트 파일 +%% Written by 도은이아빠. +%% + +\documentclass[demo,chapter,openany,amsmath,gremph,adjustmath]{xoblivoir} +%%% amsmath 옵션은 amsmath, amssymb 패키지를 로드해준다.. + +%\usepackage[logonly]{trace} %% for debugging. +\let\traceon\relax\let\traceoff\relax + +%%% display overfullrule +%\setlength\overfullrule{5pt} + +%% 페이지 레이아웃. fapapersize를 이용한다.. +\usepackage{fapapersize} +\usefapapersize{220mm,276mm,20mm,80mm,30mm,35mm} + +%% 폰트 설정 +\def\DefaultFont{HCR Batang LVT} +\ifPDFTeX + \usepackage{mathpazo} +\else\ifLuaOrXeTeX + \defaultfontfeatures{Mapping=tex-text,Ligatures=TeX} + \setmainfont{TeX Gyre Pagella} + \usepackage{unicode-math} + \setmathfont{Asana-Math.otf} + \setsansfont[Scale=.95]{TeX Gyre Heros} + \setkormainfont[ItalicFont=\DefaultFont,ItalicFeatures={FakeSlant=.167}]{\DefaultFont}[]{\DefaultFont} + \setkorsansfont[]{NanumGothic}[]{HCR Dotum LVT} +\fi\fi + +\ifLuaTeX +\def\interHANGUL{InterHangul} +\let\circemph=\dotemph +\else\ifXeTeX +\def\interHANGUL{interhchar} +\fi\fi + +%% logos +\usepackage{hologo} + +%%% marginfix +%\usepackage{marginfix} + +%% 좌우 마진의 marginpar 위치가 혼선을 보인다면 +%% 다음을 선언한다. +\strictpagecheck + +\usepackage{cite} + +\ifPDFTeX +\usepackage{graphicx} +\fi +\usepackage[dvipsnames]{xcolor} +%% pdf 정보 +\hypersetup{% + bookmarks=true,% + plainpages=false,% + colorlinks=true,% + pdfauthor={Karnes Kim},% + pdfcreator={Karnes Kim} +} + +\nonfrenchspacing +%% nonfrench를 설정하는 경우에는 \xspaceskip도 정해주자. +%% 여기서는 눈에 띄도록 이 길이를 넉넉하게 잡았음. +%% 일반적으로 .6 내지 .7 정도를 권장함. +\xspaceskip=.8em plus .1em minus .1em + +%% 이 아래 명령들은 본문에서 바꿀 수 있다. +%% 행간설정. 두번째 인자는 fn/float에 적용되는 행간. +\SetHangulspace{1.5}{1.1} +%% quotespacing을 설정함. \noadjustqutespacing이 default. \adjustquotespacing +%\adjustquotespacing +%% float/fn의 좁은 행간 설정을 disable. \adjustfloatfnspacing +\noadjustfloatfnspacing + +%% snugshade 환경에 칠할 배경색. +\definecolor{shadecolor}{gray}{0.85} + +%%% from memman.tex. modified. +%% 본문에서 한 번 사용하기 위해 설정한 chapter +%% style 예제. 이 예제는 memman에 있다. +%% 한글판을 위하여 조금 수정함. +\makeatletter +\newlength{\numberheight} +\newlength{\barlength} +\makechapterstyle{veelo}{% + \setlength{\beforechapskip}{40pt} + \setlength{\midchapskip}{25pt} + \setlength{\afterchapskip}{40pt} + \renewcommand{\chapnamefont}{\normalfont\LARGE\flushright} + \renewcommand{\chapnumfont}{\normalfont\HUGE} + \renewcommand{\chaptitlefont}{\normalfont\HUGE\bfseries\flushright} + \renewcommand{\printchaptername}{}% + \renewcommand{\prechapternum}{% <= 이 명령을 정의. + \chapnamefont\MakeUppercase{chapter}} + \renewcommand{\postchapternum}{}% <= 이 명령을 정의. 여기서는 비움. + \renewcommand{\chapternamenum}{} + \setlength{\numberheight}{18mm} + \setlength{\barlength}{\paperwidth} + \addtolength{\barlength}{-\textwidth} + \addtolength{\barlength}{-\spinemargin} + \renewcommand{\printchapternum}{% + \makebox[0pt][l]{% + \hspace{.8em}% + \resizebox{!}{\numberheight}{\chapnumfont \thechapter}% + \hspace{.8em}% + \rule{\barlength}{\numberheight} + } + } + \makeoddfoot{plain}{}{}{\thepage} +} + +\makechapterstyle{mycompanion}{% + \chapterstyle{default} + \renewcommand*{\chapnamefont}{\normalfont\LARGE\scshape} + \renewcommand*{\printchaptername}{\raggedleft\chapnamefont \@chapapp} + \renewcommand*{\prechapternum}{\raggedleft\chapnamefont \pre@chapter} + \renewcommand*{\chapnumfont}{\normalfont\Huge} + \setlength{\chapindent}{\marginparsep} + \renewcommand*{\printchaptertitle}[1]{% + \begin{adjustwidth}{}{-\chapindent} + \raggedleft \chaptitlefont ##1\par\nobreak + \end{adjustwidth}}} + +\makeatother + +%%% User's commands +%% 사용자 명령들. 인덱스 관련 명령. +\newcommand\dispcmd[1]{% + \texttt{\textbackslash #1}% + \index{명령!\textbackslash #1}% + \index{#1@\textbackslash #1}% +} + +\newcommand\cls[1]{% + \texttt{#1}\ 클래스% + \index{클래스!#1}% + \index{#1~클래스}% +} + +\newcommand\pkg[1]{% + \texttt{#1}\ 패키지% + \index{패키지!#1}% + \index{#1~패키지}% +} + +\newcommand\thisclass{% + \texttt{memoir}\ 클래스% + \index{클래스!memoir}% + \index{memoir~클래스}% +} + +\newcommand\env[1]{% + \textsf{#1} 환경% + \index{환경!#1}% + \index{#1~환경}% +} + +\newcommand\wi[2][\empty]{% + \ifx#1\empty + \index{#2}#2% + \else + \index{#1!#2}#2% + \fi +} + +%% showcommand/showenv 명령. +%% 만약 command/env 보여주기를 끄려면 +%% \showcommandfalse를 선언한다. +\makeatletter +\newif\if@showcommand\@showcommandtrue +\newcommand\showcommandtrue{\@showcommandtrue} +\newcommand\showcommandfalse{\@showcommandfalse} + +\strictpagechecktrue + +\newcommand\showcommand[1]{% + \if@showcommand + \checkoddpage\ifoddpage + \marginpar{\small\texttt{\textbackslash #1}}% + \else + \marginpar{\hfill\small\texttt{\textbackslash #1}}% + \fi + \fi +} + +\newcommand\showenv[1]{% + \if@showcommand + \checkoddpage\ifoddpage + \marginpar{\small\textit{#1}(env.)}% + \else + \marginpar{\hfill\small\textit{#1}(env.)}% + \fi + \fi +} +\makeatother + +%% MakeShortVerb +\MakeShortVerb{\|} +% \DeleteShortVerb{\|} + +%% 인덱스의 hyperpage 처리를 위해서 +\newcommand\bfhypidx[1]{% + \textbf{\hyperpage{#1}}% +} + +%% replace \bigskip +\newcommand\alineskip{% + \vspace{\onelineskip}% +} + +%% showindexmark +%% 여백을 충분히 확보하고 다음 행을 +%% 활성화해볼 것. +%\showindexmarktrue + +%% 문장 부호 관련 명령은 스타일에 포함시켰음. +%% \bnm, \snm, \cnm, \ccnm. + +%% index를 만든다. +%% makeindex를 실행할 때는 makeindex-dhucs.pl을 이용할 것. +%% #> perl makeindex-dhucs.pl -s dhhangulucs.ist <filename> +%% +\makeindex + +%% newlist +%% 새로운 리스트를 만드는 것이 정말 너무나 간단하다. +\newcommand\queryfont{\raggedleft\sffamily\small} +\newcommand\listofqueriesname{Queries~목록} +\newlistof{listofqueries}{loq}{\listofqueriesname} +\newlistentry{query}{loq}{0} +\newcommand{\query}[2][\empty]{% + \refstepcounter{query} + \par\noindent\fbox{Q?}~\begingroup\queryfont #2\endgroup% + \addcontentsline{loq}{query}{\protect\numberline{\thequery}#2}\par + \ifx#1\empty\else\index{Query!#1}\fi +} + +%% title page +\newcommand\MakeTitle{% + \begin{titlingpage} + \setcounter{page}{-1}% + \begin{adjustwidth*}{0mm}{-55mm} + \newlength\tmplen\setlength\tmplen{\textwidth}\addtolength\tmplen{60mm} + \fbox{% + \begin{minipage}{\tmplen} + \vspace*{90mm} + \begin{center} + \LARGE\bfseries\thetitle \\ \vskip\onelineskip + \normalfont\normalsize\theauthor + \end{center} + \vspace*{100mm} + \end{minipage}} + \end{adjustwidth*} + \end{titlingpage} +} + +%% 각주. footmisc는 memoir와 함께 쓸 수 있다. +%\usepackage[bottom]{footmisc} +%% 그러나, 위의 예와 같이 [bottom] footnote를 위해서라면 +%% 다음과 같이 할 것을 권장함. raggedbottom에서 동작함. +\renewcommand*{\footnoterule}{\kern-3pt\vfill + \hrule width 0.4\columnwidth \kern 2.6pt} +%% 각주를 floats 아래. +\feetbelowfloat + +%% 밑줄. +\ifLuaTeX\else +\usepackage[normalem]{ulem} +\fi + +%% 사소한 설정 +\def\util#1{\texttt{#1}\index{Utility!#1}} + +%% \useremph compatibility +\ifPDFTeX + \let\ORIGuseremph=\useremph + \def\useremphchar{\tiny★} + \setlength\useremphraisedim{10pt} + \def\useremph#1{\ORIGuseremph{#1}} +\else\ifXeTeX + \let\ORIGuseremph=\useremph + \def\useremph#1{\ORIGuseremph[10pt]{\tiny★}{#1}} +\else\ifLuaTeX + \let\ORIGdotemph=\dotemph + \def\dotemph#1{% + \def\dotemphraise{0.4em} + \def\dotemphchar{˙} + \ORIGdotemph{#1}} + \def\circemph#1{% + \def\dotemphraise{0.4em} + \def\dotemphchar{˚} + \ORIGdotemph{#1}} + \def\useremph#1{% + \def\dotemphraise{10pt} + \def\dotemphchar{\tiny★} + \ORIGdotemph{#1}} +\fi\fi\fi + +%%% +%\headnamereftrue + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%% 이제 문서를 시작. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{document} + +\title{memoir에서 한글을 쓰자!} +\author{도은이아빠} +\date{\today} + +%% 아래 \MakeTitle 명령은 이 문서의 preamble에 +%% 정의되어 있다. 표지 디자인은 이 정의를 참고하여 +%% 수정하여 볼 것. +\MakeTitle +\cleardoublepage + +\frontmatter +% ToC, etc +%% 차례 페이지들. 여기서는 demo chapter style과 +%% Ruled 페이지 스타일을 적용한다. +\chapterstyle{demo} + +\tableofcontents +%\clearpage +\listoffigures +%\clearpage +\listoftables +%% listofqueries는 \newlistof로 만든 +%% local \listofx임. +%\clearpage +\listofqueries + +\mainmatter + +%% hangul 페이지 스타일을 테스트하기 +%% 위하여 제1편 앞에 한 챕터를 둠. 다만 chapter의 첫 면은 +%% chapter 페이지 스타일을 따른다. +\pagestyle{hangul} + +\chapterstyle{default} + +\chapter{xoblivoir} + +이 문서는 xoblivoir의 몇 가지 기능을 시험하기 위한 목적으로 +작성되었다. 이 문서의 원본은 memhangul을 개발하던 당시 +테스트용으로 사용된 바, 가장 먼저 만들어진 oblivoir 문서이다. + +해당 문단의 여백에 사용되고 있는 명령이 나와 있으므로 참고할 수 있을 +것이다. 실제로 xoblivoir 사용설명서를 작성하기 어려운 것이 +기본적인 것은 모두 memoir에 바탕을 두고 있는 데다가 +한글화하면서 변화한 점도 많아서 이것을 모두 모으면 너무나 방대한 +내용이 된다는 점이다. + +이 문서의 원본을 잘 연구하면 그럭저럭 oblivoir가 어떻게 동작하는지 +짐작할 수 있게 되기를 희망한다. + +이 문서는 다음 순서로 컴파일할 수 있다. |$ENGINE|은 \util{pdflatex}, \util{xelatex}, \util{lualatex} 가운데 하나이고 +|$JOBNAME|은 파일 이름(\texttt{xobtesttest})이다. +한편, 색인을 만드는 유틸리티 |$MAKEINDEXENGINE|은 \util{pdflatex} 상황에서는 +\util{komkindex}이고 그밖의 경우에는 \util{kotexindy}이다. + +\begin{verbatim} + # $ENGINE $JOBNAME + # $ENGINE $JOBNAME + # $MAKEINDEXENGINE $JOBNAME.idx + # $ENGINE $JOBNAME +\end{verbatim} + + + +\chapter{default 페이지 스타일} + +\section{맹동야를 보내는 글} +\epigraph{한유 글, \cnm{送孟東野序}}{김학주 옮김} + +대개 만물은 평정을 얻지 못하면 소리를 내게 된다. +초목은 소리가 없으나 바람이 흔들면 소리를 내게 되며, 물은 소리가 없으나 바람이 +움직이면 소리를 내게 된다. 물이 뛰어오르는 것은 바위같은 곳에 부칮쳤기 +때문이다. 물이 세차게 끓어오르는 것은 한 곳에서 물결을 막기 때문이다. +물이 펄펄 끓어오르는 것은 불로 태우기 때문이다. 쇠나 돌은 소리가 없으나 +치면 소리를 낸다. 사람이 말하는 데 있어서도 이와 같으니, +부득이한 일이 있은 후에야 말을 하게 된다. 노래를 하는 것은 생각이 +있기 때문이며, 우는 것은 회포가 있기 때문이다. + +음악이라는 것은 가슴속이 막혀 답답할 때 밖으로 새어나오는 것이며 +소리를 잘 내는 것을 선택하여 이것을 빌려서 소리를 내게 된다. +쇠\cntrdot 돌\cntrdot 실\cntrdot 대\cntrdot 박\cntrdot 흙\cntrdot +가죽\cntrdot 나무 등 여덟 가지 악기를 만드는 데 쓰이는 자료들은 만물 +가운데 소리를 잘 내는 것들이다. + +자연의 계절에 있어서도 역시 그러하니 소리를 잘 내는 것을 선택하여 그것을 +빌려서 소리를 내게 된다. 그러므로 새를 빌려 봄의 소리를 내고, 우뢰를 +빌려 여름의 소리를 내고, 벌레를 빌어 가을의 소리를 내며, +바람을 빌어 겨울의 소리를 낸다. 사계절이 서로 바뀌어 나타나는 현상은 +반드시 그 평정을 얻지 못했기 때문일 것이다. + +이는 사람에게 있어서도 마찬가지이다. 사람의 소리 가운데 정묘한 것이 언어이며 +문장의 표현은 언어 가운데서도 더욱 정묘한 것이다. 그 중에서도 더욱 소리를 +잘 내는 것을 선택하여 이것을 빌려서 소리를 내게 된다. + +당요\cntrdot 우순 시대에는 고요와 우가 소리를 잘 내는 사람들이어서 +그들을 빌려 소리를 냈다. 기는 문사로써 소리를 내지는 못했으나 +스스로 소를 빌려서 소리를 냈다. 하나라 때에는 오자가 노래를 불러 소리를 +냈다. 이윤은 은나라에서 소리를 냈고 주공은 주나라에서 소리를 냈다. + +무릇 \snm{시}\cntrdot \snm{서} 등 육예에 실린 것들은 모두 소리를 +잘 낸 것들이다. 주나라가 쇠퇴해지자 공자의 무리들이 소리를 냈는데 +그 소리를 크게 멀리 들렸다. 옛 서적에 ``하늘이 장차 선생을 목탁으로 +삼으려 하는구나!''\,라고 하였는데도 믿지 못하겠는가! + +주나라 말엽에 이르러서는 장주가 황당한 문사로써 초나라에서 +소리를 냈다. 초나라를 큰나라였는데 망할 무렵이 되어 굴원이 소리를 냈다. +장손진\cntrdot 맹가\cntrdot 순경은 도로써 소리를 낸 자들이고, +양주\cntrdot 묵적\cntrdot 관이오\cntrdot 안영\cntrdot 노담\cntrdot 신불해\cntrdot +한비\cntrdot 신도\cntrdot 전연\cntrdot 추연\cntrdot 시교\cntrdot 손무\cntrdot +장의\cntrdot 소진의 무리들은 모두 술법으로써 소리를 냈다. + +진나라가 융성하자 이사가 소리를 냈으며 한나라 때에는 사마천\cntrdot 사마상여\cntrdot +양응이 가장 소리를 잘 낸 자들이다. + +그 후 위\cntrdot 진 시대에는 소리를 내는 자들이 옛날 사람들에 미치지 못했지만 +또한 아직 끊이지는 않았었다. 그 가운데 괜찮은 것들도 그 소리는 맑지만 +경박하고 그 음절은 빠르고 급하며 그 문사는 음란하고 슬프며 +그 뜻은 느슨하고도 방자하며 그 표현은 난잡하고 문채가 없었으니 +하늘이 그 덕을 추하게 여겨 돌보지 않은 때문이었는가? 무엇 때문에 +소리를 잘 내는 자들로 하여금 소리를 내게 하지 않았는가! + +당(唐)나라가 천하를 장악하고나서는 진자앙\cntrdot 소원명\cntrdot 원결\cntrdot +이백\cntrdot 두보\cntrdot 이관 등이 모두 자신의 잘하는 것으로써 소리를 내었다. + +현재 살아 있으면서 아랫자리에 있는 사람으로 동야 맹교가 비로소 시로써 +소리를 내었다. 그는 위\cntrdot 진 시대 사람들보다 훨씬 뛰어나며 +게을리하지 않으면 옛사람들의 수준에 미칠 수 있겠고 +그밖의 작품들은 한나라의 문풍에 젖어 있다. 나에게서 배운 자들로서 +이고와 장적이 가장 뛰어나다. 이 세 사람의 소리는 진실로 훌륭하다. + +그런데 하늘이 장차 그들의 소리를 온화하게 하여 국가의 성대함을 소리내게 +할 것인지 아니면 장차 그들 자신을 가난하고 굶주리게 하고 +그들의 마음을 근심스럽게 하여 그 불행을 스스로 소리내게 할 것인지 모르겠다. +이 세 사람의 운명은 하늘에 달려 있는 것이니 윗자리에 있다고 해서 어찌 +기뻐하겠으며 아랫자리에 있다고 해서 어찌 슬퍼하겠는가. + +동야가 강남에 근무하러 떠나면서 즐거워하지 않는 것 같아서 내가 그의 +운명이 하늘에 달려 있다고 말하며 이를 풀어주려고 하는 것이다. + +%% 본문시작. +%% 본문은 companion chapter style로 식자할 것인데, +%% default를 한 번 부른 이유는 앞서 사용한 demo의 +%% 글꼴 설정에 영향을 받기 때문이다. + +\part{xoblivoir 테스트} + +\chapterstyle{mycompanion} +\pagestyle{companion} + +%% 제목은 두 줄로 식자하되, heading과 toc에는 개행 없이. +% \chapter[memoir 클래스에서 한글을 쓰자][memoir 클래스에서...]{memoir +% 클래스에서\\ 한글을 쓰자} % -> [toc][heading]{title} +% \chapter[memoir 클래스에서 한글을 쓰자]{memoir 클래스에서\\ 한글을 +% 쓰자} % -> [toc,heading]{title} %% 이 부분이 memoir와 다르다. +% \chapter{memoir 클래스에서 한글을 쓰자} % {toc,heading,title} +% \chapter[memoir 클래스에서 한글을 쓰자][memoir 클래스에서 +% 한글...]{memoir 클래스에서\\ 한글을 쓰자} +% \chapter[memoir 클래스에서 한글...]{memoir 클래스에서\\ 한글을 쓰자} +% 주의: titleref에 \\ 문자가 들어가면 안된다. titleref에서 사용하는 +% 것은 두번째 옵션인자이므로, 다음과 같이 두번째 옵션 인자를 밝혀줄 +% 것. +\chapter[memoir 클래스에서 한글...][memoir 클래스에서 한글을 쓰자]{% + memoir 클래스에서\\ 한글을 쓰자} +\traceon\label{sec:firstchap}\traceoff + +\chapterprecis{\noindent 이 장에서는 memoir 클래스에 대해 간략히 + 소개하고 한글화에 대하여 개관한다.} + +\showcommand{chapterprecis}\showcommand{chapterstyle}\showcommand{pagestyle} +\thisclass\는 Peter Wilson 씨가 작성한 \LaTeX\ 클래스이다. \LaTeX 이 제공하는 +표준 클래스\index{표준~클래스|bfhypidx}는 \cls{book}, \cls{report}, \cls{article}, \cls{letter} +등이 있지만, 어딘가 모르게 세세한 부분에서 부족한 점이 있어서 수많은 추가 패키지를 +사용해야 원하는 문서 모양을 구현할 수 있는 경우가 많았다. \thisclass\는 그 동안 개발된 +문서 조판의 세세한 부분을 하나의 클래스로 통합한 것으로, 사용자 입장에서는 +정말 획기적인 환상적인 클래스가 아닐 수 없다. 매우 많은 패키지들을 이 +클래스는 통합\cntrdot 내장하거나 그와 유사한 기능을 제공한다. +이 패키지의 결점은, 한번 사용하기 시작하면 다시는 book과 같은 +표준 클래스로 돌아가기 어렵다는 점이다. + +EUC-KR\index{한글!EUC-KR|bfhypidx} 한글을 \thisclass 에서 사용하도록 만들었던 것이 +\pkg{memhangul}였다. +이제 여기서 제공하는 클래스는 본질적으로 \pkg{memhangul}\과 동일하지만 +한글을 UTF-8 유니코드로 입력할 수 있게 만든 것이다. \wi[유니코드]{유니코드 한글}을 +처리하기 위해서 \pkg{dhucs}\를 채택하였다. +\query[유니코드]{유니코드 한글 처리} + +\alineskip + +\hangfrom{한글 }사용을 위해서 H\LaTeX 을 채택한 결과는 어느 정도 +괜찮은 결과를 가져왔다. 그러나 \pkg{dhucs}\를 이용하여 구현한 \pkg{memhangul-ucs}\는 +괜찮은 정도가 아니라 아주 훌륭한 결과를 얻게 되었다. + +\showcommand{hangpara}\showcommand{hangfrom}% +\hangpara{2.6em}{2}% +{\SetAdhocFonts{unpg}{ungt}\showcommand{SetAdhocFonts}% +유니코드 한글 입력이 가능하도록 하는 것은 \pkg{dhucs}에서였다. 이것은 +\LaTeX-ucs 패키지와 한글 자동조사 및 한글 문서서식을 합친 것인데, +핵심적인 한글 식자와 자동조사의 구현은 김도현 교수가 작성하였다. +필자는 사용자 인터페이스를 조금 추가하고 한글 문서서식을 보충하는 +정도로 미미한 기여를 하였다.} + +이 패키지의 장점은 대강 다음과 같다. +\tightlists\showcommand{tightlists} +\begin{itemize} + +\item 유니코드를 쓴다는 것 자체가 장점이다. EUC-KR 한글의 범위를 +넘어서서 맞춤법에는 어긋나지만 꼭 써야할 경우가 없지 않은 ``띡''과 같은 +완성형 밖 글자를 식자할 수 있다.\footnote{% + 중세 한글 문제는 코드와 폰트의 문제가 얽혀 있어서 + 여기에서는 다루지 않는다.} + +\item 절에 \wi{한글식 절카운터 모양}(section counter format), \dispcmd{pgana} 등을 +사용하는 것이 쉽다. + +\item \wi{자동조사} 기능이 구현되어 있다. + +\item 주요 pagestyle과 chapterstyle이 \wi{한글}과 호환되게 하였다. 이호재 님의 +말씀에 의하면, \thisclass 는 여러 가지 면에서 매우 편리하다고 한다. + +\item 인덱스 만들기가 구현되었다. + +\item \thisclass 의 여러 기능을 그대로 쓸 수 있다. + +\end{itemize} + +\section{이 문서의 컴파일 방법} + +다음과 같은 순서로 컴파일한다. + +\bvtopandtail\showcommand{bvtopandtail}\showenv{boxedverbatim} +\begin{boxedverbatim} +#> latex memucstest +#> latex memucstest +#> makeindex-dhucs -s dhucs memucstest +#> latex memucstest +\end{boxedverbatim} + +|makeindex(-dhucs)|에 앞서서 |latex|을 두 번 실행하는 이유는, +memoir 패키지의 인덱스 만들기의 특징 때문이다. 처음 한 번만 실행해서는 +|.idx| 파일이 만들어지지 않는다. + +\section{chapter 스타일} + +\showcommand{prechapternum}\showcommand{postchapternum} +사용자가 자신의 |chapterstyle|을 정의(定義)할 때는 반드시 +\dispcmd{prechapternum}과 \dispcmd{postchapternum}을 함께 정의해주도록 한다. +그림~\ref{fig:examchapstyle}\은 |hangnum| chapter style을 +정의하는 방법을 보여준다. +\begin{figure} +%% 웬만한 환경은 memoir에 다 있다.!!! +\begin{boxedverbatim} +\makechapterstyle{hangnum}{% + \renewcommand{\chapnumfont}{\chaptitlefont} + \settowidth{\chapindent}{\chapnumfont 999} +% \renewcommand{\printchaptername}{} % <= 쓰지 않음. + \renewcommand{\prechapternum}{} % <= 이 행을 정의 + \renewcommand{\chapternamenum}{} + \renewcommand{\postchapternum}{}% <= 이 행을 정의 + \renewcommand{\printchapternum}{% + \noindent\llap{\makebox[\chapindent][l]{\chapnumfont + \thechapter}}} + \renewcommand{\afterchapternum}{} +} +\end{boxedverbatim} +\caption{chapterstyle 정의 예제}\label{fig:examchapstyle} +\end{figure} + +장 스타일을 수정하는 구체적인 예는 |memman.tex|\cite{memman}에서 +가져온 |veelo| chapter style의 정의를 참조하라. 이 문서의 +소스 Preamble에 있다. 예제는 \Cref{sec:math} \titleref{sec:math}\을 보라. +%% disable \nameref +\textbf{\nameref{sec:appchap}}\를 보라. + +\textbf{\titleref{sec:appchap}}\를 보라. \pref{sec:appchap}\을, +\ref{sec:appchap}\을, \Cref{sec:appchap}\을 +\Sref{sec:appsec}\가, \ref{sec:appsec}\가, \titleref{sec:appsec}\가. +\titleref{sec:appsec}\을. +\showcommand{Cref}\showcommand{ref}\showcommand{pageref}\showcommand{titleref} +%% \Cref 명령으로 식자되는 결과를 주의깊게 보라. + +\section{시집}\label{sec:poembook} + +\wi{어머님}이 \wi{수술} 후에 거동이 불편해지신 후, 집에만 +계시는 것이 무척 \wi{무료}하신 듯하다. 예전에 내가 보던 +\wi{시집}을 꺼내 보고 계시다. \showcommand{titleref}\showcommand{Sref}% +\Sref{sec:poembook} \textit{\titleref{sec:poembook}}\는 +텍스트 입력의 예제이다. + +%% memoir는 poem 스타일을 자체 내장하고 있다. +%% plain poem title을 선언함. +\PlainPoemTitle\showcommand{PoemTitle}\showcommand{PlainPoemTitle} +\showenv{snugshade}\showcommand{poemtitle}\showenv{verse} +\begin{snugshade} +\renewcommand\poemtoc{subsection} +\settocdepth{subsection} +\poemtitle{신안리에서} +\settowidth{\versewidth}{\hbox{사람들은 굳이 한 마디 말 하려 하지 않는다.}} +\ifpdf\begin{verse}\else\begin{verse}[\versewidth]\fi + +실개천 너머 나 있는 샛길로\\ +택시가 들어오고 나가며 \\ +겨르로운 달빛에 감출 부끄러움도 없는\\ +사람들은 굳이 한 마디 말 하려 하지 않는다.\\! + +나는 톱밥 같은 달빛을 한 웅큼\\ +멀리 철길 쪽으로 뿌렸다.\\ +매달린 불빛보다\\ +아침이 먼저 깨어나는 광경을 보며.\\ +삶은 새의 낮은 날음새 같은 것,\\ +이대로 누워 잠들기\\ +두렵지 않은 작은 마을에\\ +더 작은 풀꽃 인사한다.\\ +잊혀짐 너머 안부 묻는다.\\ +\end{verse} +\end{snugshade} + +이 스타일은 \pkg{memucs-setspace}\를 이용한다. 이 패키지는\footnote{ + 이 스타일은 \pkg{setspace}\를 수정한 것이다. + \env{verse}, \env{quote}\와 같은 환경을 조금 바꾸어서 행간을 약간 줄여주는 + 기능이 있다.} +verse, quote와 같은 환경을 조금 바꾸어서 행간을 약간 줄여주는 +기능이 있다. 이 부분에서 \dispcmd{adjustfloatfnspacing}을 불러보겠다. +\showcommand{adjustfloatfnspacing} +다음번 각주는 행간이 조금 달라져야 한다. +\adjustfloatfnspacing +float 안에 놓인 것과 같아지도록.\footnote{% +이 스타일은 \pkg{setspace}\를 수정한 것이다. +verse, quote와 같은 환경을 조금 바꾸어서 행간을 약간 줄여주는 +기능이 있다.} + +%%%\showcommand{memucsfninterwordhook}\showcommand{xspaceskip} +%%%만약 각주의 자간을 조절하고 싶으면 어떻게 할 것인가? +%%%이 때는 \dispcmd{memucsfninterwordhook}이라는 명령을 재정의해준다. +%%%이것을 간편하게 재정의하는 명령을 따로 제공하지 않는 이유는, +%%%이것을 재정의하는 것이 그다지 바람직하지 않기 때문이다. +%%%게다가 만약 이 명령에서 \dispcmd{xspaceskip} 등을 수정하면 +%%%본문에도 영향을 미치기 때문에, 본문 중에서는 +%%%되도록 사용하지 않는 것이 좋다. 여기서는 오직 예시만을 +%%%위하여 간단한 예를 들어두겠다. +%%%\let\ORIGmemucsfninterwordhook\memucsfninterwordhook +%%%\renewcommand\memucsfninterwordhook{% +%%% \ifLuaTeX +%%% \hangulfontspec[InterHangul=.5em]{\DefaultFont} +%%% \else\ifXeTeX +%%% \hangulfontspec[interhchar=.5em]{\DefaultFont} +%%% \else\ifPDFTeX +%%% \interhchar{.5em} +%%% \fi\fi\fi +%%% \spaceskip=.8em plus .133em minus .111em +%%%% \xspaceskip=1em plus .05em minus .05em +%%%}% +%%%이제 각주를 붙여보자.\footnote{% +%%%각주의 자간을 수정하려면 +%%%위와 같이 한다. 잘 되는가?} +%%% +%%%\let\memucsfninterwordhook=\ORIGmemucsfninterwordhook + +%\DefaultInterHchar + +\showcommand{noadjustquotespacing}\showcommand{adjustquotespacing} +이 아래는 본문 중에서 \dispcmd{noadjustquotespacing}과 \dispcmd{adjustquotespacing}을 +불렀을 때 \env{quote} 안에서 행간이 어떻게 변하는지 보여준다. +기본값은 \dispcmd{noadjustquotespacing}이다. + +\begin{quote} +이 스타일은 \pkg{setspace}\를 수정한 것이다. +verse, quote와 같은 환경을 조금 바꾸어서 행간을 약간 줄여주는 +기능이 있다. 마치 float 안에 놓인 것과 같이. +\end{quote} + +여기서 \dispcmd{adjustquotespacing}을 호출함. + +\adjustquotespacing +\begin{quote} +이 스타일은 \pkg{setspace}\를 이용한다. 이 패키지는 +verse, quote와 같은 환경을 조금 바꾸어서 행간을 약간 줄여주는 +기능이 있다. 마치 float 안에 놓인 것과 같이. +\end{quote} + +verse류 환경의 행간은 quote를 따른다. 앞서 보인 시를 여기에서 +다시 식자해보자. +\begin{snugshade} +\renewcommand\poemtoc{subsection} +\settocdepth{subsection} +\PoemTitle{신안리에서} +\settowidth\versewidth{사람들은 굳이 한 마디 말 하려 하지 않는다.} +\ifpdf\begin{verse}\else\begin{verse}[\versewidth]\fi + +실개천 너머 나 있는 샛길로\\ +택시가 들어오고 나가며 \\ +겨르로운 달빛에 감출 부끄러움도 없는\\ +사람들은 굳이 한 마디 말 하려 하지 않는다.\\! + +나는 톱밥 같은 달빛을 한 웅큼\\ +멀리 철길 쪽으로 뿌렸다.\\ +매달린 불빛보다\\ +아침이 먼저 깨어나는 광경을 보며.\\ +삶은 새의 낮은 날음새 같은 것,\\ +이대로 누워 잠들기\\ +두렵지 않은 작은 마을에\\ +더 작은 풀꽃 인사한다.\\ +잊혀짐 너머 안부 묻는다.\\ +\end{verse} +\end{snugshade} + +여기서 다시 \dispcmd{noadjustquotespacing}을 선언함. + +\noadjustquotespacing +\begin{quote} +이 스타일은 \pkg{setspace}\를 이용한다. 이 패키지는 +verse, quote와 같은 환경을 조금 바꾸어서 행간을 약간 줄여주는 +기능이 있다. 마치 float 안에 놓인 것과 같이. +\end{quote} + +\section{강조} + +강조를 구현하는 데는 여러 가지 방법이 있다. 서구 문헌의 +경우 이탤릭체를 사용하는 것이 일반적이고, 예전의 독일 문헌에서는 +자간을 띄우는 강조 방법을 사용한 적도 있다고 한다. + +우리말 문헌은 일관되어 있지 않다. + +\subsection{방점 강조} + +예를 들면 \circemph{방점 강조} 방법을 사용하는 것이 가능하다. +\wi[강조]{방점 강조}는 \dotemph{한글 맞춤법}의 문장부호 조항에서 규정하고 있는 방법이기도 +하다.\showcommand{circemph}\showcommand{dotemph} +맨처음에 이 명령은 H\LaTeX\ 1.01에서 구현된 것이었는데, +그 후 +\useremph{발전을 거듭하여} +현재에 이르렀다. +\showcommand{useremph} + +\subsection{기울인 글꼴 또는 글꼴 대체} + +\ifPDFTeX \ungremph \fi +H\LaTeX{}에서는 {\itshape\wi[강조]{기울인 글꼴}}을 쓰는 방법을 오랫동안 사용해왔다. +그러나 실제로 출판되는 서적에서는 \wi[강조]{글꼴 대체} 방법을 사용하는 +경우가 많다. + +\ifPDFTeX \begingroup + \regremph + |gremph| 옵션은 다음과 같은 효과를 낸다. \emph{gremph 옵션}. + \ungremph + 이번에는 이것을 disable한다. \emph{gremph 옵션}. + + |\bfemtrue|와 |\bfemfalse|는 그래픽 글꼴 대신 + 은바탕 굵은 글꼴로 식자하게 한다. 또, |\SetGremphFonts| + 명령으로 직접 폰트를 지정할 수 있다.\showcommand{regremph} \showcommand{ungremph} + \showcommand{SetGremphFonts}\showcommand{bfemtrue, \textbackslash bfemfalse} + 다만 |\SetGremphFonts| 명령은 preamble에서만 쓸 수 있다. +\endgroup \else\ifLuaOrXeTeX \begingroup + \hologo{LuaLaTeX}이나 \hologo{XeLaTeX}을 쓰는 경우, + 강조 글꼴의 선택은 폰트 속성과 연계된다. 즉, \textit{Italic Font}로 + 지정된 글꼴이 강조 글꼴로 사용된다. + |[itemph]| 옵션은 이 부분의 글꼴을 기울어지게 만든다. +\endgroup \fi\fi + +\showcommand{MakeShortVerb} + +%% 한글 섹션 카운터 포맷을 가능하게 함. +\renewcommand\thesection{\pgana{section}} +\section{두번째 절} + +\epigraphtextposition{flushleftright} +\epigraph{% +나는 십대에 \wi{철학책}을 읽기 시작한 무렵부터 +거기에 언제나 이 `나(私)'가 빠져 있다고 느껴왔다.} +{\emph{탐구}\\ \textsf{\wi[인명]{카라타니 코진(柄谷行人)}}} + +\showcommand{pgana}\showcommand{epigraph} +\showcommand{epigraphtextposition} + +\wi{수학}에서는 어떤 공리계가 하나의 해석 모델에서는 참이지만 +다른 해석 모델에서는 거짓인 일이 있을 수 있다. +이것은 \wi{공리계}가 불충분한 경우이다. + +\renewcommand\thesection{\onum{section}} +\section{표} + +\showcommand{legend}\showcommand{onum} +\thisclass\는 다양한 표작성 환경을 제공한다. +\tref{tab:test}\과 \tref{tab:test2}\를 보라. +\showcommand{tref} + +%% tabular에는 legend를 붙일 수 있다. +\begin{table} +\caption{test table}\label{tab:test} +\centering +\begin{tabular}{cc} +\hline +두 줄 짜리 & 3 \\ +하단 제목 붙은 & 4 \\ +\hline +\end{tabular} +\legend{caption 아닌 소제목} +\end{table} + +\begin{table} +\caption{test table 2}\label{tab:test2} +\centering +\begin{tabular}{cc} +\hline \hline +두 줄 짜리 & 6 \\ \hline +하단 제목 안 붙은 & 5 \\ +\hline \hline +\end{tabular} +\end{table} + +(여기서 페이지를 나눈다. 페이지 나누기 명령으로는 +\dispcmd{cleartoverso}를 사용하겠다. 이것은 이 뒤에 새로 +시작하는 페이지가 짝수쪽(verso)이 되게 한다. \dispcmd{cleartorecto} +명령도 있다.) +\showcommand{cleartoverso}\cleartoverso + +\namesubappendixtrue +\begin{subappendices} +\addappheadtotoc +\section{자동조사 테스트} +\showcommand{namesubappendixtrue} +\showcommand{addappheadtotoc} +\showenv{subsppendices} + +간단한 \dispcmd{ref}-like 명령으로 \wi{자동조사}를 테스트한다. +\dispcmd{cite}도 잘 된다. + +\tref{tab:test}\와 \tref{tab:test2}\이 어떻게 보이나요? +그리고 \fref{fig:examchapstyle}\은 \pref{fig:examchapstyle}\로 +가면 볼 수 있어요. 페이지~\pref{fig:examchapstyle}\로 가보세요. +\showcommand{tref, \textbackslash fref}\showcommand{pref} + +위의 문장 입력: +\bvsides\showcommand{bvsides}\showenv{boxedverbatim} +\begin{boxedverbatim} +\tref{tab:test}\와 \tref{tab:test2}\이 어떻게 보이나요? +그리고 \fref{fig:examchapstyle}\은 +\pageref{fig:examchapstyle}\AltPageName\로 가면 볼 수 있어요. +페이지~\pageref{fig:examchapstyle}\로 가보세요. +\end{boxedverbatim} + +\section{그림 테스트} + +\newlength{\mylength} +\begin{figure} +\calccentering{\mylength} +\begin{adjustwidth*}{\mylength}{-\mylength} +\centering +\includegraphics[width=.6\textwidth]{doeun} +\caption{공부하는(?) 도은이}\label{doeunbike} +\end{adjustwidth*} +\end{figure} + +그림이 잘 들어가는지도 테스트해야 한다고 한다. \fref{doeunbike}\를 볼 것. +이 그림은 마진폭을 계산해서 편집영역의 중간이 아니라 페이지 전체의 +중간으로 가도록 \dispcmd{calccentering}을 이용했다.\showcommand{calccentering} +\showenv{adjustwidth*} +이 계산이 표준 \LaTeX\ 클래스에서 얼마나 귀찮은 것이었는지 상상할 수 +있겠는가? +\query{그림넣기} + +\begin{boxedverbatim} +\newlength{\mylength} +\begin{figure} +\calccentering{\mylength} +\begin{adjustwidth*}{\mylength}{-\mylength} +\centering +\includegraphics[width=.6\textwidth]{doeun} +\caption{공부하는(?) 도은이}\label{doeunbike} +\end{adjustwidth*} +\end{figure} +\end{boxedverbatim} + +\end{subappendices} + +%%% part 페이지를 깨끗하게... +\copypagestyle{part}{empty} + +%%%%%%%%%% Ruled를 사용하되 partmark를 정의함. +\copypagestyle{MyRuled}{Ruled} +\newlength{\MyRuledheadwidth} +\setlength{\MyRuledheadwidth}{\textwidth} +\addtolength{\MyRuledheadwidth}{\marginparsep} +\addtolength{\MyRuledheadwidth}{\marginparwidth} +\makerunningwidth{MyRuled}{\MyRuledheadwidth} +\makeheadrule{MyRuled}{\MyRuledheadwidth}{\normalrulethickness} +\makeheadposition{MyRuled}{flushright}{flushleft}{flushright}{flushleft} +\makeatletter +\makepsmarks{MyRuled}{% + \let\@mkboth\markboth + \def\partmark##1{\markboth{\hparttitlehead. ##1}{##1}} + \def\chaptermark##1{\markright{\hchaptertitlehead. ##1}} + \def\sectionmark##1{} +} +\def\partmark#1{\markboth{\hparttitlehead. #1}{#1}} +\makeatother + +%%% 제2장. 페이지 스타일과 챕터 스타일을 바꿈. +%%% 새로운 장에 새로운 스타일을 적용하려 할 때는, +%%% chapterstyle은 \chapter명령보다 먼저 부르고 \pagestyle은 +%%% \chapter보다 나중에 부르는 것이 좋다. + +\part{테스트는 즐거워} +\oblivoirchapterstyle{veelo} +\pagestyle{MyRuled} + +\chapter{수학질문상자}\traceon\label{sec:math}\traceoff + +%% 절의 카운터를 \pnum으로. +\renewcommand\thesection{\pnum{section}} + +\showcommand{makepagestyle}\showcommand{copypagestyle} + +\section{자연로그의 밑} + +이 절은 \cite{Kentaro}\을 인용하였다. \env{singlespacing}\을 +사용하였다.\showenv{singlespacing} + +%\begin{singlespacing} +\[ +e^x =1+ \frac{x}{1!} + \frac{x^2}{2!} + \frac{x^3}{3!} + \cdots +\] +이라는 사실이 알려져 있다. 여기에서 $x=1$이라 하면, +\[ +e=1+\frac{1}{1!}+\frac{1}{2!}+\frac{1}{3!} +\cdots +\] +가 된다. + +우선 +\[ +\lim_{n\to\infty}\left(1+ \frac{1}{n}\right)^{n} = e +\] +에서 $1/n = h$라 두면, +\[ +\lim_{h\to 0}\left(1+h\right)^{\frac{1}{h}} = e +\] +라고 쓸 수 있다. $e$를 밑으로 하는 대수를 $\log$라고 표시하면, +\[ +\frac{\log(1+h)}{h} = \log(1+h)^{\frac{1}{h}} +\] +인데, 여기에서 $h \to \infty$이라면, +\[ +\lim_{h\to 0}\frac{\log(1+h)}{h} = \lim_{h\to 0}\log(1+h)^{\frac{1}{h}} =\log e. +\] + +따라서, +\[ +\log(1+h)=x, \quad\text{즉}\quad h=e^{x} -1 +\] +이다. 여기에서, +\[ +1=\lim_{h\to0}\frac{\log(1+h)}{h}=\lim_{x\to0}\frac{x}{e^x -1}. +\] + +따라서, +\[ +\lim_{x\to0}\frac{e^x -1}{x}=1 +\] +을 얻는다. 그런데 여기에서, +\[ +y=e^x +\] +의 도함수 $y'$를 구해본다. +\[ +y'=\lim_{h\to0}\frac{e^{x+h}-e^x}{h}=e^x \lim_{h\to0}\frac{e^h -1}{h}=e^x. +\] +따라서, +\[ +y=e^x \text{라면}, \qquad y'=e^x +\] +이다. + +또, $y=\log x$의 도함수를 구해본다. +\begin{displaymath} +\begin{split} +y' &= \lim_{h\to0}\frac{\log(x+h)-\log x}{h} \\ + &= \lim_{h\to0}\frac{1}{h}\log\left(1+ \frac{h}{x}\right) \\ + &= \frac{1}{x}\lim_{h\to0}\frac{x}{h}\log\left(1+\frac{h}{x}\right) \\ + &= \frac{1}{x}\lim_{\frac{h}{x}\to0}\log\left(1+\frac{h}{x}\right)^{\frac{x}{h}} \\ + &= \frac{1}{x}\log e \\ + &= \frac{1}{x}. +\end{split} +\end{displaymath} + +따라서, +\[ +y=\log x \text{라면}, \qquad y'=\frac{1}{x}. +\] + +%\end{singlespacing} + +이와 같이 간단한 공식으로 얻어진 것은 대수의 밑으로 $e$를 썼기 +때문이다. $e$ 이외의 밑을 사용하면, 공식은 보다 복잡하게 된다. +이런 의미에서 $e$를 밑으로 하는 대수를 \emph{자연로그}라고 부른다.\showcommand{emph} +이상으로부터 상상할 수 있듯이, 미적분학과 같은 이론을 전개할 때는 +$e$를 밑으로 하는 대수를 사용하고, 실제의 수치계산에서는 +$10$을 밑으로 하는 상용로그를 사용한다. + +\fancybreak{* * *} + +$0 \le t \le 1$에 있어서, $f(t)$는 연속인 도함수 $f'(t)$를 가지고,\showcommand{fancybreak} +$0 < f'(t) \le 1,\quad f(0)=0$이다. 이 때 다음 부등식이 성립함을 보여라. +\[ +\left[ \int_{0}^{1} f(t)dt \right ] ^2 \ge \int_{0}^{1} [f(t)]^3 dt +\] + +\vskip\onelineskip + +적분구간의 상한을 변수 $x$로 바꾸어본다. +\[ +\left[ \int_{0}^{x} f(t)dt \right]^2 \ge \int_0^x [f(t)]^3 dt +\] +이 식의 좌변에서 우변을 빼서 그것을 $F(x)$라고 두자. +\[ +F(x) = \left[ \int_{0}^{x} f(t)dt \right]^2 - \int_0^x [f(t)]^3 dt +\] +이 때 $F(0)=0$이다. + +$F(x)$를 $x$로 미분하면 +\begin{equation} +\begin{split} +F'(x) &= 2\left[ \int_{0}^{x} f(t)dt \right]f(x) - \{f(x)\}^3 \\ + &= f(x) \left[ 2\int_{0}^{2} f(t)dt - \{f(x)\}^2 \right] +\end{split} +\end{equation} + +문제의 의미에 의해 $0<x<1$에서 $f(x) > 0$이다. +\[ +G(x) = 2 \int_{0}^{x} f(t)dt - \{f(x)\}^2 \qquad (0 \le x \le 1) +\] +이라 놓으면 $G(0)=0$이고, +\begin{equation} +\begin{split} +G'(x) &= 2f(x) - 2f(x)f'(x) \\ + &= 2f(x) \{1-f'(x)\} \ge 0 +\end{split} +\end{equation} +이다. $0 \le x \le 1$인 모든 $x$에 관하여 $f'(x) \le 1$이므로 +$G'(x) \ge 0$. 따라서 $G(x) \ge 0$임을 말할 수 있다. 그러므로 +\uline{$F(x) \ge 0$이 성립한다.}\showcommand{uline (ulem package)} + +%% 부록 관련 명령 +%% \appendix 또는 appendices 환경 +%\appendix +%% 부록 면주에 \hparttitlehead, \hchaptertitlehead 를 표시하지 않는다. +\def\partmark#1{\markboth{#1}{#1}} +\def\chaptermark#1{\markright{#1}} +% + +\AppendixTitleToToc +\AttachAppendixTitleToSecnum + +%\begin{appendices} +\appendix +\appendixpage* + +\renewcommand\thechapter{\Roman{APPchapter}} +\renewcommand\thesubsection{\thesection.\arabic{APPsubsection}} +\setcounter{APPchapter}{0} + +\chapterstyle{appendixdefault} +\renewcommand*\prechapternum{\chapnamefont 부록\ \ 제} +\renewcommand*\postchapternum{\chapnamefont 장} +\renewcommand*\printchapternum{\chapnumfont\thechapter} +%% appendix에서는 chaptersyle을 appendixcompanion, +%% appendixdefault, appendixsection 등으로 지정할 것. +%% 사용자가 새로운 chapterstyle을 설정하려 할 때는 +%% appendixXXXX 환경을 새로 만들어야 한다. +%% appendix에서의 절 모양은 \thechapter.\arabic{section}으로 +%% 된다. 이것은 renewcommand할 수 있다. + +\pagestyle{hangul} + +\chapter{19세기 초중엽}\label{sec:appchap} + +\chapterprecis{\noindent 부록에서는 한자가 많은 문장과 상호참조가 많은 문장을 + 시험한다.} +\showcommand{chapterprecis} + +\showcommand{appendix}\showenv{appendices} +\ResetHangulspace{1.333}{1.2} +\showcommand{ResetHangulspace} +\paragraphfootnotes +\showcommand{paragraphfootnotes} + +\section{평안도 광산}\label{sec:appsec} +19세기에 들어와서도 1807년 \wi{평안도} \wi[위원]{渭原} 지방에서 +\wi{광산}이 개발되자 단시일내에 수많은 광산노동자가 집결하여 커다란 +광산촌을 형성하였는데 이 광산도 앞의 遂安광산과 동일한 형태로 +운영되었을 것은 틀림없다. 1811년 평안도 농민전쟁 당시 서울에 있던 +禹君則의 物主(資本主)가 수천 냥의 자금을 보내어 그것으로 雲山의 금광을 +운영하게끔 한 사실, 또한 앞서 본 대로 雲山 광산노동자 800명을 官軍으로 +강제적으로 끌어들이려 한 계획, \wi[김창시]{金昌始}가 +\wi[운산광산]{雲山광산}의 \wi[우욱]{禹郁}과 연계하에 그곳의 +광산노동자를 농민전쟁에 끌어들이는 조직 사업을 진행하였다고 하는 +사실은\footnote{\bnm{日省錄} 哲宗 9年 2月 3日條} 이 시기에 +雲山금광에서도 수많은 광산노동자가 집결하여 있었음을 確證하여 +준다. 또한 1858년 함경도 암행어사 洪承裕의 보고에 의하면 당시 +함경도에서는 金, 銀, 銅의 潛採가 광범하게 이루어져서 하나의 광산이 +開發되기만 하면 도처에서 金店軍이 몇천 명씩 몰려와서 鑛山村이 형성되고 +場市가 열려서 각종 日用品이 광범하게 매매되고 있고 광산의 坑의 깊이가 +千餘尺에 달하는 경우도 적지 않았다.\footnote{\bnm{關南平亂錄} 卷五 + 安州牧使 牒報條.} + +\section{술어 논리의 완전성 정리} + +이 절의 텍스트는 \cite{incompl}\ pp.\ 155ff.에서 취하였다. +\showcommand{cite} + +\subsection{먼저 기호의 설명을 잠깐\texorpdfstring{\ldots}{...}} + +술어논리의 형식화는 모든 대상과 논리법칙(공리)의 기호화로부터 +시작된다. ``태초에 기호가 있다''이다. + +\showcommand{texorpdfstring} +기본 기호는 \fref{fig:syms}의 여섯 종류이다. +\showcommand{fref} + +\begin{figure} +\centering +\begin{minipage}{.75\textwidth} +\begin{tabbing} +1111\=11111111111111111111\= \kill +(1) \> 대상기호(상수) \> $ c_{1}, c_{2}, c_{3}, c_{4}, \ldots $ \\ +(2) \> 함수기호 \> $ f_{1}, f_{2}, f_{3}, f_{4}, \ldots $ \\ +(3) \> 술어기호 \> $ P_{1}, P_{2}, P_{3}, P_{4}, \ldots $ \\ +(4) \> 자유변수 \> $ a_{1}, a_{2}, a_{3}, a_{4}, \ldots $ \\ +(5) \> 속박변수 \> $ x_{1}, x_{2}, x_{3}, x_{4}, \ldots $ \\ +(6) \> 논리기호 \> $ \land, \lor, \rightarrow, \lnot, \forall, \exists $ +\end{tabbing} +\end{minipage} +\caption{기본 기호}\label{fig:syms} +\end{figure} + +\showenv{tabbing}\showenv{minipage} + +이 중, `자유변수'란 불특정의 대상, `속박변수'란 논리기호 $\forall$과 +$\exists$의 어느 것인가와 함께 사용하는 변수를 나타낸다. $\forall$과 +$\exists$는 `속박기호' 또는 `양화기호'라 부르고 $\forall$을 +`전칭기호', $\exists$를 `존재기호'라고 말한다. + +이 $\forall$과 $\exists$를 포함하지 않는 논리 체계가 \bnm{프린키피아 + 마테마티카}에서 처음으로 체계화된 ``명제논리학''이다. 이쪽은 벌써 +1920년에 그 무모순성과 완전성이 당시 컬럼비아 대학의 학생에 지나지 +않았던 E.~L.~포스트에 의해서 증명되고 있다. + +논리기호는 초수학에 있어서는 추상적인 기호에 지나지 않는다. 그러나 +근원을 밝히면 그것들에는 원래 각각 고유한 의미가 있다. 즉 `$\lnot$'는 +``\ldots 이 아니다'', `$\lor$'는 ``또는'', `$\land$'는 ``동시에'', +`$\rightarrow$'는 ``이라면'', $\forall$은 ``모든'', $\exists$는 ``어떤 +\ldots 가 존재한다''는 의미이다. + +이 해석으로 말하면 대상이 유한집합의 경우는 술어논리도 명제논리로 +환원될 수 있다. $\forall$과 $\exists$는 무한집합을 대상으로 할 때 +비로소 의미를 갖는 논리기호이다. 수학은 본질적으로 무한집합을 대상으로 +하고 있기 때문에 술어논리는 수학의 논리로 되어 있는 것이다. + +그러나 지금은 이러한 유래를 제외하고 형식적 체계만을 문제삼고 있기 +때문에 당분간 기호의 의미는 잊어버려도 상관없다. 오히려 적극적으로 +잊어버려서 기호의 조작에만 전념하려고 하는 것이 초수학의 기본 +방침이다. + +\subsection{`항', `논리식'의 정의와 논리법칙} + +기호가 갖추어진 곳에서 추론의 대상이 되는 `항'을 \pref{fig:term}의 +\fref{fig:term}\과 같이 정의한다.\showcommand{pref} + +\begin{figure} +\centering +\begin{minipage}{.75\textwidth} +\begin{enumerate}[(1)]\tightlist\small\raggedright +\item \label{itemone} 대상 기호와 자유변수는 항이다. +\item \label{itemtwo} $f$가 $n$ 변수의 함수기호이고, $t_1 , t_2 , + \ldots, t_n$이 항이라면 $f(t_1 , t_2 , \ldots t_n )$은 항이다. +\item (\ref{itemone})\와 (\ref{itemtwo})\으로부터 얻어지는 것만이 항이다. +\end{enumerate} +\end{minipage} +\caption{`항'의 정의}\label{fig:term} +\end{figure} + +다음으로 이 항을 사용해서 `논리식'을 \fref{fig:logi}\과 같이 정의한다. + +\begin{figure} +\centering +\begin{minipage}{.85\textwidth} +\begin{enumerate}[(1)]\tightlist\small\raggedright +\item \label{st} $P$가 $n$ 변수의 술어기호이고, $t_1 , t_2 , \ldots , + t_n $이 항이라면 $P(t_1 , t_2 , \ldots , t_n )$은 논리식이다. 특히 + 이것을 \emph{원시논리식}이라 부른다. +\item \label{nd} $A, B$가 논리식일 때 $\lnot A, A \lor B, A \land B, A + \to B$도 논리식이다. +\item \label{rd} $A(a)$가 자유변수 $a$를 포함하는 논리식이고 $x$가 + $A(a)$ 속에 나타나지 않는 속박변수일 때 $\forall xA(x), \exists + xA(x)$는 논리식이다. +\item (\ref{st}), (\ref{nd}), (\ref{rd})에 의해서 얻어지는 것만이 + 논리식이다. +\end{enumerate} +\small +덧붙여 말하면, $\forall xA(x)$는 ``모든 $x$는 $A$를 충족시킨다'', +$\exists xA(x)$는 ``$A$를 충족시키는 $x$가 존재한다''라고 해석한다. +\end{minipage} +\caption{`논리식'의 정의}\label{fig:logi} +\end{figure} + +그러면 다음은 이들 논리식을 사용해서 추론을 행하기 위한 논리법칙의 +설정인데, 힐베르트-아카만의 공리계에서는 다음 \fref{fig:rules}\과 같이 +되어 있다. + +\begin{figure} +\centering +\begin{minipage}{.85\textwidth}\small +\noindent\textsf{공리}\\ +\begin{enumerate}[(1)]\tightlist +\item $A \to (B\to A)$ +\item $(A\to B)\to ((A\to (B\to C))\to (A\to C))$ +\item $A\to (B\to A\land B)$ +\item $A\land B\to A,\quad A\land B\to B$ +\item $A\to A\lor B,\quad B\to A\lor B$ +\item $(A\to C)\to ((B\to C)\to(A\lor B\to C))$ +\item $(A\to B)\to ((A\to \lnot B)\to \lnot A))$ +\item $\lnot\lnot A\to A$ +\item $A(t)\to \exists xA(x)$ ($t$는 항) +\item $\forall xA(x) \to A(t)$ ($t$는 항) +\end{enumerate} + +\bigskip + +\noindent\textsf{추론 규칙}\\ +\begin{enumerate}[1~~] +\item \label{rules:st} $\dfrac{A,\; A\to B}{B}$ +\item $\dfrac{A(a)\to C}{\exists xA(x)\to C}$ +\item $\dfrac{C\to A(a)}{C\to \forall xA(x)}$ +\end{enumerate} +다만, $A, B, C, \ldots, \forall xA(x), \ldots$ 등은 모두 논리식으로 +한다. +\end{minipage} +\caption{논리법칙 (힐베르트-아카만의 공리계를 따름)}\label{fig:rules} +\end{figure} + +`추론규칙'이 형성하는 ``도형''을 ``연역도'' 또는 ``증명도''라 부르고 +이 도형은 ``위의 기호열로부터 아래의 기호열을 추론한다''라고 +해석한다. 예컨대 추론규칙 \ref{rules:st}\는 ``$A$와 $A\to B$로부터 +$B$를 추론한다''라고 해석하는 것이다. + +\subsection{증명과 해석} + +이만큼 준비가 된 곳에서 `증명가능'의 개념을 다음과 같이 정의한다.\showcommand{tightlist} +\showenv{enumerate} +\begin{enumerate}[(1)]\tightlist +\item \label{ev:st} 공리는 증명가능하다. +\item \label{ev:nd} 증명가능한 논리식에 추론규칙을 적용해서 얻어지는 논리식은 + 증명가능하다. +\item (\ref{ev:st})\과 (\ref{ev:nd})에서 얻어진 논리식만이 + 증명가능하다. +\end{enumerate} + +논리식 $A$가 $B_1 , B_2 , \ldots , B_n $을 가정했을 때 증명할 수 +있다면, +\begin{displaymath} +B_1 , B_2 , \ldots , B_n \vdash A +\end{displaymath} +라고 쓴다.\showenv{displaymath} + +또한 $A$가 술어논리의 공리만을 사용해서 증명가능할 때는 +\begin{displaymath} +\vdash A +\end{displaymath} +라고 쓴다. + +\begin{snugshade} +실례를 두 가지 대비시켜서 보여주자. + +예컨대 논리식, +$$ +\forall x \exists y (y < x) +$$ +는 ``모든 $x$에 대해서 $y$가 존재하고 $y$는 $x$보다 작다''라고 해석할 +수 있다. 이 해석 아래에서는 실수의 영역이면 모델이 되나 자연수의 +영역에서는 모델이 되지 않는다. 자연수로 $x$를 $0$으로 잡으면 그것보다 +작은 자연수 $y$는 존재하지 않기 때문이다. + +대비적인 실례로서 논리식, +$$ +\exists x \forall y (x \le y) +$$ +를 취하자. 그 해석은 ``어떤 $x$가 존재하고 모든 $y$에 대해서 $y$는 +$x$와 같거나 $x$보다 크다''로 된다. 이것은 자연수가 모델이라면 +$0$이라는 최소수가 존재하기 때문에 진실이 되나 실수의 모델에서는 허위로 +되는 논리식이다. +\end{snugshade} +\showenv{snugshade} + +그래서 모든 해석에 대해서 진실이 되는 논리식을 `항진식' 또는 +`토톨로지'라 부르고 $A$가 토톨로지일 때 +\begin{displaymath} +\vDash A +\end{displaymath} +라고 쓰기로 한다. + +\chapter{이 문서에 관하여} + +이 문서는 \pkg{memhangul-ucs}를 처음 만들 때 테스트용으로 작성한 +것이다. + +\pkg{oblivoir}는 원래 \pkg{dhucs}를 백그라운드 드라이버로 하여 +구현된 것이었다. 그러다가 \hologo{XeTeX}ko, \hologo{LuaTeX}ko를 +백그라운드로 한 \pkg{xoblivoir}가 만들어졌다. +현재 버전의 \pkg{xoblivoir}는 이 둘을 합쳐서 어떤 엔진으로 컴파일해도 +거의 같은 결과를 얻게끔 되어 있다. +따라서, 이 문서는 \hologo{pdfLaTeX}, \hologo{XeLaTeX}, \hologo{LuaLaTeX} 어느 것으로도 컴파일된다. \showcommand{hologo} + +\section{kotexindy에 관하여} +찾아보기를 만들려면 |kotexindy|를 사용하라. 예를 들면 다음과 같다. +\begin{verbatim} +$ kotexindy memucstest.idx +\end{verbatim} +찾아보기를 찍는 명령은 |\printindex|이다. \showcommand{printindex} + +%\restorechapsec \showcommand{restorechapsec} +%% 만약 appendix가 문서의 가장 끝에 오는 것이 아니라면 +%% 이 명령을 appendix 이후에 실행해준다. +%% 아래와 같이 appendices 환경을 쓰는 경우에는 +%% 환경을 종료하기만 하면 된다. +%\end{appendices} + +%%% 본문의 끝. +\backmatter +\chapterstyle{demo} + +%% \bibintoc 하면 참고문헌이 목록에 나온다. +%% 기본값이므로 별도로 설정할 필요는 없다. +%\bibintoc +\renewcommand\prebibhook{% + \showcommand{bibintoc}% + 이 참고문헌 예제는 시험을 위해서 작성된 것으로 실제 문서의 + 내용과는 무관하다.% + \showcommand{prebibhook}} +\begin{thebibliography}{00} +\bibitem[카누쓰86]{Knuth} Donald Knuth. \textit{The + \TeX{}book}. Addison-Wesley. 1986. +\bibitem{memman} Peter Wilson. ``The Memoir Class for Configurable + Typesetting --- User Guide,'' On-line 문서. + \url{http://www.ctan.org/tex-archive/macros/latex/contrib/memoir/}. +\bibitem{incompl} 요시나가 요시마사, 임승원 (옮김), \bnm{불완전성 정리 + --- ``이성의 한계''의 발견}. 전파과학사. 1993. +\bibitem[수학질문상자]{Kentaro} 야노 겐타로(矢野健太郞), 전재복 + (옮김). \bnm{수학 질문 상자 --- 왜일까? 그것을 알고 + 싶다}. 전파과학사. 1991. (원저: 고단샤, 1973). +\end{thebibliography} + +\indexintoc +\renewcommand\preindexhook{% + 찾아보기는 테스트를 위해서 임의의 단어들로 선정되었다. + \bigskip} +\printindex + +%% memoir에서는 \listof... 명령을 아무데나 선언할 +%% 수 있다. 신기하다. +\clearpage +\showcommand{listof...} +\listofqueries + +\end{document} + diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/10_5.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/10_5.sty new file mode 100644 index 00000000000..401c569ff9a --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/10_5.sty @@ -0,0 +1,82 @@ +%% File `10_5.sty` +%% +%% Copyright (c) 2006-2013 Kangsoo Kim <karnes at ktug org> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2006/05/20 or later. +%% +%% 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 new file mode 100644 index 00000000000..4cb7d1ffd6b --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/fapapersize.sty @@ -0,0 +1,141 @@ +%% File `fapapersize.sty` +%% +%% Copyright (c) 2006-2013 Kangsoo Kim <karnes at ktug org> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2006/05/20 or later. +%% +%% ver 0.031 (2006/12/04) +%% trivial bug fix. +%% ver 0.03 (2006/11/24) +%% stocksize를 별도 지정할 수 있게 함 +%% option [stock], command \usefastocksize{<width>}{<height>} +%% 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/hfontsel.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/hfontsel.sty new file mode 100644 index 00000000000..93ecf2ca975 --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/hfontsel.sty @@ -0,0 +1,88 @@ +%% File `hfontsel.sty` +%% +%% Copyright (c) 2006-2013 Kangsoo Kim <karnes at ktug org> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2006/05/20 or later. +%% +%% 사용법은 다음과 같음 +%% * 전체 정의 +%% \SelectHfonts{utbt,utgt,uttz}{utbt,utgt,utgt} +%% * 한자 부분을 한글 부분과 같게. 주의. +%% 은타자는 한자가 없으므로 타자체로 은타자를 설정한 경우 +%% 이 방식을 쓰면 ttfamily에서 오류. +%% \SelectHfonts{utbt,utgt,utgt}{*} +%% * 몇 개만 바꿀 때. 별표 부분은 모두 기본폰트(은글꼴)로 설정됨. +%% \SelectHfonts{utbt,*,*}{*,*,utgt} +%% +%% 2007/06/03 +%% \SelectHfonts 명령에 의해 생성되는 \hfontfamilynameprefix (2letters)를 +%% [hfontspec] 옵션에 의하여 \usehangulfontspec의 인자로 사용한다. oblivoir +%% 에서는 이 방법을 쓰지 않음. +%% 2007/05/25 +%% dhucs 4.0 compatible +%% \hfontfamilynameprefix는 사용되지 않을 것이나, 하위호환성을 위해 유지함. +%% 2006/12/15 +%% bug fix. thanks to Dohyun Kim. +%% 2006/09/06 +%% unfonts-type1을 쓸 때 \hfontfamilynameprefix가 {ut}로 되돌려지던 문제점 수정. +%% non-default 상태에서는 hanja/roman의 설정에 영향을 받는다. +%% +\ProvidesPackage{hfontsel}[2013/09/27] + +\newif\if@pshfont\@pshfonttrue +\DeclareOption{ps}{\@pshfonttrue} +\DeclareOption{unttf}{\@pshfontfalse} +\newif\if@hfontspec\@hfontspecfalse +\DeclareOption{hfontspec}{\@hfontspectrue} +\ProcessOptions + +\newif\if@defaulthfnt\@defaulthfnttrue +\if@pshfont +\def\defaulthfntprefix{ut} +\else +\def\defaulthfntprefix{un} +\fi + +\def\FirstTwoOfFour#1#2#3#4{#1#2} +\newcommand*\SelectHfonts[2]{% + \def\reserved@a{#2}\def\reserved@b{*}% + \ifx\reserved@a\reserved@b + \hangul@fontmap#1\@nil\hanja@fontmap#1\@nil + \else + \hangul@fontmap#1\@nil\hanja@fontmap#2\@nil + \fi + \if@hfontspec + \expandafter\usehangulfontspec\expandafter{\hfontfamilynameprefix} + \fi +} +\def\hangul@fontmap#1,#2,#3\@nil{% + \ifx*#1\def\h@ng@ls@rif{\defaulthfntprefix bt}\else\def\h@ng@ls@rif{#1}\fi + \ifx*#2\def\h@ng@ls@ns{\defaulthfntprefix gt}\else\def\h@ng@ls@ns{#2}\fi + \ifx*#3\def\h@ng@lt@z@{\defaulthfntprefix tz}\else\def\h@ng@lt@z@{#3}\fi + \SetHangulFonts{\h@ng@ls@rif}{\h@ng@ls@ns}{\h@ng@lt@z@}% +} +\def\hanja@fontmap#1,#2,#3\@nil{% + \ifx*#1\def\h@nj@s@rif{\defaulthfntprefix bt}\else\def\h@nj@s@rif{#1}\@defaulthfntfalse\fi + \ifx*#2\def\h@nj@s@ns{\defaulthfntprefix gt}\else\def\h@nj@s@ns{#2}\fi + \ifx*#3\def\h@nj@t@z@{\defaulthfntprefix gt}\else\def\h@nj@t@z@{#3}\fi + \SetHanjaFonts{\h@nj@s@rif}{\h@nj@s@ns}{\h@nj@t@z@}% +%%%% 2006/09/06, 2007/05/25 downward compatibility + \if@defaulthfnt\def\hfontfamilynameprefix{ut}\else + \def\hfontfamilynameprefix{\expandafter\FirstTwoOfFour\h@nj@s@rif}\fi +} + +%%% hangul font spec +\if@hfontspec +\usehangulfontspec{\defaulthfntprefix} +\fi + +%%% default setting +%\SelectHfonts{\defaulthfntprefix bt,\defaulthfntprefix gt,\defaulthfntprefix tz}{*} + +\endinput diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/hfontspec.nanum b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/hfontspec.nanum new file mode 100644 index 00000000000..0e6179f292b --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/hfontspec.nanum @@ -0,0 +1,11 @@ +hu = \z@ +interhchar = \z@ +fullstoplower = \z@ +exclamationlower = \z@ +questionlower = \z@ +serifhangulfont = nanummj +sanshangulfont = nanumgt +monohangulfont = nanumgt +serifhanjafont = uhcmj +sanshanjafont = nanumgt +monohanjafont = nanumgt 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 new file mode 100644 index 00000000000..f4681e39a9f --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memhangul-common.sty @@ -0,0 +1,949 @@ +%% File `memhangul-common.sty` +%% +%% (C) Copyright 2013 Kangsoo Kim <karnes at ktug org> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2006/05/20 or later. +%% +%%% +%%% part of kotex-oblivoir +%%% +%%% ===================== +%%% 편, 장 섹션 타이틀 재설정 +%%% 절의 섹션 타이틀은 수정하지 않음. +%% +\ProvidesPackage{memhangul-common}[2013/10/22] + +\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} + +\def\@spart#1{% + \M@gettitle{#1}% + {\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 +%%%%%%%%%%% +%% we don't adapt mempatch 3.6, just retrieved to memoir-original manner. +\renewcommand{\@m@mchapter}[1][\@empty]{% + \def\ch@pt@c{#1}% capture first optional arg + \@dblarg{\@chapter}} +%%\def\m@m@empty{\@empty} + +\def\@chapter[#1]#2{% + \ifx\ch@pt@c\m@m@empty % no optional args + \def\f@rtoc{#1}% + \def\f@rhdr{#1}% + \else % at least one opt arg + \def\f@rtoc{\ch@pt@c}% + \nametest{#1}{#2}% + \ifsamename % one opt arg + \def\f@rhdr{\ch@pt@c}% + \else % two opt args + \def\f@rhdr{#1}% + \fi + \fi + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \refstepcounter{chapter}% + \fi + \fi + \chaptermark{\f@rhdr}% + \ifartopt + \@makechapterhead{#2}% + \@afterheading + \else + \insertchapterspace + \if@twocolumn + \@topnewpage[\@makechapterhead{#2}]% + \else + \@makechapterhead{#2}% + \fi + \@afterheading + \fi + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \addcontentsline{toc}{chapter}{% +% \protect\chapternumberline{\thechapter}\f@rtoc}% + \protect\chapternumberline{\hchaptertitlehead}\f@rtoc}% + \else + \addcontentsline{toc}{chapter}{\f@rtoc}% + \fi + \else + \addcontentsline{toc}{chapter}{\f@rtoc}% + \fi + \ifheadnameref\M@gettitle{\f@rhdr}\else\M@gettitle{\f@rtoc}\fi +} + +\def\@makechapterhead#1{% + \chapterheadstart% \vspace*{50\p@}% + {\parindent \z@ \raggedright \normalfont + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \memucsinterwordchapterskiphook +% \printchaptername \chapternamenum \printchapternum \chapternamenum \postchapternum + \prechapternum \chapternamenum \printchapternum \chapternamenum \postchapternum + \afterchapternum % \par\nobreak \vskip 20\p@ + \else + \printchapternonum + \fi + \else + \printchapternonum + \fi + \interlinepenalty\@M + \printchaptertitle{#1} % \Huge \bfseries #1 + \afterchaptertitle % \par\nobreak \vskip 40\p@ + }} + +\def\@makeschapterhead#1{% + \chapterheadstart + {\parindent \z@ \raggedright \normalfont \memucsinterwordchapterskiphook + \printchapternonum + \interlinepenalty\@M + \printchaptertitle{#1} + \afterchaptertitle + } +} + +\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}{장}% + \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 not complete. +%% \hbox로 처리하기 때문에 행끝에서 할주 행나눔은 이루어지지 않는다. +%% 글꼴이 \tiny로 고정. \footnotesize를 쓰면 행간이 흐트러짐. +%% TODO: 현재 설정은 10pt 문서에서 1pt정도가 행간에 추가됨. +%% \lineskiplimit를 이용해서 행간을 고정시켜둘 것인지는 아직 +%% 결정하지 못하였음. +\newskip\divnoteskip +\divnoteskip = .18em plus .02em minus .02em +\def\divnotestyle{% + \spaceskip\divnoteskip\normalfont\tiny} +\def\divnote#1{% + \settowidth{\@tempdima}{\divnotestyle #1}% + \hskip.1em$\big($\raise.2em\hbox{\parbox{.525\@tempdima}{\divnotestyle\singlespace #1}}$\big)$\hskip.1em% +} + +%% 각주 설정을 위한 추가 매크로 +\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@ +\precaption{{\@figtabcaptfont@\cnm@char@open}} +\captiondelim{{\@figtabcaptfont@\cnm@char@close}\quad} +\renewcommand\cfttablepresnum{\cnm@char@open\tablename\space} +\renewcommand\cfttableaftersnum{\cnm@char@close} +\renewcommand\cfttablenumwidth{3.8em} +\renewcommand\cftfigurepresnum{\cnm@char@open\figurename\space} +\renewcommand\cftfigureaftersnum{\cnm@char@close} +\renewcommand\cftfigurenumwidth{4.5em} +\fi + +\endinput diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memhangul-patch.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memhangul-patch.sty new file mode 100644 index 00000000000..260e711ffe4 --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memhangul-patch.sty @@ -0,0 +1,189 @@ +%% File `memhangul-patch.sty` +%% +%% Copyright (c) 2005-2013 Kangsoo Kim <karnes at ktug org> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2006/05/20 or later. +%% +%% 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 +%% +\typeout{memhangul-ucs patch for memoir 1.618, 2006/04/27} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% PART +\long\def\@part[#1]#2{% +% \ifx#1\@empty\PrerenderUnicode{#2}\else\PrerenderUnicode{#1}\fi + \M@gettitle{#1}% + \ifnum \c@secnumdepth >-2\relax + \refstepcounter{part}% + \addcontentsline{toc}{part}% +% {\protect\partnumberline{\thepart}#1}% + {\protect\partnumberline{\hparttitlehead}#1}% + \mempartinfo{\thepart}{#1}{#2}% + \else + \addcontentsline{toc}{part}{#1}% + \mempartinfo{}{#1}{#2}% + \fi + \partmark{#1}% + {\centering + \interlinepenalty \@M + \normalfont + \ifnum \c@secnumdepth >-2\relax +% \printpartname \partnamenum \printpartnum +% \midpartskip + \prepartnum \partnamenum \printpartnum \partnamenum \postpartnum + \midpartskip + \fi + \printparttitle{#2}\par}% + \@endpart} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% CHAPTER +%% memhangul : opt args : different from memoir 1.618 +%% \chapter[toc][hdr]{title} +%% \chapter[toc]{hdr/title} +%% \chapter{toc/hdr/title} +\def\@chapter[#1]#2{% +% \ifx\ch@pt@c\@empty % no optional args +% \def\f@rtoc{#2}% +% \def\f@rhdr{#2}% +% \PrerenderUnicode{#2}% +% \else % at least one opt arg +% \let\f@rtoc\ch@pt@c +% \ifx\@empty#1\@empty +% \let\f@rhdr\ch@pt@c +% \PrerenderUnicode{#1#2}% +% \else +% \def\f@rhdr{#1}% +% \PrerenderUnicode{#1}% +% \fi +% \fi + \ifx\ch@pt@c\m@m@empty % no optional args + \def\f@rtoc{#1}% + \def\f@rhdr{#1}% +% \PrerenderUnicode{#1}% + \else % at least one opt arg + \def\f@rtoc{\ch@pt@c}% + \nametest{#1}{#2}% + \ifsamename % one opt arg + \def\f@rhdr{\ch@pt@c}% +% \PrerenderUnicode{#1#2}% + \else % two opt args + \def\f@rhdr{#1}% +% \PrerenderUnicode{#1}% + \fi + \fi + \m@m@Andfalse + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \m@m@Andtrue + \fi + \fi + \ifm@m@And + \ifanappendix + \refstepcounter{APPchapter}% + \else + \refstepcounter{chapter}% + \fi + \fi + \chaptermark{\f@rhdr} + \ifartopt + \@makechapterhead{#2}% + \@afterheading + \else + \insertchapterspace + \if@twocolumn + \@topnewpage[\@makechapterhead{#2}]% + \else + \@makechapterhead{#2}% + \fi + \@afterheading + \fi + \ifm@m@And + \ifanappendix + \addcontentsline{toc}{appendix}{% +% \protect\chapternumberline{\thechapter}\f@rtoc}% + \protect\chapternumberline{\hchaptertitlehead}\f@rtoc}% +% \memappchapinfo{\thechapter}{\f@rtoc}{\f@rhdr}{#2}% + \memappchapinfo{\thechapter}{\f@rtoc}{\f@rhdr}{#2}% + \else + \addcontentsline{toc}{chapter}{% +% \protect\chapternumberline{\thechapter}\f@rtoc}% + \protect\chapternumberline{\hchaptertitlehead}\f@rtoc}% +% \memchapinfo{\thechapter}{\f@rtoc}{\f@rhdr}{#2}% + \memchapinfo{\hchaptertitlehead}{\f@rtoc}{\f@rhdr}{#2}% + \fi + \else + \addcontentsline{toc}{chapter}{\f@rtoc}% + \ifanappendix + \memappchapinfo{}{\f@rtoc}{\f@rhdr}{#2}% + \else + \memchapinfo{\hchaptertitlehead}{\f@rtoc}{\f@rhdr}{#2}% + \fi + \fi + \ifheadnameref\M@gettitle{\f@rhdr}\else\M@gettitle{\f@rtoc}\fi +%%% for chapter + \ifanappendix + \protected@edef\@currentlabel{\thechapter}% + \fi +} + +\def\@makechapterhead#1{% + \chapterheadstart% \vspace*{50\p@}% + {\parindent \z@ \raggedright \normalfont + \ifm@m@And + \memucsinterwordchapterskiphook +% \printchaptername \chapternamenum \printchapternum +% \afterchapternum % \par\nobreak \vskip 20\p@ + \prechapternum \chapternamenum \printchapternum \chapternamenum \postchapternum + \afterchapternum % \par\nobreak \vskip 20\p@ + \else + \printchapternonum + \fi + \interlinepenalty\@M + \printchaptertitle{#1} % \Huge \bfseries #1 + \afterchaptertitle % \par\nobreak \vskip 40\p@ + }} + + +\renewcommand{\@m@mschapter}[2][\@empty]{% + \@schapter{#2}% + \ifx \@empty#1 + \def\f@rhdr{#2}% +% \PrerenderUnicode{#2}% + \else % opt arg + \def\f@rhdr{#1}% +% \PrerenderUnicode{#1}% + \setcounter{secnumdepth}{-10}% + \chaptermark{#1}% + \setcounter{secnumdepth}{\value{maxsecnumdepth}}% + \fi + \ifanappendix + \memappchapstarinfo{\f@rhdr}{#2}% + \else + \memchapstarinfo{\f@rhdr}{#2}% + \fi} + +\def\@makeschapterhead#1{% + \chapterheadstart +% {\parindent \z@ \raggedright \normalfont + {\parindent \z@ \raggedright \normalfont \memucsinterwordchapterskiphook + \printchapternonum + \interlinepenalty\@M + \printchaptertitle{#1} + \afterchaptertitle + } +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memhangul-ucs.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memhangul-ucs.sty new file mode 100644 index 00000000000..d624cf26562 --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memhangul-ucs.sty @@ -0,0 +1,680 @@ +%%% file `memhangul-ucs.sty` +%% +%% (C) Copyright 2006-2013 Kangsoo Kim <karnes at ktug org> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2006/05/20 or later. +%% +%% +\NeedsTeXFormat{LaTeX2e} +\def\filedate{2013/10/22} +\def\fileversion{1.7.6} +\ProvidesPackage{memhangul-ucs}[\filedate UCS Hangul Package for memoir class] +\typeout{memhangul-ucs\space v\fileversion\space \filedate} + +%% Options : +%% interwordHWP, interworddefault +%% nosetspace, quotespacing, +%% gremph +%% nonfrench +%% arabicfront, hangulpagestyle +%% adjustmath +%% finemath +\newif\if@interwordHWP\@interwordHWPfalse +\DeclareOption{interwordHWP}{\@interwordHWPtrue} + +\newif\if@interworddefault\@interworddefaultfalse +\DeclareOption{interworddefault}{\@interworddefaulttrue} + +\newif\if@hsspace\@hsspacetrue +\DeclareOption{nosetspace}{\@hsspacefalse} + +\newcommand\nosetspace{% + \@hsspacefalse +} + +\newif\if@hsspacenoquote\@hsspacenoquotetrue +\DeclareOption{quotespacing}{\@hsspacenoquotefalse} + +\newif\if@nonfrench\@nonfrenchfalse +\DeclareOption{nonfrench}{\PassOptionsToPackage{\CurrentOption}{dhucs}\@nonfrenchtrue} + +\newif\if@nojosa\@nojosafalse +\DeclareOption{nojosa}{\PassOptionsToPackage{\CurrentOption}{dhucs}\@nojosatrue} + +\newif\if@hanja\@hanjafalse +\DeclareOption{hanja}{\PassOptionsToPackage{\CurrentOption}{dhucs}\@hanjatrue} + +\newif\if@finemath\@finemathfalse +\DeclareOption{finemath}{\PassOptionsToPackage{\CurrentOption}{dhucs}\@finemathtrue} + +\newif\if@gremph\@gremphfalse +\DeclareOption{gremph}{\@gremphtrue} + +\newif\if@mathdisp\@mathdispfalse +\DeclareOption{adjustmath}{\@mathdisptrue} + +\newif\if@arabicfrontmatter{\@arabicfrontmatterfalse} +\DeclareOption{arabicfront}{\@arabicfrontmattertrue} + +\newif\if@defaulthangulpagestyle{\@defaulthangulpagestylefalse} +\DeclareOption{hangulpagestyle}{\@defaulthangulpagestyletrue} + +\newif\if@pdfbookmark{\@pdfbookmarkfalse} +\DeclareOption{pdfbookmark}{\@pdfbookmarktrue} + +\newif\if@dvips{\@dvipsfalse} +\DeclareOption{dvips}{\@dvipstrue} + +\DeclareOption{strictcharcheck}{\PassOptionsToPackage{\CurrentOption}{dhucs}} + +%%% figtabcapt +\newif\if@figtabcapt@\@figtabcapt@false +\DeclareOption{figtabcapt}{\@figtabcapt@true} + +%%% dhucs, cjk +\DeclareOption{dhucs}{} +\DeclareOption{cjk}{} + +\ProcessOptions + +\RequirePackage{dhucs}[2007/06/26] + +%% define memh@hu +%hu=0.059375em % 1jw=.95em, 1hu=1/16jw +\newdimen\memh@hu\memh@hu=\dhucs@hu + +\newif\if@inthekoreancontext\@inthekoreancontexttrue + +\AtBeginDocument{% + \@ifpackageloaded{dhucs-trivcj}{% + \newdimen\japparindent\japparindent=1em% +% \def\cjksymbolextraspace{\hskip4em\relax}% + \renewenvironment{japanese}{% + \@inthekoreancontextfalse + \let\ORIGparindent=\parindent + \parindent=\japparindent + \if@afterindent\let\ORIG@afterindent\@afterindenttrue\else + \let\ORIG@afterindent\@afterindentfalse\fi % advised by SUGAI Y. + \let\@afterindentfalse\@afterindenttrue\@afterindenttrue + \SetHanjaFonts{min}{min}{min}\trivcjtypesetting}% + {\@inthekoreancontexttrue + \parindent=\ORIGparindent + \ORIG@afterindent} + \renewenvironment{chinese}{% + \@inthekoreancontextfalse + \let\ORIGparindent=\parindent + \parindent=\japparindent + \SetHanjaFonts{gbsn}{gbsn}{gbsn}\trivcjtypesetting}% + {\@inthekoreancontexttrue + \parindent=\ORIGparindent} + }{}% +} + +%%%% from lucenc.dfu of dhucs +\AtBeginDocument{% not to be affected by textcomp +\DeclareUnicodeCharacter{00B7}% · + {\leavevmode\hbox to.7em{\hss\textperiodcentered\hss}\postcjksymbol}% +} +%\DeclareUnicodeCharacter{3001}% 、 +% {\unkern\hbox to.5em{\unihangulchar{"3001}\hss}\memh@postcjksymkern} +%\DeclareUnicodeCharacter{3002}% 。 +% {\unkern\hbox to.6em{\unihangulchar{"3002}\hss}\memh@postcjksymkern} +%\DeclareUnicodeCharacter{3008}% 〈 +% {\memh@cjksymbolskip\hbox to.5em{\hss\unihangulchar{"3008}}\postcjksymnobreak} +%\DeclareUnicodeCharacter{3009}% 〉 +% {\unkern\hbox to.5em{\unihangulchar{"3009}\hss}\memh@postcjksymkern} +%\DeclareUnicodeCharacter{300A}% 《 +% {\memh@cjksymbolskip\hbox to.5em{\hss\unihangulchar{"300A}}\postcjksymnobreak} +%\DeclareUnicodeCharacter{300B}% 》 +% {\unkern\hbox to.5em{\unihangulchar{"300B}\hss}\memh@postcjksymkern} +%\DeclareUnicodeCharacter{300C}% 「 +% {\memh@cjksymbolskip\hbox to.5em{\hss\unihangulchar{"300C}}\postcjksymnobreak} +%\DeclareUnicodeCharacter{300D}% 」 +% {\unkern\hbox to.5em{\unihangulchar{"300D}\hss}\memh@postcjksymkern} +%\DeclareUnicodeCharacter{300E}% 『 +% {\memh@cjksymbolskip\hbox to.5em{\hss\unihangulchar{"300E}}\postcjksymnobreak} +%\DeclareUnicodeCharacter{300F}% 』 +% {\unkern\hbox to.5em{\unihangulchar{"300F}\hss}\memh@postcjksymkern} +%\DeclareUnicodeCharacter{3010}% 【 +% {\memh@cjksymbolskip\hbox to.5em{\hss\unihangulchar{"3010}}\postcjksymnobreak} +%\DeclareUnicodeCharacter{3011}% 】 +% {\unkern\hbox to.5em{\unihangulchar{"3011}\hss}\memh@postcjksymkern} +%\DeclareUnicodeCharacter{3014}% 〔 +% {\memh@cjksymbolskip\hbox to.5em{\hss\unihangulchar{"3014}}\postcjksymnobreak} +%\DeclareUnicodeCharacter{3015}% 〕 +% {\unkern\hbox to.5em{\unihangulchar{"3015}\hss}\memh@postcjksymkern} +%\DeclareUnicodeCharacter{3016}% 〖 +% {\memh@cjksymbolskip\hbox to.5em{\hss\unihangulchar{"3016}}\postcjksymnobreak} +%\DeclareUnicodeCharacter{3017}% 〗 +% {\unkern\hbox to.5em{\unihangulchar{"3017}\hss}\memh@postcjksymkern} +%\DeclareUnicodeCharacter{3018}% 〘 +% {\memh@cjksymbolskip\hbox to.5em{\hss\unihangulchar{"3018}}\postcjksymnobreak} +%\DeclareUnicodeCharacter{3019}% 〙 +% {\unkern\hbox to.5em{\unihangulchar{"3019}\hss}\memh@postcjksymkern} +%\DeclareUnicodeCharacter{301A}% 〚 +% {\memh@cjksymbolskip\hbox to.5em{\hss\unihangulchar{"301A}}\postcjksymnobreak} +%\DeclareUnicodeCharacter{301B}% 〛 +% {\unkern\hbox to.5em{\unihangulchar{"301B}\hss}\memh@postcjksymkern} +%\DeclareUnicodeCharacter{FF08}% ( +% {\memh@cjksymbolskip\hbox to.5em{\hss\unihangulchar{"FF08}}\postcjksymnobreak} +%\DeclareUnicodeCharacter{FF09}% ) +% {\unkern\hbox to.5em{\unihangulchar{"FF09}\hss}\memh@postcjksymkern} + +%% We will use E-TEX +%\RequirePackage{etex} + +%% memoir [ms] option +\ifmsdoc +\newcommand*\MSNormalSize{ + \let\large\normalsize + \let\Large\normalsize + \let\LARGE\normalsize + \let\huge\normalsize + \let\Huge\normalsize + \let\HUGE\normalsize + \let\small\normalsize + \let\scriptsize\normalsize + \let\footnotesize\normalsize + \let\tiny\normalsize + } +\AtBeginDocument{ + \let\dhucs@serifhangulfont\dhucs@monohangulfont + \let\dhucs@sanshangulfont\dhucs@monohangulfont + \let\dhucs@serifhanjafont\dhucs@monohanjafont + \let\dhucs@sanshanjafont\dhucs@monohanjafont + \setInterHangulSkip{\z@} + \renewcommand{\msdoublespacing}{% + \renewcommand{\baselinestretch}{1.75}\large\normalsize} + \renewcommand{\mssinglespacing}{% + \renewcommand{\baselinestretch}{1.1}\large\normalsize} + \renewcommand{\familydefault}{cmtt} + \renewcommand{\rmdefault}{cmtt} + \renewcommand{\sfdefault}{cmtt} + \renewcommand{\bfdefault}{m} + \renewcommand{\itdefault}{n} + \renewcommand{\sldefault}{n} + \renewcommand{\scdefault}{n} + \renewcommand{\baselinestretch}{1.75} + \@twocolumnfalse + \onecolumn + \sloppy + \@twosidefalse + \raggedbottom + \pagestyle{plain} +} +\fi + +%% load hyperref for pdf bookmarks. +%% to configure hyperref, you can use \hypersetup command. +%%%%% 1.4.4b -> disable CJKbookmarks, just use dhucs-ucshyper +%% 2007/06/03. drop dhucs-ucshyper +\if@pdfbookmark + \@ifpackageloaded{hyperref}{% hyperref is already loaded + \typeout{hyperref is already loaded!}% + \RequirePackage{memhfixc}}% + {% + \if@dvips + \RequirePackage[dvips,unicode]{hyperref}% + \else + \ifpdf + \RequirePackage[pdftex,unicode]{hyperref}% + \else + \RequirePackage[dvipdfm,unicode]{hyperref}% + \fi + \fi + \RequirePackage{memhfixc}} +\fi + +%% from ucs-hangul.tex +% \def\hNum#1{\@hNum{\@nameuse{c@#1}}} +% \def\@hNum#1{\ifcase#1\or 일\or 이\or 삼\or 사\or 오\or 육\or 칠\or + % 팔\or 구\or 십\or 십일\or 십이\or 십삼\or 십사\or 십오\or 십육\or + % 십칠\or 십팔\or 십구\or 이십\or 이십일\or 이십이\or 이십삼\or + % 이십사\else\@ctrerr\fi} +% \def\hanjanum#1{\@hanjanum{\@nameuse{c@#1}}} +% \def\@hanjanum#1{\ifcase#1\or 一\or 二\or 三\or + % 四\or 五\or 六\or 七\or 八\or 九\or 十\or + % 十一\or 十二\or 十三\or 十四\or 十五\or + % 十六\or 十七\or 十八\or 十九\or 二十\or + % 二十一\or 二十二\or 二十三\or 二十四\else\@ctrerr\fi} +% \def\HArabic#1{\@HArabic{\@nameuse{c@#1}}} +% \def\@HArabic#1{\ifcase#1\or 1\rieul\or 2\jung\or 3\jong\or 4\jung\or 5\jung\or + % 6\jong\or 7\rieul\or 8\rieul\or 9\jung\or 10\jong\or 11\rieul\or 12\jung\or + % 13\jong\or 14\jung\or 15\jung\or 16\jong\or 17\rieul\or 18\rieul\or 19\jung\or + % 20\jong\or 21\rieul\or 22\jung\or 23\jong\or 24\jung\else\@ctrerr\fi} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% 한글 관련 이름 설정 (not from hangul.sty) + +\if@hanja +\def\today{\number\year 年~\number\month 月~\number\day 日} +\def\enclname{同封物} +\def\ccname{寫本} +\def\headtoname{受信人} +\def\seename{\을~參照} +\def\alsoname{\을~參照} +\def\contentsname{目~次} +\def\listfigurename{圖~目次} +\def\listtablename{表~目次} +\def\refname{參考~文獻} +\def\indexname{索~引} +\def\tablename{表} +\def\figurename{圖} +\def\abstractname{要~約} +\def\bibname{參考~圖書} +\def\appendixname{附錄} +\def\subappendixname{附錄} +\def\appendixtocname{附~錄} +\def\appendixpagename{附~錄} +\def\partname{篇} +\def\chaptername{章} +\def\sectionname{節} +\def\colorlayer{色相레이어} +\def\glossaryname{語彙} +\def\figurerefname{圖} +\def\tablerefname{表} +\def\pagename{面} +\def\pagerefname{面} +\def\partrefname{篇} +\def\chapterrefname{章} +\def\sectionrefname{\S} +\else +\def\today{\number\year 년~\number\month 월~\number\day 일} +\def\enclname{동봉물} +\def\ccname{사본} +\def\headtoname{받는이} +\def\seename{\을~참조} +\def\alsoname{\을~함께~참조} +\def\contentsname{차~례} +\def\listfigurename{그림~차례} +\def\listtablename{표~차례} +\def\refname{참고~문헌} +\def\indexname{찾아보기} +\def\tablename{표} +\def\figurename{그림} +\def\abstractname{요~약} +\def\bibname{참고~문헌} +\def\appendixname{부록} +\def\subappendixname{부록} +\def\appendixtocname{부~록} +\def\appendixpagename{부~록} +\def\partname{편} +\def\chaptername{장} +\def\sectionname{절} +\def\colorlayer{환등판~색상} +\def\glossaryname{용어집} +\def\figurerefname{그림} +\def\tablerefname{표} +\def\pagename{페이지} +\def\pagerefname{페이지} +\def\partrefname{편} +\def\chapterrefname{장} +\def\sectionrefname{\S} +\fi + +%% \marginparswitchtrue/false +\providecommand{\marginparswitchtrue}{\@mparswitchtrue} +\providecommand{\marginparswitchfalse}{\@mparswitchfalse} +\providecommand{\reversemargintrue}{\@reversemargintrue} +\providecommand{\reversemarginfalse}{\@reversemarginfalse} + +%% select textwidth with chars +\def\testh@ng@lch@r@cters{가갸거겨고교구규그기} +\newlength\t@nch@ars +\newcommand*\setxxxlength[2]{% + \setbox0\hbox{\testh@ng@lch@r@cters}\setlength\t@nch@ars{\wd0}% + \@ifundefined{#1length}{\expandafter\newlength\csname #1length\endcsname}{}% + \expandafter\setlength\csname #1length\endcsname{#2\t@nch@ars}% + \expandafter\divide\csname #1length\endcsname by 10% +} + +%%% 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{}% +} + +\AtBeginDocument{% +\ifnokorean\else +\ifkosection +\kscntformat{section}{제\,}{\,절} +\renewcommand\thesubsection{\arabic{section}.\arabic{subsection}} +\fi\fi +} + +\RequirePackage{memhangul-common} + +%%% default linespacing for Hangul Documents +%%% interword +\if@interwordHWP + \RequirePackage[HWP]{memucs-interword} +\else +\if@interworddefault + \RequirePackage[default]{memucs-interword} +\else +\if@nonfrench + \RequirePackage[nonfrench]{memucs-interword} +\else + \RequirePackage{memucs-interword} +\fi\fi\fi +\AtBeginDocument{\memucsinterwordhook} + +%%% hsetspace for memucs +\if@hsspace + \RequirePackage[hangul,adjustverbatim,adjustfootnotesep]{memucs-setspace} + \if@hsspacenoquote\else\adjustquotespacing\fi +\else + \RequirePackage{memucs-setspace} + \linespread{1.333} +\fi +%\SetHangulspace{1.333}{1.1} + +%% GrEmph +\newif\if@bfem\@bfemfalse +\def\bfemtrue{\@bfemtrue} +\def\bfemfalse{\@bfemfalse} + +\if@unfonts +\if@bfem + \def\GrEmphFont{outbt} + \def\GrEmphHanjaFont{outbt} +\else + \def\GrEmphFont{outgr} + \def\GrEmphHanjaFont{outgt} +\fi +\else +\if@bfem + \def\GrEmphFont{nanummj} + \def\GrEmphHanjaFont{uhcmj} +\else + \def\GrEmphFont{nanumgt} + \def\GrEmphHanjaFont{nanumgt} +\fi +\fi +\def\SetGremphFonts#1#2{% + \def\GrEmphFont{#1}% + \def\GrEmphHanjaFont{#2}% +} +\@onlypreamble\SetGremphFonts + +\AtBeginDocument{% +\if@gremph\if@bfem + \RequirePackage[gremphhangul=\GrEmphFont,gremphhanja=\GrEmphHanjaFont,bfemph]{memucs-gremph} +\else + \RequirePackage[gremphhangul=\GrEmphFont,gremphhanja=\GrEmphHanjaFont]{memucs-gremph} +\fi\fi +} + +%% 한글 기호문자 +\DeclareUnicodeCharacter{00BC}% 1/4 + {\textsuperscript1\kern-.45em\unichar{65295}\kern-.45em\textsubscript4}% uni-0.def +\DeclareUnicodeCharacter{00BD}% 1/2 + {\textsuperscript1\kern-.45em\unichar{65295}\kern-.45em\textsubscript2}% uni-0.def +\DeclareUnicodeCharacter{00BE}% 3/4 + {\textsuperscript3\kern-.45em\unichar{65295}\kern-.45em\textsubscript4}% uni-0.def +\DeclareUnicodeCharacter{02D0}% ː + {\unihangulchar{"02D0}} +\DeclareUnicodeCharacter{2025}% ‥ + {\unihangulchar{"2025}} +\DeclareUnicodeCharacter{2026}% … + {\unihangulchar{"2026}} +\DeclareUnicodeCharacter{2015}% ― + {\nobreak\hskip\memh@hu\unihangulchar{"2015}\hskip\memh@hu\relax} +\DeclareUnicodeCharacter{2312}% ⌒ + {\unihangulchar{"2312}} + +%% BANGJEOM emphasis : extension. (inspired from hangul.sty) + +\def\circemphchar{˚} +\def\dotemphchar{˙} +\def\bfdotemphchar{\textbf{˙}} +\let\useremphchar\circemphchar +\newdimen\raisedotdim\raisedotdim\z@ +\newdimen\dhucs@emph@width + +\def\put@dhucs@mphch@r#1{% + \ifnum\thish@ngul>\z@\ifnum\thish@ngul<\thr@@ % hangul or hanja + \rlap{\raise\dhucs@emph@raise + \hb@xt@\dhucs@emph@width{\normalfont\hss#1\hss}}% + \fi\fi +} +\def\get@dhucs@mphheight#1{% + \ifdim\raisedotdim=\z@\relax + \settoheight{\dhucs@emph@raise}{#1}% + \addtolength{\dhucs@emph@raise}{-.4em}% + \else\let\dhucs@emph@raise\raisedotdim\fi +} + +\protected\def\dotemph#1{\begingroup + \get@dhucs@mphheight{#1}% + \let\dhucs@emph\dhucs@dot@emph + #1\endgroup} + +\def\dhucs@dot@emph#1{% + \settowidth{\dhucs@emph@width}{#1}% + \put@dhucs@mphch@r{\dotemphchar}% +} + +\protected\def\bfdotemph#1{\begingroup + \get@dhucs@mphheight{#1}% + \let\dhucs@emph\dhucs@bfdot@emph + #1\endgroup} + +\def\dhucs@bfdot@emph#1{% + \settowidth{\dhucs@emph@width}{#1}% + \put@dhucs@mphch@r{\bfdotemphchar}% +} + +%\ifx\hfontfamilynameprefix\UnPrefix\let\dotemph\bfdotemph\fi + +\protected\def\circemph#1{\begingroup + \get@dhucs@mphheight{#1}% + \let\dhucs@emph\dhucs@circ@emph + #1\endgroup} + +\def\dhucs@circ@emph#1{\leavevmode + \settowidth{\dhucs@emph@width}{#1}% + \put@dhucs@mphch@r{\circemphchar}% +} + +\newdimen\useremphraisedim\useremphraisedim\z@ + +\protected\def\useremph#1{\begingroup + \ifdim\useremphraisedim=\z@\relax + \settoheight{\dhucs@emph@raise}{#1}% + \addtolength{\dhucs@emph@raise}{-.4em}% + \else\let\dhucs@emph@raise\useremphraisedim\fi + \let\dhucs@emph\dhucs@user@emph + #1\endgroup} + +\def\dhucs@user@emph#1{% + \settowidth{\dhucs@emph@width}{#1}% + \put@dhucs@mphch@r{\useremphchar}% +} + +\g@addto@macro\pdfstringdefPreHook{% + \let\circemph\@firstofone + \let\useremph\@firstofone +} + +\endinput + +% CHANGE LOG +% +% 2013/10/22: introduce memhangul-common.sty +% 2013/10/16: [kosection] bug fix +% 2013/09/27: xoblivoir-related fixes. +% 2012/12/02: drop shipout hacking codes. (problem solved) +% 2012/11/22. [figtabcapt] +% 2009/04/02. redefine mem@shipii. +% 2009/02/11. memoir v1.6180339e compatibility mend 1. +% titleref, hangul page style. +% 2007/11/18. add \alsoname definition +% 2007/09/09. remove test code +% 2007/08/06. add \expldash command +% 2007/07/15. no changes. part of ko.TeX +% 2007/06/26. introduce [strictcharcheck], acc. dhucs 4.0.6 +% 2007/06/14. follow up dhucs 4.0.1, rename a few cs. +% 2007/06/07. indent first in japanese env. +% 2007/06/03. dhucs hfontspec etc. +% 2007/05/20. memh@cjksymbolskip & memh@postcjksymkern, cntrdot etc. +% 2007/05/16. ver 1.5.0 (dhucs 4.0) +% ================================== +% +% 2004/12/30. dhhangul-ucs-test 2004/12/30 버전을 반영함. +% 폰트 설정 명령을 \DeclareRobustCommand로 함. +% 한글 section 카운터 관련 수정. +% +% 2004/12/31. dhhangul-ucs-test 2004/12/31 버전을 반영함. +% +% 2005/01/02. +% * heading, ruled, Ruled의 헤딩 폰트가 달라지는 것을 수정. +% * slshape, itshape의 폰트 교란을 수정. +% * \hanjanum, \hNum 카운터 포맷, demovar chapter style 추가. +% +% 2005/01/04 +% * dhucs 2005/01/04 반영. +% * nonfrench 괄호 문제 개선. +% * 확장한자 개선. +% +% 2005/01/05 +% * \unichar 재정의(dhucs 20050105) +% * .aux에 \PrerenderUnicode를 씀. +% * \GrEmph 옵션 도입. +% +% 2005/01/07 +% * \GrEmph 수정. \bfemtrue, \bfemfalse +% * \josa@hyper@link 수정(dhucs 1.1) +% * \utf@viii@undeferr의 경우 \jobname.pru에 \PrerenderUnicode를 씀(after dhucs) +% * renew \makeindex because of conflicts between \utf@viii@undeferr and \@index +% * \HArabic counter added. +% +% 2005/01/15 +% * require dhucs. +% * drop including kshangul.prerenders +% * release. +% +% 2005/01/20 +% * \index를 memoir의 3-pass 방식으로 되돌림 +% +% 2005/01/29 +% * memucs-setspace 변경 +% * companion pagestyle 변경 +% +% 2005/01/31 +% * 한글 특수문자 정의 +% +% 2005/02/08 +% * mempatch 3.5 적용. +% * revive interwordchapterskiphook +% * minor fixes. +% +% 2005/02/11 +% * marginparswitch added. +% +% 2005/02/14 +% * disable \MakeUppercase redefinition after dhucs 2.0 +% * release 1.0 +% +% 2005/02/22 +% * \chapter definition retrieved to original memoir manner. +% * \titleref bug(memoir) fixed. +% * \appendix chapter PDF bookmarks hyperlink problem improved. +% +% 2005/02/23 +% * revised 1.1v +% * PROBLEM unsolved : +% +% 2005/02/23 +% * revised. 1.1x +% * dhucs (plain)1.6과 함께 사용함. +% +% 2005/04/22 +% * gremph 관련 수정. 1.1x1 +% * memucs-gremph.sty 추가 +% +% 2005/04/24 +% * 드러냄표 구현. +% * dhucs-plain 1.7. +% * \normalfont로 고침. +% +% 2005/04/26 +% * 드러냄표. dhucs 2.2를 따름. +% +% 2005/06/06 +% * pdf bookmark hyperlink to APPENDIX sections problem fixed. +% +% 2005/06/28 +% * drop dhucs-plain, dhucs 2.4 +% +% 2005/07/08 +% * improve \titleref +% +% 2005/07/17 +% * reintroduce chapter \PrerenderUnicode's +% +% 2005/07/30 +% * fix the bug that [noquotespacing] option has no effects. +% +% 2005/08/05 +% * change after dhucs 2.6 +% * adjustmath option added. +% +% 2005/08/09 +% * pagestyle hangul added. +% * [hangulpagestyle], [arabicfront] options. +% * \explpunc defined. +% * \partmark added. +% * \bfdotemph added. +% +% 2005/08/12. ver 1.3 +% * \divnote test version. +% * \chapterindentfirst added. +% * \cntrdots added. +% +% 2005/09/09. ver 1.31 +% * memucs-setspace default changed. quote/quotation normal interline. +% +% 2005/09/21. ver 1.32 +% * [ms] option. +% +% 2005/10/15. ver 1.4.1 +% * introduce memhangul-patch.sty to make compatible with memoir 1.618 +% +% 2005/10/19 ver 1.4.2 +% * appendix-related bug fix +% +% 2005/10/29 ver 1.4.3 +% * mended appendix-related problems +% * introduced [pdfbookmark] option. +% * TODO. figs & tables in appendix hyperlinks have problems. +% +% 2005/10/30 ver 1.4.4 +% * CJKbookmark option added to hyperref +% +% 2006/04/19 ver 1.4.4b +% * drop CJKbookmarks hyperref option, just use dhucs-ucshyper +% * [dvips] option added. +% * reject dhucs 2.7.2 autojosa routine, adopt previous version +% +% 2006/04/27 ver 1.4.4f +% * adopt dhucs 3.0.0 +% +% 2006/06/25 ver 1.4.4g +% * suppress auto loading etex.sty +% +%% end of file `memhangul-ucs.sty` 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 new file mode 100644 index 00000000000..c3fd53f85ed --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memucs-enumerate.sty @@ -0,0 +1,49 @@ +%% File `memucs-enumerate.sty` +%% +%% (C) Copyright 2006-2013 Dohyun Kim <nomos at ktug org> +%% Kangsoo Kim <karnes at ktug org> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2006/05/20 or later. +%% +\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-gremph.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memucs-gremph.sty new file mode 100644 index 00000000000..24268f96710 --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memucs-gremph.sty @@ -0,0 +1,114 @@ +%% File `memucs-gremph.sty` +%% +%% Copyright (c) 2006-2013 Kangsoo Kim <karnes at ktug org> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2006/05/20 or later. +%% +\ProvidesPackage{memucs-gremph} + +\RequirePackage{xkeyval} + +\newif\if@bfemph\@bfemphfalse +%\DeclareOption{bfemph}{\@bfemphtrue} +%\ProcessOptions +\DeclareOptionX{bfemph}[]{\@bfemphtrue} +%\newif\if@gremph\@gremphtrue + +\newif\if@vargremphhangulfont\@vargremphhangulfontfalse +\newif\if@vargremphhanjafont\@vargremphhanjafontfalse +\DeclareOptionX{gremphhangul}[nanumgt]{\@vargremphhangulfonttrue\def\GrEmphFont{#1}} +\DeclareOptionX{gremphhanja}[nanumgt]{\@vargremphhanjafonttrue\def\GrEmphHanjaFont{#1}} +%\define@key{dhucs-gremph.sty}{gremphhangulfont}[utgr]{\@vargremphhangulfonttrue\def\GremphFont{#1}} +%\define@key{dhucs-gremph.sty}{gremphhanjafont}[utgt]{\@vargremphhanjafonttrue\def\GrEmphHanjaFont{#1}} + +\ProcessOptionsX + +%\if@bfemph +% \def\GrEmphFont{utbt} +% \def\GrEmphHanjaFont{utbt} +%\else +\if@unfonts + \if@vargremphhangulfont\else + \def\GrEmphFont{outgr}\fi + \if@vargremphhanjafont\else + \def\GrEmphHanjaFont{outgt}\fi +\else + \if@vargremphhangulfont\else + \def\GrEmphFont{nanumgt}\fi + \if@vargremphhanjafont\else + \def\GrEmphHanjaFont{nanumgt}\fi +\fi +%\fi +%\def\SetGremphFonts#1#2{% +% \def\GrEmphFont{#1}% +% \def\GrEmphHanjaFont{#2}% +%} + +\if@bfem +\DeclareFontFamily{LUC}{grem}{\hyphenchar \font\m@ne} +\DeclareFontShape{LUC}{grem}{m}{n}{<-> LUC * \GrEmphFont b}{} +\DeclareFontShape{LUC}{grem}{m}{it}{<-> LUC * \GrEmphFont b}{} +\DeclareFontShape{LUC}{grem}{m}{sl}{<-> LUC * \GrEmphFont b}{} +\DeclareFontFamily{LUC}{gremhj}{\hyphenchar \font\m@ne} +\DeclareFontShape{LUC}{gremhj}{m}{n}{<-> LUC * \GrEmphHanjaFont b}{} +\DeclareFontShape{LUC}{gremhj}{m}{it}{<-> LUC * \GrEmphHanjaFont b}{} +\DeclareFontShape{LUC}{gremhj}{m}{sl}{<-> LUC * \GrEmphHanjaFont b}{} +\else +\DeclareFontFamily{LUC}{grem}{\hyphenchar \font\m@ne} +\DeclareFontShape{LUC}{grem}{m}{n}{<-> LUC * \GrEmphFont m}{} +\DeclareFontShape{LUC}{grem}{m}{it}{<-> LUC * \GrEmphFont m}{} +\DeclareFontShape{LUC}{grem}{m}{sl}{<-> LUC * \GrEmphFont m}{} +\DeclareFontFamily{LUC}{gremhj}{\hyphenchar \font\m@ne} +\DeclareFontShape{LUC}{gremhj}{m}{n}{<-> LUC * \GrEmphHanjaFont m}{} +\DeclareFontShape{LUC}{gremhj}{m}{it}{<-> LUC * \GrEmphHanjaFont m}{} +\DeclareFontShape{LUC}{gremhj}{m}{sl}{<-> LUC * \GrEmphHanjaFont m}{} +\fi + +\if@gremph +\DeclareRobustCommand\itshape + {\not@math@alphabet\itshape\mathit + \fontshape\itdefault\selectfont\SetAdhocFonts{grem}{gremhj}} +%\DeclareRobustCommand\slshape\itshape +\DeclareRobustCommand\slshape + {\not@math@alphabet\slshape\relax + \fontshape\sldefault\selectfont\SetAdhocFonts{grem}{gremhj}} +\else\fi +\def\regremph{% + \@gremphtrue + \DeclareRobustCommand*{\itshape}% + {\not@math@alphabet\itshape\mathit + \fontshape\itdefault\selectfont\SetAdhocFonts{grem}{gremhj}}% +% \DeclareRobustCommand\slshape\itshape + \DeclareRobustCommand\slshape + {\not@math@alphabet\slshape\relax + \fontshape\sldefault\selectfont\SetAdhocFonts{grem}{gremhj}}% +} +\def\ungremph{% + \@gremphfalse + \DeclareRobustCommand*{\itshape}% + {\not@math@alphabet\itshape\mathit + \fontshape\itdefault\selectfont}% + \DeclareRobustCommand\slshape + {\not@math@alphabet\slshape\relax + \fontshape\sldefault\selectfont}% +} +% \slhangul +\def\slhangul#1{% + \bgroup + \fontshape{sl}\selectfont #1\egroup +} + +\endinput + +% end of style. +% +% CHANGE LOG. +% * 2007/08/02. redundant space bug fix +% * 2007/06/08. \slshape independent from \itshape +% * 2005/08/17. \slhangul added. diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memucs-interword.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memucs-interword.sty new file mode 100644 index 00000000000..e4e3f2f3ea0 --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memucs-interword.sty @@ -0,0 +1,160 @@ +%% File `memucs-interword.sty` +%% +%% Copyright (c) 2007-2013 Kangsoo Kim <karnes at ktug org> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2006/05/20 or later. +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{memucs-interword}[2007/09/22] + +\def\memucsinterwordskip{} +\def\memucsinterwordchapterskip{} +\def\memucshangulskips{} + +\newif\if@nonfrench\@nonfrenchfalse +\DeclareOption{nonfrench}{% + \@nonfrenchtrue} +\DeclareOption{HWP}{% + \def\memucsinterwordskip{\HWPinterwordskip}} +\DeclareOption{default}{% + \@nonfrenchtrue\def\memucsinterwordskip{\DEFAULTskips}\interHchar{0pt}} +\DeclareOption{wider}{% + \def\memucshangulskips{\widerhangul}} +\DeclareOption{narrower}{% + \def\memucshangulskips{\narrowerhangul}} +%\DeclareOption*{% +% \def\memucsinterwordskip{\DEFAULTskips}% +%} + +%\newlength\dimen@skip +%\setlength\dimen@skip{.1pt} + +%% finemath active. +\if@dhucsfinemath\else\@dhucsfinemathtrue\fi + +%\let\interhchar\setInterHangulSkip +\newcommand*\interHchar[1]{\setInterHangulSkip{#1}} +\let\interhchar\interHchar + +\newcommand*\interhword[4][\@empty]{% + \ifx#1\@empty\setinterwordskip{#2}{#3}{#4}\else + \setinterwordskip[#1]{#2}{#3}{#4}\fi +} + +\def\narrowerhangul{% + \def\memucshangulskips{% + \interHchar{-.5pt}% + }% +} +\def\widerhangul{% + \def\memucshangulskips{% + \interHchar{1pt}% + }% +} + +\newdimen\BASE@FONTsize +\BASE@FONTsize=\f@size\p@ + +\def\HWPinterwordskip{% + \def\memucshangulskips{% + \interHchar{0pt}% + }% + \def\memucsinterwordskip{% + \spaceskip = .475\BASE@FONTsize plus .25\BASE@FONTsize minus .1331\BASE@FONTsize + \if@nonfrench + \xspaceskip = .6\BASE@FONTsize plus .2\BASE@FONTsize minus .1\BASE@FONTsize + \fi + }% + \def\memucsinterwordchapterskip{% + \spaceskip = .5\BASE@FONTsize plus .1\BASE@FONTsize minus .05\BASE@FONTsize + \if@nonfrench + \xspaceskip = .65\BASE@FONTsize plus .2\BASE@FONTsize minus .1\BASE@FONTsize + \fi + }% +} + +\def\setinterwordskip{\@ifnextchar[\setinterwordskip@\setinterwordskip@@} +\def\setinterwordskip@[#1]#2#3#4{% + \def\memucsinterwordskip{% + \spaceskip = #2\BASE@FONTsize plus #3\BASE@FONTsize minus #4\BASE@FONTsize + \if@nonfrench + \xspaceskip = #1\BASE@FONTsize plus #3\BASE@FONTsize minus #4\BASE@FONTsize + \fi + }% +} + +\def\setinterwordskip@@#1#2#3{% + \def\memucsinterwordskip{% + \spaceskip = #1\BASE@FONTsize plus #2\BASE@FONTsize minus #3\BASE@FONTsize + \if@nonfrench + \xspaceskip = .6\BASE@FONTsize plus #2\BASE@FONTsize minus #3\BASE@FONTsize + \fi + }% +} + +\def\DEFAULTskips{% + \def\memucshangulskips{% +% \interHchar{0pt}% + }% + \def\memucsinterwordskip{% + \spaceskip = .413\BASE@FONTsize plus .1\BASE@FONTsize minus .1\BASE@FONTsize + \if@nonfrench + \xspaceskip = .55\BASE@FONTsize plus .11\BASE@FONTsize minus .1\BASE@FONTsize + \fi + }% + \def\memucsinterwordchapterskip{% + \spaceskip = .46\BASE@FONTsize plus .11\BASE@FONTsize minus .1\BASE@FONTsize + \if@nonfrench + \xspaceskip = .575\BASE@FONTsize plus .1\BASE@FONTsize minus .1\BASE@FONTsize + \fi + }% +} + +\ProcessOptions\relax + +\def\verbatim@font{\m@mverbfont\spaceskip\z@ + \hyphenchar\font\m@ne + \let\do\do@noligs + \verbatim@nolig@list} + +\def\narrowerinterhword{% + \spaceskip=.331\BASE@FONTsize plus .111\BASE@FONTsize minus .1\BASE@FONTsize + \if@nonfrench + \xspaceskip=.466\BASE@FONTsize plus .05\BASE@FONTsize minus .05\BASE@FONTsize + \fi +} + +\def\memucsinterwordhook{\memucsinterwordskip\memucshangulskips}% +\def\memucsinterwordchapterskiphook{\memucsinterwordchapterskip\memucshangulskips}% +\def\memucsfninterwordhook{\narrowerinterhword}% + +% engtext env +\@ifundefined{engtext}% + {% + \newenvironment{engtext}% + {\begingroup\spaceskip=\fontdimen2\font plus\fontdimen3\font minus\fontdimen4\font}% + {\endgroup}% + }{} + +% engtxt +\newskip\ORIG@spaceskip +\def\engtxt{\ORIG@spaceskip=\spaceskip + \spaceskip=\fontdimen2\font plus\fontdimen3\font minus\fontdimen4\font} +\def\endengtxt{\spaceskip=\ORIG@spaceskip} + +\endinput + +%% CHANGE LOG +% 2005/01/07. code clearance +% 2005/02/08. reset interwordchapterskip values +% 2005/05/17. engtext env. added. +% 2005/07/30. replace em by \BASE@FONTsize +% 2005/08/05. nonfrench option introduced. +% 2005/11/17. \interhword bug fixed. +% 2007/06/03. dhucs 4.0 hfontspec applied 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 new file mode 100644 index 00000000000..8db9d17acfa --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/memucs-setspace.sty @@ -0,0 +1,587 @@ +%% File `memucs-setspace.sty` +%% +%% Copyright (c) 2007-2013 Kangsoo Kim <karnes at ktug org> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2006/05/20 or later. +%% +%% ======================= +%% +%% 이 스타일은 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/nanumfontsel.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/nanumfontsel.sty new file mode 100644 index 00000000000..3a24d64566e --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/nanumfontsel.sty @@ -0,0 +1,29 @@ +%% File `nanumfontsel.sty` +%% +%% Copyright (c) 2007-2013 Kangsoo Kim <karnes at ktug org> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2006/05/20 or later. +%% +\ProvidesPackage{nanumfontsel} + +\newif\ifUSETONE\USETONEfalse +\DeclareOption{USETONEt1font}{\USETONEtrue} +\DeclareOption{uset1font}{\USETONEtrue} +\ProcessOptions + +\ifUSETONE +\RequirePackage[T1]{fontenc} +\renewcommand{\rmdefault}{nanummj} +\renewcommand{\sfdefault}{nanumgt} +\fi +\SetHangulFonts{nanummj}{nanumgt}{nanumgt} +\SetHanjaFonts{nanumgt}{nanumgt}{nanumgt} + +\endinput + 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 new file mode 100644 index 00000000000..1046b7e0233 --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/ob-koreanappendix.sty @@ -0,0 +1,94 @@ +%% File `ob-koreanappendix.sty` +%% +%% Copyright (c) 2007-2013 Kangsoo Kim <karnes at ktug org> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2006/05/20 or later. +%% +%% oblivoir sub-style. part of oblivoir +%% \appendix (부록) +%% +\gdef\set@appendix@chapter{% + \ifanappendix\counterwithout{APPsection}{APPchapter}\fi% + \renewcommand\thesection{\Alph{APPsection}}% + \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 new file mode 100644 index 00000000000..69044f5eba1 --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/ob-nokoreanappendix.sty @@ -0,0 +1,96 @@ +%% File `ob-nokoreanappendix.sty` +%% +%% Copyright (c) 2007-2013 Kangsoo Kim <karnes at ktug org> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2006/05/20 or later. +%% +%% 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 new file mode 100644 index 00000000000..5ef56b463fb --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-ucs/ob-toclof.sty @@ -0,0 +1,144 @@ +%% File `ob-toclof.sty` +%% +%% Copyright (c) 2007-2013 Kangsoo Kim <karnes at ktug org> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2006/05/20 or later. +%% +%% 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/luatexko-xobfont.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/luatexko-xobfont.sty new file mode 100644 index 00000000000..6fe0a4e97c1 --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/luatexko-xobfont.sty @@ -0,0 +1,608 @@ +%% luatexko-xobfont.sty +%% +%% Copyright (c) 2012-2013 Kangsoo Kim <karnes at ktug org> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2006/05/20 or later. +%% +%% oblivoir style font commands for luatex +%% part of oblivoir package +%% +%% Version 0.1: oldhangul option is not implemented +%% 0.1.1: bug fix (2012/07/28) +%% 0.1.2: [unfonts], [nounfonts] (2012/10/29) +%% +\ProvidesPackage{luatexko-xobfont}[2012/07/12] + +%% options: latinquote,oldhangul,gremph,itemph,nowinname,manualfontspec +\newif\if@latinquote\@latinquotefalse +\DeclareOption{latinquote}{\@latinquotetrue} +\newif\if@oldhangul\@oldhangulfalse +\DeclareOption{oldhangul}{\@oldhangultrue} +\newif\if@gremph\@gremphtrue +\DeclareOption{gremph}{\@gremphtrue} +\DeclareOption{itemph}{\@gremphfalse} +\newif\if@nowin\@nowinfalse +\DeclareOption{nowinname}{\@nowintrue} +\newif\if@manualfontspec\@manualfontspecfalse +\DeclareOption{manualfontspec}{\@manualfontspectrue} +\newif\if@unfonts\@unfontstrue +\DeclareOption{unfonts}{\@unfontstrue} +\DeclareOption{nounfonts}{\@unfontsfalse} +\newif\if@nanumfonts\@nanumfontsfalse +\DeclareOption{nanum}{\@nanumfontstrue} +\ProcessOptions + +%%% +\if@manualfontspec \endinput \fi + +%%% fixed options +\if@oldhangul + \edef\LKOV@oldhangulscript{Script=Hangul} + \edef\LKOV@oldhangullanguage{Language=Korean} + \edef\LKOV@oldhangulfeatures{RawFeature=+ccmp;+ljmo;+vjmo;+tjmo} +\else + \edef\LKOV@oldhangulscript{} + \edef\LKOV@oldhangullanguage{} + \edef\LKOV@oldhangulfeatures{} +\fi + +%%% note: FakeBold is disabled under LuaTeX +\if@gremph + \edef\LKOV@italicfeatures{} +\else + \edef\LKOV@italicfeatures{slant=0.17} +\fi + +\def\LKOV@externallocation{} + +\newcommand*\setmonoscale[1]{% + \edef\LKOV@monoscale{#1} +} +\setmonoscale{1} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%% main +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% top level command +\def\setkormainfont{% + \@ifstar {\setk@rm@inf@nt}{% + \@ifnextchar[{\m@inf@ntbracket}{% + \@ifnextchar(\m@inf@ntparen\m@inf@ntnoparen}% + } +} + +\def\m@inf@ntbracket[#1]#2{% + \@ifnextchar[{\m@inf@ntbrackettrail[#1]{#2}}{\m@inf@ntbracketnotrail[#1]{#2}} +} + +%%% \setkormainfont[foo]{bar} +\def\m@inf@ntbracketnotrail[#1]#2{% + \setmainhangulfont[#1]{#2} +} + +%%% \setkormainfont[foo1]{bar1}[foo2]{bar2} +\def\m@inf@ntbrackettrail[#1]#2[#3]#4{% + \setmainhangulfont[#1]{#2} + \setmainhanjafont[#3]{#4} +} + +%%% \setkormainfont{foo} +\def\m@inf@ntnoparen#1{\setmainhangulfont{#1}} + +\def\m@inf@ntparen(#1){% + \@ifnextchar({\m@inf@ntdoubleparen(#1)}{\m@inf@ntsingleparen(#1)} +} + +\def\m@inf@ntsingleparen(#1)#2{% + \@ifnextchar({\m@inf@ntsingleparentrail(#1){#2}}{\m@inf@ntsingleparennotrail(#1){#2}} +} + +\def\m@inf@ntsingleparentrail(#1)#2(#3){% + \@ifnextchar({\m@inf@ntsingleparentraildouble(#1){#2}(#3)}{\m@inf@ntsingleparentrailsingle(#1){#2}(#3)} +} + +\def\m@inf@ntdoubleparen(#1)(#2)#3{% + \@ifnextchar({\m@inf@ntdoubleparentrail(#1)(#2){#3}}{\m@inf@ntdoubleparennotrail(#1)(#2){#3}} +} + +\def\m@inf@ntdoubleparentrail(#1)(#2)#3(#4){% + \@ifnextchar({\m@inf@ntdoubleparentraildouble(#1)(#2){#3}(#4)}{\m@inf@ntdoubleparentrailsingle(#1)(#2){#3}(#4)} +} + +%%% \setkormainfont(foo){bar} +\def\m@inf@ntsingleparennotrail(#1)#2{% + \setmainhangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#2} +} + +%%% \setkormainfont(foo1){bar1}(foo2){bar2} +\def\m@inf@ntsingleparentrailsingle(#1)#2(#3)#4{% + \setmainhangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#2} + \setmainhanjafont[BoldFont=#3,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#4,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#4} +} + +%%% \setkormainfont(foo1){bar1}(foo2)(foo3){bar2} +\def\m@inf@ntsingleparentraildouble(#1)#2(#3)(#4)#5{% + \setmainhangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#2} + \if#4* \def\LKOV@temp{#5}\else \def\LKOV@temp{#4}\fi + \setmainhanjafont[BoldFont=#3,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#5} +} + +%%% \setkormainfont(foo1)(foo2){bar} +\def\m@inf@ntdoubleparennotrail(#1)(#2)#3{% + \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi + \setmainhangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#3} +} + +%%% \setkormainfont(foo1)(foo2){bar1}(foo3){bar2} +\def\m@inf@ntdoubleparentrailsingle(#1)(#2)#3(#4)#5{% + \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi + \setmainhangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#3} + \setmainhanjafont[BoldFont=#4,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#5,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#5} +} + +%%% \setkormainfont(foo1)(foo2){bar1}(foo3)(foo4){bar2} +\def\m@inf@ntdoubleparentraildouble(#1)(#2)#3(#4)(#5)#6{% + \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi + \setmainhangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#3} + \if#5* \def\LKOV@temp{#6}\else\def\LKOV@temp{#5}\fi + \setmainhanjafont[BoldFont=#4,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#5} +} + +%%%%%%%%%%%%%%%%%%%%%% main: ExternalLocation %%%%%%%%%%%%%%%%%%%% +%%% top level command +\def\setk@rst@rm@inf@nt*{% + \@ifnextchar[{\st@rm@inf@ntbracket*}{% + \@ifnextchar({\st@rm@inf@ntparen*}{\st@rm@inf@ntnoparen*}}% +} + +\def\st@rm@inf@ntbracket*[#1]#2{% + \@ifnextchar[{\st@rm@inf@ntbrackettrail*[#1]{#2}}{\st@rm@inf@ntbracketnotrail*[#1]{#2}} +} + +%%% \setkormainfont*{bar} +\def\setk@rm@inf@nt#1{% + \setmainhangulfont[ExternalLocation]{#1} +} + +%%% \setkormainfont*[foo]{bar} +\def\st@rm@inf@ntbracketnotrail*[#1]#2{% + \setmainhangulfont[#1,ExternalLocation]{#2} +} + +%%% \setkormainfont*[foo1]{bar1}[foo2]{bar2} +\def\st@rm@inf@ntbrackettrail*[#1]#2[#3]#4{% + \setmainhangulfont[#1,ExternalLocation]{#2} + \setmainhanjafont[#3,ExternalLocation]{#4} +} + +%%% \setk@rst@rm@inf@nt*{foo} +\def\st@rm@inf@ntnoparen*#1{\setmainhangulfont[ExternalLocation]{#1}} + +\def\st@rm@inf@ntparen*(#1){% + \@ifnextchar({\st@rm@inf@ntdoubleparen*(#1)}{\st@rm@inf@ntsingleparen*(#1)} +} + +\def\st@rm@inf@ntsingleparen*(#1)#2{% + \@ifnextchar({\st@rm@inf@ntsingleparentrail*(#1){#2}}{\st@rm@inf@ntsingleparennotrail*(#1){#2}} +} + +\def\st@rm@inf@ntsingleparentrail*(#1)#2(#3){% + \@ifnextchar({\st@rm@inf@ntsingleparentraildouble*(#1){#2}(#3)}{\st@rm@inf@ntsingleparentrailsingle*(#1){#2}(#3)} +} + +\def\st@rm@inf@ntdoubleparen*(#1)(#2)#3{% + \@ifnextchar({\st@rm@inf@ntdoubleparentrail*(#1)(#2){#3}}{\st@rm@inf@ntdoubleparennotrail*(#1)(#2){#3}} +} + +\def\st@rm@inf@ntdoubleparentrail*(#1)(#2)#3(#4){% + \@ifnextchar({\st@rm@inf@ntdoubleparentraildouble*(#1)(#2){#3}(#4)}{\st@rm@inf@ntdoubleparentrailsingle*(#1)(#2){#3}(#4)} +} + +%%% \setk@rst@rm@inf@nt*(foo){bar} +\def\st@rm@inf@ntsingleparennotrail*(#1)#2{% + \setmainhangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#2} +} + +%%% \setk@rst@rm@inf@nt*(foo1){bar1}(foo2){bar2} +\def\st@rm@inf@ntsingleparentrailsingle*(#1)#2(#3)#4{% + \setmainhangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#2} + \setmainhanjafont[BoldFont=#3,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#4,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#4} +} + +%%% \setk@rst@rm@inf@nt*(foo1){bar1}(foo2)(foo3){bar2} +\def\st@rm@inf@ntsingleparentraildouble*(#1)#2(#3)(#4)#5{% + \setmainhangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#2} + \if#4* \def\LKOV@temp{#5}\else \def\LKOV@temp{#4}\fi + \setmainhanjafont[BoldFont=#3,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#5} +} + +%%% \setk@rst@rm@inf@nt*(foo1)(foo2){bar} +\def\st@rm@inf@ntdoubleparennotrail(#1)(#2)#3{% + \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi + \setmainhangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#3} +} + +%%% \setk@rst@rm@inf@nt*(foo1)(foo2){bar1}(foo3){bar2} +\def\st@rm@inf@ntdoubleparentrailsingle(#1)(#2)#3(#4)#5{% + \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi + \setmainhangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#3} + \setmainhanjafont[BoldFont=#4,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#5,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#5} +} + +%%% \setk@rst@rm@inf@nt*(foo1)(foo2){bar1}(foo3)(foo4){bar2} +\def\st@rm@inf@ntdoubleparentraildouble*(#1)(#2)#3(#4)(#5)#6{% + \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi + \setmainhangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#3} + \if#5* \def\LKOV@temp{#6}\else\def\LKOV@temp{#5}\fi + \setmainhanjafont[BoldFont=#4,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#5} +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%% sans +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% top level command +\def\setkorsansfont{% + \@ifstar {\setk@rs@nsf@nt}{% + \@ifnextchar[{\s@nsf@ntbracket}{% + \@ifnextchar(\s@nsf@ntparen\s@nsf@ntnoparen}% + } +} + +\def\s@nsf@ntbracket[#1]#2{% + \@ifnextchar[{\s@nsf@ntbrackettrail[#1]{#2}}{\s@nsf@ntbracketnotrail[#1]{#2}} +} + +%%% \setkorsansfont[foo]{bar} +\def\s@nsf@ntbracketnotrail[#1]#2{% + \setsanshangulfont[#1]{#2} +} + +%%% \setkorsansfont[foo1]{bar1}[foo2]{bar2} +\def\s@nsf@ntbrackettrail[#1]#2[#3]#4{% + \setsanshangulfont[#1]{#2} + \setsanshanjafont[#3]{#4} +} + +%%% \setkorsansfont{foo} +\def\s@nsf@ntnoparen#1{\setsanshangulfont{#1}} + +\def\s@nsf@ntparen(#1){% + \@ifnextchar({\s@nsf@ntdoubleparen(#1)}{\s@nsf@ntsingleparen(#1)} +} + +\def\s@nsf@ntsingleparen(#1)#2{% + \@ifnextchar({\s@nsf@ntsingleparentrail(#1){#2}}{\s@nsf@ntsingleparennotrail(#1){#2}} +} + +\def\s@nsf@ntsingleparentrail(#1)#2(#3){% + \@ifnextchar({\s@nsf@ntsingleparentraildouble(#1){#2}(#3)}{\s@nsf@ntsingleparentrailsingle(#1){#2}(#3)} +} + +\def\s@nsf@ntdoubleparen(#1)(#2)#3{% + \@ifnextchar({\s@nsf@ntdoubleparentrail(#1)(#2){#3}}{\s@nsf@ntdoubleparennotrail(#1)(#2){#3}} +} + +\def\s@nsf@ntdoubleparentrail(#1)(#2)#3(#4){% + \@ifnextchar({\s@nsf@ntdoubleparentraildouble(#1)(#2){#3}(#4)}{\s@nsf@ntdoubleparentrailsingle(#1)(#2){#3}(#4)} +} + +%%% \setkorsansfont(foo){bar} +\def\s@nsf@ntsingleparennotrail(#1)#2{% + \setsanshangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#2} +} + +%%% \setkorsansfont(foo1){bar1}(foo2){bar2} +\def\s@nsf@ntsingleparentrailsingle(#1)#2(#3)#4{% + \setsanshangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#2} + \setsanshanjafont[BoldFont=#3,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#4,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#4} +} + +%%% \setkorsansfont(foo1){bar1}(foo2)(foo3){bar2} +\def\s@nsf@ntsingleparentraildouble(#1)#2(#3)(#4)#5{% + \setsanshangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#2} + \if#4* \def\LKOV@temp{#5}\else \def\LKOV@temp{#4}\fi + \setsanshanjafont[BoldFont=#3,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#5} +} + +%%% \setkorsansfont(foo1)(foo2){bar} +\def\s@nsf@ntdoubleparennotrail(#1)(#2)#3{% + \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi + \setsanshangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#3} +} + +%%% \setkorsansfont(foo1)(foo2){bar1}(foo3){bar2} +\def\s@nsf@ntdoubleparentrailsingle(#1)(#2)#3(#4)#5{% + \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi + \setsanshangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#3} + \setsanshanjafont[BoldFont=#4,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#5,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#5} +} + +%%% \setkorsansfont(foo1)(foo2){bar1}(foo3)(foo4){bar2} +\def\s@nsf@ntdoubleparentraildouble(#1)(#2)#3(#4)(#5)#6{% + \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi + \setsanshangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#3} + \if#5* \def\LKOV@temp{#6}\else\def\LKOV@temp{#5}\fi + \setsanshanjafont[BoldFont=#4,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}}]{#5} +} + +%%%%%%%%%%%%%%%%%%%%%% sans: ExternalLocation %%%%%%%%%%%%%%%%%%%% +%%% top level command +\def\setk@rst@rs@nsf@nt*{% + \@ifnextchar[{\st@rs@nsf@ntbracket*}{% + \@ifnextchar({\st@rs@nsf@ntparen*}{\st@rs@nsf@ntnoparen*}}% +} + +\def\st@rs@nsf@ntbracket*[#1]#2{% + \@ifnextchar[{\st@rs@nsf@ntbrackettrail*[#1]{#2}}{\st@rs@nsf@ntbracketnotrail*[#1]{#2}} +} + +%%% \setkorsansfont*{bar} +\def\setk@rs@nsf@nt#1{% + \setsanshangulfont[ExternalLocation]{#1} +} + +%%% \setkorsansfont*[foo]{bar} +\def\st@rs@nsf@ntbracketnotrail*[#1]#2{% + \setsanshangulfont[#1,ExternalLocation]{#2} +} + +%%% \setkorsansfont*[foo1]{bar1}[foo2]{bar2} +\def\st@rs@nsf@ntbrackettrail*[#1]#2[#3]#4{% + \setsanshangulfont[#1,ExternalLocation]{#2} + \setsanshanjafont[#3,ExternalLocation]{#4} +} + +%%% \setk@rst@rs@nsf@nt*{foo} +\def\st@rs@nsf@ntnoparen*#1{\setsanshangulfont[ExternalLocation]{#1}} + +\def\st@rs@nsf@ntparen*(#1){% + \@ifnextchar({\st@rs@nsf@ntdoubleparen*(#1)}{\st@rs@nsf@ntsingleparen*(#1)} +} + +\def\st@rs@nsf@ntsingleparen*(#1)#2{% + \@ifnextchar({\st@rs@nsf@ntsingleparentrail*(#1){#2}}{\st@rs@nsf@ntsingleparennotrail*(#1){#2}} +} + +\def\st@rs@nsf@ntsingleparentrail*(#1)#2(#3){% + \@ifnextchar({\st@rs@nsf@ntsingleparentraildouble*(#1){#2}(#3)}{\st@rs@nsf@ntsingleparentrailsingle*(#1){#2}(#3)} +} + +\def\st@rs@nsf@ntdoubleparen*(#1)(#2)#3{% + \@ifnextchar({\st@rs@nsf@ntdoubleparentrail*(#1)(#2){#3}}{\st@rs@nsf@ntdoubleparennotrail*(#1)(#2){#3}} +} + +\def\st@rs@nsf@ntdoubleparentrail*(#1)(#2)#3(#4){% + \@ifnextchar({\st@rs@nsf@ntdoubleparentraildouble*(#1)(#2){#3}(#4)}{\st@rs@nsf@ntdoubleparentrailsingle*(#1)(#2){#3}(#4)} +} + +%%% \setk@rst@rs@nsf@nt*(foo){bar} +\def\st@rs@nsf@ntsingleparennotrail*(#1)#2{% + \setsanshangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#2} +} + +%%% \setk@rst@rs@nsf@nt*(foo1){bar1}(foo2){bar2} +\def\st@rs@nsf@ntsingleparentrailsingle*(#1)#2(#3)#4{% + \setsanshangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#2} + \setsanshanjafont[BoldFont=#3,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#4,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#4} +} + +%%% \setk@rst@rs@nsf@nt*(foo1){bar1}(foo2)(foo3){bar2} +\def\st@rs@nsf@ntsingleparentraildouble*(#1)#2(#3)(#4)#5{% + \setsanshangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#2} + \if#4* \def\LKOV@temp{#5}\else \def\LKOV@temp{#4}\fi + \setsanshanjafont[BoldFont=#3,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#5} +} + +%%% \setk@rst@rs@nsf@nt*(foo1)(foo2){bar} +\def\st@rs@nsf@ntdoubleparennotrail(#1)(#2)#3{% + \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi + \setsanshangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#3} +} + +%%% \setk@rst@rs@nsf@nt*(foo1)(foo2){bar1}(foo3){bar2} +\def\st@rs@nsf@ntdoubleparentrailsingle(#1)(#2)#3(#4)#5{% + \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi + \setsanshangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#3} + \setsanshanjafont[BoldFont=#4,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#5,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#5} +} + +%%% \setk@rst@rs@nsf@nt*(foo1)(foo2){bar1}(foo3)(foo4){bar2} +\def\st@rs@nsf@ntdoubleparentraildouble*(#1)(#2)#3(#4)(#5)#6{% + \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi + \setsanshangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#3} + \if#5* \def\LKOV@temp{#6}\else\def\LKOV@temp{#5}\fi + \setsanshanjafont[BoldFont=#4,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation]{#5} +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%% mono +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% top level command +\def\setkormonofont{% + \@ifstar {\setk@rm@n@f@nt}{% + \@ifnextchar[{\m@n@f@ntbracket}{% + \@ifnextchar(\m@n@f@ntparen\m@n@f@ntnoparen}% + } +} + +\def\m@n@f@ntbracket[#1]#2{% + \@ifnextchar[{\m@n@f@ntbrackettrail[#1]{#2}}{\m@n@f@ntbracketnotrail[#1]{#2}} +} + +%%% \setkormonofont[foo]{bar} +\def\m@n@f@ntbracketnotrail[#1]#2{% + \setmonohangulfont[#1,Scale=\LKOV@monoscale]{#2} +} + +%%% \setkormonofont[foo1]{bar1}[foo2]{bar2} +\def\m@n@f@ntbrackettrail[#1]#2[#3]#4{% + \setmonohangulfont[#1,Scale=\LKOV@monoscale]{#2} + \setmonohanjafont[#3,Scale=\LKOV@monoscale]{#4} +} + +%%% \setkormonofont{foo} +\def\m@n@f@ntnoparen#1{\setmonohangulfont{#1}} + +\def\m@n@f@ntparen(#1){% + \@ifnextchar({\m@n@f@ntdoubleparen(#1)}{\m@n@f@ntsingleparen(#1)} +} + +\def\m@n@f@ntsingleparen(#1)#2{% + \@ifnextchar({\m@n@f@ntsingleparentrail(#1){#2}}{\m@n@f@ntsingleparennotrail(#1){#2}} +} + +\def\m@n@f@ntsingleparentrail(#1)#2(#3){% + \@ifnextchar({\m@n@f@ntsingleparentraildouble(#1){#2}(#3)}{\m@n@f@ntsingleparentrailsingle(#1){#2}(#3)} +} + +\def\m@n@f@ntdoubleparen(#1)(#2)#3{% + \@ifnextchar({\m@n@f@ntdoubleparentrail(#1)(#2){#3}}{\m@n@f@ntdoubleparennotrail(#1)(#2){#3}} +} + +\def\m@n@f@ntdoubleparentrail(#1)(#2)#3(#4){% + \@ifnextchar({\m@n@f@ntdoubleparentraildouble(#1)(#2){#3}(#4)}{\m@n@f@ntdoubleparentrailsingle(#1)(#2){#3}(#4)} +} + +%%% \setkormonofont(foo){bar} +\def\m@n@f@ntsingleparennotrail(#1)#2{% + \setmonohangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},Scale=\LKOV@monoscale]{#2} +} + +%%% \setkormonofont(foo1){bar1}(foo2){bar2} +\def\m@n@f@ntsingleparentrailsingle(#1)#2(#3)#4{% + \setmonohangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},Scale=\LKOV@monoscale]{#2} + \setmonohanjafont[BoldFont=#3,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#4,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},Scale=\LKOV@monoscale]{#4} +} + +%%% \setkormonofont(foo1){bar1}(foo2)(foo3){bar2} +\def\m@n@f@ntsingleparentraildouble(#1)#2(#3)(#4)#5{% + \setmonohangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},Scale=\LKOV@monoscale]{#2} + \if#4* \def\LKOV@temp{#5}\else \def\LKOV@temp{#4}\fi + \setmonohanjafont[BoldFont=#3,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},Scale=\LKOV@monoscale]{#5} +} + +%%% \setkormonofont(foo1)(foo2){bar} +\def\m@n@f@ntdoubleparennotrail(#1)(#2)#3{% + \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi + \setmonohangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},Scale=\LKOV@monoscale]{#3} +} + +%%% \setkormonofont(foo1)(foo2){bar1}(foo3){bar2} +\def\m@n@f@ntdoubleparentrailsingle(#1)(#2)#3(#4)#5{% + \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi + \setmonohangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},Scale=\LKOV@monoscale]{#3} + \setmonohanjafont[BoldFont=#4,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#5,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},Scale=\LKOV@monoscale]{#5} +} + +%%% \setkormonofont(foo1)(foo2){bar1}(foo3)(foo4){bar2} +\def\m@n@f@ntdoubleparentraildouble(#1)(#2)#3(#4)(#5)#6{% + \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi + \setmonohangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},Scale=\LKOV@monoscale]{#3} + \if#5* \def\LKOV@temp{#6}\else\def\LKOV@temp{#5}\fi + \setmonohanjafont[BoldFont=#4,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},Scale=\LKOV@monoscale]{#5} +} + +%%%%%%%%%%%%%%%%%%%%%% mono: ExternalLocation %%%%%%%%%%%%%%%%%%%% +%%% top level command +\def\setk@rst@rm@n@f@nt*{% + \@ifnextchar[{\st@rm@n@f@ntbracket*}{% + \@ifnextchar({\st@rm@n@f@ntparen*}{\st@rm@n@f@ntnoparen*}}% +} + +\def\st@rm@n@f@ntbracket*[#1]#2{% + \@ifnextchar[{\st@rm@n@f@ntbrackettrail*[#1]{#2}}{\st@rm@n@f@ntbracketnotrail*[#1]{#2}} +} + +%%% \setkormonofont*{bar} +\def\setk@rm@n@f@nt#1{% + \setmonohangulfont[ExternalLocation]{#1} +} + + +%%% \setkormonofont*[foo]{bar} +\def\st@rm@n@f@ntbracketnotrail*[#1]#2{% + \setmonohangulfont[#1,ExternalLocation,Scale=\LKOV@monoscale]{#2} +} + +%%% \setkormonofont*[foo1]{bar1}[foo2]{bar2} +\def\st@rm@n@f@ntbrackettrail*[#1]#2[#3]#4{% + \setmonohangulfont[#1,ExternalLocation,Scale=\LKOV@monoscale]{#2} + \setmonohanjafont[#3,ExternalLocation,Scale=\LKOV@monoscale]{#4} +} + +%%% \setk@rst@rm@n@f@nt*{foo} +\def\st@rm@n@f@ntnoparen*#1{\setmonohangulfont[ExternalLocation]{#1}} + +\def\st@rm@n@f@ntparen*(#1){% + \@ifnextchar({\st@rm@n@f@ntdoubleparen*(#1)}{\st@rm@n@f@ntsingleparen*(#1)} +} + +\def\st@rm@n@f@ntsingleparen*(#1)#2{% + \@ifnextchar({\st@rm@n@f@ntsingleparentrail*(#1){#2}}{\st@rm@n@f@ntsingleparennotrail*(#1){#2}} +} + +\def\st@rm@n@f@ntsingleparentrail*(#1)#2(#3){% + \@ifnextchar({\st@rm@n@f@ntsingleparentraildouble*(#1){#2}(#3)}{\st@rm@n@f@ntsingleparentrailsingle*(#1){#2}(#3)} +} + +\def\st@rm@n@f@ntdoubleparen*(#1)(#2)#3{% + \@ifnextchar({\st@rm@n@f@ntdoubleparentrail*(#1)(#2){#3}}{\st@rm@n@f@ntdoubleparennotrail*(#1)(#2){#3}} +} + +\def\st@rm@n@f@ntdoubleparentrail*(#1)(#2)#3(#4){% + \@ifnextchar({\st@rm@n@f@ntdoubleparentraildouble*(#1)(#2){#3}(#4)}{\st@rm@n@f@ntdoubleparentrailsingle*(#1)(#2){#3}(#4)} +} + +%%% \setk@rst@rm@n@f@nt*(foo){bar} +\def\st@rm@n@f@ntsingleparennotrail*(#1)#2{% + \setmonohangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation,Scale=\LKOV@monoscale]{#2} +} + +%%% \setk@rst@rm@n@f@nt*(foo1){bar1}(foo2){bar2} +\def\st@rm@n@f@ntsingleparentrailsingle*(#1)#2(#3)#4{% + \setmonohangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation,Scale=\LKOV@monoscale]{#2} + \setmonohanjafont[BoldFont=#3,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#4,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation,Scale=\LKOV@monoscale]{#4} +} + +%%% \setk@rst@rm@n@f@nt*(foo1){bar1}(foo2)(foo3){bar2} +\def\st@rm@n@f@ntsingleparentraildouble*(#1)#2(#3)(#4)#5{% + \setmonohangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#2,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation,Scale=\LKOV@monoscale]{#2} + \if#4* \def\LKOV@temp{#5}\else \def\LKOV@temp{#4}\fi + \setmonohanjafont[BoldFont=#3,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation,Scale=\LKOV@monoscale]{#5} +} + +%%% \setk@rst@rm@n@f@nt*(foo1)(foo2){bar} +\def\st@rm@n@f@ntdoubleparennotrail(#1)(#2)#3{% + \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi + \setmonohangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation,Scale=\LKOV@monoscale]{#3} +} + +%%% \setk@rst@rm@n@f@nt*(foo1)(foo2){bar1}(foo3){bar2} +\def\st@rm@n@f@ntdoubleparentrailsingle(#1)(#2)#3(#4)#5{% + \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi + \setmonohangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation,Scale=\LKOV@monoscale]{#3} + \setmonohanjafont[BoldFont=#4,BoldFeatures={RawFeature={embolden=2}},ItalicFont=#5,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation,Scale=\LKOV@monoscale]{#5} +} + +%%% \setk@rst@rm@n@f@nt*(foo1)(foo2){bar1}(foo3)(foo4){bar2} +\def\st@rm@n@f@ntdoubleparentraildouble*(#1)(#2)#3(#4)(#5)#6{% + \if#2* \def\LKOV@temp{#3}\else\def\LKOV@temp{#2}\fi + \setmonohangulfont[BoldFont=#1,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation,Scale=\LKOV@monoscale]{#3} + \if#5* \def\LKOV@temp{#6}\else\def\LKOV@temp{#5}\fi + \setmonohanjafont[BoldFont=#4,BoldFeatures={RawFeature={embolden=2}},ItalicFont=\LKOV@temp,ItalicFeatures={RawFeature={\LKOV@italicfeatures}},ExternalLocation,Scale=\LKOV@monoscale]{#5} +} + +\if@nanumfonts +\setmainhangulfont{NanumMyeongjo} +\setsanshangulfont{NanumGothic} +\setmonohangulfont{NanumGothic} +\fi + +\endinput diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/memhangul-x.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/memhangul-x.sty new file mode 100644 index 00000000000..b9b928acb2e --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/memhangul-x.sty @@ -0,0 +1,370 @@ +%% File `memhangul-x.sty` +%% +%% (C) Copyright 2006-2013 Kangsoo Kim <karnes at ktug org> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2006/05/20 or later. +%% +%%% file `memhangul-x.sty` +%% part of oblivoir v2 +%% +\NeedsTeXFormat{LaTeX2e} +\def\filedate{2013/10/22} +\def\fileversion{11.7.16} +\ProvidesPackage{memhangul-x}[\filedate Hangul Typography for (x)oblivoir] +\typeout{Hangul Typography for (x)oblivoir} + +%% Options : + +\providecommand\DisabledOption[1]{% + \typeout{[#1] option to this class has been disabled!}} + +%%%% DisabledOptions +\newif\if@interwordHWP\@interwordHWPfalse +\DeclareOption{interwordHWP}{\DisabledOption{interwordHWP}} +\newif\if@interworddefault\@interworddefaultfalse +%\DeclareOption{interworddefault}{\DisabledOption{interworddefault}} +\DeclareOption{interworddefault}{\@interworddefaulttrue} +%\newif\if@finemath\@finemathfalse +\DeclareOption{finemath}{\DisabledOption{finemath}} +%\newif\if@nojosa\@nojosafalse +\DeclareOption{nojosa}{\DisabledOption{nojosa}} +%\newif\if@dvips{\@dvipsfalse} +\DeclareOption{dvips}{\DisabledOption{dvips}} +\DeclareOption{strictcharcheck}{\DisabledOption{strictcharcheck}} + +%%%% active options +\newif\if@hsspace\@hsspacetrue +\DeclareOption{nosetspace}{\@hsspacefalse} + +\newcommand\nosetspace{% + \@hsspacefalse +} + +%\RequirePackage{ifluatex} +%\RequirePackage{ifxetex} + +\newif\if@hsspacenoquote\@hsspacenoquotetrue +\DeclareOption{quotespacing}{\@hsspacenoquotefalse} +\newif\if@nonfrench\@nonfrenchfalse +\DeclareOption{nonfrench}{\@nonfrenchtrue} +\newif\if@hanja\@hanjafalse +\DeclareOption{hanja}{\@hanjatrue} +\newif\if@mathdisp\@mathdispfalse +\DeclareOption{adjustmath}{\@mathdisptrue} + +\newif\if@arabicfrontmatter{\@arabicfrontmatterfalse} +\DeclareOption{arabicfront}{\@arabicfrontmattertrue} +\newif\if@defaulthangulpagestyle{\@defaulthangulpagestylefalse} +\DeclareOption{hangulpagestyle}{\@defaulthangulpagestyletrue} +\newif\if@pdfbookmark{\@pdfbookmarkfalse} +\DeclareOption{pdfbookmark}{\@pdfbookmarktrue} + +\ifxetex +%%% xetexko options +\DeclareOption{gremph}{\PassOptionsToPackage{\CurrentOption}{xetexko-var}} +\DeclareOption{itemph}{\PassOptionsToPackage{\CurrentOption}{xetexko-var}} +%%% new option +\DeclareOption{latinquote}{\PassOptionsToPackage{\CurrentOption}{xetexko-var}} +\DeclareOption{oldhangul}{\PassOptionsToPackage{\CurrentOption}{xetexko-var}} +\DeclareOption{manualfontspec}{\PassOptionsToPackage{\CurrentOption}{xetexko-var}} +\DeclareOption{nowinname}{\PassOptionsToPackage{\CurrentOption}{xetexko-var}} +\DeclareOption{unfonts}{\PassOptionsToPackage{\CurrentOption}{xetexko-var}} +\DeclareOption{nounfonts}{\PassOptionsToPackage{\CurrentOption}{xetexko-var}} +\else\ifluatex +%%% luatexko options +\DeclareOption{gremph}{\PassOptionsToPackage{\CurrentOption}{luatexko-xobfont}} +\DeclareOption{itemph}{\PassOptionsToPackage{\CurrentOption}{luatexko-xobfont}} +%%% new option +\DeclareOption{latinquote}{\PassOptionsToPackage{\CurrentOption}{luatexko-xobfont}} +\DeclareOption{oldhangul}{\PassOptionsToPackage{\CurrentOption}{luatexko-xobfont}} +\DeclareOption{manualfontspec}{\PassOptionsToPackage{\CurrentOption}{luatexko-xobfont}} +\DeclareOption{nowinname}{\PassOptionsToPackage{\CurrentOption}{luatexko-xobfont}} +\DeclareOption{unfonts}{\PassOptionsToPackage{\CurrentOption}{luatexko-xobfont}} +\DeclareOption{nounfonts}{\PassOptionsToPackage{\CurrentOption}{luatexko-xobfont}} +\else +%%% pdftex options +\DeclareOption{gremph}{\DisabledOption{gremph}} +\DeclareOption{itemph}{\DisabledOption{itemph}} +\DeclareOption{latinquote}{\DisabledOption{latinquote}} +\DeclareOption{oldhangul}{\DisabledOption{oldhangul}} +\DeclareOption{manualfontspec}{\DisabledOption{manualfontspec}} +\DeclareOption{nowinname}{\DisabledOption{nowinname}} +\DeclareOption{unfonts}{\DisabledOption{unfonts}} +\DeclareOption{nounfonts}{\DisabledOption{nounfonts}} +\fi\fi + +%%% figtabcapt +\newif\if@figtabcapt@\@figtabcapt@false +\DeclareOption{figtabcapt}{\@figtabcapt@true} + +\newif\ifKOTEXCJK\KOTEXCJKtrue +\DeclareOption{cjk}{\KOTEXCJKtrue} +\DeclareOption{dhucs}{\KOTEXCJKfalse} +\DeclareOption{uset1font}{\PassOptionsToPackage{usecjkt1font}{cjkutf8-ko}} +\DeclareOption{usedotemph}{\PassOptionsToPackage{\CurrentOption}{cjkutf8-ko}} + +\ProcessOptions + +\ifluatex + \RequirePackage{luatexko} + \RequirePackage{luatexko-xobfont} +\else\ifxetex + \RequirePackage{xetexko-var} + \else + \ifKOTEXCJK + \RequirePackage{cjkutf8-ko} +% \else +% \RequirePackage{dhucs} + \fi +\fi\fi + +\ifKOTEXCJK\else + \RequirePackage{xob-dotemph} +\fi + +%% define memh@hu +\newdimen\memh@hu\memh@hu=0.059375em + +\newif\if@inthekoreancontext\@inthekoreancontexttrue + +%% memoir [ms] option +\ifmsdoc +\newcommand*\MSNormalSize{ + \let\large\normalsize + \let\Large\normalsize + \let\LARGE\normalsize + \let\huge\normalsize + \let\Huge\normalsize + \let\HUGE\normalsize + \let\small\normalsize + \let\scriptsize\normalsize + \let\footnotesize\normalsize + \let\tiny\normalsize + } +\AtBeginDocument{ + \renewcommand{\msdoublespacing}{% + \renewcommand{\baselinestretch}{1.75}\large\normalsize} + \renewcommand{\mssinglespacing}{% + \renewcommand{\baselinestretch}{1.1}\large\normalsize} + \renewcommand{\familydefault}{cmtt} + \renewcommand{\rmdefault}{cmtt} + \renewcommand{\sfdefault}{cmtt} + \renewcommand{\bfdefault}{m} + \renewcommand{\itdefault}{n} + \renewcommand{\sldefault}{n} + \renewcommand{\scdefault}{n} + \renewcommand{\baselinestretch}{1.75} + \@twocolumnfalse + \onecolumn + \sloppy + \@twosidefalse + \raggedbottom + \pagestyle{plain} +} +\fi + +\if@pdfbookmark + \@ifpackageloaded{hyperref}{% hyperref is already loaded + \typeout{hyperref is already loaded!}% + \RequirePackage{memhfixc}}% + {% + \RequirePackage{hyperref} + \RequirePackage{memhfixc}} +\fi + +%%% interword +\if@interworddefault + \RequirePackage{memucs-interword-x} +\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% 한글 관련 이름 설정 (not from hangul.sty) + +\if@hanja +\def\today{\number\year 年~\number\month 月~\number\day 日} +\def\enclname{同封物} +\def\ccname{寫本} +\def\headtoname{受信人} +\def\seename{\을~參照} +\def\alsoname{\을~參照} +\def\contentsname{目~次} +\def\listfigurename{圖~目次} +\def\listtablename{表~目次} +\def\refname{參考~文獻} +\def\indexname{索~引} +\def\tablename{表} +\def\figurename{圖} +\def\abstractname{要~約} +\def\bibname{參考~圖書} +\def\appendixname{附錄} +\def\subappendixname{附錄} +\def\appendixtocname{附~錄} +\def\appendixpagename{附~錄} +\def\partname{篇} +\def\chaptername{章} +\def\sectionname{節} +\def\colorlayer{色相레이어} +\def\glossaryname{語彙} +\def\figurerefname{圖} +\def\tablerefname{表} +\def\pagename{面} +\def\pagerefname{面} +\def\partrefname{篇} +\def\chapterrefname{章} +\def\sectionrefname{\S} +\else +\def\today{\number\year 년~\number\month 월~\number\day 일} +\def\enclname{동봉물} +\def\ccname{사본} +\def\headtoname{받는이} +\def\seename{\을~참조} +\def\alsoname{\을~함께~참조} +\def\contentsname{차~례} +\def\listfigurename{그림~차례} +\def\listtablename{표~차례} +\def\refname{참고~문헌} +\def\indexname{찾아보기} +\def\tablename{표} +\def\figurename{그림} +\def\abstractname{요~약} +\def\bibname{참고~문헌} +\def\appendixname{부록} +\def\subappendixname{부록} +\def\appendixtocname{부~록} +\def\appendixpagename{부~록} +\def\partname{편} +\def\chaptername{장} +\def\sectionname{절} +\def\colorlayer{환등판~색상} +\def\glossaryname{용어집} +\def\figurerefname{그림} +\def\tablerefname{표} +\def\pagename{페이지} +\def\pagerefname{페이지} +\def\partrefname{편} +\def\chapterrefname{장} +\def\sectionrefname{\S} +\fi + +%% \marginparswitchtrue/false +\providecommand{\marginparswitchtrue}{\@mparswitchtrue} +\providecommand{\marginparswitchfalse}{\@mparswitchfalse} +\providecommand{\reversemargintrue}{\@reversemargintrue} +\providecommand{\reversemarginfalse}{\@reversemarginfalse} + +%% select textwidth with chars +\def\testh@ng@lch@r@cters{가갸거겨고교구규그기} +\newlength\t@nch@ars +\newcommand*\setxxxlength[2]{% + \setbox0\hbox{\testh@ng@lch@r@cters}\setlength\t@nch@ars{\wd0}% + \@ifundefined{#1length}{\expandafter\newlength\csname #1length\endcsname}{}% + \expandafter\setlength\csname #1length\endcsname{#2\t@nch@ars}% + \expandafter\divide\csname #1length\endcsname by 10% +} + +%%% 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{}% +} + +\AtBeginDocument{% +\ifnokorean\else +\ifkosection +\kscntformat{section}{제\ob@onethirdspace }{\ob@onethirdspace 절} +\renewcommand\thesubsection{\arabic{section}.\arabic{subsection}} +\fi\fi +} + +\RequirePackage{memhangul-common} + +\ifx\memucsinterwordhook\undefined +\def\memucsinterwordhook{} +\fi + +\ifx\memucsinterwordchapterskiphook\undefined +\def\memucsinterwordchapterskiphook{} +\fi + +\if@nonfrench\else + \frenchspacing +\fi + +%%% hsetspace for memucs +\if@hsspace + \RequirePackage[hangul,adjustverbatim,adjustfootnotesep]{memucs-setspace} + \if@hsspacenoquote\else\adjustquotespacing\fi +\else + \RequirePackage{memucs-setspace} + \linespread{1.333} +\fi +%\SetHangulspace{1.333}{1.1} + +%%% fix first pdf page layout error : XeTeX +%%% based on v1.61803398 +%%% these codes are to be deleted later. (2009/09/25) +\renewcommand*{\fixpdflayout}{% + \pdfpageheight=\the\stockheight + \pdfpagewidth=\the\stockwidth + \ifxetex + \AtBeginDvi{\special{pdf: pagesize width \the\stockwidth\ height \the\stockheight}}% + \else + \ifdim\pdfvorigin=0pt\pdfvorigin=1in\fi + \ifdim\pdfhorigin=0pt\pdfhorigin=1in\fi + \fi} + +%%% 호환을 위하여 dhucs 명령 몇 개를 무력화함. +\ifx\SetAdhocFonts\undefined + \def\SetAdhocFonts#1#2{} +\fi +\ifx\regremph\undefined + \let\regremph\relax + \let\ungremph\relax +\fi + +\endinput + +% CHANGE LOG +% 2013/10/22 : introduce memhangul-common.sty +% 2013/10/16 : \kscntformat and [kosection] bug fix. +% 2013/09/27 : \cntrdotss +% 2013/09/15 : \leavevmode at \explpunc, \expldash +% 2013/09/01 : [cjk], [dhucs] option introduced +% 2012/12/02 : drop shipout hacking codes +% 2012/11/29 : \pdfstringdefDisableCommands +% 2012/11/22 : [figtabcapt] opton introduced +% 2012/11/01 : avoid error in \cnm, \ccnm etc. +% 2012/07/12 : introduce luatexko-xobfont +% 2011/09/15 : changes according to xoblivoir +% 2010/09/16 : cntrdot, adjustmath +% 2009/05/11 : protect bnm commands +% 2009/04/02 : redefine memoir-shipout for pdflualatex and other... +% 2009/02/11. memoir v1.6180339e compatibility mend 1. +% titleref, hangul page style. +%%% +% 오전 6:35 2008-09-18 : rename xkospace.sty to xkospace-var.sty +% to avoid confusion +% 오후 2:16 2008-09-18 : latinquote 옵션 +% 오전 4:32 2008-09-30 : hangul item titles +% 코드 정리. +% 오전 8:24 2008-10-07 : revive interword hook +% 오후 5:25 2008-10-07 : revive gremph/itemph +% 오전 1:21 2008-10-13 : xetexko v0.1 반영 +% 오후 2:37 2008-10-23 : bnmcmds, oblivoirdblquote +% 오후 17:59 2008-12-03 : nowinname 옵션 추가 +% 오전 2:17 2009-09-26 : try to fix the first pdf page layout error on XeTeX (moved from fapapersize) +% diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/memucs-interword-x.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/memucs-interword-x.sty new file mode 100644 index 00000000000..e033b74ce2f --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/memucs-interword-x.sty @@ -0,0 +1,188 @@ +%% memucs-interword-x.sty +%% +%% Copyright (c) 2007-2013 Kangsoo Kim <karnes at ktug org> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2006/05/20 or later. +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{memucs-interword-x}[2009/04/02] +\RequirePackage{ifluatex} +\RequirePackage{ifxetex} + +\def\memucsinterwordskip{} +\def\memucsinterwordchapterskip{} +\def\memucshangulskips{} + +\newif\if@nonfrench\@nonfrenchfalse +\DeclareOption{nonfrench}{% + \@nonfrenchtrue} +\DeclareOption{HWP}{% + \def\memucsinterwordskip{\HWPinterwordskip}} +\DeclareOption{default}{% + \@nonfrenchtrue\def\memucsinterwordskip{\DEFAULTskips}%\interHchar{0pt} + } +\DeclareOption{wider}{} +% \def\memucshangulskips{\widerhangul}} +\DeclareOption{narrower}{} +% \def\memucshangulskips{\narrowerhangul}} +%\DeclareOption*{% +% \def\memucsinterwordskip{\DEFAULTskips}% +%} + +%\newlength\dimen@skip +%\setlength\dimen@skip{.1pt} + +%% finemath active. +%\ifluatex\else\ifxetex\else +% \if@dhucsfinemath\else\@dhucsfinemathtrue\fi +%\fi\fi + +%%% inter hchar +\newcommand*\interHchar[1]{% + \ifluatex + \@luatex@setinterhangulskip{#1}% + \else\ifxetex + \@xetex@setinterhangulskip{#1}% + \else + \@setinterhangulskip{#1}% + \fi\fi +} + +\newcommand*\DefaultInterHchar{% + \interHchar{-.04}% +} + +\newcommand*\@luatex@setinterhangulskip[1]{% +\directlua{ + fmconfig.hangul_hangul = #1 % ѱ ڰ +}} + +\newcommand*\@xetex@setinterhangulskip[1]{% + \def\xetexkointerhchar{#1em}% +} + +\newcommand*\@setinterhangulskip[1]{% + \setInterHangulSkip{#1em}% +} + +\newcommand*\interhword[4][\@empty]{% + \ifx#1\@empty\setinterwordskip{#2}{#3}{#4}\else + \setinterwordskip[#1]{#2}{#3}{#4}\fi +} + +%%%\def\narrowerhangul{% +%%% \def\memucshangulskips{% +%%% \interHchar{-.5pt}% +%%% }% +%%%} +%%%\def\widerhangul{% +%%% \def\memucshangulskips{% +%%% \interHchar{1pt}% +%%% }% +%%%} + +\newdimen\BASE@FONTsize +\BASE@FONTsize=\f@size\p@ + +\def\HWPinterwordskip{% + \def\memucshangulskips{% + \DefaultInterHchar + }% + \def\memucsinterwordskip{% + \spaceskip = .475\BASE@FONTsize plus .25\BASE@FONTsize minus .1331\BASE@FONTsize + \if@nonfrench + \xspaceskip = .6\BASE@FONTsize plus .2\BASE@FONTsize minus .1\BASE@FONTsize + \fi + }% + \def\memucsinterwordchapterskip{% + \spaceskip = .5\BASE@FONTsize plus .1\BASE@FONTsize minus .05\BASE@FONTsize + \if@nonfrench + \xspaceskip = .65\BASE@FONTsize plus .2\BASE@FONTsize minus .1\BASE@FONTsize + \fi + }% +} + +\def\setinterwordskip{\@ifnextchar[\setinterwordskip@\setinterwordskip@@} +\def\setinterwordskip@[#1]#2#3#4{% + \def\memucsinterwordskip{% + \spaceskip = #2\BASE@FONTsize plus #3\BASE@FONTsize minus #4\BASE@FONTsize + \if@nonfrench + \xspaceskip = #1\BASE@FONTsize plus #3\BASE@FONTsize minus #4\BASE@FONTsize + \fi + }% +} + +\def\setinterwordskip@@#1#2#3{% + \def\memucsinterwordskip{% + \spaceskip = #1\BASE@FONTsize plus #2\BASE@FONTsize minus #3\BASE@FONTsize + \if@nonfrench + \xspaceskip = .6\BASE@FONTsize plus #2\BASE@FONTsize minus #3\BASE@FONTsize + \fi + }% +} + +\def\DEFAULTskips{% + \DefaultInterHchar + \def\memucsinterwordskip{% + \spaceskip = .413\BASE@FONTsize plus .1\BASE@FONTsize minus .1\BASE@FONTsize + \if@nonfrench + \xspaceskip = .55\BASE@FONTsize plus .11\BASE@FONTsize minus .1\BASE@FONTsize + \fi + }% + \def\memucsinterwordchapterskip{% + \spaceskip = .46\BASE@FONTsize plus .11\BASE@FONTsize minus .1\BASE@FONTsize + \if@nonfrench + \xspaceskip = .575\BASE@FONTsize plus .1\BASE@FONTsize minus .1\BASE@FONTsize + \fi + }% +} + +\ProcessOptions\relax + +\def\verbatim@font{\m@mverbfont\spaceskip\z@ + \hyphenchar\font\m@ne + \let\do\do@noligs + \verbatim@nolig@list} + +\def\narrowerinterhword{% + \spaceskip=.331\BASE@FONTsize plus .111\BASE@FONTsize minus .1\BASE@FONTsize + \if@nonfrench + \xspaceskip=.466\BASE@FONTsize plus .05\BASE@FONTsize minus .05\BASE@FONTsize + \fi +} + +\def\memucsinterwordhook{\memucsinterwordskip\memucshangulskips}% +\def\memucsinterwordchapterskiphook{\memucsinterwordchapterskip\memucshangulskips}% +\def\memucsfninterwordhook{\narrowerinterhword}% + +% engtext env +\@ifundefined{engtext}% + {% + \newenvironment{engtext}% + {\begingroup\spaceskip=\fontdimen2\font plus\fontdimen3\font minus\fontdimen4\font}% + {\endgroup}% + }{} + +% engtxt +\newskip\ORIG@spaceskip +\def\engtxt{\ORIG@spaceskip=\spaceskip + \spaceskip=\fontdimen2\font plus\fontdimen3\font minus\fontdimen4\font} +\def\endengtxt{\spaceskip=\ORIG@spaceskip} + +\endinput + +%% CHANGE LOG +% 2009/04/02. small alterations. +% 2005/01/07. code clearance +% 2005/02/08. reset interwordchapterskip values +% 2005/05/17. engtext env. added. +% 2005/07/30. replace em by \BASE@FONTsize +% 2005/08/05. nonfrench option introduced. +% 2005/11/17. \interhword bug fixed. +% 2007/06/03. dhucs 4.0 hfontspec applied 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 new file mode 100644 index 00000000000..2aaf1e8b97d --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xetexko-var.sty @@ -0,0 +1,67 @@ +%% xetexko-var.sty +%% +%% Copyright (c) 2007-2013 Kangsoo Kim <karnes at ktug org> +%% Copyright (c) 2013 Kihwang Lee <leekh at ktug org> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2006/05/20 or later. +%% +%% A variant of xetexko.sty +%% +%% Updated for xetexko v2.1 +%% 2013.08.26 +%% +\ProvidesPackage{xetexko-var} + [2013/08/26 v0.12 Korean Typesetting under XeTeX] + +%%% common options for xob-font +\DeclareOption{gremph}{\PassOptionsToPackage{\CurrentOption}{xetexko-xobfont}} +\DeclareOption{itemph}{\PassOptionsToPackage{\CurrentOption}{xetexko-xobfont}} +\DeclareOption{oldhangul}{\PassOptionsToPackage{\CurrentOption}{xetexko-xobfont}} +\DeclareOption{latinquote}{\PassOptionsToPackage{\CurrentOption}{xetexko-xobfont}} +\DeclareOption{nowinname}{\PassOptionsToPackage{\CurrentOption}{xetexko-xobfont}} +%%% for kolabels +\newif\if@hangul +\newif\if@hanja +\DeclareOption{hangul}{\@hangultrue} +\DeclareOption{hanja}{\@hangultrue\@hanjatrue} +%%% for xob-fonts +\newif\if@extfontspec\@extfontspecfalse +\DeclareOption{manualfontspec}{\@extfontspectrue} + +%%% unfonts +\DeclareOption{unfonts}{\PassOptionsToPackage{\CurrentOption}{xetexko-xobfont}} +\DeclareOption{nounfonts}{\PassOptionsToPackage{\CurrentOption}{xetexko-xobfont}} +\ProcessOptions\relax + +%%% xetexko sub-styles +\RequirePackage{xetexko-space} +\RequirePackage{xetexko-josa} +\RequirePackage{xetexko-vertical} + +%%% xoblivoir sub-styles +\RequirePackage{xob-dotemph} +\RequirePackage{xob-hyper} + +\if@extfontspec + \PackageWarning{xetexko-var}{Load xetexko-xobfont and configure Korean Fonts manually!}{} + \RequirePackage{xetexko-font} +\else + \RequirePackage{xetexko-xobfont} +\fi + +\RequirePackage{kolabels-utf} +\if@hangul\AtBeginDocument{\RequirePackage{konames-utf}}\fi + +\endinput + +%%% 2013-09-27, nounfonts. +%%% 오후 3:22 2008-11-16 +%%% 오후 17:59 2008-12-03 : nowinname 옵션 추가 +%%% 2009-03-25, xetexko.sty +%%% 오전 2:22 2009-09-26, xetexko-vertical.sty diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xetexko-xobfont.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xetexko-xobfont.sty new file mode 100644 index 00000000000..2259087ca37 --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xetexko-xobfont.sty @@ -0,0 +1,1059 @@ +%% xetexko-xobfont.sty +%% +%% Copyright (c) 2007-2013 Kangsoo Kim <karnes at ktug org> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2006/05/20 or later. +%% +%% a variant of xetexko-font.sty +% +\ifdefined\ProvidesPackage + \ProvidesPackage{xetexko-xobfont}[2009/10/29 v0.76 Korean font definition in conjunction with xetexko-space, a variant] +\fi + +\@ifpackageloaded{xetexko-space}{}{% + \PackageError{xetexko-xob}{xetexko-space must be loaded before}{}% +} + +\newif\if@latinquote\@latinquotefalse +\DeclareOption{latinquote}{\@latinquotetrue} +\newif\if@oldhangul\@oldhangulfalse +\DeclareOption{oldhangul}{\@oldhangultrue} +\newif\if@gremph\@gremphtrue +\DeclareOption{gremph}{\@gremphtrue} +\DeclareOption{itemph}{\@gremphfalse} +\newif\if@nowin\@nowinfalse +\DeclareOption{nowinname}{\@nowintrue} + +\newif\if@unfonts\@unfontsfalse +\DeclareOption{unfonts}{\@unfontstrue} +\DeclareOption{nounfonts}{\@unfontsfalse} +\newif\if@nanumfonts\@nanumfontsfalse +\DeclareOption{nanum}{\@nanumfontstrue} + +\ProcessOptions + +\RequirePackage{xetexko-font} + +\if@oldhangul + \def\XKOV@oldhangulscript{Script=Hangul} + \def\XKOV@oldhangullanguage{Language=Korean} + \def\XKOV@oldhangulfeatures{RawFeature=+ccmp;+ljmo;+vjmo;+tjmo} +\else + \def\XKOV@oldhangulscript{} + \def\XKOV@oldhangullanguage{} + \def\XKOV@oldhangulfeatures{} +\fi + +\if@gremph + \def\XKOV@italicfeatures{} + \def\XKOV@bolditalicfeatures{RawFeature={embolden=2}} + \def\XKOV@boldfeatures{RawFeature={embolden=2}} +\else + \def\XKOV@italicfeatures{RawFeature={slant=0.17}} + \def\XKOV@bolditalicfeatures{RawFeature={embolden=2;slant=0.17}} + \def\XKOV@boldfeatures{RawFeature={embolden=2}} +\fi + +\newcommand\setmonoscale[1]{% + \def\XKOV@monoscale{#1}% +} +\setmonoscale{1.05} + +%%% 괄호 재설정 +%\if@latinquote +% \XeTeXcharclass "2018 = 4 % ‘ +% \XeTeXcharclass "201C = 4 % “ +% \XeTeXcharclass "2019 = 5 % ’ +% \XeTeXcharclass "201D = 5 % ” +%\else +% \XeTeXcharclass "2018 = 2 % ‘ +% \XeTeXcharclass "201C = 2 % “ +% \XeTeXcharclass "2019 = 3 % ’ +% \XeTeXcharclass "201D = 3 % ” +%\fi + +%%% 한글 기호 문자 일부. xkospace에 정의되지 않은 것. +%%% 추후 삭제할 수 있는 코드. +%%% ※… = class 1 (한자) +%\XeTeXcharclass "007D = 7 %… class 7 ("AC00) +%%\count255 = "203B +%%\loop \XeTeXcharclass\count255 = 1 +%% \ifnum\count255 < "24EA +%% \advance\count255 1 \repeat +%%\count255 = "3200 +%%\loop \XeTeXcharclass\count255 = 1 +%% \ifnum\count255 < "33DE +%% \advance\count255 1 \repeat +%%\count255 = "25A0 +%%\loop \XeTeXcharclass\count255 = 1 +%% \ifnum\count255 < "266E +%% \advance\count255 1 \repeat + +\XeTeXcharclass "223C = 1 % ∼ + +%% 한글폰트 지정하기 : +\@ifpackageloaded{xltxtra}{}{\RequirePackage{xltxtra}} + \def\CallKorFont#1{% + \expandafter\newfontfamily\csname kor#1font\endcsname[\XKOV@externallocation,% + BoldFont=\csname XKOV@kor#1@bold\endcsname,% + ItalicFont=\csname XKOV@kor#1@italic\endcsname,% + ItalicFeatures={\XKOV@italicfeatures},% + BoldItalicFont=\csname XKOV@kor#1@bolditalic\endcsname,% + BoldItalicFeatures={\XKOV@italicfeatures},% +% Script=Hangul,% +% Language=Korean,% +% RawFeature=+ccmp;+ljmo;+vjmo;+tjmo + \XKOV@oldhangulscript,\XKOV@oldhangullanguage,% + \XKOV@oldhangulfeatures + ]% + {\csname XKOV@kor#1@regular\endcsname}% + } +%%%%%%%%% mono 폰트는 특별하게 취급한다. + \def\CallKorFontmono{% + \newfontfamily\kormonofont[\XKOV@externallocation,% + BoldFont=\XKOV@kormono@bold,% + BoldFeatures={\XKOV@boldfeatures},% + ItalicFont=\XKOV@kormono@italic,% + ItalicFeatures={\XKOV@italicfeatures},% + BoldItalicFont=\XKOV@kormono@bolditalic,% + BoldItalicFeatures={\XKOV@bolditalicfeatures},% + Scale=\XKOV@monoscale]% + {\XKOV@kormono@regular} + } +% \newfontfamily\korvertfont[ExternalLocation, +% BoldFont=UnBatang, +% BoldFeatures={RawFeature={embolden=2}}, +% ItalicFont=UnBatang, +% ItalicFeatures={RawFeature={slant=0.17}}, +% BoldItalicFont=UnBatang, +% BoldItalicFeatures={RawFeature={embolden=2;slant=0.17}}, +% Script=Hangul, +% Language=Korean, +% Vertical=RotatedGlyphs] +% {UnBatang} + \def\CallHnjFont#1{% + \expandafter\newfontfamily\csname hnj#1font\endcsname[\XKOV@externallocation,% + BoldFont=\csname XKOV@hnj#1@bold\endcsname,% + ItalicFont=\csname XKOV@hnj#1@italic\endcsname,% + ItalicFeatures={\XKOV@italicfeatures},% + BoldItalicFont=\csname XKOV@hnj#1@bolditalic\endcsname,% + BoldItalicFeatures={\XKOV@italicfeatures},% +% Script=Hangul,% +% Language=Korean,% +% RawFeature=+ccmp;+ljmo;+vjmo;+tjmo + \XKOV@oldhangulscript,\XKOV@oldhangullanguage,% + \XKOV@oldhangulfeatures + ]% + {\csname XKOV@hnj#1@regular\endcsname}% + } + \def\CallHnjFontmono{% + \newfontfamily\hnjmonofont[\XKOV@externallocation,% + BoldFont=\XKOV@hnjmono@bold,% + BoldFeatures={\XKOV@boldfeatures},% + ItalicFont=\XKOV@hnjmono@italic,% + ItalicFeatures={\XKOV@italicfeatures},% + BoldItalicFont=\XKOV@hnjmono@bolditalic,% + BoldItalicFeatures={\XKOV@bolditalicfeatures},% + Scale=\XKOV@monoscale + ]% + {\XKOV@hnjmono@regular} + } + \def\CallHnjDefault{% + \let\hnjmainfont\kormainfont + \let\hnjsansfont\korsansfont + \let\hnjmonofont\korsansfont + } + +%%% 사용자 명령 +%%% from here, Karnes writes: + +\RequirePackage{twoopt} +\newif\if@korfnt@external\@korfnt@externaltrue +\newif\if@XKOV@extendcommand\@XKOV@extendcommandfalse + +\let\XKOV@XP\expandafter + +%%%%%%%%%%%%%%%%%%%%%% main +%%% 아무래도 잊어버릴 듯해서... +%%% 다음 네 가지는 xetexko-font의 방식 +%%% \setkormainfont{FontName} +%%% \setkormainfont[Options]{FontName} +%%% \setkormainfont{FontName}[Hanja_Opt]{FontName} +%%% \setkormainfont[Options]{FontName}[Hanja_Opt]{FontName} +%%% xoblivoir 방식은 +%%% \setkormainfont*{FontName} +%%% \setkormainfont(Bold)(Italic){FontName} +%%% \setkormainfont*(Bold)(Italic){FontName} +%%% \setkormainfont(Bold)(Italic){FontName}(Bold)(Italic){FontName} +%%% \setkormainfont*(Bold)(Italic){FontName}(Bold)(Italic){FontName} +%%% (Bold)(Italic)은 optional. +%%% +\def\setkormainfont{% + \@ifnextchar[\setkormainATYPE{% + \@ifnextchar(\setkormainBTYPE{% + \@ifnextchar*\setkormainCTYPE\setkormainDTYPE}}% +} + +\def\setkormainATYPE[#1]#2{% + \gdef\@ATYPEopt@ne{#1}% + \gdef\@ATYPEarg@ne{#2}% + \@ifnextchar[\setkormainATYPEA\setkormainATYPEB +} + +\def\setkormainATYPEA[#1]#2{% + \XKOV@XP\setmainhangulfont\XKOV@XP[\@ATYPEopt@ne]{\@ATYPEarg@ne}% + \setmainhanjafont[#1]{#2}% +} + +\def\setkormainATYPEB{% + \XKOV@XP\setmainhangulfont\XKOV@XP[\@ATYPEopt@ne]{\@ATYPEarg@ne}% +} + +\def\setkormainDTYPE#1{% + \gdef\@ATYPEarg@ne{#1}% + \@ifnextchar[\setkormainDTYPEA\setkormainDTYPEB +} + +\def\setkormainDTYPEA[#1]#2{% + \setmainhangulfont{\@AgTYPEarg@ne}% + \setmainhanjafont[#1]{#2}% +} + +\def\setkormainDTYPEB{% + \setmainhangulfont{\@ATYPEarg@ne}% +} + +\def\setkormainBTYPE(#1){% + \long\gdef\@BTYPEopt@ne{#1}% + \@ifnextchar(\setkormainBTYPEA\setkormainBTYPEB +} + +\def\setkormainBTYPEA(#1)#2{% + \long\gdef\@BTYPEopttw@{#1}% + \long\gdef\@BTYPEarg@ne{#2}% + \@ifnextchar(\setkormainBTYPEC\setkormainBTYPED +} + +\def\setkormainBTYPEB#1{% + \gdef\@BTYPEarg@ne{#1}% + \@ifnextchar(\setkormainBTYPEBA\setkormainBTYPEBB +} + +\def\setkormainBTYPEBB{% + \s@tk@rm@inf@nt[\@BTYPEopt@ne]{\@BTYPEarg@ne}% +} + +\def\setkormainBTYPEBA({% + \@ifnextchar)\setkormainBTYPEBNO\setkormainBTYPEBYES +} + +\def\setkormainBTYPEBNO)#1{% + \s@tk@rm@inf@nt[\@BTYPEopt@ne]{\@BTYPEarg@ne}% + []{#1}% +} + +\def\setkormainBTYPEBYES#1){% + \gdef\@BTYPEoptthr@@{#1}% + \@ifnextchar(\setkormainBTYPEBE\setkormainBTYPEBF +} + +\def\setkormainBTYPEBE(#1)#2{% + \gdef\@BTYPEoptf@ur{#1}% + \s@tk@rm@inf@nt[\@BTYPEopt@ne]{\@BTYPEarg@ne}% + [\@BTYPEoptthr@@][\@BTYPEoptf@ur]{#2}% +} + +\def\setkormainBTYPEBF#1{% + \s@tk@rm@inf@nt[\@BTYPEopt@ne]{\@BTYPEarg@ne}% + [\@BTYPEoptthr@@]{#1}% +} + +\def\setkormainBTYPEC({% + \@ifnextchar)\setkormainBTYPECNO\setkormainBTYPECYES +} + +\def\setkormainBTYPED{% + \s@tk@rm@inf@nt[\@BTYPEopt@ne][\@BTYPEopttw@]{\@BTYPEarg@ne}% +} + +\def\setkormainBTYPECNO)#1{% + \s@tk@rm@inf@nt[\@BTYPEopt@ne][\@BTYPEopttw@]{\@BTYPEarg@ne}% + []{#1}% +} + +\def\setkormainBTYPECYES#1){% + \gdef\@BTYPEoptthr@@{#1}% + \@ifnextchar(\setkormainBTYPEE\setkormainBTYPEF +} + +\def\setkormainBTYPEE(#1)#2{% + \gdef\@BTYPEoptf@ur{#1}% + \s@tk@rm@inf@nt[\@BTYPEopt@ne][\@BTYPEopttw@]{\@BTYPEarg@ne}% + [\@BTYPEoptthr@@][\@BTYPEoptf@ur]{#2}% +} + +\def\setkormainBTYPEF#1{% + \s@tk@rm@inf@nt[\@BTYPEopt@ne][\@BTYPEopttw@]{\@BTYPEarg@ne}% + [\@BTYPEoptthr@@]{#1}% +} + +\def\setkormainCTYPE*{ + \@ifnextchar(\setkormainCTYPEALPHA\setkormainCTYPEBETA +} + +\def\setkormainCTYPEBETA#1{% + \s@tk@rm@inf@nt*{#1}% +} + +\def\setkormainCTYPEALPHA(#1){% + \gdef\@CTYPEopt@ne{#1}% + \@ifnextchar(\setkormainCTYPEA\setkormainCTYPEB +} + +\def\setkormainCTYPEA(#1)#2{% + \gdef\@CTYPEopttw@{#1}% + \gdef\@CTYPEarg@ne{#2}% + \@ifnextchar(\setkormainCTYPEC\setkormainCTYPED +} + +\def\setkormainCTYPEB#1{% + \gdef\@CTYPEarg@ne{#1}% + \@ifnextchar(\setkormainCTYPEBA\setkormainCTYPEBB +} + +\def\setkormainCTYPEBB{% + \s@tk@rm@inf@nt*[\@CTYPEopt@ne]{\@CTYPEarg@ne}% +} + +\def\setkormainCTYPEBA({% + \@ifnextchar)\setkormainCTYPEBNO\setkormainCTYPEBYES +} + +\def\setkormainCTYPEBNO)#1{% + \s@tk@rm@inf@nt*[\@CTYPEopt@ne]{\@CTYPEarg@ne}% + []{#1}% +} + +\def\setkormainCTYPEBYES#1){% + \gdef\@CTYPEoptthr@@{#1}% + \@ifnextchar(\setkormainCTYPEBE\setkormainCTYPEBF +} + +\def\setkormainCTYPEBE(#1)#2{% + \gdef\@CTYPEoptf@ur{#1}% + \s@tk@rm@inf@nt*[\@CTYPEopt@ne]{\@CTYPEarg@ne}% + [\@CTYPEoptthr@@][\@CTYPEoptf@ur]{#2}% +} + +\def\setkormainCTYPEBF#1{% + \s@tk@rm@inf@nt*[\@CTYPEopt@ne]{\@CTYPEarg@ne}% + [\@CTYPEoptthr@@]{#1}% +} + +\def\setkormainCTYPEC({% + \@ifnextchar)\setkormainCTYPECNO\setkormainCTYPECYES +} + +\def\setkormainCTYPED{% + \s@tk@rm@inf@nt*[\@CTYPEopt@ne][\@CTYPEopttw@]{\@CTYPEarg@ne}% +} + +\def\setkormainCTYPECNO)#1{% + \s@tk@rm@inf@nt*[\@CTYPEopt@ne][\@CTYPEopttw@]{\@CTYPEarg@ne}% + []{#1}% +} + +\def\setkormainCTYPECYES#1){% + \gdef\@CTYPEoptthr@@{#1}% + \@ifnextchar(\setkormainCTYPEE\setkormainCTYPEF +} + +\def\setkormainCTYPEE(#1)#2{% + \gdef\@CTYPEoptf@ur{#1}% + \s@tk@rm@inf@nt*[\@CTYPEopt@ne][\@CTYPEopttw@]{\@CTYPEarg@ne}% + [\@CTYPEoptthr@@][\@CTYPEoptf@ur]{#2}% +} + +\def\setkormainCTYPEF#1{% + \s@tk@rm@inf@nt*[\@CTYPEopt@ne][\@CTYPEopttw@]{\@CTYPEarg@ne}% + [\@CTYPEoptthr@@]{#1}% +} + +%%%%%%%%%%%%%%%%%%%%%%%% + +\def\setkorsansfont{% + \@ifnextchar[\setkorsansATYPE{% + \@ifnextchar(\setkorsansBTYPE{% + \@ifnextchar*\setkorsansCTYPE\setkorsansDTYPE}}% +} + +\def\setkorsansATYPE[#1]#2{% + \gdef\@ATYPEopt@ne{#1}% + \gdef\@ATYPEarg@ne{#2}% + \@ifnextchar[\setkorsansATYPEA\setkorsansATYPEB +} + +\def\setkorsansATYPEA[#1]#2{% + \XKOV@XP\setsanshangulfont\XKOV@XP[\@ATYPEopt@ne]{\@ATYPEarg@ne}% + \setsanshanjafont[#1]{#2}% +} + +\def\setkorsansATYPEB{% + \XKOV@XP\setsanshangulfont\XKOV@XP[\@ATYPEopt@ne]{\@ATYPEarg@ne}% +} + +\def\setkorsansDTYPE#1{% + \gdef\@ATYPEarg@ne{#1}% + \@ifnextchar[\setkorsansDTYPEA\setkorsansDTYPEB +} + +\def\setkorsansDTYPEA[#1]#2{% + \setsanshangulfont{\@ATYPEarg@ne}% + \setsanshanjafont[#1]{#2}% +} + +\def\setkorsansDTYPEB{% + \setsanshangulfont{\@ATYPEarg@ne}% +} + +\def\setkorsansBTYPE(#1){% + \long\gdef\@BTYPEopt@ne{#1}% + \@ifnextchar(\setkorsansBTYPEA\setkorsansBTYPEB +} + +\def\setkorsansBTYPEA(#1)#2{% + \long\gdef\@BTYPEopttw@{#1}% + \long\gdef\@BTYPEarg@ne{#2}% + \@ifnextchar(\setkorsansBTYPEC\setkorsansBTYPED +} + +\def\setkorsansBTYPEB#1{% + \gdef\@BTYPEarg@ne{#1}% + \@ifnextchar(\setkorsansBTYPEBA\setkorsansBTYPEBB +} + +\def\setkorsansBTYPEBB{% + \s@tk@rs@nsf@nt[\@BTYPEopt@ne]{\@BTYPEarg@ne}% +} + +\def\setkorsansBTYPEBA({% + \@ifnextchar)\setkorsansBTYPEBNO\setkorsansBTYPEBYES +} + +\def\setkorsansBTYPEBNO)#1{% + \s@tk@rs@nsf@nt[\@BTYPEopt@ne]{\@BTYPEarg@ne}% + []{#1}% +} + +\def\setkorsansBTYPEBYES#1){% + \gdef\@BTYPEoptthr@@{#1}% + \@ifnextchar(\setkorsansBTYPEBE\setkorsansBTYPEBF +} + +\def\setkorsansBTYPEBE(#1)#2{% + \gdef\@BTYPEoptf@ur{#1}% + \s@tk@rs@nsf@nt[\@BTYPEopt@ne]{\@BTYPEarg@ne}% + [\@BTYPEoptthr@@][\@BTYPEoptf@ur]{#2}% +} + +\def\setkorsansBTYPEBF#1{% + \s@tk@rs@nsf@nt[\@BTYPEopt@ne]{\@BTYPEarg@ne}% + [\@BTYPEoptthr@@]{#1}% +} + +\def\setkorsansBTYPEC({% + \@ifnextchar)\setkorsansBTYPECNO\setkorsansBTYPECYES +} + +\def\setkorsansBTYPED{% + \s@tk@rs@nsf@nt[\@BTYPEopt@ne][\@BTYPEopttw@]{\@BTYPEarg@ne}% +} + +\def\setkorsansBTYPECNO)#1{% + \s@tk@rs@nsf@nt[\@BTYPEopt@ne][\@BTYPEopttw@]{\@BTYPEarg@ne}% + []{#1}% +} + +\def\setkorsansBTYPECYES#1){% + \gdef\@BTYPEoptthr@@{#1}% + \@ifnextchar(\setkorsansBTYPEE\setkorsansBTYPEF +} + +\def\setkorsansBTYPEE(#1)#2{% + \gdef\@BTYPEoptf@ur{#1}% + \s@tk@rs@nsf@nt[\@BTYPEopt@ne][\@BTYPEopttw@]{\@BTYPEarg@ne}% + [\@BTYPEoptthr@@][\@BTYPEoptf@ur]{#2}% +} + +\def\setkorsansBTYPEF#1{% + \s@tk@rs@nsf@nt[\@BTYPEopt@ne][\@BTYPEopttw@]{\@BTYPEarg@ne}% + [\@BTYPEoptthr@@]{#1}% +} + +\def\setkorsansCTYPE*{ + \@ifnextchar(\setkorsansCTYPEALPHA\setkorsansCTYPEBETA +} + +\def\setkorsansCTYPEBETA#1{% + \s@tk@rs@nsf@nt*{#1}% +} + +\def\setkorsansCTYPEALPHA(#1){% + \gdef\@CTYPEopt@ne{#1}% + \@ifnextchar(\setkorsansCTYPEA\setkorsansCTYPEB +} + +\def\setkorsansCTYPEA(#1)#2{% + \gdef\@CTYPEopttw@{#1}% + \gdef\@CTYPEarg@ne{#2}% + \@ifnextchar(\setkorsansCTYPEC\setkorsansCTYPED +} + +\def\setkorsansCTYPEB#1{% + \gdef\@CTYPEarg@ne{#1}% + \@ifnextchar(\setkorsansCTYPEBA\setkorsansCTYPEBB +} + +\def\setkorsansCTYPEBB{% + \s@tk@rs@nsf@nt*[\@CTYPEopt@ne]{\@CTYPEarg@ne}% +} + +\def\setkorsansCTYPEBA({% + \@ifnextchar)\setkorsansCTYPEBNO\setkorsansCTYPEBYES +} + +\def\setkorsansCTYPEBNO)#1{% + \s@tk@rs@nsf@nt*[\@CTYPEopt@ne]{\@CTYPEarg@ne}% + []{#1}% +} + +\def\setkorsansCTYPEBYES#1){% + \gdef\@CTYPEoptthr@@{#1}% + \@ifnextchar(\setkorsansCTYPEBE\setkorsansCTYPEBF +} + +\def\setkorsansCTYPEBE(#1)#2{% + \gdef\@CTYPEoptf@ur{#1}% + \s@tk@rs@nsf@nt*[\@CTYPEopt@ne]{\@CTYPEarg@ne}% + [\@CTYPEoptthr@@][\@CTYPEoptf@ur]{#2}% +} + +\def\setkorsansCTYPEBF#1{% + \s@tk@rs@nsf@nt*[\@CTYPEopt@ne]{\@CTYPEarg@ne}% + [\@CTYPEoptthr@@]{#1}% +} + +\def\setkorsansCTYPEC({% + \@ifnextchar)\setkorsansCTYPECNO\setkorsansCTYPECYES +} + +\def\setkorsansCTYPED{% + \s@tk@rs@nsf@nt*[\@CTYPEopt@ne][\@CTYPEopttw@]{\@CTYPEarg@ne}% +} + +\def\setkorsansCTYPECNO)#1{% + \s@tk@rs@nsf@nt*[\@CTYPEopt@ne][\@CTYPEopttw@]{\@CTYPEarg@ne}% + []{#1}% +} + +\def\setkorsansCTYPECYES#1){% + \gdef\@CTYPEoptthr@@{#1}% + \@ifnextchar(\setkorsansCTYPEE\setkorsansCTYPEF +} + +\def\setkorsansCTYPEE(#1)#2{% + \gdef\@CTYPEoptf@ur{#1}% + \s@tk@rs@nsf@nt*[\@CTYPEopt@ne][\@CTYPEopttw@]{\@CTYPEarg@ne}% + [\@CTYPEoptthr@@][\@CTYPEoptf@ur]{#2}% +} + +\def\setkorsansCTYPEF#1{% + \s@tk@rs@nsf@nt*[\@CTYPEopt@ne][\@CTYPEopttw@]{\@CTYPEarg@ne}% + [\@CTYPEoptthr@@]{#1}% +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\setkormonofont{% + \@ifnextchar[\setkormonoATYPE{% + \@ifnextchar(\setkormonoBTYPE{% + \@ifnextchar*\setkormonoCTYPE\setkormonoDTYPE}}% +} + +\def\setkormonoATYPE[#1]#2{% + \gdef\@ATYPEopt@ne{#1}% + \gdef\@ATYPEarg@ne{#2}% + \@ifnextchar[\setkormonoATYPEA\setkormonoATYPEB +} + +\def\setkormonoATYPEA[#1]#2{% + \XKOV@XP\setmonohangulfont\XKOV@XP[\@ATYPEopt@ne]{\@ATYPEarg@ne}% + \setmonohanjafont[#1]{#2}% +} + +\def\setkormonoATYPEB{% + \XKOV@XP\setmonohangulfont\XKOV@XP[\@ATYPEopt@ne]{\@ATYPEarg@ne}% +} + +\def\setkormonoDTYPE#1{% + \gdef\@ATYPEarg@ne{#1}% + \@ifnextchar[\setkormonoDTYPEA\setkormonoDTYPEB +} + +\def\setkormonoDTYPEA[#1]#2{% + \setmonohangulfont{\@ATYPEarg@ne}% + \setmonohanjafont[#1]{#2}% +} + +\def\setkormonoDTYPEB{% + \setmonohangulfont{\@ATYPEarg@ne}% +} + +\def\setkormonoBTYPE(#1){% + \long\gdef\@BTYPEopt@ne{#1}% + \@ifnextchar(\setkormonoBTYPEA\setkormonoBTYPEB +} + +\def\setkormonoBTYPEA(#1)#2{% + \long\gdef\@BTYPEopttw@{#1}% + \long\gdef\@BTYPEarg@ne{#2}% + \@ifnextchar(\setkormonoBTYPEC\setkormonoBTYPED +} + +\def\setkormonoBTYPEB#1{% + \gdef\@BTYPEarg@ne{#1}% + \@ifnextchar(\setkormonoBTYPEBA\setkormonoBTYPEBB +} + +\def\setkormonoBTYPEBB{% + \s@tk@rm@n@f@nt[\@BTYPEopt@ne]{\@BTYPEarg@ne}% +} + +\def\setkormonoBTYPEBA({% + \@ifnextchar)\setkormonoBTYPEBNO\setkormonoBTYPEBYES +} + +\def\setkormonoBTYPEBNO)#1{% + \s@tk@rm@n@f@nt[\@BTYPEopt@ne]{\@BTYPEarg@ne}% + []{#1}% +} + +\def\setkormonoBTYPEBYES#1){% + \gdef\@BTYPEoptthr@@{#1}% + \@ifnextchar(\setkormonoBTYPEBE\setkormonoBTYPEBF +} + +\def\setkormonoBTYPEBE(#1)#2{% + \gdef\@BTYPEoptf@ur{#1}% + \s@tk@rm@n@f@nt[\@BTYPEopt@ne]{\@BTYPEarg@ne}% + [\@BTYPEoptthr@@][\@BTYPEoptf@ur]{#2}% +} + +\def\setkormonoBTYPEBF#1{% + \s@tk@rm@n@f@nt[\@BTYPEopt@ne]{\@BTYPEarg@ne}% + [\@BTYPEoptthr@@]{#1}% +} + +\def\setkormonoBTYPEC({% + \@ifnextchar)\setkormonoBTYPECNO\setkormonoBTYPECYES +} + +\def\setkormonoBTYPED{% + \s@tk@rm@n@f@nt[\@BTYPEopt@ne][\@BTYPEopttw@]{\@BTYPEarg@ne}% +} + +\def\setkormonoBTYPECNO)#1{% + \s@tk@rm@n@f@nt[\@BTYPEopt@ne][\@BTYPEopttw@]{\@BTYPEarg@ne}% + []{#1}% +} + +\def\setkormonoBTYPECYES#1){% + \gdef\@BTYPEoptthr@@{#1}% + \@ifnextchar(\setkormonoBTYPEE\setkormonoBTYPEF +} + +\def\setkormonoBTYPEE(#1)#2{% + \gdef\@BTYPEoptf@ur{#1}% + \s@tk@rm@n@f@nt[\@BTYPEopt@ne][\@BTYPEopttw@]{\@BTYPEarg@ne}% + [\@BTYPEoptthr@@][\@BTYPEoptf@ur]{#2}% +} + +\def\setkormonoBTYPEF#1{% + \s@tk@rm@n@f@nt[\@BTYPEopt@ne][\@BTYPEopttw@]{\@BTYPEarg@ne}% + [\@BTYPEoptthr@@]{#1}% +} + +\def\setkormonoCTYPE*{ + \@ifnextchar(\setkormonoCTYPEALPHA\setkormonoCTYPEBETA +} + +\def\setkormonoCTYPEBETA#1{% + \s@tk@rm@n@f@nt*{#1}% +} + +\def\setkormonoCTYPEALPHA(#1){% + \gdef\@CTYPEopt@ne{#1}% + \@ifnextchar(\setkormonoCTYPEA\setkormonoCTYPEB +} + +\def\setkormonoCTYPEA(#1)#2{% + \gdef\@CTYPEopttw@{#1}% + \gdef\@CTYPEarg@ne{#2}% + \@ifnextchar(\setkormonoCTYPEC\setkormonoCTYPED +} + +\def\setkormonoCTYPEB#1{% + \gdef\@CTYPEarg@ne{#1}% + \@ifnextchar(\setkormonoCTYPEBA\setkormonoCTYPEBB +} + +\def\setkormonoCTYPEBB{% + \s@tk@rm@n@f@nt*[\@CTYPEopt@ne]{\@CTYPEarg@ne}% +} + +\def\setkormonoCTYPEBA({% + \@ifnextchar)\setkormonoCTYPEBNO\setkormonoCTYPEBYES +} + +\def\setkormonoCTYPEBNO)#1{% + \s@tk@rm@n@f@nt*[\@CTYPEopt@ne]{\@CTYPEarg@ne}% + []{#1}% +} + +\def\setkormonoCTYPEBYES#1){% + \gdef\@CTYPEoptthr@@{#1}% + \@ifnextchar(\setkormonoCTYPEBE\setkormonoCTYPEBF +} + +\def\setkormonoCTYPEBE(#1)#2{% + \gdef\@CTYPEoptf@ur{#1}% + \s@tk@rm@n@f@nt*[\@CTYPEopt@ne]{\@CTYPEarg@ne}% + [\@CTYPEoptthr@@][\@CTYPEoptf@ur]{#2}% +} + +\def\setkormonoCTYPEBF#1{% + \s@tk@rm@n@f@nt*[\@CTYPEopt@ne]{\@CTYPEarg@ne}% + [\@CTYPEoptthr@@]{#1}% +} + +\def\setkormonoCTYPEC({% + \@ifnextchar)\setkormonoCTYPECNO\setkormonoCTYPECYES +} + +\def\setkormonoCTYPED{% + \s@tk@rm@n@f@nt*[\@CTYPEopt@ne][\@CTYPEopttw@]{\@CTYPEarg@ne}% +} + +\def\setkormonoCTYPECNO)#1{% + \s@tk@rm@n@f@nt*[\@CTYPEopt@ne][\@CTYPEopttw@]{\@CTYPEarg@ne}% + []{#1}% +} + +\def\setkormonoCTYPECYES#1){% + \gdef\@CTYPEoptthr@@{#1}% + \@ifnextchar(\setkormonoCTYPEE\setkormonoCTYPEF +} + +\def\setkormonoCTYPEE(#1)#2{% + \gdef\@CTYPEoptf@ur{#1}% + \s@tk@rm@n@f@nt*[\@CTYPEopt@ne][\@CTYPEopttw@]{\@CTYPEarg@ne}% + [\@CTYPEoptthr@@][\@CTYPEoptf@ur]{#2}% +} + +\def\setkormonoCTYPEF#1{% + \s@tk@rm@n@f@nt*[\@CTYPEopt@ne][\@CTYPEopttw@]{\@CTYPEarg@ne}% + [\@CTYPEoptthr@@]{#1}% +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\if@unfonts + \def\UnBatang{UnBatang} + \def\UnBatangBold{UnBatang-Bold} + \def\UnDotum{UnDotum} + \def\UnDotumBold{UnDotum-Bold} + \def\UnTaza{UnTaza} +\else +\if@nanumfonts + \setmainhangulfont{NanumMyeongjo} + \setsanshangulfont{NanumGothic} + \setmonohangulfont{NanumGothic} +\fi +\fi + +\def\s@tk@rm@inf@nt{% + \@ifnextchar*\s@setk@rmainf@nt\l@setk@rmainf@nt +} +\def\s@setk@rmainf@nt*{\SETKORMAINFONTEL} +\def\l@setk@rmainf@nt{\SETKORMAINFONT} + +\def\NOEXTSETKORMAINFONT{% + \let\hnjmainfont\kormainfont +} + +\def\RESstar{*} + +\newcommandtwoopt{\SETKORMAINFONTEL}[3][][]{% + \def\XKOV@externallocation{ExternalLocation}% + \@korfnt@externaltrue + \def\XKOV@kormain@regular{#3}% + \def\XKOV@kormain@bold{#1}% + \ifx#2\RESstar + \def\XKOV@kormain@italic{#3}% + \else + \def\XKOV@kormain@italic{#2}% + \fi + \def\XKOV@kormain@bolditalic{#2}% + \CallKorFont{main}% + \@korfnt@externaltrue + \@ifnextchar[\EXTSETKORMAINFONTEL\NOEXTSETKORMAINFONT +} + +\newcommandtwoopt{\EXTSETKORMAINFONTEL}[3][][]{% + \def\XKOV@externallocation{ExternalLocation}% + \@korfnt@externaltrue + \def\XKOV@hnjmain@regular{#3}% + \def\XKOV@hnjmain@bold{#1}% + \ifx#2\RESstar + \def\XKOV@hnjmain@italic{#3}% + \else + \def\XKOV@hnjmain@italic{#2}% + \fi + \def\XKOV@hnjmain@bolditalic{#2}% + \CallHnjFont{main}% + \@XKOV@extendcommandfalse +} + +\newcommandtwoopt{\SETKORMAINFONT}[3][][]{% + \def\XKOV@externallocation{}% + \@korfnt@externalfalse + \def\XKOV@kormain@regular{#3}% + \def\XKOV@kormain@bold{#1}% + \ifx#2\RESstar + \def\XKOV@kormain@italic{#3}% + \else + \def\XKOV@kormain@italic{#2}% + \fi + \def\XKOV@kormain@bolditalic{#2}% + \CallKorFont{main}% + \@korfnt@externaltrue + \@ifnextchar[\EXTSETKORMAINFONT\NOEXTSETKORMAINFONT +} + +\newcommandtwoopt{\EXTSETKORMAINFONT}[3][][]{% + \def\XKOV@externallocation{}% + \@korfnt@externalfalse + \def\XKOV@hnjmain@regular{#3}% + \def\XKOV@hnjmain@bold{#1}% + \ifx#2\RESstar + \def\XKOV@hnjmain@italic{#3}% + \else + \def\XKOV@hnjmain@italic{#2}% + \fi + \def\XKOV@hnjmain@bolditalic{#2}% + \CallHnjFont{main}% + \@XKOV@extendcommandfalse +} + +%%%%%%%%%%%%%%%%%%%%%%% sans + +\def\s@tk@rs@nsf@nt{% + \@ifnextchar*\s@setk@rsansf@nt\l@setk@rsansf@nt +} +\def\s@setk@rsansf@nt*{\SETKORSANSFONTEL} +\def\l@setk@rsansf@nt{\SETKORSANSFONT} + +\newcommandtwoopt{\SETKORSANSFONTEL}[3][][]{% + \def\XKOV@externallocation{ExternalLocation}% + \@korfnt@externaltrue + \def\XKOV@korsans@regular{#3}% + \def\XKOV@korsans@bold{#1}% + \ifx#2\RESstar + \def\XKOV@korsans@italic{#3}% + \else + \def\XKOV@korsans@italic{#2}% + \fi + \def\XKOV@korsans@bolditalic{#2}% + \CallKorFont{sans}% + \@korfnt@externaltrue + \@ifnextchar[\EXTSETKORSANSFONTEL\NOEXTSETKORSANSFONT +} + +\newcommandtwoopt{\EXTSETKORSANSFONTEL}[3][][]{% + \def\XKOV@externallocation{ExternalLocation}% + \@korfnt@externaltrue + \def\XKOV@hnjsans@regular{#3}% + \def\XKOV@hnjsans@bold{#1}% + \ifx#2\RESstar + \def\XKOV@hnjsans@italic{#3}% + \else + \def\XKOV@hnjsans@italic{#2}% + \fi + \def\XKOV@hnjsans@bolditalic{#2}% + \CallHnjFont{sans}% + \@XKOV@extendcommandfalse +} + +\newcommandtwoopt{\SETKORSANSFONT}[3][][]{% + \def\XKOV@externallocation{}% + \@korfnt@externalfalse + \def\XKOV@korsans@regular{#3}% + \def\XKOV@korsans@bold{#1}% + \ifx#2\RESstar + \def\XKOV@korsans@italic{#3}% + \else + \def\XKOV@korsans@italic{#2}% + \fi + \def\XKOV@korsans@bolditalic{#2}% + \CallKorFont{sans}% + \@korfnt@externaltrue + \@ifnextchar[\EXTSETKORSANSFONT\NOEXTSETKORSANSFONT +} + +\newcommandtwoopt{\EXTSETKORSANSFONT}[3][][]{% + \def\XKOV@externallocation{}% + \@korfnt@externalfalse + \def\XKOV@hnjsans@regular{#3}% + \def\XKOV@hnjsans@bold{#1}% + \ifx#2\RESstar + \def\XKOV@hnjsans@italic{#3}% + \else + \def\XKOV@hnjsans@italic{#2}% + \fi + \def\XKOV@hnjsans@bolditalic{#2}% + \CallHnjFont{sans}% + \@XKOV@extendcommandfalse +} + +\def\NOEXTSETKORSANSFONT{% + \let\hnjsansfont\korsansfont +} + +%%%%%%%%%%%%%%%%%%%%%%% mono + +\def\s@tk@rm@n@f@nt{% + \@ifnextchar*\s@setk@rmonof@nt\l@setk@rmonof@nt +} +\def\s@setk@rmonof@nt*{\SETKORMONOFONTEL} +\def\l@setk@rmonof@nt{\SETKORMONOFONT} + +\newcommandtwoopt{\SETKORMONOFONTEL}[3][][]{% + \def\XKOV@externallocation{ExternalLocation}% + \@korfnt@externaltrue + \def\XKOV@kormono@regular{#3}% + \def\XKOV@kormono@bold{#1}% + \def\XKOV@kormono@italic{#2}% + \def\XKOV@kormono@bolditalic{#2}% + \CallKorFontmono% + \@korfnt@externaltrue + \@ifnextchar[\EXTSETKORMONOFONTEL\NOEXTSETKORMONOFONT +} + +\newcommandtwoopt{\EXTSETKORMONOFONTEL}[3][][]{% + \setmonoscale{1.0}% + \def\XKOV@externallocation{ExternalLocation}% + \@korfnt@externaltrue + \def\XKOV@hnjmono@regular{#3}% + \def\XKOV@hnjmono@bold{#1}% + \def\XKOV@hnjmono@italic{#2}% + \def\XKOV@hnjmono@bolditalic{#2}% + \CallHnjFontmono% + \@XKOV@extendcommandfalse +} + +\newcommandtwoopt{\SETKORMONOFONT}[3][][]{% + \def\XKOV@externallocation{}% + \@korfnt@externalfalse + \def\XKOV@kormono@regular{#3}% + \def\XKOV@kormono@bold{#1}% + \def\XKOV@kormono@italic{#2}% + \def\XKOV@kormono@bolditalic{#2}% + \CallKorFontmono% + \@korfnt@externaltrue + \@ifnextchar[\EXTSETKORMONOFONT\NOEXTSETKORMONOFONT +} + +\newcommandtwoopt{\EXTSETKORMONOFONT}[3][][]{% + \setmonoscale{1.0}% + \def\XKOV@externallocation{}% + \@korfnt@externalfalse + \def\XKOV@hnjmono@regular{#3}% + \def\XKOV@hnjmono@bold{#1}% + \def\XKOV@hnjmono@italic{#2}% + \def\XKOV@hnjmono@bolditalic{#2}% + \CallHnjFontmono% + \@XKOV@extendcommandfalse +} + +\def\NOEXTSETKORMONOFONT{% + \let\hnjmonofont\korsansfont +} + +%% dummy call +\def\SetDefaultKorFonts{% +\if@unfonts +\if@korfnt@external + \ifx\XKOV@kormain@regular\undefined\def\XKOV@kormain@regular{UnBatang}\fi + \ifx\XKOV@kormain@bold\undefined\def\XKOV@kormain@bold{UnBatangBold}\fi + \ifx\XKOV@kormain@italic\undefined\def\XKOV@kormain@italic{UnBatang}\fi + \ifx\XKOV@kormain@bolditalic\undefined\def\XKOV@kormain@bolditalic{UnBatangBold}\fi + \ifx\XKOV@korsans@regular\undefined\def\XKOV@korsans@regular{UnDotum}\fi + \ifx\XKOV@korsans@bold\undefined\def\XKOV@korsans@bold{UnDotumBold}\fi + \ifx\XKOV@korsans@italic\undefined\def\XKOV@korsans@italic{UnDotum}\fi + \ifx\XKOV@korsans@bolditalic\undefined\def\XKOV@korsans@bolditalic{UnDotumBold}\fi + \ifx\XKOV@kormono@regular\undefined\def\XKOV@kormono@regular{UnTaza}\fi + \ifx\XKOV@kormono@bold\undefined\def\XKOV@kormono@bold{UnTaza}\fi + \ifx\XKOV@kormono@italic\undefined\def\XKOV@kormono@italic{UnTaza}\fi + \ifx\XKOV@kormono@bolditalic\undefined\def\XKOV@kormono@bolditalic{UnTaza}\fi +\else + \ifx\XKOV@kormain@regular\undefined\def\XKOV@kormain@regular{\UnBatang}\fi + \ifx\XKOV@kormain@bold\undefined\def\XKOV@kormain@bold{\UnBatangBold}\fi + \ifx\XKOV@kormain@italic\undefined\def\XKOV@kormain@italic{\UnBatang}\fi + \ifx\XKOV@kormain@bolditalic\undefined\def\XKOV@kormain@bolditalic{\UnBatangBold}\fi + \ifx\XKOV@korsans@regular\undefined\def\XKOV@korsans@regular{\UnDotum}\fi + \ifx\XKOV@korsans@bold\undefined\def\XKOV@korsans@bold{\UnDotumBold}\fi + \ifx\XKOV@korsans@italic\undefined\def\XKOV@korsans@italic{\UnDotum}\fi + \ifx\XKOV@korsans@bolditalic\undefined\def\XKOV@korsans@bolditalic{\UnDotumBold}\fi + \ifx\XKOV@kormono@regular\undefined\def\XKOV@kormono@regular{\UnTaza}\fi + \ifx\XKOV@kormono@bold\undefined\def\XKOV@kormono@bold{\UnTaza}\fi + \ifx\XKOV@kormono@italic\undefined\def\XKOV@kormono@italic{\UnTaza}\fi + \ifx\XKOV@kormono@bolditalic\undefined\def\XKOV@kormono@bolditalic{\UnTaza}\fi +\fi +\else\fi +} + +%%% dummy declaration, to avoid errors! +\if@unfonts +\s@tk@rm@inf@nt*{UnBatang} +\s@tk@rs@nsf@nt*{UnDotum} +\s@tk@rm@n@f@nt*{UnTaza} +\CallHnjDefault +\else +%\input TnX-xob-default.tex +\fi + +\AtBeginDocument{ + \ifx\XKOV@externallocation\undefined\def\XKOV@externallocation{ExternalLocation}\@korfnt@externaltrue\fi +%% \SetDefaultKorFonts +%% \CallKorFont{main}% +%% \CallKorFont{sans}% +%% \CallKorFontmono +} + +\endinput + +%%% 2013-09-27 : nounfonts set to default. +%%% 2012-12-31 : [unfonts], [nounfonts] +%%% 오전 1:21 2008-10-13 : xetexko-xobfont 작성 +%%% 오전 12:12 2008-11-09 : \setkor...font 명령 재작성 +%%% 오후 17:59 2008-12-02 : nowinname 옵션 추가 +%%% 오후 22:05 2008-12-02 : Italic 옵션에 (*) 추가 +%%% 오전 04:04 2008-12-08 : \XKOV@XP +%%% 오전 1:18 2009-08-25 : sans/mono bug fixed (thanks to DH Kim and YW Kim) +%%% 오전 12:22 2009-10-13 : 따옴표 설정을 xetexko에게. diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-amssymb.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-amssymb.sty new file mode 100644 index 00000000000..9d9578b44d2 --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-amssymb.sty @@ -0,0 +1,27 @@ +%% xob-amssymb.sty +%% +%% Copyright (c) 2007-2013 Kangsoo Kim <karnes at ktug org> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2006/05/20 or later. +%% +%% disable a few commands +%% +\def\DisablePreAmsCmds#1{% + \expandafter\ifx\csname #1\endcsname\undefined\else + \expandafter\let\csname #1\endcsname\relax\fi +} +\DisablePreAmsCmds{Finv} +\DisablePreAmsCmds{Game} +\DisablePreAmsCmds{beth} +\DisablePreAmsCmds{gimel} +\DisablePreAmsCmds{daleth} +% +\RequirePackage{amssymb} +% +\endinput diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-dotemph.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-dotemph.sty new file mode 100644 index 00000000000..ad4d1ca9960 --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-dotemph.sty @@ -0,0 +1,51 @@ +%% xob-dotemph.sty +%% +%% Copyright (c) 2007-2013 Kangsoo Kim <karnes at ktug org> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2006/05/20 or later. +%% +%% xob-dotemph +%% 2010-03-18 +%% 오전 9:01 2008-10-22 +%% xetexko-dotemph의 확장 +%% dhucs/hangul compatible (\dotemph, \circemph, \useremph) +%% ---------- +%% \useremph is different from xetexko's \useremph *** +%% +%% Updated for xetexko v2.1 +%% Kihwang Lee <leekh at ktug.org> +%% 2013.08.26 +%% +%%% from dhucs.sty +\def\circemph#1{\begingroup\def\dotemphchar{^^^^02da}\dotemph{#1}\endgroup} +\def\dhucs@useremph#1{\begingroup + \let\dotemphchar\useremphchar + \let\dotemphraise\useremphraisedim + \dotemph{#1}\endgroup} + +\def\useremph{% + \@ifnextchar[\@user@emph{% + \@ifnextchar*\@orig@useremph\@@user@emph}% +} + +\def\@orig@useremph*#1{\dhucs@useremph{#1}} + +\def\@user@emph[#1]#2#3{% + \def\useremphchar{#2}% + \def\useremphraisedim{#1}% + \dhucs@useremph{#3}% +} + +\def\@@user@emph#1#2{% + \def\useremphchar{#1}% + \def\useremphraisedim{6pt}% + \dhucs@useremph{#2}% +} + +\endinput diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-hyper.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-hyper.sty new file mode 100644 index 00000000000..154e8d3544d --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-hyper.sty @@ -0,0 +1,74 @@ +%% xob-hyper.sty +%% +%% Copyright (c) 2013 Kihwang Lee <leekh at ktug org> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2006/05/20 or later. +%% +%% Created for xetexko v2.1 +%% 2013.08.26 +%% +\AtBeginDocument{ + % for ulem package + \ifcsname UL@hook\endcsname \xetexkoulemsupport \fi + % for hyperref package + \@ifpackageloaded{hyperref}{\pdfstringdefDisableCommands{% + \let\dotemph\@firstofone + \let\makejosa\@secondoftwo + \let\jong\relax + \let\jung\relax + \let\rieul\relax + \let\latinalphs\relax + \let\hangulalphs\relax + \let\hanjaalphs\relax + \let\prevfontalphs\relax + \let\latinnums\relax + \let\hangulnums\relax + \let\hanjanums\relax + \let\prevfontnums\relax + \let\latinparens\relax + \let\hangulparens\relax + \let\hanjaparens\relax + \let\prevfontparens\relax + \let\latinquotes\relax + \let\hangulquotes\relax + \let\hanjaquotes\relax + \let\prevfontquotes\relax + \let\latinpuncts\relax + \let\hangulpuncts\relax + \let\hanjapuncts\relax + \let\prevfontpuncts\relax + \let\latinmarks\relax + \let\hangulmarks\relax + \let\hanjamarks\relax + \let\prevfontmarks\relax + \let\latincolons\relax + \let\hangulcolons\relax + \let\hanjacolons\relax + \let\prevfontcolons\relax + \let\latinhyphens\relax + \let\hangulhyphens\relax + \let\hanjahyphens\relax + \let\prevfonthyphens\relax + \let\latincjksymbols\relax + \let\hangulcjksymbols\relax + \let\hanjacjksymbols\relax + \let\prevfontcjksymbols\relax + \let\disablekoreanfonts\relax + \let\disablehangulspacing\relax + \let\disablehangulspacingandlinebreak\relax + \let\disableautojosa\relax + \let\disablecjksymbolspacing\relax + \let\japanese\relax + \let\chinese\relax + \let\Tchinese\relax + \let\Schinese\relax + }}{} +} + +\endinput diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-paralist.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-paralist.sty new file mode 100644 index 00000000000..d090882ab20 --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-paralist.sty @@ -0,0 +1,46 @@ +%% xob-paralist.sty +%% +%% Copyright (c) 2007-2013 Kangsoo Kim <karnes at ktug org> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2006/05/20 or later. +%% +%% paralist, +%% +\@ifpackageloaded{paralist}{}{\RequirePackage{paralist}} +\makeatletter +\def\pl@loop@{% + \ifx 가\pl@temp \def\@tempa{\pl@label\gana }\else + \ifx ㈎\pl@temp \def\@tempa{\pl@label\pgana }\else + \ifx ㉮\pl@temp \def\@tempa{\pl@label\ogana }\else + \ifx ㄱ\pl@temp \def\@tempa{\pl@label\jaso }\else + \ifx ㈀\pl@temp \def\@tempa{\pl@label\pjaso }\else + \ifx ㉠\pl@temp \def\@tempa{\pl@label\ojaso }\else + \ifx ⑴\pl@temp \def\@tempa{\pl@label\pnum }\else + \ifx ①\pl@temp \def\@tempa{\pl@label\onum }\else + \ifx ⒜\pl@temp \def\@tempa{\pl@label\peng }\else + \ifx ⓐ\pl@temp \def\@tempa{\pl@label\oeng }\else + \ifx ⅰ\pl@temp \def\@tempa{\pl@label\hroman}\else + \ifx Ⅰ\pl@temp \def\@tempa{\pl@label\hRoman}\else +%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifx A\pl@temp \def\@tempa{\pl@label\Alph }\else + \ifx a\pl@temp \def\@tempa{\pl@label\alph }\else + \ifx i\pl@temp \def\@tempa{\pl@label\roman }\else + \ifx I\pl@temp \def\@tempa{\pl@label\Roman }\else + \ifx 1\pl@temp \def\@tempa{\pl@label\arabic}\else + \ifx \@sptoken\pl@temp \let\@tempa\pl@space \else + \ifx \bgroup\pl@temp \let\@tempa\pl@group \else + \ifx \@@@\pl@temp \let\@tempa\@gobble \else + \let\@tempa\pl@other + \pl@hook + \fi\fi\fi\fi\fi\fi\fi\fi + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi + \@tempa} +\makeatother + +\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 new file mode 100644 index 00000000000..48950391112 --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-base.cls @@ -0,0 +1,559 @@ +%% File `oblivoir.cls` +%% +%% (C) Copyright 2006-2013 Kangsoo Kim <karnes at ktug org> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2006/05/20 or later. +%% +\ProvidesClass{oblivoir-base} + [2013/10/26 v0.4.3 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 +\newif\if@unfonts\@unfontsfalse +\DeclareOptionX{unfonts}{\@unfontstrue} +\DeclareOptionX{nounfonts}{\@unfontsfalse} +\DeclareOptionX{nanum}{\@unfontsfalse} +\DeclareOptionX{uset1font}{\PassOptionsToPackage{\CurrentOption}{nanumfontsel}} + +\DeclareOptionX{cjk}{\PassOptionsToPackage{\CurrentOption}{memhangul-ucs}} +\DeclareOptionX{dhucs}{\PassOptionsToPackage{\CurrentOption}{memhangul-ucs}} + +\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. +\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 + +%%% 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@unfonts + \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@unfonts + \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} +\renewcommand\afterchapskip{\onelineskip} +\renewcommand\beforechapskip{1.5\onelineskip} +\fi + +\renewcommand\cftsectionindent{0pt} +\ifnokorean\else +\renewcommand\cftsectionnumwidth{1.8em} +\renewcommand\cftsubsectionindent{1.8em} +\renewcommand\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 +\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} +\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 + +\endinput + +%%% ChangeLog: +%%% 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-xlua.cls b/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-xlua.cls new file mode 100644 index 00000000000..01b7d0a0757 --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-xlua.cls @@ -0,0 +1,487 @@ +%% File `oblivoir-xlua.cls` +%% +%% (C) Copyright 2006-2013 Kangsoo Kim <karnes at ktug org> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2006/05/20 or later. +%% +%% 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} + [2013/09/01 v0.4.5 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}} + +%%% active Options +\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@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}} +% +%%% 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\if@noinserts\@noinsertsfalse +\DeclareOptionX{noreserveinserts}{\@noinsertstrue} +% +\newif\ifPRELOAD\PRELOADfalse +\DeclareOptionX{preload}[]{\PRELOADtrue\def\PRELOADstr{#1}} +\def\PRELOADoptstr{} +\DeclareOptionX{preloadoption}[]{\def\PRELOADoptstr{#1}} + +%% [nounfonts] +\newif\if@unfonts\@unfontstrue +\DeclareOptionX{unfonts}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} +\DeclareOptionX{nounfonts}{\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 + \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 +\if@noinserts\else\reserveinserts{40}\fi + +%%% 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} + +%%% ifluaorxetex.sty +%\RequirePackage{iftex} +% +%\newif\ifLuaOrXeTeX +%\ifXeTeX\global\LuaOrXeTeXtrue +% \else\ifLuaTeX\global\LuaOrXeTeXtrue +% \else\global\LuaOrXeTeXfalse +%\fi\fi + +\ifx\XeTeX\undefined + \def\Xe{X\kern-.0833em\lower.5ex\hbox{\reflectbox{E}}} + \def\XeTeX{\Xe\kern-.1667em\TeX} + \def\XeLaTeX{\Xe\kern-0.0833em\LaTeX} +\fi + +%%\RequirePackage{comment} +%%\def\finemath@status{} + +%\ifxetex\else\ifluatex\else +% \PackageError{xoblivoir}{This Document requires Xe(La)TeX or Lua(La)TeX!}{} +%\fi\fi + +\def\@Load@Memhangul{% + \ifluatex + \usepackage[nonfrench,hangulpagestyle]{memhangul-x} + \else\ifxetex + \usepackage[nonfrench,hangulpagestyle]{memhangul-x} + \else + \usepackage[nonfrench,hangulpagestyle]{memhangul-x} + \fi\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 +\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 +\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} +\renewcommand\afterchapskip{\onelineskip} +\renewcommand\beforechapskip{1.5\onelineskip} +\fi + +\renewcommand\cftsectionindent{0pt} +\ifnokorean\else +\renewcommand\cftsectionnumwidth{1.8em} +\renewcommand\cftsubsectionindent{1.8em} +\renewcommand\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 + +\endinput + +%%% ChangeLog: +%%% 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 new file mode 100644 index 00000000000..82c2faa98db --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir.cls @@ -0,0 +1,23 @@ +%% File `oblivoir.cls` +%% +%% (C) Copyright 2006-2013 Kangsoo Kim <karnes at ktug org> +%% (C) Copyright 2013 Kihwang Lee <leekh at ktug org> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2006/05/20 or later. +%% +%% Read LICENSE included in the package. +%% +%% -------------------------------------------------------- +%% oblivoir.cls + +\ProvidesClass{oblivoir} + +\LoadClassWithOptions{xoblivoir} + +\endinput diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/xoblivoir.cls b/Master/texmf-dist/tex/latex/kotex-oblivoir/xoblivoir.cls new file mode 100644 index 00000000000..1723b2beada --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/xoblivoir.cls @@ -0,0 +1,50 @@ +%% File `xoblivoir.cls` +%% +%% (C) Copyright 2006-2013 Kangsoo Kim <karnes at ktug org> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2006/05/20 or later. +%% +\ProvidesClass{xoblivoir}[2013/10/26] + +\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} + +\newif\ifLuaOrXeTeX +\ifXeTeX\global\LuaOrXeTeXtrue + \else\ifLuaTeX\global\LuaOrXeTeXtrue + \else\global\LuaOrXeTeXfalse +\fi\fi + +\ifLuaOrXeTeX +\LoadClassWithOptions{oblivoir-xlua} +\typeout{HANGUL DRIVER: xetexko/luatexko running} +\else + \if@CJK + \LoadClassWithOptions{oblivoir-xlua} + \typeout{HANGUL DRIVER: cjk-ko running} + \else + \LoadClassWithOptions{oblivoir-base} + \typeout{HANGUL DRIVER: dhucs running} + \fi +\fi + +\endinput |