绘制原子轨道并将其整合到 ChemFig 结构中的简便方法

绘制原子轨道并将其整合到 ChemFig 结构中的简便方法

我正在寻找一种方法,通过 chemfig 将分子绘制为骨架结构,并在其中包含一些原子轨道(即 s、p 和 d 轨道以及一些 sp 杂化轨道)(在 chemfig 放置原子标签的位置,即键的末端)。我给你举个例子:

在此处输入图片描述

不同轨道所需的形状基本上可以归结为以下几点

在此处输入图片描述

然后可以通过旋转和缩放这些轨道来实现正确的外观。理想情况下,这应该使用一个简单的命令,该命令指示chemfig在原子位置插入某种类型(即 s、p、d、...)的轨道,以及如何旋转、缩放或着色该轨道以及它应该具有哪个相位。这可行吗?或者是否有提供此类功能的软件包?

答案1

chemmacros软件包提供 s、p 和 sp 杂化轨道(基于 TikZ),d 轨道缺失(目前)。以下是文档中的示例:

\documentclass{article}
\usepackage{chemfig,chemmacros}

\begin{document}

 \setbondoffset{0pt}
 \chemsetup[orbital]{
   overlay ,
   opacity = .75 ,
   p/scale = 1.6 ,
   s/color = blue!50 ,
   s/scale = 1.6
 }
 \chemfig{\orbital{s}-[:-20]{\orbital[scale=2]{p}}{\orbital[half,angle=0]{p}}{\orbital[angle=170,half]{p}}{\orbital[angle=-150,half]{p}}(-[:-150]\orbital{s})-\orbital{s}}

\end{document}

在此处输入图片描述

\documentclass{article}
\usepackage{chemfig,chemmacros}

\begin{document}

 \chemsetup[orbital]{
   overlay,
   p/color = black!70
 }
 \setbondoffset{0pt}
 \chemfig{?\orbital{p}-[,1.3]{\orbital[phase=-]{p}}-[:30,1.1]\orbital{p}-[:150,.9]{\orbital[phase=-]{p}}-[4,1.3]\orbital{p}-[:-150,1.1]{\orbital[phase=-]{p}}?}

\end{document}

在此处输入图片描述

答案2

关于 dz2 轨道问题,我找到了使用 tikz 的穷人解决方案(我无法让球阴影更亮,就像在 chemmacros 中一样。我不是乳胶专家,只是收集其他人的东西。希望能有更好的结果):

\documentclass{standalone}

% tikz packages
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.15}
\usetikzlibrary{shapes}

% chemistry packages
\usepackage{chemfig,chemmacros}
\usechemmodule{all}
\chemsetup[orbital]{
   overlay,
   p/color = black!70
 }

% defining orbitals in boxes to put chemfig inside tikz environment
\newsavebox\UpBox
\sbox\UpBox{\orbital[half,angle=90,scale=3]{p}}
\newsavebox\DownBox
\sbox\DownBox{\orbital[half,angle=270,scale=3]{p}}

\begin{document}

\begin{tikzpicture}

%back axis
\draw[dashed] (0,0) -- (-2,0) node[anchor=north west] {};
\draw[dashed] (0,0) -- (0,-2.5) node[anchor=south east] {};
\draw[dashed] (0,0) -- (1.5,1.5) node[anchor=north west] {};


% orbital p (half) down
\draw (0,0) node {\usebox\DownBox};

% drawing simple torus
\fill[ball color=white] (0,0) ellipse (1 and .55);
\begin{scope}
  \clip (0,-.9) ellipse (1 and 1.1);
  \path[draw](0,1.1) ellipse (1 and 1.1);
\end{scope}

% orbital p (half) up
\draw (0,0) node {\usebox\UpBox};

%front axis
\draw[thick,->] (.85,0) -- (2,0) node[anchor=north west] {$x$};
\draw[thick,->] (0,1.4) -- (0,2.5) node[anchor=south east] {$z$};
\draw[thick,->] (-.4,-.4) -- (-1.5,-1.5) node[anchor=north west] {$y$};

\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容