LaTeXで書いた構造式を3D化してみた。

By | 2017年6月10日

はじめに

数式を3D化して回してみた後は、昔大学受験の時と大学の化学実験なんかでよく書いた構造式を3D化して回転させたら分子が回ってる感じが出て面白そうじゃね? と軽く思ったので、まずは構造式を3D化してみることにしました。化学はもともと専門ではないのと、構造式を回転させるということ自体に需要があるかどうかはわかりませんが、軽いネタだと思って読み流していただけると幸いです。

スポンサーリンク

最初に、物質を選びます。

まず、回っている感を出せるような物質を選びます。とりあえず、

  1. ベンゼン環があること。構造式といえば、あの六角形ですよね。
  2. 二重結合があること。単純につながっているだけでは面白くありません。
  3. 高校の化学で登場しそうな物質であること。
  4. 構造式があまり書くのが面倒ではないものであること。

というような基準で、「安息香酸メチル」あたりを書いてみることにしました。

構造式のSVGファイルを作るんですが…

XyMTeX vs ChemFig: とりあえずXyMTeX

どっちがいいんですかねぇ…

以前ちょっとだけ使ってみたことがあるXyMTeXを使ってみます。

WordPressで化学式を書きたい人にはChemFigの方がいいかもしれませんが、3D化はWordpressの外で行われるものなので、とりあえず、XyMTeXを使ってみます。気が向いたら、化学が専門ではないという前提で見たときのXyMTeXとChemFigの比較記事を書くかもしれません。

XyMTeXが入っていなかったので、インストール。

TeX2imgを使用して、構造式のSVGファイルを作ります… といきたいところですが、手元の環境にXyMTeXがインストールされていなかったので、以下の手順でインストールします。

  1. CTANのページからダウンロードします。
  2. zipファイルを展開します。
  3. xymtexフォルダをTeXLiveのディレクトリの下のtexmf-local\tex\latex\localの下に移動またはコピーします。
  4. 管理者権限でmktexlsrコマンドを実行します。

エラーでハマる。

とりあえずベンゼン環が書けないと、安息香酸ってレベルじゃなくなるので、以下のようなLaTeXのコードを書いてみました。実際はTeX2imgからエクスポートしたものにちょっと手を加えています。

%latex: xelatex
\documentclass[fleqn]{bxjsarticle}
\usepackage{zxjatype}
\usepackage{amsmath,amssymb}
\usepackage{xcolor}
\usepackage{xymtexpdf}
\pagestyle{empty}
\begin{document}
\bzdrh{}
\end{document}

こいつを以下のコマンドを実行してコンパイルすると…

! LaTeX Error: Command ‘\Gamma’ already defined.

といわれて、コンパイルできません。そこで、ちょっと調べてみると、ここに「”Fontspec”と”XyMTeX”がconflictしているのが原因だ。」と書いてあるので、ひとまず、上記のコードを以下のように変更して、TeX2imgに読み込ませることにしました。TeX2imgの「TeXソースファイルを読み込む」をチェックして上記のファイルを指定してから「画像ファイル生成」ボタンをクリックします。

%latex: xelatex
\documentclass[fleqn]{bxjsarticle}
%\usepackage{zxjatype}
\usepackage{amsmath,amssymb}
\usepackage{xcolor}
\usepackage{xymtexpdf}
\pagestyle{empty}
\begin{document}
\bzdrh{}
\end{document}

その結果、

ベンゼンのSVGファイルができました。なお、上記のかわりに以下のように変更して、TeX2imgに読み込ませても作れるようです。これなら、(機能面の検証をしたわけではありませんが、)zxjatype.styを完全にコメントアウトせずにすみそうです。

%latex: xelatex
\documentclass[fleqn]{bxjsarticle}
\usepackage[no-math]{zxjatype}
\usepackage{amsmath,amssymb}
\usepackage{xcolor}
\usepackage{xymtexpdf}
\pagestyle{empty}
\begin{document}
\bzdrh{}
\end{document}

サクサク書いてみる。


スポンサーリンク

ようやく、安息香酸メチルの構造式が書けます。以下のように書いてみました。$O$と$CH_{3}$の間の結合はハイフンを3個並べています。

%latex: xelatex
\documentclass[fleqn]{bxjsarticle}
\usepackage[no-math]{zxjatype}
\usepackage{amsmath,amssymb}
\usepackage{xcolor}
\usepackage{xymtexpdf}
\pagestyle{empty}
\begin{document}
\benzeneh{4==%
\rtrigonal{0==C;1==(yl);3D==O;2==O\,—\,CH$_{3}$}}
\end{document}

ベンゼン環のときと同様にTeX2imgの「TeXソースファイルを読み込む」をチェックして上記のファイルを指定してから「画像ファイル生成」ボタンをクリックします。すると、以下のようなファイルができます。

これを、くるくる回転させてみます。

Blenderで3D化する。

以前の本サイトの記事で、ガウス積分の式を3D化したときと同様にBlender(2.78a)の押し出し(extrude)機能を使用して3D化します。

詳細な手順についてはガウス積分の式を3D化したときの記事を参照していただくことにして、本記事では省略しますが、以下のような感じの3D画像を作成できます。

また、ここまでの作業過程を動画にしてみました。詳細な説明はしていませんが、雰囲気はつかめると思います。

ここまでのまとめ。

ここまでの作業で、Blender(2.78a)で3D化するところまで出来ました。あとは一般的なBlenderの使い方で上記の画像を回転させてMP4の動画を作れるところまで行けるのではないかと思ったのですが、実際にやってみるとそこまで一筋縄ではできなさそうな感じなので、記事を改めて書きたいと思います。

本記事は以上です。