I want to draw energy diagram involving transitions in latex. I want to draw the following diagram.enter image description here

I know it is possible to draw it element by element using tikz. But still I am interested to know is there any method to draw it with minimal effort.

  • 1
    What you try so far?
    – Zarko
    Jan 24 at 7:04
  • I don't know a specialized package for this, so tikz might be the minimal effort way. If you need help with some step there, show us a what you've got in a minimal working example (MWE).
    – dexteritas
    Jan 24 at 8:08
  • 1
    There is the TikZ based package endiagram that was developed for drawing these energy diagrams. But I am not sure if it can be used to draw exactly this figure. I could give it a shot and post the result when I succeed ... ;-P
    – alchemist
    Jan 24 at 8:47
  • 1
    You say that you know that it is possible to draw it "element by element". Maybe you can show us how what you mean with that exactly by providing some code. This way, it will be easier to come up with solutions that are shorter or more elegant or simpler ... Jan 24 at 9:45

1 Answer 1


Well, unfortunately endiagram won't work in this case, so I revered to using TikZ. The code below is based on using LuaLaTeX / XeLaTeX as compiler. You can change the fonts loaded according to your compiler, say \usepackage{gfsartemisia} when using PDFLaTeX.

The code that will give you your diagram looks like this:



\usepackage[sans-style=upright]{unicode-math} % automatically loads fontspec package
\defaultfontfeatures{Scale = MatchLowercase}
    Extension = .otf,
    UprightFont = *,
    ItalicFont = *It,
    BoldFont = *Bold,
    BoldItalicFont = *BoldIt]

    Extension = .otf,
    UprightFont = *-Regular,
    ItalicFont = *-Italic,
    BoldFont = *-Bold,
    BoldItalicFont = *-BoldItalic]






    %== drawing the levels
    \draw[very thick,black,-{Stealth[length=3mm]}] (0.5,0) --(0.5,6);
    \draw[very thick,blue] (0,0) -- (4,0) node(t1) [align=left,xshift=7mm] {1 ($\tau_1$)};
    \draw[very thick,blue] (0,6) -- (4,6) node(t2) [align=left,xshift=7mm] {2 ($\tau_2$)};
    \draw[very thick,blue] (2,4) -- (4,4) node(t3) [align=left,xshift=7mm] {3 ($\tau_3$)};
    \draw[very thick,blue] (2,2) -- (4,2) node(t4) [align=left,xshift=7mm] {4 ($\tau_4$)};
    %== drawing the decays
    \draw[thick,decorate,black,-{Stealth[length=3mm]}] (2.4,6) -- node(d1) [right,align=left,xshift=2mm,font=\footnotesize] {non-radiative \\ fast decay} (2.4,4);
    \draw[thick,black,-{Stealth[length=3mm]}] (2.4,4) -- node(d2) {} (2.4,2);
    \draw[thick,decorate,red,-{Stealth[length=3mm]}] (2.5,3) -- node(rd) [above,align=left,yshift=1mm,font=\footnotesize] {$h\nu$} (3.8,3);
    \draw[thick,decorate,black,-{Stealth[length=3mm]}] (2.4,2) -- node(d3) [right,align=left,xshift=2mm,font=\footnotesize] {non-radiative \\ very fast decay} (2.4,0);
    %== annotating levels
    \node[right=of t2] {$\tau_2 \ll \tau_3$};
    \node[right=of t3] {$\tau_3 \gg \tau_4$};
    \node[draw,rectangle callout,callout absolute pointer={(t3.south east)},font=\footnotesize] at (7,3.4) {meta stable};

The output including the use of endiagram gives: enter image description here

Not the answer you're looking for? Browse other questions tagged .