18. 화학식을 씁시다!18. 화학식을 씁시다!
🧪

18. 화학식을 씁시다!

차례
 

화학러를 위한 선물

지난 번
14. 수식을 씁시다!14. 수식을 씁시다!
14. 수식을 씁시다!
에서 다룬 것처럼 Notion은 수식 코드를 이용해서 예쁘게 수식을 나타낼 수 있다. 그런데 바로 오늘(Jul 3, 2020), 드디어 Notion이 화학식을 지원하기 시작했다. 👍 이 기능은
NotionNotion
Notion
이 쓰는 라는 엔진의 추가 확장 기능으로 제공된 것인데 기쁘게도 Notion에서 이를 발빠르게 도입했다. 화학을 공부하거나 연구하시는 여러분께 큰 🎁선물이 되리라 믿으며 화학식 작성 방법을 소개한다.
 

그냥 쓰면 안 돼요?

기본적으로 문법을 이용하면 화학식을 쓸 수 있다. 이런 식으로.
 
\mathrm{CO_2+C \rightarrow 2CO}
 
\mathrm{Hg^{2+} \overset{I^-} \rightarrow HgI_2 \overset{I^-} \rightarrow [Hg^{II}I_4]^{2-}}
 
C_p[\mathrm{H_2O(l)} = \mathrm{75.3 \frac{J}{mol \, K}}
 
아... 죽을 뻔했다. 사실 두번째 식부터는 무슨 뜻인지도 모르고 최대한 '보이는 대로' 그렸다. 화학식 코드를 설명하는 페이지에 나와 있는 식인데, 일반 로 옮기는 게 굉장히 귀찮았다. 무엇보다 일반 코드로 쓴 화학식은 금방 눈에 들어오지도 않고 읽기도 어렵다.
그렇다면 이제 의 확장 기능인 화학식 코드를 가지고 위의 식을 만들어보자.
 
\ce{CO2 + C -> 2 CO}
 
\ce{Hg^2+ ->[I-] HgI2 ->[I-] [Hg^{II}I4]^2-}
 
C_p[\ce{H2O(l)}] = \pu{75.3 J // mol K}
 
화학식(chemical equation)을 표현하는 기호는 \ce{ } 안에 기록하는데 일반적인 와는 문법이 많이 다르다. 그도 그럴 것이 \ce는 철저히 화학식을 위해서 만들어진 코드이기 때문이다. 식의 의미를 알기 어렵더라도 식의 모양과 \ce는 충분히 대응하면서 익힐 만하다. 그리고 자세히 보면 \ce 를 쓴 화학식 코드 쪽이 더 예쁜 글꼴로 '진짜' 화학신처럼 표시된다. 이러니 화학식을 만들 때는 화학식 코드를 쓰는 것이 훨씬 좋다.
자, 이제 화학식의 세계로 뛰어들어보자!
📢
이 글에서 사용된 화학식 예제는 모두 "mhchem for KaTeX"에서 가져온 것이다.
 

1. 간단한 화학식

원소기호와 숫자로 이루어진 간단한 화학식부터 시작하다.
 
\ce{H2O}
\ce{Sb2O3}
 
모든 화학식은 \ce{화학식}의 꼴로 나타낸다. \ce 안에서는 글씨체가 기울임꼴이 아니라 로마자의 원래 형태를 취하기 때문에 원소 기호를 나타내기 좋다.
알파벳 뒤에 숫자가 오면 아래 첨자로 표시된다. 일반 처럼 _ 를 표시할 필요가 없다.
 

2. 이온과 전하(charges)

알파벳 다음에 양전하와 음전하를 나타내는 +, -가 오면 위첨자로 표시한다.
\ce{H+}
다만 2개 이상의 전하를 표시하기 위해 숫자가 필요하면 이때는 위첨자 기호인 ^를 사용해야 한다.
\ce{CrO4^2-}
일반 에서 두 개 이상의 문자를 위첨자로 표시하려면 ^{2-} 처럼 { }가 필요히자만 화학식에서는 시각적으로 혼동이 되는 경우를 제외하면 { }를 생략할 수 있다.
\ce{AgCl2]-}
\ce{Y^99+}
\ce{Y^{99+}}
위의 예와 같이 시각적으로 혼동을 일으킬 때에는 Y^{99+}} 처럼 나타낼 수 있다.
 

3. 분자량(stoichiometric numbers)

원소 기호 앞에 숫자를 표시하기 위해서 알파벳 앞에 숫자를 쓰면 위첨자나 아래첨자가 아닌 일반적인 숫자로 표시돤다.
\ce{2 H2O}
\ce{2H2O}
분자량과 알파벳 사이는 붙여 쓰거나 띄어 써도 똑같이 표시된다. 다만 분자량이 복잡해질 경우는 빈 칸을 이용해서 구분하면 읽기 편한 화학식 코드가 된다.
\ce{0.5 H2O}
\ce{1/2 H2O}
분자량이 분수일 때는 분자/분모 꼴로 나타내면 예쁘게 분수 처리가 된다. 처럼 frac을 쓸 필요가 없다.
\ce{(1/2) H2O}
다만 TUPACK Greek Book에서 쓴 것처럼 분수를 (분자/분모) 꼴로 쓰려면 위와 같이 괄호를 붙여주면 된다.
\ce{$n$ H2O}
분자량을 과 같은 변수로 지정하고 싶을 때, 즉 일반적인 수식에서처럼 기울임꼴을 적용하고 싶다면 $문자$ 형태를 사용하면 된다. 위에서는 $n$을 이용하여 을 표시했다. 분명히 과는 다르다.
 

4. 동위 원소(isotopes)

동위원소를 표시하기 위해서 아래첨자와 위첨자를 사용할 때에는 일반적으로 에서 썼던 위첨자 기호(^)와 아래첨자 기호(_)를 쓰면 된다.
\ce{^{227}_{99}Th+}
화학식의 편이를 위해 위첨자와 아래첨자가 연속된 숫자열로 되어 있다면 { }를 생략할 수 있다.
\ce{^227_99Th+}
\ce{^{0}_{-1}n^{-}}
\ce{^0_-1n-}
첨자는 방식으로 깐깐하게 써도 되고 화학식을 쓰는 방식대로 써도 잘 동작한다. 상황에 따라 알맞은 것을 골라 쓰면 되겠다.
알파벳 중간에 숫자가 들어갔을 때 위첨자로 표시해야 할 때는 확실하게 구분해서 표시해 주면 혼동을 피할 수 있다.
\ce{H{}^3HO}
\ce{H^3HO}
\ce{H3HO}
\ce{H 3HO}
마지막 두 개의 예처럼 \ce{H3HO}\ce{H 3HO}는 자칫 혼란을 줄 수 있으므로 신중하게 사용해야 한다. 필요하면 위첨자 기호(^)나 아래첨자 기호(_)를 확실하게 달아주면 읽기에 더 좋은 코드가 된다.
 

5. 반응 화살표(reaction arrows)

화학 반응식에서 화살표 는 마치 수식의 처럼 굉장히 중요한 의미를 가진다. 화학식에서 쓸 수 있는 화살표는 정말 다양하다.
\ce{A -> B}
\ce{A <- B}
\ce{A <-> B}
여기까지는 굉장히 직관적으로 알아볼 수 있다.
위/아래 화살표를 함께 표시하려면 여러 가지 표현 방식을 쓸 수 있다. 화살표 끝을 유의해서 보자.
\ce{a <--> b}
\ce{a <=> b}
 
화살표는 두 개의 인자(argument)를 줄 수 있는데 화살표의 위쪽과 아래쪽에 표시할 글을 쓰는 용도이다. 인자는 [ ] 안에 표시한다.
\ce{A ->[H2O] B}
\ce{A ->[{text above}][{text below}] B}
\ce{A ->[{위쪽}][{아래쪽}] B}
😀
Discord 등의 수식이나 화학식 봇(bot)에서 한글 처리를 제대로 하지 못하는 것과는 달리 Notion이 쓰는 엔진은 기가 막히게 한글을 잘 처리한다. 이번에 도입한 화학식 확장 기능에도 무리 없이 한글이 돌아간다. 어찌보면 당연할 수 있는데 하도 한글에 대한 푸대접을 받고 힘들어한 터라 이런 점들이 굉장히 기쁘다.
 

6. 여러 가지 괄호

일반적인 문법과 같이 대괄호와 소괄호는 각각 [ ], ( ) 처럼 표시하면 된다. 다만 중괄호는 특별한 의미가 있으므로 중괄호 자체를 나타내려면 에서처럼 \{ \}를 사용하면 된다.
 
\ce{(NH4)2S}
\ce{[\{(X2)3\}2]^3+}
에서 분수와 함께 쓰는 큰 괄호를 표시할 때 그랬던 것처럼, 화학식에서도 \left\right를 이용하여 큰 괄호를 표시할 수 있다.
\ce{CH4 + 2 $\left( \ce{O2 + 79/21 N2} \right)$}
위에서 $ ... $ 모양이 나왔는데 이제 이것을 설명할 차례다.
 

7. 수식 모드로 변환

지금까지 살펴본 것처럼 에서 화학식을 나타내려면 \ce 를 붙이고 { } 안에 화학식 코드를 사용한다. 화학식 모드와 수식 모드는 문법이 다른 점이 많기 때문에 별다른 지시 없이 화학식 모드에서 수식 코드를 쓰면 오류가 발생한다.
이럴 경우 \ce{ } 안에서 잠시 동안 수식 모드를 쓰고 싶으면 $수식 코드$ 와 같은 꼴로 수식 코드를 사용할 수 있다.
\ce{NaOH(aq,$\infty$)}
위의 경우 화학식 안에서 무한대 기호()를 표시하기 위해서 $\infty$ 처럼 사용하였다.
몇 가지 예를 더 살펴보자.
💡
문법 정보는
14. 수식을 씁시다!14. 수식을 씁시다!
14. 수식을 씁시다!
페이지를 참고하자.
 
\ce{Fe(CN)_{$\frac{6}{2}$}}
\ce{X_{$i$}^{$x$}}
\ce{X_$i$^$x$}
$...$ 로 수식 모드에 들어가면 모든 알파벳은 기울임꼴로 표시된다. 그래서 화학식 중간에 기울임꼴을 쓰고 싶을 때 수식 모드로 잠깐 갔다가 나오는 방법을 사용하기도 한다. 물론 수식 모드에서는 빈 칸을 무시하기 때문에 \ , \,~ 를 이용해서 빈을 표시해야 한다.
\ce{$cis${-}[PtCl2(NH3)2]}
\ce{CuS($hP12$)}
 
그런데 화학식에서도 , 과 같은 변수는 워낙 많이 사용하기 때문에 특별히 n과 x에 대해서는 수식 모드로 들어가지 않아도 기울임꼴이 적용된다.
 
\ce{NO_x}
\ce{Fe^n+}
 
\ce{x Na(NH4)HPO4 ->[\Delta] (NaPO3)_x + x NH3 ^ + x H2O}
마지막 예에서 볼 수 있듯이 x라고만 써도 처럼 나타나기 때문에 화학식 코드가 굉장히 깔끔해졌다. 물론 xn을 제외한 나머지 알파벳은 일반 글꼴로 표시되기 때문에 기울임꼴을 쓰르면 $a$처럼 써야 한다.
 

8. 결합(bonds)

화학식에서 '결합'을 나타낼 떼는 -를 사용한다. 빼기(minus)를 나타내려면 앞뒤에 빈 칸을 두어서 - 처럼 써야 한다.
아래에 다양한 결합 기호의 예를 소개한다.
 
\ce{C6H5-CHO}
\ce{A-B=C#D}
짝대기(!) 하나는 -, 두 개는 =, 세 개는 #를 사용한다. (어? '#'는 획수가 4인데... 왜?)
결합 기호임을 확실하게 나타내려면 \bond{ } 처럼 표시하고 중괄호 안에 결합 기호를 넣으면 된다.
\ce{A\bond{-}B\bond{=}C\bond{#}D}
\ce{A\bond{1}B\bond{2}C\bond{3}D}
실선이 아닌 점선()을 나타내려면 \bond{~}를 사용한다.
\ce{A\bond{~}B\bond{~-}C}
\ce{A\bond{~--}B\bond{~=}C\bond{-~-}D}
 
가웃데점(·)을 결합 기호로 쓰려면 \bond{ }의 중괄호 안에 필요한 수만큼 . 를 쓰면 된다.
\ce{A\bond{...}B\bond{....}C}
 
결합 기호로 화살표를 쓰려면 \bond{ } 안에 화살표 기호인 <-->를 쓰면 된다.
\ce{A\bond{->}B\bond{<-}C}
 

9. 알쓸신화

화학식에서 쓰이는 '알아두면 쓸데 있는 신비한 화학 기호'를 몇 가지 소개한다.
 

1) 그리스 문자

에서처럼 \ 기호와 그리스문자 이름을 적으면 된다. \omega처럼 나타날 것이고, \Omega처럼 표시될 것이다.
 
\ce{\mu-Cl}
 
\ce{[Pt(\eta^2-C2H4)Cl3]-}
\ce{\beta +}
\ce{^40_18Ar + \gamma{} + \nu_e}
 

2) 화학식의 연산 기호

화학식에서 연산 기호를 쓸 때는 앞뒤에 빈칸을 넣어두는 것이 구분하기도 편하고 기호의 혼동을 줄일 수 있다. 특히 - 기호의 앞뒤를 붙여 쓰면 결합 기호가 되기 때문에 주의가 필요하다.
 
\ce{A + B}
\ce{A - B}
\ce{A = B}
\ce{A \pm B}
마지막의 예는 를 나타내는 것으로 \pm을 쓰면 된다. 에서 그대로 빌려온 것이다.
 

3) 가운뎃점

화학식에서 가웃뎃점을 나타내려면 *를 쓰거나 .를 사용한다. 문맥에 따라 '곱하기'를 나타낼 때는 *를, 그 외의 경우는 .를 쓰면 된다.
 
\ce{KCr(SO4)2*12H2O}
\ce{KCr(SO4)2.12H2O}
 
\ce{KCr(SO4)2 * 12 H2O}
 

4) 침전과 가스(precipitate and gas)

침전을 나타내는 아래쪽 화살표()는 v, 가스를 나타내는 위쪽 화살표()는 ^를 사용한다. 다만 다른 기호와 혼동되지 않도록 앞뒤에 빈 칸을 두거나 ( )로 묶어서 표시한다.
 
\ce{SO4^2- + Ba^2+ -> BaSO4 v}
\ce{A v B (v) -> B ^ B (^)}
 

5) 산화 상태 표시(oxidation states)

특별한 기호는 아니지만 위첨자를 이용해서 표시할 수 있다.
\ce{Fe^{II}Fe^{III}2O4}
 

6) 짝 없는 전자, 라디칼 도트(unpaired electrons, radical dots)

모두 가운뎃점을 사용해서 표시하는 기호이기 때문에 .를 사용하면 된다. 필요하면 위첨자를 사용하여 나타낸다.
\ce{OCO^{.-}}
\ce{NO^{(2.)-}}
 

7) Kröger-Vink Notation

더 이상의 자세한 설명은 생략한다.😱
\ce{Li^x_{Li,1-2x}Mg^._{Li,x}$V$'_{Li,x}Cl^x_{Cl}}
\ce{O''_{i,x}}
\ce{M^{..}_i}
\ce{$V$^{4'}_{Ti}}
\ce{V_{V,1}C_{C,0.8}$V$_{C,0.2}}
 
여긴 어디...? 난 누구...? 😰🥵🤢
 

10. 물리랑을 나타내는 단위(physical units) [PU]

화학식을 쓰다 보면 여러 가지 물리량을 나타내는 단위를 써야 할 때가 있다. 이렇게 단위를 써야 할 때에는 \pu{ }를 사용한다. 줄, 몰 등을 나타내기가 훨씬 수월하다.
 
\pu{123 kJ}
\pu{123 mm2}
기본적으로 \pu{ } 안에 단위를 적어주면 된다. 숫자를 쓰면 위점자로 표시되며 '제곱' 등을 쉽게 나타낼 수 있다.
단위들의 곱을 나타낼 때에는 두 가지 표시 방법이 있다. 아예 곱하기를 생략하거나 가운뎃점(·)으로 나타내는 방법이다.
 
\pu{123 J s}
\pu{123 J*s}
나누기를 표시하기 위해서는 네 가지 방법이 있다. '/'를 쓰거나 분수로 나타내거나, 혹은 역수로 나타내거나 아니면 역수의 곱으로 나타내는 방법이다. 물론 \pu는 이 네 가지 표현을 깔끔하게 지원한다.
 
\pu{123 kJ/mol}
\pu{123 kJ//mol}
\pu{123 kJ mol-1}
\pu{123 kJ*mol-1}
 
수를 표시할 때 '과학적 표기 방식'을 쓸 수 있다. 프로그래머라면 1.2e3과 같은 표기법에 익숙할 텐데 이는 을 의미한다. \pu에서는 네 가지의 과학적 표기법을 모두 지원한다.
 
\pu{1.2e3 kJ}
\pu{1,2e3 kJ}
\pu{1.2E3 kJ}
\pu{1,2E3 kJ}
자세히 살펴보면 네 가지 표현 방법에는 조금씩 특직잉 있고 이를 화학식 코드로 나타내는 규쳑이 있음을 발견할 수 있다. 이 방법들 중 상황에 맞는 것을 골라서 사용하면 되겠다.
 

복잡한 화학식 예제

지금까지 여러 가지 화학식 코드를 살펴보았는데 이를 총 동원한 복잡한 화학식의 보기를 싣는다. 여러분이 원하는 표기법이 있는지 살펴보고 필요할 때 활용할 수 있도록 하자.
 
\ce{Zn^2+ <=>[+ 2OH-][+ 2H+] $\underset{\text{amphoteres Hydroxid}}{\ce{Zn(OH)2 v}}$ <=>[+ 2OH-][+ 2H+] $\underset{\text{Hydroxozikat}}{\ce{[Zn(OH)4]^2-}}$}
 
\ce{$K = \frac{[\ce{Hg^2+}][\ce{Hg}]}{[\ce{Hg2^2+}]}$}
 
\ce{$K = \ce{\frac{[Hg^2+][Hg]}{[Hg2^2+]}}$}
 
\ce{Hg^2+ ->[I-] $\underset{\mathrm{red}}{\ce{HgI2}}$ ->[I-] $\underset{\mathrm{red}}{\ce{[Hg^{II}I4]^2-}}$}
아, 물론 처럼 글 중간(inline)에 아름답게 표시할 수도 있다. $$ ... $$\ce\pu도 무리 없이 표시할 수 있기 때문이다.
 

마치며...

Notion의 이번(Jul 3, 2020) 업데이트를 보고 개선된 것이 너무도 적은 것 같아 살짝 속상하기도 했지만, 속상한 것 취소! 지난 번 업데이트에서 글 중간에 수식을 넣을 수 있는 기능을 도입하더니 이번에는 아예 \ce\pu의 확장을 받아들여서 화학식을 쌈싸먹어버리는 기능이 들어갔다. 이제 적어도 수학, 과학을 포함한 이공계 여러분들이 Notion을 사용할 이유가 한 가지 더 늘었다고 생각한다.
이제 Notion이 각주(footnote)를 지원하기만 한다면 논문을 쓰는 훌륭한 도구에 더 다가갈 수 있으리라 믿는다. 무럭무럭 커가는 Notion이 다음에는 또 어떤 깜짝 선물을 가져다줄 지 벌써부터 가슴이 뛴다.

참고 자료