模态图参考定位

模态图参考定位

我最近发现了 modiagram 包,它很有帮助,问题是它只支持最多“p”个轨道,而我需要“d”,我设法通过移动 \AO 来做到这一点,问题是不断思考试图管理正确的分离和一切是令人筋疲力尽的,所以我想起了 tikz 如何使用定位库来设置节点的相对位置,有没有办法让我们将 \AO 设置为 d 轨道,通过相互参考来引用第一个和其余轨道的位置?

这是一个具体的例子:

% before begin document:
% 
% \usepackage{modiagram}        % Molecular orbital diagram
% \setmodiagram{names, labels, labels-fs=\tiny, AO-width=6mm}

\begin{modiagram}

    
    % left
    \AO( 5.0mm){s}[label=$x^2$-$y^2$]       { 0; }
    \AO(12.5mm){s}[label=$yz\phantom{^0}$]  { 0; }
    \AO(20.0mm){s}[label=$z^2$]             { 0; }
    \AO(27.5mm){s}[label=$xz\phantom{^0}$]  { 0; }
    \AO(35.0mm){s}[label=$xy\phantom{^0}$]  { 0; }
    
    \node at (20.0mm, -1) 
    {\tiny Ausencia de campo exterior};
    
    % middle    
    \AO(50.0mm){s}{1; }
    \AO(57.5mm){s}{1; }
    \AO(65.0mm){s}{1; }
    \AO(72.5mm){s}{1; }
    \AO(80.0mm){s}{1; }
    
    \node at (65.0mm,-1)
    {\tiny Campo Esférico};
    
    % right below
    \AO( 95.0mm){s}[label=$yz$]{ .4; }
    \AO(102.5mm){s}[label=$xz$]{ .4; }
    \AO(110.0mm){s}[label=$xy$]{ .4; }
    
    % right above
    \AO(102.5mm){s}[label=$x^2$-$y^2$]  {1.6; }
    \AO(110.0mm){s}[label=$z^2$]        {1.6; }
    
    \node at (102.5mm, -1) 
    {\tiny Campo Octaédrico};
    
    \draw[<->] 
    (90mm,1.6)
    -- node[left]{\tiny $0.6\,\Delta_{\text{oct}}$} 
    (90mm,1.0);
    
    \draw[<->]
    (90mm,1.0)
    -- node[left]{\tiny $0.4\,\Delta_{\text{oct}}$}
    (90mm,0.4);
    
    \draw[<->]
    (120mm,1.6) node[left]{\tiny e\textsubscript{g}}
    -- node[right]{\tiny $\Delta_{\text{oct}}$}
    (120mm,0.4) node[left]{\tiny t\textsubscript{2g}};
    
    \connect{AO5 & AO6, AO10 & AO11, AO10 & AO14}
    
    \EnergyAxis
    \node at (0,1)[above, rotate=90]{\tiny Energia};

\end{modiagram}

我想要的是这样的

\begin{modiagram}
%[names, labels, labels-fs=\tiny, AO-width=6mm]
    
    % left
    \AO( 5.0mm){s}[label=$x^2$-$y^2$]               { 0; }
    \AO(right=of AO1){s}[label=$yz\phantom{^0}$]    { 0; }
    \AO(right=of AO2){s}[label=$z^2$]               { 0; }
    \AO(right=of AO3){s}[label=$xz\phantom{^0}$]    { 0; }
    \AO(right=of AO4){s}[label=$xy\phantom{^0}$]    { 0; }
.
.
.
.

关于如何做类似的事情有什么建议吗?

相关内容