수식작성 (rev. 1.4)

EDRSPIHCRSSRSS

수식작성

기본적인 수식 삽입 방법

행중 수식과 단락 수식

수식은 크게 두 가지 종류로 삽입이 되는데 하나는 작성중인 문장 사이에 inline으로 들어가는 수식이 있고, 수식 자체가 한 단락을 차지하도록 넣을 수도 있다. 문장 사이에 수식을 넣을 경우 해당 수식을 '\(''\)'로 감싸거나 '$'로 감싸준다. 단락으로 수식을 넣을 경우 '\[''\]'로 수식을 감싸준다.
임의의 직각삼각형에 대해 빗변의 길이를 \(c\), 나머지 두 변의 길이를 $a$, $b$로 나타내면 다음과 같은 관계가 항상 성립한다.
\[a^2 + b^2 = c^2\]
PythagoreanThm.png
[PNG image (13.78 KB)]

미리 정의된 함수들

sine 함수나 cosine 함수 같은 경우 이들을 식자하기 위한 명령어가 이미 정의되어 있다.
수식 입력시 sine 함수는 $\sin$으로 입력하고 $sin$으로 입력하는 것은 피하자 이것은 변수 $s$, $i$ 그리고 $n$의 곱과 구분이 되지 않는다.
sinFn.png
[PNG image (13.01 KB)]

추가적인 명령어들의 목록은 이 문서의 53페이지를 참고한다.

사용자 정의 함수

'\sin', '\cos'와 달리 미리 정의되지 않은 함수의 이름을 정의해서 사용하고 싶을 때가 있다. 예를 들어 행렬의 rank같은 경우 정의가 되어 있지 않으므로 별도로 정의를 해줘야 사용이 가능하다. 만약 행렬 A의 rank를 나타내기 위해 '\mathrm{rank}A'와 같이 입력할 경우 결과가 마음에 들지 않을 것이다. 만약 amsopn 패키지를 사용하면 다음과 같은 해법이 있다.
\usepackage{amsopn}
\DeclareMathOperator{\ranka}{{rank}}
\newcommand{\rankb}{\operatorname{rank}}
둘 중 마음에 드는 방법을 사용하면 된다. 만약 새로 정의한 operator에 아랫첨자 윗첨자를 사용하고 싶다면('\sum'이나 '\prod'와 같은 방식으로) 다음과 같이 사용한다.
\usepackage{amsopn}
\DeclareMathOperator*{\argmina}{{arg\,min}}
\newcommand{\argminb}{\operatornamewithlimits{arg\,min}}
amsopn 패키지는 amsmath 패키지를 불러오면 함께 불려오므로 amsmath 패키지를 사용해도 된다. amsmath 패키지를 사용할 경우 operator name과 첨자 사이의 간격이 약간 더 좁다.
\DeclareMathOperator{\rank}{{rank}}
\DeclareMathOperator{\argmina}{{arg\,min}}
\DeclareMathOperator*{\argminb}{{arg\,min}}

\begin{document}
\begin{eqnarray*}
\mathrm{rank}A,\quad \rank A\\
\argmina_{i\in V}(k-x_{i})^2\\
\argminb_{i\in V}(k-x_{i})^2
\end{eqnarray*}
\end{document}
userOper2.png
[PNG image (9.12 KB)]

특수한 문자 및 굵은 글꼴

행렬이나 벡터를 나타내기 위해 굵은 문자를 사용하고 싶다면 amsbsy 패키지 혹은 이를 포함하고 있는 amsmath 패키지를 불러오고 다음과 같이 사용한다.
\begin{eqnarray*}
\mathbf{ABC},\quad \boldsymbol{ABC},\quad \pmb{ABC}\\
\mathbf{abc},\quad \boldsymbol{abc},\quad \pmb{abc}\\
\mathbf{\alpha\beta\gamma},\quad \boldsymbol{\alpha\beta\gamma},\quad \pmb{\alpha\beta\gamma}
\end{eqnarray*}
boldFont.png
[PNG image (8.86 KB)]

경우에 따라 사용하고 있는 글꼴이 굵은 글꼴을 포함하지 않는 경우 제대로 동작하지 않을 수도 있다. 하지만 '\pmb'의 경우 웬만한 모든 문자들을 굵은 문자로 바꿔준다.[1]

실수 전체 집합을 나타내기 위해 보통 R의 굵은 글씨 대신 특이한 문자 모양을 사용하기도 한다. 만약 amssymb 패키지를 불러올 경우 '\mathcal' 명령어와 '\mathbb' 명령어를 사용할 수 있다. 혹은 dsfont 패키지를 불러오고 '\mathds' 명령어를 사용하기도 한다. 취향에 따라 골라서 쓰면 되겠다.
\begin{eqnarray*}
\mathcal{R},\quad \mathbb{R},\quad \mathds{R}\\
\mathcal{ABC},\quad \mathbb{ABC},\quad \mathds{ABC}
\end{eqnarray*}
specialFonts.png
[PNG image (4.96 KB)]

복잡한 수식의 작성

수식에 번호를 삽입 하거나 여러 줄로 구성된 수식 단락을 삽입하고자 한다면 그에 맞는 수식 환경을 사용해야 한다. 대표적으로 사용되는 환경은 align 환경이다. 이 환경은 amsmath 패키지를 불러오면 사용이 가능하다.
폐구간 $[a,b]$에서 연속이고 개구간 $(a,b)$에서 미분 가능한 두 함수 $f$, $g$에 대해 미적분학의 기본 정리로부터 다음과 같은 관계를 얻는다.
\begin{align}
f(b)g(b) - f(a)g(a)
&=\int_a^b \frac{d}{dx} ( f(x) g(x) ) \, dx \nonumber\\
&=\int_a^b f'(x) g(x) \, dx + \int_a^b f(x) g'(x) \, dx.\label{intByParts}
\end{align}
\eqref{intByParts} 우변의 두 번째 항에 대해 정리하면 다음과 같은 부분적분 공식을 얻는다.
\begin{align*}
\int_a^b f(x) g'(x)\,dx = \left[ f(x) g(x) \right]_{a}^{b} - \int_a^b  f'(x) g(x)\,dx.
\end{align*}
intByParts.png
[PNG image (37.24 KB)]

align 환경 안에서 두 번째 줄과 세 번재 줄에 들어간 '&'를 기준으로 정렬된 것을 볼 수 있다.[2] '\nonumber'를 이용하면 해당 줄에는 수식 번호가 붙지 않는다. 환경 내의 수식 전체에 번호를 붙이고 싶지 않다면 align*을 사용한다. 만약 라벨이 붙어있는 수식에만 번호가 붙고 그 외의 수식은 자동으로 번호가 붙지 않도록 하고 싶다면 autonum 패키지를 이용한다.

연습 문제

  • 수식 작성을 위한 연습문제가 이 링크에 있다.
----
  • [1] '\pmb'는 해당 문자를 서로 다른 위치에 여러번 찍어 굵은 글씨를 만들어 낸다.
  • [2] align 환경은 rlrl... 순서로 정렬된 표로 이해하면 된다.