つれづれなる備忘録

日々の発見をあるがままに綴る

Texによる文書作成21 ~chemfigパッケージ2

前回に続き化学構造式の描画が可能なchemfigパッケージの使用方法について紹介する。

atatat.hatenablog.com

1. 環状構造の表示

環状構造や分岐をもつ構造を表示すると、表示エリアが広くなってしまうことがある。そこで文字サイズを指定するコマンドと併用することで表示する構造のサイズを小さくすることができる。

scriptsize: {\scriptsize \chemfig{A*5(-B=C-D-E=)}} ,通常サイズ: \chemfig{A*5(-B=C-D-E=)}
 
scriptsize: {\scriptsize \chemfig{CH_3 - CH_2 (-[:-90]OH)-CH_3}},通常サイズ: \chemfig{CH_3 - CH_2 (-[:-90]OH)-CH_3}

"サイズ調整"
サイズ調整

文字サイズとして\scriptsizeを使用したが、\tiny, \footnotesize, \smallなども使用できる。

文字サイズを指定する場合は、文字も含めて全体のサイズが小さくなるが、結合長さだけを短くするという方法もある。chmfig[atom sep=2em]{}などとすることで結合の長さを指定することができる。この場合は原子に使用している文字のサイズは変わらない。

\chemfig[atom sep=2em]{A*5(-B=C-D-E=)},通常サイズ: \chemfig{A*5(-B=C-D-E=)}

\chemfig[atom sep=2em]{CH_3 - CH_2 (-[:-90]OH)-CH_3},通常サイズ: \chemfig{CH_3 - CH_2 (-[:-90]OH)-CH_3}

"結合長さの指定"
結合長さの指定

ベンゼン環などの表示方向を変更する場合は、*や**の前に[:30]などとして結合角度を指定する。

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

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

"環状構造の回転表示"
環状構造の回転表示

2. 高分子構造

 高分子など構造の繰り返しを表現するため、単位構造を括弧などでくくる必要がある。括弧については[@{op}][@{cl}]の間に単位構造を記述する。 括弧のサイズや添え字は\polmerdelim{height=5pt, indice=\!\!n]{op}{cl}とすると括弧のサイズや添え字を指定することができる。 以下見本はマニュアルhttps://ftp.jaist.ac.jp/pub/CTAN/macros/generic/chemfig/chemfig-en.pdfのコード、簡略は見栄えをあまり気にせず必要最低限のコードで記述した場合になる。

Polyethylen,
見本: \chemfig{\vphantom{CH_2}-[@{op,.75}]CH_2-CH_2-[@{cl,0.25}]}
\polymerdelim[ indice = \!\!n]{op}{cl}
簡略:\chemfig{-[@{op}]CH_2-CH_2-[@{cl}]}
\polymerdelim[height = 5pt, indice = \!\!n]{op}{cl}
\newline
括弧変更:\chemfig{-[@{op}]CH_2-CH_2-[@{cl}]}
\polymerdelim[delimiters ={[]},height = 5pt, indice = \!\!n]{op}{cl}
\newline

Polyvinyl chloride:
見本:
\chemfig{\vphantom{CH_2}-[@{op,1}]CH_2-CH(-[6]Cl)-[@{cl,0}]}
\polymerdelim[height = 5pt, depth = 25pt, open xshift = -10pt, indice = \!\!n]{op}{cl}
簡略:
\chemfig{-[@{op}]CH_2-CH(-[6]Cl)-[@{cl}]}
\polymerdelim[height = 25pt, indice = \!\!n]{op}{cl}
\newline

Nylon 6:

見本:\chemfig{\phantom{N}-[@{op,.75}]{N}(-[2]H)-C(=[2]O)-{(}CH_2{)_5}-[@{cl,0.25}]}
\polymerdelim[height = 30pt, depth = 5pt, indice = {}]{op}{cl}
簡略:
\chemfig{-[@{op}]{N}(-[2]H)-C(=[2]O)-{(}CH_2{)_5}-[@{cl}]}
\polymerdelim[height = 30pt,indice = {}]{op}{cl}

見本の\vphantom{}はダミーの原子表示で表示されないが結合の位置を調整するために使われている。@{op,0.75}などは結合と括弧の位置調整(デフォルトは中心)、\polymerdelim{}のオプションheightは括弧のサイズを指定するオプションだが、厳密には結合より上のサイズで、下側はdepthで指定する。ただし、depthを省略するとheightと同じ数値が指定される。括弧の種類を変更したい場合はpolymerdlimのオプションでdelimiters ={[]}と指定する。

環状構造で立体を表現するには、オプションにより個別に結合を指定する必要がある。例えば、以下は[角度,長さ,結合する原子番号]で長さを調整し、線の太さは[,,,,line width=2pt]で調整している。 また、ベンゼン環のように*6(-=-=-=)を使用せずに環の最初と最後を?で指定する。

\chemfig[cram width=2pt]{HO-[2,0.5,2]?<[7,0.7]-[,,,,line width=2pt]>[1,0.7]-[3,0.7]O-[4]?}

"環状構造の立体表示"
環状構造の立体表示

4. 反応式

 最後に反応式の表示方法について示す。chemfigの反応式を表示するには\schemestart\schemstopに記述する。構造については\chemfig{}で定義し、反応の矢印は\arrowを用いる。 平衡反応などの矢印は\arrow{<->>}とすれば表示される。

\schemestart
\chemfig{*6(-=-=-=)}\arrow
\chemfig{X=[1]Y}\arrow{<->>}\chemfig{S>T}
\schemestop

"反応式の表示"
反応式の表示

5. まとめ

 まだ紹介していない細かい調整や表示方法などあり、大学レベルの教科書にある化学構造や反応式はほぼchemfigを使えば表示できそうだが、今回は基本的な使い方に留めておくことにする。