ここまでTeXTeXときていますので、化学構造式もTeXで描きたい、と思ってい る方が多いと思います。 ということで、これからXyM(キュム)TeXの使い方をご紹介しようと思い ます。しかし、XyMTeXで構造式を描くのは少々大変です。そこで、XyMTeX以外の 化学構造式描画ソフトを1つ紹介して、「逃げ道」を作っておこうと思います。 この「逃げ道」のソフトはTeXとは関係ありませんので、あしからず・・・。
Windows で化学構造式を描くためのソフトで、無料で手に入るものとしては、 MDLのISIS/DrawやACDのChem Sketchが知られています。(無料といっても、大学などの学術機関関係 者のみですが。学生(たぶん高校生とか高校の先生も?)は思いっきり関係して ますので、無料です。)両方とも、GUIで構造式が描けること、メニュー部分が日本語のも のが公開されていることから、パソコン初心者にはかなりお薦めです。ここではISIS/Drawを紹介することにします。(3Dの分子模型図が欲しい場合はChemSketchをお薦めします。何と日本語マニュアルまでありますので、それを熟読してください!) また、Word文書にも構造式が貼り付けられるので、なかなかおいしいです。TeX の場合、PSプリンタドライバでファイルに「印刷」することでPSファイルを容易に得ることが出来ますし、画面キャプチャー(Windowsの画面を、写真みたく、画像にしてしまう 機能です。キーボードのPrtScrキーで出来ます。。ノートPCの場合はFn + PrtScrかも。) してWindows付属「ペイント」かMicrosoft Photo Editor(MS-Office に付属) に貼り付け、bmp形式(もしくはJPEG)として保存した上で、EPS-convでEPSに変 換するという方法が考えられます。ISIS/Draw では、出力はこんな感じになりま す。
なかなか悪くない出力でしょう?操作方法は、TeXとは違い、マウスでボタン を押しながら作っていきます。フォントは、最初のうちはMSゴシックになってい ますが、明朝体に変えることも出来ます。上の例は、原子のアルファベットを MS-明朝で表記しています。
さて、XyMTeX はもっと美しい出力が出来ます。(私の目から見れば、ですが。 )下にXyMTeXの出力例を示します。先ほどのISIS/Drawのものと比較してみてく ださい。
XyMTeXは、picture環境を使って化学構造式を描画するパッケージです。その ため、楔などは出力できなかったりします。その他、コマンドも少々複雑になり やすくなるなどの欠点がありますが、ちょっと練習してみるのも面白いかもしれ ません。
ちなみに、このFriedel-Crafts 反応を描画するために、次のようなTeXコマ ンドを描きました。
\[
\vcenter{\hbox{\bzdrv{}}} +
\raisebox{-7pt}{\hbox{\tetrahedral{0==Cl;3==\hbox{\kern-19ptCH$_3 $CHCH$_3 $}}}} \quad
\vcenter{\hbox{\reactrarrow{0pt}{1.5cm}{AlCl$_3 $}{}}}
\vcenter{\hbox{\bzdrh{4==\tetrahedral{0==C;1==CH$_3 $;2==(yl);3==CH$_3 $;4==H}}}}
\qquad \qquad \vcenter{\hbox{+ HCl}}
\]
これをコンパイルするためにはXyMTeXをインストールした上で、プリアンブ ルにusepackageコマンドでxymtexとchemistの2つを指定すればいいです。 なかなか複雑ですが、これから少し、説明していきたいと思います。
まず、XyMTeXをインストールする前に、epic.sty というスタイルファイルを インストールする必要があります。 Google などで検索してみましょう。たとえば、 http://www.mit.edu/afs/athena/contrib/tex-contrib/Chem2/xymtex/epic.sty にあります。 手に入れたら、 ここ に書いたように、C:\usr\local\share\texmf\tex 以下に、解凍したフォル ダごとコピーしてください。それからmktexlsrコマンドを実行してください。そ れで終わりです。
XyMTeX もepic.styと全く同様にインストールできます。(現在の最新バージョ ンは3です。sizeredc.sty の \changeunitlength により、構造式の大きさを変えることが出来るようになったのが特徴です。) ダウンロードは http://imt.chem.kit.ac.jp/fujita/fujitas3/xymtex/index.html#xym300 から行います。 インストール方法については、 xymtex2_jpn.txtに書かれていますが、少々古い(でなければ、角藤版TeXとして は少々適さない方法)です。普通にC:\usr\local\share\texmf\tex 以下に、解 凍したフォルダごとコピーし、mktexlsrコマンドを実行してください。これで usepackageコマンドでxymtexと、XyMTeXに同梱されているchemistを指定すれば、 使えるはずです。もし文字@の部分でうまくコンパイルできなければ、 それはepic.styのバグですので、epic.styをメモ帳等のエディタで開き、 冒頭の\makeatletterと末尾の\makeatotherをBackSpaceやDeleteキーで(普通に) 削除してください。
XyMTeXの機能のほんの一部をこれから解説しようと思いますが、その前に幾 つか述べておきたいことがあります。
まず、公式のマニュアルの入手方法についてです。 XyMTeX には、英語でかかれたマニュアル(XYMTX200.dvi)がありますので、英語 の読める方は、容易にXyMTeXのマニュアルを得ることが出来ます。 (C:\usr\local\share\texmf\tex\XYMTEX\doc200 にあります。) しかし、日本語のマニュアルは同梱されていません。
しかし、日本語のマニュアルを探してみても、なかなかタダでは手に入りません。 作者の藤田先生は、 「XyMTeX --- Typesetting Chemical Structureal Formulas」という本で、日本 語のXyMTeXマニュアルを書いていますが、5000円以上もする高い本である上に、 入手が難しくなっています。書籍の形では、他には「LaTeX2e階梯(第二版)」 の26章に、XyMTeXの入門的な解説があります。こちらは容易に入手できますが、 XyMTeXの解説はほんの一部(476ページ中29ページ)なので、TeXの一般的な 解説書が欲しい方以外は、3000円払うかどうか、ちょっと迷うところでしょう。 インターネット上では、「XyMTeX入門」(xymtexi.lzh)と「構造式マクロパッケー ジXyMTeXの例文集」(xymtexj.lzh)が無料で入手できます。ただし、@niftyの会 員であることが条件ですので、月500円(だったかな?)で@niftyの会員になる ことが必要となります。また、古いバージョンのものですので、新しい機能が載っ ていなかったりします。藤田先生自身の解説でないunofficialなものは、私の探 した限りにおいては、ありません。(再配布していいものであれば、私のサイト にアップロードしますが、そのあたりのことについて全く記述がありませんので、 今のところアップロードする予定はありません。)
次に、コマンドのちょっとした複雑さについてです。上の図のように、 あまり見た目が複雑でない化学構造式を単独で描画するのは比較的容易です。し かし、結合数の多い化合物や化学反応式となると、あまりTeX慣れしていない方 にはけっこう複雑に思えます。(picture環境でイチから描いていくよりはずっ とマシですが・・・。)
このように、XyMTeXを始めるための壁は、コマンドの複雑さともあわせると、 けっこう高いものであるように思えます。それでも、コマンドをきちんと理解し ておけば、何とかなると思います。
まずは単純な化合物から始めてみましょう。メタンは、次のようなコマンド を記すのみで完成です。
\tetrahedral{0==C;1==H;2==H;3==H;4==H}
下の図のように表示されたでしょうか。 ==は結合、結合(==)の左の数字は置換基の番号です。0は中心の原子を表しま す。
しかし、これだけでは残りの1から4までの置換基の番号が分かりません。先 ほどのコマンドを次のように訂正してみましょう。
\tetrahedral{0==C;1==H;2==Cl;3==Br;4==I}
すると、次のように表示されます。
どうやら、1を上の置換基として、反時計回りに2,3,4と番号が割り当てられ ているようです。以後、こうした置換基のばらばらな化合物を例にして、置換基 番号を明示していくつもりです。
また、置換基の記述を
\tetrahedral{0==C;1==H;2==Cl;4==I}
のように、(この場合は3を)省略すると、
のように、結合がなくなってしまいます。置換基番号3は下の部分ですから、 その下の部分が見事にすっぽり抜け落ちていることに、注意してください。
しかし、これではCの結合の手の数がおかしいです。そこで、4==Iを4D==Oに 変えてしまいましょう。D==というのは、二重結合(DはDoubleの略?)です。
\tetrahedral{0==C;1==H;2==Cl;4D==O}
D==の部分が二重結合になっていますね。なお、3重結合はchemist.styに \triplebondという3重結合のコマンドがありますが、たとえば4\triplebond CH のように変えてもうまくいきません。別の(面倒な)方法を考えるしかないよう です。
化合物には色もつけることが可能です。TeXでは、プリアンブルに
\usepackage[dvips]{graphicx,color}
などと書いておいて、
\textcolor[named]{色の名前}{色をつけたい文字(列)}
とすると、色がつきます。例えば
\textcolor[named]{Red}{赤の文字列}
と書くと、赤の文字列のように、色がつくわけです。 そこで、
\textcolor[named]{Red}{\tetrahedral{0==C;1==H;2==Cl;3==Br;4==I}}
のように書いてみると、
のように、メタン全体が赤くなります。さて、
\textcolor[named]{Blue}{\tetrahedral{0==\textcolor[named]{Red}{C};1==H;2==H;3==H;4==H}}
のように書いたらどこが何色になるでしょうか。答えは、
でした。
ベンゼン間のコマンドは、2種類用意されています。縦置きのベンゼン環と横 置きのベンゼン環です。まずは縦置きですが、次のように記述します。
\bzdrv{}
すると、次のようにベンゼン環が描かれます。置換基を完全に省略したため、 何1つとして置換されてないことに注意してください。
次に横置きです。bzdrvのv(Verticalの略?)がbzdrhのh(Horizontalの略? )に変わっていることに注意しましょう。
\bzdrh{}
すると、こんな感じに表示されます。
では、次のコマンドで置換基の番号を確認しておきましょう。
\bzdrv{1==A;2==D;3==E;4==G;5==J;6==L} \qquad \bzdrh{1==A;2==D;3==E;4==G;5==J;6==L}
\qquad というコマンドは、横に空白をあけるためのコマンドです。個々では、2 つの置換されたベンゼン環の間に感覚を入れた、ということをしたいために \qquad コマンドを使いました。すると、次のように表示されます。
縦置きのベンゼン環では上を置換基番号1として時計回りに1ずつ増えていき、横 置きでは左を置換基番号1として時計回りに1ずつ増えていることが分かると思い ます。先ほどのメタンの場合は反時計回りでしたが、今度は時計回りですので、 注意してください。
最後に、二重結合ではなく、芳香族の共役を表すために円を書く場合を示します。 これは\bzdrvと{以下の置換基リストの間に[]のオプション欄を設け、そこに c(Circleの略?)と記すだけです。
\bzdrv[c]{1==A;2==D;3==E;4==G;5==J;6==L}
ベンゼン環の任意の位置に二重結合を入れる方法は、次のシクロヘキサンの 描き方で述べることにします。
シクロヘキサンは、縦置きは\cyclohexanev、横置きは\cyclohexanehで描け ます。置換基番号の割り振り方は、ベンゼン環の場合と全く同じです。しかし、 シクロヘキサンの場合は、1つの炭素に複数の置換基がつくことがあります。そ の場合は次のようにSa==とSb==で描いていきます。また、aとbを大文字にすると、 それぞれ点線と太線が出ます。(bはおそらくBold(太字)の略でしょう。)
\cyclohexanev{1Sa==Cl;1Sb==Br} \qquad \cyclohexaneh{1SA==Cl;1SB==Br}
さて、先ほど「ベンゼン環の任意の位置に二重結合を入れる方法」を後述す るようなことを言いましたが、この方法は、このシクロヘキサンのコマンドによっ て解決されます。具体的には、オプションとしてaからfまでの文字で指定し、a が置換基番号1と2の間の環内結合を二重に、bが置換基番号2と3の間の環内結合 を二重にします。具体的には次のようになります。
\cyclohexanev[ade]{1==A;2==D;3==E;4==G;5==J;6==L}
この場合は置換基番号1と2,4と5,5と6の間の環内結合が、二重になります。
上の構造式はありえない形の化合物です。二重結合の位置があっているかど うかのチェックは、自分でする必要があるのです。
エタンは一見単純な化合物ですが、描くのはちょっと大変になります。他に も、置換基が複雑になると、やはり描くのはちょっと大変です。今回は、この 「ちょっと大変」な化合物の描き方を見ていきます。
いきなりですが、ばらばらな置換基を持つエタンは、次のように描きます。 ただし、置換基の部分はD以降のアルファベットを順に並べただけになっています。
\tetrahedral{0==C;1==D;2==E;3==F;4==\tetrahedral{0==C;1==G;2==(yl);3==H;4==I}}
図は次のようになります。上のコマンドには色をつける命令はありませんが、 ここではわかりやすいように着色してあります。
これだけを見て、どのようなコマンドかを理解するのはちょっと難しい と思います。 まず、エタンがどうも2つのメタンのコマンドに分けられているようだというこ とと、紫の\tetrahedralの部分が左の紫のメタンの構造式、赤の\tetrahedralの 部分が赤のメタンの構造式の部分にそれぞれ対応していることを確認してくださ い。
その上でコマンドをよく見てみると、紫(=左)のメタンが、置換基番号4 (=紫から見て右の置換基)で 赤のメタンを呼び出して手をつないでいること、赤(=右)のメタンが置換基番号2(=赤から 見て左の置換基)で手をつなぎ返しているようだ、 そして「呼び出した相手(=紫のメタン)に対し、手をつなぎ返す」ためのコマンドが(yl)のよう だ、と気づかれるかもしれません。この説明でもよくわからないかもしれません ので、たとえ話をすることにしましょう。
これはMS-Wordのクリップアートからいただいた絵ですが、左の黒人と右の白 人が握手している、ほほえましい(?)絵です。これをコマンドにしてみましょ う。
\黒人{右手==\白人{左手==手を出した相手}}
勝手に状況設定してみましょう。黒人は左手で白人に手を出したとします。 そこで、一方の白人が、手を出してきた相手に左手を出せば、握手が成立します。 ここで、「手を出した相手」というのが、 エタンのコマンドでいう(yl)にあたるというわけです。 これをエタンに置き換えると、 紫エタンが置換基番号4の(右)手を赤エタンに差し出し、 赤エタンが置換基番号2の(左)手で(yl)、すなわち手を差し出してきた紫エタ ンの手を握ったということになります。
お分かりいただけたでしょうか。これは、 XyMTeXにおいてよく使う技です。ぜひ何度も読み返して、マスターしましょう。
もう一つ例をお見せしましょう。今度はクメンです。
\bzdrh{4==\tetrahedral{0==C;1==CH$_3 $;2==(yl);3==CH$_3 $;4==H}}
![]()
青クメンが赤メタンに手を差し出し、赤メタンが手を差し出してきた青クメ ン(=(yl))に左手を差し出して、握手が成立している姿が想像できればOKです。
例えば、次のような化合物を書きたいとします。
ここで、おそらく次のように書きたくなるでしょう。
\tetrahedral{0==NH;1==CH$_3$;3==CH$_3$}
すると、エラーこそ出ませんが、次のようにNHがずれてしまいます。
そこで、NHを「箱」に入れてひとまとまりで扱い、その箱の中で\kernという命令で横にず らす必要が出てきます。ポイント(pt)単位で決め、左にずらすなら負の、右にず らすなら正の値を書きます。どれだけずらすかは、勘で決めます。何度もプレビュー してずらす値を直しながら、決めていくのです。
\tetrahedral{0==\hbox{\kern8ptNH};1==CH$_3$;3==CH$_3$}
これでできあがりです。
上下の調整は
\raisebox{5pt}{\bzdrv{}}
のようにします。上の例ではベンゼン環が5pt上がります。逆はraiseの反対 ですから・・・負の値を取るのです。
実例を示してみます。(\qquad はだいたいMの2文字分だけ空白をとる命令で す。)
\raisebox{20pt}{\bzdrv{}} \qquad \bzdrv{} \qquad
\raisebox{-20pt}{\bzdrv{}}
すると、次のように出力されます。
複雑な化合物では、\fbox{(複雑な化合物)}のように、四角い枠でくくってみても、 うまくいかないことがあります。たとえば、
\fbox{
\tetrahedral{0==\hbox{\kern12ptCH$_2$};1==COO$^-$;
3==\tetrahedral{0==N;1==(yl);4==CH$_3$;3==\tetrahedral{0==C;1==(yl);
4D==N$^+$H$_2$;3==\tetrahedral{0==\hbox{\kern8ptNH};1==(yl);3==\tetrahedral{0==P;1==(yl);2D==O;3==O$^-$;4==O$^-$;};};};};}
}
のように、複雑な構造式(クレアチンリン酸)は枠の中におさまりません。 そもそもTeX では、文字・文字列や構造式を組版したものは、仮想的な(概念上 の)箱(box)として取り扱われます。構造式の場合は、1つ1つの命令により出力 された構造式が箱(XyM箱という)を持っており、 それらのの箱を寄せ集めて出来たようなものであるので、全体を取り囲むような 箱は形成されないようなのです。その結果、箱の外側(標準では3pt)を取り囲 む\fboxの枠が、小さすぎる格好で、出力されるのです。
「構造式を箱でくくる?できなければどうした?」と思われるかもしれません が、けっこうまずい事柄だったりします。ascmacパッケージのshadebox環境など の「飾り枠」の中にもおさまりませんし、それよりも\hboxや\raiseboxという箱 の中に全体をく くって化合物の位置を調整できないのは痛すぎです。(この痛さは、XyMTeXを使っていくうちに分かるでしょう。)これについては、2つの方法があります。
1つ目は、chemist.styにある命令の\cdtwocellで大きな箱を用意する方法です。 (箱の外側に枠は表示されないので、表示させたい場合は\fboxを使います。) 幅が指定できますし、この中で\vspace(縦方向に空白を作る命令)を使うこと で、縦方向の箱の幅も調節できます。(ちなみに、他の環境では\vspaceを使う とたての罫線と下の横罫線が離れてしまい、うまくいかないというトラブルが生 じます。)ちなみにchemist
まず、プリアンブルに次のように書いて、chemistスタイルファイルを読み込みます。
\usepackage{chemist}
文法は次の通りです。
\cdtwocell{(箱の上げ下げをするための寸法)}{(箱の横幅)}{(箱の中身、 主に化合物)}{(化合物等の下に書く説明等の文章)}
1つ目の寸法には、だいたい0ptと入れておけば事足りるようです。箱の上げ 下げと、次の箱の横幅は、それぞれポイント(pt)で指定します。後は、実例を ご覧ください。たとえば、
\cdtwocell{0pt}{70pt}{\bzdrv{}}{ベンゼン}
と使った場合、出力は、
のようになります。
では、これを使って複雑な化合物を箱(と、外側の枠)で囲んでしまいましょう。
\fbox{
\cdtwocell{0pt}{80pt}{
\tetrahedral{0==\hbox{\kern12ptCH$_2$};1==COO$^-$;
3==\tetrahedral{0==N;1==(yl);4==CH$_3$;3==\tetrahedral{0==C;1==(yl);
4D==N$^+$H$_2$;3==\tetrahedral{0==\hbox{\kern8ptNH};1==(yl);3==\tetrahedral{0==P;1==(yl);2D==O;3==O$^-$;4==O$^-$;};};};};}
\\ \vspace{3cm}}
{}
}
出力結果は次の通りです。
もう1つの方法は「表」でおなじみtabular環境を使って大きな箱を作る方法 です。表の罫線を使って構造式を囲っちゃおうというわけです。マクロがいらな い方法です。
まず、いつもcとか 書いてセルの要素を真ん中にそろえている部分がp{(長さっ ぽい)}という命令に変わっています。これは、セルの幅を調節するため のものです。これなら箱の幅がいくらでも伸びますね。もちろん幅は、試行錯誤 で決めます。
しかし、1行目のセルは、先ほどの小さい箱の分で埋まってしまいます。そこ で、箱に構造式が入るだけの行数を稼ぎます。これも試行錯誤です。
\begin{tabular}[t]{p{2.7cm}}
\hline
\tetrahedral{0==\hbox{\kern12ptCH$_2$};1==COO$^-$;
3==\tetrahedral{0==N;1==(yl);4==CH$_3$;3==\tetrahedral{0==C;1==(yl);
4D==N$^+$H$_2$;3==\tetrahedral{0==\hbox{\kern8ptNH};1==(yl);3==\tetrahedral{0==P;1==(yl);2D==O;3==O$^-$;4==O$^-$;};};};};}
\\ \\ \\ \\ \\ \\
\hline
\end{tabular}
では、出力結果です!化合物全体を箱(とその外側の枠)で囲み、さらにitembox環境 (pTeXに付属しているascmacパッケージの命令の1つ)で飾り枠として囲んでい ます。もちろん箱のすぐ外側の四角い枠が邪魔であれば、表の罫線をつけなければいいだけです。 ここでは説明のために、わざと四角い枠をつけているだけです。
これで、とりあえず一安心です。
ここまでの解説で、化学構造式単独であれば、 中途半端な英語力でもXyMTeXに付属している英語マニュアルを読めば、 だいたいは何とかなるレベルに来たと思います。(「だいたい」ということは、 まだ何とかならないものもある、という意味です。)
しかし、化学反応式を書く機会のほうが、構造式単独で書く機会より多いの ではないでしょうか。そこで、化学反応式をどうやって書くかを簡単に述べてい きたいと思います。詳細はXyMTeX例文集が参考になると思います。@niftyの会員 になるなり、@niftyの会員の友達からもらうなりして、手に入れることをお薦め します。
基本は次の通りです。
\[ \]の数式環境を用い、その中で\vcenter\hbox{化学構造式のコマンド}を、 構造式一つ一つに適用することで高さが大体同じラインになるように調整し、 化学構造式を並べていく。
eqnarray*という数式環境を用い、iと同じようにして構造式を並べていくが、 次の行に行くときに\\で改行し、必要に応じて「\strut \\」の2つを使って空 行を挿入する。
また、これらとは別の話ですが、反応式の矢印の上下に、温度や触媒などを 記したい場合は、XyMTeX付属のchemistパッケージにある \reactrarrowコマンドを使います。使い方は、
\reactrarrow{基準線の高さ}{矢印の長さ}{矢印の上に記したい文字列}{矢印の 下に記したい文字列}のようにします。また、\react...は一重線の矢印、\scheme...は二重線の矢 印です。具体例を、コマンドと表示の両方で確認していきましょう。
\[
\reactrarrow{0pt}{1.5cm}{-H$_2 $O}{15℃} \qquad
\reactlarrow{0pt}{2cm}{+ CO$_2 $}{} \qquad \reactlrarrow{0pt}{0.5cm}{}{}
\qquad \reacteqarrow{0pt}{1.0cm}{}{平衡} \qquad
\reactdarrow{0pt}{1cm}{}{} \qquad \qquad \reactnearrow{0pt}{1cm}{+H$_2 $O}{}
\]
\[
\schemerarrow{0pt}{1.0cm}{+H$_2 $O}{} \qquad \schemelrarrow{0pt}{1.5cm}{30℃}{}
\]
では、具体的な話に移りましょう。 まず、一行単位の化学反応式の例として、最初に見たFriedel-Crafts反応のコー ドと出力結果を示します。
\[
\vcenter{\hbox{\bzdrv{}}} +
\raisebox{-7pt}{\hbox{\tetrahedral{0==Cl;3==\hbox{\kern-19ptCH$_3 $CHCH$_3 $}}}} \quad
\vcenter{\hbox{\reactrarrow{0pt}{1.5cm}{AlCl$_3 $}{}}}
\vcenter{\hbox{\bzdrh{4==\tetrahedral{0==C;1==CH$_3 $;2==(yl);3==CH$_3 $;4==H}}}}
\qquad \qquad \vcenter{\hbox{+ HCl}}
\]
2〜3行目は、まだこの段階の知識では分かりにくいコードかもしれません。 \raiseboxで7ptだけ移動させ、Clを中心に\tetrahedralを作ります。しかしこの ままではCH3CHCH3の左端が、結合の棒にくっついてしま うので、\kernで左に19ptずらしました。何ptずらすかは、試行錯誤で決めまし た。この行以外の部分は、これまでやってきたことばかりでしょう。 \vcenter{\hbox{ }}でそれぞれの化合物のコマンドを囲んでいることが分かると 思います。
次に、二行以上の場合のコードと出力例を示します。(xymtexj.lzh中の例よ り引用)
\begin{eqnarray*}
\vcenter{\hbox{\bzdrv{1==CH$_3 $}}} & \longrightarrow &
\vcenter{\hbox{\bzdrv{1==CH$_3 $;2==NO$_2 $}}} +
\vcenter{\hbox{\bzdrv{1==CH$_3 $;4==NO$_2 $}}}
\longrightarrow \\
\strut & & \\
& & \vcenter{\hbox{\bzdrv{1==CH$_3 $;2==NO$_2 $;4==NO$_2 $}}}
\quad + \quad
\vcenter{\hbox{\bzdrv{1==CH$_3 $;2==NO$_2 $;6==NO$_2 $}}}
\quad \longrightarrow \quad
\vcenter{\hbox{\bzdrv{1==CH$_3 $;2==NO$_2 $;4==NO$_2 $;6==NO$_2 $}}}
\end{eqnarray*}
これはすべて\vcenter{\hbox{ }}で構造式のコードを囲んでいます。大部分 は、問題なく読めるのではないでしょうか。
Version 3.00 にて、化学構造式の大きさが変えられるようになりました。 3.00 でない方は、XyMTeX の古いバージョンを削除するかバックアップを取るか して、新規に3.00 版をインストールし、mktexlsr コマンドを実行することで、 バージョンアップしてしまいましょう。
では、さっそく使い方を説明します。プリアンブルは
\usepackage{xymtex}
のまま変えません。ただし、直接スタイルファイルを読み込みたいときは
\usepackage{sizeredc}
とします。
その上で、大きさを次のように指定します。ここでは大きさを 0.05 pt にし た例です。
\changeunitlength{0.05pt}
この大きさ(ここでは0.05pt)を本文の構造式全体にわたって指定したい場 合は、このコマンドをプリアンブルの\usepackage{xymtex}の後に書いておけば いいですが、部分的に大きさを指定したい場合は、このコマンドと構造式を 次のように{と}で囲むことになります。
{\changeunitlength{0.05pt} \bzdrv{1==NO$_2 $;3==NO$_2 $;5==O$_2 $N} }\\
では、実際の使い方を出力とともにご覧ください。\qquadは、横にいくばくかの空白を出力するものです。
\bzdrv{1==NO$_2 $;3==NO$_2 $;5==O$_2 $N} \qquad
{\changeunitlength{0.05pt} \bzdrv{1==NO$_2 $;3==NO$_2 $;5==O$_2 $N} }\\
{\changeunitlength{0.2pt} \bzdrv{1==NO$_2 $;3==NO$_2 $;5==O$_2 $N} } \qquad
{\changeunitlength{0.1pt} \bzdrv{1==NO$_2 $;3==NO$_2 $;5==O$_2 $N} }\\
この例から分かるように、大きさを指定しない場合は 0.1pt の大きさで構造 式が描かれます。
私の環境では、\tetrahedral による描画では、構造式の結合の棒と元素記号 にずれが生じて、うまく描かれません。