LaTeX을 배우기 위한 많은 좋은 강의와 자료가 있습니다. 기본적인 사용을 위한 진입장벽을 낮추기 위해 작성하였습니다. 아래 내용에서 오류를 발견하거나, 내용이 추가되기를 바라는 분은 메일로 연락주시기 바랍니다.
1. LaTeX 소개
LaTeX은 수식이 포함된 구조적인 글쓰기에 적합한 조판 프로그램이다. 마지막 글자 X는 그리스어 χ(카이)이기 때문에 레이텍 (또는 라텍) 이라고 읽는다. LaTeX은 수학, 물리, 일부 공학 분야에서 논문 작성에 주로 활용된다. 물론 조판 프로그램이기 때문에 그 외의 다양한 용도로도 많이 활용할 수 있다. MathJax, LaTeXML 등을 이용하면 LaTeX을 활용한 수식입력을 웹페이지에서 구현할 수 있다. 이 페이지의 수식은 워드프레스의 MathJax 플러그인을 활용하여 입력하였다.
TeX에 사용 편의를 위한 매크로를 추가해서 만든 것이 LaTeX이며, 대부분의 사용자들은 Plain TeX을 사용할 일이 거의 없다. LaTeX으로 작업한 최종 결과물로 과거에는 DVI, PS포멧을 사용하기도 하였으나 최근에는 대개 pdf 포멧을 사용하는 편이다. pdf포멧을 만드는 TeX이라 pdflatex이라고 부르기도 한다. XeLaTeX(XeTeX), LuaLaTeX(LuaTeX)등의 이후 개발된 조판엔진이 있는데, 여기서는 기본적인 LaTeX 사용법을 익히기 위한 것이므로 다루지 않을 예정이다. 간단히 특징만 언급하자면, XeLaTeX은 다양한 폰트 사용 등에 장점이 알려져 있고, LuaLaTeX은 다양한 매크로를 반영할 수 있어 LaTeX을 보다 다양한 용도로 활용할 수 있다는 장점이 있다.
과거 KTUG(한국 텍 유저 그룹)에서 정보를 얻을 수 있었으나, 현재는 서버 문제로 운영이 되지 않고 있다. 필요한 정보는 TUG 또는 TeX stackexchange에서 얻을 수 있다.
2. LaTex 사용
1-1) LaTex 설치(권장) : Texlive를 설치한다. (MikTeX을 설치할 수도 있다.)
1-2) Overleaf(권장) : 웹브라우저를 통해 접속하여 온라인에서 LaTeX을 사용할 수 있다. 각종 템플릿을 제공하며, 유료 결제시 공동작업도 가능하다.
1-3) TexPad와 같은 iPad, Mac에서 사용가능한 유료 앱이 몇 종류 있다. 앱에 따라 실시간 조판 등의 기능을 제공한다.
1-4) 워드프로세서와 그나마 비슷한 사용환경을 원하는 경우 Lyx를 활용하는 방법이 있다.
3. Sample
아래 설명의 이해를 돕기 위해서 간단한 주석이 달린 샘플 파일을 제공한다. 실제 논문 작성시 매번 빈 문서에서부터 시작하기보다는, 원하는대로 설정을 해놓은 기존 파일을 수정하여 사용하는 것이 편리하다.
paper sample will be uploaded soon.
beamer sample will be uploaded soon.
4. 기본 구조
LaTeX으로 논문을 작성하고자 할 때에는 기본적으로 다음과 같은 구조를 갖는다.
|
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 |
\documentclass{article} %문서 종류의 선택 \usepackage[utf8]{inputenc} %사용할 라이브러리의 추가 \title{text1} % 제목 설정 \author{Jinyeong Park } % 저자 설정 \date{May 2022} % 작성일 설정 \begin{document} % 문서의 시작 \maketitle % 문서에 제목 삽입 \begin{abstract} % 초록의 작성 \end{abtract} \section{Introduction} % 장, 절의 구분 % 문서의 내용을 여기에 작성한다. \begin{thebibliography}{99} % 참고문헌 \bibitem \end{thebibliography} \end{document} % 문서의 끝 |
실제로 문서가 출력되는 것은 \begin{document}, \end{document} 사이의 구간이며, 그 이전에 있는 것을 Preamble이라고 부르며 문서 조판을 위한 세팅에 해당한다. 이전에 세팅할 것들은 다음과 같은 것들이 있다.
A. document class : 문서의 종류를 선택한다. 논문을 쓰는 경우에는 대부분 amsart 또는 article을 사용한다. 발표 슬라이드를 만드는 경우에는 주로 beamer를 사용하며 발표용 포스터를 제작하는 경우에도 beamer를 활용할 수 있다.
|
1 |
\documentclass[11pt, reqno]{amsart} |
위 예제와 같이 대괄호[ ] 안에 폰트 크기, 종이 크기, 방정식 번호 위치(reqno는 식 오른쪽에 번호를 준다.)등의 세부적인 옵션을 넣을 수 있다.
B. package : 프로그래밍을 할 때 추가하는 library 와 같은 기능을 한다. 패키지를 추가할 때에는 \usepackage{...}라고 적는다. 한 번에 하나씩 \usepackage{amsmath}와 같이 추가해도 되고, 한꺼번에 \usepackage{amsmath, amssymb}과 같이 추가해도 된다. 사용하지 않는 package가 있어도 문제가 생기지 않는다면 지울 필요는 없다. 하지만 잘 알려지지 않은 package 혹은 자신이 만든 package를 불필요하게 많이 넣다보면 충돌이 생길 가능성도 없지 않다. 자주 사용하게 되는 package는 다음과 같다.
– amsmath : 여러 수식 표현을 포함하고 있다.
– amssymb : 어러 수학 기호를 포함하고 있다. amsfonts 패키지도 포함하고 있다.
– mathrsfs : \mathscr{A}와 같이 스크립트 폰트 \(\mathscr{A}\)를 쓸 수 있게 해준다.
– mathtools : amsmath의 확장판으로 amsmath를 포함하고 있으며 여러 수식 표현을 보다 보기 좋게 만들 수 있다. 이를테면, 경우를 나누는 수식의 경우 cases를 쓰게 되는데, 수식이 inline 스타일로 작성이 된다. 매 줄마다 \displaystyle을 붙여주는 대신 \begin{dacses}를 쓰면 간단히 해결이 된다. 아래에서 예제를 확인할 수 있다.
– graphicx : 그림을 삽입하는 경우 필요하다.
– hyperref : 하이퍼링크를 만드는 경우에 필요하다.
– kotex : 한글을 사용하는 경우 필요하다.
– refcheck : \label{ }을 이용하여 참조할 때, pdf에 각 label을 보여준다. 수식을 참조하거나 참고문헌을 인용할 때 label을 기억하기 힘든데, pdf결과물에 표기가 되어 있으면 작성이 편리해진다. 문서 작성을 완료했을 때에는 이 package를 지우가나 주석처리해서 보이지 않게 해야한다. label이 붙어있지만 인용되지 않은 경우 pdf에 적힌 label에 ?가 붙는다.
– enumitem : enumerate를 활용해서 아래 여러 조건이나 항목을 나열시킬 때 번호를 붙여준다. enumerate package를 쓸 수도 있는데, 그 아래 다시 층위를 만들어 항목을 나열시킬 경우 enumitem package와 조금 다르다. 일반적으로 enumitem이 권장된다.
– float : 본문에 그림이 포함된 경우 삽입되는 위치가 코드가 작성된 위치가 아니라 적절한 곳을 자동으로 잡아주는데, 이 경우 원하는 위치가 아닌 곳에 그림이 배치될 수 있다. 글에서 특정 위치에 반드시 위치시켜야 하는 경우 [H] 옵션을 사용하기 위해서 포함시켜야 하는 package이다. 소문자 [h] 옵션의 경우 float package가 추가로 필요하지 않지만, 정확히 그 위치가 아니라 대강 그 위치에 배치시킨다.
|
1 2 3 |
\begin{figure}[H] \includegraphics{} \end{figure} |
참고
– inputenc : 2018년 이후 LaTeX은 UTF-8을 사용하기 때문에 굳이 쓸 이유가 없지만, 예전에는 유니코드 처리를 위해서 \usepackage[utf8]{inputenc}를 사용했다. 예전 시스템을 사용한다면 포함시켜야 할 때가 있다.
C. 저자 정보: 이름, 소속, e-maill 등의 정보를 넣을 수 있다. 이름을 아래와 같이 작성할 수 있다. 예를들어, 저자가 여러 명인 경우 다음과 같이 작성을 할 수 있다.
|
1 2 3 4 5 6 |
\author[Hong]{Gildong Hong} \address[Gildong Hong]{\newline Student ID number: 20xx-abcde \newline Department of Mathematics, \newline Hanyang University, Seoul 04763, Korea} \email{(이메일 주소)} \author[Park]{Jinyeong Park} \address[Jinyeong Park]{\newline Department of Mathematics and Research Institute for Natural Sciences, \newline Hanyang University, Seoul 04763, Republic of Korea} \email{(이메일주소)} |
저자정보 작성에서 \author 뒤의 대괄호에 Hong, Park을 적을 경우 논문의 홀수 페이지 상단에 Hong and Park 이라고 저자들의 성이 적힌다.
D. 논문 정보: 제목, 작성일 등의 정보를 넣을 수 있다.
|
1 |
\title[(짧은 제목)]{제목} |
이렇게 적은 경우, 첫 페이지에는 제목이 나오고, 짝수 페이지 상단에 짧은 제목(running title)이 나온다. 본문에 \maketitle을 적으면 제목이 입력이 된다.
날짜를 적고자 하는 경우 다음과 같이 작성한다.
|
1 2 |
\date{September 2022} %날짜를 지정할 수 있다. \date{\today} %조판하는 날짜가 나온다. |
역시 \maketitle을 적으면 날짜가 각주 부분에 나온다.
E. newcommand : 긴 명령어를 이용한 표현이 본문에 반복적으로 사용될 경우 짧은 명령어로 추가할 수 있다.
|
1 |
\newcommand{ 새 표현 }{ 기존 표현 } |
이를테면, \(\mathbb R\)의 경우 \mathbb R 로 작성해야 하는데, \newcommand{\r}{\mathbb R} 을 작성해두면 \r로 변경 가능하다.
F. newtheorem : Theorem, Lemma, Remark 등을 사용하도록 정의한다. 형식은 다음과 같다.
|
1 |
\newtheorem{ name }{ heading }[ counter ] |
예를 들어, 다음과 같이 작성되어 있다고하자.
|
1 |
\newtheorem{theorem}{Theorem}[section] |
이 경우에 Theorem을 사용할 수 있게 되고, 아래와 같이 작성하면 된다.
|
1 2 3 |
\begin{theorem} Theorem의 내용 \end{theorem} |
이 경우 \(\text{Theorem 1.1}\) 과 같이 작성된다. 따라서 다음과 같이 작성해두면 좋다.
|
1 2 3 4 5 6 7 |
\newtheorem{theorem}{Theorem}[section] \newtheorem{lemma}{Lemma}[section] \newtheorem{corollary}{Corollary}[section] \newtheorem{proposition}{Proposition}[section] \newtheorem{remark}{Remark}[section] \newtheorem{definition}{Definition}[section] \newtheorem{example}{Example}[section] |
counter에 section을 작성하는 경우 각 section마다 번호를 새로 붙이게 된다.
한편, 다음과 같은 형식으로 작성할 수 있다.
|
1 |
\newtheorem{ name }[ counter ]{ heading } |
이 방식은, 각각에 따로 counter를 붙이는게 아니라, counter를 공유하는 경우에 사용한다. 이를테면,
|
1 2 3 |
\newtheorem{theorem}{Theorem}[section] \newtheorem{definition}[theorem]{Definition} \newtheorem{lemma}[theorem]{Lemma} |
으로 작성하는 경우에 Theorem, Defintion, Lemma의 counter가 (theorem과 공유되어서) 이어서 올라가게 된다. 이 경우 \(\text{Definition 1.1, Lemma 1.2, Theorem 1.3}\) 처럼 같은 순서를 사용하게 된다.
5. 논문 작성
앞서 설명한 package를 사용하는 것을 가정하고 설명한다.
A. 장, 절의 구분
새로운 장을 시작할 때에 표시를 하면 구분이 된다. 예를 들어, Introduction 이라는 이름의 장을 만든다면 다음과 같이 적고 이후 작성하면 된다.
|
1 |
\section{Introduction} |
절을 표시하고자 할 때에는 \subsection{ } 으로 적으면 된다. article을 쓰는 경우 작성된 방정식의 번호를 매길 때 (1), (2), (3)과 같이 본문 전체에 계속 이어지도록 나온다. 이를 원하는 경우는 그대로 사용하면 된다. 방정식 번호에 section 번호가 함께 나오도록, (3.1), (3.2), (3.3)과 같은 번호를 사용하고자 하는 경우에는 \numberwithin{equation}{section}를 추가하여 사용하면 된다. 이런 형식을 쓰는 경우에는 section이 바뀔 때 번호를 초기화 해줄 필요가 있다. 이 때에는 section 시작과 함께 다음과 같이 적어준다.
|
1 |
\setcounter{equation}{0} |
그러면 마지막에 붙은 숫자 0 다음 숫자 1부터 식에 번호가 붙는다.
B. 수식 입력의 종류
LaTeX에서 수식은 inline과 display의 두 가지 방식이 있다. inline은 문장 중간에 수식이 들어갈 때에 사용하고, display는 문단 중간에 식을 삽입할 때에 사용한다. inline의 경우 줄 간격을 크게 해치지 않기 위해서 수식을 압축적으로 표현한다. display 방식의 경우에는 식을 온전히 표시할 수 있고, 식에 번호를 붙여 label, eqref 를 이용해서 참조하는 기능도 활용할 수 있다. 각각의 방법은 아래와 같다.
|
1 2 3 |
If we want to write with inline style, we need to write like $ \sum_{k=1}^N \sin \frac{1}{k} $. For the display style, we need to write like \[\sum_{k=1}^N \sin \frac{1}{k}.\] |
이 경우 결과는 다음과 같이 나온다.
\( \text{If we want to write with inline style, we need to write with} \sum_{k=1}^N \sin \frac{1}{k}.\)
\( \text{For the display style, we need to write}\)
\[\sum_{k=1}^N \sin \frac{1}{k}.\]
inline 의 경우 $ ... $ 표시 대신 \( ... \)로 동일하게 사용할 수 있다. display를 사용할 경우 plain tex의 문법은 $$ ... $$이고, LaTeX에서 \[ ... \] 를 사용하는 것이라 $$...$$는 권장되지 않는다. (참고1, 참고2, 참고3) inline에서 display와 같이 표시를 하고 싶은 경우라면 다음과 같이 \displaystyle을 붙여서 작성하면 된다. 다만, 이 경우 줄 간격이 불규칙해질 수 있어 글의 가독성이 떨어지므로 자주 사용하지 않는게 좋다.
|
1 |
If we want to write with display style, then we can write $\displaystyle \sum_{k=1}^N \sin \frac{1}{k}$. |
이 경우 결과는 다음과 같다.
\(\text{If we want to write with display style, then we can write} \displaystyle \sum_{k=1}^N \sin \frac{1}{k}.\)
다양한 방식의 수식 입력은 아래에서 추가적으로 설명한다.
C. 수식 표현
LaTeX에서 글의 space는 여러 번 있어도 한 번만 적용한다. 수식에서는 space를 무시하므로 입력하는 사람이 시작적으로 보기 편하게 작성하면 된다. 수식에서 띄어쓰기가 필요한 경우 다음과 같은 것을 쓸 수 있다.
|
1 |
\[ 0, 1, \, 2, ~ 3, \quad 4, \qquad 5 \] |
결과는 다음과 같다.
\[0, 1, \, 2, ~ 3, \quad 4, \qquad 5\]
간격은 여기 또는 여기 참조.
분수는 \frac{분자}{분모}로 작성한다. 윗 첨자는 ^, 아랫첨자는 _를 사용한다. 기본적인 수식 입력의 예는 다음과 같다.
|
1 |
\[ \frac{1}{2}, \frac{ 1 + \frac{1}{2} }{ 4 + \frac{2}{3}}, x^2, x^{2^3}, x_1 \] |
결과는 다음과 같다.
\[\frac{1}{2}, ~ \frac{ 1 + \frac{1}{2} }{ 4 + \frac{2}{3} }, x^2, x^{2^3}, x_1 \]
초등함수들은 다음과 같이 입력할 수 있다.
|
1 |
\[ x^2, \sqrt[3]{x}, \sin x, \cos x, \tan x, e^x, \ln x, \log_2 x \] |
결과는 다음과 같다.
\[ x^2, \sqrt[3]{x}, \sin x, \cos x, \tan x, e^x, \ln x, \log_2 x \]
sum, integral 등은 다음과 같이 입력한다. 미분은 분수를 이용한다.
|
1 |
\[\sum_{j=1}^{N^2}, \int, \int_a^b, \int_{a^2}^{b^2}, \iint, \iiint, \oint, \lim_{x \to \infty}, \frac{d}{dx}, x^\prime, x', \dot x, \ddot x \] |
결과는 다음과 같다.
\[ \sum_{j=1}^{N^2}, \int, \int_a^b, \int_{a^2}^{b^2}, \iint, \iiint, \oint, \lim_{x \to \infty}, \frac{d}{dx}, x^\prime, x’, \dot x, \ddot x \]
다음을 참고하면 좋다. ( overleaf )
괄호의 경우 parenthesis ( )와 bracket [ ]의 경우는 그냥 사용하면 되고, curly brace { }는 back slash를 사용한다.
|
1 |
( \dots ), [ \dots ], \{ \dots \} |
\[
( \dots ), [ \dots ], \{ \dots \}
\]
괄호의 크기를 크게 하고 싶은 경우에는 다음 순서로 점점 커진다.
|
1 |
\Bigg ( \bigg ( \Big ( \big ( ( \dots ) \big ) \Big ) \bigg ) \Bigg ) |
\[
\Bigg ( \bigg ( \Big ( \big ( ( \dots ) \big ) \Big ) \bigg ) \Bigg )
\]
다만, \left와 \right를 사용하면 맥락에 맞게 크기를 알아서 맞춰주기 때문에 굳이 위와같이 수동으로 설정할 필요는 없다.
|
1 |
\left( \sum_{n=1}^\infty a_n \right) |
\[
\left( \sum_{n=1}^\infty a_n \right)
\]
큰 괄호 안에서 줄을 바꾸거나 하는 등, 한쪽 괄호만 필요한 경우가 있다. 이 경우에는 \left.와 \right. 을 넣어주어야 한다.
|
1 2 3 4 |
\left( \sum_{n=1}^\infty a_n + \dots \right. %또는 \left. \sum_{n=1}^\infty a_n + \dots \right) |
\[
\begin{aligned}
&\left( \sum_{n=1}^\infty a_n + \dots \right.\\
&\left. \dots + \sum_{n=1}^\infty a_n \right)
\end{aligned}
\]
내적 등에는 부등호와 다른 angle braket을 사용한다.
|
1 |
\langle x, ~y \rangle |
\[
\langle x, ~y \rangle
\]
D. 수식의 정렬
앞에서 설명한 display 방식의 수식 입력에 대해 다양한 정렬방법을 소개한다. 방정식에 번호를 붙이고자 하는 경우에는 equation을 사용한다.
|
1 2 3 |
\begin{equation} ax^2 + bx + c = 0 \end{equation} |
\begin{equation}
ax^2 + bx + c = 0 \tag{1}
\end{equation}
방정식에 번호를 붙일 필요가 없을 때에는 *을 붙이거나 \[ ... \]를 사용하면 된다.
|
1 2 3 4 5 6 7 8 |
\begin{equation*} ax^2 + bx + c = 0 \end{equation*} %또는 \[ ax^2 + bx + c = 0 \] |
둘 다 같은 결과를 준다.
\[
ax^2 + bx + c = 0
\]
방정식의 정렬이 필요할 때에는 align, aligned 등을 사용할 수 있다. 두 기능은 차이가 있는데 align은 여러개의 식을 표현하기 위한 것이라 매 식마다 번호가 붙고 식의 간격이 조금 넓다. aligned는 하나의 식이 여러줄에 나타내기 위한 것이라 번호를 붙이는 경우 여러 줄에 하나의 번호만 붙는다. 또한 align는 단독으로 사용하지만 aligned는 방정식 equation 또는 \[ ... \]안에 사용되어야 한다. 둘 다 번호가 나오지 않게 할 수 있고, 그 경우 약간의 차이가 있으나 비슷한 결과를 준다. 줄을 바꿀 때에는 \\를 사용하고, 정렬을 맞추고자 하는 곳에 &표시를 한다. align의 예제는 다음과 같다.
|
1 2 3 4 |
\begin{align} x' & = ax + by\\ y' & = cx + dy \end{align} |
결과는 다음과 같다.
\begin{align}
x’ & = ax + by \tag{1}\\
y’ &= cx + dy \tag{2}
\end{align}
aligned의 예제는 다음과 같다.
|
1 2 3 4 5 6 |
\begin{equation} \begin{aligned} x' & = ax + by\\ y' & = cx + dy \end{aligned} \end{equation} |
결과는 다음과 같이 식 묶음에 번호가 하나가 붙는다.
\begin{equation}
\begin{aligned}
x’ & = ax + by\\
y’ & = cx + dy
\end{aligned}\tag{1}
\end{equation}
align을 사용할 때 식에 붙는 번호 없이 정렬을 사용하고 싶다면 align*를 사용한다. aligned를 사용할 경우에는 equation* 또는 \[ ... \]를 사용하면 된다. 둘은 조금 다른데, 이 설명을 보면 \[...\]과 aligned를 쓰는 편이 활용하기 좋다. 연립방정식 등을 왼쪽에 중괄호로 묶고자 할 때에는 다음과 같이 작성할 수 있다.
|
1 2 3 4 5 6 |
\begin{equation} \left\{ \begin{aligned} x' & = ax + by\\ y' & = cx + dy \end{aligned} \right. \end{equation} |
결과는 다음과 같이 묶인다.
\begin{equation}
\left\{\begin{aligned}
x’ & = ax + by\\
y’ & = cx + dy
\end{aligned}\right.\tag{1}
\end{equation}
함수를 정의할 때 경우를 나누는 형태의 정렬을 위해서 cases 또는 dcases (mathtools package필요)를 사용할 수도 있다.
|
1 2 3 4 5 6 |
\[ f(z) = \begin{cases} \sum_{k=1}^n k^2 \quad & \text{if} \quad z > 0\\ \sum_{k=1}^n k^3 + 2k^2 \quad & \text{if} \quad z\leq 0. \end{cases} \] |
\[
f(z) = \begin{cases}
\sum_{k=1}^n k^2 \quad & \text{if} \quad z > 0\\
\sum_{k=1}^n k^3 + 2k^2 \quad & \text{if} \quad z\leq 0.
\end{cases}
\]
경우를 나눈 부분이 inline으로 표시되는 것이 싫으면, \displaystyle을 쓰거나 dcases를 쓰면 된다.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
\[ f(z) = \begin{cases} \displaystyle \sum_{k=1}^n k^2 \quad & \text{if} \quad z > 0\\ \displaystyle \sum_{k=1}^n k^3 + 2k^2 \quad & \text{if} \quad z\leq 0. \end{cases} \] %또는 \[ f(z) = \begin{dcases} \sum_{k=1}^n k^2 \quad & \text{if} \quad z > 0\\ \sum_{k=1}^n k^3 + 2k^2 \quad & \text{if} \quad z\leq 0. \end{dcases} \] |
\[
f(z) = \begin{cases}
\displaystyle \sum_{k=1}^n k^2 \quad & \text{if} \quad z > 0\\
\displaystyle \sum_{k=1}^n k^3 + 2k^2 \quad & \text{if} \quad z\leq 0.
\end{cases}
\]
참고로 eqnarray를 활용하는 방법이 있으나, 사용하지 않기를 권장한다.
E. 상호참조, 참고문헌 인용
LaTeX이 구조적인 글쓰기에 적합한 장점을 만들어 주는 것으로, section, Theorem, 수식, 그림 등에 label를 붙일 수 있고, 이를 참조하여 글을 작성할 수 있다. 참조를 활용하는 경우에는 조판(typeset)을 두 번 실행해야 한다. 첫번째 실행에서 label정보를 읽어내고 그 정보를 두번째 실행에서 반영시키기 때문이다. label를 붙이는 방법은 적절한 위치에 \label{참조할 명칭}을 적으면 된다. section의 경우에는
|
1 |
\section{Preliminary}\label{sec:pre} |
라고 작성을 할 수 있다. 만약 Preliminary 가 두 번째 section 인 경우에는 2. Preliminary라고 인쇄되어 나오는데, 이를 뒤에서 언급할 경우 \ref{...}을 사용하여
|
1 |
In the Section \ref{sec:pre}, we studied... |
라고 작성한다면,
\(\text{In the Section 2, we studied… }\)
라고 나온다. 숫자 2로 입력한 것이 아니라 label을 통해 참조가 되었기 때문에, 추후에 Preliminary 앞에 다른 section을 추가하여 Preliminary가 세 번째 section이 된다면 자동으로 3으로 변경된다. Definition, Theorem, Lemma 등의 경우에도 다음과 같은 방법으로 label를 붙일 수 있다.
|
1 2 3 |
\begin{theorem}\label{thm:C-S} ... \end{theorem} |
이를 인용할 때에는 In the Theorem \ref{thm:C-S}, ...와 같이 작성하면 된다. 위치가 변경되거나 앞에 다른 항목이 추가되는 경우에도 자동으로 변경을 해준다. 물론 앞에서 label이름에 붙여놓은 sec, thm등은 꼭 붙여야 한다거나, 혹은 어떻게 적어야 하는 규칙이 있는 것은 아닌데, 참조할 때 저런 것을 앞에 붙여두면 참조할 것들이 많은 경우 혼동을 줄일 수 있어 도움이 된다.
수식에도 label을 붙일 수 있다.
|
1 2 3 |
\begin{equation}\label{A-1} ... \end{equation} |
물론 번호를 참조하기 위한 것이기 때문에 inline에선 사용할 수 없고, 번호를 붙이지 않는 equation* 또는 \[ ... \]에서도 사용할 수 없다. 식을 인용하고자 할 때에는 \eqref{A-1}와 같이 인용하면 된다. \eqref가 아니라 \ref를 사용할 경우는 괄호가 사라지게 되므로 (\ref{A-1})라고 적어야 하는데 굳이 그렇게 적을 이유가 없다.
그림을 인용하고자 하는 경우에는 Figure에 다음과 같이 label을 붙인다.
|
1 2 3 |
\begin{figure}\label{fig:B-1} ... \end{figure} |
이를 인용할 때에는 In Figure \ref{fig:B-1},...와 같이 작성하면 된다. 하나의 Figure에 여러개의 그림이 들어가는 subfigure를 사용하는 경우에도 각각에 label를 붙일 수 있다.
참고문헌은 논문의 하단, \end{document}으로 문서를 끝내기 전에 다음과 같이 나열한다.
|
1 2 3 4 5 |
\begin{thebibliography}{99} \bibitem{HP21} G. Hong and J. Park: 논문제목, 저널명, 권, 호, 출판년도. \bibitem{HKP22} G. Hong, H. Kim, and J. Park: 논문제목, 저널명, 권, 호, 출판년도. |
이를 본문에서 언급할 때에는 In the literature \cite{HP21} and \cite{HKP22},...와 같이 작성한다. 여러 논문을 동시에 인용할 때에는 In \cite{HP21, HKP22}와 같이 적을 수도 있다.
이는
\( \text{In the literature [1] and [2], …}\)
또는
\( \text{In [1, 2]}\)
와 같이 표시된다. 이때 논문의 번호는 뒤에 참고문헌에 적은 순서대로 적히며, 참고문헌이 추가되는 경우 번호는 자동으로 변경된다.
앞서 package설명에서 언급한 것처럼 label을 활용하여 글을 작성할 때에는 refcheck를 활용하고, 작성이 완료된 뒤에 삭제하면 편리하다. \begin{thebibliography}{99}의 마지막에 99는 참고문헌을 정렬할 때 index 번호와 뒤의 논문 정보 사이의 간격을 결정해준다. 99의 의미는 참고문헌이 100개 미만일 경우에 적절한 간격을 주어 정렬한다. 참고문헌이 10개 미만인 경우에는 9로 적으면 되고, 참고문헌이 100개 이상 1000개 미만인 경우에는 999를 적으면 된다.
많은 양의 참고문헌을 활용하는 경우 BibTeX을 사용하면 논문 정보를 관리하는데 좋다. BibTeX은 reference.bib 와 같이 확장자가 bib인 파일을 만들고 그 안에 참고문헌의 정보를 넣어야 한다. 참고문헌의 정보는 다음과 같은 형식을 띈다.
|
1 2 3 4 5 6 7 8 9 10 |
@article{인용시 사용할label, title={논문 제목}, author={저자}, journal={저널명}, volume={권}, number={호}, pages={페이지}, year={출판년도}, publisher={출판사} } |
여러 논문 정보를 아래에 이어서 계속 작성하면 된다. 이러한 정보는 google scholar에서 논문을 검색한 후 “cite 를 누르고 BibTeX을 누르면 얻을 수 있다. 수학 저널의 경우에 mathscinet에서 얻을 수도 있으나, 대학과 같은 기관에서 접속해야 한다. 제공하는 곳에 따라 양식이나 표현이 조금 다를 수 있고, 물론 직접 작성할 수도 있다. 제공된 label이 너무 길거나 마음에 들지 않으면 자신이 원하는 방식의 label을 사용하도록 수정을 할 수 있다. BibTeX 파일에 작성한 것 중에 실제 manuscript에 인용된 논문만 Referece에 나오기 때문에, 자주 사용하는 논문들은 모두 추가하여 넣어두고 그 중 필요한 것만 사용할 수도 있다.
BibTeX을 사용하기 위해서 논문 manuscript에 다음과 같이 작성해야 한다.
|
1 2 |
\bibliographystyle{amsplain} \bibliography{reference} |
첫 줄의 스타일은 다른 것을 선택할 수 있다. 두번재 줄에는 만들어놓은 bib 파일명을 작성해야 한다. 본문에서 인용시에 bib파일에 있는 label을 이용해서 인용을 하면 된다. 처음 사용하는 경우와 인용하는 논문의 list가 추가/변경되는 경우에는 pdflatex -> bibtex -> pdflatex -> pdflatex 순서로 조판을 해야한다. 인용하는 리스트가 추가되지 않은 경우에는 평소대로 pdflatex으로 조판을 하면 된다. biblatex과 관련해서는 여기를 참고하면 좋다.
F. 세부항목과 순번
어떤 세부항목을 나열하거나, 순번을 통해서 나열을 할 때 사용할 수 있는 기능이다. 번호가 붙지 않는 항목은 itemize를 사용하면 된다.
|
1 2 3 4 |
\begin{itemize} \item (첫번째 내용) \item (두번째 내용) \end{itemize} |
순번을 주고 싶은 경우에는 enumerate를 사용한다. itemize와 enumerate 모두 층위를 둘 수 있다.
|
1 2 3 4 5 6 7 8 |
\begin{enumerate} \item (첫번째 내용) \begin{enumerate} \item (1-1 내용) \item (1-2 내용) \end{enumerate} \item (두번째 내용) \end{enumerate} |
항목을 나열하고 싶은데, 항목 사이에 설명을 길게 붙이는 경우 itemize나 enumerate 사용이 불편한 경우가 있다. 이런 경우 $\bullet$, $\diamond$, $\circ$ 등을 이용할 수 있다. 들여쓰기가 생기는 경우에는 \noindent를 붙여서 들여쓰기를 없앨 수 있다.
G. Theorem
앞에 newcommand에서 설명한 Definition, Theorem, Lemma, Corollary, Remark 등은
|
1 2 3 |
\begin{theorem} theorem 내용 \end{theorem} |
형식으로 사용하면 된다. proof 도 마찬가지로 사용하면 된다.
H. 글 입력 관련
글 중간에 수식을 넣을 경우에 $ ... $를 사용하는 것과 반대로 수식 중간에 글을 넣어야 하는 경우에 사용하는 방법을 설명한다. 경우를 나눠야 할 때나 설명을 넣는 경우에 사용한다.
기본적으로는 수식 중간에 \text{글 입력}를 사용하면 된다. 기울어진(italic) 글자는 \textit{...}, 굵은(bold face) 글자는 \textbf{...}를 사용한다. serif(roman)은 \textrm{...}, sans serif는 \textsf{...} 등을 사용할 수도 있다.
참고로, 수식에서 기울어지지 않은 수식 글자를 원할 경우 \mathrm{...}을 사용할 수 있다.
글자 입력에 \mbox{...}를 사용할 수도 있는데, 이 경우에 위치에 따라 글자 크기가 바뀌지 않는다. 반면 \text{...}의 경우에 지수나 index와 같은 자리에서 글자의 크기가 상황에 맞게 작아진다.
I. 행렬
행렬은 주변에 어떤 모양의 괄호를 사용할 지를 결정해야 한다. 일반적으로 둥근 괄호(parenthesis)를 쓸 때에는 pmatrix를 사용하고 네모난 대괄호[bracket]을 쓸 때에는 bmatrix를 사용한다. 행렬을 표기할 때에는 같은 행에서 열을 구분할 때 &를 사용하고, 행을 바꾸기 위해서는 \\를 사용한다. 예를 들어, 3×3 identity matrix를 그린다면,
|
1 2 3 4 5 6 7 |
\[ \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix} \] |
라고 입력을 하면 다음과 같은 결과가 나온다.
\[
\begin{pmatrix}
1 & 0 & 0 \\
0 & 1 & 0 \\
0 & 0 & 1
\end{pmatrix}
\]
여기를 참고하면 좋다. 행렬은 그리 어렵지 않지만 LaTeX matrix generator를 검색하여 사용하는 것도 도움이 될 수 있다. 이를테면, Latex Matrix Generator.
큰 행렬에 가로 선이나 세로 선 등을 그어야 할 일이 있을 수 있는데, 방금 설명한 pmatrix 등에는 사용이 불가능하다. 우회하는 방법과 행렬을 표현하는 다른 방법이 있다. 우회하는 방법은 여기를 참고하면 된다. 행렬을 표현하는 다른 방법은 array를 이용하는 것이다. 예제는 다음과 같다.
|
1 2 3 4 5 6 7 8 9 |
\[ \left( \begin{array}{ccc} a & b & c \\ d & e & f \\ g & h & i \\ \end{array} \right) \] |
다음과 같이 나온다.
\[
\left(
\begin{array}{ccc}
a & b & c \\
d & e & f \\
g & h & i \\
\end{array}
\right)
\]
위 예제에서, {ccc}는 세 개의 열이 있고, 각 열에서는 가운데 정렬을 한다는 말이다. 왼쪽정렬을 하고 싶으면 c대신 해당열에 l, 오른쪽 정렬은 r을 넣으면 된다. 첫 번째 열과 두 번째 열 사이에 세로 선을 넣고 싶으면 {c|cc}를 하면 되고, 가로 선을 넣고 싶으면 \hline를 넣으면 된다.
예를 들면, 아래와 같다.
|
1 2 3 4 5 6 7 8 9 10 |
\[ \left( \begin{array}{c|cc} a & b & c \\ \hline d & e & f \\ g & h & i \\ \end{array} \right) \] |
다음과 같이 나온다.
\[
\left(
\begin{array}{c|cc}
a & b & c \\
\hline
d & e & f \\
g & h & i \\
\end{array}
\right)
\]
행과 열의 여러 component를 묶어서 적을 때에 multicolumn 또는 multirow 를 쓰면 된다. 다만, multirow 에는 패키지가 있어야 하므로 \usepackage{multirow}를 추가한다. \multicolumn{병합할 component 개수}{정렬}{내용}으로 작성한다. \multirow{병합할 component 개수}{간격}{내용}로 작성하는데, 간격을 기본으로 하려면 *을 쓴다. 예시는 다음과 같다.
|
1 2 3 4 5 6 7 8 9 |
\[ \left( \begin{array}{cccc} a & b & \multicolumn{2}{c}{c} \\ d & \multirow{2}{*}{e} & f & g \\ h & ~ & i & j\\ \end{array} \right) \] |
다음과 같이 나온다.

(참고로 Mathjax가 multirow를 지원하지 않아 이미지를 넣었다.)
큰 행렬을 표현하다보면 세 개의 점을 이용할 때가 있는데, 세 개의 가로점은 \cdots, 세 개의 세로점은(vertical) \vdots, 세 개의 대각선(diagonal) 점은 \ddots로 쓰면 된다.
\[
\cdots \quad \vdots \quad \ddots
\]
Block Matrix를 표현하고 싶다면, 여기나 여기를 참고하면 된다.
J. 그림 삽입
pdflatex을 사용할 때 쓸 수 있는 포멧은 jpg, png, eps 등이 있다. raster 포멧을 써야 하는 경우, 사진이라면 jpg를 쓰겠으나, 다이어그램이나 그림이라면 png사용하는게 경계에서 노이즈가 적어서 좋다. 하지만, 가능하면 vector format을 사용하는게 좋고, eps 포멧이 주로 쓰인다. Matlab 등에서도 eps 로 저장이 가능하기 때문에 eps 사용을 권장한다. eps사용시 pdf로 변환하여 삽입니 된다. graphicx 패키지를 사용하는 경우, figure1.eps라는 그림을 넣고자 할 때에는 아래와 같이 작성하면 된다.
|
1 2 3 4 5 6 |
\begin{figure}[h] \centering \includegraphics[width=0.5\textwidth]{figure1} \caption{This is a figure} \label{fig:image1} \end{figure} |
여기서 [h]는 그림이 들어가는 위치를 정해주는 것이다. 기본적으로 latex에서 그림은 적당히 알아서 삽입이 된다. 페이지 상단에 넣고 싶으면 [t], 하단에 넣고 싶으면 [b], 가능하면 코드가 있는 곳으로 넣고 싶으면 [h]를 사용하고, 정확히 여기에 쓰고 싶으면 float 패키지를 사용하여 [H]를 사용한다.
그림이 여러 개인 경우에 하위 디렉토리(폴더)에 넣는게 유용하다. images라는 하위 디렉토리에 figure1.eps라는 파일이 들어 있으면 아래와 같이 작성하면 된다.
|
1 |
\includegraphics[width=0.5\textwidth]{images/figure1} |
문서 전처에 삽입되는 그림이 모두 같은 폴더에 있다면, 위 방법 대신 \graphicspath{위치}를 \begin{document}전에 넣는 방법도 있다.
하나의 Figure에 여러 개의 그림을 넣고 캡션을 붙이고자 할 경우에는 여러가지 방법이 있다. subfigure패키지는 deprecated되어 사용되지 않는다. subfig패키지나 subcaption패키지가 주로 사용되는데, subfig패키지를 쓸 때 사용하는 코드가 더 간단한 장점이 있지만 hyperref패키지를 사용할 수 없다는 단점이 있어서
여기서는 subcaption 예제를 다루고자 한다. 우선 패키지를 추가한다.
|
1 |
\usepackage{graphicx, caption, subcaption} |
그림은 다음과 같이 작성한다.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
\begin{figure}[h] \begin{subfigure}[b]{0.4\textwidth} % subfigure의 폭을 정한다. \includegraphics[width=\textwidth]{images/figure1} % 위에서 정한 폭이 이곳의 \textwidth가 된다. \caption{figure 1} \label{fig:f1} \end{subfigure} \hfill % 두 그림 사이의 공간을 알아서 채운다. \begin{subfigure}[b]{0.4\textwidth} \includegraphics[width=\textwidth]{images/figure2} \caption{figure 2} \label{fig:f2} \end{subfigure} \caption{Two figures} \label{fig:f1f2} \end{figure} |
전체 figure의 label과 caption, 작은 subfigure들의 label과 caption을 각각 붙일 수 있다.
두 그림의 크기가 다를 때에 정렬은 \begin{subfigure}[b]{0.4\textwidth}에서 [t], [c], [b]으로 조정할 수 있다.
한가지 주의할 점은 label는 반드시 caption 뒤에 있어야 한다.
K. 표 삽입
가장 간단한 방법은 LaTeX table generator를 검색하여 사용하는 것이다. 이를테면, tablesgenerator. 표를 그냥 만드는 것과 보기 좋게 만드는 것은 조금 차이가 있다. 세로 선을 없애거나 정렬 방식을 바꿔서 가독성을 높일 수도 있다.
L. 공백, 페이지 나누기
LaTeX에서 줄바꿈은 문장이나 수식 끝에 \\ 를 넣거나 \newline을 넣으면 된다. 둘은 비슷하나 완전히 같지는 않다. 글이나 수식에서 가로, 세로 방향으로 간격을 띄우고자 할 때에는 다음을 이용한다.
|
1 2 |
\hspace{1em} % 가로 띄우기 \vspace{1ex} % 세로 띄우기 |
인쇄 크기와 관계없이 글자 크기에 비례하여 띄우고자 할 때에는 em(M의 너비), ex(x의 높이) 등의 단위를 사용할 수 있고, 직관적으로 cm, mm나 in(inch)를 써도 된다. 그 외 다른 단위들은 여기 참조. LaTeX은 페이지를 자동으로 나눈다. 하지만, 반드시 특정 위치에서 페이지를 나누고 싶을 대에는 그 위치에
|
1 |
\pagebreak |
를 적으면 된다.
M. MSC 2020, 키워드, 사사
subject class, acknowledgment, keyword : 이 내용은 \begin{document} 직후에 작성하는게 좋다.
– 수학 논문을 쓰는 경우에 어느 분야에 속하는지를 Mathematics Subject Classification 에 따라 적어야 한다. 10년마다 갱신을 하고 있으며 현재는 2020년 기준으로 작성하면 된다. MSC 2020은 다음에서 확인할 수 있다. MSC2020, Mathscinet, zbMath
저널에서 논문을 심사할 referee를 구할 때 MSC에 따라 분류할 수 있기 때문에 정확하게 확인하는게 중요하다.
|
1 |
\subjclass[2020]{15B48, 92D25} |
– 저널에 제출하는 경우 다음과 같이 논문의 키워드를 몇 개 입력해야 한다.
|
1 |
\keyword{첫 번째 키워드, 두 번재 키워드, 세 번재 키워드} |
– 연구비를 지원받은 경우, 혹은 연구에 도움을 받은 경우 사사표기를 한다. 연구비 지원의 경우 사사표기 방식이 정해진 경우가 있으므로 지원기관에 문의 후 그대로 작성한다.
|
1 |
\thanks{\textbf{Acknowledgment.} The work of J. Park is supported by... We are grateful for...} |
간혹 저널에 따라 사사표기의 위치나 양식이 다른 경우도 있다.
N. Tikz
6. Beamer
beamer user guide
Theme gallery
Theme list
7. 특수기호 및 수식 표현
8. 다른 프로그램에서 사용
다른 프로그램에서도 LaTeX 문법과 비슷한 방식으로 수식을 입력할 수 있으나, 그리 편하지 않다.
한글: 한글의 수식입력기도 LaTeX과 비슷한 방식으로 입력할 수 있다. 차이점을 나열하자면, sine 함수 등을 사용할 때 백슬래시(\)를 사용하지 않고 띄어쓰기를 쓰는 점, 분수 사용에서 \frac{분자}{분모} 대신 TeX문법인 {분자}over{분모}을 사용하는 점, align을 따로 정의하지 않고 줄 맞출 곳에 &를 쓰고 줄바꿈에 #를 쓰는 점 등이 있다.
keynote: 삽입 – 방정식 선택하고 LaTeX문법을 작성하면 된다. align 등도 잘 작성 된다.
MS word: 간단한 수식의 경우에는 삽입 – 수식 – {} LaTeX 선택하고 입력하면 된다.
MS powerpoint: 직접 수식 입력도 가능하나 제한적이고, IguanaTex과 같은 Add-in을 이용하는 방법이 있다.
LaTeX문법을 사용하는 방법 중에 하나는, LaTeX을 이미지로 바꿔주는 사이트에서 작성해서 이미지를 삽입하는 방법이 있다. 이 경우 수식 수정이 필요할 때 이미지를 다시 만들어야 하는 단점이 있다. Codecogs를 사용하거나 google 에서 latex to image로 검색을 해보면 적당한 곳들이 나온다.
Mac에서 texlive를 설치한 경우에 LaTeXiT이라는 프로그램이 설치되는데, 이걸 이용하면 LaTeX으로 작성된 수식을 이미지로 만들 수 있다.
9. 참고자료
Inshort : The Not So short Introduction to LATEX2ε (html, pdf)
List of symbols: The Comprehensive LATEX Symbol List, math symbols, latex symbols