読者です 読者をやめる 読者になる 読者になる

TeX Alchemist Online

TeX を使って化学のお仕事をしています。

chemfigパッケージによる構造式描画

化学 TikZ TeX

この記事は TeX & LaTeX Advent Calendar 2014 の12日目の記事です。 11日目はkinoさんでした。 13日目はnerukoさんとなっています。

今年の TeX & LaTeX Advent Calendar 2014 には,3日目に続き,2回目のエントリーとなります。

今日は,昨年の Advent Calendar の記事「TeXによる化学組版」の続編です。今年の Advent Calender では,8日目のアセトアミノフェンさんの記事も化学関連でした。また,20日目のTeXゼミさんも化学関連,17日目のワトソンさんは生物関連の記事を執筆してくださる予定だそうす。

化学・生物分野でもTeXがじわじわと普及しているのであれば嬉しい限りです。

ちなみに,この記事中の「出力結果」の画像は全て拙作の TeX2img で作成しています(こっそり宣伝)

目次

枝分かれや環状構造を持つ分子の構造式描画

昨年の Advent Calendar の記事の末尾に,次のように書きました。

上記の例のような比較的シンプルな構造式ならこれでよいですが,ベンゼン環の三置換体以上であったり,枝分かれのある炭化水素の場合などはどうすればよいでしょうか。 これは悩ましい問題です。

この問題に対する一つの大きな解決策として,chemfigパッケージというのを見つけました。これは,TikZを使って化学構造式を描画するための非常に強力なパッケージです。TeX Live であれば標準でインストールされています。

chemfigパッケージを使えば,枝分かれのある構造や環状構造,立体表示,電子式などが簡単に表示できます。

chemfigパッケージを使ってみよう

pLaTeX + dvipdfmx で使うための最低限のプリアンブルの設定,および簡単なサンプルは以下の通りです。

【入力】

\documentclass{jsarticle}
\usepackage[dvipdfmx]{graphicx}
\usepackage{chemfig}
\begin{document}
\chemfig{CH_3-CH(-[2]CH_3)-CH_2-C(=[:60]O)-[:-60]O-H}
\end{document}

【出力】

f:id:doraTeX:20141212221511p:plain

chemfigパッケージの基本

結合のオプション

chemfigパッケージの根幹をなすのは,結合のオプションです。次のようなオプションをとります。

-[角度,長さの倍率,結合元原子の番号,結合先原子の番号,TikZのオプション]

重要なものから順に並んでいるので覚えやすいでしょう。

オプション指定の仕様

  • 必要なオプションまで指定すれば,その先は省略可能です。例えば,-[4,2] とすれば,角度と長さの倍率までを指定したことになります。
  • 途中のオプションを省略したい場合は,-[,,1,2] のように空のコンマを入れます。

結合の種類の指定

  • 単結合: -
  • 二重結合: =
  • 三重結合: ~

mhchemパッケージでは三重結合は # であったので,その違いに注意してください。

第1オプション:角度の指定

角度の指定には3通りの方法があります。

45°の倍数による指定

結合を伸ばす方向が45°の倍数の場合,「45°の何倍方向か」を表す整数を角度オプションに指定します。例えば90°であれば -[2] となります。指定する整数値としては0〜7が有効です。

角度の数値による指定

-[:60] のように,コロンに続けて数値を書くと,その角度方向に結合が伸びます。角度指定は負の整数も可能ですので,例えば -[:-90] と指定すれば下方向に結合を伸ばせます。

相対角度指定

-[::20] のように,コロン2つに続けて数値を書くと,そこまでの結合角からの相対的な回転角を指定できます。例えば下記の例では,毎回20°ずつ結合が回転しています。

【入力】

\chemfig{C - C -[::20] C -[::20] C -[::20] C}

【出力】

f:id:doraTeX:20141212221710p:plain

この機能は,環状構造を作るときなどに便利です。後に出てくるデュワーベンゼンやEDTAの構造式描画などで利用しています。

第2オプション:結合の長さ倍率

第2オプションには,「デフォルトで決められる長さの何倍にするか」を指定します。例えば -[,1.5] のように指定すると,結合の長さがデフォルト値の1.5倍に伸びます。

結合の長さのデフォルト値の設定

結合の長さのデフォルト値を変更するには, \setatomsep という命令を用いて

\setatomsep{2em}

のように指定します。

第3,第4オプション:結合原子の指定

デフォルトでは,各原子団の端の原子同士が結合によって結ばれます。これを変更する場合は,結合の第3,第4オプションを指定します。

例えば下記の例では,結合元原子団(CH_3CH_2)の3番目の原子(C)から-90°方向に結合を伸ばすようしています。

【入力】

\chemfig{CH_3CH_2 -[:-90,,3] OH}

【出力】

f:id:doraTeX:20141212232303p:plain

第5オプション:TikZのオプション

第5オプション(以降)には,TikZのオプションを記述することにより,結合の見た目をカスタマイズできます。

【入力】

\chemfig{CH_3 -[,,,,red,line width=2pt,dash pattern=on 1pt off 2pt] CH_3 }

【出力】

f:id:doraTeX:20141212221917p:plain

原子と結合との間隔の設定

原子と結合との間隔を指定するには,\setbondoffset という命令を使用します。

【入力】

\setbondoffset{0pt}\chemfig{A-B}\par
\setbondoffset{5pt}\chemfig{A-B}

【出力】

f:id:doraTeX:20141212222059p:plain

枝分かれの記述

chemfigパッケージの優れている点は,枝分かれを持つ構造式が簡単に書ける点です。( ) でくくるだけで,その部分が枝になります。枝は何重にネストしても構いません。

【入力】

\chemfig{CH_3 - CH (-[2] CH (-CH_3) -[2] CH_3) - CH_3}

【出力】

f:id:doraTeX:20141212222140p:plain

炭素原子の省略

結合の方向と長さばかりを連ねて書けば,大学以降の化学で標準的に用いられる,骨格のみで表した構造式も出力できます。

【入力】

\chemfig{-[:-30]-[::60](=[2]O)-[::-60]=[::60](-[::60])-[::-60]}

【出力】

f:id:doraTeX:20141212233734p:plain

環状構造の記述

構造中に ? を付した原子を2つ用意しておくと,その2つの原子が結ばれて環状構造が形成されます。

【入力】

\chemfig{H_2C? - CH_2 -[2] CH_2 -[4] H_2C?}

【出力】

f:id:doraTeX:20141212222203p:plain

複数の環状構造を持つ分子

環状構造が複数存在する場合は,?[a] のように ? に対してラベルを付与しておきます。すると,同一のラベルを持つ原子同士が結ばれて環状構造が形成されます。同一原子に複数のラベルを貼ることも可能です。 また,単結合ではなく二重結合で環状構造を結びたい場合は,? の第2オプションを ?[a,2] のように指定します。

例えば,以下はデュワーベンゼンの構造です。

【入力】

\chemfig{C?[a]=[6]C-[::60]C?[b]-[::60]C=[::60]C-[::60]C?[a]?[b]}

f:id:doraTeX:20141213011443p:plain

正多角形の環状構造を持つ分子

ベンゼンのような正多角形状の環状構造を持つ分子には,より簡単に書ける記法が用意されています。* に続けて正多角形の頂点数,および各辺の結合の種類を記載します。 また,** を指定すれば,環の中に円が描かれます。

【入力】

\chemfig{*6(-=-=-=)} \chemfig{**6(------)}

【出力】

f:id:doraTeX:20141212222312p:plain

全体の回転角の指定

*** の前に [:-30] などと角度を指定すれば,環全体を回転できます。

先程のベンゼンを-30°回転した例です。

【入力】

\chemfig{[:-30]*6(-=-=-=)} \chemfig{[:-30]**6(------)}

【出力】

f:id:doraTeX:20141212222330p:plain

環から環や枝を伸ばす

(-=-=-=) といった部分から,さらに他の環状構造や枝を伸ばすことができます。

例えば,以下は塩化ベンゼンジアゾニウムと2-ナフトールから得られるアゾ染料の一種,オイルオレンジ(1-フェニルアゾ-2-ナフトール)です。

【入力】

\chemfig{[:30]*6(=-(-N=N-*6(-*6(-=-=-)=-=-(-HO)=))=-=-)}

【出力】

f:id:doraTeX:20141212222356p:plain

環上の原子を明示する

(-=-=-=) といった環状部分の原子を明示することも可能です。ただし,CH_2 といった原子団を環上に配置した場合,デフォルトでは両端の原子から環の手が伸びてしまいます。

下記の例(α-アミノ酸の一種トリプトファン)では,N原子から環の手が伸びるよう,NH の後の単結合には -[,,1] というオプションをつけて,「1番目の原子から手を伸ばす」ということを明示しています。

【入力】

\chemfig{*6(=-*5(-NH-[,,1]=(- CH_2 -[2] CH (-[4] H_2N) -[0] COOH)-)=-=-)}

【出力】

f:id:doraTeX:20141212222417p:plain

立体化学表記

結合の種類として <> を指定すると,紙面より手前に飛び出していることを示す太いくさび,>:<: を指定すると紙面より奥に飛び出していることを示す破線のくさびになります。

【入力】

\chemfig{A < B > C <: D >: F}

【出力】

f:id:doraTeX:20141212222451p:plain

くさびのデザインのカスタマイズ

くさびのデザインをカスタマイズするには,\setcrambond という命令を利用します。デフォルトでは,

\setcrambond{1.5pt}{1pt}{2pt}

という設定になっています。各パラメータの意味は次のようになっています。

\setcrambond{#1:くさびの最も太い部分の太さ}{#2:破線の幅}{#3:破線間の間隔}

f:id:doraTeX:20141212231153p:plain

デフォルトのまま変更したくないパラメータがある場合は,空欄のままで構いません。例えば,破線のくさびを使わない場合は,第2,第3引数は空のままで

\setcrambond{3pt}{}{}

のように指定すればOKです。

エイリアスの設定

よく使う原子団を \definesubmol で登録しておくと, ! で呼び出せます。

名前によるエイリアス

【入力】

\definesubmol{CH2}{C(-[::+90]H)(-[::-90]H)}
\chemfig{H-!{CH2}-O-[:30]!{CH2}-[::0]H}

【出力】

f:id:doraTeX:20141212222551p:plain

制御綴によるエイリアス

【入力】

\definesubmol\methylene{C(-[::+90]H)(-[::-90]H)}
\chemfig{H-!\methylene-O-[:30]!\methylene-[::0]H}

【出力】

f:id:doraTeX:20141212222551p:plain

配置による出力の場合分け

\definesubmol にオプションをつければ,「その原子団が左配置と右配置の場合で出力の仕方を自動的に変化させる」ということが可能となります。

次の例の場合,メチル基が右配置の場合は CH3,左配置の場合は H3C という表記に自動的に変化しています。

【入力】

\definesubmol\Me[H_3C]{CH_3}
\chemfig{*6((-!\Me)=(-!\Me)-(-!\Me)=(-!\Me)-(-!\Me)=(-!\Me)-)}

【出力】

f:id:doraTeX:20141212222644p:plain

結合のエイリアス

特定の長さの結合をよく使う場合,結合に対してもエイリアスを設定しておくと便利です。

次の例では,! を付けた結合の長さが2倍に伸びています。

【入力】

\definesubmol{-}{-[,2]}
\definesubmol{=}{=[,2]}
\chemfig{A - B = C !- D != E}

【出力】

f:id:doraTeX:20141212222710p:plain

電子式

chemfigパッケージでは,電子式(Lewis構造式)を書くための命令 \lewis も用意されています。

\lewis{電子配置,元素記号}

という書式で利用します。

【入力】

\lewis{0.2:4.6.,N}

【出力】

f:id:doraTeX:20141212222727p:plain

この例において,0.2:4.6. という部分の意味は次の通りです。

  • 数字は「45°の何倍の方向に電子対を打つか」という意味です。0〜7の数値が有効です。
  • . は不対電子,: は非共有電子対を表します。
  • したがって,0.2:4.6. の場合,「0°,180°,270°方向に不対電子,90°方向に非共有電子対を打つ」という意味になります。

第2周期元素の電子式を全部書いてみると,次のようになります。

【入力】

\lewis{0.,Li}
\lewis{0.4.,Be}
\lewis{0.2.4.,B}
\lewis{0.2.4.6.,C}
\lewis{0.2:4.6.,N}
\lewis{0.2:4.6:,O}
\lewis{0.2:4:6:,F}
\lewis{0:2:4:6:,Ne}

【出力】

f:id:doraTeX:20141212222825p:plain

構造式中の電子式

\chemfig による構造式の中に \lewis による電子式を混ぜることもできます。

【入力】

\chemfig{H - \lewis{2:6:,O} - H}

【出力】

f:id:doraTeX:20141212222846p:plain

\vphantom を用いた出力の微調整

\chemfig を使っていると,しばしば「結合の縦位置が揃わない」という不満を抱く場面に出会います。

【入力】

\chemfig{CH_3 - NH - CH_3}

【出力】

f:id:doraTeX:20141212223004p:plain

これは,左の結合は CH3 の添字 3 まで含めた縦方向の中心の高さに対して引かれているのに対し,右の結合は NH の縦方向の中心の高さに対して引かれているからです。

このような場面においては,\vphantom によってダミーの支柱を立ててやると,縦位置を揃えることができます。

【入力】

\chemfig{CH_3 - NH{\vphantom{CH_3}} - CH_3}

【出力】

f:id:doraTeX:20141212223024p:plain

\printatom の書き換え

{\vphantom{CH_3}} を毎回書くのが面倒というのであれば,原子の出力を担当している \printatom という命令の定義を書き換え,常に \vphantom を込めるようにしておくという手もあります。

\def\printatom#1{\ensuremath{\mathrm{#1\vphantom{CH_3}}}}

chemfigパッケージとmhchemパッケージの融合

mhchemパッケージはもう不要!?

このように,chemfigパッケージは非常に強力です。これほどまでに強力であれば,昨年の Advent Calendar の記事で紹介したmhchemパッケージはもはや不要なのではないかと思われるかもしれません。

しかし,mhchemパッケージが提供する \ce は,添字やイオンの電荷の自動認識が優れていました。chemfigパッケージにはその機能はないので,CH_3 のように添字は _ で明記する必要があります。この点では,やはり mhchem パッケージに優位性があります。

\chemfig の原子の出力に \ce を使う

そこで,\chemfig の原子の出力に \ce を使うようにした融合版の命令 \cefig を定義しましょう。また,この \cefig の定義では,chemfigパッケージとmhchemパッケージの両者の出力が共存しても極力違和感が少ないように,パラメータの値を調整してあります。

【入力】

\documentclass{jsarticle}
\usepackage[dvipdfmx]{graphicx}
\usepackage{chemfig}
\usepackage[version=3]{mhchem}

\makeatletter
\def\cefig#1{%
  \begingroup
  \setatomsep{1.55em}%
  \setbondoffset{1pt}%
  \setbondstyle{line width=.5pt}%
  \def\CF@node@content{%
    \expandafter\expandafter\expandafter
      \printatom\expandafter\expandafter\expandafter
        {\csname atom@\number\CF@cnt@atomnumber\endcsname}%
      \ensuremath{\CF@node@strut}%
  }%
  \def\printatom##1{\vphantom{C}\smash{\ce{##1}}}%
  \chemfig{#1}%
  \endgroup
}
\makeatother

\begin{document}
\cefig{CH3-CH(-[2]O-C(=[2]O)-CH3)-CH2-[7]C(-[5]H)=C(-[7]H)-[1]CH3}
\end{document}

【出力】

f:id:doraTeX:20141212223135p:plain

いちいち CH_3 などと打たなくてよくなって便利ですね!

| を使って空の原子を配置することによる微調整

ただし,上記出力には,若干の不満が残ります。

  • 左端の CH3ーCH の結合の長さが他に比べて短い。
  • 二重結合の左上の CH2 との結合が 2 という数字と接触している。

これらは,chemfig がH原子の中心と次のC原子とを結ぼうとしているために起こっています。そこで,このような場合,| を打つことで,仮想的に「空の次の原子」を設けてやるとよいでしょう。

【入力】

\cefig{CH3| - CH(-[2]O - C(=[2]O) - CH3) - CH2| -[7] C(-[5] H) = C(-[7] H) -[1] CH3}

【出力】

f:id:doraTeX:20141212223158p:plain

空ブレース {} や \llap, \rlap を使うことによる微調整

上記の | を使った出力では,CH3 や CH2 の後の出力が改善されましたが,その代わり,二重結合の他の結合とのつりあいが悪くなってしまいました。

このような場合,空ブレース {}\llap, \rlap を使うことによる微調整が可能です。

【入力】

\cefig{CH3| - CH(-[2]O - C(=[2]O) - CH3) - CH2| -[7] C(-[5] \llap{H}) = C(-[7] {}H) -[1] {}CH3}

【出力】

f:id:doraTeX:20141212223219p:plain

これで綺麗な出力が得られました!

chemfigパッケージのその他の機能

以上,chemfigパッケージの基本的な使用法やカスタマイズ法を紹介してきました。しかし,chemfigパッケージの機能はまだまだこの程度には留まりません。反応スキームの表示機能など,実に多彩な機能が豊富に用意されており,ここではとても紹介し尽くせません。もっと色々な機能を知りたい方は,公式マニュアル(英語・フランス語)を読んでみてください。このマニュアルの巻末のGalleryに登場する色々な構造式は,眺めているだけでも楽しくなってくるはずです。

サンプル集

公式マニュアルに対抗して,本記事でも,最後に色々なサンプルを示しておきます。

イソプレン

\setatomsep{1.86em}
\setbondoffset{1pt}
\chemfig{H -[7] C(-[5]H)=C(-[1]CH_3)-[7] C(-[5]H)=C(-[1]H) -[7] H}

f:id:doraTeX:20141212223238p:plain

無水マレイン酸

\setatomsep{1.86em}
\setbondoffset{1pt}
\chemfig{O=[:-90]C?-[:-150]C(-[:150]H)=[:-90]C(-[:-150]H)-[:-30]C(=[:-90]O)-[:50,1.3]O?}

f:id:doraTeX:20141212223252p:plain

無水フタル酸

\setatomsep{1.55em}
\chemfig{*6(=-(-[,1.2]C?(=[:-90,1.2]O))=(-[,1.2]C(=[2,1.2]O)-[:-40,1.6]O?)-=-)}

f:id:doraTeX:20141213001833p:plain

不斉炭素原子の表示

不斉炭素原子の*印は ^{*} と書けば出力できます。ただし,それで1個の原子扱いになってしまうので,結合の手の接続先を1つ分ずらす必要が生じます。

\setatomsep{1.86em}
\setbondoffset{1pt}
\def\printatom#1{\ensuremath{\mathrm{#1\vphantom{CH_3}}}}
\chemfig{CH_3 - CH_2 - ^{*}CH(-[6,,2]OH) - CH_3}

f:id:doraTeX:20141212223316p:plain

エチレンジアミン四酢酸(EDTA)

EDTAには同じパターンの構造が繰り返し登場するので,エイリアス機能を利用すると楽に書けます。

\setatomsep{2em}
\definesubmol\OH[HO]{OH}
\definesubmol\acet{-[::-60](=[::60]O)-[::-60]!\OH}
\chemfig{N(-[:150]!\acet)(-[:-90]!\acet)-[:30]-[::-60]-[::60]N(-[::60]!\acet)-[::-60]!\acet}

f:id:doraTeX:20141212234647p:plain

反応式(mhchemパッケージとの併用)

この例は,上で定義した \cefig を使って,mhchemパッケージと併用しています。

\definesubmol{-}{-[,1.14]}
\[\cefig{CH3 !- CH(-[6]OH) - CH2 !- CH3 }+ \ce{(CH3CO)2O ->T[アセチル化]} \cefig{CH3!-C(=[2]O)-O-CH(-[2]CH3)- CH2!-CH3} + \ce{CH3COOH}\]

f:id:doraTeX:20141212223333p:plain

アントラセンとフェナントレン

\setatomsep{1.86em}
\chemfig{*6(=-(*6(-=(*6(-=-=-))-=-))=-=-)}
\chemfig{*6(=-(*6(-=-(*6(-=-=-))=-))=-=-)}

f:id:doraTeX:20141212223401p:plain

ケクレン

\setatomsep{1.5em}
\chemfig{[:60]*6(=-(*6(-(*6(-=(*6(-(*6(-=(*6(-(*6(-=(*6(-(*6(=-(*6(-(*6(=-(*6(---=-))=-=))--=-))=-=))--=-))-=-=))--=-))-=-=))--=-))-=-))=-=-))=-=-)}

f:id:doraTeX:20141217004822p:plain

チロシン

\setatomsep{1.2em}
\setbondoffset{1pt}
\chemfig{H_2N -[,1.4] CH (-[2,1.4]CH_2 -[2,1.1] *6(-=-(-OH)=-=)) -[,1.4] COOH}

f:id:doraTeX:20141212223417p:plain

ヒスチジン

下記のヒスチジンの構造式では,一番上のCHの部分で,H原子をC原子の真上に打つために,

\chemabove{C}{H}

としています。こうすることで,C原子本体の接続状態はいじらないで,上にH原子を出力することができます。

なお,上へ浮かせる幅を調整したい場合は,[ ] によるオプション引数を用意して

\chemabove[間隔]{原子}{上に出したいもの}

とすることが可能です。

また同様に,

\chembelow[間隔]{原子}{下に出したいもの}

という命令も用意されています。

\setatomsep{1.86em}
\setbondoffset{1pt}
\chemfig{H_2N - CH (-[2] CH_2 -[2] C?(=CH -[:60,1.2,1] N =[:140,1.2,,1] \chemabove{C}{H} -[:-140,1.3,,2] HN?)) - COOH}

f:id:doraTeX:20141212223435p:plain

L-プロリン

くさびによる立体化学表示を使う例です。

\setatomsep{2em}
\setcrambond{2pt}{1pt}{1pt}
\chemfig{[:30]*5(-NH-[,,1](<:[::0]H)(<(=[::60]O)-[::-60]OH)---)}

f:id:doraTeX:20141213002405p:plain

α-グルコース

\setatomsep{1.86em}
\setbondoffset{1pt}
\setcrambond{3pt}{}{}
\chemfig{%
C?(-[2] H)(-[6]OH) % 1位炭素
<[:-130,1.8] % 1-2結合
C(-[2] H)(-[6]OH) % 2位炭素
-[:180,1.5,,,line width=3pt] % 2-3結合
C(-[2] OH)(-[6]H) % 3位炭素
>[:130,1.8] % 3-4結合
C(-[2] H)(-[6,,,2]HO) % 4位炭素
-[:50,1.8] % 4-5結合
C(-[6]H)( -[,1.5] O?) % 5位炭素
-[2] % 5-6結合
CH_2OH % 6位炭素
}

f:id:doraTeX:20141212223454p:plain

β-グルコース(炭素原子非表示)

\setatomsep{1.86em}
\setbondoffset{1pt}
\setcrambond{3pt}{}{}
\chemfig{%
?(-[6] H)(-[2]OH) % 1位炭素
<[:-130,1.8] % 1-2結合
(-[2] H)(-[6]OH) % 2位炭素
-[:180,1.5,,,line width=3pt,cap=round] % 2-3結合
(-[2] OH)(-[6]H) % 3位炭素
>[:130,1.8] % 3-4結合
(-[2] H)(-[6,,,2]HO) % 4位炭素
-[:50,1.8] % 4-5結合
(-[6]H)( -[,1.5] O?) % 5位炭素
-[2] % 5-6結合
CH_2OH % 6位炭素
}

f:id:doraTeX:20141212224517p:plain

スクロース

\setatomsep{1.86em}
\setbondoffset{1pt}
\setcrambond{3pt}{}{}
\chemfig{%
C?[a](-[2] H) % 左1位炭素
(-[:-40,1.7] O -[:40,1.7] % グリコシド結合
C?[b](-[2,,,4]HOH_2C) % 右1-2位炭素
-[:35,2.25] O -[:-35,2.25] 
C(-[6] CH_2OH)(-[2]H) % 右5-6位炭素
<[:-130,1.8] % 右5-4結合
C(-[2,,,2] HO)(-[6]H) % 右4位炭素
-[:180,1.5,,,line width=3pt] % 右4-3結合
C?[b,{<}](-[6] OH)(-[2]H) % 右3位炭素
)
<[:-130,1.8] % 1-2結合
C(-[2] H)(-[6]OH) % 2位炭素
-[:180,1.5,,,line width=3pt] % 2-3結合
C(-[2] OH)(-[6]H) % 3位炭素
>[:130,1.8] % 3-4結合
C(-[2] H)(-[6,,,2]HO) % 4位炭素
-[:50,1.8] % 4-5結合
C(-[6]H)( -[,1.5] O?[a]) % 5位炭素
-[2] % 5-6結合
CH_2OH % 6位炭素
}

f:id:doraTeX:20141212224544p:plain

アミロペクチン

\setatomsep{1.55em}
\setbondoffset{1pt}
\setcrambond{3pt}{}{}

\chemfig{%
C?[a](-[2] H) % 1番目の1位炭素
(-[:-50,1.4] O -[:50,1.4] % グリコシド結合
C?[b](-[2] H) % 2番目の4位炭素
-[:50,1.8] % 2番目の4-5結合
C(-[6]H)( -[2] CH_2OH) % 2番目の5,6位炭素
-[,1.5] % 2番目の5-O結合
O
-[:-50,1.8] % 2番目のO-1結合
C(-[2] H) % 2番目の1位炭素
(-[:-50,1.4] O -[:50,1.4] % グリコシド結合
C?[c](-[2] H) % 3番目の4位炭素
-[:50,1.8] % 3番目の4-5結合
C(-[6]H)% 3番目の5位炭素
( -[2,1.4]% 3番目の5-6結合
CH_2 % 3番目の6位炭素
-[2,1.4] O -[2,1.4]% 1-6グリコシド結合
C?[e](-[2] H) % 上右1位炭素
<[:-130,1.8] % 上右1-2結合
C(-[2] H)(-[6]OH) % 上右2位炭素
-[:180,1.5,,,line width=3pt] % 上右2-3結合
C(-[2] OH)(-[6]H) % 上右3位炭素
>[:130,1.8] % 上右3-4結合
C(-[2] H) % 上右4位炭素
(
-[:-130,1.4] O -[:130,1.3] % グリコシド結合
-[:180,1.4,,,dotted]
-[:-130,1.3] O -[:130,1.4] % グリコシド結合
C?[f](-[2] H) % 上左1位炭素
<[:-130,1.8] % 上左1-2結合
C(-[2] H)(-[6]OH) % 上左2位炭素
-[:180,1.5,,,line width=3pt] % 上左2-3結合
C(-[2] OH)(-[6]H) % 上左3位炭素
>[:130,1.8] % 上左3-4結合
C(-[2] H)(-[6,,,2]HO) % 上左4位炭素
-[:50,1.8] % 上左4-5結合
C(-[6]H)( -[,1.5] O?[f]) % 上左5位炭素
-[2] % 上左5-6結合
CH_2OH % 上左6位炭素
)
-[:50,1.8] % 上右4-5結合
C(-[6]H)( -[,1.5] O?[e]) % 上右5位炭素
-[2] % 上右5-6結合
CH_2OH % 上右6位炭素
)
-[,1.5] % 3番目の5-O結合
O
-[:-50,1.8] % 3番目のO-1結合
C(-[2] H) % 3番目の1位炭素
(-[:-50,1.4] O -[:50,1.3] % グリコシド結合
-[,1.4,,,dotted]
-[:-50,1.3] O -[:50,1.4] % グリコシド結合
C?[d](-[2] H) % 右4位炭素
-[:50,1.8] % 右4-5結合
C(-[6]H)( -[2] CH_2OH) % 右5,6位炭素
-[,1.5] % 右5-O結合
O
-[:-50,1.8] % 右O-1結合
C(-[2] H)(-[6]OH) % 右1位炭素
<[:-130,1.8] % 右1-2結合
C(-[2] H)(-[6]OH) % 右2位炭素
-[:180,1.5,,,line width=3pt] % 右2-3結合
C?[d,{<}](-[2] OH)(-[6]H) % 右3位炭素
)
<[:-130,1.8] % 3番目の1-2結合
C(-[2] H)(-[6]OH) % 3番目の2位炭素
-[:180,1.5,,,line width=3pt] % 3番目の2-3結合
C?[c,{<}](-[2] OH)(-[6]H) % 3番目の3位炭素
)
<[:-130,1.8] % 2番目の1-2結合
C(-[2] H)(-[6]OH) % 2番目の2位炭素
-[:180,1.5,,,line width=3pt] % 2番目の2-3結合
C?[b,{<}](-[2] OH)(-[6]H) % 2番目の3位炭素
)
<[:-130,1.8] % 1番目の1-2結合
C(-[2] H)(-[6]OH) % 1番目の2位炭素
-[:180,1.5,,,line width=3pt] % 1番目の2-3結合
C(-[2] OH)(-[6]H) % 1番目の3位炭素
>[:130,1.8] % 1番目の3-4結合
C(-[2] H)(-[6,,,2]HO) % 1番目の4位炭素
-[:50,1.8] % 1番目の4-5結合
C(-[6]H)( -[,1.5] O?[a]) % 1番目の5位炭素
-[2] % 1番目の5-6結合
CH_2OH % 1番目の6位炭素
}

f:id:doraTeX:20141212232943p:plain

他サイトのサンプル

MadChemiker
サリチル酸の二量体,テトロドトキシン,さらにはシアノコバラミン(ビタミンB12)といった激しい構造式を描いたサンプルが見られます。