diff options
author | Norbert Preining <norbert@preining.info> | 2020-03-15 03:01:24 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2020-03-15 03:01:24 +0000 |
commit | 87cddce361c3b477029d13b27bdaa57190b2d74b (patch) | |
tree | 0b8f15ef416645c1438cdc4228a1ddb44691b17c /language/korean/kotex-oblivoir/tex/memhangul-x | |
parent | 942e56ba7d147d18d379305e76f064cec0aade7d (diff) |
CTAN sync 202003150301
Diffstat (limited to 'language/korean/kotex-oblivoir/tex/memhangul-x')
9 files changed, 1761 insertions, 0 deletions
diff --git a/language/korean/kotex-oblivoir/tex/memhangul-x/memhangul-x.sty b/language/korean/kotex-oblivoir/tex/memhangul-x/memhangul-x.sty new file mode 100644 index 0000000000..31a600349e --- /dev/null +++ b/language/korean/kotex-oblivoir/tex/memhangul-x/memhangul-x.sty @@ -0,0 +1,405 @@ +%% File `memhangul-x.sty` +%% +%% (C) Copyright 2006-2020 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{2020/02/05} +\def\fileversion{11.11} +\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}} +\DeclareOption{adjustmath}{\DisabledOption{adjustmath}} + +%%%% 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\@mathdisptrue +\DeclareOption{mathdisp}{\@mathdispfalse} + +\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}} +\DeclareOption{noto}{\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}} +\DeclareOption{noto}{\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}} +\DeclareOption{noto}{\DisableOption{noto}} +\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 + \@ifpackageloaded{luatexko}{}{\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.33} +\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/tex/memhangul-x/memucs-interword-x.sty b/language/korean/kotex-oblivoir/tex/memhangul-x/memucs-interword-x.sty new file mode 100644 index 0000000000..e033b74ce2 --- /dev/null +++ b/language/korean/kotex-oblivoir/tex/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/tex/memhangul-x/xetexko-var.sty b/language/korean/kotex-oblivoir/tex/memhangul-x/xetexko-var.sty new file mode 100644 index 0000000000..f8acc43a23 --- /dev/null +++ b/language/korean/kotex-oblivoir/tex/memhangul-x/xetexko-var.sty @@ -0,0 +1,73 @@ +%% xetexko-var.sty +%% +%% Copyright (c) 2007-2020 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} + [2020/02/05 v0.14 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} +\if@lwarp\else +\RequirePackage{xetexko-vertical} +\fi + +%%% 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/tex/memhangul-x/xob-amssymb.sty b/language/korean/kotex-oblivoir/tex/memhangul-x/xob-amssymb.sty new file mode 100644 index 0000000000..9d9578b44d --- /dev/null +++ b/language/korean/kotex-oblivoir/tex/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/tex/memhangul-x/xob-dotemph.sty b/language/korean/kotex-oblivoir/tex/memhangul-x/xob-dotemph.sty new file mode 100644 index 0000000000..87285578b2 --- /dev/null +++ b/language/korean/kotex-oblivoir/tex/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/tex/memhangul-x/xob-font.sty b/language/korean/kotex-oblivoir/tex/memhangul-x/xob-font.sty new file mode 100644 index 0000000000..cab543826d --- /dev/null +++ b/language/korean/kotex-oblivoir/tex/memhangul-x/xob-font.sty @@ -0,0 +1,694 @@ +%% xob-font.sty +%% +%% Copyright (c) 2014-2020 Kangsoo Kim <karnes at ktug org> +%% Copyright (c) 2017-2020 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 otef this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2006/05/20 or later. +%% +%% +%% oblivoir hangul/hanja font setting. +%% part of oblivoir +%% +\ProvidesPackage{xob-font}[2020/02/04 v0.8 select hangul/hanja fonts for oblivoir] + +%%% obsolete options: retain \if@.. conditions for backward compatibility +\newif\if@nowin\@nowinfalse +\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, +% FontFace = {bx}{n} {Font = {\_bold_font_name}}, +% FontFace = {bx}{it} {Font = {\_bold_font_name}}, +% FontFace = {m}{up} {Font = {\_regu_font_name}} + } + } + + \bool_if:nF \in_hanja_mode + { + \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 ] + } + +% \tl_set:Nx \l_tmpa_tl { \_font_feature_str, \_additional_feature_str } + + \cs:w set #1 hangulfont \cs_end: + [ \_font_feature_str, \_additional_feature_str, + FontFace = {bx}{n}{ Font={\_bold_font_name} , \_font_feature_str }, + FontFace = {m}{up}{ Font={\_regu_font_name} , \_font_feature_str } + ] + { \_regu_font_name } + + %%% \set_kor_sub_hanja_font will take more optional arguments, + %%% hence, this codes have to be located at the end of code block. + \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) +\else +%%% [hcr] adds [Script=Hangul] feature automatically. +\if@hcrfonts + \setkomainfont(HCRBatangLVT)(HCRBatangLVT-Bold)(HCRBatangLVT) + \setkosansfont(HCRDotumLVT)(HCRDotumLVT-Bold)(HCRDotumLVT) + \setkomonofont(HCRDotumLVT) +\else +\setkomainfont(UnBatang.ttf)(UnBatangBold.ttf)(UnGraphic.ttf) +\fi\fi + +\endinput + +%%% end of file `xob-font.sty` +%% CHANGES +%% v0.8 : suport fontspec’s FontFace feature. +%% v0.7 : Use \sys_if_engine_xetex and \sys_if_engine_luatex instead of xetex_if_engine and luatex_if_engine to be compatible with latest l3kernel. +%% v0.6 : HCR auto insert Script=Hangul, HAN disabled +%% v0.5 : [nanum] sets Bold, [nanumx] sets ExtraBold for NanumMyeongjo +%% 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/tex/memhangul-x/xob-hyper.sty b/language/korean/kotex-oblivoir/tex/memhangul-x/xob-hyper.sty new file mode 100644 index 0000000000..154e8d3544 --- /dev/null +++ b/language/korean/kotex-oblivoir/tex/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/tex/memhangul-x/xob-lwarp.sty b/language/korean/kotex-oblivoir/tex/memhangul-x/xob-lwarp.sty new file mode 100644 index 0000000000..bbfea75956 --- /dev/null +++ b/language/korean/kotex-oblivoir/tex/memhangul-x/xob-lwarp.sty @@ -0,0 +1,177 @@ +%% xob-lwarp.sty +%% +%% part of xoblivoir package bundle +%% 2020/02/09 +%% +\ProvidesPackage{xob-lwarp} + +\if@lwarp + \def\makerunningwidth#1#2{% + \expandafter\let\csname #1headrunwidth\endcsname\textwidth + \expandafter\let\csname #1footrunwidth\endcsname\textwidth + } + \def\makeheadposition#1#2#3#4#5{} + \def\copypagestyle#1#2{\makepagestyle{#1}} + \AtBeginDocument{ + \def\@partapp{Part} + \def\@chapapp{Chapter} + } + \AtEndPreamble{ + \HTMLLanguage{\LWARPlan} + } + + \let\if@bsstyle\iftrue + \let\abstitlestyle\textbf +% + %%%% copy-paste from xetexko-vertical.sty + \ifxetex + % do not veticalize headline/footline + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname selectfont\endcsname\relax % plain + \protected\def\verticaltypesetting{% + \dimen@\hsize\hsize\vsize\vsize\dimen@ + \edef\plainoutput{\unexpanded{\dimen@\hsize\hsize\vsize\vsize\dimen@}% + \unexpanded\expandafter{\plainoutput}}% + \def\pagebody{\setbox\z@\vbox to\hsize{\boxmaxdepth=\maxdepth + \pagecontents}\xetexko@rotatebox\z@\box\z@}% + \maxdepth\z@ \XK@vertical@spacing} + \else % latex + \protected\def\verticaltypesetting{% + \AtBeginDocument{\XK@vertical@spacing}% + \maxdepth\z@ + \dimen@\textwidth + \textwidth\textheight + \textheight\dimen@ + \edef\@outputpage{% + \unexpanded{\xetexko@rotatebox\@outputbox\textwidth\textheight}% + \unexpanded\expandafter{\@outputpage}}% + } + \@onlypreamble\verticaltypesetting + \fi + + \def\xetexko@rotatebox#1{% + \ifvbox#1\count@\@ne\else\count@\z@\fi + \dimen@\wd#1\dimen@ii\dimexpr\ht#1+\dp#1\relax + \setbox#1\ifnum\count@=\@ne + \vbox to\dimen@\bgroup\hbox to\dimen@ii\bgroup\hfil\else + \hbox to\dimen@ii\bgroup\vbox to\dimen@\bgroup\fi + \wd#1\z@ \ht#1\z@ \dp#1\z@ + \special{x:gsave}\special{x:rotate -90}\box#1\special{x:grestore}% + \ifnum\count@=\@ne\egroup\vfil\else\vfil\egroup\hfil\fi\egroup + } + + % users can declare vertical EM size, which might be different from 1em. + \newdimen\verticalem + + \def\XK@vertical@spacing{% + \ifnum\verticalem > \z@ + \def\XK@vert@half@em{.5\verticalem}% + \else + \def\XK@vert@half@em{.5em}% + \fi + \let\xk@horiz@precjkopenparen \precjkopenparen + \let\xk@horiz@precjkcloseparen\precjkcloseparen + \let\xk@horiz@precjkfullstop \precjkfullstop + \ifx\precjkopenparen\relax\else + \def\precjkopenparen {\leavevmode + \ifx\empty\xetexkocharraise\else\raise\xetexkocharraise\fi + \hbox + \ifx\XKdisablecjksymbolspacing\empty + \bgroup + \else + to\XK@vert@half@em \bgroup \hss + \fi + }% + \fi + \ifx\precjkcloseparen\relax\else + \def\precjkcloseparen{\leavevmode + \ifx\empty\xetexkocharraise\else\raise\xetexkocharraise\fi + \hbox + \ifx\XKdisablecjksymbolspacing\empty\else + to\XK@vert@half@em + \fi + \bgroup}% + \fi + \ifx\precjkfullstop\relax\else + \def\precjkfullstop {\leavevmode + \ifx\empty\xetexkocharraise\else\raise\xetexkocharraise\fi + \hbox + \ifx\XKdisablecjksymbolspacing\empty\else + to\XK@vert@half@em + \fi + \bgroup}% + \fi + \spaceskip\XK@vert@half@em plus\XK@vert@half@em\relax + \parindent\XK@vert@half@em \parindent2\parindent + } + + \protected\def\vertical#1{% + \setbox\z@\vbox\bgroup + \hsize=#1% + \leftskip\z@ + \rightskip\z@ + \parindent\z@ + \everypar{}% + \XK@vertical@spacing + } + + \protected\def\endvertical{% + \egroup + \dimen@\dimexpr\ht\z@+\dp\z@\relax + \dimen@ii\dimexpr\wd\z@-\dp\z@\relax + \setbox\z@\hbox{% + \kern\dimexpr\ht\z@+0.5em\relax + \wd\z@\z@ + \ht\z@\z@ + \dp\z@\z@ + \special{x:gsave}% + \special{x:rotate -90}% + \box\z@ + \special{x:grestore}}% + \wd\z@\dimen@ + \ht\z@\z@ + \dp\z@\z@ + \leavevmode + \raise\dimen@ii\box\z@ + } + + % horizontal box inside vertical typesetting + \protected\def\horizontal#1{% + \setbox\z@\vbox\bgroup + \hsize=#1% + \leftskip \z@ + \rightskip\z@ + \parindent\z@ + \everypar {}% + \spaceskip \fontdimen2\font + plus \fontdimen3\font + minus\fontdimen4\font + \ifdefined\xk@horiz@precjkopenparen + \let\precjkopenparen \xk@horiz@precjkopenparen + \let\precjkcloseparen\xk@horiz@precjkcloseparen + \let\precjkfullstop \xk@horiz@precjkfullstop + \fi + } + \protected\def\endhorizontal{% + \egroup + \dimen@\dimexpr\ht\z@+\dp\z@\relax + \dimen@ii\dimexpr\wd\z@+.5ex\relax + \setbox\z@\hbox\bgroup + \wd\z@\z@\ht\z@\z@\dp\z@\z@ + \special{x:gsave}% + \special{x:rotate 90}% + \box\z@ + \special{x:grestore}% + \egroup + \wd\z@\dimen@ + \ht\z@\dimen@ii + \dp\z@\z@ + \fboxsep=-\fboxrule + \leavevmode\lower.5ex\box\z@ + } + + \protected\def\vertlatin#1{\leavevmode\lower0.5ex\hbox{\latinmarks #1}} + \fi % end of vertical +\fi +\endinput + diff --git a/language/korean/kotex-oblivoir/tex/memhangul-x/xob-paralist.sty b/language/korean/kotex-oblivoir/tex/memhangul-x/xob-paralist.sty new file mode 100644 index 0000000000..534d2b8066 --- /dev/null +++ b/language/korean/kotex-oblivoir/tex/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 |