你能用 LaTeX 制作化学结构图吗?

你能用 LaTeX 制作化学结构图吗?

你能用 LaTeX 创建化学结构图吗?

“化学结构图”的示例:

示例 1

示例 2

答案1

答案是肯定的。实际上有多个包可以做到这一点:

我已经用过所有,除了XyMTeXPPCHTeX我自己,但现在只使用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}

chemfig 演示

一个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}

ochem 演示

举个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}

streetex 演示

举个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}

XyMTeX 演示

一个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}

PPCHTeX 演示

答案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绘制。

相关内容