%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% --------------------------------------------------------------------------- %
% - MOdiagram - modiagram_doc_en.tex                                        - %
% - easy creation of molecular orbital diagrams                             - %
% --------------------------------------------------------------------------- %
% - Clemens NIEDERBERGER                                                    - %
% - 2012/01/23                                                              - %
% --------------------------------------------------------------------------- %
% - http://www.mychemistry.eu/                                              - %
% - contact@mychemistry.eu                                                  - %
% --------------------------------------------------------------------------- %
% - If you have any ideas, questions, suggestions or bugs to report, please - %
% - feel free to contact me.                                                - %
% --------------------------------------------------------------------------- %
% - Copyright 2011-2012 Clemens Niederberger                                - %
% -                                                                         - %
% - This work may be distributed and/or modified under the                  - %
% - conditions of the LaTeX Project Public License, either version 1.3      - %
% - of this license or (at your option) any later version.                  - %
% - The latest version of this license is in                                - %
% -   http://www.latex-project.org/lppl.txt                                 - %
% - and version 1.3 or later is part of all distributions of LaTeX          - %
% - version 2005/12/01 or later.                                            - %
% -                                                                         - %
% - This work has the LPPL maintenance status `maintained'.                 - %
% -                                                                         - %
% - The Current Maintainer of this work is Clemens Niederberger.            - %
% -                                                                         - %
% - This work consists of the files modiagram.sty, modiagram_doc_de.tex,    - %
% - modiagram_doc_de.tex, README                                            - %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass{scrartcl}
\usepackage{fontspec,xltxtra}
\usepackage{polyglossia}
  \setmainlanguage{english}
  \defaultfontfeatures{Scale=MatchLowercase}
  \setmainfont[SmallCapsFont=Linux Libertine Capitals O,SlantedFont=Linux Libertine Slanted O]{Linux Libertine O}
  \setsansfont[SmallCapsFont=Linux Biolinum Capitals O,SlantedFont=Linux Biolinum Slanted O]{Linux Biolinum O}
  \setmonofont{Inconsolata}
\usepackage[dvipsnames]{xcolor}
  \colorlet{code}{RawSienna}
\usepackage{modiagram,xspace,siunitx,framed,chemfig,booktabs}
\usepackage[version=3]{mhchem}

\usepackage{showexpl}
\lstset{
 explpreset={
  language         = [LaTeX]TeX,
  basicstyle       = {\ttfamily\small},
  breaklines       = true,
  commentstyle     = {\color[named]{Gray}},
  backgroundcolor  = \color{yellow!20},
  numbers          = left,
  numberstyle      = \tiny,
  numberblanklines = true,
  numbersep        = .3em,
  xleftmargin      = 1em,
  gobble           = 1,
  keywordstyle     = \color{code},
  morekeywords     =
    {
      AO,
      atom,
      ce,
      connect,
      draw,
      EnergyAxis,
      lewis,
      Lewis,
      molecule,
      MOsetup,
      node,
      textcolor,
      textSigma
    }
 },
  language         = [LaTeX]TeX,
  basicstyle       = {\ttfamily},
  breaklines       = true,
  commentstyle     = {\color[named]{Gray}},
  backgroundcolor  = \color{yellow!20},
  numbers          = left,
  numberstyle      = \tiny,
  numberblanklines = true,
  numbersep        = .3em,
  xleftmargin      = 1em,
  gobble           = 1,
  moredelim        = [is][\color{black}]{|}{|},
  keywordstyle     = \color{code},
  morekeywords     =
    {
      AO,
      atom,
      connect,
      draw,
      EnergyAxis,
      molecule,
      MOsetup,
      usepackage
    }
}

\usepackage{hyperref}
\hypersetup
  {
    colorlinks         = true,
    urlcolor           = blue!80,
    linkcolor          = blue!80,
    plainpages         = false,
    bookmarksopen      = true,
    bookmarksopenlevel = 2,
    bookmarksnumbered  = true,
    pdfauthor          = {Clemens Niederberger},
    pdftitle           = {MOdiagram - Manual},
    pdfsubject         = {Create MO diagrams with LaTeX},
    pdfkeywords        = {MOdiagram},
    pdfcreator         = {LaTeX}
  }

\newcommand*\MOname{\textsf{MOdiagram}\xspace}
\newcommand*\MOversion{0.2a\xspace}
\newcommand*\MOdate{2012/01/23}

\newcommand*\paket[1]{\textsf{#1}\footnote{\url{http://www.ctan.org/pkg/#1}}}

\newcommand*\TikZ{\mbox{Ti\textbf{\textit{k}}Z}\xspace}
\newcommand*\etc{\mbox{etc.}\xspace}
\newcommand*\ie{\mbox{i.e.}\xspace}

\newlength\marginnotewidth
\NewDocumentCommand\marginnote { sm } {%
  \settowidth\marginnotewidth{\small\color{red}#2}
  \addtolength\marginnotewidth{20pt}
  \noindent\makebox[0cm]{\hskip-\marginnotewidth\small\color{red}#2}%
  \IfBooleanF{#1}{\hspace{\parindent}}%
}

\NewDocumentCommand \AOinline { o m }
  {
    \begingroup
      \IfNoValueTF{#1}
        {\MOsetup{ style=square,AO-width=8pt }}%
        {\MOsetup{ style=square,AO-width=8pt , #1 }}%
      \begin{MOdiagram}
        \AO{s}{0;#2}
      \end{MOdiagram}%
    \endgroup
  }

\begin{document}

\begin{titlepage}
 \centering
 \Huge MOdiagram v\MOversion
 \vskip.5cm
 \Large\MOdate
 \vskip.5cm
 \large Clemens \textsc{Niederberger}
 \vskip.25cm
 \normalsize\url{http://www.mychemistry.eu/}\\
 \href{mailto:contact@mychemistry.eu}{contact@mychemistry.eu}
 \vskip2cm
 \begin{abstract}
  \MOname provides an environment and commands for the creation of molecular orbital diagrams.
 \end{abstract}
 \begin{MOdiagram}[style=fancy,distance=7cm,AO-width=15pt,labels,names]
  \atom[N]{left}{
    2p = {0;up,up,up}
  }
  \atom[O]{right}{
    2p = {2;pair,up,up}
  }
  \molecule[NO]{
    2pMO = {1.8,.4;pair,pair,pair,up},
    color = { 2piy*=red }
  }
 \end{MOdiagram}
\end{titlepage}

\tableofcontents

\newpage
\section{Licence, Requirements}
\MOname v\MOversion underlies the \LaTeX\ Project Public License version 1.3 or later.\newline(\url{http://www.latex-project.org/lppl.txt})

\MOname needs the packages \paket{expl3}, \paket{xparse}, \paket{l3keys2e}, \textsf{tikz}\footnote{\url{http://www.ctan.org/pkg/pgf}} and \paket{textgreek}. Additionally the \TikZ libraries \textsf{calc} and \textsf{arrows} are loaded.

Knowledge of \textsf{pgf} or \textsf{tikz} would be useful.

\section{Motivation}
This package has been written as a reaction to a question on \url{http://tex.stackexchange.com/}. To be more precise: as a reaction to the question \href{http://tex.stackexchange.com/questions/13863/molecular-orbital-diagrams-in-latex}{Molecular orbital diagrams in LaTeX}. There it says
\begin{quote}\small\sffamily
 I'm wondering if anyone has seen a package for drawing (qualitative) molecular orbital splitting diagrams in \LaTeX? Or if there exist any packages that can be easily re-purposed to this task?

 Otherwise, I think I'll have a go at it in \TikZ.
\end{quote}
The problem was solved using \TikZ, since no package existed for that purpose. For one thing \MOname is intended to fill this gap. I also found it very tedious, to make all this copying and pasting when I needed a second, third, \ldots\ diagram. \MOname took care of that. 

\section{Main Commands}
All molecular orbital (MO) diagrams are created using the environment \lstinline=MOdiagram=. When the commands are described in the following sections, arguments are marked with (o) or (m) meaning \emph{optional} or \emph{mandatory} argument.

\subsection{The \texttt{\textbackslash atom} Command}
\begin{framed}
 \lstinline=\atom[<name>]{<pos>}{<|AO|-spec>}=
 \begin{itemize}\small
  \item\lstinline=<name>= (o) caption of the atom
  \item\lstinline=<pos>= (m) on the left or the right in the diagram
  \item\lstinline=<|AO|-spec>= (m) specifications of the atomic orbitals (AO)
 \end{itemize}
\end{framed}
Let's take a look at an example:
\begin{LTXexample}
 \begin{MOdiagram}
  \atom{right}{
    1s = {  0; pair} ,
    2s = {  1; pair} ,
    2p = {1.5; up, down }
  }
 \end{MOdiagram}
\end{LTXexample}
As you can see, the argument \lstinline=<|AO|-spec>= is essential to create the actual orbitals and the electrons within. You can use these key/value pairs to specify what you need:
\begin{framed}
 \begin{itemize}
  \item\lstinline+1s={<rel. energy>; <el-spec>}+
  \item\lstinline+2s={<rel. energy>; <el-spec>}+
  \item\lstinline+2p={<rel. energy>; <x el-spec>, <y el-spec>, <z el-spec>}+
 \end{itemize}
\end{framed}
\lstinline=<el-spec>= can have the values \lstinline=pair=, \lstinline=up= and \lstinline=down= or can be left empty. \lstinline=<rel. energy>= actually is the $y$ coordinate and shifts the AO vertically by \lstinline=<rel. energy>= \si{\centi\metre}.

The argument \lstinline=<pos>= is important, when p orbitals are used. For instance compare the following example to the one before:
\begin{LTXexample}
 \begin{MOdiagram}
  \atom{left}{
    1s = {  0; pair} ,
    2s = {  1; pair} ,
    2p = {1.5; up, down }
  }
 \end{MOdiagram}
\end{LTXexample}

When both variants are used one can also see, that the right atom is shifted to the right (hence the naming). The right atom is shifted by \SI{4}{\centi\metre} per default and canbe adjusted individually, see page \pageref{option:distance}.
\begin{LTXexample}[pos=b]
 \begin{MOdiagram}
  \atom{left}{
    1s = {  0; pair} ,
    2s = {  1; pair} ,
    2p = {1.5; up, down }
  }
  \atom{right}{
    1s = {  0; pair} ,
    2s = {  1; pair} ,
    2p = {1.5; up, down }
  }
 \end{MOdiagram}
\end{LTXexample}
With the command \lstinline=\molecule= (section \ref{ssec:molecule}) the reason for the shift becomes clear.

\marginnote{NEW}Any of the arguments for the AO can be left empty or be omitted.
\begin{LTXexample}[pos=b]
 Without argument: default height, full:
 \begin{MOdiagram}
  \atom{left}{1s, 2s, 2p}
 \end{MOdiagram}
\end{LTXexample}
\begin{LTXexample}[pos=b]
 empty argument: default height, empty:
 \begin{MOdiagram}
  \atom{left}{1s=, 2s=, 2p=}
 \end{MOdiagram}
\end{LTXexample}
\begin{LTXexample}[pos=b]
 using some values:\\
 \begin{MOdiagram}
  \atom{left}{1s, 2s=1, 2p={;,up} }
 \end{MOdiagram}
\end{LTXexample}

\subsection{The \texttt{\textbackslash molecule} Command}\label{ssec:molecule}
\begin{framed}
 \lstinline=\molecule[<name>]{<MO-spec>}=
 \begin{itemize}\small
  \item\lstinline=<name>= (o) caption of the molecule
  \item\lstinline=<MO-spec>= (m) specifications of the molecular orbitals (MO)
 \end{itemize}
\end{framed}
An example first:
\begin{LTXexample}
 \begin{MOdiagram}
  \atom{left} { 1s = {  0; up } }
  \atom{right}{ 1s = {  0; up } }
  \molecule { 1sMO = {.75; pair } }
 \end{MOdiagram}
\end{LTXexample}
The command \lstinline=\molecule= connects the AO with the bonding and anti-bondung MO. \lstinline=\molecule= can only be used \emph{after} one has set \emph{both} atoms, since the orbitals, that should be connected, must be known.

The argument \lstinline=<MO-spec>= accepts a comma separated list of key/value pairs:
\begin{framed}
 \begin{itemize}
  \item\lstinline+1sMO={<energy gain>/<energy loss>; <s el-spec>, <s* el-spec>}+ (connects the AO specified by \lstinline=1s=)
  \item\lstinline+2sMO={<energy gain>/<energy loss>; <s el-spec>, <s* el-spec>}+ (connects the AO specified by \lstinline=2s=)
  \item\lstinline+2pMO={<s energy gain>/<s energy loss>, <p energy gain>/<p energy loss>; <s el-spec>, <py el-spec>, <pz el- spec>, <py* el-spec>, <pz* el-spec>, <s* el-spec>}+ (connects the AO specified by \lstinline=2p=)
 \end{itemize}
\end{framed}
Obviously the regarding AO must have been set in order to connect them. This for example won't work:
\begin{lstlisting}[basicstyle = {\ttfamily\small}]
 \begin{MOdiagram} 
  \atom{left} { 1s = 0 }
  \atom{right}{ 1s = 0 }
  \molecule { 2sMO = .75 }
 \end{MOdiagram}
\end{lstlisting}
The value used in \lstinline=<energy gain>= determines how many \si{\centi\metre} the bonding MO lies below the lower AO or how many \si{\centi\metre} the anti-bondung MO lies above the higher AO.

\begin{LTXexample}[pos=b]
 same level:
 \begin{MOdiagram}
  \atom{left} { 1s = {  0; up } }
  \atom{right}{ 1s = {  0; up } }
  \molecule { 1sMO = {.75; pair } }
 \end{MOdiagram}

 different levels:
 \begin{MOdiagram}
  \atom{left} { 1s = {  0; up } }
  \atom{right}{ 1s = {  1; up } }
  \molecule { 1sMO = {.25; pair } }
 \end{MOdiagram}
\end{LTXexample}
\marginnote{NEW}If you specify \lstinline=<energy loss>=, you can create non-symmetrical splittings. Then, the first value (\lstinline=<energy gain>=) is used for the bonding MO and the second value (\lstinline=<energy loss>=) is used for the anti-bonding MO.
\begin{LTXexample}[pos=b]
 \begin{MOdiagram}
  \atom{left} { 1s = {  0; up } }
  \atom{right}{ 1s = {  0; up } }
  \molecule { 1sMO = {.75/.25; pair } }
 \end{MOdiagram}

 \begin{MOdiagram}
  \atom{left} { 1s = {  0; up } }
  \atom{right}{ 1s = {  1; up } }
  \molecule { 1sMO = {.25/.75; pair } }
 \end{MOdiagram}
\end{LTXexample}

Please be aware, that you have to specify \emph{two} such values or pairs with \lstinline=2pMO=: the splitting of the \textsigma\ orbitals and the splitting of the \textpi\ orbitals.
\begin{LTXexample}
 \begin{MOdiagram}
  \atom{left} { 2p = { 0; up, up } }
  \atom{right}{ 2p = { 1; up, up } }
  \molecule { 2pMO = { 1.5, .75; pair, up, up } } 
 \end{MOdiagram}
\end{LTXexample}

The complete MO diagram for triplett dioxygen now could look something like that:
\begin{LTXexample}
 \begin{MOdiagram}
  \atom{left}{
    1s, 2s, 2p = {;pair,up,up}
  }
  \atom{right}{
    1s, 2s, 2p = {;pair,up,up}
  }
  \molecule{
    1sMO, 2sMO, 2pMO = {;pair,pair,pair,up,up}
  }
 \end{MOdiagram}
\end{LTXexample}

\newpage
\subsection{The Naming Scheme}\label{Namensgebung}
Since one wants to be able to put labels to the orbitals and since they are nodes in a tikzpicture, the internal naming scheme is important. It closely follows the function:
\begin{center}
\begin{MOdiagram}[distance=6cm,AO-width=20pt,labels-fs=\tt\footnotesize,labels-style={yshift=10pt}]
 \atom{left}{
   1s=0,
   2s=2,
   2p=5,
   label={ 1sleft={1sleft}, 2sleft={2sleft}, 2pxleft={2pxleft}, 2pyleft={2pyleft}, 2pzleft={2pzleft} }
 }
 \atom{right}{
   1s=0,
   2s=2,
   2p=5,
   label={ 1sright={1sright}, 2sright={2sright}, 2pxright={2pxright}, 2pyright={2pyright}, 2pzright={2pzright} }
 }
 \molecule{
   1sMO=.5,
   2sMO=.5,
   2pMO={1.5,.5},
   label={ 1sigma={1sigma}, 1sigma*={1sigma*}, 2sigma={2sigma}, 2sigma*={2sigma*}, 2psigma={2psigma}, 2psigma*={2psigma*}, 2piy={2piy}, 2piy*={2piy*}, 2piz={2piz}, 2piz*={2piz*} }
 }
\end{MOdiagram}
\end{center}
With these names it is possible to reference the orbitals with the known \TikZ commands:
\begin{LTXexample}
 \begin{MOdiagram}
  \atom{left} { 1s = 0 }
  \atom{right}{ 1s = 0 }
  \molecule { 1sMO = .75 }
  \draw[<->,red,semithick] (1sigma.center) -- (1sigma*.center) ;
  \draw[red] (1sigma*) ++ (2cm,.5cm) node {splitting} ;
 \end{MOdiagram}
\end{LTXexample}

\begin{LTXexample}
 \begin{MOdiagram}
  \atom{left} { 1s = 0 }
  \atom{right}{ 1s = 0 }
  \molecule { 1sMO = .75 }
  \draw[draw=blue,very thick,fill=blue!40,opacity=.5] (1sigma*) circle (8pt);
  \draw[<-,shorten <=8pt,shorten >=15pt,blue] (1sigma*) --++(2,1) node {anti-bonding MO};
 \end{MOdiagram}
\end{LTXexample}

\subsection{Placing AO and MO Arbitrarily}\label{ssec:AO_MO_irgendwo}
The standard orbitals are not always sufficient in order to draw a correct MO diagram. For example in the MO diagram of \ce{XeF2} one would need this part, that illustrates the interaction between the bonding and anti-bonding combination of two p orbitals of Flourine with one p orbital of Xenon:
\begin{center}
 \begin{MOdiagram}[names]
  \atom[\lewis{0.,F}\hspace*{5mm}\lewis{4.,F}]{left}{1s=.2;up,up-el-pos={1sleft=.5}}
  \atom[Xe]{right}{1s=1.25;pair}
  \molecule[\ce{XeF2}]{1sMO={1/.25;pair}}
  \AO(1cm){s}{0;up}
  \AO(3cm){s}{0;pair}
  \connect{ AO1 & AO2 }
  \node[right,xshift=4mm] at (1sigma) {\footnotesize bonding};
  \node[above] at (AO2.90) {\footnotesize non-bonding};
  \node[above] at (1sigma*.90) {\footnotesize anti-bonding};
 \end{MOdiagram}
\end{center}
To create diagrams like this there is the following command, which draws a single AO:
\begin{framed}
 \lstinline+\AO[<name>](<xshift>){<type>}[<key = val>]{<energy>;<el-spec>}+
 \begin{itemize}\small
  \item\lstinline=<name>= (o) name of the node; if not specified, \lstinline=|AO|#= is used where \lstinline=#= is a consecutive number.
  \item\lstinline=<xshift>= (o) vertical position of the orbitals, a \TeX\ dimension.
  \item\lstinline=<type>= (m) \lstinline=s= or \lstinline=p=
  \item\lstinline+<key = val>+ (o) key/value pairs, with which the AO can be customized, see section \ref{ssec:AO_anpassen}.
  \item\lstinline=<|AO|-spec>= (m) specification of the AO
 \end{itemize}
\end{framed}

\newpage
Depending on the \lstinline=<type>= one s or three p orbitals are drawn.
\begin{LTXexample}
 \begin{MOdiagram}
  \AO{s}{0;}
  \AO(-20pt){p}{1;pair,up,down}
 \end{MOdiagram}
\end{LTXexample}

If one wants to place such an AO at the position of an atom, one has to know their \lstinline=<xshift>=. They have predefined values (also see section \ref{orbital-positionen}):\label{xshift}
\begin{itemize}
 \item atom left: \SI{1}{\centi\metre}
 \item molecule: \SI{3}{\centi\metre}
 \item atom right: \SI{5}{\centi\metre}
\end{itemize}
\begin{LTXexample}
 \begin{MOdiagram}
  \atom{left} {1s=0}
  \atom{right}{1s=0}
  \molecule {1sMO=1}
  \AO(1cm){s}{2}
  \AO(3cm){s}{2}
  \AO(5cm){s}{2}
 \end{MOdiagram}
\end{LTXexample}
Within the p orbitals there is an additional shift by \SI{20}{pt} per orbital. This is equivalent to a double shift by the length \lstinline=|AO|-width= (see section \ref{option:AO-width}):
\begin{LTXexample}
 \begin{MOdiagram}
  \atom{left} {2p=0}
  \atom{right}{2p=0}
  % above the left atom:
  \AO(1cm)     {s}{ .5}
  \AO(1cm-20pt){s}{  1;up}
  \AO(1cm-40pt){s}{1,5;down}
  % above the right atom:
  \AO(5cm)     {s}{ .5}
  \AO(5cm+20pt){s}{  1;up}
  \AO(5cm+40pt){s}{1.5;down}
 \end{MOdiagram}
\end{LTXexample}

The AO created with \lstinline=\AO= also can be connected. For this you can use the \TikZ command \lstinline=\draw= , of course. You can use the predefined node names \ldots
\begin{LTXexample}
 \begin{MOdiagram}
  \AO{s}{0} \AO(2cm){s}{1}
  \AO{s}{2} \AO(2cm){s}{1.5}
  \draw[red] (AO1.0) -- (AO2.180) (AO3.0) -- (AO4.180);
 \end{MOdiagram}
\end{LTXexample}
\ldots\ or use own node names
\begin{LTXexample}
 \begin{MOdiagram}
  \AO[a]{s}{0} \AO[b](2cm){s}{1}
  \AO[c]{s}{2} \AO[d](2cm){s}{1.5}
  \draw[red] (a.0) -- (b.180) (c.0) -- (d.180);
 \end{MOdiagram}
\end{LTXexample}
The predefined names are \lstinline=AO1=, \lstinline=AO2= \etc for the type \lstinline=s= and \lstinline=AO1x=, \lstinline=AO1y=, \lstinline=AO1z=,  \lstinline=AO2x= \etc for the type \lstinline=p=. Nodes of the type \lstinline=p= get a \lstinline=x=, \lstinline=y= or a \lstinline=z= if you specify your own name, too.
\begin{LTXexample}[pos=b]
 \begin{MOdiagram}
  \AO{p}{0}
  \draw[<-,shorten >=5pt] (AO1y.-90) -- ++ (.5,-1) node {y};
 \end{MOdiagram}
 und
 \begin{MOdiagram}
  \AO[A]{p}{0}
  \draw[<-,shorten >=5pt] (Ay.-90) -- ++ (.5,-1) node {y};
 \end{MOdiagram}
\end{LTXexample}

However, if you want the lines to be drawn in the same style as the ones created by \lstinline=\molecule=\footnote{which can be customized, see page \pageref{option:lines}}, you should use the command \lstinline=\connect=.
\begin{framed}
 \lstinline=\connect{<|AO-connect|>}=
 \begin{itemize}\small
  \item\lstinline=<|AO-connect|>= (m) comma separated list of node name pairs connected with \lstinline=&=
 \end{itemize}
\end{framed}
This command expects a comma separated list of node name pairs, that are to be connected. The names have to be connected with a \lstinline=&=:
\begin{LTXexample}
 \begin{MOdiagram}
  \AO{s}{0;} \AO(2cm){s}{1;}
  \AO{s}{2;} \AO(2cm){s}{1.5;}
  \connect{ AO1 & AO2, AO3 & AO4 }
 \end{MOdiagram}
\end{LTXexample}
Some things still need to be said: \lstinline=\connect= adds the anchor \lstinline=east= to the first name and the anchor \lstinline=west= to the second one. This means a connection only makes sense from the left to the right. However, you can add own anchors using the usual \TikZ way:
\begin{LTXexample}
 \begin{tikzpicture}
  \draw (0,0) node (a) {a} ++ (1,0) node (b) {b}
        ++ (0,1) node (c) {c} ++ (-1,0) node (d) {d} ;
  \connect{ a.90 & d.-90, c.180 & d.0 }
 \end{tikzpicture}
\end{LTXexample}

\subsection{The Positioning Scheme}\label{orbital-positionen}
The figure below shows the values of the $x$ coordinates of the orbitals, depending in the values of \lstinline=<distance>= (\lstinline=<dist>=) and \lstinline=<|AO|-width>= (\lstinline=<|AO|>=). In sections \ref{option:distance} and \ref{option:AO-width} these lengths and how they can be changed are discussed.
\begin{center}
\begin{MOdiagram}[AO-width=22pt,labels-fs=\tt\scriptsize,labels-style={text width=40pt,align=center,yshift=11pt}]
 \atom{left}{
   1s=0,
   2s=2,
   2p=5.5,
   label={ 1sleft={1cm}, 2sleft={1cm}, 2pxleft={1cm - 4*<AO>}, 2pyleft={1cm - 2*<AO>}, 2pzleft={1cm} } }
 \atom{right}{
   1s=0,
   2s=2,
   2p=5.5,
   label={ 1sright={1cm + <dist>}, 2sright={1cm + <dist>}, 2pxright={1cm+ <dist>}, 2pyright={1cm + <dist> + 2*<AO>}, 2pzright={1cm + <dist> + 4*<AO>} } }
 \molecule{
   1sMO=.5,
   2sMO=.5,
   2pMO={2,.75},
   label={ 1sigma={.5*<dist> + 1cm}, 1sigma*={.5*<dist> + 1cm}, 2sigma={.5*<dist> + 1cm}, 2sigma*={.5*<dist> + 1cm}, 2psigma={.5*<dist> + 1cm}, 2psigma*={.5*<dist> + 1cm}, 2piy={.5*<dist> + 1cm - <AO>}, 2piy*={.5*<dist> + 1cm - <AO>}, 2piz={.5*<dist> + 1cm + <AO>}, 2piz*={.5*<dist> + 1cm + <AO>} }
 }
\end{MOdiagram}
\end{center}

\newpage
\subsection{Default Values}
\marginnote*{NEW}If you leave the arguments (or better: values) for the specification of the AO or MO empty or omit them, default values are used. The table below shows you, which ones.
\begin{center}\small
\begin{tabular}{l>{\ttfamily}l>{\ttfamily}l>{\ttfamily}l}
 \toprule & \normalfont\bfseries AO / MO & \normalfont\bfseries omitted             & \normalfont\bfseries empty \\\midrule
 syntax:  &                              & 1s                                       & 1s= \\\midrule
          & 1s                           & \{0;pair\}                               & \{0;\} \\
          & 2s                           & \{2;pair\}                               & \{2;\} \\
          & 2p                           & \{5;pair,pair,pair\}                     & \{5;,,\} \\\midrule
          & 1sMO                         & \{.5;pair,pair\}                         & \{.5;,\} \\
          & 2sMO                         & \{.5;pair,pair\}                         & \{.5;,\} \\
          & 2pMO                         & \{1.5,.5;pair,pair,pair,pair,pair,pair\} & \{1.5,.5;,,,,,\} \\\bottomrule
\end{tabular}
\end{center}
This is similar for the \lstinline=\AO= command (page \pageref{ssec:AO_MO_irgendwo}); It needs a value for \lstinline=<energy>=, though.
\begin{center}\small
\begin{tabular}{>{\ttfamily}l>{\ttfamily}l>{\ttfamily}l}
 \toprule\bfseries <type> & \bfseries <el-spec> \\\midrule
 s                        & pair \\
 p                        & pair,pair,pair \\\bottomrule
\end{tabular}
\end{center}
Compare these examples:
\begin{LTXexample}
 \begin{MOdiagram}
  \atom{left} { 1s={0;pair} }
  \atom{right}{ 1s }
 \end{MOdiagram}

 \hrulefill
 
 \begin{MOdiagram}
  \atom{left}{ 1s=1 }
  \atom{right}{ 1s= }
 \end{MOdiagram}
\end{LTXexample}

\section{Customization}
Th options of the section \ref{ssec:umgebungs_optionen} can be set global as package option, \ie with \lstinline+\usepackage[<key = val>]{modiagram}+, or via the setup command \lstinline+\MOsetup{<key = val>}+.

\subsection{Environment Options}\label{ssec:umgebungs_optionen}
There are some options with which the layout of the MO diagrams can be changed:
\begin{itemize}
 \item\lstinline+style=<type>+ change the style of the orbitals and the connecting lines, section \ref{option:style}.
 \item\lstinline+distance=<dim>+ distance betwen left and right atom, section \ref{option:distance}.
 \item\lstinline+|AO|-width=<dim>+ change the width of orbitals, section \ref{option:AO-width}.
 \item\lstinline+el-sep=<num>+ distance between the electron pair arrows, section \ref{option:electrons}.
 \item\lstinline+up-el-pos=<num>+ position of the spin-up arrow, section \ref{option:electrons}.
 \item\lstinline+down-el-pos=<num>+ position of the spin-down arrow, section \ref{option:electrons}.
 \item\lstinline+lines=<tikz>+ change the \TikZ style of the connecting lines, section \ref{option:lines}.
 \item\lstinline+names=<bool>+ add captions to the atoms and the molecule, section \ref{option:names}.
 \item\lstinline+names-style=<tikz>+ change the \TikZ style of the captions, section \ref{option:names_style}.
 \item\lstinline+names-style-add=<tikz>+  change the \TikZ style of the captions, section \ref{option:names_style}.
 \item\lstinline+labels=<bool>+ add default labels to the orbitals, section \ref{option:labels}.
 \item\lstinline+labels-fs=<cs>+ change the font size of the labels, section \ref{option:labels-fs}.
 \item\lstinline+labels-style=<tikz>+ change the \TikZ style of the labels, section \ref{option:labels-style}.
\end{itemize}
They all are discussed in the following sections. If they're used as options for the environment, they'r set locally and only change that environment.
\begin{lstlisting}
 \begin{MOdiagram}[<key = value>]
  ...
 \end{MOdiagram}
\end{lstlisting}

\subsubsection{Option \texttt{style}}\label{option:style}
There are five different styles, which can be chosen.
\begin{itemize}
 \item\lstinline+style=plain+ \AOinline[style=plain]{pair} (default)
 \item\lstinline+style=square+ \AOinline[style=square]{pair}
 \item\lstinline+style=circle+ \AOinline[style=circle]{pair}
 \item\lstinline+style=round+ \AOinline[style=round]{pair}
 \item\lstinline+style=fancy+ \AOinline[style=fancy]{pair}
\end{itemize}
Let's take the MO diagram of \ce{H2} to illustrate the different styles:
\begin{LTXexample}
 % use package `mhchem'
 \begin{MOdiagram}[style=plain]% default
  \atom[H]{left} { 1s = {;up} }
  \atom[H]{right}{ 1s = {;up} }
  \molecule[\ce{H2}]{ 1sMO = {.75;pair} }
 \end{MOdiagram}
\end{LTXexample}
\begin{LTXexample}
 % use package `mhchem'
 \begin{MOdiagram}[style=square]
  \atom[H]{left} { 1s = {;up} }
  \atom[H]{right}{ 1s = {;up} }
  \molecule[\ce{H2}]{ 1sMO = {.75;pair} }
 \end{MOdiagram}
\end{LTXexample}
\marginnote*{NEW}\begin{LTXexample}
 % use package `mhchem'
 \begin{MOdiagram}[style=circle]
  \atom[H]{left} { 1s = {;up} }
  \atom[H]{right}{ 1s = {;up} }
  \molecule[\ce{H2}]{ 1sMO = {.75;pair} }
 \end{MOdiagram}
\end{LTXexample}
\begin{LTXexample}
 % use package `mhchem'
 \begin{MOdiagram}[style=round]
  \atom[H]{left} { 1s = {;up} }
  \atom[H]{right}{ 1s = {;up} }
  \molecule[\ce{H2}]{ 1sMO = {.75;pair} }
 \end{MOdiagram}
\end{LTXexample}
\begin{LTXexample}
 % use package `mhchem'
 \begin{MOdiagram}[style=fancy]
  \atom[H]{left} { 1s = {;up} }
  \atom[H]{right}{ 1s = {;up} }
  \molecule[\ce{H2}]{ 1sMO = {.75;pair} }
 \end{MOdiagram}
\end{LTXexample}

\subsubsection{Option \texttt{distance}}\label{option:distance}
Depending on labels and captions the \SI{4}{\centi\metre} by which the right and left atom are separated can be too small. With \lstinline+distance=<dim>+ he length can be adjusted. With this, the position of the right atom is changed to \lstinline=1cm + <dim>= and the position of the molecule is changed to \lstinline=0.5*(1cm + <dim>)=, also see page \pageref{xshift} and section \ref{orbital-positionen}.
\begin{LTXexample}
 % use package `mhchem'
 \begin{MOdiagram}[distance=6cm]
  \atom[H]{left} { 1s = {;up} }
  \atom[H]{right}{ 1s = {;up} }
  \molecule[\ce{H2}]{ 1sMO = {.75;pair} }
 \end{MOdiagram}
\end{LTXexample}

\subsubsection{Option \texttt{AO-width}}\label{option:AO-width}
The length \lstinline=|AO|-width= sets the length of the horizontal line in a orbital displayed with the \lstinline=plain= style. It's default value is \SI{10}{pt}.
\begin{LTXexample}
 % use package `mhchem'
 \begin{MOdiagram}[AO-width=15pt]
  \atom[H]{left} { 1s = {;up} }
  \atom[H]{right}{ 1s = {;up} }
  \molecule[\ce{H2}]{ 1sMO = {.75;pair} }
 \end{MOdiagram}
\end{LTXexample}
\begin{LTXexample}
 % use package `mhchem'
 \begin{MOdiagram}[style=fancy,AO-width=15pt]
  \atom[H]{left} { 1s = {;up} }
  \atom[H]{right}{ 1s = {;up} }
  \molecule[\ce{H2}]{ 1sMO = {.75;pair} }
 \end{MOdiagram}
\end{LTXexample}
By changing the value of \lstinline=|AO|-width= the positions of the p and the \textpi\ orbitals also change, see section \ref{orbital-positionen}.

\subsubsection{Optionen \texttt{el-sep}, \texttt{up-el-pos} und \texttt{down-el-pos}}\label{option:electrons}
\marginnote*{NEW}These three options change the horizontal positions of the arrows representing the electrons in a AO/MO. The option \lstinline+el-sep=<num>+ needs a value between \lstinline=0= and \lstinline=1=. \lstinline=0= means \emph{no} distance between the arrows and \lstinline=1= \emph{full} distance (with respect to the langth \lstinline=|AO|-width=, see section \ref{option:AO-width}).
\begin{LTXexample}
 % use package `mhchem'
 \begin{MOdiagram}[el-sep=.2]% default
  \atom[H]{left} { 1s = {;up} }
  \atom[H]{right}{ 1s = {;up} }
  \molecule[\ce{H2}]{ 1sMO = {.75;pair} }
 \end{MOdiagram}
\end{LTXexample}
\begin{LTXexample}
 % use package `mhchem'
 \begin{MOdiagram}[el-sep=0]
  \atom[H]{left} { 1s = {;up} }
  \atom[H]{right}{ 1s = {;up} }
  \molecule[\ce{H2}]{ 1sMO = {.75;pair} }
 \end{MOdiagram}
\end{LTXexample}
\begin{LTXexample}
 % use package `mhchem'
 \begin{MOdiagram}[el-sep=1]
  \atom[H]{left} { 1s = {;up} }
  \atom[H]{right}{ 1s = {;up} }
  \molecule[\ce{H2}]{ 1sMO = {.75;pair} }
 \end{MOdiagram}
\end{LTXexample}
The options \lstinline+up-el-pos=<num>+ and \lstinline+down-el-pos=<num>+ can be used alternatively to place the spin-up and spin-down electron, respectively. Again they need values between \lstinline=0= and \lstinline=1=. This time \lstinline=0= means \emph{on the left} and \lstinline=1= means \emph{on the right}
\begin{LTXexample}
 % use package `mhchem'
 \begin{MOdiagram}[up-el-pos=.4,down-el-pos=.6]% default
  \atom[H]{left} { 1s = {;up} }
  \atom[H]{right}{ 1s = {;up} }
  \molecule[\ce{H2}]{ 1sMO = {.75;pair} }
 \end{MOdiagram}
\end{LTXexample}
\begin{LTXexample}
 % use package `mhchem'
 \begin{MOdiagram}[up-el-pos=.333,down-el-pos=.667]
  \atom[H]{left} { 1s = {;up} }
  \atom[H]{right}{ 1s = {;up} }
  \molecule[\ce{H2}]{ 1sMO = {.75;pair} }
 \end{MOdiagram}
\end{LTXexample}
\begin{LTXexample}
 % use package `mhchem'
 \begin{MOdiagram}[up-el-pos=.7,down-el-pos=.3]
  \atom[H]{left} { 1s = {;up} }
  \atom[H]{right}{ 1s = {;up} }
  \molecule[\ce{H2}]{ 1sMO = {.75;pair} }
 \end{MOdiagram}
\end{LTXexample}

\subsubsection{Option \texttt{lines}}\label{option:lines}
The option \lstinline=lines= can be used to modify the \TikZ style of the connecting lines:
\begin{LTXexample}
 % use package `mhchem'
 \begin{MOdiagram}[lines={gray,thin}]
  \atom[H]{left} { 1s = {;up} }
  \atom[H]{right}{ 1s = {;up} }
  \molecule[\ce{H2}]{ 1sMO = {.75;pair} }
 \end{MOdiagram}
\end{LTXexample}

\subsubsection{Option \texttt{names}}\label{option:names}
If you use the option \lstinline=names=, the atoms and the molecule get captions, if you have used the optional \lstinline=<name>= argument of \lstinline=\atom= and/or \lstinline=\molecule=.
\begin{LTXexample}
 % use package `mhchem'
 \begin{MOdiagram}[names]
  \atom[H]{left} { 1s = {;up} }
  \atom[H]{right}{ 1s = {;up} }
  \molecule[\ce{H2}]{ 1sMO = {.75;pair} }
 \end{MOdiagram}
\end{LTXexample}

\subsubsection{Optionens \texttt{names-style} and \texttt{names-style-add}}\label{option:names_style}
\marginnote*{NEW}These options enable to customize the style of the captions of the atoms and of the molecule. By default this setting is used: \lstinline+\names-style={anchor=base}+\footnote{Please see “\TikZ and PGF \textendash\ Manual for Version 2.10” p.\,183 section 16.4.4 (pgfmanual.pdf) for the meaning}.
\begin{LTXexample}
 % use package `mhchem'
 \begin{MOdiagram}[names,names-style={draw=blue}]
  \atom[p]{left} { 1s = {;up} }
  \atom[b]{right}{ 1s = {;up} }
  \molecule[\ce{X2}]{ 1sMO = {.75;pair} }
 \end{MOdiagram}
\end{LTXexample}
With this the default setting is overwritten. As you can see, this destroys the vertical alignment of the nodes. In order to avoid that you can for example specify \lstinline=text height= and \lstinline=text depth= yourself \ldots
\begin{LTXexample}
 % use package `mhchem'
 \begin{MOdiagram}[names,names-style={text height=1.5ex, text depth=.25ex, draw=blue}]
  \atom[p]{left} { 1s = {;up} }
  \atom[b]{right}{ 1s = {;up} }
  \molecule[\ce{X2}]{ 1sMO = {.75;pair} }
 \end{MOdiagram}
\end{LTXexample}
\ldots, add the \lstinline=anchor= again \ldots
\begin{LTXexample}
 % use package `mhchem'
 \begin{MOdiagram}[names,names-style={anchor=base, draw=blue}]
  \atom[p]{left} { 1s = {;up} }
  \atom[b]{right}{ 1s = {;up} }
  \molecule[\ce{X2}]{ 1sMO = {.75;pair} }
 \end{MOdiagram}
\end{LTXexample}
\ldots\ or use the option \lstinline=names-style-add=. It doesn't overwrite the current setting, but appends the new declaration:
\begin{LTXexample}
 % use package `mhchem'
 \begin{MOdiagram}[names,names-style-add={draw=blue}]
  \atom[p]{left} { 1s = {;up} }
  \atom[b]{right}{ 1s = {;up} }
  \molecule[\ce{X2}]{ 1sMO = {.75;pair} }
 \end{MOdiagram}
\end{LTXexample}
\begin{LTXexample}[pos=b]
 \MOsetup{names,names-style={text height=2.5ex,text depth=.5ex,draw=blue!80,rounded corners}}
 \begin{MOdiagram}
  \atom[p]{left} { 1s = {;up} }
  \atom[b]{right}{ 1s = {;up} }
  \molecule[\ce{X2}]{ 1sMO = {.75;pair} }
 \end{MOdiagram}
 \begin{MOdiagram}[names-style-add={fill=blue!20}]
  \atom[p]{left} { 1s = {;up} }
  \atom[b]{right}{ 1s = {;up} }
  \molecule[\ce{X2}]{ 1sMO = {.75;pair} }
 \end{MOdiagram}
\end{LTXexample}

\subsubsection{Option \texttt{labels}}\label{option:labels}
If you use the option \lstinline=labels=, predefined labels are written below the orbitals. These labels can be changed, see section \ref{key:label}.
\begin{LTXexample}
 % use package `mhchem'
 \begin{MOdiagram}[labels]
  \atom[H]{left} { 1s = {;up} }
  \atom[H]{right}{ 1s = {;up} }
  \molecule[\ce{H2}]{ 1sMO = {.75;pair} }
 \end{MOdiagram}
\end{LTXexample}

\subsubsection{Option \texttt{labels-fs}}\label{option:labels-fs}
Labels are set with the font size \lstinline=\small=. If you want to change that, you can use the option \lstinline=labels-fs=.
\begin{LTXexample}
 % use package `mhchem'
 \begin{MOdiagram}[labels,labels-fs=\footnotesize]
  \atom[H]{left} { 1s = {;up} }
  \atom[H]{right}{ 1s = {;up} }
  \molecule[\ce{H2}]{ 1sMO = {.75;pair} }
 \end{MOdiagram}
\end{LTXexample}
This also allows you to change the font style or font shape of the labels.
\begin{LTXexample}
 % use package `mhchem'
 \begin{MOdiagram}[labels,labels-fs=\sffamily\footnotesize]
  \atom[H]{left} { 1s = {;up} }
  \atom[H]{right}{ 1s = {;up} }
  \molecule[\ce{H2}]{ 1sMO = {.75;pair} }
 \end{MOdiagram}
\end{LTXexample}

\subsubsection{Option \texttt{labels-style}}\label{option:labels-style}
The option \lstinline=labels-style= changes the \TikZ style of the nodes, within which the labels are written.
\begin{LTXexample}
 % use package `mhchem'
 \begin{MOdiagram}[labels,labels-style={blue,yshift=4pt}]
  \atom[H]{left} { 1s = {;up} }
  \atom[H]{right}{ 1s = {;up} }
  \molecule[\ce{H2}]{ 1sMO = {.75;pair} }
 \end{MOdiagram}
\end{LTXexample}

\subsection{\texttt{\textbackslash atom} and \texttt{\textbackslash molecule} Specific Customizations}
\subsubsection{The \texttt{label} Key}\label{key:label}
If you don't want to use the predefined labels, change single labels or use only one or two labels, you can use the key \lstinline=label=. This key is used in the \lstinline=\atom= and  \lstinline=\molecule= commands in the \lstinline=<|AO|-spec>= or \lstinline=<MO-spec>= argument, respectively. The key awaits a comma separated key/value list. The names mentioned in section \ref{Namensgebung} are used as keys to specify the AO, that you want to label.
\begin{LTXexample}
 % use package `mhchem'
 \begin{MOdiagram}[labels-fs=\footnotesize]
  \atom[H]{left} { 1s = {;up} }
  \atom[H]{right}{ 1s = {;up} }
  \molecule[\ce{H2}]{
    1sMO  = {.75;pair},
    label = { 1sigma = {bonding MO} }
  }
 \end{MOdiagram}
\end{LTXexample}
\begin{LTXexample}
 \begin{MOdiagram}[style=square,distance=6cm]
  \atom{left} { 1s = {;up} }
  \atom{right}{ 1s = {;up} }
  \molecule{
    1sMO  = {.75;pair} ,
    label = {
      1sigma  = $\sigma$,
      1sigma* = $\sigma^*$
    }
  }
  \node[right] at (1sigma.-45) {bonding};
  \node[right] at (1sigma*.45) {anti-bonding};
 \end{MOdiagram}
\end{LTXexample}

If the key is used together with the \lstinline=labels= option (page \pageref{option:labels}), single labels are overwritten:
\begin{LTXexample}
 % use package `mhchem'
 \begin{MOdiagram}[labels]
  \atom[H]{left} { 1s = {;up} }
  \atom[H]{right}{ 1s = {;up} }
  \molecule[\ce{H2}]{
    1sMO  = {.75;pair},
    label = { 1sigma = \textcolor{red}{??} }
  }
 \end{MOdiagram}
\end{LTXexample}

\subsubsection{The \texttt{color} Key}\label{key:color}
Analogous to the \lstinline=label= key the \lstinline=color= key can be used to display coloured electrons:
\begin{LTXexample}
 % use package `mhchem'
 \begin{MOdiagram}[labels-fs=\footnotesize]
  \atom[H]{left}{
    1s, color = { 1sleft = blue }
  }
  \atom[H]{right}{
    1s, color = { 1sright = red }
  }
  \molecule[\ce{H2}]{
    1sMO,
    label = { 1sigma = {bonding MO} },
    color = { 1sigma = green, 1sigma* = cyan }
  }
 \end{MOdiagram}
\end{LTXexample}

\newpage
\subsubsection{The \texttt{up-el-pos} and \texttt{down-el-pos} keys}\label{key:electrons}
\marginnote*{NEW}The keys \lstinline=up-el-pos= and \lstinline=down-el-pos= allow it to shift the arrows representing the electrons in a single AO or MO individually. You need to use values between \lstinline=0= and \lstinline=1=, also see section \ref{option:electrons}.
\begin{LTXexample}
 % use package `mhchem'
 \begin{MOdiagram}
  \atom[H]{left}{
    1s        = {;up},
    up-el-pos = { 1sleft=.5 }
  }
  \atom[H]{right}{ 1s = {;up} }
  \molecule[\ce{H2}]{
    1sMO        = {.75;pair} ,
    up-el-pos   = { 1sigma=.15 } ,
    down-el-pos = { 1sigma=.85 }
  }
 \end{MOdiagram}
\end{LTXexample}

\subsection{\texttt{\textbackslash AO} Specific Customizations}\label{ssec:AO_anpassen}
\marginnote*{NEW}These keys enable to customize orbitals created with \lstinline=\AO=.

\subsubsection{The \texttt{label} Key}\label{key:AO_label}
The key \lstinline=label[x/y/z]= allows you to put a label to the AO/MO. If you use the type \lstinline=p=, you can specify the orbital you want to label in square brackets:
\begin{LTXexample}
 \begin{MOdiagram}[style=square]
  \AO{s}[label={s orbital}]{0}
  \AO{p}[label[y]=py,label[z]=pz]{1.5}
 \end{MOdiagram}
\end{LTXexample}

\subsubsection{The \texttt{color} Key}\label{key:AO_color}
Analogous to the \lstinline=label= key there is the key \lstinline=color[x/y/z]=, which enables you to choose a color for the electrons. If you use the type \lstinline=p=, you can specify the orbital in square brackets:
\begin{LTXexample}
 \begin{MOdiagram}[style=square]
  \AO{s}[color=red]{0}
  \AO{p}[color[y]=green,color[z]=cyan]{1.5}
 \end{MOdiagram}
\end{LTXexample}

\subsubsection{The \texttt{up-el-pos} and \texttt{down-el-pos} Keys}\label{key:AO_electrons}
Then there are the keys \lstinline=up-el-pos[x/y/z]= and \lstinline=down-el-pos[x/y/z]=, with which the electrons can be shifted horizontally. You can use values between \lstinline=0= and \lstinline=1=, also see section \ref{option:electrons}. If you use the type \lstinline=p=, you can specify the orbital in square brackets:
\begin{LTXexample}
 \begin{MOdiagram}[style=square]
  \AO{s}[up-el-pos=.15]{0}
  \AO{p}[up-el-pos[y]=.15,down-el-pos[z]=.15]{1.5}
 \end{MOdiagram}
\end{LTXexample}

\subsection{Energy Axis}
Last but not least one might want to add an energy axis to the diagram. For this there is the command \lstinline=\EnergyAxis=
\begin{framed}
 \lstinline+\EnergyAxis[<key = val>]+
 \begin{itemize}\small
  \item\lstinline+<key = val>+ (o) ey/value pairs to modify the axis
 \end{itemize}
\end{framed}
\begin{LTXexample}
 \begin{MOdiagram}
  \atom{left} { 1s = {;up} }
  \atom{right}{ 1s = {;up} }
  \molecule{ 1sMO = {.75;pair} }
  \EnergyAxis
 \end{MOdiagram}
\end{LTXexample}
For the time being there are two keys to modify the axis.
\begin{framed}
 \begin{itemize}
  \item\lstinline+title=<title>+ axis label (default: \lstinline=energy=).
  \item\lstinline+head=<tikz-arrow-head>+ arrow head; you can use the arrow heads specified in the \TikZ library \paket{arrows} (pgfmanual v2.10 pages 256ff.) (default: \lstinline=>=).
 \end{itemize}
\end{framed}
\begin{LTXexample}
 \begin{MOdiagram}
  \atom{left} { 1s = {;up} }
  \atom{right}{ 1s = {;up} }
  \molecule{ 1sMO = {.75;pair} }
  \EnergyAxis[title]
 \end{MOdiagram}
\end{LTXexample}
\begin{LTXexample}
 \begin{MOdiagram}
  \atom{left} { 1s = {;up} }
  \atom{right}{ 1s = {;up} }
  \molecule{ 1sMO = {.75;pair} }
  \EnergyAxis[title=E,head=stealth]
 \end{MOdiagram}
\end{LTXexample}

\newpage
\section{Examples}
The example from the beginning of section \ref{ssec:AO_MO_irgendwo}.
\begin{LTXexample}
 % use packages `mhchem' and `chemfig' 
 \begin{MOdiagram}[names]
  \atom[\lewis{0.,F}\hspace*{5mm}\lewis{4.,F}]{left}{1s=.2;up,up-el-pos={1sleft=.5}}
  \atom[Xe]{right}{1s=1.25;pair}
  \molecule[\ce{XeF2}]{1sMO={1/.25;pair}}
  \AO(1cm){s}{0;up}
  \AO(3cm){s}{0;pair}
  \connect{ AO1 & AO2 }
  \node[right,xshift=4mm] at (1sigma) {\footnotesize bonding};
  \node[above] at (AO2.90) {\footnotesize non-bonding};
  \node[above] at (1sigma*.90) {\footnotesize anti-bonding};
 \end{MOdiagram}
\end{LTXexample}

\begin{LTXexample}[pos=b]
 % use packages `mhchem' (and `textgreek' loaded by `MOdiagram')
 \begin{figure}
  \centering
  \begin{MOdiagram}[style=square,labels,names,AO-width=8pt,labels-fs=\footnotesize]
   \atom[\ce{O_a}]{left}{
     1s, 2s, 2p = {;pair,up,up}
   }
   \atom[\ce{O_b}]{right}{
     1s, 2s, 2p = {;pair,up,up}
   }
   \molecule[\ce{O2}]{
     1sMO, 2sMO, 2pMO = {;pair,pair,pair,up,up},
     color = { 2piy*=red, 2piz*=red }
   }
   \EnergyAxis
  \end{MOdiagram}
  \caption{MO diagram of $^3$\textSigma-\ce{O2}.}
 \end{figure}
\end{LTXexample}

\begin{LTXexample}[pos=b]
 % use package `chemfig'
 \begin{figure}
  \centering\MOsetup{style = fancy, distance = 7cm, AO-width = 15pt, labels}
  \begin{MOdiagram}
   \atom[N]{left}{
     2p = {0;up,up,up}
   }
   \atom[O]{right}{
     2p = {2;pair,up,up}
   }
   \molecule[NO]{
     2pMO = {1.8,.4;pair,pair,pair,up},
     color = { 2piy*=red }
   }
   \EnergyAxis
  \end{MOdiagram}
  \caption{Part of the MO diagram of \protect\Lewis{4.,NO}.}
 \end{figure}
\end{LTXexample}

\end{document}