diff options
author | Karl Berry <karl@freefriends.org> | 2020-03-14 21:01:21 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-03-14 21:01:21 +0000 |
commit | 58c4ce1681c0ba0f511802729b1409b92a864617 (patch) | |
tree | 1979db7169a2800b64a53be8756252699f30e0d5 /Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-xl.cls | |
parent | 5539e90b9707a375e00782a39510a63435afd840 (diff) |
kotex-oblivoir (14mar20)
git-svn-id: svn://tug.org/texlive/trunk@54302 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-xl.cls')
-rw-r--r-- | Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-xl.cls | 531 |
1 files changed, 531 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-xl.cls b/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-xl.cls new file mode 100644 index 00000000000..c4ab0916fb1 --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-xl.cls @@ -0,0 +1,531 @@ +%% File `oblivoir-xl.cls` +%% +%% (C) Copyright 2006-2020 Kangsoo Kim <karnes at ktug org> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2006/05/20 or later. +%% +%% an oblivoir-compatible package for using with LuaLaTeX or XeLaTeX. +%% depends upon Dohyun Kim's xetexko and the author's memhangul-x. +%% +\ProvidesClass{oblivoir-xl} + [2020/02/05 v0.8.4 article-like class to typeset Korean] +%\typeout{A variant of oblivoir class for Lua- or XeLaTeX.} + +\providecommand\@DisabledOption[1]{% + \typeout{[#1] option is deprecated}} + +%\RequirePackage{xkeyval} +%% expl3 and xparse +%\RequirePackage{xparse} + +%%% Disabled Options +\DeclareOptionX{dvips}{\@DisabledOption{\CurrentOption}} +\DeclareOptionX{romanfixed}{\@DisabledOption{\CurrentOption}} +\DeclareOptionX{finemath}{\@DisabledOption{\CurrentOption}} +\DeclareOptionX{nofinemath}{\@DisabledOption{\CurrentOption}} +\DeclareOptionX{strictcharcheck}{\@DisabledOption{\CurrentOption}} +\DeclareOptionX{noreserveinserts}{\@DisabledOption{\CurrentOption}} + +%%% active Options +\newif\ifnokorean\nokoreanfalse +\DeclareOptionX{nokorean}{\nokoreantrue} +\newif\if@polyglossia\@polyglossiafalse +\DeclareOptionX{polyglossia}{\@polyglossiatrue} +\newif\iftwosidedoc\twosidedocfalse +\DeclareOptionX{twoside}{\twosidedoctrue} +\newif\ifopenrightdoc\openrightdocfalse +\DeclareOptionX{openright}{\openrightdoctrue} +\newif\ifkosection\kosectionfalse +\DeclareOptionX{kosection}{\kosectiontrue} +\newif\ifnobookmarks\nobookmarksfalse +\DeclareOptionX{nobookmarks}{\nobookmarkstrue} +\newif\ifhyperrefwithlyx\hyperrefwithlyxfalse +\DeclareOptionX{lyxhyper}{\hyperrefwithlyxtrue}{\hyperrefwithlyxfalse} +\newif\if@tendotfive\@tendotfivefalse +\DeclareOptionX{10.5pt}{\@tendotfivetrue} +\newif\if@koreanfn\@koreanfnfalse +\DeclareOptionX{footnote}{\@koreanfntrue} +\newif\if@toclofentry\@toclofentryfalse +\DeclareOptionX{tocentry}{\@toclofentrytrue} +%\newif\if@itemph\@itemphfalse +\DeclareOptionX{itemph}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} +\DeclareOptionX{gremph}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} +\newif\if@chapter\@chapterfalse +\DeclareOptionX{chapter}{\@chaptertrue\@toclofentrytrue} +\newif\if@microtype\@microtypefalse +\DeclareOptionX{microtype}{\@microtypetrue} +\newif\if@subfigure\@subfigurefalse +\DeclareOptionX{subfigure}{\@subfiguretrue} +\newif\if@manspace\@manspacefalse +\DeclareOptionX{obspace}{\@manspacetrue} +\DeclareOptionX{adjustmath}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} %%% disabled 2020 +\DeclareOptionX{mathdisp}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} +% +%%% new Options +\DeclareOptionX{latinquote}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} +%%% changed fontspec -> manualfontspec +\DeclareOptionX{fontspec}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} +\newif\if@moreverb\@moreverbfalse +\DeclareOptionX{moreverb}{\@moreverbtrue} +\newif\if@foursix\@foursixfalse\newlength\fa@setheight\newlength\fa@setwidth +\DeclareOptionX{faht}[]{\fa@setheight=#1\@foursixtrue} +\DeclareOptionX{fawd}[]{\fa@setwidth=#1\@foursixtrue} +\newif\if@amsmath\@amsmathfalse +\DeclareOptionX{amsmath}{\@amsmathtrue} +\DeclareOptionX{nowinname}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} +% +\newif\ifPRELOAD\PRELOADfalse +\DeclareOptionX{preload}[]{\PRELOADtrue\gdef\PRELOADstr{#1}} + +\ExplSyntaxOn +\tl_new:N \g_preload_option_str +\DeclareOptionX{preloadoption}[]{ + \tl_gset:Nn \g_preload_option_str { #1 } +} +\ExplSyntaxOff + +\newif\if@lwarp\@lwarpfalse +\DeclareOptionX{lwarp}{\@lwarptrue}{\@lwarpfalse} +\ExplSyntaxOn +\tl_new:N \g_lwarp_option_str +\DeclareOptionX{lwarpoption}[]{% + \tl_gset:Nn \g_lwarp_option_str { #1 } +} +\ExplSyntaxOff +\def\LWARPlan{en-US} +\DeclareOptionX{lwarplanguage}[]{\gdef\LWARPlan{#1}} + +%% [nounfonts] +\DeclareOptionX{unfonts}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} +\DeclareOptionX{nounfonts}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} +\DeclareOptionX{nanum}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} +\DeclareOptionX{hcr}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} + +\DeclareOptionX{figtabcapt}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} + +\DeclareOptionX{cjk}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} +%\DeclareOptionX{cjkoption}[]{\PassOptionsToPackage{#1}{cjkutf8-ko}} +\DeclareOptionX{dhucs}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} + +%%% compatibility options +\DeclareOptionX{uset1font}{\PassOptionsToPackage{usecjkt1font}{cjkutf8-ko}} +\DeclareOptionX{usedotemph}{\PassOptionsToPackage{\CurrentOption}{memhangul-x}} + +%%% +\DeclareOptionX*{% + \PassOptionsToClass{\CurrentOption}{memoir}% +} +% +\ProcessOptionsX + +%%% moreverb +\if@moreverb + \RequirePackage{moreverb} +\fi + +%%% preload +\ifPRELOAD +\ExplSyntaxOn + \RequirePackage[\g_preload_option_str]{\PRELOADstr} +\ExplSyntaxOff +\ifx\medspace\undefined\relax\else\let\medspace\relax\fi +\fi + +%% LyX compatibility +%\ifx\@textsubscript\undefined\else +% \let\@textsubscript\relax +%\fi + +%%% memoir/memhangul-ucs 로드. +\if@chapter + \LoadClass[openany]{memoir} +\else +\iftwosidedoc + \LoadClass[article,openany]{memoir} +\else + \LoadClass[article,openany,oneside]{memoir} +\fi +\fi + +%%% fontspec problem +% \RequirePackage{etex}\reserveinserts{40}% + +%%% workaround with flowfram +\if@foursix + \newcommand*{\fa@dblfoursix}{\stockheight=\fa@setheight \stockwidth=\fa@setwidth} + \fa@dblfoursix +\fi + +%%% +\ifopenrightdoc\openright\fi + +\RequirePackage{ifluatex} +\RequirePackage{ifxetex} + +%%\RequirePackage{comment} +%%\def\finemath@status{} + +%\ifxetex\else\ifluatex\else +% \PackageError{xoblivoir}{This Document requires Xe(La)TeX or Lua(La)TeX!}{} +%\fi\fi + +%%% lwarp +\ExplSyntaxOn + +\if@lwarp + \ifluatex + \RequirePackage{luatexko} + \fi + \RequirePackage[\g_lwarp_option_str]{lwarp} + \RequirePackage{xob-lwarp} +\fi + +\ExplSyntaxOff + +%%% ams{math|symb} +\if@amsmath + \RequirePackage{amsmath,xob-amssymb} +\fi + +\def\@Load@Memhangul{% + \if@polyglossia + \RequirePackage[polyglossia]{memhangul-x} + \else + \RequirePackage[nonfrench,hangulpagestyle]{memhangul-x} + \fi +} + +\ifnokorean\else + \@Load@Memhangul +\fi + +\if@chapter\else + \counterwithout{section}{chapter} +\fi + +%%% +%%% xetex doesn't know microtype, +%%% but xetexko has hangingpunctuation feature, which +%%% we will use instead. +%%% +\ifnokorean\else +\if@microtype + \ifxetex + \usepackage{xetexko-hanging} + \AtBeginDocument{\hangingpunctuation} + \typeout {xoblivoir: use xetexko-hanging instead of microtype} + \else +% \ifluatex +% \enablemicrotype +% \fi + \fi +\fi +\fi + +%%% 기본 자간 +\newdimen\ob@hu % 1jw=.95em, 1hu=1/16jw. see hfontspec.oblivoir +\ifnokorean\ob@hu=\z@\else\ob@hu=.059375em\fi +%%% defaultskip: suppressed (2015/04/19) +\if@manspace +\def\ob@DEFAULTskips{% + \def\memucshangulskips{}% + \def\memucsinterwordskip{% + \spaceskip = .390\BASE@FONTsize plus .1\BASE@FONTsize minus .1\BASE@FONTsize +% \if@nonfrench + \xspaceskip = .432\BASE@FONTsize plus .11\BASE@FONTsize minus .1\BASE@FONTsize +% \fi + }% + \def\memucsinterwordchapterskip{% + \spaceskip = .41\BASE@FONTsize plus .11\BASE@FONTsize minus .1\BASE@FONTsize +% \if@nonfrench + \xspaceskip = .55\BASE@FONTsize plus .1\BASE@FONTsize minus .1\BASE@FONTsize +% \fi + }% +} +\let\DEFAULTskips\ob@DEFAULTskips +\else +\let\memucshangulskips\relax +\let\memucsinterwordskip\relax +\let\memucsinterwordchapterskip\relax +\let\DEFAULTskips\relax +\fi +\def\ob@thinthinspace{\hskip2\ob@hu} +\def\ob@onethirdspace{\hskip5\ob@hu} + +\ifnokorean\else +\if@koreanfn +%%% footnote setting +%%% 99)에 해당하는 박스 길이를 구한 다음 +\newsavebox\mytmpbox\sbox\mytmpbox{\footnotesize 99)\ } +%%% 각주 번호 박스를 길이에 대하여 오른쪽 정렬함. 두 자리 +%%% 각주 번호 기준으로 오른쪽 정렬되도록 만든다. +\footmarkstyle{\makebox[\wd\mytmpbox][r]{#1)\ }} +\setlength\footmarksep{\wd\mytmpbox} +\setlength\footmarkwidth{0pt} +\setlength\footparindent{0pt} +%\ifnokorean\else +\SetFnmark{\textsuperscript}{\textsuperscript{)}} +%\fi +\fi\fi +%%% footnotes and floats. codes from memmanadd.pdf +\renewcommand*{\footnoterule}{\kern-3pt\vfill + \hrule width 0.4\columnwidth \kern 2.6pt} +\setlength{\skip\footins}{1.3\onelineskip} + +%%% toc 등의 레이아웃. +\if@chapter\else +\renewcommand\chaptitlefont{\Large\bfseries} +\renewcommand\printchapternonum{} +\renewcommand\printchaptertitle[1]{\chaptitlefont #1} +\setlength\afterchapskip{\onelineskip} +\setlength\beforechapskip{1.5\onelineskip} +\fi + +\setlength\cftsectionindent{0pt} +\ifnokorean\else +\setlength\cftsectionnumwidth{1.8em} +\setlength\cftsubsectionindent{1.8em} +\setlength\cftsubsectionnumwidth{2.5em} +\fi +\if@chapter\else +\let\cftchapterindent\cftsectionindent +\let\cftchapternumwidth\cftsectionnumwidth +\let\cftbeforechapterskip\cftbeforesectionskip +\fi + +\renewcommand\cftsectionpresnum{\hfill} +\renewcommand\cftsectionaftersnum{\hskip.8em} + +%% moved kscntformat to memhangul-x +%%%% kscntformat +%%%% HLaTeX의 \kscntformat 명령을 흉내냄 +%%%% \kscntformat{section}{제}{절} 형식으로 쓴다. +%\newsavebox{\tmp@XXbox} +%\newdimen\tmp@XXdim +%\def\kscntformat#1#2#3{% +% \sbox{\tmp@XXbox}{#2\expandafter\number\csname c@#1\endcsname#3}% +% \setlength\tmp@XXdim{\wd\tmp@XXbox}\advance\tmp@XXdim by1em% +% \expandafter\def\csname the#1\endcsname{#2\expandafter\number\csname c@#1\endcsname#3}% +% \expandafter\renewcommand\csname cft#1numwidth\endcsname{\tmp@XXdim}% +% \expandafter\renewcommand\csname cft#1presnum\endcsname{}% +% \expandafter\renewcommand\csname cft#1aftersnum\endcsname{}% +%} + +%\ifnokorean\else +%\ifkosection +%\kscntformat{section}{제}{절} +%\renewcommand\thesubsection{\arabic{section}.\arabic{subsection}} +%\fi\fi + +%%% misc settings +\raggedbottom +\ifnokorean +\renewcommand\sectionmark[1]{\markboth{\thetitle}{#1}} +\else +\renewcommand\sectionmark[1]{\markboth{\thetitle}{#1}} +\fi +%\renewcommand\subsectionmark[1]{\markright{#1}} +\ifnokorean +\newcommand*\MarkDocTitle{\markboth{\thetitle}{}} +\else +\newcommand*\MarkDocTitle{\markboth{\thetitle}{}} +\fi + +%%% for bookmarks and hyperref +\def\CallHyperref{% + \ifnobookmarks + \@Call@Hyperref@Without@Bookmarks + \else + \@Call@Hyperref@With@Bookmarks + \fi +} + +\def\@Call@Hyperref@Without@Bookmarks{% + \ifluatex + \usepackage[unicode,bookmarks=false]{hyperref} + \else\ifxetex + \usepackage[bookmarks=false]{hyperref} + \else + \usepackage[unicode,bookmarks=false]{hyperref} + \fi\fi +} + +\def\@Call@Hyperref@With@Bookmarks{% + \ifluatex + \usepackage[unicode]{hyperref} + \else\ifxetex + \usepackage{hyperref} + \else + \usepackage[unicode]{hyperref} + \fi\fi +} + +%% LyX 1.6.x의 Insert-Hyperlink 기능과 충돌하지 않게 하기 위하여 +%% hyperref을 로드하지 않음. (lyxhyper 옵션) +%% note: memhfixc는 memoir 자신이 로드해준다. +\ifnokorean\relax\else + \ifhyperrefwithlyx\relax\else + \CallHyperref +\fi\fi + +%%% \engtxt를 일일이 쓰기 귀찮고 space가 하나밖에 없을 때 +%%% 쓰기 위한 \ensp 매크로. +\newskip\@ensp +\@ensp=.297em plus .02em minus .01em +\def\ensp{\hskip\@ensp} + +%%% article의 pagestyle 기본값은 plain임. +\pagestyle{plain} + +%%% 2006/09/01 \title, \author 문제. reported by IsCho +\AtBeginDocument{% + \@ifundefined{thetitle}{\title{}}{\relax} + \@ifundefined{theauthor}{\author{}}{\relax} +} + +%%% 2006/09/05 [10.5pt] option, [romanfixed] 2006/10/22. +\if@tendotfive + \RequirePackage{10_5} +\fi + +%%%% 2006/10/19. 현범석 님이 지적한 lof, toc 문제 +\if@chapter\else + \usepackage{ob-toclof} +\fi + +%%% oblivoir-chapter (12/20) +\if@chapter +\newcommand\oblivoirchapterstyle[1]{% + \chapterstyle{#1} + \renewcommand{\chapterheadstart}{\clearforchapter\vspace*{\beforechapskip}} +} +\fi + +%%%%%%%%%%%%% APPENDIX + +\ifnokorean\def\appendixrefname{Appendix}\else\def\appendixrefname{부록}\fi +\def\appref#1{\appendixrefname~\ref{#1}} + +\newif\if@AppendixTitleToToc\@AppendixTitleToTocfalse +\newif\if@AttachAppendixTitleToSecnum\@AttachAppendixTitleToSecnumfalse + +\def\AppendixTitleToToc{% + \@AppendixTitleToToctrue +} + +\def\AttachAppendixTitleToSecnum{% + \@AttachAppendixTitleToSecnumtrue +} + +\def\AppendixTitle{% + \chapter*{\appendixname} +} + +\ifnokorean +\usepackage{ob-nokoreanappendix} +\else +\usepackage{ob-koreanappendix} +\fi + +%%%%%%%%%%%%%%% enumerate +\@ifpackageloaded{enumerate}{}{\RequirePackage{enumerate}} +\def\@enloop@{% +%%% why @enhook doesn't work? + \ifx 가\@entemp \def\@tempa{\@enLabel\gana }\else + \ifx ㈎\@entemp \def\@tempa{\@enLabel\pgana }\else + \ifx ㉮\@entemp \def\@tempa{\@enLabel\ogana }\else + \ifx ㄱ\@entemp \def\@tempa{\@enLabel\jaso }\else + \ifx ㈀\@entemp \def\@tempa{\@enLabel\pjaso }\else + \ifx ㉠\@entemp \def\@tempa{\@enLabel\ojaso }\else + \ifx ⑴\@entemp \def\@tempa{\@enLabel\pnum }\else + \ifx ①\@entemp \def\@tempa{\@enLabel\onum }\else + \ifx ⒜\@entemp \def\@tempa{\@enLabel\peng }\else + \ifx ⓐ\@entemp \def\@tempa{\@enLabel\oeng }\else + \ifx ⅰ\@entemp \def\@tempa{\@enLabel\hroman}\else + \ifx Ⅰ\@entemp \def\@tempa{\@enLabel\hRoman}\else +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifx A\@entemp \def\@tempa{\@enLabel\Alph }\else + \ifx a\@entemp \def\@tempa{\@enLabel\alph }\else + \ifx i\@entemp \def\@tempa{\@enLabel\roman }\else + \ifx I\@entemp \def\@tempa{\@enLabel\Roman }\else + \ifx 1\@entemp \def\@tempa{\@enLabel\arabic}\else + \ifx \@sptoken\@entemp \let\@tempa\@enSpace \else + \ifx \bgroup\@entemp \let\@tempa\@enGroup \else + \ifx \@enum@\@entemp \let\@tempa\@gobble \else + \let\@tempa\@enOther + \@enhook + \fi\fi\fi\fi\fi\fi\fi\fi + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi + \@tempa} + +%%% subsection까지 항번을 붙이고 toc에 두자. +\maxtocdepth{subsection} +\maxsecnumdepth{subsection} + +%%% oblivoirallowbreak +\ifx\oblivoirallowbreak\undefined +\def\oblivoirallowbreak{\hskip1sp\hskip-1sp} +\fi + +%%% subfigure package compatibility +\if@subfigure + \let\c@lofdepth\relax + \let\c@lotdepth\relax +\fi + +%%% redefine \see or \seealso +\ifnokorean\else +\@ifundefined{see}{}{% + \renewcommand*{\see}[2]{#1\seename, \hyperpage{#2}} +} +\@ifundefined{seealso}{}{% + \renewcommand*{\seealso}[2]{#1\alsoname, \hyperpage{#2}} +} +\fi + +%%% to avoid conflicts with etextools +\ExplSyntaxOn +\cs_if_exist:NF \globcount +{ \let\globcount\newcount } +\ExplSyntaxOff + +%%% for LaTeX programmers +\let\ifLwarp\if@lwarp + +\endinput + +%%% ChangeLog: +%%% 2015-10-19 : fix conflicts with etextools package. +%%%% 2015-08-01 : drop etex.sty +%%% 2015-07-27 : fix nokorean bug +%%% 2015-07-10 : etex-pkg conflicts fixed. +%%% 2015-04-19 : suppress space factors +%%% 2014-06-12 : introduce new xob-font.sty +%%% 2014-06-06 : replace false \renewcommand with \setlength +%%% 2013-10-26 : moved \kscntformat definition to memhangul. +%%% 2013-09-12 : integrate ifluaorxetex.sty +%%% 2013-09-01 : [cjk], [dhucs] option introduced. +%%% 2011-09-26 : [preloadoption] bugfix. +%%% 2011-09-15 : [fontspec] renamed to [manualfontspec]; and intrudoce [fontspec, xcolor, hyperref, preloadoption] +%%% 2010-09-16 : reserveinserts, lyx compatibility etc. (for TeX Live 2010) +%%% 08:46 2010-02-09 : [microtype] -> hanging punctuation (xetexko) +%%% 10:16 2009-10-27 : [preload] 옵션 +%%% 오전 3:12 2009-04-07 : [lyxhyper] 옵션 +%%% 오전 6:36 2008-09-18 : revive microtype option, in spite of its impotence. +%%% 오후 2:16 2008-09-18 : latinquote 옵션 +%%% 오전 4:58 2008-09-30 : xkospace 새 버전에 맞춘 대대적인 수정. +%%% : enumerate, hangul item title, 기호문자 등을 추가. +%%% 오후 5:25 2008-10-07 : revive gremph/itemph +%%% 오전 10:51 2008-10-08 : revive kscntformat +%%% 오전 5:12 2008-10-12 : fontspec, moreverb, xob-hanfont +%%% 오전 1:19 2008-10-13 : xetexko v0.1 반영 +%%% 오전 12:50 2008-10-22 : fawd, faht 옵션 추가. (workaround with flowfram) +%%% 오후 12:22 2008-10-24 : add [unicode] option to hyperref under LuaTeX +%%% 13:49 2008-11-24 : add [amsmath] option to avoid LyX's auto loading problem under XeLaTeX. +%%% 오후 17:59 2008-12-03 : nowinname 옵션 추가 |