summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/modiagram/modiagram_doc_en.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/modiagram/modiagram_doc_en.tex')
-rw-r--r--Master/texmf-dist/doc/latex/modiagram/modiagram_doc_en.tex928
1 files changed, 604 insertions, 324 deletions
diff --git a/Master/texmf-dist/doc/latex/modiagram/modiagram_doc_en.tex b/Master/texmf-dist/doc/latex/modiagram/modiagram_doc_en.tex
index f79000a55f2..a1008bea4d5 100644
--- a/Master/texmf-dist/doc/latex/modiagram/modiagram_doc_en.tex
+++ b/Master/texmf-dist/doc/latex/modiagram/modiagram_doc_en.tex
@@ -1,10 +1,10 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% --------------------------------------------------------------------------- %
-% - MOdiagram - modiagram_doc_en.tex - %
+% - MOdiagram - modiagram_doc_de.tex - %
% - easy creation of molecular orbital diagrams - %
% --------------------------------------------------------------------------- %
% - Clemens NIEDERBERGER - %
-% - 2011/09/25 - %
+% - 2011/10/27 - %
% --------------------------------------------------------------------------- %
% - http://www.mychemistry.eu/ - %
% - contact@mychemistry.eu - %
@@ -30,19 +30,48 @@
% - modiagram_doc_de.tex, README - %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass{scrartcl}
-\usepackage{xparse}[2011/09/05]
\usepackage[english]{babel}
\usepackage[utf8]{inputenx}
+\usepackage{lmodern,emerald,microtype}
\usepackage[dvipsnames]{xcolor}
\colorlet{code}{RawSienna}
-\usepackage{modiagram,xspace,siunitx,framed,chemfig}
-\usepackage{showexpl}
+\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\small\color{code!80}},
+ basicstyle = {\ttfamily},
breaklines = true,
commentstyle = {\color[named]{Gray}},
backgroundcolor = \color{yellow!20},
@@ -51,7 +80,20 @@
numberblanklines = true,
numbersep = .3em,
xleftmargin = 1em,
- gobble = 1
+ gobble = 1,
+ moredelim = [is][\color{black}]{|}{|},
+ keywordstyle = \color{code},
+ morekeywords =
+ {
+ AO,
+ atom,
+ connect,
+ draw,
+ EnergyAxis,
+ molecule,
+ MOsetup,
+ usepackage
+ }
}
\usepackage{hyperref}
@@ -72,21 +114,40 @@
}
\newcommand*\MOname{\textsf{MOdiagram}\xspace}
-\newcommand*\MOversion{0.1\xspace}
-\newcommand*\MOdate{2011/09/25}
+\newcommand*\MOversion{0.2\xspace}
+\newcommand*\MOdate{2011/10/27}
-\newcommand*\paket[1]{\textsf{#1}\footnote{\url{http://www.ctan.org/pkg/#1/}}}
-% \newcommand*\paket[1]{\textsf{#1}}
+\newcommand*\paket[1]{\textsf{#1}\footnote{\url{http://www.ctan.org/pkg/#1}}}
\newcommand*\changefont[3]{\fontfamily{#1}\fontseries{#2}\fontshape{#3}\selectfont}
\DeclareDocumentEnvironment{myquote}{o}
{\quote\small\changefont{cmss}{m}{sl}}
{\IfNoValueF{#1}{\par\noindent\parbox{\linewidth}{\raggedleft\normalfont\itshape#1}}\endquote}
-\NewDocumentCommand\cmd{v}{{\color{code!80}\ttfamily#1}}
\newcommand*\TikZ{\mbox{Ti\textbf{\textit{k}}Z}\xspace}
-\newcommand*\bzw{\mbox{bzw.}\xspace}
+\newcommand*\etc{\mbox{etc.}\xspace}
+\newcommand*\ie{\mbox{i.e.}\xspace}
+
+\newlength\marginnotewidth
+\NewDocumentCommand\marginnote { s O{TeenSpirit} m } {%
+ \settowidth\marginnotewidth{\small\csname ECF#2\endcsname\color{red}#3}
+ \addtolength\marginnotewidth{20pt}
+ \noindent\makebox[0cm]{\hskip-\marginnotewidth\small\csname ECF#2\endcsname\color{red}#3}%
+ \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}
@@ -112,7 +173,7 @@
2p = {2;pair,up,up}
}
\molecule[NO]{
- 2pMO = {1.8,.4;pair,pair,pair,up,,},
+ 2pMO = {1.8,.4;pair,pair,pair,up},
color = { 2piy*=red }
}
\end{MOdiagram}
@@ -120,253 +181,268 @@
\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/}}, \paket{amsmath} and \paket{textgreek}. Additionally the \TikZ libraries \textsf{calc} and \textsf{arrows} are loaded.
+\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.
-It is useful to be familiar with the \paket{pgf} or the \paket{tikz} package.
+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 rection to the question \href{http://tex.stackexchange.com/questions/13863/molecular-orbital-diagrams-in-latex}{Molecular orbital diagrams in LaTeX}. There it says
+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{myquote}
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{myquote}
-The problem was solved using \TikZ, since no package existed for that purpose. \MOname is intended to fill this gap.
+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}
-Every molecular orbital (MO) diagrams are created using the environment \cmd=MOdiagram= . Inside this environment two commands are important to begin with.
+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}
- \cmd=\atom[<name>]{<pos>}{<AO-spec>}=
+ \lstinline=\atom[<name>]{<pos>}{<|AO|-spec>}=
\begin{itemize}\small
- \item\cmd=<name>= (o) caption of the atom
- \item\cmd=<pos>= (m) on the left or the right in the diagram
- \item\cmd=<AO-spec>= (m) specifications of the atomic orbitals (AO)
+ \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, }
+ 2p = {1.5; up, down }
}
\end{MOdiagram}
\end{LTXexample}
-
-As you can see, the argument \cmd=<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:
+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\cmd+1s={<rel. energy>; <el-spec>}+
- \item\cmd+2s={<rel. energy>; <el-spec>}+
- \item\cmd+2p={<rel. energy>; <x el-spec>, <y el-spec>, <z el-spec>}+
+ \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}
-\cmd=<el-spec>= can have the values \cmd=pair=, \cmd=up= and \cmd=down= or can be left empty. \cmd=<rel. energy>= actually is the $y$ coordinate ansd shifts the AO vertically by \cmd=<rel. energy>= \si{\centi\metre}.
-
-The argument \cmd=<pos>= is important, when p orbitals are used. For instance compare the following example to the one before:
+\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, }
+ 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}
+\begin{LTXexample}[pos=b]
\begin{MOdiagram}
\atom{left}{
1s = { 0; pair} ,
2s = { 1; pair} ,
- 2p = {1.5; up, down, }
+ 2p = {1.5; up, down }
}
\atom{right}{
1s = { 0; pair} ,
2s = { 1; pair} ,
- 2p = {1.5; up, down, }
+ 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.
-With the next command 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}
+\subsection{The \texttt{\textbackslash molecule} Command}\label{ssec:molecule}
\begin{framed}
- \cmd=\molecule[<name>]{<MO-spec>}=
+ \lstinline=\molecule[<name>]{<MO-spec>}=
\begin{itemize}\small
- \item\cmd=<name>= (o) caption of the molekule
- \item\cmd=<MO-spec>= (m) specifications of the molecular orbitals (MO)
+ \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, } }
+ \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 command \cmd=\molecule= connects the AO with the bonding and anti-bondung MO. \cmd=\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 \cmd=<MO-spec>= accepts a comma separated list of key/value pairs:
+The argument \lstinline=<MO-spec>= accepts a comma separated list of key/value pairs:
\begin{framed}
\begin{itemize}
- \item\cmd+1sMO={<energy gain>; <s el-spec>, <s* el-spec>}+ (connects the AO specified by \cmd=1s=)
- \item\cmd+2sMO={<energy gain>; <s el-spec>, <s* el-spec>}+ (connects the AO specified by \cmd=2s=)
- \item\cmd+2pMO={<s energy gain>, <p energy gain>; <s el-spec>, <py el-spec>, <pz el- spec>, <py* el-spec>, <pz* el-spec>, <s* el-spec>}+ (connects the AO specified by \cmd=2p=)
+ \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}
+\begin{lstlisting}[basicstyle = {\ttfamily\small}]
\begin{MOdiagram}
- \atom{left} { 1s = { 0; } }
- \atom{right}{ 1s = { 0; } }
- \molecule { 2sMO = {.75; , } }
+ \atom{left} { 1s = 0 }
+ \atom{right}{ 1s = 0 }
+ \molecule { 2sMO = .75 }
\end{MOdiagram}
\end{lstlisting}
-The value used in \cmd=<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.
-%
+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, } }
+ \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, } }
+ \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 with \cmd=2pMO=: the splitting of the \textsigma\ orbitals and the splitting of the \textpi\ orbitals.
+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 , , , } }
+ \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 = {0;pair},
- 2s = {2;pair},
- 2p = {5;pair,up,up}
+ 1s, 2s, 2p = {;pair,up,up}
}
\atom{right}{
- 1s = {0;pair},
- 2s = {2;pair},
- 2p = {5;pair,up,up}
+ 1s, 2s, 2p = {;pair,up,up}
}
\molecule{
- 1sMO = {.5;pair,pair},
- 2sMO = {.5;pair,pair},
- 2pMO = {1.5,.5;pair,pair,pair,up,up,}
+ 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]
+\begin{MOdiagram}[distance=6cm,AO-width=20pt,labels-fs=\tt\footnotesize,labels-style={yshift=10pt}]
\atom{left}{
- 1s={0;},
- 2s={2;},
- 2p={5;,,},
+ 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;,,},
+ 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;,,,,,},
+ 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) -- (1sigma*) ;
+ \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,fill=blue!20,opacity=.5] (1sigma*) circle (8pt);
+ \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}
+\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}{}
- \atom[Xe]{right}{}
- \molecule[\ce{XeF2}]{}
- \AO[a](1cm){s}{0;up}
- \AO[b](1cm){s}{.25;up}
- \AO[c](3cm){s}{-1;pair}
- \AO[d](3cm){s}{0;pair}
- \AO[e](3cm){s}{1.5;}
- \AO[f](5cm){s}{1.25;pair}
- \connect{ a & d , b & c , b & e , c & f , e & f }
- \node[right,xshift=4mm] at (c) {\footnotesize bonding};
- \node[above] at (d.90) {\footnotesize not bonding};
- \node[above] at (e.90) {\footnotesize anti-bonding};
-\end{MOdiagram}
+ \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}
- \cmd=\AO[<name>](<xshift>){<type>}{<energy>;<el-spec>}=
+ \lstinline+\AO[<name>](<xshift>){<type>}[<key = val>]{<energy>;<el-spec>}+
\begin{itemize}\small
- \item\cmd=<name>= (o) name of the node
- \item\cmd=<xshift>= (o) vertical position of the Orbitals, a \TeX\ dimension.
- \item\cmd=<type>= (m) \cmd=s= or \cmd=p=
- \item\cmd=<AO-spec>= (m) specification of the AO
+ \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}
-Depending on the \cmd=<type>= one s or three p porbitals are drawn.
+\newpage
+Depending on the \lstinline=<type>= one s or three p orbitals are drawn.
\begin{LTXexample}
\begin{MOdiagram}
\AO{s}{0;}
@@ -374,72 +450,83 @@ Depending on the \cmd=<type>= one s or three p porbitals are drawn.
\end{MOdiagram}
\end{LTXexample}
-Please notice, that \cmd=<el-spec>= only awaits one specification with the type \cmd=s=, but three with the type \cmd=p=, separated with commas.
-
-If one wants to place such an AO at the position of an atom, one has to know their \cmd=<xshift>=. They have these predefined values (also see section \ref{orbital-positionen}):\label{xshift}
+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;pair}
- \AO(3cm){s}{2;pair}
- \AO(5cm){s}{2;pair}
+ \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 \cmd=AO-width= (see section \ref{option:AO-width}):
-
+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;,,}}
+ \atom{left} {2p=0}
+ \atom{right}{2p=0}
% above the left atom:
- \AO(1cm) {s}{ .5;pair}
+ \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;pair}
+ \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 \cmd=\AO= also can be connected. For this you can use the \TikZ command \cmd=\draw=, of course:
-
+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[a]{s}{0;} \AO[b](2cm){s}{1;}
- \AO[c]{s}{2;} \AO[d](2cm){s}{1.5;}
- \draw (a) -- (b) (c) -- (d);
+ \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 \cmd=\molecule=\footnote{which can be customized, see page \pageref{option:lines}}, you should use the command \cmd=\connect=.
+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}
- \cmd=\connect{<AO-connect>}=
+ \lstinline=\connect{<|AO-connect|>}=
\begin{itemize}\small
- \item\cmd=<AO-connect>= (m) comma separated list of node name pairs connected with \cmd=&=.
+ \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 \cmd=&=:
-
+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[a]{s}{0;} \AO[b](2cm){s}{1;}
- \AO[c]{s}{2;} \AO[d](2cm){s}{1.5;}
- \connect{ a & b, c & d }
+ \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: \cmd=\connect= adds the anchor \cmd=east= to the first name and the anchor \cmd=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:
-
+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}
@@ -448,233 +535,363 @@ Some things still need to be said: \cmd=\connect= adds the anchor \cmd=east= to
\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 \cmd=<distance>= (\cmd=<dist>=) and \cmd=<AO-width>= (\cmd=<AO>=). In sections \ref{option:distance} and \ref{option:AO-width} these lengths and how they can be changed are discussed.
-
-\begin{MOdiagram}[distance=6cm,AO-width=25pt,labels-fs=\tt\footnotesize,labels-style={text width=40pt,align=center}]
+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={3;},
- 2p={8;,,},
- label={ 1sleft={1cm}, 2sleft={1cm}, 2pxleft={1cm}, 2pyleft={1cm - 2*<AO>}, 2pzleft={1cm - 4*<AO>} } }
+ 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={3;},
- 2p={8;,,},
+ 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={.75;,},
- 2sMO={.75;,},
- 2pMO={3,1;,,,,,},
+ 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}
-\subsection{Environment Options}
+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\cmd+style=<type>+ change the style of the orbitals and the connecting lines, section \ref{option:style}.
- \item\cmd+distance=<dim>+ distance betwen left and right atom, section \ref{option:distance}.
- \item\cmd+AO-width=<dim>+ change the width of orbitals, section \ref{option:AO-width}.
- \item\cmd+lines=<tikz>+ change the \TikZ style of the connecting lines, section \ref{option:lines}.
- \item\cmd+names=<bool>+ add captions to the atoms and the molecule, section \ref{option:names}.
- \item\cmd+labels=<bool>+ add default labels to the orbitals, section \ref{option:labels}.
- \item\cmd+labels-fs=<cs>+ change the font size of the labels, section \ref{option:labels-fs}.
- \item\cmd+labels-style=<tikz>+ change the \TikZ style of the labels, section \ref{option:labels-style}.
+ \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. They are used either as option of the environment
+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}
-or as argument of the setup command
-\begin{framed}
- \cmd+\MOsetup{<key = value>}+
- \begin{itemize}\small
- \item\cmd+<key = val>+ (m) comma separated key/value list
- \end{itemize}
-\end{framed}
\subsubsection{Option \texttt{style}}\label{option:style}
-There are four different styles, which can be chosen.
+There are five different styles, which can be chosen.
\begin{itemize}
- \item\cmd+style=plain+ \AOinline[style=plain]{pair} (default)
- \item\cmd+style=square+ \AOinline[style=square]{pair}
- \item\cmd+style=round+ \AOinline[style=round]{pair}
- \item\cmd+style=fancy+ \AOinline[style=fancy]{pair}
+ \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 = {0;up} }
- \atom[H]{right}{ 1s = {0;up} }
- \molecule[\ce{H2}]{ 1sMO = {.75;pair,} }
+ % 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'
+ % use package `mhchem'
\begin{MOdiagram}[style=square]
- \atom[H]{left} { 1s = {0;up} }
- \atom[H]{right}{ 1s = {0;up} }
- \molecule[\ce{H2}]{ 1sMO = {.75;pair,} }
+ \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'
+ % use package `mhchem'
\begin{MOdiagram}[style=round]
- \atom[H]{left} { 1s = {0;up} }
- \atom[H]{right}{ 1s = {0;up} }
- \molecule[\ce{H2}]{ 1sMO = {.75;pair,} }
+ \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'
+ % use package `mhchem'
\begin{MOdiagram}[style=fancy]
- \atom[H]{left} { 1s = {0;up} }
- \atom[H]{right}{ 1s = {0;up} }
- \molecule[\ce{H2}]{ 1sMO = {.75;pair,} }
+ \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 \cmd+distance=<dim>+ the length can be adjusted. With this, the position of the right atom is changed to \cmd=1cm + <dim>= and the position of the molecule is changed to \cmd=0.5*(1cm + <dim>)=, also see page Seite \pageref{xshift} and section \ref{orbital-positionen}.
-
+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'
+ % use package `mhchem'
\begin{MOdiagram}[distance=6cm]
- \atom[H]{left} { 1s = {0;up} }
- \atom[H]{right}{ 1s = {0;up} }
- \molecule[\ce{H2}]{ 1sMO = {.75;pair,} }
+ \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 \cmd=AO-width= sets the length of the horizontal line in a orbital displayed with the \cmd=plain= style. It's default value is \SI{10}{pt}.
-
+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'
+ % use package `mhchem'
\begin{MOdiagram}[AO-width=15pt]
- \atom[H]{left} { 1s = {0;up} }
- \atom[H]{right}{ 1s = {0;up} }
- \molecule[\ce{H2}]{ 1sMO = {.75;pair,} }
+ \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'
+ % use package `mhchem'
\begin{MOdiagram}[style=fancy,AO-width=15pt]
- \atom[H]{left} { 1s = {0;up} }
- \atom[H]{right}{ 1s = {0;up} }
- \molecule[\ce{H2}]{ 1sMO = {.75;pair,} }
+ \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}.
-By changing the value of \cmd=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 \cmd=lines= can be used to modify the \TikZ style of the connecting lines:
-
+The option \lstinline=lines= can be used to modify the \TikZ style of the connecting lines:
\begin{LTXexample}
- % use package 'mhchem'
+ % use package `mhchem'
\begin{MOdiagram}[lines={gray,thin}]
- \atom[H]{left} { 1s = {0;up} }
- \atom[H]{right}{ 1s = {0;up} }
- \molecule[\ce{H2}]{ 1sMO = {.75;pair,} }
+ \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 \cmd=names=, the atoms and the molecule get captions, if you have used the optional \cmd=<name>= argument of \cmd=\atom= and/or \cmd=\molecule=.
-
+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'
+ % use package `mhchem'
\begin{MOdiagram}[names]
- \atom[H]{left} { 1s = {0;up} }
- \atom[H]{right}{ 1s = {0;up} }
- \molecule[\ce{H2}]{ 1sMO = {.75;pair,} }
+ \atom[H]{left} { 1s = {;up} }
+ \atom[H]{right}{ 1s = {;up} }
+ \molecule[\ce{H2}]{ 1sMO = {.75;pair} }
\end{MOdiagram}
\end{LTXexample}
+\subsubsection{Oprionen \texttt{names-style} und \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 und PGF -- 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 \cmd=labels=, predefined labels are written below the orbitals. These labels can be changed, see section \ref{key:label}.
-
+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'
+ % use package `mhchem'
\begin{MOdiagram}[labels]
- \atom[H]{left} { 1s = {0;up} }
- \atom[H]{right}{ 1s = {0;up} }
- \molecule[\ce{H2}]{ 1sMO = {.75;pair,} }
+ \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 \cmd=\small=. If you want to change that, you can use the option \cmd=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'
+ % use package `mhchem'
\begin{MOdiagram}[labels,labels-fs=\footnotesize]
- \atom[H]{left} { 1s = {0;up} }
- \atom[H]{right}{ 1s = {0;up} }
- \molecule[\ce{H2}]{ 1sMO = {.75;pair,} }
+ \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'
+ % use package `mhchem'
\begin{MOdiagram}[labels,labels-fs=\sffamily\footnotesize]
- \atom[H]{left} { 1s = {0;up} }
- \atom[H]{right}{ 1s = {0;up} }
- \molecule[\ce{H2}]{ 1sMO = {.75;pair,} }
+ \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 \cmd=labels-style= changes the \TikZ style of the nodes, within which the labels are written.
-
+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}]
- \atom[H]{left} { 1s = {0;up} }
- \atom[H]{right}{ 1s = {0;up} }
- \molecule[\ce{H2}]{ 1sMO = {.75;pair,} }
+ % 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 \cmd=label=. This key is used in the \cmd=\atom= and \cmd=\molecule= commands in the \cmd=<AO-spec>= or \cmd=<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.
-
+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'
+ % use package `mhchem'
\begin{MOdiagram}[labels-fs=\footnotesize]
- \atom[H]{left} { 1s = {0;up} }
- \atom[H]{right}{ 1s = {0;up} }
+ \atom[H]{left} { 1s = {;up} }
+ \atom[H]{right}{ 1s = {;up} }
\molecule[\ce{H2}]{
- 1sMO = {.75;pair,},
+ 1sMO = {.75;pair},
label = { 1sigma = {bonding MO} }
}
\end{MOdiagram}
\end{LTXexample}
\begin{LTXexample}
\begin{MOdiagram}[style=square,distance=6cm]
- \atom{left} { 1s = {0;up} }
- \atom{right}{ 1s = {0;up} }
+ \atom{left} { 1s = {;up} }
+ \atom{right}{ 1s = {;up} }
\molecule{
- 1sMO = {.75;pair,} ,
+ 1sMO = {.75;pair} ,
label = {
1sigma = $\sigma$,
1sigma* = $\sigma^*$
@@ -685,95 +902,158 @@ If you don't want to use the predefined labels, change single labels or use only
\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 \cmd=label= key the \cmd=color= key can be used to display coloured electrons:
-
+Analogous to the \lstinline=label= key the \lstinline=color= key can be used to display coloured electrons:
\begin{LTXexample}
- % use package 'mhchem'
+ % use package `mhchem'
\begin{MOdiagram}[labels-fs=\footnotesize]
\atom[H]{left}{
- 1s = {0;pair},
- color = { 1sleft = blue }
+ 1s, color = { 1sleft = blue }
}
\atom[H]{right}{
- 1s = {0;pair},
- color = { 1sright = red }
+ 1s, color = { 1sright = red }
}
\molecule[\ce{H2}]{
- 1sMO = {.75;pair,pair},
+ 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 \cmd=\EnergyAxis=.
+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}
- \cmd+\EnergyAxis[<key = val>]+
+ \lstinline+\EnergyAxis[<key = val>]+
\begin{itemize}\small
- \item\cmd+<key = val>+ (o) key/value pairs to modify the axis
+ \item\lstinline+<key = val>+ (o) ey/value pairs to modify the axis
\end{itemize}
\end{framed}
-
\begin{LTXexample}
\begin{MOdiagram}
- \atom{left} { 1s = {0;up} }
- \atom{right}{ 1s = {0;up} }
- \molecule{ 1sMO = {.75;pair,} }
+ \atom{left} { 1s = {;up} }
+ \atom{right}{ 1s = {;up} }
+ \molecule{ 1sMO = {.75;pair} }
\EnergyAxis
\end{MOdiagram}
\end{LTXexample}
-
-For the time beeing there are two keys to modify the axis.
+For the time being there are two keys to modify the axis.
\begin{framed}
\begin{itemize}
- \item\cmd+title=<title>+ axis label (default: \cmd=energy=).
- \item\cmd+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: \cmd=>=).
+ \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 = {0;up} }
- \atom{right}{ 1s = {0;up} }
- \molecule{ 1sMO = {.75;pair,} }
+ \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 = {0;up} }
- \atom{right}{ 1s = {0;up} }
- \molecule{ 1sMO = {.75;pair,} }
+ \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}
-\subsection{Examples}
-%
\begin{LTXexample}[pos=b]
- % use packages 'mhchem' (and 'textgreek' loaded by 'MOdiagram')
+ % 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 = {0;pair},
- 2s = {2;pair},
- 2p = {5;pair,up,up}
+ 1s, 2s, 2p = {;pair,up,up}
}
\atom[\ce{O_b}]{right}{
- 1s = {0;pair},
- 2s = {2;pair},
- 2p = {5;pair,up,up}
+ 1s, 2s, 2p = {;pair,up,up}
}
\molecule[\ce{O2}]{
- 1sMO = {.5;pair,pair},
- 2sMO = {.5;pair,pair},
- 2pMO = {1.5,.5;pair,pair,pair,up,up,},
+ 1sMO, 2sMO, 2pMO = {;pair,pair,pair,up,up},
color = { 2piy*=red, 2piz*=red }
}
\EnergyAxis
@@ -781,11 +1061,12 @@ For the time beeing there are two keys to modify the axis.
\caption{MO diagram of $^3$\textSigma-\ce{O2}.}
\end{figure}
\end{LTXexample}
+
\begin{LTXexample}[pos=b]
- % use package 'chemfig'
+ % use package `chemfig'
\begin{figure}
- \centering
- \begin{MOdiagram}[style=fancy,distance=7cm,AO-width=15pt,labels]
+ \centering\MOsetup{style = fancy, distance = 7cm, AO-width = 15pt, labels}
+ \begin{MOdiagram}
\atom[N]{left}{
2p = {0;up,up,up}
}
@@ -793,14 +1074,13 @@ For the time beeing there are two keys to modify the axis.
2p = {2;pair,up,up}
}
\molecule[NO]{
- 2pMO = {1.8,.4;pair,pair,pair,up,,},
+ 2pMO = {1.8,.4;pair,pair,pair,up},
color = { 2piy*=red }
}
- \EnergyAxis[title]
+ \EnergyAxis
\end{MOdiagram}
\caption{Part of the MO diagram of \protect\Lewis{4.,NO}.}
\end{figure}
\end{LTXexample}
-%
\end{document} \ No newline at end of file