Como desenhar diagramas de níveis rotacionais em LaTeX?

Como desenhar diagramas de níveis rotacionais em LaTeX?

A linda imagem abaixo representa a relação entre o número quânticoJ.e um parâmetro interessante - o parâmetro de assimetria de raios -, que relaciona os momentos de inércia tridimensionais de uma determinada molécula. Em outras palavras, para o mesmo tipo de transição rotacional, como a energia muda com oformada molécula, à medida que ela passa de um prolato (formato de bola de rugby) para um esferóide e, finalmente, para um achatado (formato semelhante a um frisbee).

Estou tentando retratá-lo em LaTeX, mas não consigo obter os rótulos corretamente. qualquer ideia seria muito apreciada!

Abaixo você encontrará meu MWE (inspirado no link postado por putianyi888)

\documentclass[tikz]{standalone}
\usetikzlibrary{shapes.callouts}
\tikzset{
    level/.style = {
        ultra thick,
        blue,
    },
    connect/.style = {
        dashed,
        red
    },
    notice/.style = {
        draw,
        rectangle callout,
        callout relative pointer={#1}
    },
    label/.style = {
        text width=2cm
    }
}
\begin{document}
    \begin{tikzpicture}



\draw[level](2,0) -- node[above] {left} (3,0); \draw[connect](3,0) -- (7,0); \draw[level](7,0) -- (8,0);

\draw[level](2,2) -- (3,2); \draw[connect](3,2) -- node[below](7,3); \draw[level](7,3) -- (8,3); \draw[connect](3,2) -- (7,1); \draw[level](7,1) -- (8,1);


\end{tikzpicture}
\end{document}

Responder1

Você pode colocar nós dentro das \drawmacros e deslocá-los para a esquerda ou direita. Dessa forma, você pode alinhar corretamente os nós. Assim, por exemplo:

\documentclass[tikz]{standalone}
\tikzset{
    level/.style = {
        ultra thick,
        blue,
    },
    connect/.style = {
        dashed,
        red
    },
    label/.style = {
        align=center,
        text width=3em,
        text depth=0pt, 
    },
    labela/.style = {
        label,
        xshift=-2.5em
    },
    labelb/.style = {
        labela,
        xshift=1.5em
    },
    labelc/.style = {
        label,
        xshift=1.25em
    },
    labeld/.style = {
        label,
        xshift=1em
    },
    labele/.style = {
        labeld,
        xshift=1.5em
    }
}

\begin{document}
\begin{tikzpicture}

\draw[level](2,0) node[labela] {$3$} node[labelb] {$2$} -- ++(1,0); 
\draw[level](2,2) node[labela] {$3$} node[labelb] {$3$} -- ++(1,0); 

\draw[level](7,0) -- ++(1,0) node[labelc] {$3_{21}$} ;
\draw[level](7,3) -- ++(1,0) node[labelc] {$3_{30}$} ; 
\draw[level](7,1) -- ++(1,0) node[labelc] {$3_{31}$} ;

\draw[level](12,4) -- ++(1,0) node[labeld] {$3$} node[labele] {$0$} ;
\draw[level](12,3) -- ++(1,0) node[labeld] {$3$} node[labele] {$1$} ;

\draw[connect](3,0) -- (7,0); 
\draw[connect](3,2) -- (7,3); 
\draw[connect](3,2) -- (7,1); 
\draw[connect](8,3) -- (12,4); 
\draw[connect](8,1) -- (12,3); 
\draw[connect](8,0) -- (12,3); 

\node[labela] at (2,-1) {$J$};
\node[labelb] at (2,-1) {$K_{a}$};
\node[labelc] at (8,-1) {$J_{K_{a}K_{c}}$};
\node[labeld] at (13,-1) {$J$};
\node[labele] at (13,-1) {$K_{c}$};

\node at (2.5,-1.5) {$(a)$};
\node at (7.5,-1.5) {$(b)$};
\node at (12.5,-1.5) {$(c)$};

\end{tikzpicture}
\end{document}

Resultado:

insira a descrição da imagem aqui

Responder2

Você verificou este tópico?Diagramas de nível de energia com TeX

Não tenho reputação suficiente para comentar, então coloquei isso como minha resposta.

informação relacionada