TEX による化学式などの表現

岩田雅弘、 吉田俊久


Return

1 はじめに

 世はまさに情報化時代である。学校教育の現場でもコンピュータが導入され、授業や校務処理などに利用されている。校内の文書やテスト問題の作成などにも、ワープロ(コンピュータのワープロソフトを含む)が多用され便利になった。それでも化学の試験問題あるいは論文などをワープロで作る場合、化学式や反応式、図表といった複雑な表現を記述するのは大変困難である。このような場合は、他のグラフィック系のソフトを併用して作ることになるが、その場合でも操作が煩雑であったりする。
 この問題を解決するための一つの方法として、TEX (TEX はテフまたはテックとよむ)というソフトが利用できる。このソフトは主に理工系の仕事に携わる人々に利用されており、特に数学の分野での利用が大変多い。このソフトの特徴は、複雑な数式や表などを簡単に出力でき、しかもきれいな印刷結果が得られることである。また、TEX で処理された文書ファイルは機種に依存しないという利点もある。最近、化学関係者の間でもTEX が注目されている。1a) 日本化学会においても、欧文誌の全文データベース化や電子出版化が検討されており、電子出版のツールとしてTEX が使われる可能性があるという。1b)
 そこで本論文では、このTEX を使用して化学式や実験器具などを文書中に簡単に記述できる方法を開発したので以下に報告する。

2 TEX

2.1 TEX とは
 TEX は数学者が作った文書処理ソフトで2)、主にワークステーションなどで利用されてきたが、最近はパソコンなどでも利用できるようになった。このソフトは、処理したい内容をある種の制御言語(コマンド)で記述して、指定した書式に変換し出力するものである。
 TEX で文書処理を行うには、TEX 本体の他に文書やコマンドを入力するためのソフト(エディター)と、処理した結果を画面に表示したり(プレビュ−ア)、印刷したりする(プリンタドライバ)ソフトが必要である。その他にも、プリンタ−の解像度に応じたフォントファイルや文書の出力形式を定めたスタイルファイルなども必要となる。

 また、TEX の機能を強化するために、TEX のコマンドを用いて作成されたマクロ集LATEX やPICTEX など)を利用するとTEX の操作および表現力が飛躍的に向上する。これらの関係を図1に示した。ここでは、図1に見られるファイル群(TEX ファミリ−)をまとめてTEX と呼ぶことにする。
 本報告では、LATEX とPICTEX を使用した。

2.2 TEX の入手方法
 TEX は基本的には無償で配布されている。パソコン通信でPC−VANやNIFTY−Surveなどから電話回線をつかってプログラムをコピーすることができる。しかし、TEX を動作させるためにはたくさんのファイルをコピーしなければならず、時間と費用と手間がかかる。そこで、アスキー出版局からでている「パーソナル日本語TEX 」というソフト付きの本(9800円)を購入すると、必要なものは一通りそろっているのですぐにでも使うことができる。また、最近では雑誌の付録として、提供されることがある。(Cマガジン10月号,1993年)
 本報告で使用したTEX は「パ−ソナル日本語TEX」とNIFTY−Surveから入手したBig\TEX である。Big\TEX は普通のTEX よりも処理能力が大きい\TEX の強化版である。

2.3 TEX の動作環境
 ここでは使用した「パ−ソナル日本語\TEX」の動作環境を述べる。

 本報告で使用した機種はNECのPC-9801NA(拡張メモリ−7Mバイト)、プリンタ−はエプソンのレ−ザ−プリンタ−(LP−1500)である。また、エディタ−はVZエディタ−(ビレッジセンタ−)を使用した。

2.4 TEX による作業の流れ
 TEX による作業の流れを図2に示す。

 TEX で実際に文書を作成するには、まず出力したい文書をエディタ−などで入力する。このとき、出力する形式、文字の大きさや種類、文字の印字位置などを制御するコマンドを文書の中にいっしょに記述する。 この「TEX 文書」をTEX でコンパイルすると「dviファイル」ができる。このファイルは、機種に依存しないので、どんなコンピュ−タシステムにおいても、同じ文書を出力することが可能である。次にこの「dviファイル」をプレビュ−アと呼ばれるデバイスドライバ(dviout)で画面出力し、訂正があれば元の「\TEX 文書」を修正する。そして、再度TEX でコンパイルする。このような操作を何回か繰り返して、最終的にプリンタドライバ(dviprt)でプリンタに出力し印刷物を得る。

2.5 TEX 文書の入力及び出力例
 TEX 文書の入力例を図3にその出力を図4に示す。

 \documentstyle文で、文字や用紙の大きさ、出力する様式などを規定したスタイルファイルを読み込む。\documentstyleと\begin{document}の間には、コマンドの定義や段落、インデント、改行幅など細かな定義を記述する。次いで、\begin{document}と\end{document}の間に出力したい文書を記述する。なお、"\"(ギャクスラッシュ)は、日本の機種では使用できないものが多い。その場合は、"¥"(円マ−ク)が同じ働きをする。

3 TEX のコマンド登録機能

3.1 コマンドの登録
 図4にみられるコマンド登録機能\newcommandを利用すれば、化合物の構造式や、実験器具など文書中に表現しにくいものを、コマンド名を記述するだけで簡単に表現できる。コマンド\newcommandの書式は次のようなものである。以下に一例を示す。

\newcommand{コマンド名}[引数の数]{出力したいもの}

 {出力したいもの}の部分に構造式などを表現するプログラムを書く。

プログラム例

\begin{verbatim}
\newcommand{\vbenzene}[6]{%   
   \beginpicture
   \setcoordinatesystem units <1mm,1mm>
   \setlinear
   \plot 0 5 -4.3 2.5 -4.3 -2.5 0 -5 4.3 -2.5 4.3 2.5 0 5 /
   \plot 0.8 4.5 -4.3 1.6 /
   \plot -4.3 -1.7 0.7 -4.6 /
   \plot 3.5 -3 3.5 3 /
   \ifx#1 \else \plot 0 5 0 8 /
                \put {#1} [lb] at -1 8 \fi % 
   \ifx#2 \else \plot 4.3 2.5 6.9 4 /
                \put {#2} [l] at 6.9 4 \fi %
   \ifx#3 \else \plot 4.3 -2.5 6.9 -4 /
                \put {#3} [l] at 6.9 -4 \fi %
   \ifx#4 \else \plot 0 -5 0 -8 /
                \put {#4} [lt] at -1 -8 \fi %
   \ifx#5 \else \plot -4.3 -2.5 -6.9 -4 /
                \put {#5} [r] at -6.9 -4 \fi %
   \ifx#6 \else \plot -4.3 2.5 -6.9 4 /
                \put {#6} [r] at -6.9 4 \fi % 
   \endpicture
 }% 
 この\vbenzeneコマンドは引数を6個持つ。{ }の中に置換基を記述すると、その置換基に応じてベンゼン誘導体を出力できる。

3.2 実際の使用例
 上記\vbenzeneコマンドの実際の文書での使用例を図5に、その出力結果を図6に示す。

4 化学コマンドの開発

 今回作成したコマンドは、化合物の構造式、実験器具図、その他(ボ−アモデルによる電子配置の模式図、周期表、防災ラベル)を出力するコマンドである。以下に概要を説明する。

4.1 化合物の構造式
 主に高校化学の教科書にでてくる有機化合物を中心に作成した。分類すると次のようなものである。
 (1) 脂肪族炭化水素 (2) 芳香族化合物 (3) アミノ酸、糖質類 (4) その他の化合物となる。

4.1.1 脂肪族炭化水素
 脂肪族炭化水素は、次のような部品を用いて出力する。以下、二重線で挟まれた部分の記述は開発したコマンドである。

ブタン、イソブタン、アセチレンなどの構造式を出力するには、それぞれ
(1)\Rmethyl \methylen \sbond \methylen \Lmethyl
(2)CH$_3$\sbond\upmethyl \sbond CH$_3$
(3)H\sbond C\tbond C\sbond H
などと記述する。結果は次のように出力される。

また、コマンドに引数をもたせることにより、一つのコマンドでいろいろな化合物を出力することもできる。

引数をもつコマンド

 トリクロロメタン、ジブロモエタン、塩化ビニル、2,4-ジエチルヘキサンの記述例と出力を次に示す。

(1)Cl\Lmethylxxx{H}{Cl}{Cl}
(2)\Rmethylxxx{Br}{H}{H}\methylenxx{Br}{H}\sbond H
(3)\ethylen{H}{Cl}{H}{H}
(4)\upCHxxx{CH$_2$CH$_3$}{CH$_2$}{CH$_3$}
 \underCHxxx{CH$_2$}{CH$_2$CH$_3$}{}\sbond CH$_3$

4.1.2 芳香族化合物
 芳香族化合物は、次のコマンドにより出力する。

 フェノ−ル、テレフタル酸、ピクリン酸、p−ヒドロキシアゾベンゼンの記述例とその出力を次に示す。
(1) \vbenzene{OH}{}{}{}{}{}
(2) \hbenzene{}{COOH}{}{}{HOOC}{}
(3) \vcbenzene{OH}{NO$_2$}{}{NO$_2$}{}{O$_2$N}
(4) \hcbenzene{}{N}{}{}{}{}\dbond\hcbenzene{}{OH}{}{}{N}{}

4.1.3 アミノ酸、糖質類
 アミノ酸、糖質類は次のコマンドにより出力する。

L-アラニン、D-リボ−ス、α-D-グルコ−スの記述例と出力を次に示す。
(1) \ccciv{O$_2$H}{H}{H$_3$}{H$_2$N}
(2) \cccccviii{HO}{\sbond OH}{\sbond OH}{\sbond OH}
   {H$_2$OH}{\sbond H}{\sbond H}{\sbond H}
(3) \sixcH{OH}{H}{OH}{OH}{H}{H}{HO}{CH$_2$OH}{H}

4.1.4 その他の化合物

・複素環化合物
 次のコマンドは最初の{}に元素を指定する。そして、二番目以降の{}には半角のアルファベット一文字を指定すると、対応する位置に二重結合を出力する。

・その他の化合物
 アントラセン、フェナントレン、トリフェニレンを出力するコマンド。

・立体構造を表すモデル
 ニュ−マン投影法、四面体構造、C60分子、ダイヤモンドと黒鉛の立体モデルを出力するコマンド。

4.2 実験器具
 試験管やビ−カ−などちょっとした実験器具を書く場合、手書きするか、他のものからコピ−してそれを利用するといった方法がとられる。しかし、蒸留装置など少し複雑なものになると手書きするのもめんどうになり、他から満足のいくものを探し出すのもなかなか大変である。そんなとき、実験器具を簡単に出力できたら便利である。このような考えから、次に示す実験器具を出力するコマンドを作成した。そして、これらのコマンドを組み合わせることによって、より複雑な蒸留装置やろ過装置といった実験図を表現することができる。

 上記の部品コマンドを用いて、次に示すような実験装置が表現できる。部品コマンドは縮小、拡大、回転が簡単にできるため様々な表現が可能である。

4.3 その他のコマンド
 構造式や実験器具以外に高校化学の教科書等にでてくる図表のコマンド化も試みた。

4.3.1 周期表  周期表を出力するコマンドを作成した。枠だけ、あるいは元素記号のみ、元素名のみといった出力も可能である。また、特定の族、周期を出力することもできる。

4.3.2 電子配置の模式図
 第三周期までの元素について、その電子配置図をそれぞれ出力するコマンドを作成した。

4.3.3 防災ラベル
 TEX の\specialコマンドを用いると、下記のような濃淡のある塗りつぶし図形を描くことができる。
 小さい子どもなど誰にでもすぐに理解できる絵文字は、大変利用価値が高い。安全教育という立場から、保管場所や試薬瓶などに防災ラベルを利用すると教育効果も高いと思われる。欧米各国ではすでに試薬瓶などに防災ラベルは添付されている。ただし、その防災ラベルはISO(国際標準化機構)推薦のものが使われている。3)

5 おわりに

 報告書や論文など他人が読むことを前提に書かれる文書は、ほとんどがワ−プロ(コンピュ−タのワ−プロソフトも含む)で作成されるようになってきた。しかし、他の機種の文書デ−タを利用しようとすると、ワ−プロの場合は機種ごとにフォ−マットが異なるため、変換作業が必要になる。TEX は、基本的に情報をテキスト形式で扱うため、機種依存性がすくない。そのためTEX が動作するコンピュ−タ上であればどんな機種においても同じ出力を得ることができる。このことは、文書を情報として利用する上では大変重要なことである。特に報告書や論文などの文書情報は、誰もが利用できるようにデ−タベ−ス化する必要があり、デ−タベ−ス化するための標準フォ−マットとしては、いまのところテキスト形式をおいて他にない。情報として文書の取り扱い易さという点でTEX を利用する意義は大きいはずである。
 本論文は高校化学で扱われる化合物、実験器具、その他の図を簡単に出力できるTEX コマンドを開発したというものである。これらのコマンドを使用するには、少々TEX の知識4)が必要であるが、作業を中断することなしに文章を作成できるという点で、ワ−プロと作図ソフトを併用する方法に比べて簡便である。誰もが簡単にこれらのコマンドを利用できるという観点からすると、まだまだ不十分なところが多く、また表現できる化合物の数も少ない。多くの方々にそれぞれの分野で、表現しにくい図表などを簡単に表現できるTEX コマンドを開発していただき、それらが自由に使用できるような環境になれば、TEX の利用価値はより大きなものとなろう。
 本論文の記述はまさに、TEX で行われた。充分な解像度をもつプリンタを使えば、きれいな印刷結果が得られるはずである。本報告はその実施例の1つと解釈してもらいたい。本論文の内容の一部は『化学ソフトウェア−学会’93研究討論会』で発表したものである。

6 参考文献

1a)藤田真作,化学者・生化学者のためのLATEX , 東京化学同人,(1993).
 b)伊藤卓,化学と工業,46(1),66-69,(1993).
2)Donald E.Knuth 著,斉藤信男監修,鴬谷好輝訳,TEX ブック,アスキ−出版局,(1992).
3)吉田俊久,下沢隆, 化学と教育,34(6),516-517,(1986).
4a)Leslie Lamport 著,Edgar Cooke他監訳,文書処理システム LaTEX ,アスキ−出版局,(1991).
 b)奥村晴彦,LATEX 美文書作成入門, 技術評論社,(1991).
 c)野寺隆志,楽々LATEX ,共立,(1990).
 d)大野義夫編,TEX 入門,共立,(1989).
 e)伊藤和人,LATEX ト−タルガイド,秀和システムトレ−ディング,(1991).
 f)磯崎秀樹,LATEX 自由自在,サイエンス社,(1992).
 g)Paul W. Abrahams他,TEX for the Impatient, Addison-Wesley\ Publishing\ Company(1992).

Return