texlive[58310] Master/texmf-dist: kotex-oblivoir (9mar21)

commits+karl at tug.org commits+karl at tug.org
Sat Mar 13 00:30:42 CET 2021


Revision: 58310
          http://tug.org/svn/texlive?view=revision&revision=58310
Author:   karl
Date:     2021-03-13 00:30:42 +0100 (Sat, 13 Mar 2021)
Log Message:
-----------
kotex-oblivoir (9mar21)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/ChangeLog
    trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/README
    trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-simpledoc.pdf
    trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-simpledoc.tex
    trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-test.tex
    trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memhangul-common.sty
    trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memucs-setspace.sty
    trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-font.sty
    trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-xl.cls
    trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir.cls
    trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/xoblivoir.cls

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/ob-mathleading-doc.pdf
    trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/ob-mathleading-doc.tex
    trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/obchaptertoc-doc.pdf
    trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/obchaptertoc-doc.tex
    trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/obchaptertoc.sty
    trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/ob-mathleading.sty
    trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/ob-unfontsdefault.sty

Modified: trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/ChangeLog
===================================================================
--- trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/ChangeLog	2021-03-12 23:30:14 UTC (rev 58309)
+++ trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/ChangeLog	2021-03-12 23:30:42 UTC (rev 58310)
@@ -1,3 +1,10 @@
+2021-03-03	Kangsoo Kim	<karnes at ktug org>
+
+	Version 3.0
+	
+	* fixed several bugs.
+	* oblivoir has now obchaptertoc and ob-mathleading sub packages.
+
 2020-03-20	Kangsoo Kim	<karnes at ktug.org>
 
 	Version 2.2.1

Modified: trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/README
===================================================================
(Binary files differ)

Added: trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/ob-mathleading-doc.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/ob-mathleading-doc.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/ob-mathleading-doc.pdf	2021-03-12 23:30:14 UTC (rev 58309)
+++ trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/ob-mathleading-doc.pdf	2021-03-12 23:30:42 UTC (rev 58310)

Property changes on: trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/ob-mathleading-doc.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/ob-mathleading-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/ob-mathleading-doc.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/ob-mathleading-doc.tex	2021-03-12 23:30:42 UTC (rev 58310)
@@ -0,0 +1,174 @@
+%
+% arara: xelatex
+
+\documentclass[a4paper,amsmath]{oblivoir}
+
+\usepackage{fapapersize}
+\usefapapersize{*,*,1in,*,1in,*}
+
+\setmainfont{Crimson Pro}
+\setsansfont{Open Sans}
+\setmonofont{Roboto Mono}
+\setkomainfont[Noto Serif CJK KR]()( Bold)
+\setkosansfont[Noto Sans CJK KR]()( Bold)
+
+\usepackage[default=false,exception={vmatrix}]{ob-mathleading}
+\usepackage{mathtools}
+
+\newcommand\pkg[1]{\textsf{#1}}
+
+\usepackage{tcolorbox}
+\tcbuselibrary{listings,breakable}
+
+\begin{document}
+
+\title{ob-mathleading}
+\author{Nova de Hi}
+\date{2018/12/25, v0.0.1}
+
+\maketitle
+
+\begin{abstract}
+\pkg{amsmath} 패키지의 여러 줄 수식 환경의 행 간격을 본문의 행 간격과는 무관하게 일정하게
+고정하거나 임의로 변경할 수 있도록 하는 패키지이다. 본문 행 간격의 기본값이 $1$이 아닌 
+한국어 문서에서 활용할 목적으로 제작하였다.
+\end{abstract}
+
+\tableofcontents*
+
+\section{목적과 기능}
+
+\pkg{amsmath}의 여러 줄 수식을 \pkg{oblivoir}에서 쓸 적에 한글 문서의 기본 행간의 영향을 받아
+수식의 행간격이 느슨해지는 것을 방지하기 위하여 여러 줄 수식 환경에 대하여 기본 행간격을 주는 것이 
+이 패키지의 목적이다.
+
+본문의 문단과 별행 수식 사이의 간격과 같은 것은 이 패키지가 제어하지 아니하며 ``여러 줄 수식''에 대해서만
+효과가 있다.
+
+이 패키지를 사용하지 않았을 때 \pkg{oblivoir} 문서를 작성한 결과와 이 패키지를 사용한 결과를 비교하여 보아라.
+\[
+    \begin{bmatrix} a & b & c \\ p & q & f \\ g & j & i \end{bmatrix}, 
+    \begin{bmatrix} 1 & 0 \\ 0 & 1\end{bmatrix},
+    \begin{bmatrix} 1 & 0 & \ast\! \\ 0 & 1 & \ast\! \end{bmatrix},
+    \begin{bmatrix} 1 & 0 \\ 0 & 1 \\ 0 & 0 \end{bmatrix},
+    \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}
+\]
+\begin{obMathLeading}
+\[ 
+    \begin{bmatrix} a & b & c \\ p & q & f \\ g & j & i \end{bmatrix}, 
+    \begin{bmatrix} 1 & 0 \\ 0 & 1\end{bmatrix},
+    \begin{bmatrix} 1 & 0 & \ast\! \\ 0 & 1 & \ast\! \end{bmatrix},
+    \begin{bmatrix} 1 & 0 \\ 0 & 1 \\ 0 & 0 \end{bmatrix},
+    \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}
+\]
+\end{obMathLeading}
+
+\section{사용법}
+
+\subsection{기본적인 사용법}
+
+문서의 preamble에 패키지의 사용을 선언한다.
+
+\begin{tcblisting}{listing only}
+    \usepackage{ob-mathleading}
+\end{tcblisting}
+
+``적절한'' 행간격을 얻기 위해서는 이렇게 선언하는 것으로 충분하다. 패키지의 수식 행간격 기본값은 $1$이다.
+
+\subsection{명령과 환경}
+
+일관성있는 문서를 작성하기 위해서는 문서 전체에 걸쳐서 동일한 수식 행간격을 유지하는 것이 바람직하다.
+그러나 부득이하게 특정 부분이나 특정 수식에 대해서만 행간을 늘리거나 줄여야 할 필요가 있을 수 있다.
+이 패키지는 이럴 경우에 대응하기 위하여 하나의 명령(선언)과 하나의 환경을 제공한다.
+
+\begin{tcblisting}{listing only}
+    \obmathleading{<value>}
+\end{tcblisting}
+
+\verb|<value>|에는 stretch 값을 \verb|1.2|, \verb|2|와 같이 준다. 이 선언 이후에는 수식 행간격이 변경되며 이 변경은 지역적(\emph{local})이므로
+현재의 범위(scope) 내에서 유효하다.
+
+\begin{tcblisting}{listing only}
+    \begin{obMathLeading}[<value>]
+        ...
+    \end{obMathLeading}
+\end{tcblisting}
+
+\verb|obMathLeading| 환경은 이 환경 안에 오는 수식에만 영향을 끼친다. 옵션 인자가 주어지지 않으면
+기본값인 $1$이 사용되며 옵션 인자가 주어지면 그것을 stretch로 사용하여 행간격을 조절한다.
+환경 안에는 \pkg{amsmath}의 여러 줄 수식 환경이 올 수 있다.
+
+\subsection{패키지 옵션}
+
+\subsubsection{옵션 \texttt{mathleading}}
+
+문서 전체에 걸쳐 수식 행간격을 임의로 조절하고자 한다면
+\begin{tcblisting}{listing only}
+    \usepackage[mathleading=<value>]{ob-mathleading}
+\end{tcblisting}
+\noindent 와 같이 지정한다. \verb|<value>|에는 stretch 값이 온다. 패키지의 기본값은 \verb|1|이다.
+
+\subsubsection{옵션 \texttt{exception}}
+
+이 패키지가 영향을 미치는 \pkg{amsmath}의 수식 환경의 리스트는 다음과 같다.
+
+\begin{quote}
+\begin{ttfamily}
+    array, matrix, pmatrix, bmatrix, Bmatrix, vmatrix, Vmatrix, 
+    cases, align, aligned, alignat, alignedat, gather, gathered,
+    split, multline, xalignat, xxalignat
+\end{ttfamily}
+\end{quote} 
+
+이 가운데 행간 조절 적용을 배제하고자 하는 환경의 이름을 쉼표로 분리하고 중괄호로 묶어서 열거할 수 있다.
+
+\begin{tcblisting}{listing only}
+    \usepackage[exception={cases,vmatrix}]{ob-mathleading}
+\end{tcblisting}
+
+다만 이 경우에 \texttt{align, alignat, xalignat, xxalignat}는 모두 동일한 
+것으로 취급되며 \texttt{align}만을 대표 이름으로 다룬다. \texttt{align}과 \texttt{aligned}는
+서로 다른 환경이므로 별도로 취급된다.
+
+다음 보기는 \verb|exception={vmatrix}| 옵션을 준 상태의 예시이다.
+
+\begin{tcblisting}{listing above text}
+\begin{obMathLeading}
+\[
+    \begin{bmatrix} a & b & c \\ p & q & f \\ g & j & i \end{bmatrix}, 
+    \begin{bmatrix} 1 & 0 \\ 0 & 1\end{bmatrix},
+    \begin{bmatrix} 1 & 0 & \ast\! \\ 0 & 1 & \ast\! \end{bmatrix},
+    \begin{bmatrix} 1 & 0 \\ 0 & 1 \\ 0 & 0 \end{bmatrix},
+    \begin{vmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{vmatrix}
+\]
+\end{obMathLeading}
+\end{tcblisting}
+
+\subsubsection{옵션 \texttt{default}}
+
+일반적인 상황은 아니겠지만 수식 행간격을 조절하는 이 패키지의 기능을 사용하지 않으면서 단지 명령과 환경, \verb|\obmathleading|이나
+\verb|obMathLeading|만을 활용하고자 한다면 
+\begin{tcblisting}{listing only}
+    \usepackage[default=false]{ob-mathleading}
+\end{tcblisting}
+이와 같이 \verb|[default=false]|를 옵션으로 줄 수 있다. 패키지의 기본값은 \verb|true|이다.
+
+\subsubsection{옵션 \texttt{noallowdisplaybreaks}}
+
+이 패키지는 \verb|\allowdisplaybreaks|를 실행해준다. 이 기능을 억제하고자 한다면
+패키지 옵션으로 \verb|[noallowdisplaybreaks]|를 선언한다. 마지막의 \verb|s|를 빠뜨리지 않도록
+유의하라.
+
+\section{적용 범위}
+
+이 패키지는 (이름에 나타난 바와 같이) \pkg{oblivoir}를 위하여 작성되기는 하였지만 \pkg{oblivoir} 클래스에
+의존하지 않는다. 그러므로 다른 클래스의 문서에서도 동작할 것이다.
+
+\pkg{amsmath}는 필수적이며 \pkg{etoolbox}를 로드한다.
+
+\section{감사의 말}
+
+테스트 문서와 예제 소스를 제공하신 ktug 게시판의 Progress 님, 패키지 제작의 동기를 제공하신 조인성 교수께 감사드린다.
+
+
+\end{document}


Property changes on: trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/ob-mathleading-doc.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/obchaptertoc-doc.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/obchaptertoc-doc.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/obchaptertoc-doc.pdf	2021-03-12 23:30:14 UTC (rev 58309)
+++ trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/obchaptertoc-doc.pdf	2021-03-12 23:30:42 UTC (rev 58310)

Property changes on: trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/obchaptertoc-doc.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/obchaptertoc-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/obchaptertoc-doc.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/obchaptertoc-doc.tex	2021-03-12 23:30:42 UTC (rev 58310)
@@ -0,0 +1,137 @@
+\documentclass[a4paper,oneside]{oblivoir}
+
+\usepackage{fapapersize}
+\usefapapersize{*,*,30mm,50mm,35mm,*}
+
+\setmainfont{TeX Gyre Pagella}
+\setkomainfont(Noto Serif CJK KR)
+\setkosansfont(Noto Sans CJK KR Light)(Noto Sans CJK KR Medium)
+
+\usepackage{obchaptertoc}
+
+\ExplSyntaxOn
+
+\renewcommand*\sideparform{\raggedright}
+\sideparmargin{right}
+\NewDocumentCommand \pkgcmd { m }
+{
+	\cs{#1}
+	\sidepar{\cs{#1}}
+}
+
+\ExplSyntaxOff
+
+\makeatletter
+\makechapterstyle{thisdoc}{%
+	\chapterstyle{section}
+	\renewcommand\clearforchapter{\par}
+	\setlength\beforechapskip{2\onelineskip}
+%	\setlength\midchapskip{10pt}
+	\setlength\afterchapskip{1.33\onelineskip}
+	\renewcommand*\chaptitlefont{\sffamily\LARGE}
+	\renewcommand*\chapnamefont{\sffamily\large}
+	\renewcommand*\chapnumfont{\sffamily\Large}
+	\renewcommand*\pre at chapter{}
+	\renewcommand*\post at chapter{}
+	\renewcommand*\memendofchapterhook{\chaptertoc}
+	\renewcommand*\printchapternum{\chapnumfont\thechapter}
+}
+
+\chapterstyle{thisdoc}
+
+\begin{document}
+
+\calccentering{\unitlength}
+
+\title{chapter toc for oblivoir}
+\author{Nova de Hi}
+\date{2020/09/02 \quad v2.0}
+\begin{adjustwidth}{\unitlength}{-\unitlength}
+\maketitle
+\end{adjustwidth}
+
+\section{개요}
+chaptertoc에 대해서는 게시판의 이곳저곳에 이런저런 솔루션들이 있습니다. 패키지도 많고요. memoir 관련해서 yihoze께서 (언젠지 기억나지 않지만) chaptertoc를 위한 외부 파일 기법으로 제안하셨던 것도 있었던 기억이 나네요.
+
+그런데 뭔가 oblivoir에서 깔끔하게 동작하지 않든가, 손봐야 하는 곳이 너무 많든가 하더라고요. 작년 memoir 스터디그룹에서 이 문제를 다루었는데, 그 때 토론한 내용을 바탕으로 패키지로 만들었습니다. 다른 추가적인 것 없이 오로지 oblivoir와 memoir 명령만으로 chaptertoc를 만들도록 했습니다.
+
+사용설명서를 만들기 귀찮기 때문에... 복잡한 패키지도 아니고 해서, 사용법을 여기에 간단히 기록해둡니다.
+
+\section{옵션}
+
+[v2.0] 다음 옵션을 줄 수 있습니다.
+\begin{verbatim}
+\usepackage[level=part]{obchaptertoc}
+\end{document}
+\end{verbatim}
+
+level로 제공할 수 있는 값은 \verb|book|, \verb|part|이고, 기본값은 \verb|chapter|입니다.
+아무 것도 주지 않으면 이 값이 \verb|chapter|인 것과 같습니다.
+
+이를 통하여 parttoc를 만들 수 있습니다. 예컨대, 
+\begin{verbatim}
+\usepackage[level=part]{obchaptertoc}
+\chaptertocmaxlevel{chapter}
+\renewcommand\chaptertocfont{\normalfont\normalsize\selectfont}
+\renewcommand\printparttitle[1]{#1\par\vspace{40pt}\chaptertoc}
+\end{verbatim}
+이것은 가장 간단한 parttoc를 위한 코드입니다.
+
+참고로, 이 패키지는 part에는 parttoc를 붙이고 chapter에 또다시 chaptertoc를 붙이는
+(비상식적인) 상황은 고려하지 않았습니다. 따라서, 비록 parttoc를 작성하더라도 
+식자 명령은 여전히 \cs{chaptertoc}입니다. 다른 설정 명령도 마찬가지입니다.
+
+\section{명령}
+
+\subsection{\cs{chaptertoc} 명령}
+
+명령이 주어진 위치에 현재 chapter의 chaptertoc를 식자합니다. 보통은 장 타이틀이 끝나고 본문이 시작하기 전에 위치할 테니까 \cs{memendofchapterhook}에 넣어두어도 됩니다.
+
+\subsection{\cs{ChapterTOCafterskiptrue}\texttt{|false}}
+
+디폴트는 true입니다. 이 값이 참이면 \cs{chaptertoc}를 식자하고 \cs{par}해줍니다. 그런데 framed 환경에 넣는다든가 장식을 하려 할 때 마지막에 한 줄이 생기는 것을 회피해야 할 때가 있습니다. 이럴 때 \cs{ChapterTOCafterskipfalse}로 지정합니다.
+
+\subsection{\cs{chaptertocmaxlevel}}
+
+chaptertoc를 어느 수준까지 만들 것인가 지정합니다. 인자로 section, subsection 등 장절 명령의 이름을 적어줄 수 있고, depth 카운터를 나타내는 숫자를 적어도 됩니다. 디폴트는 subsection까지를 chaptertoc로 만드는 것입니다. 
+
+\section{포매팅}
+
+\subsection{\cs{ChapterTOCFormat} 명령}
+
+chaptertoc의 모든 포매팅 설정은 memoir의 \verb|\cft...| 명령으로 합니다. 그러나 이 명령을 재정의하는 코드를 그냥 preamble에 넣으면 그것은 문서 전체의 toc에 해당하는 것이 되기 때문에 chaptertoc를 위한 cft 설정 명령들을 \cs{ChapterTOCFormat} 명령의 인자로 주어야 합니다. 예를 들면,
+\begin{verbatim}
+\ChapterTOCFormat{%
+	\renewcommand\cftsectionfont{\sffamily\small}
+	\setlength{\cftsectionnumwidth}{3em}
+}
+\end{verbatim}
+이런 식으로 모든 chaptertoc용 cft 설정 명령들을 여기에 모아서 지정하면 됩니다.
+
+\subsection{\cs{chaptertocfont}}
+
+위에 보인 바와 같이 chaptertoc 내의 section, subsection등의 폰트를 다 renewcommand할 수 있지만, 가끔 chaptertoc 전체의 폰트를 지정하고 싶을 때가 있습니다. 이것은 \cs{chaptertocfont}라는 매크로를 재정의하면 됩니다. \cs{cftsectionfont} 등이 우선이고 이렇게 개별적으로 폰트를 지정하지 않았다면 \cs{chaptertocfont}의 설정을 따릅니다. 기본값은 \verb|\rmfamily\normalsize|입니다.
+
+\subsection{\cs{TOCFormatsameas}}
+
+그런데 이런 식으로 설정하다보면 section에 대해서 한 설정을 subsection에 대해서도 일일이 해주어야 하는 것이 귀찮을 수 있습니다. \cs{TOCFormatsameas} 명령은 3개의 인자를 취하는데, \verb|#1|은 설정하고자 하는 section level 이름, \verb|#2|는 이미 설정되어 있는 section level 이름, \verb|#3|은 동일하게 변경하고자 하는 매크로의 끝이름입니다. 다음 예는,
+\begin{verbatim}
+\TOCFormatsamsas{subsection}{section}{dotsep,presnum}
+\end{verbatim}
+이것은 \cs{cftsubsectiondotsep}을 \cs{cftsectiondotsep}과 같게 하고, \cs{cftsubsectionpresnum}을 \cs{cftsectionpresnum}과 동일하게 설정하라는 의미입니다. 마지막 인자는 필요한 것을 더 추가할 수 있습니다.
+
+
+\section{기타}
+
+스타일 파일과 테스트 파일을 함께 묶어 올립니다. 테스트 파일 test.tex을 보시면 어떻게 사용하는지 한눈에 알 수 있을 것입니다. 이 패키지는 오로지 oblivoir만을 위하여 작성된 것으로, 다른 클래스가 로드되면 에러를 보이면서 멈춥니다. 심지어 memoir와도 함께 쓰지 못합니다.
+
+후의 수정을 쉽게 하기 위해 답글로 파일을 업로드하겠습니다.
+
+사실 이 스타일 파일은 앞서 <문장강화> 소스를 올릴 적에 간략히 작성했던 것을 버그를 고치고 기능을 보충한 것입니다.
+
+version 2.0은 KTUG 게시판에 parttoc에 대한 질문이 올라온 것을 보고 확장하였습니다.
+
+ 
+
+\end{document}
+


Property changes on: trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/obchaptertoc-doc.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-simpledoc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-simpledoc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-simpledoc.tex	2021-03-12 23:30:14 UTC (rev 58309)
+++ trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-simpledoc.tex	2021-03-12 23:30:42 UTC (rev 58310)
@@ -95,9 +95,9 @@
 
 \begin{document}
 
-\title{초간단 \obclass{} v2.2 사용법}
+\title{초간단 \obclass{} v3.0 사용법}
 
-\date{2020년 2월}
+\date{2021년 3월}
 
 \author{x-ob-liv-oir }
 
@@ -104,7 +104,7 @@
 \maketitle
 
 \begin{abstract}
-\obclass{} 클래스 2.0 버전은 그 동안 별도의 브랜치로 개발되어 오던
+\obclass{} 클래스 3.0 버전은 그 동안 별도의 브랜치로 개발되어 오던
 \xobclass와 \obclass를 통합하여 완전히 동일한 클래스가 되었다.
 이 문서는 \obclass{} 즉 \xobclass를
 사용하는 방법을 간략히 기술한다.
@@ -796,6 +796,9 @@
 
 \subsection{기정의 폰트 세트}
 
+기정의 글꼴 옵션은 \texttt{[nanum]}과 \texttt{[hcr]}이 있다. 나눔 글꼴과 함초롬 글꼴
+자체는 자신이 스스로 설치하여야 한다.
+
 클래스 옵션으로 \texttt{[nanum]}을 지정하면 본문이 나눔명조와 나눔고딕으로 식자된다.\footnote{%
 \XeTeX 이나 \LuaTeX 에서는 은 바탕을 기본 글꼴로 하고 있다. \hologo{pdfTeX}을 위한
 kotex-utf의 경우는 여전히 nanumtype1이다.}
@@ -810,6 +813,15 @@
 	그밖의 폰트에서 옛한글을 처리하게 하려면(예를 들어 Malgun Gothic, UnBatang 등)
 	feature 추가 옵션으로 \texttt{[Script=Hangul]}을 지정할 수 있다.}
 
+문서의 Preamble에 \verb|\setkomainfont| 명령을 쓴 적이 없고 \texttt{[hcr]}이나 \texttt{[nanum]} 클래스 옵션도 부여하지 않는다면 문서는 은 글꼴로 식자한다. oblivoir는
+은 글꼴의 자간과 어간을 조금 조절하는 것을 기본값으로 한다. 만약 은 글꼴에 아무런 
+조작을 가하지 않은 상태로 쓰고 싶다면 \verb|\setkomainfont| 등의 명령으로 은 글꼴을
+지정하라.
+
+은 글꼴을 기본 글꼴로서 다루는 가장 중요한 이유는 이것이 \TeX\,Live에 포함되어 배포되기
+때문에 별도의 폰트 설치를 요구하지 않기 때문이며, 이 글꼴은 한글 \LaTeX 의 발전사와
+깊이 연관되어 있는 중요한 글꼴이기 때문이기도 하다.
+
 %클래스 옵션 \texttt{[unfonts]}는 은 바탕, 은 돋움, 은 타자, 은 그래픽을 이용하여 본문 글꼴을 식자하게 한다.
 %\texttt{[gremph]}일 때 바탕글꼴의 이탤릭이 은 그래픽으로 찍힌다. 또한 이 옵션은 \texttt{[Script=Hangul]}을
 %자동으로 추가하여 옛한글을 은 바탕으로 잘 처리할 수 있게 하였다. 은 글꼴을 옵션으로 주지 않고 \cs{setkomainfont} 명령으로 주려면 다음과 같이 하는 것이 좋다. HCR 글꼴과 달리 자동으로 폰트 이름을 보고 \texttt{[Script=Hangul]}을 삽입하지 않으므로 feature 옵션에 지정한다. base name을 ``UnBatang''으로 하고 확장자를 잇대어 쓰도록 
@@ -1434,6 +1446,98 @@
 \pagestyle{hangul}
 \end{boxedverbatim}
 
+\subsection{crop mark: K style}
+
+출판 현장에서 oblivoir를 이용하여 단행본을 제작하려 할 적에 \textsf{memoir}의
+기본 crop mark가 너무 길어서 불평하는 경우가 있었다. 우리나라의 출판 현장에
+알맞도록 조금 짧은 crop mark를 다음 명령으로 그릴 수 있게 하였다.
+\begin{boxedverbatim}
+\trimKmark
+\end{boxedverbatim}
+
+\subsection{chaptertoc}
+
+\marginpar{v3.0}
+chaptertoc란 장 표제면에 그 chapter에 해당하는 절(section) 이하의 목록을
+만드는 것을 말한다. 이 목적을 위한 별도의 패키지가 있고 oblivoir에서 해당 패키지를
+활용하는 것도 가능하다. 한편 oblivoir v3.0은 \textsf{obchaptertoc}라는 부수
+패키지를 제공하는데 이것은 \textsf{memoir}의 기능만을 이용하고 다른 패키지에
+의존하지 않으면서 chaptertoc를 제작하게 한 것이다.
+이 기능은 오직 \verb|\chapter|보다 높은 수준의 문서구분명령에서만 동작하며
+\verb|\section| 이하 수준의 명령에 대해서는 고려하지 않았다. 따라서 \verb|[chapter]| 옵션이
+주어진 경우에 유효하다고 하겠다.
+
+\begin{boxedverbatim}
+\usepackage{obchaptertoc}
+%%
+\chaptertoc
+\end{boxedverbatim}
+
+이 패키지는 원래 독자적으로 개발되었던 것으로 안내 문서를 따로 가지고 있다(한국어).
+문서를 읽으려면
+\begin{verbatim}
+# texdoc obchaptertoc
+\end{verbatim}
+
+\subsection{mathleading}
+
+oblivoir는 한국어 문서에 대하여 기본 행간을 넓혀서 조판하기 때문에 여러 줄 수식의 경우에도
+그 영향을 받아서 행간격이 늘어지는 경우가 있었다.
+\textsf{amsmath}의 여러 줄 수식에 대하여 이 문제를 조절할 수 있게 하는 \textsf{ob-mathleading}
+패키지를 포함하였다. 따로 문서가 마련되어 있으므로 이를 참조하라.
+
+\begin{boxedverbatim}
+\usepackage{ob-mathleading}
+\end{boxedverbatim}
+
+문서를 읽으려면,
+\begin{verbatim}
+# texdoc ob-mathleading
+\end{verbatim}
+
+\subsection{\cs{ReleaseMacro} 명령}
+
+여러 \LaTeX\ 패키지를 로드하여 쓰다 보면 어떤 명령이 이미 정의되었다는 에러를
+만날 때가 있다. 이럴 때는 해당 패키지를 로딩하기 전에
+\begin{boxedverbatim}
+\ReleaseMacro{\XeTeX,\XeLaTeX}
+\end{boxedverbatim}
+과 같이 선언하여 이미 정의된 매크로를 무력화하는 시도를 해볼 수 있다.
+이 명령은 preamble에서만 쓰게 되어 있다.
+
+
+\subsection{oblivoirlist}
+
+나열 환경의 아이템 간 간격을 제어하기 위하여 \verb|\oblivoirlist|와 
+\verb|\oblivoirlists| 명령을 마련하였다. \verb|\oblivoirlists|는
+해당 선언 이후 모든 나열환경을 \verb|\oblivoirlist| 간격으로 만든다.
+
+\begin{itemize}\oblivoirlist
+\item 배
+\item 사과
+\item 복숭아
+\end{itemize}
+
+다음 보기와 비교하여 보아라.
+
+\begin{itemize}
+\item 배
+\item 사과
+\item 복숭아
+\end{itemize}
+
+\textsf{memoir}의 \verb|\firmlist|와 \verb|\tightlist|는 여전히 동작한다.
+
+\subsection{sidefootnote와 footnotesinmargin}
+
+\footnotesinmargin
+oblivoir 2.0까지 \verb|\footnotesinmargin|이 동작하지 않던 문제를 고쳤다.\footnote{이 각주는 마진에 놓인다.} 
+
+\verb|\sidefootnote|에서 발생하던 문제점도 해결하였다.\sidefootnote{이 각주는 사이드 풋노트이다.}
+
+\footnotesatfoot
+\textsf{memoir} 설명서에 설명된 것과 동일하게 동작한다.\footnote{상세한 것은 memoir manual을 볼 것.}
+
 \section{HTML 제작}
 
 \textsf{lwarp}를 이용하여 HTML을 제작하려면 문서에 \textsf{lwarp} 
@@ -1620,6 +1724,9 @@
 
 \section{변경 이력}
 
+2021년의 3.0 버전은 상당히 많은 버그와 의도와 다른 동작을 수정하고 새로운 
+기능을 추가하였다.
+
 2020년의 2.2 버전은 그 동안 알려진 몇 가지 버그를 수정하고 약간의 기능을
 추가하는 데 그쳤다.
 

Modified: trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-test.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-test.tex	2021-03-12 23:30:14 UTC (rev 58309)
+++ trunk/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-test.tex	2021-03-12 23:30:42 UTC (rev 58310)
@@ -19,7 +19,8 @@
 %% public domain.
 %%
 
-\documentclass[demo,chapter,openany,amsmath,gremph,lwarp]{oblivoir}
+%\documentclass[demo,chapter,openany,amsmath,gremph,lwarp]{oblivoir}
+\documentclass[demo,chapter,openany,amsmath,gremph]{oblivoir}
 %%% amsmath 옵션은 amsmath, amssymb 패키지를 로드해준다..
 
 %% display overfullrule
@@ -29,6 +30,8 @@
 \usepackage{fapapersize}
 \usefapapersize{220mm,276mm,20mm,80mm,30mm,35mm}
 
+\usepackage{ob-mathleading}
+
 % 폰트 설정
 \ifPDFTeX
 	\usepackage{mathpazo}

Modified: trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memhangul-common.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memhangul-common.sty	2021-03-12 23:30:14 UTC (rev 58309)
+++ trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memhangul-common.sty	2021-03-12 23:30:42 UTC (rev 58310)
@@ -1,6 +1,6 @@
 %% File `memhangul-common.sty`
 %%
-%% (C) Copyright 2013-2020 Kangsoo Kim <karnes at ktug org>
+%% (C) Copyright 2013-2021 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
@@ -17,7 +17,7 @@
 %%% 편, 장 섹션 타이틀 재설정
 %%% 절의 섹션 타이틀은 수정하지 않음.
 %%
-\ProvidesPackage{memhangul-common}[2020/02/05]
+\ProvidesPackage{memhangul-common}[2021/03/03]
 
 \let\@CHAPAPP\@chapapp
 \def\refreshprepostchapters{%
@@ -66,8 +66,41 @@
 %   \fi
 %   \printparttitle{#2}\par}%
 %  \@endpart}
+%%%%\long\def\@part[#1]#2{%
+%%%%%  \ifx#1\@empty\PrerenderUnicode{#2}\else\PrerenderUnicode{#1}\fi
+%%%%  \M at gettitle{#1}%
+%%%%  \def\f at rtoc{#1}%
+%%%%  \@nameuse{part at f@rtoc at before@write at hook}%
+%%%%  \phantomsection
+%%%%  \mempreaddparttotochook
+%%%%  \ifnum \c at secnumdepth >-2\relax
+%%%%    \refstepcounter{part}%
+%%%%    \addcontentsline{toc}{part}%
+%%%%%      {\protect\partnumberline{\thepart}#1}%
+%%%%      {\protect\partnumberline{\hparttitlehead}#1}%
+%%%%    \mempartinfo{\thepart}{#1}{#2}%
+%%%%  \else
+%%%%    \addcontentsline{toc}{part}{#1}%
+%%%%    \mempartinfo{}{#1}{#2}%
+%%%%  \fi
+%%%%  \mempostaddparttotochook
+%%%%  \partmark{#1}%
+%%%%  {\centering
+%%%%   \interlinepenalty \@M
+%%%%   \normalfont
+%%%%   \ifnum \c at secnumdepth >-2\relax
+%%%%%     \printpartname \partnamenum \printpartnum
+%%%%%     \midpartskip
+%%%%     \prepartnum \partnamenum \printpartnum \partnamenum \postpartnum
+%%%%     \midpartskip
+%%%%   \fi
+%%%%   \printparttitle{#2}\par}%
+%%%%  \@endpart}
+
+
+\def\obparttitlealignment{\centering}
+
 \long\def\@part[#1]#2{%
-%  \ifx#1\@empty\PrerenderUnicode{#2}\else\PrerenderUnicode{#1}\fi
   \M at gettitle{#1}%
   \def\f at rtoc{#1}%
   \@nameuse{part at f@rtoc at before@write at hook}%
@@ -76,17 +109,19 @@
   \ifnum \c at secnumdepth >-2\relax
     \refstepcounter{part}%
     \addcontentsline{toc}{part}%
-%      {\protect\partnumberline{\thepart}#1}%
-      {\protect\partnumberline{\hparttitlehead}#1}%
-    \mempartinfo{\thepart}{#1}{#2}%
+%      {\protect\partnumberline{\thepart}\f at rtoc}%
+      {\protect\partnumberline{\hparttitlehead}\f at rtoc}%
+    \mempartinfo{\thepart}{\f at rtoc}{#2}%
   \else
-    \addcontentsline{toc}{part}{#1}%
-    \mempartinfo{}{#1}{#2}%
+    \addcontentsline{toc}{part}{\f at rtoc}%
+    \mempartinfo{}{\f at rtoc}{#2}%
   \fi
   \mempostaddparttotochook
   \partmark{#1}%
-  {\centering
+  {%\centering
+   \obparttitlealignment
    \interlinepenalty \@M
+   \parskip\z@
    \normalfont
    \ifnum \c at secnumdepth >-2\relax
 %     \printpartname \partnamenum \printpartnum
@@ -227,16 +262,13 @@
   \ifx\ch at pt@c\m at m@empty % no optional args
     \def\f at rtoc{#1}%
     \def\f at rhdr{#1}%
-%    \PrerenderUnicode{#1}%
   \else                  % at least one opt arg
     \def\f at rtoc{\ch at pt@c}%
     \nametest{#1}{#2}%
     \ifsamename          % one opt arg
       \def\f at rhdr{\ch at pt@c}%
-%      \PrerenderUnicode{#1#2}%
     \else                % two opt args
       \def\f at rhdr{#1}%
-%      \PrerenderUnicode{#1}%
     \fi
   \fi 
   \m at m@Andfalse
@@ -296,6 +328,75 @@
   \memendofchapterhook%
 }
 
+%%%\def\@chapter[#1]#2{%
+%%%  \m at mpn@new at chaptrue%
+%%%  \m at mpn@new at schapfalse%
+%%%  \def\f at rbdy{#2}%
+%%%  \ifx\ch at pt@c\@empty % no optional args
+%%%    \def\f at rtoc{#2}%
+%%%    \def\f at rhdr{#2}%
+%%%  \else                  % at least one opt arg
+%%%    \let\f at rtoc\ch at pt@c
+%%%    \ifx\@empty#1\@empty
+%%%      \let\f at rhdr\ch at pt@c
+%%%    \else
+%%%      \def\f at rhdr{#1}%
+%%%    \fi
+%%%  \fi
+%%%  \m at m@Andfalse
+%%%  \ifnum \c at secnumdepth >\m at ne
+%%%    \if at mainmatter
+%%%      \m at m@Andtrue
+%%%    \fi
+%%%  \fi
+%%%  \ifm at m@And
+%%%   \ifanappendix
+%%%    \refstepcounter{APPchapter}%
+%%%   \else
+%%%    \refstepcounter{chapter}%
+%%%   \fi
+%%%  \fi
+%%%  \chaptermark{\f at rhdr}
+%%%  \ifartopt
+%%%    \@makechapterhead{#2}%
+%%%    \@afterheading
+%%%  \else
+%%%    \insertchapterspace
+%%%    \if at twocolumn
+%%%      \@topnewpage[\@makechapterhead{#2}]%
+%%%    \else
+%%%      \@makechapterhead{#2}%
+%%%    \fi
+%%%    \@afterheading
+%%%  \fi
+%%%  \@nameuse{chapter at f@rtoc at before@write at hook}%
+%%%  \mempreaddchaptertotochook%
+%%%  \ifm at m@And
+%%%    \ifanappendix
+%%%      \addcontentsline{toc}{appendix}{%
+%%%       \protect\chapternumberline{\hchaptertitlehead}\f at rtoc}%
+%%%       \memappchapinfo{\thechapter}{\f at rtoc}{\f at rhdr}{#2}%
+%%%    \else
+%%%      \addcontentsline{toc}{chapter}{%
+%%%        \protect\chapternumberline{\hchaptertitlehead}\f at rtoc}%
+%%%       \memchapinfo{\hchaptertitlehead}{\f at rtoc}{\f at rhdr}{#2}%
+%%%    \fi
+%%%  \else
+%%%    \addcontentsline{toc}{chapter}{\f at rtoc}%
+%%%    \ifanappendix
+%%%      \memappchapinfo{}{\f at rtoc}{\f at rhdr}{#2}%
+%%%    \else
+%%%      \memchapinfo{\hchaptertitlehead}{\f at rtoc}{\f at rhdr}{#2}%
+%%%    \fi
+%%%  \fi
+%%%  \mempostaddchaptertotochook%
+%%%  \ifheadnameref\M at gettitle{\f at rhdr}\else\M at gettitle{\f at rtoc}\fi
+%%%  \ifanappendix
+%%%     \protected at edef\@currentlabel{\thechapter}%
+%%%  \fi
+%%%  \memendofchapterhook%
+%%%}
+
 %\def\@makechapterhead#1{%
 %  \chapterheadstart%  \vspace*{50\p@}%
 %  {\parindent \z@ \raggedright \normalfont
@@ -319,14 +420,30 @@
 	\prechapternum \chapternamenum \printchapternum 
 	\chapternamenum \postchapternum \afterchapternum}{}{}
 
+%%%\renewcommand{\@m at mschapter}[2][\@empty]{%
+%%%  \@schapter{#2}%
+%%%  \ifx \@empty#1
+%%%    \def\f at rhdr{#2}%
+%%%%    \PrerenderUnicode{#2}%
+%%%  \else   % opt arg
+%%%    \def\f at rhdr{#1}%
+%%%%    \PrerenderUnicode{#1}%
+%%%    \setcounter{secnumdepth}{-10}%
+%%%    \chaptermark{#1}%
+%%%    \setcounter{secnumdepth}{\value{maxsecnumdepth}}%
+%%%  \fi
+%%%  \ifanappendix
+%%%    \memappchapstarinfo{\f at rhdr}{#2}%
+%%%  \else
+%%%    \memchapstarinfo{\f at rhdr}{#2}%
+%%%  \fi}
+
 \renewcommand{\@m at mschapter}[2][\@empty]{%
   \@schapter{#2}%
   \ifx \@empty#1
     \def\f at rhdr{#2}%
-%    \PrerenderUnicode{#2}%
   \else   % opt arg
     \def\f at rhdr{#1}%
-%    \PrerenderUnicode{#1}%
     \setcounter{secnumdepth}{-10}%
     \chaptermark{#1}%
     \setcounter{secnumdepth}{\value{maxsecnumdepth}}%
@@ -335,19 +452,21 @@
     \memappchapstarinfo{\f at rhdr}{#2}%
   \else
     \memchapstarinfo{\f at rhdr}{#2}%
-  \fi}
+  \fi
+  \ifheadnameref\M at gettitle{\f at rhdr}\else\M at gettitle{#2}\fi}
 
-\def\@makeschapterhead#1{%
-  \chapterheadstart
-%  {\parindent \z@ \raggedright \normalfont
-  {\parindent \z@ \raggedright \normalfont \memucsinterwordchapterskiphook
-   \printchapternonum
-   \interlinepenalty\@M
-   \printchaptertitle{#1}
-   \afterchaptertitle
-  }
-}
 
+%%%%\def\@makeschapterhead#1{%
+%%%%  \chapterheadstart
+%%%%%  {\parindent \z@ \raggedright \normalfont
+%%%%  {\parindent \z@ \raggedright \normalfont \memucsinterwordchapterskiphook
+%%%%   \printchapternonum
+%%%%   \interlinepenalty\@M
+%%%%   \printchaptertitle{#1}
+%%%%   \afterchaptertitle
+%%%%  }
+%%%%}
+
 %%%%%%%%%%%%%
 
 \renewcommand{\@chs at def@ult}{%
@@ -759,25 +878,48 @@
 \InputIfFileExists{memhangul-patch.sty}{}{}
 
 %%% fig, tab caption
+%%%\def\obCaptionFont#1{\def\@figtabcaptfont@{#1}}
+%%%\providecommand\@figtabcaptfont@{\normalfont}
+%%%\if at figtabcapt@
+%%%\AtBeginDocument{
+%%%\@ifpackageloaded{caption}{%  requested by Progress
+%%%	\DeclareCaptionLabelFormat{xob-cnm-parens}{\cnm{#1~#2}}
+%%%	\captionsetup{labelformat=xob-cnm-parens,labelsep=space}
+%%%}%
+%%%{%
+%%%	\precaption{{\@figtabcaptfont@\cnm at char@open}}
+%%%	\captiondelim{{\@figtabcaptfont@\cnm at char@close}\quad}
+%%%	\renewcommand\cfttablepresnum{\cnm at char@open\tablename\space}
+%%%	\renewcommand\cfttableaftersnum{\cnm at char@close}
+%%%	\setlength\cfttablenumwidth{3.8em}
+%%%	\renewcommand\cftfigurepresnum{\cnm at char@open\figurename\space}
+%%%	\renewcommand\cftfigureaftersnum{\cnm at char@close}
+%%%	\setlength\cftfigurenumwidth{4.5em}
+%%%}
+%%%}
+%%%\fi
+
 \def\obCaptionFont#1{\def\@figtabcaptfont@{#1}}
+\def\obCaptionnameOpen{\cnm at char@open}
+\def\obCaptionnameClose{\cnm at char@close}
 \providecommand\@figtabcaptfont@{\normalfont}
 \if at figtabcapt@
-\AtBeginDocument{
+\AtBeginDocument{%
 \@ifpackageloaded{caption}{%  requested by Progress
-	\DeclareCaptionLabelFormat{xob-cnm-parens}{\cnm{#1~#2}}
-	\captionsetup{labelformat=xob-cnm-parens,labelsep=space}
+        \DeclareCaptionLabelFormat{xob-cnm-parens}{\cnm{#1~#2}}
+        \captionsetup{labelformat=xob-cnm-parens,labelsep=space}
 }%
 {%
-	\precaption{{\@figtabcaptfont@\cnm at char@open}}
-	\captiondelim{{\@figtabcaptfont@\cnm at char@close}\quad}
-	\renewcommand\cfttablepresnum{\cnm at char@open\tablename\space}
-	\renewcommand\cfttableaftersnum{\cnm at char@close}
-	\setlength\cfttablenumwidth{3.8em}
-	\renewcommand\cftfigurepresnum{\cnm at char@open\figurename\space}
-	\renewcommand\cftfigureaftersnum{\cnm at char@close}
-	\setlength\cftfigurenumwidth{4.5em}
+        \precaption{{\@figtabcaptfont@\obCaptionnameOpen}}
+        \captiondelim{{\@figtabcaptfont@\obCaptionnameClose}\quad}
+        \renewcommand\cfttablepresnum{\obCaptionnameOpen\tablename\space}
+        \renewcommand\cfttableaftersnum{\obCaptionnameClose}
+        \setlength\cfttablenumwidth{3.8em}
+        \renewcommand\cftfigurepresnum{\obCaptionnameOpen\figurename\space}
+        \renewcommand\cftfigureaftersnum{\obCaptionnameClose}
+        \setlength\cftfigurenumwidth{4.5em}
+}%
 }
-}
 \fi
 
 %%% LuaTeX, XeTeX logos
@@ -1176,8 +1318,168 @@
  \pagestyle{hangul}
 \fi
 
+%%% 2021/03/03: adjustwidth
+\newdimen\memucsadjustwidthtopsep
+\renewenvironment{adjustwidth}[2]{%
+  \begin{list}{}{%
+  	\ifdim\onelineskip=\baselineskip
+		\memucsadjustwidthtopsep\z@\else
+		\memucsadjustwidthtopsep=\dimexpr\onelineskip-\baselineskip\relax
+	\fi
+%    \topsep\z@%
+	\topsep.5\memucsadjustwidthtopsep
+    \listparindent\parindent%
+    \parsep\parskip%
+    \@ifmtarg{#1}{\setlength{\leftmargin}{\z@}}%
+                 {\setlength{\leftmargin}{#1}}%
+    \@ifmtarg{#2}{\setlength{\rightmargin}{\z@}}%
+                 {\setlength{\rightmargin}{#2}}%
+    }
+    \item[]}{\end{list}}
 
+\renewenvironment{adjustwidth*}[2]{%
+  \begin{list}{}{%
+%    \topsep\z@%
+	\topsep.5\memucsadjustwidthtopsep
+    \listparindent\parindent%
+    \parsep\parskip%
+    \checkoddpage
+    \ifoddpage  % odd numbered page
+      \@ifmtarg{#1}{\setlength{\leftmargin}{\z@}}%
+                   {\setlength{\leftmargin}{#1}}%
+      \@ifmtarg{#2}{\setlength{\rightmargin}{\z@}}%
+                   {\setlength{\rightmargin}{#2}}%
+    \else       % even numbered page
+      \@ifmtarg{#2}{\setlength{\leftmargin}{\z@}}%
+                   {\setlength{\leftmargin}{#2}}%
+      \@ifmtarg{#1}{\setlength{\rightmargin}{\z@}}%
+                   {\setlength{\rightmargin}{#1}}%
+    \fi
+    }
+    \item[]}{\end{list}}
 
+
+%%% lists
+%%% newly added
+\newcommand*{\oblivoirlists}{%
+  \@ifstar{\ob at sfirmlists}{\ob at firmlists}}
+
+\newcommand*{\ob at sfirmlists}{
+  \setlength{\partopsep}{\z@ \@plus \p@ \@minus \p@}%
+  \parsepi = 0.0833\onelineskip \@plus 0.04\onelineskip \@minus \p@
+  \itemsepi = \parsepi
+  \topsepi = \parsepi
+  \parsepii = 0.04\onelineskip \@plus \p@ \@minus \p@
+  \topsepii = \parsepi
+  \topsepiii = \parsepii
+  \everylistparindent\listparindent}
+
+\newcommand*{\ob at firmlists}{
+  \setlength{\partopsep}{0.05\onelineskip \@plus 0.02\onelineskip
+                                         \@minus 0.02\onelineskip}%
+  \parsepi = 0.0833\onelineskip \@plus 0.04\onelineskip \@minus \p@
+  \itemsepi = \parsepi
+  \topsepi = \parsepi
+  \parsepii = 0.04\onelineskip \@plus \p@ \@minus \p@
+  \topsepii = \parsepi
+  \topsepiii = \parsepii
+  \everylistparindent\listparindent}
+
+\newcommand{\oblivoirlist}{%
+  \setlength{\itemsep}{0.3\itemsep}\setlength{\parskip}{0.3\parskip}}
+
+\newcommand\obadjustlists{%
+  \global\let\defaultlist\firmlist
+  \global\let\defaultlists\firmlists
+  \global\let\firmlist\oblivoirlist
+  \global\let\firmlists\oblivoirlists
+  \defaultlists
+}
+
+
+%%% \ReleaseMacros
+%%% newly added
+\ExplSyntaxOn 
+\NewDocumentCommand \ReleaseMacros { m }
+{
+	\clist_set:Nn \l_tmpa_clist { #1 }
+	\clist_map_inline:Nn \l_tmpa_clist
+	{
+		\cs_undefine:N ##1
+	}
+}
+\@onlypreamble\ReleaseMacros
+
+\ExplSyntaxOff
+
+
+%%%% trim K mark
+\providecommand*{\tmarkKtm}{%
+  \begin{picture}(0,0)%
+    \unitlength 1mm
+    \thinlines
+    \put(0,4){\line(0,1){8}}
+  \end{picture}}
+\providecommand*{\tmarkKml}{%
+  \begin{picture}(0,0)%
+    \unitlength 1mm
+    \thinlines
+    \put(-4,0){\line(-1,0){8}}
+  \end{picture}}
+\providecommand*{\tmarkKmr}{%
+  \begin{picture}(0,0)%
+    \unitlength 1mm
+    \thinlines
+    \put(4,0){\line(1,0){8}}
+  \end{picture}}
+\providecommand*{\tmarkKbm}{%
+  \begin{picture}(0,0)%
+    \unitlength 1mm
+    \thinlines
+    \put(0,-12){\line(0,1){8}}
+  \end{picture}}
+\providecommand*{\Ktrimpictl}{%
+  \begin{picture}(0,0)
+    \unitlength 1mm
+    \thinlines
+    \put(-4,0){\line(-1,0){10}}
+    \put(0,4){\line(0,1){10}}
+  \end{picture}}
+\providecommand*{\Ktrimpictr}{%
+  \begin{picture}(0,0)
+    \unitlength 1mm
+    \thinlines
+    \put(4,0){\line(1,0){10}}
+    \put(0,4){\line(0,1){10}}
+  \end{picture}}
+\providecommand*{\Ktrimpicbl}{%
+  \begin{picture}(0,0)
+    \unitlength 1mm
+    \thinlines
+    \put(-4,0){\line(-1,0){10}}
+    \put(0,-4){\line(0,-1){10}}
+  \end{picture}}
+\providecommand*{\Ktrimpicbr}{%
+  \begin{picture}(0,0)
+    \unitlength 1mm
+    \thinlines
+    \put(4,0){\line(1,0){10}}
+    \put(0,-4){\line(0,-1){10}}
+  \end{picture}}
+ 
+\providecommand*{\trimKmarks}{%
+  \let\tmarktl\Ktrimpictl
+  \let\tmarktr\Ktrimpictr
+  \let\tmarkbl\Ktrimpicbl
+  \let\tmarkbr\Ktrimpicbr
+  \let\tmarktm\tmarkKtm
+  \let\tmarkbm\tmarkKbm
+  \let\tmarkml\tmarkKml
+  \let\tmarkmr\tmarkKmr
+}
+
+
+
 \endinput
 
 %%% 2015/10/15: \@part, \@chapter renewal.

Modified: trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memucs-setspace.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memucs-setspace.sty	2021-03-12 23:30:14 UTC (rev 58309)
+++ trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memucs-setspace.sty	2021-03-12 23:30:42 UTC (rev 58310)
@@ -1,6 +1,6 @@
 %% File `memucs-setspace.sty`
 %%
-%% Copyright (c) 2007-2013 Kangsoo Kim <karnes at ktug org>
+%% Copyright (c) 2007-2021 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
@@ -50,8 +50,8 @@
 
 \NeedsTeXFormat {LaTeX2e}[1994/12/09]
 \def \filename {memucs-setspace.sty}
-\def \filedate {2007/09/21}
-\def \fileversion {6.7-memucs8}
+\def \filedate {2021/03/03}
+\def \fileversion {6.7-mu9}
 \ProvidesPackage {memucs-setspace}[\filedate\space\fileversion\space
   Contributed and Supported LaTeX2e package]
 \typeout {Package: `memucs-setspace', a modified version of `setspace', \fileversion\space <\filedate>}
@@ -334,42 +334,117 @@
 % cannot (AFAIK) be avoided, because LaTeX (2e) LACKS appropriate
 % standard hooks and/or context markers.
 \if at singlespacefn
-\def\m at mold@footnotetext{\@memsetspace at footnotetext}
-\renewcommand{\@footnotetext}[1]{\m at mold@footnotetext{#1}\m at mmf@prepare} 
-\long\def\@memsetspace at footnotetext#1{%
-  \insert\footins{%
-% GT:  Next line added.  Hook desired here!
-	\@floatfnspacinghook\memucsfninterwordhook
-%    \def\baselinestretch {\setspace at hangulfspace}%
-%	\@SetFloatspaces
-    \reset at font\footnotesize
-    \interlinepenalty\interfootnotelinepenalty
-    \splittopskip\footnotesep
-    \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+%%%%\def\m at mold@footnotetext{\@memsetspace at footnotetext}
+%%%%\renewcommand{\@footnotetext}[1]{\m at mold@footnotetext{#1}\m at mmf@prepare} 
+%%%%\long\def\@memsetspace at footnotetext#1{%
+%%%%  \insert\footins{%
+%%%%% GT:  Next line added.  Hook desired here!
+%%%%	\@floatfnspacinghook\memucsfninterwordhook
+%%%%%    \def\baselinestretch {\setspace at hangulfspace}%
+%%%%%	\@SetFloatspaces
+%%%%    \reset at font\footnotesize
+%%%%    \interlinepenalty\interfootnotelinepenalty
+%%%%    \splittopskip\footnotesep
+%%%%    \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+%%%%    \hsize\columnwidth
+%%%%    \@parboxrestore
+%%%%    \protected at edef\@currentlabel{%
+%%%%      \csname p at footnote\endcsname\@thefnmark
+%%%%    }%
+%%%%    \color at begingroup
+%%%%      \@makefntext{%
+%%%%        \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+%%%%    \color at endgroup}}
+%%%%
+%%%%% Minipage footnotes.
+%%%%\renewcommand{\@mpfootnotetext}[1]{%
+%%%%  \global\setbox\@mpfootins\vbox{%
+%%%%    \unvbox\@mpfootins
+%%%%%  GT:  Next line added.  Hook desired here!
+%%%%	\@floatfnspacinghook\memucsfninterwordhook
+%%%%%    \def\baselinestretch {\setspace at hangulfspace}%
+%%%%    \foottextfont \hsize\columnwidth \@parboxrestore
+%%%%    \protected at edef\@currentlabel{\csname p at mpfootnote\endcsname\@thefnmark}%
+%%%%  \color at begingroup
+%%%%    \@makefntext{%
+%%%%      \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+%%%%  \color at endgroup}}
+
+\renewcommand{\@footnotetext}[1]{%
+  \ifm at mfnmargin%   use marginpar
+    \marginpar{%
+%    \def\baselinestretch{\m at m@footnote at spacing}%
+        \@floatfnspacinghook\memucsfninterwordhook
+    \reset at font
+    \foottextfont
+    \protected at edef\@currentlabel{%
+      \csname p at footnote\endcsname\@thefnmark}%
+    \color at begingroup
+      \@makefntext{\ignorespaces#1}%
+    \color at endgroup}%
+  \else% regular feet
+    \insert\footins{%
+ %   \def\baselinestretch{\m at m@footnote at spacing}%
+         \@floatfnspacinghook\memucsfninterwordhook
+    \reset at font
+    \foottextfont
+    \@preamfntext
     \hsize\columnwidth
-    \@parboxrestore
     \protected at edef\@currentlabel{%
-      \csname p at footnote\endcsname\@thefnmark
-    }%
+      \csname p at footnote\endcsname\@thefnmark}%
     \color at begingroup
       \@makefntext{%
-        \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
-    \color at endgroup}}
+        \rule\z@\footnotesep\ignorespaces{\foottextfont #1}%
+        \@finalstrut\strutbox}%
+    \color at endgroup}%
+  \fi%
+  \m at mmf@prepare}
 
-% Minipage footnotes.
 \renewcommand{\@mpfootnotetext}[1]{%
   \global\setbox\@mpfootins\vbox{%
     \unvbox\@mpfootins
-%  GT:  Next line added.  Hook desired here!
-	\@floatfnspacinghook\memucsfninterwordhook
-%    \def\baselinestretch {\setspace at hangulfspace}%
+%    \def\baselinestretch{\m at m@footnote at spacing}%
+         \@floatfnspacinghook\memucsfninterwordhook
     \foottextfont \hsize\columnwidth \@parboxrestore
-    \protected at edef\@currentlabel{\csname p at mpfootnote\endcsname\@thefnmark}%
+    \protected at edef\@currentlabel{%
+      \csname p at mpfootnote\endcsname\@thefnmark}%
   \color at begingroup
+  \reset at font%
     \@makefntext{%
-      \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+      \rule\z@\footnotesep\ignorespaces{\foottextfont #1}%
+      \@finalstrut\strutbox}%
   \color at endgroup}}
 
+\renewcommand{\@sidefootnotetext}[1]{\insert\sidefootins{%
+  \hsize\sidefootwidth
+  \@parboxrestore
+%    \def\baselinestretch{\m at m@footnote at spacing}%
+         \@floatfnspacinghook\memucsfninterwordhook
+  \sidefootform \normalsize\normalfont\sidefoottextfont
+  \splittopskip=\ht\strutbox
+  \splitmaxdepth=\dp\strutbox
+  \allowbreak
+  \prevdepth=\dp\strutbox
+  \vskip-\parskip
+  \protected at edef\@currentlabel{%
+    \csname p at sidefootnote\endcsname\@thesidefnmark}%
+\color at begingroup
+\@makesidefntext{{\sidefoottextfont #1}}%
+\color at endgroup
+  \ifvmode\else
+    \unskip\@finalstrut\strutbox
+  \fi
+  \par
+  \ifdim\prevdepth>\dp\strutbox \prevdepth=\dp\strutbox\fi
+  \ifdim\prevdepth>99\p@
+    \nobreak
+    \vskip-\prevdepth
+    \allowbreak
+    \vskip\dp\strutbox
+  \fi
+  \vskip\sidefootvsep}%
+  \m at mmf@prepare}
+
 \else\fi
 
 % ** Line space environments.

Added: trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/obchaptertoc.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/obchaptertoc.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/obchaptertoc.sty	2021-03-12 23:30:42 UTC (rev 58310)
@@ -0,0 +1,223 @@
+%%%
+%%% \chaptertoc for oblivoir
+%%% part of kotex-oblivoir package.
+%%%
+%%% written by Nova de Hi
+%%%
+\ProvidesPackage{obchaptertoc}[2020/09/03, v2.0]
+\RequirePackage{l3keys2e}
+
+\ExplSyntaxOn
+\msg_new:nnn { obchaptertoc } { haltmsg } { class~oblivoir~not~loaded }
+\@ifclassloaded{oblivoir}{}{\msg_error:nn { obchaptertoc } { haltmsg }}
+
+\keys_define:nn { obchaptoc }
+{
+	level	.tl_set:N 	= \opt_level_tl
+}
+
+\tl_set:Nn \opt_level_tl { chapter } % default
+\ProcessKeysOptions { obchaptoc }
+
+\ExplSyntaxOff
+
+\RequirePackage{etoolbox}
+%%%
+%%%%%% hooking oblivoir's chapter command
+%%%\def\@chapter[#1]#2{%
+%%%  \m at mpn@new at chaptrue%
+%%%  \m at mpn@new at schapfalse%
+%%%  \def\f at rbdy{#2}%
+%%%  \ifx\ch at pt@c\m at m@empty % no optional args
+%%%    \def\f at rtoc{#1}%
+%%%    \def\f at rhdr{#1}%
+%%%  \else                  % at least one opt arg
+%%%    \def\f at rtoc{\ch at pt@c}%
+%%%    \nametest{#1}{#2}%
+%%%    \ifsamename          % one opt arg
+%%%      \def\f at rhdr{\ch at pt@c}%
+%%%    \else                % two opt args
+%%%      \def\f at rhdr{#1}%
+%%%    \fi
+%%%  \fi 
+%%%  \m at m@Andfalse
+%%%  \ifnum \c at secnumdepth >\m at ne
+%%%    \if at mainmatter
+%%%      \m at m@Andtrue
+%%%    \fi
+%%%  \fi
+%%%  \ifm at m@And
+%%%   \ifanappendix
+%%%    \refstepcounter{APPchapter}%
+%%%   \else
+%%%    \refstepcounter{chapter}%
+%%%   \fi
+%%%  \fi
+%%%  \chaptermark{\f at rhdr}
+%%%  \ifartopt
+%%%    \@makechapterhead{#2}%
+%%%    \@afterheading
+%%%  \else
+%%%    \insertchapterspace
+%%%    \if at twocolumn
+%%%      \@topnewpage[\@makechapterhead{#2}]%
+%%%    \else
+%%%      \@makechapterhead{#2}%
+%%%    \fi
+%%%    \@afterheading
+%%%  \fi
+%%%  \@nameuse{chapter at f@rtoc at before@write at hook}%
+%%%  \mempreaddchaptertotochook%
+%%%  \ifm at m@And
+%%%    \ifanappendix
+%%%      \addcontentsline{toc}{appendix}{%
+%%%       \protect\chapternumberline{\hchaptertitlehead}\f at rtoc}%
+%%%       \memappchapinfo{\thechapter}{\f at rtoc}{\f at rhdr}{#2}%
+%%%    \else
+%%%      \addcontentsline{toc}{chapter}{%
+%%%        \protect\chapternumberline{\hchaptertitlehead}\f at rtoc}%
+%%%       \memchapinfo{\hchaptertitlehead}{\f at rtoc}{\f at rhdr}{#2}%
+%%%    \fi
+%%%  \else
+%%%    \addcontentsline{toc}{chapter}{\f at rtoc}%
+%%%    \ifanappendix
+%%%      \memappchapinfo{}{\f at rtoc}{\f at rhdr}{#2}%
+%%%    \else
+%%%      \memchapinfo{\hchaptertitlehead}{\f at rtoc}{\f at rhdr}{#2}%
+%%%    \fi
+%%%  \fi
+%%%  \mempostaddchaptertotochook%
+%%%  \ifheadnameref\M at gettitle{\f at rhdr}\else\M at gettitle{\f at rtoc}\fi
+%%%  \ifanappendix
+%%%     \protected at edef\@currentlabel{\thechapter}%
+%%%  \fi
+%%%  \memendofchapterhook%
+%%%}
+
+\newcounter{tocmarker} 
+% start marker
+\ExplSyntaxOn 
+
+\clist_new:N \l_upperlevel_clist
+
+\str_case_e:nnTF { \opt_level_tl }
+{
+	{ book } {  \clist_set:Nn \l_upperlevel_clist { book } }
+	{ chapter } { \clist_set:Nn \l_upperlevel_clist { part, book, chapter } }
+	{ part } { \clist_set:Nn \l_upperlevel_clist { book, part } }
+	{ apppage } {  \clist_set:Nn \l_upperlevel_clist { apppage }  }
+}
+{
+	\cs_set:cn { mempostadd \opt_level_tl totochook: }
+	{
+		\stepcounter{tocmarker}\cftinserthook{toc}{start-\thetocmarker}
+	}
+	\cs_set_eq:cc { mempostadd \opt_level_tl totochook } { mempostadd \opt_level_tl totochook: }
+	
+	\clist_map_inline:Nn \l_upperlevel_clist 
+	{
+    	\cs_set:cn { mempreadd #1 totochook: }
+    	{
+    		\cftinserthook{toc}{end-\thetocmarker}
+    	}
+    	\cs_set_eq:cc { mempreadd #1 totochook } { mempreadd #1 totochook: }
+	}
+}
+{
+    \renewcommand\mempreaddchaptertotochook{\cftinserthook{toc}{end-\thetocmarker}} 
+    \renewcommand\mempreaddparttotochook {\cftinserthook{toc}{end-\thetocmarker}} 
+    \renewcommand\mempreaddbooktotochook {\cftinserthook{toc}{end-\thetocmarker}} 
+    \renewcommand\mempreaddapppagetotochook{\cftinserthook{toc}{end-\thetocmarker}} 
+    
+	\renewcommand\mempostaddchaptertotochook{%
+		\stepcounter{tocmarker}\cftinserthook{toc}{start-\thetocmarker}}
+}
+\ExplSyntaxOff
+
+\let\normalchangetocdepth\changetocdepth
+
+\def\chaptertocfont{\rmfamily}
+\def\chaptertocsecfont{\normalfont\normalsize}
+
+\NewDocumentCommand\@ChapterTOCFormat{}
+{%
+  \setlength{\cftsectionindent}{0pt}
+  \setlength{\cftsubsectionindent}{\cftsectionnumwidth}
+  \setlength{\cftsubsubsectionindent}{\cftsubsectionindent}
+  \addtolength{\cftsubsubsectionindent}{\cftsubsectionnumwidth}
+  \renewcommand\cftsectionfont{\chaptertocsecfont}
+%  \renewcommand\cftsectionpresnum{}
+%  \renewcommand\cftsectionaftersnum{}
+%  \renewcommand\cftsectiondotsep{\cftnodots}
+%  \renewcommand\cftsubsectiondotsep{\cftnodots}
+%  \renewcommand\cftsectionpagefont{\chaptertocsecfont}
+%  \renewcommand\cftsubsectionfont{\chaptertocsecfont}
+%  \renewcommand\cftsubsectionpagefont{\chaptertocsecfont}
+%  \renewcommand\cftsubsubsectionfont{\chaptertocsecfont}
+%  \renewcommand\cftsubsubsectionpagefont{\chaptertocsecfont}
+%  \renewcommand\cftsectionformatpnum[1]{}
+%  \renewcommand\cftsubsectionformatpnum[1]{}
+}
+
+\NewDocumentCommand\ChapterTOCFormat{+m}
+{
+	\apptocmd\@ChapterTOCFormat{#1}{}{}
+}
+
+\newskip\afterchaptertocskip
+\let\afterchaptertocskip\bigskip
+
+\ExplSyntaxOn
+
+\newcounter{obchaptocmaxdepth}\setcounter{obchaptocmaxdepth}{2} % default = subsection
+\NewDocumentCommand \chaptertocmaxlevel { m }
+{
+	\regex_match:nnTF { [0-9] } { #1 }
+	{
+		\setcounter{obchaptocmaxdepth} { #1 }
+	}
+	{
+		\@setclcnt{#1}{obchaptocmaxdepth}
+	}
+}
+
+\NewDocumentCommand \TOCFormatsameas { m m m }
+{
+	\clist_set:Nn \l_tmpa_clist { #3 }
+	\clist_map_inline:Nn \l_tmpa_clist 
+	{
+		\cs_set_eq:cc { cft #1 ##1 } { cft #2 ##1 }
+	}
+}
+
+\ExplSyntaxOff
+
+\newif\ifChapterTOCafterskip
+\ChapterTOCafterskiptrue
+
+\newcommand\chaptertoc{
+  \begingroup
+  \chaptertocfont
+  \let\@orig at markboth\markboth
+  \renewcommand\markboth[2]{}
+  \setcounter{@memmarkcntra}{\value{tocdepth}}
+  \let\changetocdepth\@gobble
+  \normalchangetocdepth{-10}
+  \cftinsertcode{start-\thetocmarker}{\normalchangetocdepth{\theobchaptocmaxdepth}}
+  \cftinsertcode{end-\thetocmarker}{\normalchangetocdepth{-10}}
+  \let\tocheadstart\relax
+  \let\printtoctitle\@gobble
+  \let\aftertoctitle\relax
+  %%% formatting chaptertoc
+  \@ChapterTOCFormat
+  \tableofcontents*
+  \endgroup
+  \setcounter{tocdepth}{\value{@memmarkcntra}}
+  \m at mindentafterchapter
+  \ifChapterTOCafterskip
+	  \par\afterchaptertocskip
+  \fi
+  \@afterheading
+}
+
+\endinput


Property changes on: trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/obchaptertoc.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/ob-mathleading.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/ob-mathleading.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/ob-mathleading.sty	2021-03-12 23:30:42 UTC (rev 58310)
@@ -0,0 +1,144 @@
+%%
+%% file: ob-mathleading.sty
+%%
+%% written by nova
+%%
+%% a supplementary package to oblivoir
+%% set lineskips in multi-lined math environments
+%% (amsmath required)
+%%
+%% v. 0.1alpha  : 2018/12/22
+%% v. 0.0.1-pr2 : 2018/12/24
+%% v. 0.0.1     : 2018/12/25
+%%
+\RequirePackage{expl3}
+\ProvidesExplPackage
+	{ob-mathleading}
+	{2018/12/25}
+	{v0.0.1}
+	{adjust math leadings for oblivoir}
+
+\@ifpackageloaded{amsmath}{}{\RequirePackage{amsmath}}
+\RequirePackage{xparse}
+\RequirePackage{etoolbox}
+\RequirePackage{l3keys2e}
+
+\keys_define:nn { obmathleading }
+{
+	default			.bool_set:N	= \l_defaultopt_bool,
+	mathleading		.fp_set:N 	= \l_opt_mathleading_fp,
+	exception		.clist_set:N = \g_opt_mlexception_clist,
+	noallowdisplaybreaks	.bool_set:N = \g_noallowdispbreak_bool
+}
+
+\keys_set:nn { obmathleading }
+{
+	default 	= true,
+	mathleading	= 1.0,
+	exception	= {},
+	noallowdisplaybreaks = false
+}
+
+\ProcessKeysOptions { obmathleading }
+
+\scan_stop:
+
+\bool_if:NTF \l_defaultopt_bool
+{
+	\tl_set:Nn \l_obml_stretch_tl { \fp_use:N \l_opt_mathleading_fp }
+}
+{
+	\tl_set:No \l_obml_stretch_tl { \baselinestretch }
+}
+
+\NewDocumentCommand \obmathleading { m }
+{
+	\tl_set:Nn \l_obml_stretch_tl { #1 }
+}
+
+\NewDocumentEnvironment { obMathLeading } { O{1.0} }
+{
+	\obmathleading { #1 }
+}
+{
+}
+
+\cs_new:Npn \mathleading_set_default:nN #1 #2
+{
+	\clist_if_in:NnF \g_opt_mlexception_clist { #1 }
+	{
+    	\AtBeginEnvironment { #1 }
+    	{
+    		\linespread { #2 } \selectfont \ignorespaces
+    	}
+	}
+}
+
+\cs_new:Npn \splitleading_set_default:N #1
+{
+	\clist_if_in:NnF \g_opt_mlexception_clist { split }
+	{
+    	\patchcmd \start at split
+    	{ \spread at equation }
+    	{ \linespread { #1 } \selectfont \spread at equation }
+    	{ }
+    	{ }
+	}
+}
+
+\mathleading_set_default:nN { array    } \l_obml_stretch_tl
+\mathleading_set_default:nN { matrix   } \l_obml_stretch_tl
+\mathleading_set_default:nN { matrix*  } \l_obml_stretch_tl
+\mathleading_set_default:nN { pmatrix  } \l_obml_stretch_tl
+\mathleading_set_default:nN { pmatrix* } \l_obml_stretch_tl
+\mathleading_set_default:nN { bmatrix  } \l_obml_stretch_tl
+\mathleading_set_default:nN { bmatrix* } \l_obml_stretch_tl
+\mathleading_set_default:nN { Bmatrix  } \l_obml_stretch_tl
+\mathleading_set_default:nN { Bmatrix* } \l_obml_stretch_tl
+\mathleading_set_default:nN { vmatrix  } \l_obml_stretch_tl
+\mathleading_set_default:nN { vmatrix* } \l_obml_stretch_tl
+\mathleading_set_default:nN { Vmatrix  } \l_obml_stretch_tl
+\mathleading_set_default:nN { Vmatrix* } \l_obml_stretch_tl
+\mathleading_set_default:nN { cases    } \l_obml_stretch_tl
+\mathleading_set_default:nN { cases*   } \l_obml_stretch_tl
+\mathleading_set_default:nN { aligned  } \l_obml_stretch_tl
+\mathleading_set_default:nN { alignedat } \l_obml_stretch_tl
+\mathleading_set_default:nN { gathered } \l_obml_stretch_tl
+
+\splitleading_set_default:N \l_obml_stretch_tl 
+
+\clist_if_in:NnF \g_opt_mlexception_clist { gather }
+{
+	\patchcmd \start at gather
+	{ \collect at body }
+	{ \linespread { \l_obml_stretch_tl } \selectfont \collect at body }
+	{ }
+	{ }
+}
+
+\clist_if_in:NnF \g_opt_mlexception_clist { align }
+{
+	\patchcmd \start at align
+	{ \collect at body }
+	{ \linespread { \l_obml_stretch_tl } \selectfont \collect at body }
+	{ }
+	{ }
+}
+
+\clist_if_in:NnF \g_opt_mlexception_clist { multline }
+{
+	\patchcmd \start at multline
+	{ \collect at body }
+	{ \linespread { \l_obml_stretch_tl } \selectfont \collect at body }
+	{ }
+	{ }
+}
+
+
+
+\bool_if:NF \g_noallowdispbreak_bool
+{
+	\AtBeginDocument { \allowdisplaybreaks }
+}
+
+%% end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/ob-mathleading.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/ob-unfontsdefault.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/ob-unfontsdefault.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/ob-unfontsdefault.sty	2021-03-12 23:30:42 UTC (rev 58310)
@@ -0,0 +1,143 @@
+%%
+%% ob-unfontsdefault.sty
+%% part of xob-font.sty
+%%
+%% public domain
+%%
+\ProvidesExplPackage{ob-unfontsdefault}
+	{2020/10/26}
+	{v0.4}
+	{Un and Baekmuk Fonts for xetexko}
+
+\RequirePackage{l3keys2e}
+
+\msg_new:nnn { ksxeunfonts } { errormsg } { Legacy~TeX~engine~not~supported }
+
+\sys_if_engine_pdftex:T { 
+	\msg_error:nn { ksxeunfonts } { errormsg }
+}
+
+\keys_define:nn { ksxeunfonts }
+{
+	mj	.tl_set:N	= \opt_mjfont_tl,
+	mjbold	.tl_set:N	= \opt_mjboldfont_tl,
+	mjitalic	.tl_set:N	= \opt_mjitalicfont_tl,
+	mjbolditalic	.tl_set:N	= \opt_mjbolditalicfont_tl,
+	gt	.tl_set:N	= \opt_gtfont_tl,
+	gtbold	.tl_set:N	= \opt_gtboldfont_tl,
+	gtitalic	.tl_set:N	= \opt_gtitalicfont_tl,
+	gtbolditalic	.tl_set:N	= \opt_gtbolditalicfont_tl,
+	renderer	.tl_set:N 	= \opt_renderer_tl,
+	fakeitalic	.bool_set:N	= \opt_fakeitalic_bool,
+	jamo	.bool_set:N	= \opt_script_bool,
+	mjinterhangul	.tl_set:N	= \opt_mjinterhangul_tl,
+	gtinterhangul	.tl_set:N	= \opt_gtinterhangul_tl,
+	mjwordspace	.tl_set:N	= \opt_mjwordspace_tl,
+	gtwordspace	.tl_set:N	= \opt_gtwordspace_tl,
+	untaza	.bool_set:N	= \opt_untaza_bool,
+	more	.tl_set:N 	= \opt_moreopt_tl,
+	other	.tl_set:N	= \opt_otheropt_tl,
+	baekmuk	.bool_set:N = \opt_baekmuk_bool,
+}
+
+\keys_set:nn { ksxeunfonts }
+{
+	mj = UnBatang.ttf,
+	mjbold	= UnBatangBold.ttf,
+	mjitalic	= UnGraphic.ttf,
+	mjbolditalic	= UnGraphicBold.ttf,
+	gt = UnDotum.ttf,
+	gtbold = UnDotumBold.ttf,
+	gtitalic = UnDinaru.ttf,
+	gtbolditalic = UnYetgul.ttf,
+	renderer = OpenType,
+	fakeitalic = false,
+	jamo = false,
+	mjinterhangul = .06em,
+	gtinterhangul = .04em,
+	mjwordspace = {.95,.45,.25},
+	gtwordspace = {.96,.45,.2},
+	more = {},
+	other = {},
+	baekmuk = false,
+}
+
+\ProcessKeysOptions { ksxeunfonts }
+
+\bool_if:NT \opt_baekmuk_bool
+{
+    \keys_set:nn { ksxeunfonts }
+    {
+    	mj = batang.ttf,
+    	mjbold	= *,
+    	mjitalic	= *,
+    	mjbolditalic	= *,
+    	gt = dotum.ttf,
+    	gtbold = *,
+    	gtitalic = gulim.ttf,
+    	gtbolditalic = hline.ttf,
+    	renderer = OpenType,
+    	fakeitalic = true,
+    	jamo = false,
+    	mjinterhangul = .06em,
+    	gtinterhangul = .045em,
+    	mjwordspace = {.48,.3,.2},
+    	gtwordspace = {.50,.3,.2},
+    	more = {BoldFeatures={FakeBold=1.1},BoldItalicFeatures={FakeBold=1.1}},
+    }
+}
+
+\sys_if_engine_luatex:T {
+	\hangulbyhangulfont=1
+}
+
+\bool_if:NTF \opt_fakeitalic_bool
+{
+	\tl_set:Nn \l_fakeitalic_option_tl { 
+		BoldItalicFeatures = { FakeSlant = { 0.167 } },
+		AutoFakeSlant,
+	}
+}
+{
+	\tl_set:Nn \l_fakeitalic_option_tl { }
+}
+
+\bool_if:NTF \opt_script_bool
+{
+	\tl_set:Nn \l_script_option_tl { Script = Hangul, }
+}
+{
+	\tl_set:Nn \l_script_option_tl {}
+}
+
+\setmainhangulfont{\opt_mjfont_tl}[
+	BoldFont = \opt_mjboldfont_tl,
+	ItalicFont = \opt_mjitalicfont_tl,
+	BoldItalicFont = \opt_mjbolditalicfont_tl,
+	Renderer = \opt_renderer_tl,
+	InterHangul = -\opt_mjinterhangul_tl,
+	WordSpace = {\opt_mjwordspace_tl},
+	\l_script_option_tl \l_fakeitalic_option_tl
+	\opt_moreopt_tl,
+	\opt_otheropt_tl
+]
+
+\setsanshangulfont{\opt_gtfont_tl}[
+	BoldFont = \opt_gtboldfont_tl,
+	ItalicFont = \opt_gtitalicfont_tl,
+	BoldItalicFont = \opt_gtbolditalicfont_tl,
+	Renderer = \opt_renderer_tl,
+	InterHangul = -\opt_gtinterhangul_tl,
+	WordSpace = {\opt_gtwordspace_tl},
+	\l_fakeitalic_option_tl
+	\opt_moreopt_tl,
+	\opt_otheropt_tl
+]
+
+\bool_if:NT \opt_untaza_bool
+{
+	\setmonohangulfont { UnTaza.ttf }
+	\setmonohanjafont { UnDotum.ttf }
+}
+
+\endinput


Property changes on: trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/ob-unfontsdefault.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-font.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-font.sty	2021-03-12 23:30:14 UTC (rev 58309)
+++ trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-font.sty	2021-03-12 23:30:42 UTC (rev 58310)
@@ -1,6 +1,6 @@
 %% xob-font.sty
 %%
-%% Copyright (c) 2014-2020 Kangsoo Kim <karnes at ktug org>
+%% Copyright (c) 2014-2021 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
@@ -15,7 +15,7 @@
 %%  oblivoir hangul/hanja font setting.
 %%  part of oblivoir
 %%
-\ProvidesPackage{xob-font}[2020/03/20 v0.8.1 select hangul/hanja fonts for oblivoir]
+\ProvidesPackage{xob-font}[2021/03/03 v0.9 select hangul/hanja fonts for oblivoir]
 
 %%% obsolete options: retain \if at .. conditions for backward compatibility
 \newif\if at nowin\@nowinfalse
@@ -60,6 +60,8 @@
 \if at gremph    \bool_set_false:N \ital_fake_bool    \else \bool_set_true:N  \ital_fake_bool    \fi
 \if at oldhangul \bool_set_true:N  \hangulscript_bool \else \bool_set_false:N \hangulscript_bool \fi
 
+\bool_new:N \opt_mainfontdeclared_bool
+
 \bool_set_false:N \bold_prov_bool
 \bool_set_false:N \in_hanja_mode
 \bool_set_false:N \mono_mode
@@ -624,8 +626,6 @@
 	
 }
 
-\ExplSyntaxOff
-
 %%% starred version commands are provided for backward compatibility.
 \protected\def\setkormainfont{%
 	\@ifstar{\setkorfontorigstar*{main}}{%
@@ -641,7 +641,7 @@
 %%% \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\setkomainfont{\bool_set_true:N \opt_mainfontdeclared_bool\setkorfontxob{main}}
 \protected\def\setkosansfont{\setkorfontxob{sans}}
 \protected\def\setkomonofont{\setkorfontxob{mono}}
 
@@ -663,28 +663,40 @@
 %		\setkomonofont(UnTaza.ttf)
 %\fi
 
-\if at nanumfonts
-	\if at 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 at hcrfonts
-	\setkomainfont(HCRBatangLVT)(HCRBatangLVT-Bold)(HCRBatangLVT)
-	\setkosansfont(HCRDotumLVT)(HCRDotumLVT-Bold)(HCRDotumLVT)
-	\setkomonofont(HCRDotumLVT)
-\fi
+\AddToHook{env/document/before}{%
+	\bool_if:NF \opt_mainfontdeclared_bool
+	{
+        \if at nanumfonts
+        	\if at 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 at hcrfonts
+        	\setkomainfont(HCRBatangLVT)(HCRBatangLVT-Bold)(HCRBatangLVT)
+        	\setkosansfont(HCRDotumLVT)(HCRDotumLVT-Bold)(HCRDotumLVT)
+        	\setkomonofont(HCRDotumLVT)
+        \else
+        %%% 2020/03/03: Now UnFonts is set to default
+        \RequirePackage{ob-unfontsdefault}
+        \fi
+        \fi
+    }
+}
 %\setkomainfont(UnBatang.ttf)(UnBatangBold.ttf)(UnGraphic.ttf)
 %\fi\fi
 
+\ExplSyntaxOff
+
 \endinput
 
 %%% end of file `xob-font.sty`
 %% CHANGES
+%% v0.9 : unfontsxe introduced
 %% v0.8.1 : minor bug fix
 %% 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.

Modified: trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-xl.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-xl.cls	2021-03-12 23:30:14 UTC (rev 58309)
+++ trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-xl.cls	2021-03-12 23:30:42 UTC (rev 58310)
@@ -1,6 +1,6 @@
 %% File `oblivoir-xl.cls`
 %%
-%% (C) Copyright 2006-2020 Kangsoo Kim <karnes at ktug org>
+%% (C) Copyright 2006-2021 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
@@ -14,7 +14,7 @@
 %% 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]
+  [2020/03/03 v0.8.5 article-like class to typeset Korean]
 %\typeout{A variant of oblivoir class for Lua- or XeLaTeX.}
 
 \providecommand\@DisabledOption[1]{%

Modified: trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir.cls	2021-03-12 23:30:14 UTC (rev 58309)
+++ trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir.cls	2021-03-12 23:30:42 UTC (rev 58310)
@@ -1,6 +1,6 @@
 %% File `oblivoir.cls`
 %%
-%% (C) Copyright 2006-2020 Kangsoo Kim <karnes at ktug org>
+%% (C) Copyright 2006-2021 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
@@ -10,7 +10,7 @@
 %% and version 1.3c or later is part of all distributions of LaTeX
 %% version 2006/05/20 or later.
 %%
-\ProvidesClass{oblivoir}[2020/02/09 v2.2]
+\ProvidesClass{oblivoir}[2021/03/03 v3.0]
 
 \RequirePackage{xkeyval}
 \RequirePackage{xparse}

Modified: trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/xoblivoir.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/xoblivoir.cls	2021-03-12 23:30:14 UTC (rev 58309)
+++ trunk/Master/texmf-dist/tex/latex/kotex-oblivoir/xoblivoir.cls	2021-03-12 23:30:42 UTC (rev 58310)
@@ -1,6 +1,6 @@
 %% File `xoblivoir.cls`
 %%
-%% (C) Copyright 2006-2020 Kangsoo Kim <karnes at ktug org>
+%% (C) Copyright 2006-2021 Kangsoo Kim <karnes at ktug org>
 %% (C) Copyright 2013      Kihwang Lee <leekh at ktug org>
 %%
 %% This work may be distributed and/or modified under the



More information about the tex-live-commits mailing list.