summaryrefslogtreecommitdiff
path: root/language/korean/kotex-oblivoir/doc/ob-mathleading-doc.tex
blob: caefd6023bbbd15022cafea3bdd4b3cb64dee615 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
%
% arara: xelatex

\documentclass[a4paper,amsmath]{oblivoir}

\usepackage{fapapersize}
\usefapapersize{*,*,1in,*,1in,*}

\setmainfont{Crimson Pro}
\setsansfont{Open Sans}
\setmonofont{Roboto Mono}
\setkomainfont[Noto Serif KR]()( Bold)
\setkosansfont[Noto Sans 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{2022/04/01, v0.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 님, 패키지 제작의 동기를 제공하신 조인성 교수께 감사드린다.

\section{변경이력}

\begin{description}
\item [2022/04/01] \texttt{split} 환경에 적용되지 않는 최근 발생한 이슈 해결.
\item [2021/03/09] oblivoir의 일부로 포함하여 배포.
\end{description}


\end{document}