对齐问题

对齐问题

我有以下 tikz 代码:

\schemestart
  \chemname{\chemfig[][scale=0.6]{
    *6(-=(-\lewis{6,O}-[:30]*6(-(=\lewis{57,O})(-[90,0.25,,,draw=none]@{a1}S)-\lewis{26,O}*6(--)))-=-*6(-(=\lewis{13,O})-(*6(-=-=-=)))=)
  }}{
    2-(4-benzoylphenoxy)essigsäure Ethylesther
  }
  \chemfig{
    \chemsign{+}
@{a0}\vphantom{K}\chemabove{K}{\hspace{5mm}\scriptstyle\oplus}
\hspace{4mm}
\chemabove{OH}{\hspace{-7mm}\scriptstyle\ominus}
  }
  \chemmove[-stealth,red,shorten <=3pt]{
    \draw(a0)..controls+(up:10mm)and+(north west:10mm)..(a1.north);}
  \arrow
  \arrow(@c1--){0}[-90,0.333] % Line break!
  \chemname{\chemfig[][scale=0.6]{
    *6(-=(-O-[:30]*6(-(-[:330]\Lewis{15,O}-[:330]-[:30]O)(-[:210]\Lewis{357,O})-OH))-=-*6(-(=O)-(*6(-=-=-=)))=)
  }}{
    2-(4-benzoylphenoxy)essigsäure
  }
  \chemfig{
    \chemsign{+}
\chemabove{K}{\hspace{5mm}\scriptstyle\oplus}\hspace{4mm}
\chemsign{+}
H_2O
  }
  \arrow
\schemestop

得到如下图像:

在此处输入图片描述

很容易看出添加的 K^(+) 和 (+)^OH 排列不正确。我试过了,\vphantom{K}但似乎不起作用。

还有一个奇怪的事情是红色箭头。在我的原始文档中,它没有指向正确的位置,但使用独立程序生成此图像时,箭头位置正确。这是什么原因造成的?

在此处输入图片描述

答案1

我通常不在“环境”中使用\chemnameand 。(但这可能是个人喜好)。相反,我经常使用长度为零的不可见箭头来划分化合物。此外,我会选择比默认的, ,... 更有意义的节点名称。这样,当您引用化合物时,更容易看到您实际上指的是哪一个,并且自动名称是否因整个方案的更改而更改并不重要。\chemsign\schemestart \schemestopc1c2

因为我也不喜欢\oplus\ominus所以我会用(我自己的)正式费用chemmacros它为它们提供宏,例如 \fplus\fminus。当您尝试输入离子(尤其是具有形式电荷的离子)时,其\ch宏还允许更简单的语法。

总而言之,我会做这样的事情(在使用代码时,我改变了骨架公式中的细节,但懒得再撤消它们......):

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{chemfig}
% formal charges and other stuff like the \ch{} macro:
\usepackage{chemmacros}

\begin{document}

% turn all of chemmacros' charges into formal ones,
% i.e. also the ones set with \ch{}:
\chemsetup{option/circled=all}

% the scheme:
\schemestart
  \setatomsep{1.8em}
  \chemfig{
    *6(
      -=(
        -\lewis{26,O}-[:30]*6(
          -(=\lewis{57,O})-[@{a1,0}]\lewis{26,O}*6(--)
        )
      )-=-*6(-(=\lewis{13,O})-(*6(-=-=-=)))=
    )
  }
    %
  \arrow(ester.-5--){0}[,0]
  \ch{+ K+}%
  \chemfig{
    @{a0}{\ch{^-OH}}
  }
  \chemmove[-stealth,red,shorten <=1pt, shorten >=3pt]{
    \draw(a0)..controls+(up:10mm)and+(up:10mm)..(a1.north);}
  \arrow
  \arrow(@ester--estername){0}[-90,.2] longuncomprehensiveiupacname
  \arrow(@estername--saeure){0}[-90,0.333] % Line break!
  \setatomsep{1.8em}
  \chemfig{
    *6(
      -=(
        -O-[:30]*6(
          -(-[:330]\lewis{15,O}-[:330]-[:30])(-[:210]\chembelow[1.5ex]{\lewis{357,O}}{\fscrm})-OH
        )
      )-=-*6(-(=O)-(*6(-=-=-=)))=
    )
  }   
  \arrow(.-6--){0}[,0]
  \ch{+ K+}
  \arrow
  \arrow(@saeure--){0}[-90,.2] longuncomprehensiveiupacname
\schemestop

\end{document}

在此处输入图片描述

相关内容