在化学结构上绘制原子轨道

在化学结构上绘制原子轨道

有没有办法在结构中绘制原子轨道chemfig?我想如果你看到我想要得到的,你就能更好地理解:不同双自由基结构之间的共振:值得注意的是,一个自由基中心是 sigma,另一个是 pi

以下是我已完成的工作。如有任何改进,我将不胜感激。

\documentclass[a4paper,12pt,twoside,openright,titlepage]{book}
\usepackage{chemfig,chemmacros,chemnum,modiagram}
    \usepackage[version=3]{mhchem}
        \makeatletter
        \def\CF@node@content{%
            \expandafter\expandafter\expandafter
                \printatom\expandafter\expandafter\expandafter
                {\csname atom@\number\CF@cnt@atomnumber\endcsname}%
                \ensuremath{\CF@node@strut}%
            }
        \makeatother
        \chemsetup[chemformula]{format=\sffamily}
        %\renewcommand*\printatom[1]{\ensuremath{\mathsf{#1}}}
        \renewcommand*{\printatom}[1]{{\sffamily\cf{#1}}}
        \setdoublesep{0.32500 em}  % 'Bond Spacing'
        \setatomsep{1.78500 em}    % 'Fixed Length'
        \setbondoffset{0.18265 em} % 'Margin Width'
        \newcommand{\bondwidth}{0.06642 em} % 'Line Width'
        \setbondstyle{line width = \bondwidth}

\begin{document}
\schemestart
\setbondoffset{0pt}
 \chemsetup[orbital]{
   overlay ,
   opacity = 0.5 ,
   p/scale = 1.25 ,
   s/color = gray!50 ,
   s/scale = 1.25
 }
 \chemfig{*6(-=(-(-[,.2,,,draw=none]\Lewis{0.,}\orbital{s}))-=(-[,.4,,,draw=none]\Lewis{0.,}{\orbital[half,angle=90]{p}})-=-)}
\arrow
\setbondoffset{0pt}
 \chemsetup[orbital]{
   overlay ,
   opacity = 0.5 ,
   p/scale = 1.25 ,
   s/color = gray!50 ,
   s/scale = 1.25
 }
\chemfig{[:-60]*6(-=-(=)-(-[,.0,,,draw=none]\Lewis{0.,}\orbital{s})-(-[,.4,,,draw=none]\Lewis{0.,}{\orbital[half,angle=90]{p}})=)}
\arrow
\setbondoffset{0pt}
 \chemsetup[orbital]{
   overlay ,
   opacity = 0.5 ,
   p/scale = 1.25 ,
   s/color = gray!50 ,
   s/scale = 1.25
 }
\chemfig{*6(-=(-\orbital{s})-=-=)}
\schemestop

\end{document}

答案1

最终结果,相当满意:

\documentclass{article}
\usepackage[T1]{fontenc}
    \usepackage[english,italian]{babel}
    \usepackage{graphicx}
    \usepackage{chemfig,chemmacros,modiagram}
    \usepackage[version=3]{mhchem}
        \makeatletter
        \def\CF@node@content{%
            \expandafter\expandafter\expandafter
                \printatom\expandafter\expandafter\expandafter
                {\csname atom@\number\CF@cnt@atomnumber\endcsname}%
                \ensuremath{\CF@node@strut}%
            }
        \makeatother
        \chemsetup[chemformula]{format=\sffamily}
        \renewcommand*{\printatom}[1]{{\sffamily\cf{#1}}}
        \setdoublesep{0.32500 em} 
        \setatomsep{1.78500 em}    
        \setbondoffset{0.18265 em} 
        \newcommand{\bondwidth}{0.06642 em} 
        \setbondstyle{line width = \bondwidth}

\begin{document}
\begin{figure}\centerline{
\schemestart
\chemsetup[orbital]{
  overlay,
  opacity=.4,
  p/scale=1.5,
  p/half,
  s/scale=1.3
}
\chemname{\chemfig[][scale=0.75]{*6(-=(-(-[,.2,,,draw=none]\Lewis{0.,}\orbital{s}))-=(-[-2,0.001,,,draw=none]{{\orbital{p}}})(-[2,.4,,,draw=none]\lewis{2.,})-=)}}{{\footnotesize A'': \textsigma\ap{1},\textpi\ap{1}}}
\arrow{<->}
\chemsetup[orbital]{
  overlay,
  opacity=.4,
  p/scale=1.5,
  p/half,
  s/scale=1.3
}
\chemname{\chemfig[][scale=0.75]{[:-60]*6(-=-(=)-(-[-2,0.001,,,draw=none]{{\orbital{s}}})(-[0,.1,,,draw=none]\lewis{2.,})-(-[-2,0.001,,,draw=none]{{\orbital{p}}})(-[2,.4,,,draw=none]\lewis{2.,})=)}}{{\footnotesize A'': \textsigma\ap{1},\textpi\ap{1}}}
\arrow{<->}
\chemsetup[orbital]{
  overlay,
  opacity=.4,
  p/scale=1.5,
  p/half,
  s/scale=1.3
}
\chemname{\chemfig[][scale=0.75]{*6(-=(-\orbital{s})-=(-[-2,0.001,,,draw=none]{{\orbital{p}}})(-[2,.6,,,draw=none]\lewis{2.,})(-[2,.4,,,draw=none]\lewis{2.,})-=)}}{{\footnotesize A': \textsigma\ap{2},\textpi\ap{0}}}
\schemestop
}
\end{figure}\end{document}

在此处输入图片描述

相关内容