Published on

chemfig で化学構造式を描画する

Authors

chemfig

chemfigとは, LaTeX で化学構造式を描画するためのパッケージである.

使い方

使い方は以下を参照されたい.

使用例

NOTE

本記事では, LuaLaTeX を使用しています. また, 以降で示す出力は TeX2img1 で画像化しています.

Benzene\mathrm{Benzene}

\documentclass{ltjsarticle}
\usepackage{chemfig}
\begin{document}
\chemfig{*6(-=-=-=)} 
\end{document}
benz

2,4,6-trinitrotoluene\mathrm{2,4,6\text{-}trinitrotoluene}

\documentclass{ltjsarticle}
\usepackage{chemfig}
\begin{document}
\definesubmol\nitro[O_2N]{NO_2}
\chemfig{*6(-(-!\nitro)=-(-!\nitro)=(-CH_3)-(-!\nitro)=)}
\end{document}
nitro

Phthalic\mathrm{Phthalic} anhydride\mathrm{anhydride}

\documentclass{ltjsarticle}
\usepackage{chemfig}
\begin{document}
\chemfig{*6(-=(*5(-(=O)-O-(=O)--))-=-=)}
\end{document}
pa

Amygdalin\mathrm{Amygdalin}

\documentclass{ltjsarticle}
\usepackage{chemfig}
\begin{document}
\setchemfig{cram width=2pt}
\definesubmol{c1}{-[:200]-[:120]O-[:190]}
\definesubmol{c2}{-[:170](-[:200,0.7]HO)<[:300](-[:170,0.6]HO)-[:10,,,,line width=2pt](-[:-40,0.6]OH)>[:-10]}
\definesubmol{csub}{-[:155,0.65]-[:90,0.65]}
\chemfig{O(!{c1}(!{csub}O(!{c1}(!{csub}OH)!{c2}))!{c2})-[:-30](-[:-90]CN)-[:30]*6(=-=-=-)}
\end{document}
amy

Manganese\mathrm{Manganese} 5,10,15,20-tetra\mathrm{5,10,15,20\text{-}tetra} (N-ethyl-3-carbazolyl)\mathrm{(N\text{-}ethyl\text{-}3\text{-}carbazolyl)} porphyrin\mathrm{porphyrin}

\documentclass{ltjsarticle}
\usepackage{chemfig}
\begin{document}
\definesubmol{A}{*6(=-*5(-*6(-=-=-)--N(--[::-60])-)=-=-)}
\chemfig{([::+180]-!A)=[::+72]*5(-N=(-(-[::+54]!A)=[::-72]*5(-N(-[::-33,1.5,,,draw=none]Mn)-(=(-[::+72]!A)-[::-36]*5(=N-(=(-[::+54]!A)-[::-72]*5(-N-(-)=-=))-=-))-=-))-=-)}
\end{document}
pph

Cannizzaro\mathrm{Cannizzaro} reaction\mathrm{reaction}

\documentclass{ltjsarticle}
\usepackage{chemfig}
\begin{document}
\schemestart
\chemfig{[:-30]*6(=-=(-@{atoc}C([6]=[@{db}]@{atoo1}O)-H)-=-)}
\arrow(start.mid east--.mid west){->[\chemfig{@{atoo2}\chemabove{O}{\scriptstyle\ominus}}H]}
\chemmove[-stealth,shorten >=2pt,dash pattern=on 1pt off 1pt,thin]{
\draw[shorten <=8pt](atoo2) ..controls +(up:10mm) and +(up:10mm)..(atoc);
\draw[shorten <=2pt](db) ..controls +(left:5mm) and +(west:5mm)..(atoo1);}
\chemfig{[:-30]*6(=-=(-C([6]-[@{sb1}]@{atoo1}\chembelow{O}{\scriptstyle\ominus})([2]-OH)-[@{sb2}]H)-=-)}
\hspace{1cm}
\chemfig{[:-30]*6((-@{atoc}C([6]=[@{db}]@{atoo2}O)-[2]H)-=-=-=)}
\chemmove[-stealth,shorten <=2pt,shorten >=2pt,dash pattern=on 1pt off 1pt,thin]{
\draw([yshift=-4pt]atoo1.270) ..controls +(0:5mm) and +(right:10mm)..(sb1);
\draw(sb2) ..controls +(up:10mm) and +(north west:10mm)..(atoc);
\draw(db) ..controls +(right:5mm) and +(east:5mm)..(atoo2);}
\arrow(@start.base west--){0}[-75,2]
{}
\arrow
\chemfig{[:-30]*6(=-=(-C([1]-@{atoo2}O-[@{sb}0]@{atoh}H)([6]=O))-=-)}
\arrow{0}
\chemfig{[:-30]*6((-C(-[5]H)(-[7]H)-[2]@{atoo1}\chemabove{O}{\scriptstyle\ominus})-=-=-=)}
\chemmove[-stealth,shorten >=2pt,dash pattern=on 1pt off 1pt,thin]{
\draw[shorten <=7pt](atoo1.90) ..controls +(+90:8mm) and +(up:10mm)..(atoh);
\draw[shorten <=2pt](sb) ..controls +(up:5mm) and +(up:5mm)..(atoo2);}
\schemestop
\end{document}
cr

まとめ

いくつか chemfig による化学構造式の描画を例示したが, 化学系のパッケージには chemfig の他にも XyMTeX や mhchem 等が存在する. LaTeX の化学系パッケージが気になる方は, こちら を参照されたい.

Footnotes

  1. ダウンロード:Mac 版, Windows 版