KTUGFaq

KTUG FAQ

로그인:
비밀번호:
가입
Words are the voice of the heart.
FrontPage › AMSLaTeX/Math
이 글은 AMSLaTeX 의 소항목 "AMSLaTeX의 수식 환경"에 있던 글을 2006-04-17 에 이리로 가져 왔습니다. 그 후 여러 번 수정하였습니다.



목차

1 참고할만한 문서
2 다양한 환경
3 정리류(Theorem-like)와 수식 함께 번호 연속으로 붙이기
4 amsmath 패키지
4.1 subequations 환경
4.2 align-like 환경
4.3 allowdisplaybreaks
4.4 정렬(Alignment) 바꾸지 않고 본문 끼워 넣기

1 참고할만한 문서

  • ams.org의 수식 조판 매뉴얼 ftp://ftp.ams.org/pub/tex/doc/amsmath/
    특히 testmath는 다양한 수식 판형을 보여준다. 이 사이트에 있는 문서 중 short-math-guide만 빼고 모두 texdoc으로 열어볼 수 있다. texdoc testmath를 입력하면 testmath.dvi 파일이 열린다.

  • 헤르베르트 포쓰(Herbert Voß)의 "Math mode"
  • Frank Mittelbach와 Michel Goossens 등 여러 사람의 공저: The LaTeXCompanion 초판의 제8장(Higher Mathematics, 215~257쪽)

    AMSLaTeX의 수식 조판에 관련된 부분인데 The LaTeXCompanion 제2판이 나오기 이전까지 CTAN에 수정본(쪽 번호가 223~268쪽으로 바뀌었음)으로 이 파일이 올라 있었다. 제2판이 출판되면서 삭제되었는 데 수식 조판에 유용한 문서였다.

    제2판에서는 또다시 쪽번호가 바뀌어 제8장(Higher Mathematics)은 464~537쪽로 되었고 순서도 바뀌었다. 기호(Symbols)는 초판에서 8.2절이었는데 제2판에서는 8.9절이 되었다.

2 다양한 환경


AMSLaTeX은 AMS-TeX에서 쓰던 수식 환경을 LaTeX2e에 맞게 고쳐서 모두 쓰기 때문에 (그냥)LaTeX에 있는 display 형 수식 환경들 보다 더욱 다양하고 편리한 많은 수식 환경들을 가지고 있다. 대표적인 것이
  1. Commutative Diagram을 그릴 때 쓰는 CD 환경(KTUGOperate:5345참조)과
  2. 수식 하나가 너무 길어서 여러 줄에 나누어 쓸 때 쓰는 split 환경(KTUGContrib:837참조)과 multline 환경
등이다.

3 정리류(Theorem-like)와 수식 함께 번호 연속으로 붙이기


ams_template.jpg

그림 1: WinEdt에서 amsart의 뽄(Template)을 썼을 경우의 프리앰블
http://www.ktug.or.kr/jsboard/data/operate/files/20060831184647/theorem.gif

그림 2: (From KTUGOperate:18745) 그림 1과 같이 프리앰블이 설정되면 정리류(Theorem-like)는 정리류 대로 수식은 수식 대로 따로 번호가 붙는다. 이를 그림 2와 같이 나타나게 하려면 다음과 같이 프리앰블에 설정하면 된다.
\documentclass[reqno]{amsart}%

\numberwithin{equation}{section}

\newtheorem{theorem}[equation]{Theorem}
\newtheorem{lemma}[equation]{Lemma}

\begin{document}

\section{The first section}

\begin{theorem} This is the first theorem:
%
\begin{equation}
1+1=2.
\end{equation}
\end{theorem}

\begin{proof}
We have
%
\begin{equation}
2-1=1;
\end{equation}
%
hence, $1+1=2$.
\end{proof}

\begin{lemma}
Do you need a lemma?
\end{lemma}

\end{document}

4 amsmath 패키지

amsmath.sty의 형태로 일반적인 LaTeX 문서에서도 AMS 스타일의 수식을 조판할 수 있게 한다(AMSLaTeX 클래스가 아닐 때는 \usepackage{amsmath}를 프리앰블에 넣어야 함). AMSLaTeX의 클래스가 아닐 때는 간혹 amsmath 패키지와 충돌을 일어킬 수 있으므로 amsmath 패키지를 불러 오기 전에 이미 정의된 명령어의 효력을 없애야 한다. See KTUGOperate:19428

4.1 subequations 환경

amsmath 패키지를 쓰면 subequations 환경이라는 편리한 매크로가 있다. 가령 하나의 수식을 여러 개의 수식으로 나눌 때 모두 번호를 붙이되 원래의 번호를 늘어나지 않게 하고 싶을 때(cf. KTUGOperate:21328)는 그림 1과 같이 subequations 환경을 쓰면 수식 번호가 1a, 1b, ... 와 같이 원래 번호 뒤에 a, b, c, ...로 붙는다. 물론 다른 번호 체계를 쓸 수 있는데 이때는 명령어 \tag{...}를 쓰면 된다. 사용 예: KTUGOperate:13500

subequation.jpg

그림 3: [http]Mathmode.pdf(v.2.26, 2007-05-01)의 71쪽에 나와 있는 subequations 환경의 사용법 - subequations 환경 속에는 Text 또는 완전한 다른 환경(\begin{...} ... \end{...}) 등을 넣을 수 있다.

4.2 align-like 환경

여러 행(行)의 수식(數式)을 나열할 때 LaTeX에서는 보통 eqnarray 환경(또는 eqnarray* 환경)을 쓰는 데 eqnarray에서는 세 열(列)까지만 쓸 수 있고 열(列)의 정렬이 rcl(가운데 열을 기준으로 가운데로 모임)로 되어 있어 탭(&)이 두 번까지 들어 갈 수 있고 각 열 사이의 간격도 많이 벌어진다. 그리고 수식을 왼쪽 정렬하려면 각 행의 머리에 두 번의 탭(&&)을 넣어야 한다. 그리고 또 일단 두 번의 탭(&&)을 모두 썼으면 그 다음은 수작업으로 정렬(整列)시킬 수 밖에 없다.

이에 반해서 AMS-LaTeX에서는 align 환경, alignat 환경, flalign 환경 (또는 align* 환경, alignat* 환경, flalign* 환경) 등 다앙한 환경을 갖고 있고 각 행에 쓸 수 있는 탭(&)의 숫자는 일정하지 않아도 되고 탭(&)을 여러 번 넣게 되면 각 열의 정렬은
 rl rl ...
식으로 rl(두 열씩 오른쪽정렬 왼쪽정렬)이 되풀이 된다. 즉 홀수 열은 오른쪽 정렬, 짝수 열은 왼쪽 정렬이 된다. 만약 맨 첫 열을 왼쪽 정렬에서 시작하려면 각 행의 앞에 탭 &을 하나 더 넣으면 된다. 또 eqnarray 환경(또는 eqnarray* 환경)은 수식 행의 끝에 \tag{설명}을 넣을 수 없지만 align 환경 (또는 align* 환경)은 수식 행의 끝에 \tag{설명}을 넣으면 (설명)으로 Tag이 붙는다.

<!> 참고: 다만 alignat는 열의 정렬 rl의 개수(두 열 rl이 하나의 정렬)를 정해 주어야 한다. 물론 각 행에 쓰이는 탭(&)의 갯수(個數, 箇數)는 같지 않아도 된다. 그러나 탭(&)의 갯수는 rl(정렬)의 개수의 두 배에서 1을 뺀 수를 넘으면 안된다. 즉, 각 행에서 홀수 째 탭(&)은 열맞춤이고, 짝수 째 탭(&)은 "정렬의 경계 표시"로 쓰인다. 만약 정렬 사이에 줄(열) 간격을 넣고 싶으면 제일 많이 오른쪽으로 튀어 나간 곳에 수평 간격(예: \ , \:, \;, \quad, \qquad, \enskip, \hskip5mm, \hskip1.5em 등)을 넣으면 된다. 아래의 예에서 {3}은 정렬의 갯수이다. 따라서 각 행에 탭 &을 최대 다섯 개까지 쓸 수 있다. 만약
 \begin{alignat}{3}
      1      &= 123         & 0     &= 1           & 1  &=0  \\
      12     &=                                              \\
      123    &= 1           & 5     &= 12                    \\
      12345  &=             & 23                             \\
                                                             \\
      1      &= 12345 \quad & 12345 &= 12345 \quad & 12
 \end{alignat}
에서 {3}을 없애거나 {2} 또는 {1}로 고치거나 하면 오류 메시지가 나타난다. 위의 예에서 탭 &을 한 행에 여섯 개 또는 그 이상으로 넣으려면 {3}의 숫자를 높이면 된다. 위의 예에서는 여섯 개의 행에 모두 수식 번호가 붙는데 수식 번호가 필요 없는 행이 있으면 그 행의 끝에 \nonumber를 넣으면 된다. alignat와 align의 또 다른 점은 alignat는 각 정렬 사이(짝수 열과 홀수 열 사이)에 자동 간격을 주지 않지만 align은 자동 간격을 주어 사이가 벌어지게 된다. 또 flalign은 더욱 많은 간격을 넣어 각 정렬(rl) 사이의 간격을 최대한으로 한다. align, align*, flalign, flalign* 환경을 gather(또는 gather*) 환경 속에서 쓸 수도 있다. 이 경우 유독 align*은 정렬 방법이 약간 바뀐다. align, align*, flalign, flalign* 환경을 쓰지 않으면 각 행의 수식은 모두 한 열로 c(가운데)로 정렬된다. 따라서 탭(&)를 넣으면 오류 메시지가 나타난다.

4.3 allowdisplaybreaks

CTAN:macros/latex/required/amslatex/math/amsldoc.pdf 8-9쪽(PDF 화면은 12-13쪽)

eqnarray, align, alignat, gather 등의 환경을 썼을 때 여러 행의 수식들이 모두 한 덩어리가 되어 한 페이지가 꽉 차지 않았는데도 몽땅 들어갈 여유가 없으면 전부 다음 페이지로 넘어간다. 이 때 이러한 현상을 방지하려면 Preamble 또는 해당 환경을 쓰기 전에 아무 곳에나
  \allowdisplaybreaks
를 넣으면 된다.

(!) 여러 행의 수식 중 어떤 행에서는 "페이지 나누기 허용"를 하지 않을 필요가 있다. 이럴 때는 \\ 대신에 \\*를 넣으면 그 행에서는 "페이지 나누기 허용" 기능이 없어지고 \\*이 있는 바로 앞의 행에서 페이지가 나누어진다.

4.4 정렬(Alignment) 바꾸지 않고 본문 끼워 넣기


align 환경 등을 쓰서 수식을 정렬시켜 두었는 데 중간에 한 행 또는 몇 행 정도의 본문을 넣고 싶을 때는 명령어 \intertext{...}를 쓰는 것이 편하다. 명령어 \intertext는 \\ 또는 \\* 다음에 넣어야 한다. 뽄(Template)이 필요하면

에서 8-2-21.ltx를 가져 오면 된다. See amsldoc.pdf 9쪽(PDF 화면 13쪽)<-소스 파일은 CTAN:macros/latex/required/amslatex/math/amsldoc.tex

interruption1.jpg

^
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2007-07-30 06:41:30
Processing time 0.0516 sec