当我使用附近的原子时轨道发生偏移

当我使用附近的原子时轨道发生偏移

我正在画一些轨道,我注意到当轨道附近有一个原子时,轨道会向下移动一点(非常丑陋)。

只有当我把氢放在公式的开头时,才会发生这种情况

\documentclass[preview]{standalone}
\usepackage{chemmacros}
\usepackage{chemfig}
\chemsetup{modules=orbital}
\chemsetup[orbital]{overlay,opacity=.75}
\begin{document}
\chemfig{H-[:65]{\orbital{s}}-[:0]-[:65]H}
\end{document}

轨道不对齐

如果你使用

\chemfig{-[:65]{\orbital{s}}-[:0]-[:65]H}

轨道完全对齐。

轨道对齐

答案1

我非常确定这个问题是由于包装的垂直放置机制引起的chemfig

具体来说,chemfig手册(v1.2d,2015 年 12 月 1 日,目前最新版本)明确指出

[...] 到达原子的垂直位置取决于出发原子的高度。 [...] ChemFig 将出发原子的高度添加到每个到达原子\vphantom[...]
(第 III 章,第 4 节,第 27 页)

这解释了两个公式的不同之处:在第一个例子中,第一个将其高度传递给下一个原子,从而导致垂直偏移。(注意左侧轨道原子上H红色的非零高度)fbox

演示图像

为了解决这个问题,chemfig提供了\chemskipalign宏,它可以禁用对齐机制并允许轨道正确对齐,就像在正确的分子上一样(另见第 III 章,第 4 节,第 27/28 页):

\documentclass{standalone}
\usepackage{chemmacros}
\usepackage{chemfig}
\usepackage{xcolor} % colors for fboxes
\chemsetup{modules=orbital}
\chemsetup[orbital]{overlay,opacity=.75}

\begin{document}
    \fboxsep=0pt % fboxes
    \renewcommand*\printatom[1] % fboxes
    {\color{red}\fbox{\color{black}\ensuremath{\mathrm{#1}}}} % fboxes
    \chemfig{H-[:65]{\orbital{s}}-[:0]-[:65]H} % bad
    \quad
    \chemfig{-[:65]{\orbital{s}}-[:0]-[:65]H}
    \quad
    \chemfig{H-[:65]\chemskipalign{\orbital{s}}-[:0]-[:65]H} % good, added \chemskipalign
\end{document}

答案2

尝试这个:

\documentclass[preview]{standalone}
\usepackage{chemmacros}
\usepackage{chemfig}
\chemsetup{modules=orbital}
\chemsetup[orbital]{overlay,opacity=.75}
\begin{document}
\chemfig{H-[:65]({\orbital{s}})-[:0]-[:65]H}
\end{document}

我将“{\orbital{s}”放入 ( ) 中

在此处输入图片描述

为了对债券有更多的“控制”,并将“某些东西”放入轨道,请尝试:

....
\chemfig{H-[:65,,,,,shorten >=4pt]({\orbital{s}})(H)-[:0,,,,,shorten <=3pt]-[:65]H}
.....

在此处输入图片描述

相关内容