chemfig 메커니즘 예제: 다단계 메커니즘, 굽은 화살표, 라디칼 낚싯바늘 화살표

게시: 2026년 10월 17일 · 작성자: Scidart Academy · 읽는 시간: 약 11분
어두운 코드 패널의 chemfig \chemmove 코드와 그 옆에 낚싯바늘 화살표 세 개로 그린, 염소 라디칼이 메테인에서 수소를 떼어 내는 그림
MolDraw로 그리고 chemfig로 내보낸, 굽은 화살표와 낚싯바늘 화살표가 있는 다단계·라디칼 메커니즘.

짧은 답: 아래는 chemfig로 쓴 완전한 메커니즘 다섯 개입니다: 1전자 낚싯바늘 화살표로 그린 라디칼 연쇄 반응 두 개와 2전자 굽은 화살표로 그린 극성 메커니즘 세 개. 각각 다운로드해 pdflatex로 컴파일할 수 있는 .tex 파일입니다(두 번 실행하세요). 고치려면 파일을 MolDraw 캔버스에 붙여 넣고 마우스로 편집한 뒤 Download → chemfig (.tex)를 고르세요.

다섯 가지 예제

메테인의 라디칼 염소화단계 제목 아래 개시, 두 전파 단계, 종결. 균일 분해, 새 결합에서 만나는 낚싯바늘 화살표. radical-chlorination-of-methane.tex
HBr의 반-마르코프니코프 첨가네 단계로 보는 과산화물 효과: 과산화물 균일 분해, 브로민 원자 생성, 프로펜에 첨가, H 떼어 내기. 골격 탄소 위의 라디칼 점. anti-markovnikov-hbr-addition.tex
염기 촉매 알돌 첨가엔올레이트 생성(평형), C–C 결합 생성, 양성자화. 전하와 π 결합에서 시작하는 화살표. base-catalysed-aldol-addition.tex
tert-뷰탄올의 E1 탈수각 화살표 위의 조건과 탄소 양이온이 있는, 네 행으로 줄 바꿈한 하나의 반응식. e1-dehydration-of-tert-butanol.tex
벤젠의 브로민화화살표 위에 촉매가 있는, σ-착물을 거치는 친전자성 방향족 치환. bromination-of-benzene.tex

아래 각 단계는 세 부분으로 되어 있습니다: chemfig 코드(Copy 버튼 사용), 그 코드로 pdflatex가 만든 PDF, 같은 코드를 붙여 넣었을 때 MolDraw가 그린 그림. 두 그림 모두 보이는 코드 그대로 만들었으므로, 붙여 넣으면 PDF와 같은 배치, 간격, 굽은 화살표가 나오는지 확인할 수 있습니다.

그림 대신 화학을 기술하고 싶다면 MolScript로 메커니즘을 쓰세요: 화학종은 SMILES로, 굽은 화살표는 한 줄에 하나씩. MolDraw가 배치하고 같은 chemfig 코드를 줄 수 있습니다.

chemfig에서 굽은 화살표를 쓰는 법

chemfig는 TikZ로 원자 사이에 화살표를 그리며, 세 부분으로 이루어집니다:

  1. 끝에 이름 붙이기. 원자 앞이나 결합 옵션 안(-[@{b1}:0])에 @{a1}을 넣어 이름을 붙입니다.
  2. \chemmove 안에서 그리기. 반응식 뒤에 \chemmove{ \draw[…] (a1) to[bend left=50] (a2); }를 쓰면 한 이름에서 다른 이름으로 화살표가 그려집니다.
  3. 두 번 컴파일하기. chemfig는 첫 번째 실행에서 이름 붙은 원자의 위치를 저장하고 두 번째 실행에서 사용합니다.

예제는 MolDraw 캔버스의 화살표 모양과 맞는 다음 규칙을 따릅니다:

전자 두 개완전한 화살촉: -{Stealth[length=4pt,inset=1.5pt]}.
전자 하나화살촉의 절반인 낚싯바늘: -{Straight Barb[left,length=4pt]}. [left]나 [right]로 곡선 바깥쪽 미늘만 남깁니다.
꼬리가 시작하는 곳전자를 내주는 비공유 전자쌍, 음전하, 라디칼 점, 또는 결합의 가운데. [shift={(…em,…em)}]로 꼬리를 원자 중심에서 그 지점으로 옮깁니다.
머리가 멈추는 곳전자를 받는 원자 바로 앞, 또는 새 결합이 생길 때는 두 원자 사이.
크기\setchemfig{atom sep=2.5em, …}가 결합 길이를 정합니다. em 단위의 모든 shift가 이를 기준으로 하므로 코드를 복사할 때 이 줄을 유지하세요.
곡선각도를 지정한 bend left / bend right, 깊은 곡선에는 looseness. 각도는 두 끝을 잇는 선에 대한 상대값이므로, chemfig가 캔버스와 다르게 반응식 간격을 잡아도 곡선 모양이 유지됩니다.

다섯 파일 모두 같은 두 줄을 불러오며, 코드를 내 문서에 복사할 때도 이 줄이 필요합니다:

\usepackage{chemfig}
\usetikzlibrary{arrows.meta,decorations.pathmorphing}

1. 메테인의 라디칼 염소화

라디칼 연쇄 반응의 대표적인 첫 예제로, 네 단계입니다:

  • 개시: 빛이 Cl–Cl 결합을 고르게 끊습니다(균일 분해). 낚싯바늘 화살표 두 개가 결합에서 나와 각 염소로 갑니다.
  • 전파 1: 염소 원자가 메테인에서 수소를 떼어 냅니다. Cl•의 전자 하나와 C–H 결합의 전자 하나가 새 H–Cl 결합을 만들고, C–H의 나머지 전자는 탄소에 남아 메틸 라디칼이 됩니다.
  • 전파 2: 메틸 라디칼이 Cl2에서 염소 원자를 가져가고 Cl•를 내놓아 순환이 다시 시작됩니다.
  • 종결: 두 라디칼이 짝을 짓습니다. 여기서는 CH3•와 Cl•입니다.
radical-chlorination-of-methane.tex 다운로드

각 단계는 별도의 \schemestart … \schemestop입니다. 종결 단계는 손으로 쓰기 가장 어려운 부분을 보여 줍니다: 자신이 만드는 결합 가운데에서 만나는 낚싯바늘 화살표 두 개.

개시

\setchemfig{atom sep=2.5em, + sep left=0.7em, + sep right=0.7em, compound sep=4em, arrow offset=6pt}
\schemestart
  \chemfig{@{a1}Cl-[@{b1}:0]@{a2}Cl}
  \arrow{->[h$\nu$]}
  \chemfig{\charge{90=\.}{Cl}}
  \+
  \chemfig{\charge{90=\.}{Cl}}
\schemestop
\chemmove{
  \draw[-{Straight Barb[left,length=4pt]}]([shift={(0.25em,-0.27em)}]b1) to[bend left=77,looseness=1.4] ([shift={(0.23em,-0.63em)}]a1);
  \draw[-{Straight Barb[left,length=4pt]}]([shift={(-0.25em,0.27em)}]b1) to[bend left=77,looseness=1.4] ([shift={(-0.23em,0.63em)}]a2);
}
pdflatex로 컴파일한 chemfig
메테인의 라디칼 염소화, 개시: 이 chemfig 코드를 pdflatex로 컴파일한 결과
같은 코드를 붙여 넣은 MolDraw
메테인의 라디칼 염소화, 개시: 같은 chemfig 코드를 MolDraw에 붙여 넣은 결과로, 배치와 굽은 화살표가 같습니다

전파 1: 수소 떼어 내기

\setchemfig{atom sep=2.5em, + sep left=0.7em, + sep right=0.7em, compound sep=4em, arrow offset=6pt}
\schemestart
  \chemfig{@{a1}\charge{90=\.}{Cl}}
  \+
  \chemfig{@{a2}H-[@{b1}:0]@{a3}CH_3}
  \arrow{->}
  \chemfig{HCl}
  \+
  \chemfig{\charge{90=\.}{C}H_3}
\schemestop
\chemmove{
  \path (a2) -- (a1) coordinate[pos=0.5] (m1);
  \draw[-{Straight Barb[left,length=4pt]}]([shift={(0em,1.71em)}]a1) to[bend left=65,looseness=1.2] ([shift={(0em,1.64em)}]m1);
  \path (a2) -- (a1) coordinate[pos=0.5] (m2);
  \draw[-{Straight Barb[left,length=4pt]}]([shift={(0em,-0.33em)}]b1) to[bend left=57,looseness=1.1] ([shift={(0em,-1.64em)}]m2);
  \draw[-{Straight Barb[left,length=4pt]}]([shift={(-0.45em,0.33em)}]b1) to[bend left=65,looseness=1.2] ([shift={(-0.83em,0.78em)}]a3);
}
pdflatex로 컴파일한 chemfig
메테인의 라디칼 염소화, 전파 1: 수소 떼어 내기: 이 chemfig 코드를 pdflatex로 컴파일한 결과
같은 코드를 붙여 넣은 MolDraw
메테인의 라디칼 염소화, 전파 1: 수소 떼어 내기: 같은 chemfig 코드를 MolDraw에 붙여 넣은 결과로, 배치와 굽은 화살표가 같습니다

전파 2: 염소 이동

\setchemfig{atom sep=2.5em, + sep left=0.7em, + sep right=0.7em, compound sep=4em, arrow offset=6pt}
\schemestart
  \chemfig{@{a1}\charge{90=\.}{C}H_3}
  \+
  \chemfig{@{a2}Cl-[@{b1}:0]@{a3}Cl}
  \arrow{->}
  \chemfig{H_3C-[:0]Cl}
  \+
  \chemfig{\charge{90=\.}{Cl}}
\schemestop
\chemmove{
  \path (a2) -- (a1) coordinate[pos=0.5] (m1);
  \draw[-{Straight Barb[left,length=4pt]}]([shift={(-0.55em,1.36em)}]a1) to[bend left=57,looseness=1.1] ([shift={(0em,0.87em)}]m1);
  \path (a2) -- (a1) coordinate[pos=0.5] (m2);
  \draw[-{Straight Barb[left,length=4pt]}]([shift={(0em,-0.27em)}]b1) to[bend left=57,looseness=1.1] ([shift={(0em,-0.87em)}]m2);
  \draw[-{Straight Barb[left,length=4pt]}]([shift={(-0.45em,0.27em)}]b1) to[bend left=77,looseness=1.4] ([shift={(-0.23em,0.63em)}]a3);
}
pdflatex로 컴파일한 chemfig
메테인의 라디칼 염소화, 전파 2: 염소 이동: 이 chemfig 코드를 pdflatex로 컴파일한 결과
같은 코드를 붙여 넣은 MolDraw
메테인의 라디칼 염소화, 전파 2: 염소 이동: 같은 chemfig 코드를 MolDraw에 붙여 넣은 결과로, 배치와 굽은 화살표가 같습니다

종결

\setchemfig{atom sep=2.5em, + sep left=0.7em, + sep right=0.7em, compound sep=4em, arrow offset=6pt}
\schemestart
  \chemfig{@{a1}\charge{90=\.}{C}H_3}
  \+
  \chemfig{@{a2}\charge{90=\.}{Cl}}
  \arrow{->}
  \chemfig{H_3C-[:0]Cl}
\schemestop
\chemmove{
  \path (a2) -- (a1) coordinate[pos=0.58] (m1);
  \draw[-{Straight Barb[left,length=4pt]}]([shift={(-0.55em,1.36em)}]a1) to[bend left=57,looseness=1.1] ([shift={(0em,0em)}]m1);
  \path (a1) -- (a2) coordinate[pos=0.5] (m2);
  \draw[-{Straight Barb[right,length=4pt]}]([shift={(0em,1.37em)}]a2) to[bend right=57,looseness=1.1] ([shift={(0em,1.31em)}]m2);
}
pdflatex로 컴파일한 chemfig
메테인의 라디칼 염소화, 종결: 이 chemfig 코드를 pdflatex로 컴파일한 결과
같은 코드를 붙여 넣은 MolDraw
메테인의 라디칼 염소화, 종결: 같은 chemfig 코드를 MolDraw에 붙여 넣은 결과로, 배치와 굽은 화살표가 같습니다

종결 코드에서 \path … coordinate 줄은 두 라디칼 사이에 점을 만듭니다. 그 점은 둘 사이 거리의 비율로 정해지므로 + sep left나 결합 길이를 바꿔도 낚싯바늘 화살표가 여전히 틈에서 만납니다. 한 원자에서 고정된 거리만큼 떨어진 점이라면 간격이 바뀌는 순간 틈을 벗어날 것입니다.

라디칼 점은 \charge{90=\.}{Cl}로 씁니다: 원자 위 90°에 전자 하나. CH3•에서는 점이 작용기 전체가 아니라 탄소에 붙습니다: \charge{90=\.}{C}H_3.

2. HBr의 반-마르코프니코프 첨가 (과산화물 효과)

과산화물이 있으면 HBr은 프로펜에 "반대로" 첨가되어 브로민이 끝 탄소에 붙습니다. 연쇄를 Br•가 이끌기 때문인데, Br•는 더 안정한 2차 라디칼을 남기는 자리에 첨가됩니다.

  • 개시 1: 다이-tert-뷰틸 과산화물이 약한 O–O 결합에서 쪼개집니다.
  • 개시 2: tert-뷰톡실 라디칼이 HBr에서 H를 떼어 내고 Br•를 내놓습니다.
  • 전파 1: Br•가 C=C의 CH2 쪽 끝에 첨가됩니다. π 전자 하나는 새 C–Br 결합으로 가고 다른 하나는 가운데 탄소에 남습니다.
  • 전파 2: 그 2차 라디칼이 HBr에서 H를 떼어 내 1-브로모프로페인을 만들고 다시 Br•를 만듭니다.
anti-markovnikov-hbr-addition.tex 다운로드

개시: 과산화물 균일 분해

\setchemfig{atom sep=2.5em, + sep left=0.7em, + sep right=0.7em, compound sep=4em, arrow offset=6pt}
\schemestart
  \chemfig{-[:23](-[:-69]@{a2}O-[@{b1}:-3]@{a1}O-[:-52](-[:43])(-[:-75])-[:-161])(-[:47])-[:133]}
  \arrow{->[h$\nu$ or $\Delta$]}[,1.3]
  \chemfig{\charge{90=\.}{O}-[:-12](-[:-36])(-[:82])-[:-122]}
  \+
  \chemfig{\charge{90=\.}{O}-[:-12](-[:-36])(-[:82])-[:-122]}
\schemestop
\chemmove{
  \draw[-{Straight Barb[left,length=4pt]}]([shift={(-0.24em,0.28em)}]b1) to[bend left=77,looseness=1.4] ([shift={(-0.23em,0.62em)}]a1);
  \draw[-{Straight Barb[left,length=4pt]}]([shift={(0.24em,-0.28em)}]b1) to[bend left=77,looseness=1.4] ([shift={(0.23em,-0.62em)}]a2);
}
pdflatex로 컴파일한 chemfig
HBr의 반-마르코프니코프 첨가, 개시: 과산화물 균일 분해: 이 chemfig 코드를 pdflatex로 컴파일한 결과
같은 코드를 붙여 넣은 MolDraw
HBr의 반-마르코프니코프 첨가, 개시: 과산화물 균일 분해: 같은 chemfig 코드를 MolDraw에 붙여 넣은 결과로, 배치와 굽은 화살표가 같습니다

개시: 브로민 원자 생성

\setchemfig{atom sep=2.5em, + sep left=0.7em, + sep right=0.7em, compound sep=4em, arrow offset=6pt}
\schemestart
  \chemfig{@{a1}\charge{90=\.}{O}-[:-12](-[:-36])(-[:82]@{a3})-[:-122]}
  \+
  \chemfig{@{a2}H-[@{b1}:0,0.8]@{a4}Br}
  \arrow{->}
  \chemfig{HO-[:-12](-[:-36])(-[:82])-[:-122]}
  \+
  \chemfig{\charge{90=\.}{Br}}
\schemestop
\chemmove{
  \path (a2) -- (a3) coordinate[pos=0.7] (m1);
  \draw[-{Straight Barb[left,length=4pt]}]([shift={(0em,1.36em)}]a1) to[bend left=65,looseness=1.2] ([shift={(-0.08em,-0.19em)}]m1);
  \path (a2) -- (a1) coordinate[pos=0.5] (m2);
  \draw[-{Straight Barb[right,length=4pt]}]([shift={(0em,0.27em)}]b1) to[bend right=57,looseness=1.1] ([shift={(0em,0em)}]m2);
  \draw[-{Straight Barb[right,length=4pt]}]([shift={(-0.36em,-0.27em)}]b1) to[bend right=77,looseness=1.4] ([shift={(-0.11em,-0.63em)}]a4);
}
pdflatex로 컴파일한 chemfig
HBr의 반-마르코프니코프 첨가, 개시: 브로민 원자 생성: 이 chemfig 코드를 pdflatex로 컴파일한 결과
같은 코드를 붙여 넣은 MolDraw
HBr의 반-마르코프니코프 첨가, 개시: 브로민 원자 생성: 같은 chemfig 코드를 MolDraw에 붙여 넣은 결과로, 배치와 굽은 화살표가 같습니다

전파 1: Br•가 덜 치환된 탄소에 첨가

\setchemfig{atom sep=2.5em, + sep left=0.7em, + sep right=0.7em, compound sep=4em, arrow offset=6pt}
\schemestart
  \chemfig{@{a1}\charge{90=\.}{Br}}
  \+
  \chemfig{@{a2}=[@{b1}:0]@{a3}-[:-60]}
  \arrow{->}
  \chemfig{-[:0]\charge{90=\.}{}-[:-60]-[:0]Br}
\schemestop
\chemmove{
  \path (a2) -- (a1) coordinate[pos=0.5] (m1);
  \draw[-{Straight Barb[left,length=4pt]}]([shift={(0em,1.37em)}]a1) to[bend left=65,looseness=1.2] ([shift={(-0.12em,0.87em)}]m1);
  \path (a2) -- (a1) coordinate[pos=0.5] (m2);
  \draw[-{Straight Barb[right,length=4pt]}]([shift={(0em,0.48em)}]b1) to[bend right=57,looseness=1.1] ([shift={(-0.12em,0.87em)}]m2);
  \draw[-{Straight Barb[right,length=4pt]}]([shift={(-0.45em,-0.48em)}]b1) to[bend right=65,looseness=1.2] ([shift={(-0.44em,-0.53em)}]a3);
}
pdflatex로 컴파일한 chemfig
HBr의 반-마르코프니코프 첨가, 전파 1: Br•가 덜 치환된 탄소에 첨가: 이 chemfig 코드를 pdflatex로 컴파일한 결과
같은 코드를 붙여 넣은 MolDraw
HBr의 반-마르코프니코프 첨가, 전파 1: Br•가 덜 치환된 탄소에 첨가: 같은 chemfig 코드를 MolDraw에 붙여 넣은 결과로, 배치와 굽은 화살표가 같습니다

전파 2: HBr에서 수소 떼어 내기

\setchemfig{atom sep=2.5em, + sep left=0.7em, + sep right=0.7em, compound sep=4em, arrow offset=6pt}
\schemestart
  \chemfig{-[:0]@{a1}\charge{90=\.}{}-[:-60]-[:0]Br}
  \+
  \chemfig{@{a2}H-[@{b1}:0,0.8]@{a3}Br}
  \arrow{->}
  \chemfig{-[:0]-[:-60]-[:0]Br}
  \+
  \chemfig{\charge{90=\.}{Br}}
\schemestop
\chemmove{
  \path (a2) -- (a1) coordinate[pos=0.58] (m1);
  \draw[-{Straight Barb[left,length=4pt]}]([shift={(0em,1.36em)}]a1) to[bend left=57,looseness=1.1] ([shift={(0em,0em)}]m1);
  \path (a2) -- (a1) coordinate[pos=0.5] (m2);
  \draw[-{Straight Barb[right,length=4pt]}]([shift={(0em,0.27em)}]b1) to[bend right=57,looseness=1.1] ([shift={(0.05em,0.43em)}]m2);
  \draw[-{Straight Barb[right,length=4pt]}]([shift={(-0.36em,-0.27em)}]b1) to[bend right=77,looseness=1.4] ([shift={(-0.11em,-0.63em)}]a3);
}
pdflatex로 컴파일한 chemfig
HBr의 반-마르코프니코프 첨가, 전파 2: HBr에서 수소 떼어 내기: 이 chemfig 코드를 pdflatex로 컴파일한 결과
같은 코드를 붙여 넣은 MolDraw
HBr의 반-마르코프니코프 첨가, 전파 2: HBr에서 수소 떼어 내기: 같은 chemfig 코드를 MolDraw에 붙여 넣은 결과로, 배치와 굽은 화살표가 같습니다

전파 2의 라디칼은 점을 붙일 문자가 없는 골격 탄소에 있습니다. chemfig는 이를 \charge{90=\.}{}로 처리합니다: 빈 원자에 \charge를 써서 결합이 여전히 꼭짓점에서 만나게 합니다.

낚싯바늘 화살표는 점뿐 아니라 결합에서도 시작할 수 있습니다. 전파 1에서 화살표는 =[@{b3}:0]로 이름 붙인 C=C 결합에서 시작합니다.

3. 염기 촉매 알돌 첨가

2전자 화살표를 쓰는 극성 메커니즘으로, 세 단계입니다:

  1. 수산화 이온이 아세톤의 α-수소를 떼어 내 엔올레이트가 됩니다. 이 단계는 평형입니다(\arrow{<=>}).
  2. 엔올레이트 탄소가 아세트알데하이드의 카보닐 탄소를 공격하고, C=O π 전자가 산소로 옮겨 갑니다.
  3. 알콕사이드가 물에서 양성자를 받아 β-하이드록시 케톤과 수산화 이온이 다시 생깁니다.
base-catalysed-aldol-addition.tex 다운로드

1. 엔올레이트 생성

\setchemfig{atom sep=2.5em, + sep left=0.7em, + sep right=0.7em, compound sep=4em, arrow offset=6pt}
\schemestart
  \chemfig{@{a1}HO^{-}}
  \+
  \chemfig{-[:0](-[:-60]@{a3}-[@{b1}:0,0.8]@{a2}H)=[:60]O}
  \arrow{<=>}
  \chemfig{-[:0](-[:-60]\charge{300:4pt=$\scriptstyle-$}{})=[:60]O}
  \+
  \chemfig{H_2O}
\schemestop
\chemmove{
  \draw[-{Stealth[length=4pt,inset=1.5pt]}]([shift={(1.88em,0em)}]a1) to[bend right=47] ([shift={(-0.69em,-0.4em)}]a2);
  \draw[-{Stealth[length=4pt,inset=1.5pt]}]([shift={(0.2em,0.27em)}]b1) to[bend right=65,looseness=1.2] ([shift={(0.17em,0.47em)}]a3);
}
pdflatex로 컴파일한 chemfig
염기 촉매 알돌 첨가, 1. 엔올레이트 생성: 이 chemfig 코드를 pdflatex로 컴파일한 결과
같은 코드를 붙여 넣은 MolDraw
염기 촉매 알돌 첨가, 1. 엔올레이트 생성: 같은 chemfig 코드를 MolDraw에 붙여 넣은 결과로, 배치와 굽은 화살표가 같습니다

2. 알데하이드에 대한 친핵성 첨가

\setchemfig{atom sep=2.5em, + sep left=0.7em, + sep right=0.7em, compound sep=4em, arrow offset=6pt}
\schemestart
  \chemfig{-[:0](-[:-60]@{a1}\charge{300:4pt=$\scriptstyle-$}{})=[:60]O}
  \+
  \chemfig{@{a3}O=[@{b1}:60]@{a2}-[:0]}
  \arrow{->}
  \chemfig{O=[:0](-[:-60])-[:60]-[:0](-[:60])-[:-60]O^{-}}
\schemestop
\chemmove{
  \draw[-{Stealth[length=4pt,inset=1.5pt]}]([shift={(0.39em,1.07em)}]a1) to[bend left=57,looseness=1.1] ([shift={(-0.65em,0.38em)}]a2);
  \draw[-{Stealth[length=4pt,inset=1.5pt]}]([shift={(0.64em,0.15em)}]b1) to[bend left=77,looseness=1.4] ([shift={(0.64em,0em)}]a3);
}
pdflatex로 컴파일한 chemfig
염기 촉매 알돌 첨가, 2. 알데하이드에 대한 친핵성 첨가: 이 chemfig 코드를 pdflatex로 컴파일한 결과
같은 코드를 붙여 넣은 MolDraw
염기 촉매 알돌 첨가, 2. 알데하이드에 대한 친핵성 첨가: 같은 chemfig 코드를 MolDraw에 붙여 넣은 결과로, 배치와 굽은 화살표가 같습니다

3. 알콕사이드의 양성자화

\setchemfig{atom sep=2.5em, + sep left=0.7em, + sep right=0.7em, compound sep=4em, arrow offset=6pt}
\schemestart
  \chemfig{O=[:0](-[:-60])-[:60]-[:0](-[:60])-[:-60]@{a1}O^{-}}
  \+
  \chemfig{@{a3}HO-[@{b1}:90,0.8,2]@{a2}H}
  \arrow{->}
  \chemfig{O=[:0](-[:-60])-[:60]-[:0](-[:60])-[:-60]OH}
  \+
  \chemfig{HO^{-}}
\schemestop
\chemmove{
  \draw[-{Stealth[length=4pt,inset=1.5pt]}]([shift={(0.62em,1.07em)}]a1) to[bend left=40] ([shift={(-0.72em,0.26em)}]a2);
  \draw[-{Stealth[length=4pt,inset=1.5pt]}]([shift={(0.27em,0.36em)}]b1) to[bend left=77,looseness=1.4] ([shift={(1.01em,0.11em)}]a3);
}
pdflatex로 컴파일한 chemfig
염기 촉매 알돌 첨가, 3. 알콕사이드의 양성자화: 이 chemfig 코드를 pdflatex로 컴파일한 결과
같은 코드를 붙여 넣은 MolDraw
염기 촉매 알돌 첨가, 3. 알콕사이드의 양성자화: 같은 chemfig 코드를 MolDraw에 붙여 넣은 결과로, 배치와 굽은 화살표가 같습니다

여기의 모든 화살표는 완전한 화살촉을 가집니다. 각 단계에는 화살표가 두 개 있습니다: 하나는 결합을 만들고, 다른 하나는 결합을 끊어 그 전자를 원자로 가져갑니다. 두 번째 종류는 결합(b1)에서 시작해 원자에서 끝납니다.

엔올레이트의 음전하는 골격 탄소에 있습니다. 예제 2의 라디칼과 같은 방식으로 빈 원자에 \charge를 써서, "−" 레이블 때문에 결합이 짧게 잘리지 않게 합니다.

4. tert-뷰탄올의 E1 탈수: 여러 행에 걸친 하나의 반응식

앞의 세 예제는 각 단계를 고유한 제목 아래에 두었습니다. 많은 교과서처럼 메커니즘 전체를 새 행으로 줄 바꿈되는 하나의 연속된 반응식으로 그릴 수도 있습니다:

  1. OH기가 H3O+에서 양성자를 받습니다.
  2. 물이 떠나면서 tert-뷰틸 양이온이 생깁니다. 이것이 느린 단계입니다.
  3. 물이 C+ 옆 탄소에서 양성자를 떼어 내고, C–H 전자가 2-메틸프로펜의 C=C 결합을 만듭니다.
e1-dehydration-of-tert-butanol.tex 다운로드

chemfig에서 각 행은 화살표로 시작하는 별도의 반응식이므로, 조건이 해당 화살표와 함께 붙어 있습니다:

전체 반응식

\setchemfig{atom sep=2.5em, + sep left=0.7em, + sep right=0.7em, compound sep=4em, arrow offset=6pt}
{\centering \textbf{Acid-catalysed dehydration of tert-butanol (E1)}\par}
\par\bigskip
\vspace{0.9em}
\schemestart
  \chemfig{@{a1}H\charge{90=\:,-90=\:}{O}-[:-12](-[:-36])(-[:82])-[:-122]}
  \+
  \chemfig{@{a3}H_2O^{+}-[@{b1}:90,0.8,2]@{a2}H}
\schemestop
\par\bigskip
\schemestart
  \arrow{->[protonation]}[,1.6]
  \chemfig{@{a4}H_2O^{+}-[@{b2}:-12](-[:-36])(-[:82])-[:-122]}
  \+
  \chemfig{H_2O}
\schemestop
\par\bigskip
\schemestart
  \arrow{->[$-$H$_{2}$O][slow]}
  \chemfig{-[:0]\charge{120:4pt=$\scriptstyle+$}{}(-[@{b4}:-60]-[@{b3}:0,0.8]@{a6}H)-[:60]}
  \+
  \chemfig{@{a5}H_2\charge{90=\:,-90=\:}{O}}
\schemestop
\par\vspace{1.2em}
\par\bigskip
\schemestart
  \arrow{->[$-$H$^{+}$]}
  \chemfig{-[:0](=[:-60])-[:60]}
  \+
  \chemfig{H_3O^{+}}
\schemestop
\chemmove{
  \draw[-{Stealth[length=4pt,inset=1.5pt]}]([shift={(0.37em,1.21em)}]a1) to[bend left=40] ([shift={(-0.67em,0.56em)}]a2);
  \draw[-{Stealth[length=4pt,inset=1.5pt]}]([shift={(0.27em,0.36em)}]b1) to[bend left=77,looseness=1.4] ([shift={(1.19em,0.11em)}]a3);
  \draw[-{Stealth[length=4pt,inset=1.5pt]}]([shift={(0.19em,-0.31em)}]b2) to[bend left=77,looseness=1.4] ([shift={(0.66em,-0.63em)}]a4);
  \draw[-{Stealth[length=4pt,inset=1.5pt]}]([shift={(0.55em,-1.21em)}]a5) to[bend left=47] ([shift={(0.69em,-0.4em)}]a6);
  \draw[-{Stealth[length=4pt,inset=1.5pt]}]([shift={(0em,0.27em)}]b3) to[bend right=77,looseness=1.4] ([shift={(0.08em,0.33em)}]b4);
}
pdflatex로 컴파일한 chemfig
tert-뷰탄올의 E1 탈수, 전체 반응식: 이 chemfig 코드를 pdflatex로 컴파일한 결과
같은 코드를 붙여 넣은 MolDraw
tert-뷰탄올의 E1 탈수, 전체 반응식: 같은 chemfig 코드를 MolDraw에 붙여 넣은 결과로, 배치와 굽은 화살표가 같습니다

따라 할 만한 세부 사항 두 가지:

  • [,1.6]은 화살표를 일반 길이의 1.6배로 만들어 protonation이라는 단어가 다음 구조에 부딪히지 않고 위에 들어가게 합니다.
  • 탄소 양이온은 \charge{120:4pt=$\scriptstyle+$}{}입니다: 꼭짓점에서 4 pt 떨어진, 결합 사이의 가장 넓은 틈에 있는 작은 "+".

5. 벤젠의 친전자성 브로민화

벤젠의 π 전자가 (FeBr3로 활성화된) 브로민을 공격해 σ-착물이 생깁니다. 그다음 브로민화 이온이 sp3 탄소에서 양성자를 떼어 내고, C–H 전자가 방향족 고리를 복원합니다.

bromination-of-benzene.tex 다운로드

1. 브로민 공격 (σ-착물)

\setchemfig{atom sep=2.5em, + sep left=0.7em, + sep right=0.7em, compound sep=4em, arrow offset=6pt}
\schemestart
  \chemfig{?[a]-[:90]=_[@{b1}:30]-[:-30]=_[:-90]-[:-150]?[a,{=_}]}
  \+
  \chemfig{@{a1}Br-[@{b2}:0]@{a2}Br}
  \arrow{->[FeBr$_{3}$]}[,1.1]
  \chemfig{?[a]=_[:90]-[:30](-[:90]Br)-[:-30]\charge{30:4pt=$\scriptstyle+$}{}-[:-90]=_[:-150]?[a]}
  \+
  \chemfig{Br^{-}}
\schemestop
\chemmove{
  \draw[-{Stealth[length=4pt,inset=1.5pt]}]([shift={(-0.13em,0.23em)}]b1) to[bend left=74,looseness=1.34] ([shift={(-0.13em,0.73em)}]a1);
  \draw[-{Stealth[length=4pt,inset=1.5pt]}]([shift={(-0.25em,-0.27em)}]b2) to[bend right=77,looseness=1.4] ([shift={(-0.23em,-0.63em)}]a2);
}
pdflatex로 컴파일한 chemfig
벤젠의 브로민화, 1. 브로민 공격 (σ-착물): 이 chemfig 코드를 pdflatex로 컴파일한 결과
같은 코드를 붙여 넣은 MolDraw
벤젠의 브로민화, 1. 브로민 공격 (σ-착물): 같은 chemfig 코드를 MolDraw에 붙여 넣은 결과로, 배치와 굽은 화살표가 같습니다

2. H⁺를 잃고 고리 복원

\setchemfig{atom sep=2.5em, + sep left=0.7em, + sep right=0.7em, compound sep=4em, arrow offset=6pt}
\schemestart
  \chemfig{?[a]=_[:90]-[:30](-[:90]Br)(-[@{b2}:-30]\charge{30:4pt=$\scriptstyle+$}{}-[:-90]=_[:-150]?[a])-[@{b1}:30,0.8]@{a2}H}
  \+
  \chemfig{@{a1}Br^{-}}
  \arrow{->}
  \chemfig{?[a]-[:90]=_[:30](-[:90]Br)-[:-30]=_[:-90]-[:-150]?[a,{=_}]}
  \+
  \chemfig{HBr}
\schemestop
\chemmove{
  \draw[-{Stealth[length=4pt,inset=1.5pt]}]([shift={(-1.55em,0em)}]a1) to[bend right=51] ([shift={(0.73em,0.13em)}]a2);
  \draw[-{Stealth[length=4pt,inset=1.5pt]}]([shift={(-0.04em,-0.33em)}]b1) to[bend left=51] ([shift={(0.51em,-0.02em)}]b2);
}
pdflatex로 컴파일한 chemfig
벤젠의 브로민화, 2. H⁺를 잃고 고리 복원: 이 chemfig 코드를 pdflatex로 컴파일한 결과
같은 코드를 붙여 넣은 MolDraw
벤젠의 브로민화, 2. H⁺를 잃고 고리 복원: 같은 chemfig 코드를 MolDraw에 붙여 넣은 결과로, 배치와 굽은 화살표가 같습니다

고리는 *6(…) 대신 절대 결합 각도와 고리 닫기 표시(?[a])로 써서, 각 고리가 캔버스와 정확히 같은 방향을 갖고 모든 고리 결합에 화살표용 @{…} 이름을 붙일 수 있게 했습니다. FeBr3의 아래 첨자는 MolDraw에서 FeBr₃로 입력하고 FeBr$_{3}$로 내보냅니다.

나만의 메커니즘 만들기

  1. MolDraw 편집기에서 화학종과 반응 화살표를 그리거나, 이 파일 중 하나로 시작하세요: 파일을 열어 전부 복사하고 Ctrl+V로 캔버스에 붙여 넣습니다.
  2. 굽은 화살표 도구를 고릅니다. 비공유 전자쌍, 전하, 라디칼 점, 결합에서 전자를 받는 원자나 결합으로 끕니다. 1전자 단계에는 화살표 옵션에서 Fishhook (1e⁻)을 고르세요.
  3. 텍스트 도구로 각 행 위에 단계 제목을 추가합니다.
  4. Download → chemfig (.tex)를 고르거나, 내 문서에 코드를 붙여 넣으려면 Copy as chemfig (LaTeX)를 고릅니다.
  5. 두 번 컴파일합니다.

편집기의 AI 어시스턴트에게 물어볼 수도 있습니다. 예: “Draw the radical bromination of toluene at the benzylic position with fish-hook arrows, initiation, propagation and termination under headings.” 어시스턴트가 캔버스에 단계를 그려 주며, 같은 방식으로 내보낼 수 있습니다.

chemfig를 다시 붙여 넣으면 MolDraw는 각 \chemmove 화살표가 어느 원자나 결합에서 시작하고 끝나는지, 완전한 화살촉인지 낚싯바늘인지, bend가 어느 쪽으로 얼마나 깊게 휘는지 읽습니다. 두 원자 사이의 \path … coordinate 점에서 끝나는 머리는 결합을 만드는 화살표가 되므로, 낚싯바늘 화살표가 다시 틈에서 만납니다. 간격은 \setchemfig(atom sep, compound sep, + sep left/right, arrow offset)에서 가져오고, 텍스트와 선은 chemfig의 가는 선 두께로 LaTeX와 비슷한 세리프체로 그립니다. MolDraw는 각 화살표를 자체 규칙에 맞추므로 손으로 쓴 \draw가 완벽하지 않아도 됩니다.

내보낸 코드를 손으로 조정하기

  • 곡선을 더 평평하게 또는 깊게: bend 각도를 바꾸거나(57 대신 bend left=40) looseness를 지우세요.
  • 곡선을 반대쪽으로: bend left와 bend right를 바꾸세요. 낚싯바늘 화살표라면 미늘이 바깥에 남도록 화살촉의 [left]와 [right]도 바꾸세요.
  • 꼬리나 머리 옮기기: em 단위의 shift를 고치세요. (0em,1em)은 원자 중심에서 1 em 위입니다.
  • 낚싯바늘 화살표가 만나는 곳: pos=0.58을 바꾸세요. 0.5는 두 원자의 정확히 중간입니다.
  • 행 위의 공간: 각 반응식 앞의 \vspace{…em}은 위로 휘는 화살표를 위한 공간을 남깁니다. 화살표가 제목에 닿으면 더 크게 하세요.

질문과 답변

chemfig에서 낚싯바늘 화살표는 어떻게 그리나요?

두 끝에 @{…}로 이름을 붙이고, \chemmove 안에서 반쪽 화살촉으로 화살표를 그리세요: \draw[-{Straight Barb[left,length=4pt]}] (a1) to[bend left=50] (a2); 미늘이 곡선 바깥쪽에 오도록 [left]나 [right]를 쓰세요. TikZ 라이브러리 arrows.meta를 불러와야 합니다.

낚싯바늘 화살표 두 개가 새 결합 가운데에서 만나게 하려면?

\chemmove 안에서 \path (a1) -- (a2) coordinate[pos=0.5] (m1);로 두 원자 사이에 점을 만든 다음, 두 낚싯바늘 화살표를 모두 (m1)에서 끝내세요. chemfig가 반응식 간격을 어떻게 잡든 점은 원자와 함께 움직입니다.

chemfig에서 골격 구조의 탄소에 라디칼 점을 찍으려면?

빈 원자에 \charge를 쓰세요: \charge{90=\.}{}. 결합은 여전히 꼭짓점에서 만나고 점은 그 위에 놓입니다. 레이블이 있는 원자라면 \charge{90=\.}{Cl}로 쓰세요.

PDF에서 굽은 화살표 위치가 왜 틀리나요?

\chemmove는 첫 번째 LaTeX 실행에서 저장한 위치를 사용합니다. 파일을 한 번 더 컴파일하세요.

이 예제를 편집할 수 있나요?

네. .tex 파일을 열어 내용을 복사하고 MolDraw 캔버스에 붙여 넣으세요. 마우스로 구조나 화살표를 바꾼 뒤 다시 chemfig (.tex)로 다운로드하세요.

예제는 무료로 쓸 수 있나요?

네. 노트, 문제 세트, 학위 논문, 논문에 자유롭게 쓰세요.

관련 가이드

최종 업데이트: