¿Cómo dibujar diagramas de niveles rotacionales en LaTeX?

¿Cómo dibujar diagramas de niveles rotacionales en LaTeX?

La hermosa imagen a continuación representa la relación entre el número cuánticojy un parámetro interesante, el parámetro de asimetría de rayos, que relaciona los momentos de inercia tridimensionales de una molécula determinada. En otras palabras, para el mismo tipo de transición rotacional, ¿cómo cambia la energía con laformade la molécula, a medida que pasa de ser alargada (forma de pelota de rugby) a esferoide y finalmente a achatada (forma parecida a un disco volador).

Estoy intentando representarlo en LaTeX pero no puedo obtener las etiquetas correctamente. ¡Cualquier idea sería muy apreciada!

A continuación encontrará mi MWE (inspirado en el enlace publicado 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}

Respuesta1

Puede colocar nodos dentro de las \drawmacros y desplazarlos hacia la izquierda o hacia la derecha. De esta manera, podrá alinear correctamente los nodos. Así, por ejemplo:

\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:

ingrese la descripción de la imagen aquí

Respuesta2

¿Has revisado este hilo?Diagramas de niveles de energía con TeX

No tengo suficiente reputación para comentar, así que lo pongo como respuesta.

información relacionada