結論だけ見たい人
こちらからどうぞ!
はじめに
chemfigは、$\mathsf{\LaTeX}$で化学構造式や化学反応式を美しく描画できるパッケージです。高品質なベクター画像を描画できるTikZパッケージをベースとしていて、直感的な構文による構造式の表現、複雑な反応スキームの作成などの特長があります。このような特長を持つ強力なパッケージであるにも関わらず、化学研究者でchemfigを使用している割合はごく少数でしょう。その主な理由としては、ChemDrawがデファクトスタンダードとなっていること、また文書作成に$\mathsf{\LaTeX}$を使用する文化が化学分野において根付いていないことが挙げられます。
さて、化学構造式の体裁には一定の決まりがあり、ジャーナルによって異なるルールが設けられています。その中でも、最も使われているであろうスタイルがACS Styleです。ACS Styleは、アメリカ化学会 (American Chemical Society) が指定している構造式や論文の体裁のルールで、主に有機化学者が使用しています。ChemDrawはデフォルトでACS Styleの書式設定になっていますが、chemfigはと言うとそうではなく、デフォルトでは結合線が原子ラベルに対して長く、また多重結合では結合線の間のスペースが狭いことから、全体的にのっぺりとした印象を受けます。以下に比較画像を載せます。
| ChemDraw (ACS Style) | chemfig (デフォルト) |
|---|---|
![]() |
![]() |
もちろん、chemfigには結合線の長さなどのレイアウト設定を変更する機能がありますが、ChemDrawのような一度にACS Styleにすることのできるプリセット機能はありませんし、そのような記述はドキュメントにもありません。そこで、本記事ではchemfigでACS Styleに設定する方法をご紹介します。
環境と対象
環境
- TeX Live 2026
- LuaHBTeX 1.24.0
- chemfig 1.8.2
対象
- $\mathsf{\LaTeX}$とchemfigをある程度使うことができ、研究やレポートなどの実務でchemfigを使いたいと考えている人
- chemfigでChemDrawと同じような外観の化学構造式を描画したい人
chemfigでACS Styleを適用
以下にchemfigで設定できる主要パラメータと、それに対応するChemDrawの設定項目、そしてACS Styleでのchemfigパラメータの値を示します。なお、ACS Styleの値は、ChemDrawの設定ウィンドウに表示されている値から持ってきました。
| ChemDraw | chemfig | デフォルトの値 | ACS Styleの値 |
|---|---|---|---|
| Fixed Length | atom sep |
3em |
14.4pt |
| Spacing | double bond sep |
2pt |
2.59pt |
| Line Width | bond style |
<empty> | {line width=0.6pt} |
| Bold Width | cram width |
1.5ex |
3.015pt |
| Margin Width | bond offset |
2pt |
1.59pt |
| Hash Spacing | cram dash sep |
2pt |
2.49pt |
また、chemfigでは原子ラベルが数式モードで組まれるため、\renewcommandでデフォルトのフォント設定を書き換えます。さらに、C=O二重結合とカルボニル炭素の間に隙間が空いてしまうのが気になるため、\definesubmolでC=O二重結合専用のマクロを作成します (このやり方だとC=Nなど他の二重結合の数だけマクロを作成しなければなりませんが...)。
以上の設定をすべてまとめたものが、以下のコードです。プリアンブルに挿入すれば、その文書全体でACS Styleを適用できます。
\usepackage{chemfig}
\usepackage{fontspec}
\setsansfont{Arial}
\setchemfig{
atom sep = 14.4pt,
double bond sep = 2.59pt,
cram width = 3.015pt,
bond offset = 1.59pt,
cram dash sep = 2.49pt,
bond style = {line width=0.6pt},
bond join = true
}
\renewcommand*\printatom[1]{\ensuremath{\mathsf{#1}}}
\definesubmol\CO1{=#(-0.75pt)#1O}
描画例
試しにいくつかの化学構造式や化学反応式をACS Styleを適用したchemfigで描画してみます。
サリチル酸 (2-hydroxybenzoic acid)
\chemfig{*6(-=(-OH)-(-(!\CO{[2]})-[:-30]OH)=-=)}
L-アラニン (L-alanine)
\chemfig{H_2N-[:30](<[2])-[:-30](!\CO{[-2]})-[:30]OH}
カフェイン (caffeine)
\chemfig{*6((!\CO{})-N(-)-(*5(-N=-N(-)-=))--(!\CO{})-N(-)-)}
アセチルサリチル酸 (アスピリン) の合成
\hreac
\chemfig{*6(-=(-OH)-(-(!\CO{[2]})-[:-30]OH)=-=)}
+
\chemfig{-[:30](!\CO{[2]})-[:-30]O-[:30](!\CO{[2]})-[:-30]}
>[][\textsf{acetylation}]
\chemfig{*6(-=(-O-[::-60](!\CO{[::60]})-[::-60])-(-(!\CO{[2]})-[:-30]OH)=-=)}
+
\chemfig{-[:30](!\CO{[2]})-[:-30]OH}
\endhreac
おわりに
chemfigはTikZベースのため非常に柔軟性が高く、複雑な電子の矢印を含む反応機構図も難なく記述できます。さらにベクター形式で$\mathsf{\LaTeX}$文書の一部として組み込まれるため、非常にネイティブに化学構造式を$\mathsf{\LaTeX}$で表現できます。
一方で、やはり効率性や実用性の面を考えればChemDraw一択ですし、わざわざ$\mathsf{\LaTeX}$で化学構造式のようなグラフィカルな図を含む文書を作成しようとする化学研究者はいないでしょう。ですが、いち$\mathsf{\LaTeX}$ユーザーとして、$\mathsf{\LaTeX}$でChemDrawと同等のクオリティの化学構造式を表現できるという事実はとても大事ですし、本記事でそれを体感していただければ私としても幸甚です。
参考文献
- chemfigドキュメント (
texdoc chemfig)





