你能用 LaTeX 创建化学结构图吗?
“化学结构图”的示例:
答案1
答案是肯定的。实际上有多个包可以做到这一点:
我已经用过所有,除了XyMTeX
和PPCHTeX
我自己,但现在只使用chemfig
任何更多。
XyMTeX
在我看来,它远非直观,所以我从未费心学习它。它也不会定期更新到 CTAN,也不是 TeX Live 的一部分。CTAN 有 v4.06,但最新版本是 v5.00。
ochem
几乎满足了人们的所有需求,但 1) 无法从任何一个主要的免费发行版中获得;2) 该工作是通过一个 Perl 脚本完成的,该脚本将公式和反应方案转换成 PostScript,这意味着它不能与 pdflatex 一起使用。
streeTeX
除了它比较旧之外,它的功能还非常有限,在主要的免费发行版中都不可用,并且不能与 pdflatex 一起使用。
chemfig
是一个相当新且维护良好的软件包,它不仅允许绘制骨架公式,而且还具有创建整个反应方案的命令。它使用蒂克兹用于绘图。
PPCHTeX
是 ConTeXt 的化学模块,但它实际上也可以与 LaTeX 一起使用。我以前从未使用过它,尝试用它来排版下面的例子比我想象的要复杂得多。这就是为什么我只是从文本花园。
因此,如果您想使用 LaTeX 而不是像ChemDraw
我推荐的外部程序那样绘制公式和方案chemfig
。
举个chemfig
例子:
\documentclass{article}
\usepackage{chemfig}
\renewcommand*\printatom[1]{\ensuremath{\mathsf{#1}}}
\begin{document}
\setcrambond{2pt}{}{}
\chemfig{
HO-[2,.5,2]?<[7,.7](-[2,.5]OH)-[,,,,line width=2.4pt](-[6,.5]OH)>[1,.7]
(-[:-65,.7]O-[:65,.7]?[b](-[2,.7]CH_2OH)<[:-60,.707](-[6,.5]OH)
-[,,,,line width=2.4pt](-[2,.5,,2]HO)>[:60,.707](-[6,.5]CH_2OH)-[:162,.9]O?[b])
-[3,.7]O-[4]?(-[2,.3]-[3,.5]HO)}
\setatomsep{2em}
\chemfig{
H_3C-[:72]{\color{blue}N}
*5(-
*6(-(={\color{red}O})-{\color{blue}N}(-CH_3)-(={\color{red}O})-{\color{blue}N}(-CH_3)-=)
--{\color{blue}N}=-)}
\end{document}
一个ochem
例子:
\documentclass{article}
\usepackage{ochem}
\begin{document}
\begin{chemistry}
set("rLenN",20)
formula(L,R)
{
ring(,,H1=)
{
0: bond(r,=C) atom("O") ;
3: atom("N") bond(r) atom("C",C,R) atom("H$_3$",L) ;
4: bond(r,=C) atom("O") ;
5: atom("N") bond(r) atom("CH$_3$",L) ;
vertex(,1,4,H2=,5)
{
1: atom("N") bond(r) atom("C",C,L) atom("H$_3$",R) ;
3: atom("N") ;
} ;
}
}
\end{chemistry}
\end{document}
举个streetex
例子:
\documentclass{article}
\usepackage{stree}
\begin{document}
\sffamily
\stree{0[2N[0{CH$_3$}]4[=2O]6N[4{CH$_3$}]8[=6O]10]/10N=75N[/7{H$_3$C}]/2}
\end{document}
举个XyMTeX
例子:
\documentclass{article}
\usepackage{xymtex}
\let\substfont\sffamily
\begin{document}
\sixheterovi[{f\fivefusev[d]{1==N;4==N}{1S==CH$_3$}{b}}e]
{2==N;4==N}
{1D==O;3D==O;4S==CH$_3$}
\end{document}
一个PPCHTeX
例子
\documentclass{article}
\usepackage{m-pictex}
\usepackage{m-ch-en}% or `m-ch-de' if you like a German interface
\begin{document}
\startchemical
\chemical[FIVE,FRONT,BB125,+SB3,-SB4,Z4][O]
\chemical[FIVE,FRONT,+R1235,+RZ1235][H,H,\SR{HOH_2C},OH]
\chemical[FIVE,FRONT,-R1235,-RZ1235][H,OH,H,H]
\stopchemical
\end{document}
答案2
为了进行合理的比较,希望提供有关 XyMTeX 的更多更新信息,因为前面答案中显示的示例是通过 XyMTeX 的普通模式绘制的(在 LaTeX 的图片环境中提供稍差的打印质量),并且关于 XyMTeX 可用性的评论会给读者留下误导性的印象。
XyMTeX 的最新版本(版本 5.00a)可从 XyMTeX 主页获取(http://xymtex.com/):
http://xymtex.com/fujitas3/xymtex/indexe.html
问题所示的两个结构式可以使用XyMTeX的PostScript兼容模式(以及PDF兼容模式)绘制。
(1)双糖
\documentclass{article}
\usepackage{xymtexps}%PostScript Mode
%\usepackage{xymtexpdf}%PDF Mode
\begin{document}
\changeunitlength{0.08pt}
\utrigonal{0==O;2==%
\furanose{4==(yl);1Sa==CH$_{2}$OH;2Sb==\lmoiety{HO};%
2Sa==H;3Sb==H;3Sa==OH;4Sb==HOC\rlap{H$_{2}$}};%
3==\pyranose{1==(yl);2Sa==OH;3Sb==OH;4Sa==HO;5Sb==CH$_{2}$OH}}
\hskip4cm
\utrigonal{0==O;2==%
\fivesugarh{5==O;%
1s==\WedgeAsSubst(0,0)(-3,-5){120};%
4s==\WedgeAsSubst(0,0)(3,-5){120};%
3s==\PutBondLine(-15,0)(305,0){3.2pt}%
}{4==(yl);1Sa==CH$_{2}$OH;2Sb==\lmoiety{HO};2Sa==H;%
3Sb==H;3Sa==OH;4Sb==HOC\rlap{H$_{2}$}}[abc];%
3==\sixsugarh{6==O;1s==\WedgeAsSubst(0,0)(-3,-5){120};%
4s==\WedgeAsSubst(0,0)(3,-5){120};%
3s==\PutBondLine(-15,0)(305,0){3.2pt}%
}{1==(yl);2Sa==OH;3Sb==OH;4Sa==HO;5Sb==CH$_{2}$OH}[abc]}
\end{document}
(2)咖啡因
\documentclass{article}
\usepackage{xymtexps}%PostScript Mode
%\usepackage{xymtexpdf}%PDF Mode
\usepackage{graphicx}
%\pagestyle{empty}
\begin{document}
\changeunitlength{0.08pt}
\sixheterov[e{e\fivefusev[d]{1==\bluex{N};4==\bluex{N}}{1==CH$_{3}$}{b}}]
{1==\bluex{N};3==\bluex{N}}
{1==CH$_{3}$;3==CH$_{3}$;2D==\redx{O};4D==\redx{O}}
\\ \vskip0.5cm
{%
\let\substfont=\sffamily
\purinev[aj]{3==CH$_{3}$;%
4D==\addbscolor{\green}{\redx{O}};5==CH$_{3}$;%
6D==\addbscolor{\green}{\redx{O}};7==CH$_{3}$}
\quad
\def\grayx#1{\xymcolor{gray}{#1}}
\nonaheterov[aj]{1==\bluex{N};3==\bluex{N};5==\bluex{N};7==\bluex{N}}%
{3==\addbscolor{\red}{\grayx{CH$_{3}$}};%
4D==\addbscolor{\green}{\redx{O}};5==\addbscolor{\red}{\grayx{CH$_{3}$}};%
6D==\addbscolor{\green}{\redx{O}};7==\addbscolor{\red}{\grayx{CH$_{3}$}}}
}
\end{document}
欲了解更多信息,请参阅 XyMTeX 主页中的 XyMTeX-tips (http://xymtex.com/):
http://xymtex.com/fujitas3/xymtex-tips/indexe.html
本主题已保存为130208a-ps.pdf,130208b-ps.pdf等。
作为有机化学书籍的出版工具,XyMTeX-LaTeX组合已用于出版以下书籍:
S.藤田,“摄影有机化学”,Springer-Verlag(2004),
其中所有结构式(480张插图)均使用XyMTeX绘制。