[LaTex] Markdown 수식 작성법

Eugene CHOI·2021년 4월 25일
122

Introdution

연구를 하며 기록을 하는 것은 좋은 습관입니다.
논문 자료를 정리하기 위해 많은 것을 사용해 본 결과 markdown 문법을 기반으로 문서를 작성하는게 가장 좋은 방법이었습니다.

현재 문서 편집기(ppt,word,hwp) 혹은 블로그에서 가장 편리하게 사용하는 수식 편집기는 대부분 LaTex문법을 이용함에도 불구하고 그에 대한 문법을 다루는 자료는 찾기가 힘든 편이어서 정리를 하게 되었습니다.
원래는 vscode로만 markdown을 사용하였지만 현재 벨로그를 사용하기 때문에 velog에서 허용되는 마크다운 문법을 기준으로 정리하였습니다.

이 글의 실제 raw 마크다운 코드가 궁금하시면 페이지에 마우스 오른쪽 클릭 -> 페이지 소스 코드 보기 를 누르시면 보실 수 있습니다.

못 찾는 심볼이 있으면 댓글 달아주시면 찾아드리겠습니다.

velog를 운영하며, 수시로 추가할 예정입니다.


👨‍💻 코드 블럭

grave라고 하는 기호 세 개(```)로 코드를 감싸면 코드 블럭을 만들 수 있습니다. 엔터 옆에 있는 기호가 아니라 Tab 위에 있는 기호입니다. 또한 여는 grave 뒤에 언어를 적으면 특정 언어에 맞는 syntax highligh 기능을 사용할 수 있습니다.

```c
#include <stdio.h>
int main(){
	printf("Hello World!");
}
```
    #include <stdio.h>
    int main(){
    	printf("Hello World!");
    }

markdown에서 syntax highlight를 지원하는 언어 목록은 여기에서 확인할 수 있습니다.


🔣 수식 표현

수식의 정렬

왼쪽정렬(기본)

$로 수식의 앞 뒤를 감싸면 수식을 작성할 수 있습니다.
별다른 조치를 취하지 않고 수식을 작성하면 기본적으로 왼쪽 정렬이 됩니다.
일반 문장 사이에 수식을 넣는 것도 가능합니다.

$x+y=1$
$x$는 $y$와의 합이 $1$이다.

x+y=1x+y=1
xxyy와의 합이 11이다.

중앙정렬

$$ 사이에 수식을 적으면 중앙 정렬이 됩니다.
원래는 $$가 어떻게 붙든 상관없지만, velog에서는 반드시 여는$$와 닫는 $$는 다른 줄에 있어야 합니다.
다음은 가능한 세 가지 형태입니다.

$$
x+y=1$$

$$x+y=1
$$

$$
x+y=1
$$
x+y=1x+y=1

특정 문자를 기준으로 정렬

일반적으로 수식을 전개할 때 =기호를 기준으로 정렬합니다.
하지만 그냥 중앙정렬을 하면 다음과 같이 보입니다.

$$
f(x)=ax^2+bx+c\\
g(x)=Ax^4
$$
f(x)=ax2+bx+cg(x)=Ax4f(x)=ax^2+bx+c\\ g(x)=Ax^4

이때 aligned 심볼을 통하여 특정 문자를 기준으로 정렬할 수 있습니다.
정렬 기준은 &를 기준으로 정렬됩니다.

$$
\begin{aligned}
f(x)&=ax^2+bx+c\\
g(x)&=Ax^4
\end{aligned}$$
f(x)=ax2+bx+cg(x)=Ax4\begin{aligned} f(x)&=ax^2+bx+c\\ g(x)&=Ax^4 \end{aligned}

수식 내에서의 줄바꿈

수식에서 Enter key를 누른다고 해서 줄바꿈이 되지 않습니다. \\를 입력하면 줄바꿈을 할 수 있습니다.

$$x+y=3\\-x+3y=2$$
x+y=3x+3y=2x+y=3\\-x+3y=2

수식 내에서의 띄어쓰기

수식 안에서는 띄어쓰기를 해도 적용되지 않습니다. 다음과 같이 명시적으로 띄어쓰기를 입력하여야 합니다.

$local minimum$(띄어쓰기 적용 X)
$local\,minimum$(띄어쓰기 한 번)
$local\;minimum$(띄어쓰기 두 번)
$local\quad minimum$(띄어쓰기 네 번)

localminimumlocal minimum
localminimumlocal\,minimum
local  minimumlocal\;minimum
localminimumlocal\quad minimum


곱셈 기호

의외로 많이 쓰나 잘 알지 못하는 기호인 것 같습니다.

y = A \times x + B

y=a×x+by = a \times x + b


첨자

윗 첨자는 ^ 기호로, 아랫 첨자는 _ 기호로 적습니다.
오른쪽에 한 글자가 자동으로 첨자로 들어가게 되고 두 글자 이상을 적용하려면 { }(중괄호)로 감싸면 됩니다.

$a_1, a^2, a_1^2$
$y_i=x_i^3+x_{i-1}^2+x_{i-2}$
a1,a2,a12yi=xi3+xi12+xi2a_1, a^2, a_1^2\\\,\\ y_i=x_i^3+x_{i-1}^2+x_{i-2}

분수 표기법

분수 표기법에는 두 가지 방법이 있습니다.

  1. \over를 사용하면 \over를 기준으로 왼쪽에 있는 수식은 모두 분자, 오른쪽에 있는 수식은 모두 분모로 들어가게 됩니다.
  2. \frac을 사용하게 되면 첫 번째 문자는 분자, 두 번째 문자는 분모로 들어가게 됩니다. 두 문자 이상이라면 중괄호{ }를 통하여 묶어주면 됩니다.
$s^2+2s+s\over s+\sqrt s+1$
$\frac{1+s}{s(s+2)}$
s2+2s+ss+s+1s^2+2s+s\over s+\sqrt s+1

\,

1+ss(s+2)\frac{1+s}{s(s+2)}

절대값 표기법

일반적으로 절대값을 표기할 때는 키보드 위의 | 문자를 사용하게 됩니다.
하지만 이렇게 하면 분수와 같이 큰 객체에 맞게 resizable한 기호를 사용할 수 없습니다.
그럴 땐 \vert\left, \right를 통하여 좌우 기호를 명시해주면 됩니다.

$\vert x \vert$
$\left\lvert \frac{s^2+1}{s^3+2s^2+3s+1} \right\rvert$
x  \vert x \vert\\\;
s2+1s3+2s2+3s+1\left\lvert \frac{s^2+1}{s^3+2s^2+3s+1} \right\rvert

sin, log와 같은 기호를 세워서 표기

단어 앞에 \를 붙이게 되면 똑바로 글자를 쓸 수 있습니다.
Markdown에서 명시 되어 있지 않은 수학 단어라면 오류가 발생합니다.

$\log_{10}{(x+1)}$
$A\sin(bx+c)$
log10(x+1)\log_{10}{(x+1)}
asin(bx+c)a\sin(bx+c)

극한/시그마 표기법

그냥 \sum\lim 심볼을 사용하게 되면 다음과 같이 linear하게 표기됩니다.

limss2\lim_{s\rarr\infin}{s^2}

i=0(yiti)2\sum_{i=0}^{\infin}{(y_i-t_i)^2}

이럴 땐 \displaystyle을 앞에 명시하면 정상적으로 표시됩니다. 기본형인 linear 형태는 \textstyle 명시하면 됩니다.

$\displaystyle\lim_{s\rarr\infin}{s^2}$
$\displaystyle\sum_{i=0}^{\infin}{(y_i-t_i)^2}$

limss2\displaystyle\lim_{s\rarr\infin}{s^2}

i=0(yiti)2\displaystyle\sum_{i=0}^{\infin}{(y_i-t_i)^2}


벡터 표기법

현재 \vec 심볼을 벨로그에서 사용할 수 없는 것으로 보입니다.
\vec 대신 \overrightarrow 심볼을 사용하시면 화살표가 조금 더 크지만 올바로 출력됩니다.

$\vec{a}$
$\overrightarrow{a}$

a\vec{a}
a\overrightarrow{a}


행렬 표기법

matrix 심볼을 통하여
&로 열을 구분하고, \\로 행을 구분합니다.

$\begin{matrix}1&2\\3&4\\ \end{matrix}$
$\begin{pmatrix}1&2\\3&4\\ \end{pmatrix}$
$\begin{bmatrix}1&2\\3&4\\ \end{bmatrix}$
$\begin{Bmatrix}1&2\\3&4\\ \end{Bmatrix}$
$\begin{vmatrix}1&2\\3&4\\ \end{vmatrix}$
$\begin{Vmatrix}1&2\\3&4\\ \end{Vmatrix}$
1234(1234)[1234]{1234}12341234\begin{matrix}1&2\\3&4\\ \end{matrix}\\\,\\ \begin{pmatrix}1&2\\3&4\\ \end{pmatrix}\\\,\\ \begin{bmatrix}1&2\\3&4\\ \end{bmatrix}\\\,\\ \begin{Bmatrix}1&2\\3&4\\ \end{Bmatrix}\\\,\\ \begin{vmatrix}1&2\\3&4\\ \end{vmatrix}\\\,\\ \begin{Vmatrix}1&2\\3&4\\ \end{Vmatrix}

조각함수와 같은 case 표기법

cases 심볼을 통하여 작성할 수 있습니다.

$\vert x\vert=
\begin{cases}
-x,\;if\;x<0\\
+x,\;if\;x\geq0
\end{cases}$
x={x,  if  x<0+x,  if  x0\vert x\vert=\begin{cases} -x,\;if\;x<0\\+x,\;if\;x\geq0\end{cases}

📋 표 (Table)


표의 생성

| 기호로 열을 구분하고 줄바꿈으로 행을 구분합니다.
|-|-|-|가 헤더와 데이터를 구분하는 역할을 합니다.
(없으면 표가 생성되지 않습니다. 안에 들어가는 -의 개수는 표시되는 표와 무관합니다.)

|헤더1|헤더2|헤더3|
|------|------|------|
|데이터1|데이터2|데이터3|
|데이터1|데이터2|데이터3|
헤더1헤더2헤더3
데이터1데이터2데이터3
데이터1데이터2데이터3

표의 정렬

헤더와 데이터를 구분하는 줄의 각 셀에 :(콜론) 문자를 왼쪽 끝에 넣으면 왼쪽 정렬, 양쪽 끝에 넣으면 가운데 정렬, 오른쪽 끝에 넣으면 오른쪽 정렬이 됩니다.

|---헤더1---|---헤더2---|---헤더3---|
|:------|:------:|------:|
|데이터1|데이터2|데이터3|
|데이터1|데이터2|데이터3|
---헤더1------헤더2------헤더3---
데이터1데이터2데이터3
데이터1데이터2데이터3

♾️ 기호


화살표

왼쪽 화살표와 오른쪽 화살표는 다음과 같이 적습니다.

$\larr$
$\rarr$ or $\to$
\larr\\ \rarr

부등호 및 유사 등호

좌우 부등호, 근사, 유사, 플러스 마이너스 기호입니다.
이 문자 외에도 매우 많지만 벨로그에서 표현이 안 되는 기호를 제외하고 자주 사용할만한 것들만 적었습니다.
\coloneq 기호는 원래 줄이 하나가 아니고 두 개로 표시됩니다.

심볼기호심볼기호
$\gt$>\gt$\lt$<\lt
$\geq$\geq$\leq$\leq
$\approx$\approx$\sim$\sim
$\cong$\cong$\approxeq$\approxeq
$\simeq$\simeq$\eqsim$\eqsim
$\doteq$\doteq
$\coloneq$:\coloneq$\eqcolon$\eqcolon
$\fallingdotseq$\fallingdotseq$\risingdotseq$\risingdotseq
$\pm$±\pm$\mp$\mp

여러 점 기호는 다음과 같은 심볼로 표기할 수 있습니다.
상 하단 위치 구분을 위해 임의로 abc 문자를 오른쪽에 붙였습니다.
이 문자 외에도 매우 많지만 벨로그에서 표현이 안 되는 기호를 제외하고 자주 사용할만한 것들만 적었습니다.

이름마크다운기호
점 문자$\dot{a}$a˙\dot{a}
중간 점$\cdot$\cdotabc
콜론$\colon$ ⁣:\colonabc
하단 점$\ldotp$.\ldotpabc
말줄임표$\cdots$\cdotsabc
대각 말줄임표$\ddots$\ddotsabc
수직 말줄임표$\vdots$\vdotsabc
하단 말줄임표$ldots$\ldotsabc
왜냐하면$\because$\becauseabc
그러므로$\therefore$\thereforeabc

단위 기호

섭씨(\celsius), 옴(\ohm), 위상각(\phase{}) 기호는 존재하나 벨로그에서 표시되지 않습니다.

이름마크다운기호
$\degree$°\degree
$\Omega$Ω\Omega
profile
Hi, my name is Eugene CHOI the Automotive MCU FW developer.

14개의 댓글

comment-user-thumbnail
2021년 10월 15일

부랄 탁 치고갑니다.

답글 달기
comment-user-thumbnail
2022년 2월 12일

벡터 표기법에서 벡터 처리가 안 되어 있습니다

1개의 답글
comment-user-thumbnail
2022년 7월 23일

안녕하세요, 너무 좋은글이라서 그러는데 제 벨로그로 링크를 공유해도 될까요?

1개의 답글
comment-user-thumbnail
2022년 11월 6일

잘 보고 갑니다~!
정리가 잘 되어 있네요 ㅎㅎ

1개의 답글
comment-user-thumbnail
2023년 7월 21일

먼저 좋은 정보 감사합니다.
\sum 이 아닌 \Sigma 의 첨자들을 시그마 기호의 위아래로 위치시키는 방법은 없을까요? \displaystyle 로는 안되더군요..

1개의 답글
comment-user-thumbnail
2023년 10월 9일

선생님 지수 쓸때 2의 -1 제곱 이런건 표현이 안되던데 어떻게 해야하나요?

1개의 답글
comment-user-thumbnail
2024년 1월 10일

안녕하세요
좋은 글 감사합니다.
제 벨로그에 출처를 표시하고, 위의 내용을 정리해도 괜찮을까요?

1개의 답글