diff options
author | Karl Berry <karl@freefriends.org> | 2021-03-12 23:32:15 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2021-03-12 23:32:15 +0000 |
commit | 428691c5d1bd902c4ced71a2d512effbc948a169 (patch) | |
tree | 7e6386dbb14f669215a9bde2414da0d7b7a3918f /Master/texmf-dist | |
parent | 2d57d53d4429c576c4fe3d705b2d8ff25e86f8fa (diff) |
kotex-oblivoir (9mar21) (branch)
git-svn-id: svn://tug.org/texlive/branches/branch2020.0@58313 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
18 files changed, 1420 insertions, 93 deletions
diff --git a/Master/texmf-dist/doc/latex/kotex-oblivoir/ChangeLog b/Master/texmf-dist/doc/latex/kotex-oblivoir/ChangeLog index 3d3363ec93c..7260a32e8cb 100644 --- a/Master/texmf-dist/doc/latex/kotex-oblivoir/ChangeLog +++ b/Master/texmf-dist/doc/latex/kotex-oblivoir/ChangeLog @@ -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 diff --git a/Master/texmf-dist/doc/latex/kotex-oblivoir/README b/Master/texmf-dist/doc/latex/kotex-oblivoir/README index a91b290d9e9..ac0485cf9d7 100644 --- a/Master/texmf-dist/doc/latex/kotex-oblivoir/README +++ b/Master/texmf-dist/doc/latex/kotex-oblivoir/README @@ -1,4 +1,4 @@ -kotex-oblivoir, v2.2 +kotex-oblivoir, v3.0 ==================== Introduction diff --git a/Master/texmf-dist/doc/latex/kotex-oblivoir/ob-mathleading-doc.pdf b/Master/texmf-dist/doc/latex/kotex-oblivoir/ob-mathleading-doc.pdf Binary files differnew file mode 100644 index 00000000000..ef86c8a924b --- /dev/null +++ b/Master/texmf-dist/doc/latex/kotex-oblivoir/ob-mathleading-doc.pdf diff --git a/Master/texmf-dist/doc/latex/kotex-oblivoir/ob-mathleading-doc.tex b/Master/texmf-dist/doc/latex/kotex-oblivoir/ob-mathleading-doc.tex new file mode 100644 index 00000000000..47f8b06dbce --- /dev/null +++ b/Master/texmf-dist/doc/latex/kotex-oblivoir/ob-mathleading-doc.tex @@ -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} diff --git a/Master/texmf-dist/doc/latex/kotex-oblivoir/obchaptertoc-doc.pdf b/Master/texmf-dist/doc/latex/kotex-oblivoir/obchaptertoc-doc.pdf Binary files differnew file mode 100644 index 00000000000..a63f3f15d39 --- /dev/null +++ b/Master/texmf-dist/doc/latex/kotex-oblivoir/obchaptertoc-doc.pdf diff --git a/Master/texmf-dist/doc/latex/kotex-oblivoir/obchaptertoc-doc.tex b/Master/texmf-dist/doc/latex/kotex-oblivoir/obchaptertoc-doc.tex new file mode 100644 index 00000000000..f4ae7bd7fe5 --- /dev/null +++ b/Master/texmf-dist/doc/latex/kotex-oblivoir/obchaptertoc-doc.tex @@ -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@chapter{} + \renewcommand*\post@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} + diff --git a/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-simpledoc.pdf b/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-simpledoc.pdf Binary files differindex 7b1184120f0..78aa2ff2c65 100644 --- a/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-simpledoc.pdf +++ b/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-simpledoc.pdf diff --git a/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-simpledoc.tex b/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-simpledoc.tex index adcec4cc165..ed7d01c6e1a 100644 --- a/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-simpledoc.tex +++ b/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-simpledoc.tex @@ -95,16 +95,16 @@ \begin{document} -\title{초간단 \obclass{} v2.2 사용법} +\title{초간단 \obclass{} v3.0 사용법} -\date{2020년 2월} +\date{2021년 3월} \author{x-ob-liv-oir } \maketitle \begin{abstract} -\obclass{} 클래스 2.0 버전은 그 동안 별도의 브랜치로 개발되어 오던 +\obclass{} 클래스 3.0 버전은 그 동안 별도의 브랜치로 개발되어 오던 \xobclass와 \obclass를 통합하여 완전히 동일한 클래스가 되었다. 이 문서는 \obclass{} 즉 \xobclass를 사용하는 방법을 간략히 기술한다. @@ -796,6 +796,9 @@ fontspec 설명서와 \xetexko, \luatexko\ 설명서를 참고하라. \subsection{기정의 폰트 세트} +기정의 글꼴 옵션은 \texttt{[nanum]}과 \texttt{[hcr]}이 있다. 나눔 글꼴과 함초롬 글꼴 +자체는 자신이 스스로 설치하여야 한다. + 클래스 옵션으로 \texttt{[nanum]}을 지정하면 본문이 나눔명조와 나눔고딕으로 식자된다.\footnote{% \XeTeX 이나 \LuaTeX 에서는 은 바탕을 기본 글꼴로 하고 있다. \hologo{pdfTeX}을 위한 kotex-utf의 경우는 여전히 nanumtype1이다.} @@ -810,6 +813,15 @@ kotex-utf의 경우는 여전히 nanumtype1이다.} 그밖의 폰트에서 옛한글을 처리하게 하려면(예를 들어 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 @@ oblivoir가 추가적으로 제공하는 페이지 스타일로 \texttt{hangul} \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 @@ Lua\TeX 과 \XeTeX 이라는 유니코드 텍 엔진의 등장은, 이러한 모 \section{변경 이력} +2021년의 3.0 버전은 상당히 많은 버그와 의도와 다른 동작을 수정하고 새로운 +기능을 추가하였다. + 2020년의 2.2 버전은 그 동안 알려진 몇 가지 버그를 수정하고 약간의 기능을 추가하는 데 그쳤다. diff --git a/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-test.tex b/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-test.tex index 58952054f1c..41b45aab741 100644 --- a/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-test.tex +++ b/Master/texmf-dist/doc/latex/kotex-oblivoir/oblivoir-test.tex @@ -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} diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memhangul-common.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memhangul-common.sty index 4550be54675..f96aafc7317 100644 --- a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memhangul-common.sty +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memhangul-common.sty @@ -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@gettitle{#1}% +%%%% \def\f@rtoc{#1}% +%%%% \@nameuse{part@f@rtoc@before@write@hook}% +%%%% \phantomsection +%%%% \mempreaddparttotochook +%%%% \ifnum \c@secnumdepth >-2\relax +%%%% \refstepcounter{part}% +%%%% \addcontentsline{toc}{part}% +%%%%% {\protect\partnumberline{\thepart}#1}% +%%%% {\protect\partnumberline{\hparttitlehead}#1}% +%%%% \mempartinfo{\thepart}{#1}{#2}% +%%%% \else +%%%% \addcontentsline{toc}{part}{#1}% +%%%% \mempartinfo{}{#1}{#2}% +%%%% \fi +%%%% \mempostaddparttotochook +%%%% \partmark{#1}% +%%%% {\centering +%%%% \interlinepenalty \@M +%%%% \normalfont +%%%% \ifnum \c@secnumdepth >-2\relax +%%%%% \printpartname \partnamenum \printpartnum +%%%%% \midpartskip +%%%% \prepartnum \partnamenum \printpartnum \partnamenum \postpartnum +%%%% \midpartskip +%%%% \fi +%%%% \printparttitle{#2}\par}% +%%%% \@endpart} + + +\def\obparttitlealignment{\centering} + \long\def\@part[#1]#2{% -% \ifx#1\@empty\PrerenderUnicode{#2}\else\PrerenderUnicode{#1}\fi \M@gettitle{#1}% \def\f@rtoc{#1}% \@nameuse{part@f@rtoc@before@write@hook}% @@ -76,17 +109,19 @@ \ifnum \c@secnumdepth >-2\relax \refstepcounter{part}% \addcontentsline{toc}{part}% -% {\protect\partnumberline{\thepart}#1}% - {\protect\partnumberline{\hparttitlehead}#1}% - \mempartinfo{\thepart}{#1}{#2}% +% {\protect\partnumberline{\thepart}\f@rtoc}% + {\protect\partnumberline{\hparttitlehead}\f@rtoc}% + \mempartinfo{\thepart}{\f@rtoc}{#2}% \else - \addcontentsline{toc}{part}{#1}% - \mempartinfo{}{#1}{#2}% + \addcontentsline{toc}{part}{\f@rtoc}% + \mempartinfo{}{\f@rtoc}{#2}% \fi \mempostaddparttotochook \partmark{#1}% - {\centering + {%\centering + \obparttitlealignment \interlinepenalty \@M + \parskip\z@ \normalfont \ifnum \c@secnumdepth >-2\relax % \printpartname \partnamenum \printpartnum @@ -227,16 +262,13 @@ \ifx\ch@pt@c\m@m@empty % no optional args \def\f@rtoc{#1}% \def\f@rhdr{#1}% -% \PrerenderUnicode{#1}% \else % at least one opt arg \def\f@rtoc{\ch@pt@c}% \nametest{#1}{#2}% \ifsamename % one opt arg \def\f@rhdr{\ch@pt@c}% -% \PrerenderUnicode{#1#2}% \else % two opt args \def\f@rhdr{#1}% -% \PrerenderUnicode{#1}% \fi \fi \m@m@Andfalse @@ -296,6 +328,75 @@ \memendofchapterhook% } +%%%\def\@chapter[#1]#2{% +%%% \m@mpn@new@chaptrue% +%%% \m@mpn@new@schapfalse% +%%% \def\f@rbdy{#2}% +%%% \ifx\ch@pt@c\@empty % no optional args +%%% \def\f@rtoc{#2}% +%%% \def\f@rhdr{#2}% +%%% \else % at least one opt arg +%%% \let\f@rtoc\ch@pt@c +%%% \ifx\@empty#1\@empty +%%% \let\f@rhdr\ch@pt@c +%%% \else +%%% \def\f@rhdr{#1}% +%%% \fi +%%% \fi +%%% \m@m@Andfalse +%%% \ifnum \c@secnumdepth >\m@ne +%%% \if@mainmatter +%%% \m@m@Andtrue +%%% \fi +%%% \fi +%%% \ifm@m@And +%%% \ifanappendix +%%% \refstepcounter{APPchapter}% +%%% \else +%%% \refstepcounter{chapter}% +%%% \fi +%%% \fi +%%% \chaptermark{\f@rhdr} +%%% \ifartopt +%%% \@makechapterhead{#2}% +%%% \@afterheading +%%% \else +%%% \insertchapterspace +%%% \if@twocolumn +%%% \@topnewpage[\@makechapterhead{#2}]% +%%% \else +%%% \@makechapterhead{#2}% +%%% \fi +%%% \@afterheading +%%% \fi +%%% \@nameuse{chapter@f@rtoc@before@write@hook}% +%%% \mempreaddchaptertotochook% +%%% \ifm@m@And +%%% \ifanappendix +%%% \addcontentsline{toc}{appendix}{% +%%% \protect\chapternumberline{\hchaptertitlehead}\f@rtoc}% +%%% \memappchapinfo{\thechapter}{\f@rtoc}{\f@rhdr}{#2}% +%%% \else +%%% \addcontentsline{toc}{chapter}{% +%%% \protect\chapternumberline{\hchaptertitlehead}\f@rtoc}% +%%% \memchapinfo{\hchaptertitlehead}{\f@rtoc}{\f@rhdr}{#2}% +%%% \fi +%%% \else +%%% \addcontentsline{toc}{chapter}{\f@rtoc}% +%%% \ifanappendix +%%% \memappchapinfo{}{\f@rtoc}{\f@rhdr}{#2}% +%%% \else +%%% \memchapinfo{\hchaptertitlehead}{\f@rtoc}{\f@rhdr}{#2}% +%%% \fi +%%% \fi +%%% \mempostaddchaptertotochook% +%%% \ifheadnameref\M@gettitle{\f@rhdr}\else\M@gettitle{\f@rtoc}\fi +%%% \ifanappendix +%%% \protected@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@mschapter}[2][\@empty]{% +%%% \@schapter{#2}% +%%% \ifx \@empty#1 +%%% \def\f@rhdr{#2}% +%%%% \PrerenderUnicode{#2}% +%%% \else % opt arg +%%% \def\f@rhdr{#1}% +%%%% \PrerenderUnicode{#1}% +%%% \setcounter{secnumdepth}{-10}% +%%% \chaptermark{#1}% +%%% \setcounter{secnumdepth}{\value{maxsecnumdepth}}% +%%% \fi +%%% \ifanappendix +%%% \memappchapstarinfo{\f@rhdr}{#2}% +%%% \else +%%% \memchapstarinfo{\f@rhdr}{#2}% +%%% \fi} + \renewcommand{\@m@mschapter}[2][\@empty]{% \@schapter{#2}% \ifx \@empty#1 \def\f@rhdr{#2}% -% \PrerenderUnicode{#2}% \else % opt arg \def\f@rhdr{#1}% -% \PrerenderUnicode{#1}% \setcounter{secnumdepth}{-10}% \chaptermark{#1}% \setcounter{secnumdepth}{\value{maxsecnumdepth}}% @@ -335,18 +452,20 @@ \memappchapstarinfo{\f@rhdr}{#2}% \else \memchapstarinfo{\f@rhdr}{#2}% - \fi} + \fi + \ifheadnameref\M@gettitle{\f@rhdr}\else\M@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 +%%%% } +%%%%} %%%%%%%%%%%%% @@ -759,24 +878,47 @@ \InputIfFileExists{memhangul-patch.sty}{}{} %%% fig, tab caption +%%%\def\obCaptionFont#1{\def\@figtabcaptfont@{#1}} +%%%\providecommand\@figtabcaptfont@{\normalfont} +%%%\if@figtabcapt@ +%%%\AtBeginDocument{ +%%%\@ifpackageloaded{caption}{% requested by Progress +%%% \DeclareCaptionLabelFormat{xob-cnm-parens}{\cnm{#1~#2}} +%%% \captionsetup{labelformat=xob-cnm-parens,labelsep=space} +%%%}% +%%%{% +%%% \precaption{{\@figtabcaptfont@\cnm@char@open}} +%%% \captiondelim{{\@figtabcaptfont@\cnm@char@close}\quad} +%%% \renewcommand\cfttablepresnum{\cnm@char@open\tablename\space} +%%% \renewcommand\cfttableaftersnum{\cnm@char@close} +%%% \setlength\cfttablenumwidth{3.8em} +%%% \renewcommand\cftfigurepresnum{\cnm@char@open\figurename\space} +%%% \renewcommand\cftfigureaftersnum{\cnm@char@close} +%%% \setlength\cftfigurenumwidth{4.5em} +%%%} +%%%} +%%%\fi + \def\obCaptionFont#1{\def\@figtabcaptfont@{#1}} +\def\obCaptionnameOpen{\cnm@char@open} +\def\obCaptionnameClose{\cnm@char@close} \providecommand\@figtabcaptfont@{\normalfont} \if@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@char@open}} - \captiondelim{{\@figtabcaptfont@\cnm@char@close}\quad} - \renewcommand\cfttablepresnum{\cnm@char@open\tablename\space} - \renewcommand\cfttableaftersnum{\cnm@char@close} - \setlength\cfttablenumwidth{3.8em} - \renewcommand\cftfigurepresnum{\cnm@char@open\figurename\space} - \renewcommand\cftfigureaftersnum{\cnm@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 @@ -1176,6 +1318,166 @@ \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@sfirmlists}{\ob@firmlists}} + +\newcommand*{\ob@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@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 diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memucs-setspace.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memucs-setspace.sty index a4353ab9715..69e6c8d6114 100644 --- a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memucs-setspace.sty +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/memucs-setspace.sty @@ -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@singlespacefn -\def\m@mold@footnotetext{\@memsetspace@footnotetext} -\renewcommand{\@footnotetext}[1]{\m@mold@footnotetext{#1}\m@mmf@prepare} -\long\def\@memsetspace@footnotetext#1{% - \insert\footins{% -% GT: Next line added. Hook desired here! - \@floatfnspacinghook\memucsfninterwordhook -% \def\baselinestretch {\setspace@hangulfspace}% -% \@SetFloatspaces - \reset@font\footnotesize - \interlinepenalty\interfootnotelinepenalty - \splittopskip\footnotesep - \splitmaxdepth \dp\strutbox \floatingpenalty \@MM +%%%%\def\m@mold@footnotetext{\@memsetspace@footnotetext} +%%%%\renewcommand{\@footnotetext}[1]{\m@mold@footnotetext{#1}\m@mmf@prepare} +%%%%\long\def\@memsetspace@footnotetext#1{% +%%%% \insert\footins{% +%%%%% GT: Next line added. Hook desired here! +%%%% \@floatfnspacinghook\memucsfninterwordhook +%%%%% \def\baselinestretch {\setspace@hangulfspace}% +%%%%% \@SetFloatspaces +%%%% \reset@font\footnotesize +%%%% \interlinepenalty\interfootnotelinepenalty +%%%% \splittopskip\footnotesep +%%%% \splitmaxdepth \dp\strutbox \floatingpenalty \@MM +%%%% \hsize\columnwidth +%%%% \@parboxrestore +%%%% \protected@edef\@currentlabel{% +%%%% \csname p@footnote\endcsname\@thefnmark +%%%% }% +%%%% \color@begingroup +%%%% \@makefntext{% +%%%% \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% +%%%% \color@endgroup}} +%%%% +%%%%% Minipage footnotes. +%%%%\renewcommand{\@mpfootnotetext}[1]{% +%%%% \global\setbox\@mpfootins\vbox{% +%%%% \unvbox\@mpfootins +%%%%% GT: Next line added. Hook desired here! +%%%% \@floatfnspacinghook\memucsfninterwordhook +%%%%% \def\baselinestretch {\setspace@hangulfspace}% +%%%% \foottextfont \hsize\columnwidth \@parboxrestore +%%%% \protected@edef\@currentlabel{\csname p@mpfootnote\endcsname\@thefnmark}% +%%%% \color@begingroup +%%%% \@makefntext{% +%%%% \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% +%%%% \color@endgroup}} + +\renewcommand{\@footnotetext}[1]{% + \ifm@mfnmargin% use marginpar + \marginpar{% +% \def\baselinestretch{\m@m@footnote@spacing}% + \@floatfnspacinghook\memucsfninterwordhook + \reset@font + \foottextfont + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \color@begingroup + \@makefntext{\ignorespaces#1}% + \color@endgroup}% + \else% regular feet + \insert\footins{% + % \def\baselinestretch{\m@m@footnote@spacing}% + \@floatfnspacinghook\memucsfninterwordhook + \reset@font + \foottextfont + \@preamfntext \hsize\columnwidth - \@parboxrestore \protected@edef\@currentlabel{% - \csname p@footnote\endcsname\@thefnmark - }% + \csname p@footnote\endcsname\@thefnmark}% \color@begingroup \@makefntext{% - \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% - \color@endgroup}} + \rule\z@\footnotesep\ignorespaces{\foottextfont #1}% + \@finalstrut\strutbox}% + \color@endgroup}% + \fi% + \m@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@hangulfspace}% +% \def\baselinestretch{\m@m@footnote@spacing}% + \@floatfnspacinghook\memucsfninterwordhook \foottextfont \hsize\columnwidth \@parboxrestore - \protected@edef\@currentlabel{\csname p@mpfootnote\endcsname\@thefnmark}% + \protected@edef\@currentlabel{% + \csname p@mpfootnote\endcsname\@thefnmark}% \color@begingroup + \reset@font% \@makefntext{% - \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% + \rule\z@\footnotesep\ignorespaces{\foottextfont #1}% + \@finalstrut\strutbox}% \color@endgroup}} +\renewcommand{\@sidefootnotetext}[1]{\insert\sidefootins{% + \hsize\sidefootwidth + \@parboxrestore +% \def\baselinestretch{\m@m@footnote@spacing}% + \@floatfnspacinghook\memucsfninterwordhook + \sidefootform \normalsize\normalfont\sidefoottextfont + \splittopskip=\ht\strutbox + \splitmaxdepth=\dp\strutbox + \allowbreak + \prevdepth=\dp\strutbox + \vskip-\parskip + \protected@edef\@currentlabel{% + \csname p@sidefootnote\endcsname\@thesidefnmark}% +\color@begingroup +\@makesidefntext{{\sidefoottextfont #1}}% +\color@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@mmf@prepare} + \else\fi % ** Line space environments. diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/obchaptertoc.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/obchaptertoc.sty new file mode 100644 index 00000000000..3e9b5eb4af5 --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-common/obchaptertoc.sty @@ -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@mpn@new@chaptrue% +%%% \m@mpn@new@schapfalse% +%%% \def\f@rbdy{#2}% +%%% \ifx\ch@pt@c\m@m@empty % no optional args +%%% \def\f@rtoc{#1}% +%%% \def\f@rhdr{#1}% +%%% \else % at least one opt arg +%%% \def\f@rtoc{\ch@pt@c}% +%%% \nametest{#1}{#2}% +%%% \ifsamename % one opt arg +%%% \def\f@rhdr{\ch@pt@c}% +%%% \else % two opt args +%%% \def\f@rhdr{#1}% +%%% \fi +%%% \fi +%%% \m@m@Andfalse +%%% \ifnum \c@secnumdepth >\m@ne +%%% \if@mainmatter +%%% \m@m@Andtrue +%%% \fi +%%% \fi +%%% \ifm@m@And +%%% \ifanappendix +%%% \refstepcounter{APPchapter}% +%%% \else +%%% \refstepcounter{chapter}% +%%% \fi +%%% \fi +%%% \chaptermark{\f@rhdr} +%%% \ifartopt +%%% \@makechapterhead{#2}% +%%% \@afterheading +%%% \else +%%% \insertchapterspace +%%% \if@twocolumn +%%% \@topnewpage[\@makechapterhead{#2}]% +%%% \else +%%% \@makechapterhead{#2}% +%%% \fi +%%% \@afterheading +%%% \fi +%%% \@nameuse{chapter@f@rtoc@before@write@hook}% +%%% \mempreaddchaptertotochook% +%%% \ifm@m@And +%%% \ifanappendix +%%% \addcontentsline{toc}{appendix}{% +%%% \protect\chapternumberline{\hchaptertitlehead}\f@rtoc}% +%%% \memappchapinfo{\thechapter}{\f@rtoc}{\f@rhdr}{#2}% +%%% \else +%%% \addcontentsline{toc}{chapter}{% +%%% \protect\chapternumberline{\hchaptertitlehead}\f@rtoc}% +%%% \memchapinfo{\hchaptertitlehead}{\f@rtoc}{\f@rhdr}{#2}% +%%% \fi +%%% \else +%%% \addcontentsline{toc}{chapter}{\f@rtoc}% +%%% \ifanappendix +%%% \memappchapinfo{}{\f@rtoc}{\f@rhdr}{#2}% +%%% \else +%%% \memchapinfo{\hchaptertitlehead}{\f@rtoc}{\f@rhdr}{#2}% +%%% \fi +%%% \fi +%%% \mempostaddchaptertotochook% +%%% \ifheadnameref\M@gettitle{\f@rhdr}\else\M@gettitle{\f@rtoc}\fi +%%% \ifanappendix +%%% \protected@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@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@mindentafterchapter + \ifChapterTOCafterskip + \par\afterchaptertocskip + \fi + \@afterheading +} + +\endinput diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/ob-mathleading.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/ob-mathleading.sty new file mode 100644 index 00000000000..010c83ec2aa --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/ob-mathleading.sty @@ -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@split + { \spread@equation } + { \linespread { #1 } \selectfont \spread@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@gather + { \collect@body } + { \linespread { \l_obml_stretch_tl } \selectfont \collect@body } + { } + { } +} + +\clist_if_in:NnF \g_opt_mlexception_clist { align } +{ + \patchcmd \start@align + { \collect@body } + { \linespread { \l_obml_stretch_tl } \selectfont \collect@body } + { } + { } +} + +\clist_if_in:NnF \g_opt_mlexception_clist { multline } +{ + \patchcmd \start@multline + { \collect@body } + { \linespread { \l_obml_stretch_tl } \selectfont \collect@body } + { } + { } +} + + + +\bool_if:NF \g_noallowdispbreak_bool +{ + \AtBeginDocument { \allowdisplaybreaks } +} + +%% end of file diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/ob-unfontsdefault.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/ob-unfontsdefault.sty new file mode 100644 index 00000000000..853643763e9 --- /dev/null +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/ob-unfontsdefault.sty @@ -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 diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-font.sty b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-font.sty index d47b3da1253..95172457541 100644 --- a/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-font.sty +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/memhangul-x/xob-font.sty @@ -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@.. conditions for backward compatibility \newif\if@nowin\@nowinfalse @@ -60,6 +60,8 @@ \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_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@nanumfonts - \if@nanumxfonts - \setkomainfont(NanumMyeongjo)(*ExtraBold)(*)[](NanumGothic)(*Bold) - \else - \setkomainfont(NanumMyeongjo)(*Bold)(*)[](NanumGothic)(*Bold) - \fi - \setkosansfont(NanumGothic)(*Bold)(*) - \setkomonofont(NanumGothic) -\fi -%%% [hcr] adds [Script=Hangul] feature automatically. -\if@hcrfonts - \setkomainfont(HCRBatangLVT)(HCRBatangLVT-Bold)(HCRBatangLVT) - \setkosansfont(HCRDotumLVT)(HCRDotumLVT-Bold)(HCRDotumLVT) - \setkomonofont(HCRDotumLVT) -\fi +\AddToHook{env/document/before}{% + \bool_if:NF \opt_mainfontdeclared_bool + { + \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 + %%% 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. diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-xl.cls b/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-xl.cls index c4ab0916fb1..a56abb6c7bc 100644 --- a/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-xl.cls +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir-xl.cls @@ -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]{% diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir.cls b/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir.cls index 79a0f8f908b..e6d1d7c1109 100644 --- a/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir.cls +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/oblivoir.cls @@ -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} diff --git a/Master/texmf-dist/tex/latex/kotex-oblivoir/xoblivoir.cls b/Master/texmf-dist/tex/latex/kotex-oblivoir/xoblivoir.cls index 4d2c8424255..a825b59adfd 100644 --- a/Master/texmf-dist/tex/latex/kotex-oblivoir/xoblivoir.cls +++ b/Master/texmf-dist/tex/latex/kotex-oblivoir/xoblivoir.cls @@ -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 |