Skip to content

Instantly share code, notes, and snippets.

@aminophen
Last active August 29, 2015 14:13
Show Gist options
  • Save aminophen/27cebafdbbf2343d6b84 to your computer and use it in GitHub Desktop.
Save aminophen/27cebafdbbf2343d6b84 to your computer and use it in GitHub Desktop.
ケクレンの化学構造式を LaTeX 文書中に挿入する http://acetaminophen.hatenablog.com/entry/2015/01/07/232254
\documentclass[12pt]{jsarticle}
\usepackage{xymtex} % for xymtex
\usepackage[dvipdfmx]{graphicx} % for chemfig and chemobabel
\usepackage{chemfig}
\usepackage{chemobabel}
\begin{document}
自作パッケージ \textsf{chemobabel} による出力。
1つ目は \verb|\chemobabel| コマンドにより MDL Molfile から変換(Marvin Sketch で描画)したもので、2つ目は ChemSpider に例示されている SMILES 記法から変換。
\begin{figure}[htbp]
\centering
\chemobabel[scale=0.5]{Kekulene.mol}{} \\
\begingroup
\catcode`\~=0
\catcode`\%=11
\catcode`\\=11
~smilesobabel[scale=0.5]{c1cc2cc3ccc4cc5ccc6cc7ccc8cc9ccc%10cc%11ccc%12cc1c1c2cc3c4cc5c6cc7c8cc9c%10cc%11c%12c1}{}
~endgroup
\end{figure}
\clearpage
\XyMTeX による出力。
\begin{picture}(2000,1800)\put(280,1050){%
\sixheterov[fb{b\sixfusev[ac{b\sixfusev[ac{c\sixfusev[bd{c%
\sixfusev[bd{d\sixfusev[ce{d\sixfusev[ce{e\sixfusev[df{e%
\sixfusev[df{f\sixfusev[ae{f\sixfusev[ae{a\sixfusev[fb]{}{}{D}}]{}{}{C}}]{}{}{C}}]{}{}{B}%
}]{}{}{B}}]{}{}{A}}]{}{}{A}}]{}{}{F}}]{}{}{F}}]{}{}{E}}]{}{}{E}}]{}{}[D]%
}\end{picture}
\textsf{chemfig} による出力(ソースは doraTeX さんのものを借用)。
\begin{picture}(1500,1350)\put(91,700){%
\setatomsep{1.5em}
\chemfig{[:60]*6(=-(*6(-(*6(-=(*6(-(*6(-=(*6(-(*6(-=(*6(-(*6(=-(*6(-(*6(=-(*6(---=-))=-=))--=-))=-=))--=-))-=-=))--=-))-=-=))--=-))-=-))=-=-))=-=-)}%
}\end{picture}
\end{document}
@aminophen
Copy link
Author

ちなみに chemobabel.sty は「xparse を利用すれば verbatim な引数を扱える」ように改良できるが…

  • \smilesobabel コマンドは非推奨(SMILES 記法は一般にあまり用いられない、変換結果が時に不自然)
  • xparse パッケージは内部で expl3 などの LaTeX3 のパッケージを読むが、環境によっては使えない

という事情を考慮し、chemobabel パッケージの目玉である ChemDraw ファイル等からの変換を古い TeX 環境で犠牲にしないためにも改訂は行っていない。現在ドキュメントで \chemobabel コマンドを推奨する旨を明記する改訂作業中。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment