Wie im Kommentar schon gesagt: Mit `chemmacros` und `chemfig` geht das relativ einfach. `chemmacros` liefert das `\State`-Makro und bindet außerdem schon `siunitx` ein, das für die Temperaturangaben verwendet werden kann.
`chemfig` kann man verwenden, um das Schema zu erstellen. Das Prinzip geht so:
    \schemestart
      <knoten>
      \arrow
      <knoten>
      \arrow
      <knoten>
    \schemestop
Die Ausrichtung etc wird komplett mit dem `\arrow`-Befehl gesteuert. Ein optionales Argument z.B. erlaubt Beeinflussung seiner Länge und des Winkels der Richtung:
    \arrow[<Winkel>,<Längenfaktor>]% Voreinstellung: 0 und 1
Ein weiteres Argument erlaubt Angabe des Pfeiltyps (`->` oder `<-` oder ...) und damit auch einer Beschriftung des Pfeils:
    \arrow{->[oben][unten]}
Im Beispiel verwende ich beispielsweise folgende Zeile:
    \arrow(.60--){->[*{0}{\State[subscript-left=false]{S}{l}}]}[90]
\arrow(.60--){->[*{0}{\state[subscript-right=l]{S}}]}[90]
Das ist ein Pfeil, der am Knoten, an dem er startet, bei 60° ankert (im Sinne von TikZ-Ankern), der in 90°-Richtung, also nach oben, zeigt. Seine Beschriftung startet mit `*{0}` was heißt, dass sie nicht parallel zum Pfeil ausgerichtet ist, sondern im Winkel 0°, also horizontal.
    \documentclass{article}
    \usepackage{chemmacros,chemfig}
    
    \chemsetup{
      modules = thermodynamics ,
      thermodynamics/superscript-right =
    }
    
    \begin{document}
    
    \chemsetup{state/exponent=}
    \schemestart
      \ch{H2O}\,(l, \SI{0}{\celsius})
      \arrow{->[\State{S}{trs}($\text{l}\to\text{s}$, \arrow{->[\state[subscript-left=trs]{S}($\text{l}\to\text{s}$, \SI{0}{\celsius})]}[,2.5]
      \ch{H2O}\,(s, \SI{0}{\celsius})
      \arrow(--.120){->[*{0}{\State[subscript-left=false]{S}{s}}]}[-90]
\arrow(--.120){->[*{0}{\state[subscript-right=s]{S}}]}[-90]
      \ch{H2O}\,(s, \SI{-5}{\celsius})
      \arrow{->[\State{S}{trs}($\text{s}\to\text{l}$, \arrow{->[\state[subscript-left=trs]{S}($\text{s}\to\text{l}$, \SI{-5}{\celsius})]}[-180,2.5]
      \ch{H2O}\,(l, \SI{-5}{\celsius})
      \arrow(.60--){->[*{0}{\State[subscript-left=false]{S}{l}}]}[90]
\arrow(.60--){->[*{0}{\state[subscript-right=l]{S}}]}[90]
    \schemestop
    
    \end{document}
Das ganze Schema kann man z.B. in eine `figure`-Umgebung setzen, die sich dann mit `\caption` Becshriften ließe. Man kann sich auch eine neue Gleitumgebung `scheme` definieren ([Wie kann ich eine neue Gleitumgebung definieren?][1]) und die dann mit `\caption` beschriften.
![alt text][2]
  [1]: http://texwelt.de/wissen/fragen/2854
  [2]: http://texwelt.de/wissen/upfiles/entropie.png