summaryrefslogtreecommitdiff
path: root/language/korean/kotex-oblivoir/memhangul-x
diff options
context:
space:
mode:
Diffstat (limited to 'language/korean/kotex-oblivoir/memhangul-x')
-rw-r--r--language/korean/kotex-oblivoir/memhangul-x/memhangul-x.sty401
-rw-r--r--language/korean/kotex-oblivoir/memhangul-x/memucs-interword-x.sty188
-rw-r--r--language/korean/kotex-oblivoir/memhangul-x/xetexko-var.sty71
-rw-r--r--language/korean/kotex-oblivoir/memhangul-x/xob-amssymb.sty27
-rw-r--r--language/korean/kotex-oblivoir/memhangul-x/xob-dotemph.sty75
-rw-r--r--language/korean/kotex-oblivoir/memhangul-x/xob-font.sty680
-rw-r--r--language/korean/kotex-oblivoir/memhangul-x/xob-hyper.sty74
-rw-r--r--language/korean/kotex-oblivoir/memhangul-x/xob-paralist.sty48
8 files changed, 1564 insertions, 0 deletions
diff --git a/language/korean/kotex-oblivoir/memhangul-x/memhangul-x.sty b/language/korean/kotex-oblivoir/memhangul-x/memhangul-x.sty
new file mode 100644
index 0000000000..787df1d0db
--- /dev/null
+++ b/language/korean/kotex-oblivoir/memhangul-x/memhangul-x.sty
@@ -0,0 +1,401 @@
+%% File `memhangul-x.sty`
+%%
+%% (C) Copyright 2006-2015 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{2015/10/05}
+\def\fileversion{11.10}
+\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}
+\newif\if@polyglos\@polyglosfalse
+\DeclareOption{polyglossia}{\@polyglostrue}
+
+\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}}
+\DeclareOption{nanum}{\PassOptionsToPackage{\CurrentOption}{xetexko-var}}
+\DeclareOption{hcr}{\PassOptionsToPackage{\CurrentOption}{xetexko-var}}
+\else\ifluatex
+%%% luatexko options
+\DeclareOption{gremph}{\PassOptionsToPackage{\CurrentOption}{xob-font}}
+\DeclareOption{itemph}{\PassOptionsToPackage{\CurrentOption}{xob-font}}
+%%% new option
+\DeclareOption{latinquote}{\PassOptionsToPackage{\CurrentOption}{xob-font}}
+\DeclareOption{oldhangul}{\PassOptionsToPackage{\CurrentOption}{xob-font}}
+\DeclareOption{manualfontspec}{\PassOptionsToPackage{\CurrentOption}{xob-font}}
+\DeclareOption{nowinname}{\PassOptionsToPackage{\CurrentOption}{xob-font}}
+\DeclareOption{unfonts}{\PassOptionsToPackage{\CurrentOption}{xob-font}}
+\DeclareOption{nounfonts}{\PassOptionsToPackage{\CurrentOption}{xob-font}}
+\DeclareOption{nanum}{\PassOptionsToPackage{\CurrentOption}{xob-font}}
+\DeclareOption{hcr}{\PassOptionsToPackage{\CurrentOption}{xob-font}}
+\else
+%%% pdftex options
+\ifPDFTeX
+\DeclareOption{gremph}{\DisabledOption{gremph}}
+\DeclareOption{itemph}{\DisabledOption{itemph}}
+\DeclareOption{latinquote}{\DisabledOption{latinquote}}
+\DeclareOption{oldhangul}{\DisabledOption{oldhangul}}
+\DeclareOption{manualfontspec}{\DisabledOption{manualfontspec}}
+\DeclareOption{nowinname}{\DisabledOption{nowinname}}
+\DeclareOption{unfonts}{\DisabledOption{unfonts}}
+\DeclareOption{nounfonts}{\DisabledOption{nounfonts}}
+\DeclareOption{nanum}{\DisabledOption{nanum}}
+\DeclareOption{hcr}{\DisabledOption{hcr}}
+\fi
+\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 \relax
+
+\if@polyglos
+ \RequirePackage{polyglossia}
+ \RequirePackage{xparse}
+%%% \sethangulfont{FONTNAME} or \sethangulfont[tt]{FONTNAME}[FEATURES]
+ \NewDocumentCommand\sethangulfont{omo}{%
+ \IfValueTF{#1}{%
+ \IfValueTF{#3}{%
+ \expandafter\newfontfamily\csname hangulfont#1\endcsname
+ {#2}[#3]}{%
+ \expandafter\newfontfamily\csname hangulfont#1\endcsname
+ {#2}}%
+ }%
+ {%
+ \IfValueTF{#3}{%
+ \newfontfamily\hangulfont{#2}[#3]%
+ }{%
+ \newfontfamily\hangulfont{#2}%
+ }%
+ }%
+ }
+\else
+\ifluatex
+ \RequirePackage{luatexko}
+ \RequirePackage{xob-font}
+ \RequirePackage{xob-dotemph}
+\else\ifxetex
+ \RequirePackage{xetexko-var}
+ \RequirePackage{xob-dotemph}
+ \else
+ \ifKOTEXCJK
+ \RequirePackage{cjkutf8-ko}
+% \else
+% \RequirePackage{dhucs}
+ \fi
+\fi\fi\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
+% 2015/10/05 : change \sethangulfont command for polyglossia
+% 2014/04/29 : fix a bug reported by Progress
+% 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 xob-font
+% 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/language/korean/kotex-oblivoir/memhangul-x/memucs-interword-x.sty b/language/korean/kotex-oblivoir/memhangul-x/memucs-interword-x.sty
new file mode 100644
index 0000000000..e033b74ce2
--- /dev/null
+++ b/language/korean/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/language/korean/kotex-oblivoir/memhangul-x/xetexko-var.sty b/language/korean/kotex-oblivoir/memhangul-x/xetexko-var.sty
new file mode 100644
index 0000000000..27768dbda6
--- /dev/null
+++ b/language/korean/kotex-oblivoir/memhangul-x/xetexko-var.sty
@@ -0,0 +1,71 @@
+%% xetexko-var.sty
+%%
+%% Copyright (c) 2007-2014 Kangsoo Kim <karnes at ktug org>
+%% Copyright (c) 2013 Kihwang Lee <leekh at ktug org>
+%%
+%% This work may be distributed and/or modified under the
+%% 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}
+ [2014/06/12 v0.13 Korean Typesetting under XeTeX]
+
+%%% common options for xob-font
+\DeclareOption{gremph}{\PassOptionsToPackage{\CurrentOption}{xob-font}}
+\DeclareOption{itemph}{\PassOptionsToPackage{\CurrentOption}{xob-font}}
+\DeclareOption{oldhangul}{\PassOptionsToPackage{\CurrentOption}{xob-font}}
+\DeclareOption{latinquote}{\PassOptionsToPackage{\CurrentOption}{xob-font}}
+\DeclareOption{nowinname}{\PassOptionsToPackage{\CurrentOption}{xob-font}}
+%%% for kolabels
+\newif\if@hangul
+\newif\if@hanja
+\DeclareOption{hangul}{\@hangultrue}
+\DeclareOption{hanja}{\@hangultrue\@hanjatrue}
+%%% for xob-fonts
+\newif\if@extfontspec\@extfontspecfalse
+\DeclareOption{manualfontspec}{\@extfontspectrue}
+
+%%% unfonts
+\DeclareOption{unfonts}{\PassOptionsToPackage{\CurrentOption}{xob-font}}
+\DeclareOption{nounfonts}{\PassOptionsToPackage{\CurrentOption}{xob-font}}
+\DeclareOption{nanum}{\PassOptionsToPackage{\CurrentOption}{xob-font}}
+\DeclareOption{hcr}{\PassOptionsToPackage{\CurrentOption}{xob-font}}
+\ProcessOptions\relax
+
+%%% xetexko sub-styles
+\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-font and configure Korean Fonts manually!}{}
+\else
+%%% We will never use xetexko/luatexko's unfonts option.
+ \newif\if@unfonts\@unfontsfalse
+ \RequirePackage{xob-font}
+\fi
+
+\RequirePackage{kolabels-utf}
+\if@hangul\AtBeginDocument{\RequirePackage{konames-utf}}\fi
+
+\endinput
+
+%%% 2014-06-12: new xob-font.sty
+%%% 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/language/korean/kotex-oblivoir/memhangul-x/xob-amssymb.sty b/language/korean/kotex-oblivoir/memhangul-x/xob-amssymb.sty
new file mode 100644
index 0000000000..9d9578b44d
--- /dev/null
+++ b/language/korean/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/language/korean/kotex-oblivoir/memhangul-x/xob-dotemph.sty b/language/korean/kotex-oblivoir/memhangul-x/xob-dotemph.sty
new file mode 100644
index 0000000000..87285578b2
--- /dev/null
+++ b/language/korean/kotex-oblivoir/memhangul-x/xob-dotemph.sty
@@ -0,0 +1,75 @@
+%% xob-dotemph.sty
+%%
+%% Copyright (c) 2007-2014 Kangsoo Kim <karnes at ktug org>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% 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
+%% 2014-06-15, \useremph redefined
+%% 2014-04-29
+%% 2010-03-18
+%% 오전 9:01 2008-10-22
+%% xetexko-dotemph의 확장
+%% dhucs/hangul compatible (\dotemph, \circemph, \useremph)
+%% ----------
+%% \useremph is different from kotex-utf's \useremph ***
+%%
+%% Updated for xetexko v2.1
+%% Kihwang Lee <leekh at ktug.org>
+%% 2013.08.26
+%%
+%%
+\protected\def\circemph#1{%
+ \begingroup
+ \def\dotemphchar{^^^^02da}\dotemph{#1}%
+ \endgroup
+}
+
+\def\xob@useremph#1{\begingroup
+ \let\dotemphchar\useremphchar
+ \let\dotemphraise\useremphraisedim
+ \dotemph{#1}\endgroup}
+
+%%%%% 2014/06/15
+%%%%% \useremph[dim][char]{letter}
+%%%%%
+\RequirePackage{xparse}
+
+\ExplSyntaxOn
+
+\dim_new:N \useremphraisedim \dim_set:Nn \useremphraisedim { 1ex }
+\tl_set:Nn \useremphchar { ^^^^02da }
+
+\DeclareDocumentCommand \useremph { o o m }
+{
+ \IfValueT { #1 }
+ {
+ \tl_if_empty:nF { #1 }
+ {
+ \settoheight \useremphraisedim { #3 }
+ \dim_add:Nn \useremphraisedim { #1 }
+ }
+ }
+
+ \IfValueT { #2 }
+ {
+ \tl_if_empty:nF { #2 }
+ {
+ \tl_set:Nn \useremphchar { #2 }
+ }
+ }
+ \xob@useremph { #3 }
+}
+
+\ExplSyntaxOff
+
+\def\useremphstarblack{\tiny★}
+\def\useremphstarwhite{\tiny☆}
+
+\endinput
diff --git a/language/korean/kotex-oblivoir/memhangul-x/xob-font.sty b/language/korean/kotex-oblivoir/memhangul-x/xob-font.sty
new file mode 100644
index 0000000000..16095498f7
--- /dev/null
+++ b/language/korean/kotex-oblivoir/memhangul-x/xob-font.sty
@@ -0,0 +1,680 @@
+%% xob-font.sty
+%%
+%% Copyright (c) 2014 Kangsoo Kim <karnes at ktug org>
+%% Copyright (c) 2017 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.
+%%
+%%
+%% oblivoir hangul/hanja font setting.
+%% part of oblivoir
+%%
+\ProvidesPackage{xob-font}[2017/02/03 v0.7 select hangul/hanja fonts for oblivoir]
+
+%%% obsolete options: retain \if@.. conditions for backward compatibility
+\newif\if@nowin\@nowinfalse
+\newif\if@latinquote\@latinquotefalse
+\newif\if@unfont\@unfontfalse
+\DeclareOption{nowinname}{}
+\DeclareOption{latinquote}{}
+\DeclareOption{unfonts}{\@unfonttrue}
+\DeclareOption{nounfonts}{\@unfontfalse}
+
+%%% active optoins
+\newif\if@oldhangul\@oldhangulfalse
+\DeclareOption{oldhangul}{\@oldhangultrue}
+\newif\if@gremph\@gremphtrue
+\DeclareOption{gremph}{\@gremphtrue}
+\DeclareOption{itemph}{\@gremphfalse}
+
+\newif\if@nanumfonts\@nanumfontsfalse
+\newif\if@nanumxfonts\@nanumxfontsfalse
+\DeclareOption{nanum}{\@nanumfontstrue}
+\DeclareOption{nanumx}{\@nanumfontstrue\@nanumxfontstrue}
+\newif\if@hcrfonts\@hcrfontsfalse
+\DeclareOption{hcr}{\@hcrfontstrue\@oldhangultrue}
+
+\ProcessOptions
+\relax
+
+\RequirePackage{xparse}
+\@ifclassloaded{oblivoir}{}{%
+ \RequirePackage{fontspec}
+ \RequirePackage{kotex}
+}
+
+\ExplSyntaxOn
+
+\sys_if_engine_xetex:T
+{
+ \RequirePackage{xetexko-space}
+ \RequirePackage{xetexko-font}
+}
+
+\if@gremph \bool_set_false:N \ital_fake_bool \else \bool_set_true:N \ital_fake_bool \fi
+\if@oldhangul \bool_set_true:N \hangulscript_bool \else \bool_set_false:N \hangulscript_bool \fi
+
+\bool_set_false:N \bold_prov_bool
+\bool_set_false:N \in_hanja_mode
+\bool_set_false:N \mono_mode
+
+\DeclareDocumentCommand \setmonoscale { m }
+{
+ \tl_set:Nn \_mono_scale { #1 }
+}
+
+\setmonoscale{0.95}
+
+\DeclareDocumentCommand \treat_feature_name_options { d() d() m o }
+{
+ \tl_set:Nn \_regu_font_name { #3 }
+
+ \IfValueTF { #1 }
+ {
+ \tl_set:Nn \_bold_font_name { #1 } \bool_set_true:N \bold_prov_bool
+ }
+ {
+ \tl_clear:N \_bold_font_name \bool_set_false:N \bold_prov_bool
+ }
+
+ \IfValueTF { #2 }
+ {
+ \tl_if_eq:nnTF { #2 } { * }
+ { \tl_set_eq:NN \_ital_font_name \_regu_font_name }
+ { \tl_set:Nn \_ital_font_name { #2 } }
+ }
+ {
+ \tl_set_eq:NN \_ital_font_name \_regu_font_name
+ }
+ \IfValueTF { #4 }
+ { \tl_set:Nn \_additional_feature_str { #4 } }
+ { \tl_clear:N \_additional_feature_str }
+
+ \bool_if:nTF { \mono_mode || \in_hanja_mode }
+ {
+ \tl_clear:N \_font_feature_str
+ }
+ {
+ \tl_set:Nn \_font_feature_str { Ligatures = TeX, }
+ }
+
+ \bool_if:nT \ital_fake_bool
+ {
+ \tl_if_eq:NNTF \_ital_font_name \_regu_font_name
+ {
+ \tl_put_right:Nn \_font_feature_str { AutoFakeSlant, }
+ }
+ {
+ \tl_put_right:Nn \_font_feature_str { ItalicFeatures = { FakeSlant = { 0.15 } }, }
+ }
+ \tl_put_right:Nn \_font_feature_str { BoldItalicFeatures = { FakeSlant = { 0.15 } }, }
+ }
+
+ \bool_if:nT \bold_prov_bool
+ {
+ \tl_put_right:Nn \_font_feature_str { BoldFont = \_bold_font_name,
+ BoldItalicFont = \_bold_font_name,
+ ItalicFont = \_ital_font_name, }
+ }
+
+ \bool_if:nF \in_hanja_mode
+ {
+ \bool_if:nT \hangulscript_bool
+ { \tl_put_right:Nn \_font_feature_str { Script = Hangul, } }
+ }
+
+ \bool_if:nT \mono_mode
+ {
+ \tl_put_right:Nn \_font_feature_str { Scale = \_mono_scale, }
+ }
+}
+
+\DeclareDocumentCommand \set_kor_sub_hanja_font { m d() d() m o }
+{
+ \bool_set_true:N \in_hanja_mode
+% \treat_feature_name_options ( #2 ) ( #3 ) { #4 } [ #5 ]
+ \IfValueTF { #2 }
+ {
+ \IfValueTF { #3 }
+ {
+ \treat_feature_name_options ( #2 ) ( #3 ) { #4 } [ #5 ]
+ }
+ {
+ \treat_feature_name_options ( #2 ) { #4 } [ #5 ]
+ }
+ }
+ {
+ \treat_feature_name_options { #4 } [ #5 ]
+ }
+ \setmainhanjafont [ \_font_feature_str, \_additional_feature_str ] { \_regu_font_name }
+
+ \sys_if_engine_luatex:T
+ {
+ \tl_if_exist:NT \hanjabyhanjafont
+ {
+ \AtBeginDocument { \hanjabyhanjafont 1 }
+ }
+ }
+}
+
+\DeclareDocumentCommand \setkorfont { m d() d() m o d() }
+{
+ \bool_set_false:N \in_hanja_mode
+
+ \str_if_eq:nnTF { #1 } { mono }
+ { \bool_set_true:N \mono_mode }
+ { \bool_set_false:N \mono_mode }
+
+ %%% when regular fontname contains "HCR", input [ Script=Hangul ] to font features.
+ \tl_if_in:nnT { #4 } { HCR }
+ { \bool_set_true:N \hangulscript_bool }
+ \tl_if_in:nnT { #4 } { hcr }
+ { \bool_set_true:N \hangulscript_bool }
+% \tl_if_in:nnT { #4 } { HAN }
+% { \bool_set_true:N \hangulscript_bool }
+ %%% the following three \tl_if_in's for \setkomainfont
+ \tl_if_in:NnT { #4 } { HCR }
+ { \bool_set_true:N \hangulscript_bool }
+ \tl_if_in:NnT { #4 } { hcr }
+ { \bool_set_true:N \hangulscript_bool }
+% \tl_if_in:NnT { #4 } { HAN }
+% { \bool_set_true:N \hangulscript_bool }
+
+ \IfValueTF { #2 }
+ {
+ \IfValueTF { #3 }
+ {
+ \treat_feature_name_options ( #2 ) ( #3 ) { #4 } [ #5 ]
+ }
+ {
+ \treat_feature_name_options ( #2 ) { #4 } [ #5 ]
+ }
+ }
+ {
+ \treat_feature_name_options { #4 } [ #5 ]
+ }
+
+ \cs:w set #1 hangulfont \cs_end:
+ [ \_font_feature_str, \_additional_feature_str ] { \_regu_font_name }
+
+ %%% \set_kor_sub_hanja_font will take more optional arguments,
+ %%% hence, this codes have to be located at the end of code block.
+ \IfValueT { #6 }
+ {
+ \set_kor_sub_hanja_font { #1 } ( #6 )
+ }
+}
+
+%%% new \setko(main|sans|mono)font
+%\bool_new:N \setko_bold_process \bool_set_false:N \setko_bold_process
+
+\NewDocumentCommand \process_set_korob_hanja { m o d() d() d() o }
+{
+ \IfValueTF { #2 }
+ {
+ \tl_set:Nn \ko_hanja_base_font_name { #2 }
+ \tl_set_eq:NN \ko_hanja_regu_font_name \ko_hanja_base_font_name
+ \tl_put_right:Nn \ko_hanja_regu_font_name { #3 }
+ \IfValueTF { #4 }
+ {
+ \tl_if_empty:nTF { #4 }
+ {
+ \tl_set_eq:NN \ko_hanja_bold_font_name \ko_hanja_regu_font_name
+ }
+ {
+ \tl_set_eq:NN \ko_hanja_bold_font_name \ko_hanja_base_font_name
+ \tl_put_right:Nn \ko_hanja_bold_font_name { #4 }
+ }
+ \bool_set_false:N \setko_hanja_bold_process
+ }
+ {
+% \tl_clear:N \ko_hanja_bold_font_name
+ \bool_set_true:N \setko_hanja_bold_process
+ }
+ \IfValueTF { #5 }
+ {
+ \tl_if_empty:nTF { #5 }
+ {
+ \tl_set_eq:NN \ko_hanja_ital_font_name \ko_hanja_regu_font_name
+ }
+ {
+ \tl_set_eq:NN \ko_hanja_ital_font_name \ko_hanja_base_font_name
+ \tl_put_right:Nn \ko_hanja_ital_font_name { #5 }
+ }
+ }
+ {
+ \tl_set_eq:NN \ko_hanja_ital_font_name \ko_hanja_regu_font_name
+ }
+ }
+ {
+ \tl_clear:N \ko_hanja_base_font_name
+ \tl_set:Nn \ko_hanja_regu_font_name { #3 }
+
+ \IfValueTF { #4 }
+ {
+ \tl_set:Nn \ko_hanja_bold_font_name { #4 }
+ \bool_set_false:N \setko_hanja_bold_process
+ }
+ {
+% \tl_clear:N \ko_hanja_bold_font_name
+ \bool_set_true:N \setko_hanja_bold_process
+ }
+
+ \IfValueTF { #5 }
+ {
+ \tl_set:Nn \ko_hanja_ital_font_name { #5 }
+ }
+ {
+ \tl_set_eq:NN \ko_hanja_ital_font_name \ko_hanja_regu_font_name
+ }
+ }
+
+ \IfValueTF { #6 }
+ {
+ \tl_set:Nn \ko_hanja_features { #6 }
+ }
+ {
+ \tl_clear:N \ko_hanja_features
+ }
+
+ \bool_if:nTF \setko_bold_process
+ {
+ \bool_if:nTF \setko_hanja_bold_process
+ {
+ \cs:w setkor #1 font \cs_end:
+ { \ko_regu_font_name }
+ [ \ko_features ]
+ \bool_if:nTF \ital_fake_bool
+ {
+ \cs:w set #1 hanjafont \cs_end:
+ [ \ko_hanja_features, AutoFakeSlant, BoldItalicFeatures={FakeSlant={0.15}} ]
+ { \ko_hanja_regu_font_name }
+ }
+ {
+ \cs:w set #1 hanjafont \cs_end:
+ [ \ko_hanja_features ]
+ { \ko_hanja_regu_font_name }
+ }
+ }
+ {
+ \cs:w setkor #1 font \cs_end:
+ { \ko_regu_font_name }
+ [ \ko_features ]
+ ( \ko_hanja_bold_font_name )
+ ( \ko_hanja_ital_font_name )
+ { \ko_hanja_regu_font_name }
+ [ \ko_hanja_features ]
+ }
+ }
+ {
+ \bool_if:nTF \setko_hanja_bold_process
+ {
+ \cs:w setkor #1 font \cs_end:
+ ( \ko_bold_font_name )
+ ( \ko_ital_font_name )
+ { \ko_regu_font_name }
+ \bool_if:nTF \ital_fake_bool
+ {
+ \cs:w set #1 hanjafont \cs_end:
+ [ \ko_hanja_features, AutoFakeSlant, BoldItalicFeatures={FakeSlant={0.15}} ]
+ { \ko_hanja_regu_font_name }
+ }
+ {
+ \cs:w set #1 hanjafont \cs_end:
+ [ \ko_hanja_features ]
+ { \ko_hanja_regu_font_name }
+ }
+ }
+ {
+ \cs:w setkor #1 font \cs_end:
+ ( \ko_bold_font_name )
+ ( \ko_ital_font_name )
+ { \ko_regu_font_name }
+ [ \ko_features ]
+ ( \ko_hanja_bold_font_name )
+ ( \ko_hanja_ital_font_name )
+ { \ko_hanja_regu_font_name }
+ [ \ko_hanja_features ]
+ }
+ }
+
+ \sys_if_engine_luatex:T
+ {
+ \tl_if_exist:NT \hanjabyhanjafont
+ {
+ \AtBeginDocument { \hanjabyhanjafont 1 }
+ }
+ }
+}
+
+\NewDocumentCommand \process_korob_only_hangul { m }
+{
+ \bool_if:nTF \setko_bold_process
+ {
+ \cs:w setkor #1 font \cs_end:
+ { \ko_regu_font_name }
+ [ \ko_features ]
+ }
+ {
+ \cs:w setkor #1 font \cs_end:
+ ( \ko_bold_font_name )
+ ( \ko_ital_font_name )
+ { \ko_regu_font_name }
+ [ \ko_features ]
+ }
+}
+
+\DeclareDocumentCommand \setkorfontxob { m o d() d() d() o o d() }
+{
+ \IfValueTF { #2 }
+ { \tl_set:Nn \ko_base_font_name { #2 }
+ \tl_set_eq:NN \ko_regu_font_name \ko_base_font_name
+ \tl_put_right:Nn \ko_regu_font_name { #3 }
+ \IfValueTF { #4 }
+ {
+ \tl_if_empty:nTF { #4 }
+ {
+ \tl_set_eq:NN \ko_bold_font_name \ko_regu_font_name
+ }
+ {
+ \tl_set_eq:NN \ko_bold_font_name \ko_base_font_name
+ \tl_put_right:Nn \ko_bold_font_name { #4 }
+ }
+ \bool_set_false:N \setko_bold_process
+ }
+ {
+% \tl_set_eq:NN \ko_bold_font_name \ko_regu_font_name
+ \bool_set_true:N \setko_bold_process
+ }
+ \IfValueTF { #5 }
+ {
+ \tl_if_empty:nTF { #5}
+ {
+ \tl_set_eq:NN \ko_ital_font_name \ko_regu_font_name
+ }
+ {
+ \tl_set_eq:NN \ko_ital_font_name \ko_base_font_name
+ \tl_put_right:Nn \ko_ital_font_name { #5 }
+ }
+ }
+ {
+ \tl_set_eq:NN \ko_ital_font_name \ko_regu_font_name
+ }
+ }
+ {
+ \tl_clear:N \ko_base_font_name
+ \tl_set:Nn \ko_regu_font_name { #3 }
+
+ \IfValueTF { #4 }
+ {
+ \tl_set:Nn \ko_bold_font_name { #4 }
+ \bool_set_false:N \setko_bold_process
+ }
+ {
+% \tl_set_eq:NN \ko_bold_font_name \ko_regu_font_name
+ \bool_set_true:N \setko_bold_process
+ }
+
+ \IfValueTF { #5 }
+ {
+ \tl_set:Nn \ko_ital_font_name { #5 }
+ }
+ {
+ \tl_set_eq:NN \ko_ital_font_name \ko_regu_font_name
+ }
+
+ }
+
+ \IfValueTF { #6 }
+ {
+ \tl_set:Nn \ko_features { #6 }
+ }
+ {
+ \tl_clear:N \ko_features
+ }
+
+ \IfValueTF { #7 }
+ {
+ \IfValueTF { #8 }
+ {
+ \process_set_korob_hanja { #1 } [ #7 ] ( #8 )
+ }
+ {
+ \process_set_korob_hanja { #1 } [ #7 ]
+ }
+ }
+ {
+ \IfValueTF { #8 }
+ {
+ \process_set_korob_hanja { #1 } ( #8 )
+ }
+ {
+ \process_korob_only_hangul { #1 }
+ }
+ }
+}
+
+%%% bracket version.
+\bool_set_false:N \ext_loc_bool
+
+\DeclareDocumentCommand \set_kor_font_orig_method_sub_hanja { m o m }
+{
+ \IfValueTF { #2 }
+ {
+ \cs:w set #1 hanjafont \cs_end: [ #2, \ext_loc_feature ] { #3 }
+ }
+ {
+ \cs:w set #1 hanjafont \cs_end: [ \ext_loc_feature ]{ #3 }
+ }
+ \bool_set_false:N \ext_loc_bool
+}
+
+\DeclareDocumentCommand \setkorfontorigmethod { m o m o }
+{
+ \bool_if:nTF \ext_loc_bool
+ {
+ \tl_set:Nn \ext_loc_feature { ExternalLocation, }
+ }
+ {
+ \tl_clear:N \ext_loc_feature
+ }
+ \IfValueTF { #2 }
+ {
+ \cs:w set #1 hangulfont \cs_end: [ #2, \ext_loc_feature ] { #3 }
+ }
+ {
+ \cs:w set #1 hangulfont \cs_end: [ \ext_loc_feature ] { #3 }
+ }
+
+ \IfValueTF { #4 }
+ {
+ \set_kor_font_orig_method_sub_hanja { #1 } [ #4 ]
+ }
+ {
+ \bool_set_false:N \ext_loc_bool
+ }
+}
+
+%%% starred version.
+\DeclareDocumentCommand \setkorfontorigstar { s m }
+{
+ \bool_set_true:N \ext_loc_bool
+ \setkorfontorigmethod { #2 }
+}
+
+%%% \setobmainfont
+\DeclareDocumentCommand \setxoblatinfont { m o d() d() d() o }
+{
+ \IfValueTF { #2 }
+ {
+ \tl_set:Nn \latin_base_font_name { #2 }
+ \tl_set_eq:NN \latin_regu_font_name \latin_base_font_name
+ \tl_put_right:Nn \latin_regu_font_name { #3 }
+ \IfValueTF { #4 }
+ {
+ \tl_if_empty:nTF { #4 }
+ {
+ \tl_set_eq:NN \latin_bold_font_name \latin_regu_font_name
+ }
+ {
+ \tl_set_eq:NN \latin_bold_font_name \latin_base_font_name
+ \tl_put_right:Nn \latin_bold_font_name { #4 }
+ }
+ \bool_set_false:N \setlatin_bold_process
+ }
+ {
+ \bool_set_true:N \setlatin_bold_process
+ }
+ \IfValueTF { #5 }
+ {
+ \tl_if_empty:nTF { #5}
+ {
+ \tl_set_eq:NN \latin_ital_font_name \latin_regu_font_name
+ }
+ {
+ \tl_set_eq:NN \latin_ital_font_name \latin_base_font_name
+ \tl_put_right:Nn \latin_ital_font_name { #5 }
+ }
+ \bool_set_false:N \setlatin_ital_process
+ }
+ {
+ \bool_set_true:N \setlatin_ital_process
+ }
+ }
+ {
+ \tl_clear:N \latin_base_font_name
+ \tl_set:Nn \latin_regu_font_name { #3 }
+
+ \IfValueTF { #4 }
+ {
+ \tl_set:Nn \latin_bold_font_name { #4 }
+ \bool_set_false:N \setlatin_bold_process
+ }
+ {
+ \bool_set_true:N \setlatin_bold_process
+ }
+
+ \IfValueTF { #5 }
+ {
+ \tl_set:Nn \latin_ital_font_name { #5 }
+ \bool_set_false:N \setlatin_ital_process
+ }
+ {
+ \bool_set_true:N \setlatin_ital_process
+ }
+
+ }
+
+ \tl_if_eq:nnTF { #1 } { mono }
+ {
+ \bool_set_true:N \latin_mono_mode
+ }
+ {
+ \bool_set_false:N \latin_mono_mode
+ }
+
+ \bool_if:nTF \latin_mono_mode
+ {
+ \tl_clear:N \latin_feature
+ }
+ {
+ \tl_set:Nn \latin_feature { Ligatures=TeX, }
+ }
+
+ \bool_if:nF \setlatin_bold_process
+ {
+ \tl_put_right:Nn \latin_feature {
+ BoldFont = { \latin_bold_font_name },
+ }
+ }
+
+ \bool_if:nF \setlatin_ital_process
+ {
+ \tl_put_right:Nn \latin_feature {
+ ItalicFont = { \latin_ital_font_name },
+ }
+ }
+
+ \IfValueT { #6 }
+ {
+ \tl_put_right:Nn \latin_feature { #6 }
+ }
+
+ \cs:w set #1 font \cs_end:
+ [ \latin_feature ]
+ { \latin_regu_font_name }
+
+}
+
+\ExplSyntaxOff
+
+%%% starred version commands are provided for backward compatibility.
+\protected\def\setkormainfont{%
+ \@ifstar{\setkorfontorigstar*{main}}{%
+ \@ifnextchar[{\setkorfontorigmethod{main}}{\setkorfont{main}}}}
+\protected\def\setkorsansfont{%
+ \@ifstar{\setkorfontorigstar*{sans}}{%
+ \@ifnextchar[{\setkorfontorigmethod{sans}}{\setkorfont{sans}}}}
+\protected\def\setkormonofont{%
+ \@ifstar{\setkorfontorigstar*{mono}}{%
+ \@ifnextchar[{\setkorfontorigmethod{mono}}{\setkorfont{mono}}}}
+
+%%% newly defined commands:
+%%% \setkomainfont[BASENAME](Regu)(Bold)(Ital)[Feature]%
+%%% [HJBASENAME](HJREGU)(HJBOLD)(HJITAL)[HJFeatures]
+%%% no spaces allowed between optional arguments, e.g., [...]*nospace*[...]
+\protected\def\setkomainfont{\setkorfontxob{main}}
+\protected\def\setkosansfont{\setkorfontxob{sans}}
+\protected\def\setkomonofont{\setkorfontxob{mono}}
+
+%%% \setobmainfont(regu)[features] = \setmainfont[features]{regu}
+\protected\def\setobmainfont{\setxoblatinfont{main}}
+\protected\def\setobsansfont{\setxoblatinfont{sans}}
+\protected\def\setobmonofont{\setxoblatinfont{mono}}
+
+%%% [unfonts] will be deprecated shortly.
+\if@unfont
+ \if@gremph
+ \setkomainfont(UnBatang.ttf)(UnBatangBold.ttf)(UnGraphic.ttf)[Script=Hangul]%
+ (UnBatang.ttf)(UnBatangBold.ttf)(UnBatang.ttf)[Script=Hangul]
+ \else
+ \setkomainfont(UnBatang.ttf)(UnBatangBold.ttf)(UnBatang.ttf)[Script=Hangul]
+ \fi
+ \setkosansfont[UnDotum](.ttf)(Bold.ttf)(.ttf)
+ \setmonoscale{1.05}
+ \setkomonofont(UnTaza.ttf)
+\fi
+
+\if@nanumfonts
+ \if@nanumxfonts
+ \setkomainfont(NanumMyeongjo)(*ExtraBold)(*)[](NanumGothic)(*Bold)
+ \else
+ \setkomainfont(NanumMyeongjo)(*Bold)(*)[](NanumGothic)(*Bold)
+ \fi
+ \setkosansfont(NanumGothic)(*Bold)(*)
+ \setkomonofont(NanumGothic)
+\fi
+
+%%% [hcr] adds [Script=Hangul] feature automatically.
+\if@hcrfonts
+ \setkomainfont(HCRBatangLVT)(*-Bold)(*)
+ \setkosansfont(HCRDotumLVT)(*-Bold)(*)
+ \setkomonofont(HCRDotumLVT)
+\fi
+
+\endinput
+
+%%% end of file `xob-font.sty`
+%% CHANGES
+%% v0.7 : Use \sys_if_engine_xetex and \sys_if_engine_luatex instead of xetex_if_engine and luatex_if_engine to be compatible with latest l3kernel.
+%% v0.6 : HCR auto insert Script=Hangul, HAN disabled
+%% v0.5 : [nanum] sets Bold, [nanumx] sets ExtraBold for NanumMyeongjo
+%% v0.4 : hangul_bold_exist && hanja_bold_no_exist bug fixed.
+%% v0.3 : \setobmainfont ( = \setmainfont ) introduced.
+%% v0.2 : do not insert [ Ligatures=TeX ] in mono_mode
diff --git a/language/korean/kotex-oblivoir/memhangul-x/xob-hyper.sty b/language/korean/kotex-oblivoir/memhangul-x/xob-hyper.sty
new file mode 100644
index 0000000000..154e8d3544
--- /dev/null
+++ b/language/korean/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/language/korean/kotex-oblivoir/memhangul-x/xob-paralist.sty b/language/korean/kotex-oblivoir/memhangul-x/xob-paralist.sty
new file mode 100644
index 0000000000..534d2b8066
--- /dev/null
+++ b/language/korean/kotex-oblivoir/memhangul-x/xob-paralist.sty
@@ -0,0 +1,48 @@
+%% 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}}
+\RequirePackage{iftex}
+\ifPDFTeX
+ \RequirePackage{dhucs-paralist}
+\else
+\def\pl@loop@{%
+ \ifx 가\pl@temp \def\@tempa{\pl@label\gana }\else
+ \ifx ㈎\pl@temp \def\@tempa{\pl@label\pgana }\else
+ \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}
+\fi
+\endinput