![当我使用附近的原子时轨道发生偏移](https://linux22.com/image/332319/%E5%BD%93%E6%88%91%E4%BD%BF%E7%94%A8%E9%99%84%E8%BF%91%E7%9A%84%E5%8E%9F%E5%AD%90%E6%97%B6%E8%BD%A8%E9%81%93%E5%8F%91%E7%94%9F%E5%81%8F%E7%A7%BB.png)
我正在画一些轨道,我注意到当轨道附近有一个原子时,轨道会向下移动一点(非常丑陋)。
只有当我把氢放在公式的开头时,才会发生这种情况
\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}
.....