电子配置图

电子配置图

我看过一些关于相关电子配置的其他帖子,但没有一个符合我的要求。我对很多 LaTeX 都很熟悉,但对于使用 TikZ 之类的东西,我确信这就是我在这里所需要的。

我想要创建以下图像:

电子排布图

我并不总是需要同时创建“2s”和“2p”部分。理想情况下,将其包装在一个函数中,因为我需要创建许多这样的图像。

\electron{2s}{1}{{1,-1}}

这将是{label}{number of lines}{{array of electrons}}- 数组中的位置(我不确定这有多么容易实现),我可以提供所需的箭头。1是一个向上箭头,0没有箭头,-1是一个向下箭头(仅作为示例)。

2p 将被绘制为:

\electron{2p}{3}{{1,0},{1,0},{1,0}}

然后,如果需要的话,我可以将它们串在一起,定义它们之间的空间:

\electron{}{}{}$\qquad$\electron{}{}{}

或类似的东西

由于我不知道实际要使用的 TikZ,所以我认为至少应该提供伪代码/标记来显示我认为会发生什么:

\newcommand{\electron}[3]{
    \newcounter{lines}
    \forloop{lines}{0}{\value{lines} < #2}{
        draw line
        if array[\value{lines}][0] = -1; draw down line %first entry
        if array[\value{lines}][0] = 1; draw up line %first entry
        if array[\value{lines}][1] = -1; draw down line %second entry
        if array[\value{lines}][1] = 1; draw up line %second entry
    }
    %place text of #1 cenetered under created lines
 }

答案1

我认为你不需要 TikZ 来实现这一点。下面是仅使用制表符和下划线的实现:

\documentclass{standalone}
\usepackage{amssymb} % for harpoons
\newcommand{\electron}[2]{{%
  \def\+{\underline{\upharpoonleft}}%
  \def\-{\underline{\downharpoonright}}%
  \def\0{\underline{\phantom{\downharpoonright}}}%
  \setlength\tabcolsep{0pt}% remove extra horizontal space from tabular
  \begin{tabular}{c}$#2$\\[2pt]#1\end{tabular}%
}}
\begin{document}
  \electron{2s}{\+\-}\quad \electron{2p}{\+\0\ \+\0\ \0\0}
\end{document}

电子

如果您希望命令在数学模式而不是文本模式下工作,只需从 的定义中删除美元符号\electron,替换tabulararray,然后替换\tabcolsep\arraycolsep

你甚至可以安排只使用+-0代替\+\-,和\0,但那是更复杂

答案2

我知道答案已被接受,但这是一个使用该modiagram包的非常简单的示例,不需要任何新内容。我将其作为答案发布,因为我不知道如何在评论中放入代码!我稍后会仔细阅读。

JM 说 MO 与我之前评论中要求的不同,但 MO 是由 AO 制成的,因此如果我们省去 MO 部分,我们就有了必要的零件。AO 之间的距离可以调整,请参阅用户modiagram手册第 4.1.2 节。

\documentclass{standalone}
\usepackage{modiagram}
\begin{document}
\begin{MOdiagram}[names]
\atom[2s]{left}{2s={0;pair}} \atom[2p]{right}{2p={0;up,up,up}}
\end{MOdiagram}
\end{document}

给出以下内容:

在此处输入图片描述

答案3

困难的部分是以好的方式分割输入:

\documentclass{article}
\usepackage{amssymb}
\usepackage{xparse}

\ExplSyntaxOn
\NewDocumentCommand{\electron}{mm}
 { % #1 = level, #2 = electron schemes
  \jm_electron:nn { #1 } { #2 }
 }

\seq_new:N \l_jm_electron_schemes_seq
\seq_new:N \l__jm_electron_schemes_print_seq

\cs_new_protected:Nn \jm_electron:nn
 {
  \seq_clear:N \l__jm_electron_schemes_print_seq
  \seq_set_split:Nnn \l_jm_electron_schemes_seq { | } { #2 }
  \seq_map_function:NN \l_jm_electron_schemes_seq \__jm_electron_do_scheme:n
  % print the schemes
  \group_begin:
  \setlength{\tabcolsep}{.2em}
  \begin{tabular}{ * { \seq_count:N \l_jm_electron_schemes_seq } { c } }
  \seq_use:Nn \l__jm_electron_schemes_print_seq { & } \\
  \multicolumn { \seq_count:N \l_jm_electron_schemes_seq } { c } { #1 }
  \end{tabular}
  \group_end:
 }

\cs_new_protected:Nn \__jm_electron_do_scheme:n
 {
  \seq_put_right:Nn \l__jm_electron_schemes_print_seq
   {
    \underline
     {
      \clist_map_inline:nn { #1 }
       {
        \int_case:nn { ##1 }
         {
          {1}{$\scriptstyle\upharpoonleft$}
          {0}{\phantom{$\scriptstyle\upharpoonleft$}}
          {-1}{$\scriptstyle\downharpoonright$}
         }
       }
     }
   }
 }
\ExplSyntaxOff

\begin{document}

\electron{2s}{1,-1}\quad\electron{2p}{1,0 | 1,0 | 1,0}

\end{document}

第二个参数在 处拆分|;然后每个项目根据它们被10或表示而形成一对箭头-1

构建一个tabular具有适当列数的 ,其中每个单元格的内容都用箭头和下划线构建。

在此处输入图片描述

相关内容