%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ------------------------------------------------------------------------------------- %
% - myChemistry - mychemistry_de.tex -------------------------------------------------- %
% - Create reaction schemes with LaTeX and ChemFig ------------------------------------ %
% ------------------------------------------------------------------------------------- %
% - Clemens Niederberger -------------------------------------------------------------- %
% - 2011/04/27 ------------------------------------------------------------------------ %
% ------------------------------------------------------------------------------------- %
% - http://www.niederberger-berlin.net/2011/02/latex-mychemistry/ --------------------- %
% - kontakt@niederberger-berlin.net --------------------------------------------------- %
% ------------------------------------------------------------------------------------- %
% - If you have any ideas, questions, suggestions or bugs to report, please feel free - %
% - to contact me. -------------------------------------------------------------------- %
% ------------------------------------------------------------------------------------- %
% - Copyright 2011 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 mychemistry.sty, mychemistry_de.tex,              - %
% - mychemistry_en.tex, examples.tex                                                  - %
% ------------------------------------------------------------------------------------- %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[DIV10,titlepage,toc=index]{scrartcl}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% - Pakete ---------------------------------------------------------------------------- %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{etoolbox}
\usepackage{scrhack}                             % verbessert KOMAs Zusammenspiel mit floats
\usepackage{emerald}                             % Schriftarten
\usepackage[utf8]{inputenx}                      % Zeichenkodierung: Eingabe
\usepackage[T1]{fontenc}                         % Text-Ausgabe-Codierung
\usepackage{textcomp,mathcomp}
\usepackage[makeindex]{splitidx}                 % Index; Kompilieren: makeindex -sl index.ist *.idx
\usepackage[ngerman]{babel}                      % Sprache
\usepackage{xspace,paralist}                     % xspace und Listen
\usepackage{siunitx,booktabs}
  \DeclareSIUnit{\emlength}{em}
  \DeclareSIUnit{\pt}{pt}
  \sisetup{list-final-separator = { und },
           range-phrase         = { bis },
           separate-uncertainty = true,
           exponent-product     = \cdot,
           per-mode             = symbol}
\usepackage{listings,fancyvrb}                   % wortwörtliche Anzeige
  \newcommand{\vitem}[1][]{\SaveVerb[aftersave={\item[\textnormal{\UseVerb[#1]{vsave}}]}]{vsave}}
\usepackage[perpage,multiple]{footmisc}          % Fußnoten
\usepackage[ngerman]{varioref}                   % flexibles Referenzieren
  \labelformat{section}{Ab\-schnitt #1}
  \labelformat{subsection}{Ab\-schnitt #1}
  \labelformat{subsubsection}{Ab\-schnitt #1}
  \labelformat{table}{Ta\-bel\-le #1}
\usepackage[dvipsnames]{xcolor}                  % Farbe
  \colorlet{code}{RawSienna}
  \xdefinecolor{MyDarkRed}{rgb}{0.4392,0.0627,0.0627}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% - Anzeige des Inhaltsverzeichnisses ------------------------------------------------- %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{titletoc}
\titlecontents{section} [6.5pc]                                      % SECTION-ANZEIGE
   {\renewcommand\familydefault{ppl}\addvspace{2pc}\bfseries
    \color{MyDarkRed}\titlerule[2pt]\filright\normalcolor\nobreak}   % davor
   {\contentslabel
      [\textsc{Abschnitt}\
       \thecontentslabel]{6.5pc}}                                    % nummerierter Eintrag
   {\hspace{-6.5pc}\scshape\thecontentslabel}                        % unnummerierter Eintrag
   {\hfill\contentspage}
   [\addvspace{3pt}\renewcommand\familydefault{ppl}]                 % danach
%%
\newcommand{\xquad}{\hspace{1em plus.4em minus.4em}}
\titlecontents*{subsubsection}[6pc]                                  % SUBSUBSECTION-ANZEIGE
   {\footnotesize\itshape}
   {}
   {}
   {,~\thecontentspage}
   [\xquad\textbullet\xquad]
   {}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% - Hyperlinks ------------------------------------------------------------------------ %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{hyperref}
  \hypersetup{colorlinks=true,                   % Setup der Hyperlinks und des pdf
              linkcolor=MyDarkRed!20!red,
              urlcolor=blue!70,
              plainpages=false,
              bookmarksopen=true,
              bookmarksopenlevel=2,
              bookmarksnumbered=true,
              pdfstartview=FitH,
              pdfauthor={Clemens Niederberger},
              pdftitle={myChemistry},
              pdfsubject={Create reaction schemes with LaTeX and ChemFig},
              pdfkeywords={myChemistry},
              pdfcreator={LaTeX}
  }
\usepackage[color=MyDarkRed]{mychemistry}        % myChemistry
  \def\thebeispiel{\arabic{beispiel}}            % chemexec angepasst
  \labelformat{beispiel}{Bei\-spiel #1}
  \labelformat{rxnfloat}{Sche\-ma #1}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% - Listings anpassen ----------------------------------------------------------------- %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\fvset{numbers=left,numbersep=3pt,xleftmargin=20pt,gobble=0,numberblanklines=true}
\lstset{literate={ä}{{\"a}}1 {ö}{{\"o}}1 {ü}{{\"u}}1 {Ä}{{\"A}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1 {ß}{{\ss}}1}
\lstset{
   language=[LaTeX]TeX,
   basicstyle={\ttfamily},                       % Grundstil
   extendedchars=true,
   numbers=left,                                 % Zeilennummern
   numberstyle=\tiny,                            % Größe des Zeilennummern
   numberblanklines=true,                        % Leerzeilen nummerieren
   gobble=0,                                     % das erste Leerzeichen abschneiden
   xleftmargin=20pt,                             % Einrückung links
   breaklines=true,                              % Zeilenumbruch
   moredelim=[is][\color{red!25!purple}]{!!}{!!},% Hervorhebung
   commentstyle={\color[named]{Gray}},
   emph={begin,end},                             % Umgebungen hervorheben
   emphstyle=\color{red},
   keywordstyle=\color{code},
   keywordstyle=[20]\color{blue},
   morekeywords=[20]{rxn,rxnfloat,rxnscheme,tikzpicture},
   texcsstyle=[30]\color{code},
   moretexcs=[30]{anywhere,arrow,branch,chemabove,chemand,chembelow,chemfig,chemmove,chemname,chemrel,chemsign,ce,color,compound,declarecompound,draw,dummy,elmove,floatplacement,floatstyle,Hpl,Hyd,lewis,listof,makeinvisible,makevisible,marrow,mCsetup,merge,mesomeric,node,nu,om,op,ox,pgfpositionnodelater,reactant,restylefloat,setarrowlabel,setarrowlength,setarrowline,setatomsep,setatomsize,setbondlength,setbondshape,setcrambond,setmergelength,setrcndist,setrxnalign,setschemealign,setschemename,si,SI,textcolor,transition,vflipnext},
   fancyvrb=true
   }

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% - Kopf- und Fußzeile ---------------------------------------------------------------- %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{scrpage2}
\pagestyle{scrheadings}
\setheadwidth{textwithmarginpar}
\automark{section}
\ihead{\mC v\mCversion}
\ohead{\bfseries Dokumentation}
\ifoot{\small\color{gray}-~Seite~\thepage~-}
\cfoot{}
\ofoot{}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% - Komascript ------------------------------------------------------------------------ %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setkomafont{disposition}{\rmfamily\bfseries}    % Gewicht fett und Schriftart roman

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% - neue Befehle ---------------------------------------------------------------------- %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% - Hyperlinks in Listings ------------------------------------------------------------ %
% - auf Basis von Code usenet: comp.text.tex ------------------------------------------ %
\makeatletter
\AtBeginEnvironment{VerbatimOut}{\let\lsthk@OutputBox\lsthk@OutputBox@H@@k\let\lstbasicfont\footnotesize}
\AtBeginEnvironment{Verbatim}{\let\lsthk@OutputBox\lsthk@OutputBox@H@@k\let\lstbasicfont\footnotesize}
\AtBeginEnvironment{SideBySideExample}{\let\lsthk@OutputBox\lsthk@OutputBox@H@@k\let\lstbasicfont\footnotesize}
\AtBeginDocument{\preto\FV@VerbatimBegin{\let\lsthk@OutputBox\lsthk@OutputBox@H@@k\let\lstbasicfont\footnotesize}}
\AtBeginDocument{\preto\FV@VerbatimBegin{\let\lsthk@OutputBox\lsthk@OutputBox@H@@k\let\lstbasicfont\footnotesize}}
\providerobustcmd*\ifrefundefined [1]{%
  \begingroup%
    \csname @safe@activestrue\endcsname%
    \expandafter\endgroup\csname @\ifcsname r@#1\endcsname second\else first\fi oftwo\endcsname
}% \ifrefundefined
\def\lsthk@OutputBox@H@@k{%
    \begingroup%
      \let\lst@UM\@empty%
      \edef\@tempc{ssec:\detokenize\expandafter{\the\lst@token }}%\edef
      \ifrefundefined{\@tempc}%
    \endgroup%
    \sethyperlistings%
}% \lsthk@OutputBox@fcltxH@@k
\def\sethyperlistings {\global\let \hyperlistingsreference =\@tempc
     \endgroup \aftergroup \dohyperlistings }% after \hbox
\def\dohyperlistings {\def\lst@alloverstyle ##1{\hyperlistings ##1}}
\def\hyperlistings{%
    \setbox\@tempboxa\hbox%
    \bgroup%
      \rlap{\hypersetup {linkcolor=.}\relax\fboxrule\z@%
      \hyperref[\hyperlistingsreference]{\boxframe{\wd\@tempboxa}{\ht\@tempboxa}{\dp\@tempboxa}}}%
      \unhbox\@tempboxa%
    \egroup%
}% \hyperlistings
\let\lsthk@OutputBox\lsthk@OutputBox@H@@k
% - Beispiele ------------------------------------------------------------------------- %
% - auf Basis der Beispiele in der fancyvrb-Dokumentation ----------------------------- %
\newcommand{\BeginExample}{%
 \VerbatimEnvironment
 \begin{VerbatimOut}[gobble=1]{\jobname.tmp}}

 \newcommand{\BelowExample}[1]{%
 \VerbatimInput[numbersep=3pt,fontsize=\footnotesize,
                  numbers=left,xleftmargin=5mm,xrightmargin=0pt]{\jobname.tmp}
#1}
% - Code, Ergebnis rechts ------------------------------------------------------------- %
\newcommand{\SideBySide@Example}[1]{%
\setlength{\parindent}{0pt}%
\begin{minipage}[c]{.48\textwidth}
 \VerbatimInput[numbersep=3pt,fontsize=\footnotesize,
                numbers=left,xleftmargin=5mm,xrightmargin=0pt]{\jobname.tmp}
\end{minipage}%
\hspace*{2mm}
\begin{minipage}[c]{.48\textwidth}
 #1
\end{minipage}
}

\def\SideBySideExample{%
 \catcode`\^^M=\active
 \@ifnextchar[{\catcode`\^^M=5\beispiel\vspace*{1mm}\SideBySideExample@}%
              {\catcode`\^^M=5\beispiel\vspace*{1mm}\SideBySideExample@@}}
\def\SideBySideExample@[#1]{#1\SideBySideExample@@}
\def\SideBySideExample@@{\BeginExample}
\def\endSideBySideExample{%
 \end{VerbatimOut}%
 \SideBySide@Example{\input{\jobname.tmp}}\vspace*{1mm}\endbeispiel}
% - Code, Ergebnis danach ------------------------------------------------------------- %
\newcommand{\@Example}[1]{%
\setlength{\parindent}{0pt}%
\begin{minipage}{\textwidth}
 \VerbatimInput[numbersep=3pt,fontsize=\footnotesize,
                numbers=left,xleftmargin=5mm,xrightmargin=0pt]{\jobname.tmp}
\end{minipage}%

\smallskip
\begin{minipage}{\textwidth}
 #1
\end{minipage}
}

\def\Example{%
 \catcode`\^^M=\active
 \@ifnextchar[{\catcode`\^^M=5\beispiel\vspace*{1mm}\Example@}%
              {\catcode`\^^M=5\beispiel\vspace*{1mm}\Example@@}}
\def\Example@[#1]{#1\Example@@}
\def\Example@@{\BeginExample}
\def\endExample{%
 \end{VerbatimOut}%
 \@Example{\input{\jobname.tmp}}\vspace*{1mm}\endbeispiel}
\makeatother

% - weitere Makros -------------------------------------------------------------------- %
\newcommand{\mC}{{\color{MyDarkRed}\ECFJD my\-Chemis\-try}\xspace} % Paketname
\newcommand{\CF}{{\ECFAugie ChemFig}\xspace}              % ChemFig in der originalen Schrift
\newcommand{\zB}{\mbox{z.\,B.}\xspace}
\newcommand{\TikZ}{\mbox{Ti{\bfseries\itshape k}Z}\xspace}
% folgender Befehl ist eine Kopie von CHristian Tellecheas 
\newcommand\NEU[1][0pt]{\leavevmode\llap{\footnotesize\ECFTeenSpirit\color{red}Neu\kern\dimexpr20pt+#1\relax}}
\newlength{\tmplength}
% - für Beispiele --------------------------------------------------------------------- %
\newcommand{\oben}{\tikz\node[draw,minimum width=3em,minimum height=1.5em,blue]{\footnotesize oben};}
\newcommand{\unten}{\tikz\node[draw,minimum width=3em,minimum height=1.5em,red]{\footnotesize unten};}
\newcommand{\substanz}{\tikz\node[draw,minimum width=5em,minimum height=3em]{};}

\begin{document}
\begin{titlepage}
  % inspired by the titlepage of chemfig's documentation
  \begin{tikzpicture}[remember picture,overlay]
    \shade[color=MyDarkRed,right color=white](current page.south west) rectangle ([yshift=3cm,xshift=-3cm]current page.center);
    \shade[top color=black,bottom color=MyDarkRed]([yshift=7cm]current page.east)rectangle([yshift=2.5cm]current page.west);
    \node[text width=\textwidth,opacity=.15,yshift=-5.3cm] at (current page.center) {%
\begin{verbatim}
 \begin{rxn}[,.7]
   \setatomsep{1.5em}\footnotesize
   \reactant[,a]{
     \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[6,,,2]HO)-C(-[2]CH_3)
       (-[6]OH)-CH_3}
   }
   \arrow[a.20]{}{}
   \reactant[20]{
     \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[@{e1}6,,,2]H_2@{e2}
       \chembelow{O}{\oplus})-C(-[2]CH_3)(-[6]OH)-CH_3}\elmove{e1}
       {10:4mm}{e2}{-10:4mm}
   }
   \arrow[,,1.42]{$-\ce{H2O}$}{}
   \reactant{
     \chemfig{\chembelow{C}{\oplus}(-[4]*6(=-=-=-))(-[2]
     *6(=-=-=-))-C(-[2]CH_3)(-[6]OH)-CH_3}
   }
   \arrow[a.-20,-|>]{}{}
   \reactant[-20]{
     \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[6,,,2]HO)-C(-[2]CH_3)
       (-[@{e3}6]@{e4}\chembelow{O}{\oplus}H_2)-CH_3}\elmove{e3}
       {170:4mm}{e4}{-170:4mm}
   }
   \arrow[,,1.42]{$-\ce{H2O}$}{}
   \reactant{
     \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[6,,,2]HO)-
       \chembelow{C}{\oplus}(-[2]CH_3)-CH_3}
   }
 \end{rxn}
\end{verbatim}%
};
  \end{tikzpicture}
  \begin{center}
    \scalebox{4}{\mC}\par
    \Large v\mCversion\par\bigskip
    \footnotesize\mCdate{de}\par
    \normalsize Clemens Niederberger\par\vskip1.5cm
    \color{white}\huge Reaktionsschemata mit \LaTeX\ und \CF erstellen%
  \end{center}
  \vskip3cm
\begin{rxn}[,.7]
  \setatomsep{1.5em}\footnotesize
  \reactant[,a]{ \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[6,,,2]HO)-C(-[2]CH_3)(-[6]OH)-CH_3} }
    \arrow[a.20]{}{}
    \reactant[20]{ \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[@{e1}6,,,2]H_2@{e2}\chembelow{O}{\oplus})-C(-[2]CH_3)(-[6]OH)-CH_3}\elmove{e1}{10:4mm}{e2}{-10:4mm} }
    \arrow[,,1.42]{$-\ce{H2O}$}{}
    \reactant{ \chemfig{\chembelow{C}{\oplus}(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))-C(-[2]CH_3)(-[6]OH)-CH_3} }{}
    \arrow[a.-20,-|>]{}{}
    \reactant[-20]{ \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[6,,,2]HO)-C(-[2]CH_3)(-[@{e3}6]@{e4}\chembelow{O}{\oplus}H_2)-CH_3}\elmove{e3}{170:4mm}{e4}{-170:4mm} }
    \arrow[,,1.42]{$-\ce{H2O}$}{}
    \reactant{ \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[6,,,2]HO)-\chembelow{C}{\oplus}(-[2]CH_3)-CH_3} }
\end{rxn}
\end{titlepage}

\tableofcontents

\section{Über}
\subsection{Änderungen}
Die neuesten Änderungen sind mit {\ECFTeenSpirit\color{red}Neu} gekennzeichnet.
\subsubsection{Version 1.2}
Neben einigen Bugfixes gibt es in Version v1.2 ein paar Neuerungen. Insbesondere wurde das fehlerhafte Verhalten bei der Ausrichtung von Branches sowie das seltsame Verhalten von Pfeilbeschriftungen, wenn man die Pfeillänge änderte, korrigiert. \textbf{Diese Veränderung hat zur Folge, das \mC nun \TikZ oder vielmehr pgf in der Version 2.10 benötigt} (siehe \ref{ssec:voraussetzungen}).

Während sich diese Neuerungen im Hintergrund abspielen, gibt es auch ein paar Neuerungen für die Bedienung. Zum Beispiel gibt es nun einige Paketoptionen, um die automatisch eingebundenen Pakete besser zu handhaben (\ref{ssec:paketoptionen}). Außerdem haben die Pfeile zwei neue Keys bekommen (siehe \ref{ssec:arrow}).

Auch die Umgebungen haben nun ein paar Möglichkeiten mehr, den persönlichen Vorstellungen angepasst zu werden (siehe \ref{sssec:rxn_optionen}, \ref{sssec:rxnscheme_optionen} und \ref{ssec:setrcndist}).

Nicht zuletzt steht \mC ab v1.2 nun unter der LPPL Version 1.3 oder später.

\subsubsection{Version 1.3}
Die Befehle \lstinline+\branch+, \lstinline+\mesomeric+, \lstinline+\reactant+ und \lstinline+\transition+ können als optionales Argument neben der Ausrichtung auch \TikZ-Keys erhalten. Das zweite Argument ist nun ebenfalls als Option einzusetzen. Damit ist das erste optionale Argument immer noch die Ausrichtung, das zweite der Anker und in das dritte können beliebige \TikZ-Keys eingesetzt werden.
\begin{lstlisting}
 \befehl[<pos>,<name>,<tikz>]{}
\end{lstlisting}
Bis Version 1.2 musste die Ausrichtung explizit angegeben werden, auch wenn die Default-Einstellung verwendet werden sollte, falls man \TikZ-Keys verwenden wollte. Das ist seit v1.3 nicht mehr nötig.
\begin{lstlisting}
  % bisher:
  \reactant{\ce{Br2}}{}\arrow{$h\nu$}{}\reactant!![right,draw,inner sep=5pt]!!{\ce{2 \lewis{0.,Br}}}{}
  % jetzt:
  \reactant{\ce{Br2}}\arrow{$h\nu$}{}\reactant!![,,draw,inner sep=5pt]!!{\ce{2 \lewis{0.,Br}}}
\end{lstlisting}
Die Voreinstellungsbefehle wurden umbenannt und der Befehl \lstinline+\mCsetup+ hinzugefügt, mit dem die Voreinstellungen mit einer Schnittstelle gehandhabt werden können. Siehe \ref{ssec:setarrowlength}, \ref{ssec:setatomsize}, \ref{ssec:setbondlength}, \ref{ssec:setbondshape} und \ref{ssec:mCsetup}.

Es gibt den neuen Befehl \lstinline+\chemand+, der ein $+$ erzeugt, siehe \ref{ssec:chemand}.

Und auch das ist vielleicht ganz angenehm: alle \mC-Befehle in den Listings der Dokumentation sind nun anklickbare Hyperlinks, die auf ihre Beschreibung in der Befehlsreferenz verweisen.

\subsubsection{Version 1.4}
Der Befehl \lstinline+\merge+ wurde neu geschrieben, so dass der Pfeil auch beschriftet werden kann.

Der eigentliche Zweck des Befehls \lstinline+\dummy+ ist obsolet geworden. Der Befehl existiert aber weiterhin.

Bei den beiden Umgebungen \lstinline+rxn+ und \lstinline+rxnscheme+ hat sich die Verwendung der Optionen geändert, siehe \ref{sssec:rxn_optionen} und \ref{sssec:rxnscheme_optionen}.

Die Keys von \lstinline+\arrow+ sind in Optionen verändert worden, um die Syntax des Befehls mit den anderen anzugleichen. Zudem gibt es drei neue Pfeiltypen, siehe \ref{ssec:arrow}. Neu ist außerdem das Aussehen der Pfeile und eine Möglichkeit, die Liniendicke der Pfeile anzupassen, siehe \ref{ssec:setarrowline}.

Es gibt einen weiteren neuen Befehl: \lstinline+\anywhere+ (\ref{ssec:anywhere}), mit dem Text oder Formeln außerhalb der Chain gesetzt werden können.

\subsubsection{Version \mCversion}
\NEU%
Im Hintergrund ist viel passiert, was einige neue Features bei der Anwendung gebracht hat. Die wichtigste Neuerung ist eine deutlich flexiblere Richtungsangabe bei allen Befehlen (Reaktanden, Pfeile, Zweige \ldots). Anstelle der starren \lstinline+right below+ u.\,ä. kann jetzt der Winkel angegeben werden.

Es gibt die neuen Pfeiltypen \lstinline+<=>>+ und \lstinline+<<=>+, mit denen ein verschobenes Gleichgewicht angezeigt werden kann.

Die Default-Platzierung von \lstinline+rxnscheme+ wurde von \lstinline+H+ in \lstinline+htp+ geändert.

Die konkreten Einsatz-Beispiele wurden aus der Dokumentation ausgelagert und befinden sich in der Datei \texttt{examples.tex} bzw. \texttt{examples.pdf}.

Die Befehle \lstinline+\arrow+, \lstinline+\reactant+, \lstinline+\mesomeric+, \lstinline+\transition+, \lstinline+\anywhere+, \lstinline+\dummy+, \lstinline+\branch+ und \lstinline+\chemand+ sind nur innerhalb der Umgebungen \lstinline+rxn+ und \lstinline+rxnscheme+ definiert.

\subsection{Lizenz}
\mC v\mCversion\ steht unter der \LaTeX\ Project Public License Version 1.3 oder später.\newline(\url{http://www.latex-project.org/lppl.txt})

\subsection{Voraussetzungen}\label{ssec:voraussetzungen}\index{Voraussetzungen|(}
Damit \mC funktionieren kann, müssen ein paar Pakete installiert sein:
\begin{description}
 \item[\CF]\index{Voraussetzungen!ChemFig@\CF} ohne das ergibt die ganze Sache gar keinen Sinn;
 \item[ifthen]\index{Voraussetzungen!ifthen} für interne Abfragen;
 \item[calc]\index{Voraussetzungen!calc} für interne Berechnungen;
 \item[xkeyval]\index{Voraussetzungen!xkeyval} Paketoptionen und Befehl-Keys werden damit erstellt;
 \item[float]\index{Voraussetzungen!float} damit wird die \lstinline=rxnscheme=-Umgebung definiert;
 \item[pgf/\TikZ]\index{Voraussetzungen!pgf}\index{Voraussetzungen!TikZ@\TikZ} pgf ist nicht nur ein Paket sondern eine ganze Reihe von Paketen. Sie stellen die gesamte Basis für \TikZ da. Damit \mC funktionieren kann, muss mindestens die Version vom 08.09.2010\footnote{\url{http://sourceforge.net/projects/pgf/files/}} installiert sein.\\
 Genauer: der Befehl \lstinline=\pgfpositionnodelater= muss verfügbar sein. Noch genauer benötigt die Option \lstinline+both+ des Befehls \lstinline+\arrow+ diese Version. Wenn Sie die Option nicht verwenden, sollte \mC auch mit pgf v2.00 problemlos funktionieren. Ältere Versionen wurden nicht getestet.
\end{description}
\index{Voraussetzungen|)}

\subsection{Die Idee}
Seit August 2010 steht mit \CF eine wirklich flexible Lösung für organische Strukturformeln zur Verfügung. So kann man nun durch das Einbinden von \CF und `mhchem' mehr oder weniger alle Struktur- und Summenformeln, die man als Chemiker so benötigt, mit \LaTeX\ setzen. Was \CF gegenüber `ochem' noch benachteiligt, ist das Erstellen richtiger Reaktionsmechanismen. Hier soll \mC Abhilfe schaffen.

\mC bindet die Pakete
\begin{itemize}
 \item \CF\footnote{von Christian Tellechea, \url{http://www.ctan.org/tex-archive/macros/generic/chemfig/}}\index{ChemFig@\CF},
 \item wenn vorhanden `mhchem'\footnote{von Martin Hensel, \url{http://www.ctan.org/tex-archive/macros/latex/contrib/mhchem/}}\index{mhchem} in der Version 3,
 \item wenn vorhanden `chemexec'\footnote{von mir, \url{http://www.ctan.org/tex-archive/macros/latex/contrib/chemexec/}}\index{chemexec} und
 \item wenn vorhanden `chemcompounds'\footnote{von Stephan Schenk, \url{http://www.ctan.org/tex-archive/macros/latex/contrib/chemcompounds/}}\index{chemcompounds} ein.
\end{itemize}
Zur Funktion der Befehle der oben genannten Pakete siehe deren Dokumentation. Wenn Sie die Pakete separat laden wollen, weil Sie ihnen Optionen mitgeben wollen, dann sollten Sie das machen, \emph{bevor} Sie \mC laden, um Konflikte zu vermeiden. \mC prüft intern einerseits darauf, ob die Pakete installiert sind und falls ja, ob sie bereits geladen sind. Wenn nicht, werden sie von \mC aufgerufen.

Befehle, die durch die eingebundenen Pakete zur Verfügung stehen, sind unter anderem
\begin{itemize}
 \item \lstinline=\ce{}= (mhchem)\index{mhchem}
 \item \lstinline=\ox{}{}=, \lstinline=\om[]=, \lstinline=\op[]=, \lstinline=\Hyd=, \lstinline=\Hpl= (chemexec)\index{chemexec}
 \item \lstinline=\chemfig[][]{}=, \lstinline=\chemrel[]{}=, \lstinline=\chemsign[]{}=, \lstinline=\lewis{}= (\CF)\index{ChemFig@\CF}
 \item \lstinline=\declarecompound[]{}=, \lstinline=\compound{}= (chemcompounds).\index{chemcompounds}
\end{itemize}
In den Beispielen in diesem Manual wurden Befehle dieser Pakete verwendet \emph{ohne sie speziell als solche zu kennzeichnen}.

Vor allem stellt \mC Befehle zum Erstellen von Reaktionsschemata zur Verfügung. 

\section{Verwendung}
\subsection{Hintergrund}
\mC stellt zwei Umgebungen zur Verfügung, innerhalb derer die Reaktionsmechanismen erstellt werden. Beide Umgebungen sind letztlich eine \lstinline+tikzpicture+-Um\-ge\-bung. Die Frage, die sich aufdrängt, ist natürlich: wozu? \CF bringt doch schon einiges an Möglichkeiten mit, Reaktionsgleichungen zu erstellen. Und mit \TikZ hat man wirklich alle Möglichkeiten offen. Zugegeben. Allerdings bin ich faul, also habe einige häufig verwendete \TikZ-Befehle zu Makros zusammengefasst. Die sind immer mehr geworden und haben immer mehr Feinheiten erhalten, so dass dieses Paket dabei herausgekommen ist.

\subsection{Das Grundprinzip}
In dem \lstinline+tikzpicture+, das in den \mC-Umgebungen erstellt wird, werden Reaktanden und Reaktionspfeile mit einzelnen `nodes'\footnote{In einem tikzpicture kann man nahezu beliebig sogenannte `nodes' setzen, mit allen möglichen Formen und Inhalten. Das sind "`Knotenpunkte"' an bestimmten Koordinaten in einer `tikzpicture'-Umgebung.} auf einer `chain'\footnote{Dafür ist die tikzlibrary `chains' nötig.} angeordnet.
\begin{SideBySideExample}
 \begin{tikzpicture}[start chain]
 \node [on chain] {A};
 \node [on chain] {B};
 \node [on chain] {C};
 \end{tikzpicture}
\end{SideBySideExample}
Dadurch ergeben sich einige Möglichkeiten, die `nodes' relativ zueinander zu platzieren.
\begin{SideBySideExample}
 \begin{tikzpicture}[start chain=going right, node distance=5mm]
 \node [draw,on chain] {Hello};
 \node [draw,on chain] {World};
 \node [draw,continue chain=going below, on chain] {,};
 \node [draw,on chain] {this};
 \node [draw,on chain] {is};
 \end{tikzpicture}
\end{SideBySideExample}
\mC macht vor allem von der Möglichkeit Gebrauch, `branches' zu erstellen.
\begin{SideBySideExample}
 \begin{tikzpicture}[start chain=going right, node distance=5mm]
  \node [draw,on chain] {A};
  \node [draw,on chain] {B};
 { [start branch]
  \node [on chain=going below] {1};
  \node [on chain=going below] {2};
 }
 { [start branch]
  \node [on chain=going above] {$\alpha$};
  \node [on chain=going above] {$\beta$};
 }
  \node [draw,on chain] {C};
 \end{tikzpicture}
\end{SideBySideExample}
Sie müssen das nicht in allen Konsequenzen nachvollziehen, das Grundprinzip sollte reichen.

\subsection{Wie funktioniert's?}
\subsubsection{Basisbefehle}
Basis bilden folgende drei Befehle:\index{reactant}\index{rxn}\index{arrow}
\begin{lstlisting}
 \begin{rxn}[<ausrichtung>,<skalierung>]
  \reactant[<pos>,<name>,<tikz>]{<formel>}
  \arrow[<pos>,<typ>,<längenfaktor>,<name>,both,<tikz>]{<oben>}{<unten>}
 \end{rxn}
\end{lstlisting}
Die Schemata werden innerhalb der \lstinline+rxn+-Umgebung erstellt. Dort werden Reaktanden und Pfeile gesetzt.
\begin{SideBySideExample}
 \begin{rxn}
  \reactant{ \chemfig{-[::30]-[::-60]OH} }
  \arrow{Ox.}{}
  \reactant{ \chemfig{-[::30]=_[::-60]O} }
 \end{rxn}
\end{SideBySideExample}
Ohne Optionen werden Reaktanden und Pfeile immer rechts voneinander gesetzt. Möchte man das nicht, hat man die Möglichkeit, über \lstinline+<pos>+ die Positionierung zu ändern.
\begin{SideBySideExample}
  % Anordnung mit Schluesselwoertern:
 \begin{rxn}
  \reactant{ \chemfig{-[::30]-[::-60]OH} }
  \arrow[below]{Ox.}{}
  \reactant[below]{ \chemfig{-[::30]=_[::-60]O} }
 \end{rxn}
 % Anordnung durch Angabe des Winkels zur Horizontalen:
 \begin{rxn}
  \reactant{ \chemfig{-[::30]-[::-60]OH} }
  \arrow[180]{}{Ox.}
  \reactant[180]{ \chemfig{-[::30]=_[::-60]O} }
 \end{rxn}
\end{SideBySideExample}
\begin{table}
 \centering
 \begin{tabular}{>{\tt}lSS}
  \toprule
  {\normalfont Schlüsselwort} & {pos. Winkel} & {neg. Winkel} \\
  \midrule
  right       & 0   & \pm 360 \\
  right above & 45  & -315 \\
  above       & 90  & -270 \\
  above left  & 135 & -225 \\
  left        & 180 & -180 \\
  below left  & 225 & -135 \\
  below       & 270 & -90 \\
  below right & 315 & -45 \\
  \bottomrule
 \end{tabular}
 \caption{Schlüsselwörter zur Positionierung}\label{tab:keywords}
\end{table}
Sie sehen im letzten Beispiel, dass die Positionierung durch Schlüsselwörter (siehe \ref{tab:keywords}) wie \lstinline+below+ oder durch Angabe eines Winkels aus dem Intervall $[\ang{-360};\ang{360}]$ zur Horizontalen. \ang{0} entspricht \lstinline+right+, der Voreinstellung. \emph{Positive Winkel} bedeuten eine Drehung im \emph{Gegenuhrzeigersinn}, negative eine im Uhrzeigersinn, ganz in der mathematischen Bedeutung.
\begin{SideBySideExample}
 \begin{rxn}
  \reactant{ \chemfig{-[::30]-[::-60]OH} }
  \arrow[20]{Ox.}{}
  \reactant[20]{ \chemfig{-[::30]=_[::-60]O} }
 \end{rxn}
 \begin{rxn}
  \reactant{ \chemfig{-[::30]-[::-60]OH} }
  \arrow[-20]{Ox.}{}
  \reactant[-20]{ \chemfig{-[::30]=_[::-60]O} }
 \end{rxn} 
\end{SideBySideExample}

\subsubsection{Positionierung}
Die Reaktanden und Pfeile können nicht nur durch Schlüsselwörter und Winkel alleine positioniert werden, sondern auch in Bezug auf einen anderen Reaktanden oder Pfeil.
\begin{Example}
 \begin{rxn}
  \reactant[,start]{ \chemfig{R-[::30](-[::60]R|^1) (-[::-120]R|^2)-[::-60]OH} }
  \arrow[40]{\tiny$\text{R}^1=\text{H}$} {\tiny$\text{R}^2=\text{H}$}
  \reactant[40]{ \chemfig{R-[::30]=_[::-60]O} }
  \arrow[start.0]{\tiny$\text{R}^1=\text{Alkyl}$} {\tiny$\text{R}^2=\text{H}$}
  \reactant{ \chemfig{R-[::30](-[::60]R)=_[::-60]O} }
  \arrow[start.-40,-|>]{\tiny$\text{R}^1=\text{Alkyl}$} {\tiny$\text{R}^2=\text{Alkyl}$}
 \end{rxn}
\end{Example}
Im letzten Beispiel wurden dem ersten Reaktanden der \lstinline+<name>+ \lstinline+start+ gegeben. Darauf konnten sich die Pfeile in Zeilen 5 und 7 in der Positionierung beziehen. Der \emph{zuvor vergebene Name} fungiert als Anker für den nächsten Reaktanden oder Pfeil, wenn die Positionierung nach dem Muster
\begin{lstlisting}
 <anker>.<winkel>
\end{lstlisting}
angegeben wird. Auch Pfeile können einen Anker bekommen. Der Ankerpunkt eines Pfeils sitzt immer in der Mitte eines Pfeils und hat \emph{keine} Ausdehnung.
\begin{SideBySideExample}
 \begin{rxn}
  \reactant{\chemfig{[:60]-(-[::60])=[::-60](-[::-60])-}}
  \arrow[,,,pfeil]{}{}
  \reactant[pfeil.90]{\ce{H2O}}
 \end{rxn}
\end{SideBySideExample}
Bei dieser Art der Positionierung wird die Kette, aud der die Reaktanden und Pfeile sitzen, \emph{nicht} unterbrochen.
\begin{lstlisting}
 \begin{rxn}
  \reactant[,a]{A}
  \arrow{}{}
  \reactant{B}
  \arrow[a.-90]{}{}
  \reactant[-90]{C}
  \arrow[a.180]{}{}
  \reactant[180]{D}
 \end{rxn}
\end{lstlisting}
Alle sieben Objekte dieses Beispiels sitzen logisch gesehen auf einer Kette. Das nächste Objekt wird nun per Default rechts daneben geschrieben, wenn keine andere Positionierung angegeben wird.
\begin{rxn}
 \tikzset{nummer/.style={circle,fill=gray!30,draw=gray,minimum size=3.5mm}}
 \reactant[,a]{A}\arrow[,,,pa]{}{}\reactant[,b]{B}
 \arrow[a.-90,,,pb]{}{}\reactant[-90,c]{C}
 \arrow[a.180,,,pc]{}{}\reactant[180,d]{D}
 \anywhere{a.45,,nummer}{1}
 \anywhere{pa.90,,nummer}{2}
 \anywhere{b.45,,nummer}{3}
 \anywhere{pb.0,,nummer}{4}
 \anywhere{c.45,,nummer}{5}
 \anywhere{pc.90,,nummer}{6}
 \anywhere{d.45,,nummer}{7}
\end{rxn}

\subsubsection{Verzweigungen}
Um die Kette zu unterbrechen, gibt es den folgenden Befehl:\index{branch}
\begin{lstlisting}
 \branch[<pos>,<name>,<tikz>]{<formeln>}
\end{lstlisting}
Bei einem Branch funktioniert die Positionierung ein bisschen anders als bei den bisherigen Objekten, auch wenn die Syntax ähnlich ist. Zusätzlich zu den drei bisherigen Positionierungsmöglichkeiten kommen beim Branch noch zwei weitere dazu. Alle Positionierungen, die sich auf einen Anker beziehen, sorgen dafür, dass der Branch \emph{nicht} auf der Kette sitzt, sondern ein echter Ast ist.
\begin{lstlisting}
 <winkel>                    % auf der Kette
 <schluessel>                % auf der Kette
 <anker>.<winkel>            % nicht auf der Kette
 on chain=going <schluessel> % auf der Kette
 <schluessel>=of <anker>     % nicht auf der Kette
\end{lstlisting}
Als \lstinline+<schluessel>+ können die Werte aus \ref{tab:keywords} verwendet werden.
\begin{Example}
 \begin{rxn}
  \reactant{ \chemfig{-[::30]-[::-60]OH} }
  \arrow{}{}
  \reactant[,carbonyl]{ \chemfig{-[::30]=_[::-60]O} }
  \branch[carbonyl.-90]{
    \arrow[-90,<=>]{\ce{NH2R}}{}
    \reactant[-90]{ \chemfig{-[::30]=_[::-60]N(-[6]H)-[::60]R} }
  }
  \arrow{}{}
  \reactant{ \chemfig{-[::30](-[::60]OH)=_[::-60]O} }
 \end{rxn}
\end{Example}
Beachten Sie im letzten Beispiel, dass der Pfeil und der Reaktand nach dem Branch die ursprüngliche Kette fortsetzen.
\begin{lstlisting}
 \begin{rxn}
  \reactant[,a]{A}
  \arrow{}{}
  \reactant{B}
  \branch[a.-90]{
    \arrow[-90]{}{}
    \reactant[-90]{C}
  }
  \arrow[a.180]{}{}
  \reactant[180]{D}
 \end{rxn}
\end{lstlisting}
Die Kette wird durch den Ast unterbrochen, der seinerseits eine weitere Kette startet.
\begin{rxn}
 \tikzset{nummer/.style={circle,fill=gray!30,draw=gray,minimum size=3.5mm}}
 \reactant[,a]{A}\arrow[,,,pa]{}{}\reactant[,b]{B}
 \branch[a.-90]{
   \arrow[-90,,,pb]{}{}\reactant[-90,c]{C}
    \anywhere{pb.0,,nummer}{a}
    \anywhere{c.45,,nummer}{b}
 }
 \arrow[a.180,,,pc]{}{}\reactant[180,d]{D}
 \anywhere{a.45,,nummer}{1}
 \anywhere{pa.90,,nummer}{2}
 \anywhere{b.45,,nummer}{3}
 \anywhere{pc.90,,nummer}{4}
 \anywhere{d.45,,nummer}{5}
\end{rxn}
Durch \lstinline+\branch+ sind verzweigtere Schemata möglich:
\begin{Example}
 \begin{rxn}
  \reactant{ \chemfig{-[::30]-[::-60]OH} }
  \arrow{}{}
  \reactant[,carbonyl]{ \chemfig{-[::30]=_[::-60]O} }
  \arrow[-90]{}{}
  \reactant[-90]{ \chemfig{-[::30](-[::60]OH)=_[::-60]O} }
  \branch[right=of carbonyl]{
    \arrow[,<=>,1.12]{\ce{NH2R}}{}
    \reactant{ \chemfig{-[::30]=_[::-60]N(-[6]H)-[::60]R} }
  }
  \branch[below right=of carbonyl]{
    \arrow[-45,<=>,1.12]{ \chemfig{[,.75]-[::30]-[::-60]OH} }{}
    \reactant[-45]{ \chemfig{-[::30](-[::60]O-[::-60]-[::-60])-[::-60]OH} }
  }
  \arrow[carbonyl.90]{ \chemfig{[,.75]-[::30]=_[::-60]O}/\Hpl }{}
  \reactant[90]{ \chemfig{-[::30](-[::60]OH)-[::-60]-[::60]=[::60]O} }
  \arrow{$-\ce{H2O}$}{}
  \reactant{ \chemfig{-[::30]=[::-60]-[::60]=[::60]O} }
 \end{rxn}
\end{Example}

\subsubsection{Nummerierte Schemata}
Es gibt noch eine weitere Umgebung, innerhalb derer Schemata erstellt werden können.\index{rxnscheme}
\begin{lstlisting}
 \begin{rxnscheme}[<label>,<platzierung>,<ausrichtung>,<skalierung>,<titel>]{<caption>}
  ...
 \end{rxnscheme}
\end{lstlisting}
Diese Umgebung stellt eine Gleitumgebung für Schemata bereit, die eine Beschriftung \lstinline+<caption>+, ein Label \lstinline+<label>+ und die üblichen Platzierungen \lstinline+<platzierung>+ wie \lstinline+hpt+ (Voreinstellung) erhalten kann.
\begin{Example}
  \begin{rxnscheme}[,H]{Keto-Enol-Tautomerie}
  \reactant{ \chemfig{=[::30]-[::-60]OH} }
  \arrow[,<=>]{}{}
  \reactant{ \chemfig{-[::30]=[::-60]O} }
 \end{rxnscheme}
\end{Example}

\subsection{Voreinstellungen}\index{Voreinstellungen|(}
Es gibt einige Voreinstellungen, die zum Teil meinem persönlichen Geschmack geschuldet sind, die Sie aber nach Bedarf ändern können. So gelten für die \CF-Formeln \emph{innerhalb der \mC-Umgebungen} folgende Voreinstellungen:\index{setatomsep}\index{setcrambond}
\begin{lstlisting}
 \setatomsep{1.8em}
 \setcrambond{3pt}{0.5pt}{1pt}
\end{lstlisting}
Außerhalb der Umgebungen gelten weiterhin die Voreinstellungen von \CF.
\begin{SideBySideExample}
 \begin{rxn}
  \reactant{\chemfig{**6(------)}}
 \end{rxn}
 \chemfig{**6(------)}
\end{SideBySideExample}
Sie können die Voreinstellungen von \mC über folgende Befehle ändern:\index{setbondlength}\index{setbondshape}\index{setatomsize}
\begin{lstlisting}
 \setbondlength{<länge>}
 \setbondshape{<basislänge>}{<strichdicke>}{<strichabstand>}
 \setatomsize{<schriftgröße>}
\end{lstlisting}
Damit werden die Einstellungen nachfolgend \emph{für alle weiteren} \mC-Um\-ge\-bun\-gen geändert. Lassen Sie die Argumente leer, werden die Voreinstellungen wiederhergestellt. \lstinline=\setatomsize= hat die Voreinstellung \lstinline=\small=.
\begin{Example}
 \setbondlength{2.1em}\setbondshape{5pt}{1pt}{2pt}\setatomsize{\Large}
 \begin{rxn}
  \reactant{\chemfig{-[::30](<[::60])-[::-60](<:[::-60])-[::60]A}}
 \end{rxn}
 \setbondlength{}\setbondshape{}{}{}\setatomsize{}
 \begin{rxn}
  \reactant{\chemfig{-[::30](<[::60])-[::-60](<:[::-60])-[::60]A}}
 \end{rxn}
\end{Example}
Wollen Sie nur die Parameter einer Umgebung ändern, verwenden Sie \emph{innerhalb der Umgebung} die Befehle von \CF und die \LaTeX-Befehle für die Schriftgröße.
\begin{Example}
 \begin{rxn}
  \setatomsep{2.1em}\setcrambond{5pt}{1pt}{2pt}\Large
  \reactant{\chemfig{-[::30](<[::60])-[::-60](<:[::-60])-[::60]A}}
 \end{rxn}
 \begin{rxn}
  \reactant{\chemfig{-[::30](<[::60])-[::-60](<:[::-60])-[::60]A}}
 \end{rxn}
\end{Example}
Reaktionspfeile haben als Standardwert die Länge \SI{4}{\emlength}, die Standarddicke \lstinline+semithick+ und einen Beschriftungsabstand von \SI{0.2}{\emlength}. Die Voreinstellungen lassen sich mit den Befehlen\index{setarrowlength}\index{setarrowline}\index{setarrowlabel}
\begin{lstlisting}
 \setarrowlength{<länge>}
 \setarrowline{<liniendicke>}
 \setarrowlabel{<label abstand>}
\end{lstlisting}
oder\index{mCsetup}
\begin{lstlisting}
 \mCsetup{arrowlength=<länge>,
          arrowline=<liniendicke>,
          arrowlabel=<label abstand>}
\end{lstlisting}
ändern.
\index{Voreinstellungen|)}

\subsection{Paket-Optionen}\label{ssec:paketoptionen}\index{Optionen|(}
\mC verfügt über einige Paket-Optionen.
\begin{description}
 \vitem+chemstyle+\index{Optionen!chemstyle}Mit dieser Option kann `chemstyle' automatisch geladen werden, ohne dass Konflikte mit \mC enstehen.
 \vitem+color=<farbe>+\index{Optionen!color} Mit dieser Option wird die entsprechende Farbe an `chemexec' weitergereicht und dessen Option \lstinline+shade=true+ aufgerufen.
 \vitem+english+\index{Optionen!english} Wird diese Option aufgerufen, dann lädt \mC `chemexec' in der englischen Version, falls das Paket nicht vorher aufgerufen wurde. Außerdem wird der Name der \lstinline=rxnscheme=-Umgebung (siehe \ref{ssec:rxnscheme}) in "`Reaction scheme"' geändert.
 \vitem+nochemexec+\index{Optionen!nochemexec} Durch diese Option können Sie verhindern, dass \mC `chemexec' lädt.
 \vitem+nocolor+\index{Optionen!nocolor} Mit dieser Option wird `chemexec' ohne Farbe und mit der Option \lstinline+shade=false+ geladen (Default-Verhalten von \mC).
 \vitem+nocompounds+\index{Optionen!nocompounds}Durch diese Option können Sie verhindern, dass \mC `chemcompounds' lädt.
 \vitem+nomhchem+\index{Optionen!nomhchem}Durch diese Option können Sie verhindern, dass \mC `mhchem' lädt, vorausgesetzt, dass `chemexec' auch nicht geladen wird.
 \vitem+nopackages+\index{Optionen!nopackages}Durch diese Option werden (außer \CF) gar keine Pakete geladen\footnote{Außer denen, die \mC benötigt, um zu funktionieren (\TikZ etc.).}.
 \vitem+placement=<position>+\index{Optionen!placement} Durch den Aufruf dieser Option kann das Standard-Platzie\-rungs\-ver\-hal\-ten der \lstinline=rxnscheme=-Umgebung (siehe \ref{ssec:rxnscheme}) in \lstinline=<position>= geändert werden.
 \vitem+shade+\index{Optionen!shade} Mit dieser Option wird `chemexec' mit der Option \lstinline+shade=true+ geladen.
\end{description}
\index{Optionen|)}

\section{Fortgeschrittene Anwendung, Verwendung von \TikZ}
Das größte Problem bei der Verwendung von \mC ist in der Regel die korrekte Positionierung der einzelnen Reaktanden und Pfeile. Der \ref{ssec:ausrichtungsfrage} geht etwas näher darauf ein.

Einige der Befehle ermöglichen als drittes optionales Argument die Angabe weiteren \TikZ-Codes. Genauer gesagt können Sie dort im wesentlichen diejenigen \TikZ-Keys einsetzen, die Sie in einem \lstinline+tikzpicture+ bei einer \lstinline+\node+ einsetzen können. Wenn die Syntax einer Node also \lstinline+\node[<tikz>](<platzierung>){<irgendwas>};+ ist, dann entspricht \lstinline+<tikz>+ dem entsprechenden Argument von \zB \lstinline+\reactant[,,<tikz>]{}+\index{reactant!tikz}. Dadurch lassen sich viele Feinjustierungen vornehmen. Wenn Sie Sich mit \TikZ einigermaßen auskennen, können Sie sowieso noch weitaus mehr realisieren, als durch \CF und \mC vorgegeben.

\subsection{Die Ausrichtungsfrage}\label{ssec:ausrichtungsfrage}\index{Ausrichtung|(}
Da Reaktanden, Pfeile und Zweige mittig zu dem Objekt, auf das sie sich beziehen, ausgerichtet werden, erzeugt die Default-Ausrichtung nicht immer schöne Ergebnisse.
\begin{Example}
 \makevisible
 \begin{rxn}
  \reactant{ \chemname{\chemfig{*6(-=-=-=)}}{Benzol \compound{benzol}} }
  \arrow{}{}
  \reactant{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{Brombenzol \compound{brombenzol}} }
 \end{rxn}
\end{Example}
Wie Sie sehen können, sind die beiden Reaktanden aus Sicht der Benzolringe nicht gleich zu dem Pfeil ausgerichtet. Der erste Reaktand scheint nach oben geschoben zu sein. Der Versuch, das mit \TikZ-Code wie \lstinline+xshift+\index{xshift} und \lstinline+yshift+\index{yshift} zu korrigieren, versagt.
\begin{Example}
 \makevisible
 \begin{rxn}
  \reactant[,,yshift=-1em]{ \chemname{\chemfig{*6(-=-=-=)}}{Benzol \compound{benzol}} }
  \arrow{}{}
  \reactant{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{Brombenzol \compound{brombenzol}} }
 \end{rxn}
\end{Example}
Das kommt daher, da der erste Reaktand relativ zu dem Objekt verschoben wird, auf das er sich bezieht. Da er das erste Objekt auf der Chain ist, wird er gar nicht verschoben. Der nachfolgende Pfeil richtet sich in Bezug auf den ersten Reaktanden aus.
\begin{SideBySideExample}
 \makevisible
 \begin{rxn}
  \reactant{A}
  \chemand
  \reactant[,,yshift=1em]{B}
  \arrow{}{}
 \end{rxn}
\end{SideBySideExample}
Da es (noch) keine Möglichkeit gibt, die Ausrichtung des Pfeils selbst zu ändern, könnte man ihn stattdessen in einen Zweig stecken.
\begin{Example}
 \makevisible
 \begin{rxn}
  \reactant{A}
  \chemand
  \reactant[,,yshift=1em]{B}
  \branch[,,yshift=-1em]{\arrow{}{}}
 \end{rxn}
 \begin{rxn}
  \reactant{ \chemname{\chemfig{*6(-=-=-=)}}{Benzol \compound{benzol}} }
  \branch[,,yshift=1em]{\arrow{}{}}
  \reactant{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{Brombenzol \compound{brombenzol}} }
 \end{rxn}
\end{Example}
Das ist für das letzte Beispiel aber nicht die beste Lösung, da die exakte Ausrichtung auf diese Weise immer eine ganze Reihe von Versuchen benötigt, bis man das gewünschte Ergebnis erzielt. Es gibt eine andere Lösung: ein unsichtbares Brom am ersten Benzol.
\begin{Example}
 \makevisible
 \begin{rxn}
  \reactant{ \chemname{\chemfig{*6(-=-=(-[,,,,draw=none]\phantom{Br})-=)}}{Benzol \compound{benzol}} }
  \arrow{}{}
  \reactant{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{Brombenzol \compound{brombenzol}} }
 \end{rxn}
\end{Example}
Auch in anderen Fällen ist der unsichtbare Substituent die bessere und einfachere Lösung gegenüber \TikZ-Code:
\begin{Example}
 \makevisible
 default:
 \begin{rxn}
  \reactant{\chemfig{-[:-30]-[:30](=[2]O)-[:-30]OH}}
  \chemand
  \reactant{\chemfig{HO-[:30]-[:-30]-[:30]}}
  \arrow{[\Hpl]}{\SI{200}{\celsius}}
  \reactant{\chemfig{-[:-30]-[:30](=[2]O)-[:-30]O-[:30]-[:-30]-[:30]}}
 \end{rxn}
 Hydroxy-Gruppen auf gleicher H\"ohe mit Tikz:
 \begin{rxn}
  \reactant{\chemfig{-[:-30]-[:30](=[2]O)-[:-30]OH}}
  \chemand[,,yshift=-1.2em]
  \reactant[,,yshift=.12em]{\chemfig{HO-[:30]-[:-30]-[:30]}}
  \branch[,,yshift=1.08em]{\arrow{[\Hpl]}{\SI{200}{\celsius}}}
  \reactant{\chemfig{-[:-30]-[:30](=[2]O)-[:-30]O-[:30]-[:-30]-[:30]}}
 \end{rxn}
 Hydroxy-Gruppen auf gleicher H\"ohe durch unsichtbaren Substituenten:
 \begin{rxn}
  \reactant{\chemfig{-[:-30]-[:30](=[2]O)-[:-30]OH}}
  \chemand
  \reactant{\chemfig{HO-[:30](=[2,,,,draw=none]\phantom{O})-[:-30]-[:30]}}
  \arrow{[\Hpl]}{\SI{200}{\celsius}}
  \reactant{\chemfig{-[:-30]-[:30](=[2]O)-[:-30]O-[:30]-[:-30]-[:30]}}
 \end{rxn}
\end{Example}
Ich fürchte aber, in vielen Fällen müssen Sie mit \lstinline+xshift+\index{xshift} und \lstinline+yshift+\index{yshift} spielen, bis das Schema aussieht, wie Sie Sich das vorstellen. Vielleicht wird eine zukünftige Version von \mC eine benutzerfreundlichere Ausrichtungsmöglichkeit bieten.
\index{Ausrichtung|)}

\subsection{Mit \TikZ andere Ziele erreichen}
Man könnte natürlich, nur zum Spaß?, das Aussehen von Molekülen mit \TikZ ändern.
\begin{SideBySideExample}
 \begin{rxn}
  \reactant[,,->,green!45!blue!55]{ \chemfig{*6(---(-)---)} }
 \end{rxn}
 \chemfig[->,green!45!blue!55]{*6(---(-)---)}
\end{SideBySideExample}
Das Beispiel ist natürlich kein gutes, da mit \CF dasselbe Ergebnis erzielt werden kann. Vielfache andere Anwendungen sind aber denkbar: beispielsweise könnte man sich einen Stil definieren, in dem Reaktanden angezeigt werden sollen:
\begin{Example}
 \colorlet{mCgreen}{green!50!gray}
 \colorlet{mCblue}{cyan!50!gray}
 \colorlet{mCred}{magenta!50!gray}
 \colorlet{mCyellow}{yellow!50!gray}
 \begin{rxn}
  \tikzset{reactant/.style={draw=#1,fill=#1!10,inner sep=1em,minimum height=10em,minimum width=12em,rounded corners}}
  \reactant[,cytosin,reactant=mCred]{\chemfig{H-[:30]N*6(-(=O)-N=(-NH_2)-=-)}}
  \anywhere{cytosin.-90,,yshift=-2mm}{Cytosin}
  \reactant[,thymin,reactant=mCyellow]{\chemfig{H-[:30]N*6(-(=O)-N(-H)-(=O)-(-CH_3)=-)}}
  \anywhere{thymin.-90,,yshift=-2mm}{Thymin}
  \reactant[cytosin.-90,adenin,yshift=-1.5em,reactant=mCblue]{\chemfig{[:-36]*5(-N(-H)-*6(-N=-N=(-NH_2)--)--N=)}}
  \anywhere{adenin.-90,Guanin,yshift=-2mm}{Adenin}
  \reactant[,guanin,reactant=mCgreen]{\chemfig{[:-36]*5(-N(-H)-*6(-N=(-NH_2)-N(-H)-(=O)--)--N=)}}
  \anywhere{guanin.-90,,yshift=-2mm}{Guanin}
 \end{rxn}
\end{Example}
Auf diese Weise könnten Teile eines Schemas hervorgehoben werden:
\begin{Example}
 \begin{rxn}
  \setatomsep{1.5em}
  \colorlet{mCgreen}{green!50!gray}
  \tikzset{emph/.style={draw=mCgreen,fill=mCgreen!10,inner sep=1em}}
  \reactant[,lineOne]{\chemfig{R^1-[:30](=[@{b1}2]O)-[:-30]O-H}}
  \arrow[,<=>]{\chemfig{@{Hpl1}\Hpl}}{}
  \branch[,,emph]{
    \reactant{\chemfig{R^1-[:30]@{C1}(-[2]O-[:30]H)(-[6,.5,,,draw=none]\oplus)-[:-30]O-H}}
    \arrow[,<=>,2]{\chemfig{[:30]H-@{O1}O-[::-60]-R^2}}{}
    \reactant{\chemfig{R^1-[:30](-[2]O-[:30]H)(-[6]@{O2}O-[:-150]H)-[:-30]@{O3}\chemabove{O}{\oplus}(-[@{b2}6]H)-[:30]-[:-30]R^2}}
  }
  \anywhere{lineOne.-90,lineTwo,xshift=-3em,yshift=-7em}{}
  \arrow[lineTwo.0,<=>]{$-$\Hpl/\chemfig{@{Hpl2}\Hpl}}{}
  \reactant{\chemfig{R^1-[:30](-[@{b3}2]O-[@{b4}:30]H)(-[@{b5}6]@{O4}\chembelow{O}{\oplus}(-[:-30]H)-[:-150]H)-[:-30]O-[:30]-[:-30]R^2}}
  \arrow[,<=>,2]{\ce{- \Hpl - H2O}}{}
  \reactant{\chemfig{R^1-[:30](=[2]O)-[:-30]O-[:30]-[:-30]R^2}}
  \anywhere{lineTwo.-90}{
    \elmove{b1}{10:5mm}{Hpl1}{135:1cm}\elmove{O1}{135:1.5cm}{C1}{30:5mm}
    \elmove{O2}{-90:3cm}{Hpl2}{90:2cm}\elmove{b2}{0:5mm}{O3}{-10:5mm}
    \elmove{b4}{-40:5mm}{b3}{0:5mm}\elmove{b5}{-30:5mm}{O4}{-10:5mm}
  }
 \end{rxn}
\end{Example}

\section{Alphabetische Befehlsreferenz}\label{sec:referenz}
Im folgenden Abschnitt werden alle Befehle von \mC in alphabetischer Reihenfolge vorgestellt.

\subsection{anywhere}\label{ssec:anywhere}\index{anywhere|(}\index{Befehle!anywhere}
\NEU%
Manchmal ist es nützlich, wenn man einen Reaktanden oder irgendetwas anderes außerhalb der Chain platzieren kann.
\begin{lstlisting}
 \anywhere{<pos>,<name>,<tikz>}{<irgendwas>}
\end{lstlisting}
Für diesen Fall gibt es den Befehl \lstinline+\anywhere+. Er wird über \lstinline+<pos>+ auf ähnliche Weise wie \lstinline+\branch+ platziert:
\begin{lstlisting}
 <anker>.<winkel>            % nicht auf der Kette
 on chain=going <schluessel> % auf der Kette
 <schluessel>=of <anker>     % nicht auf der Kette
\end{lstlisting}
\textbf{Bitte beachten Sie, dass \lstinline+<pos>+ nicht leer bleiben kann.}
\begin{SideBySideExample}
 \begin{rxn}
  \reactant[,carbonyl_A]{\chemfig{R_2C=O}}
  \anywhere{above=of carbonyl_A}{\chemfig{H-[:-30]O-[:30]H}};
 \end{rxn}
\end{SideBySideExample}
Der Befehl kann \zB gut zum Beschriften von Reaktionspartnern eingesetzt werden.
\begin{Example}
 \begin{rxn}
  \reactant[,keton]{\chemfig{H-\chemabove{C}{\hspace*{5mm}\scriptstyle\alpha}(-[2]H)(-[6,,,2]{}|{\textcolor{blue}H})-C(=[:60]\lewis{02,O})-[:-60]C|H_3}}
  \anywhere{below=of keton}{$+$\color{blue}\Hyd}
  \arrow[,<=>]{\tiny langsam}{}
  \mesomeric[,mesomer]{
    \reactant[,carbanion]{\chemfig{H_2|\chemabove[3pt]{\lewis{2,C}}{\scriptstyle\ominus}-C(=[:60]\lewis{02,O})-[:-60]C|H_3}}
    \marrow
    \reactant[,enolat]{\chemfig{H_2C=C(-[:60]\chemabove{\lewis{024,O}}{\hspace*{5mm}\scriptstyle\ominus})-[:-60]C|H_3}}
  }
  \anywhere{above=of enolat}{\tiny Enolat-Ion}
  \anywhere{above=of carbanion}{\tiny Carbanion}
  \anywhere{below=of mesomer}{$+$\color{blue}\ce{H2O}}
 \end{rxn}
\end{Example}
Viele weitere Beispiele für Einsatzmöglichkeiten finden Sie in der Datei \texttt{examples.tex} bzw. \texttt{examples.pdf}.
\index{anywhere|)}

\subsection{arrow}\label{ssec:arrow}\index{arrow|(}\index{Befehle!arrow}
Reaktionspfeile werden mit \lstinline=\arrow= erstellt.
\begin{lstlisting}
 \arrow[<pos>,<typ>,<längenfaktor>,<name>,both,<tikz>]{<oben>}{<unten>}
\end{lstlisting}
\subsubsection{Optionen}\index{arrow!Optionen|(}
Mit mehreren Optionen können die Reaktionspfeile angepasst werden. Die Optionen müssen an entsprechender Stelle, durch Kommata separiert, angegeben werden.
\begin{enumerate}
\item\lstinline+<pos>+\index{arrow!Optionen!pos} -- mögliche Einstellungen sind:
 \begin{rxn}
  \setarrowlength{2.5em}
  \dummy[a]
  \arrow{}{}\reactant{right = \ang{0}}
  \branch[above right=of a]{\arrow[above right]{}{}\reactant[above right]{above right = \ang{45}}}
  \branch[above=of a]{\arrow[above]{}{}\reactant[above]{above = \ang{90}}}
  \branch[above left=of a]{\arrow[above left]{}{}\reactant[above left]{above left = \ang{135}}}
  \branch[left=of a]{\arrow[left]{}{}\reactant[left]{left = \ang{180} = \ang{-180}}}
  \branch[below left=of a]{\arrow[below left]{}{}\reactant[below left]{below left = \ang{225} = \ang{-135}}}
  \branch[below=of a]{\arrow[below]{}{}\reactant[below]{below = \ang{270} = \ang{-90}}}
  \branch[below right=of a]{\arrow[below right]{}{}\reactant[below right]{below right = \ang{315} = \ang{-45}}}
 \end{rxn}
 \NEU%
 Außerdem kann jeder beliebige Winkel des Intervalls $[\ang{-360};\ang{360}]$ eingesetzt werden.
 
 Zusätzlich kann der Winkel in Bezug auf ein durch \lstinline+<name>+ benanntes Objekt angegeben werden: \lstinline+<name>.<winkel>+ bedeutet im Winkel von \lstinline+<winkel>+ neben \lstinline+<name>+. Im Dokument \texttt{examples.tex} bzw.\texttt{examples.pdf} können Sie einige Beispiele dafür finden.
\item\lstinline+<typ>+\index{arrow!Optionen!typ} -- mögliche Einstellungen sind:
 \begin{rxn}
  \dummy[a]
  \branch[below=of a,b,yshift=.5em]{\arrow{}{}\reactant{\ttfamily -\textgreater}}
  \branch[below=of b,c,yshift=.5em]{\arrow[,<-]{}{}\reactant{\ttfamily \textless-}}
  \branch[below=of c,d,xshift=.25em,yshift=.5em]{\arrow[,<->]{}{}\reactant{\ttfamily \textless-\textgreater}}
  \branch[below=of d,e,yshift=.5em]{\arrow[,<=>]{}{}\reactant{\ttfamily \textless=\textgreater}}
  \branch[below=of e,f,xshift=.25em,yshift=.5em]{\arrow[,<=>>]{}{}\reactant{\ttfamily \textless=\textgreater{}\textgreater}}
  \branch[below=of f,g,yshift=.5em]{\arrow[,<<=>]{}{}\reactant{\ttfamily \textless{}\textless=\textgreater}}
  \branch[below=of g,h,xshift=-.25em,yshift=.5em]{\arrow[,-|>]{}{}\reactant{\ttfamily -\textbar\textgreater}}
  \branch[below=of h,,yshift=.5em]{\arrow[,-+>]{ }{ }\reactant{\ttfamily -+\textgreater}}
 \end{rxn}
\item\lstinline+<längenfaktor>+\index{arrow!Optionen!längenfaktor@{längenfaktor}} -- mit dem Faktoren, den Sie hier angeben, wird die Pfeillänge (\SI{4}{\emlength} bei Faktor = $1.0$, Standard) multipliziert.
\item\lstinline+<name>+\index{arrow!Optionen!name} -- hier können Sie dem Pfeil einen Anker geben, auf den \zB mit einem Branch referenziert werden kann.
\item\lstinline+both+\index{arrow!Optionen!both}-- durch diese Option haben die beiden Nodes, in die die Label geschrieben werden, die gleichen Maße.
\item\lstinline+<tikz>+\index{arrow!Optionen!tikz} -- mit dieser Option können die Pfeile mit \TikZ-Keys angepasst werden. Nicht alle \TikZ-Keys zeigen Auswirkungen. So können Pfeile \zB mit \lstinline+shift=<coord>+ \emph{nicht} verschoben werden.
\end{enumerate}
\begin{Example}
  \begin{rxn}
  \arrow[,,.25]{M}{}\arrow[,,.5]{MM}{}\arrow[,,.75]{MMM}{}\arrow{MMMM}{}\arrow[,,1.125]{MMMMM}{}\arrow[,,1.25]{MMMMM}{}
 \end{rxn}
\end{Example}
Beachten Sie, dass die Label \lstinline+<oben>+ und \lstinline+<unten>+ mit der Richtung gedreht werden. Bei einem Winkel von \ang{180} liegt \lstinline+<oben>+ tatsächlich unterhalb des Pfeils.
\begin{SideBySideExample}
 \begin{rxn}
  \setarrowlength{2.5em}
  \dummy[a]
  \arrow{a}{b}
  \arrow[a.45]{a}{b}
  \arrow[a.90]{a}{b}
  \arrow[a.135]{a}{b}
  \arrow[a.180]{a}{b}
  \arrow[a.225]{a}{b}
  \arrow[a.270]{a}{b}
  \arrow[a.315]{a}{b}
 \end{rxn}
\end{SideBySideExample}
\NEU%
Beim Pfeiltypen \lstinline"-+>" gibt es ein, zwei Dinge zu beachten: lässt man die Beschriftung leer, dann wird lediglich der nach rechts zeigende Pfeil angezeigt. Das erste Argument beschriftet den hinzukommenden und das zweite Argument den wegzeigenden Pfeil. Verwendet man nur eines dieser Argumente, wird auch nur der jeweilige Teil gezeichnet.\index{arrow!Optionen!typ}
\begin{SideBySideExample}
 entspricht \verb"->":
 \begin{rxn}
  \arrow[,-+>]{}{}
 \end{rxn}
 hinzu:
 \begin{rxn}
  \arrow[,-+>]{a}{}
 \end{rxn}
 weg:
 \begin{rxn}
  \arrow[,-+>]{}{b}
 \end{rxn}
 hinzu und weg:
 \begin{rxn}
  \arrow[,-+>]{a}{b}
 \end{rxn}
 Leerzeichen sind \emph{kein} leeres Argument:
 \begin{rxn}
  \arrow[,-+>]{ }{ }
 \end{rxn}
\end{SideBySideExample}
\NEU%
Durch Verwendung von \TikZ-Keys kann das Aussehen der Pfeile verändert werden:\index{arrow!Optionen!tikz}
\begin{Example}
 \begin{rxn}
  \mCsetup{arrowlabel=.7em,arrowlength=6em}
  \reactant{A}
  \arrow[20,,,,,decorate,decoration=snake,blue]{a}{b}
  \reactant[20]{A$^*$}
 \end{rxn}
\end{Example}
\index{arrow!Optionen|)}

\subsubsection{Ausrichtung}\index{arrow!Ausrichtung|(}
Liegt der Pfeil in einem Branch (siehe \ref{ssec:branch}), dann wird die Ausrichtung des Branch bestimmt durch die Größe der Nodes, mit denen die Pfeilbeschriftung platziert wird. Hat der Pfeil nun nur eine oder zwei unterschiedlich große Beschriftungen, dann ist die Ausrichtung falsch.
\begin{SideBySideExample}
 \makevisible
 \begin{rxn}
  \reactant[,a]{A}
  \arrow{}{}
  \branch[below=of a]{
    \arrow[-90]{\chemfig{-[::30]-[::-60]OH}}{}
  }
 \end{rxn}
 \makeinvisible
\end{SideBySideExample}
Durch die Verwendung der Option \lstinline=both=\index{arrow!Optionen!both} bekommen die Nodes beider Pfeilbeschriftungen die gleichen Maße, wodurch die Ausrichtung korrigiert werden kann.
\begin{SideBySideExample}
 \makevisible
 \begin{rxn}
  \reactant[,a]{A}
  \arrow{}{}
  \branch[below=of a]{
   \arrow[-90,,,,both]{\chemfig{-[::30]-[::-60]OH}}{}
  }
 \end{rxn}
 \makeinvisible
\end{SideBySideExample}
Mehr zu dem Problem der Ausrichtung lesen Sie in \ref{sssec:branch_ausrichtung}.
\index{arrow!Ausrichtung|)}

\subsubsection{Aussehen}\index{arrow!Aussehen}
Mit den Befehlen \lstinline+\setarrowlength+ (\ref{ssec:setarrowlength}) und \lstinline+\setarrowline+ (\ref{ssec:setarrowline}) lässt sich das prinzipielle Erscheinungsbild der Pfeile verändern.
\index{arrow|)}

\subsection{branch}\label{ssec:branch}\index{branch|(}\index{Befehle!branch}
Der Befehl \lstinline=\branch= wird verwendet, um eine Verzweigung der Reaktion zu realisieren.
\begin{lstlisting}
 \branch[<pos>,<name>,<tikz>]{<formel(n)>}
\end{lstlisting}
Für den \lstinline+\branch+ wird die Ausrichtung und der Anker wichtig. Sehen wir uns ein Beispiel an.
\begin{Example}
 \begin{rxn}
  \reactant[,start]{\chemfig{-[::30]=_[::-60](-[::-60])-[::60]}}
  \arrow[,,.75]{\ce{HCl}}{}
  \reactant{\chemfig{-[::30]-[::-60](-[::120]Cl)(-[::-60])-[::60]}}
  \chemand
  \reactant{\chemfig{-[::30](-[::60]Cl)-[::-60](-[::-60])-[::60]}}
  \branch[below right=of start]{
    \arrow[-45,,.75]{\ce{H2O}}{}
    \reactant[-45]{\chemfig{-[::30]-[::-60](-[::120]OH)(-[::-60])-[::60]}}
    \chemand
    \reactant{\chemfig{-[::30](-[::60]OH)-[::-60](-[::-60])-[::60]}}
  }
 \end{rxn}
\end{Example}
In diesem Beispiel hat der erste Reaktand den Anker \lstinline+start+ bekommen (Zeile 2, siehe auch \ref{ssec:reactant}).
\begin{lstlisting}[firstnumber=2]
 \reactant[,!!start!!]{ ... }
\end{lstlisting}
\lstinline+\branch+ bezieht sich nun in seiner Ausrichtung darauf (Zeile 7):
\begin{lstlisting}[firstnumber=7]
 \branch[below right!!=of start!!]{ ... }
\end{lstlisting}
Gibt man die Ausrichtung nicht in Bezug auf einen Anker an, bezieht sie sich immer auf den letzten \lstinline+reactant+ oder \lstinline+\arrow+. Lässt man das optionale Argument leer, dann platziert sich der Branch automatisch rechts.
\begin{SideBySideExample}
 \begin{rxn}
  \reactant{ \chemfig{CH_2=CH-OH} }
  \arrow[,<=>,.5]{}{}
  \branch{ \reactant{ \chemfig{CH_3-CH=O} } }
 \end{rxn}
\end{SideBySideExample}

\subsubsection{Positionierung}\label{sssec:branch_positionierung}\index{branch!Positionierung|(}
Ein Ast kann auf verschiedene Arten positioniert werden. Je nachdem ist er dann Teil der Kette oder ein echter Ast.
\begin{lstlisting}
 <winkel>                    % auf der Kette
 <schluessel>                % auf der Kette
 <anker>.<winkel>            % nicht auf der Kette
 on chain=going <schluessel> % auf der Kette
 <schluessel>=of <anker>     % nicht auf der Kette
\end{lstlisting}
Die Voreinstellung entspricht \lstinline+\branch[0]{}+. In unterschiedlichen Situationen kann eine unterschiedliche Verwendung angebracht sein. Wollen Sie zum Beispiel den Ast verwenden, um einen Pfeil zu verschieben, kann er durchaus Teil der Kette bleiben.
\begin{SideBySideExample}
 \begin{rxn}
  \reactant{A}
  \branch[,,yshift=1em]{\arrow{}{}}
  \reactant[,,yshift=-1em]{B}
 \end{rxn}
\end{SideBySideExample}
Beim Anfangen eines echten Astes ist es nicht immer egal, ob man Variante 3 (\lstinline+<anker>.<winkel>+) oder 5 (\lstinline+<schluessel>=of <anker>+) wählt:
\begin{SideBySideExample}
 \makevisible
 \begin{rxn}
  \reactant[,a]{\chemfig{[:30]--[::-60]-OH}}
  \arrow{}{}
  \branch[a.-45]{\arrow[-45]{}{}}
 \end{rxn}
 \begin{rxn}
  \reactant[,a]{\chemfig{[:30]--[::-60]-OH}}
  \arrow{}{}
  \branch[below right=of a]{\arrow[-45]{}{}}
 \end{rxn}
\end{SideBySideExample}
Im ersten Fall wird der Ast \ang{45} unterhalb der Horizontalen ausgehend vom Zentrum des Reaktands positioniert. Da die Form des Reaktands rechteckig ist und nicht etwa quadratisch oder rund, stimmen die \ang{45} nicht mit "`unten rechts"' überein.
\begin{SideBySideExample}
 \makevisible
 \begin{rxn}
  \reactant[,a,circle]{\chemfig{[:30]--[::-60]-OH}}
  \arrow{}{}
  \branch[a.-45]{\arrow[-45]{}{}}
 \end{rxn}
 \begin{rxn}
  \reactant[,a,circle]{\chemfig{[:30]--[::-60]-OH}}
  \arrow{}{}
  \branch[below right=of a]{\arrow[-45]{}{}}
 \end{rxn}
\end{SideBySideExample}
\index{branch!Positionierung|)}

\subsubsection{Ausrichtungsprobleme}\label{sssec:branch_ausrichtung}\index{branch!Ausrichtung|(}
Wenn ein Pfeil zwei verschieden große Label hat und in einem Branch liegt, wird der Branch nicht mehr richtig ausgerichtet. Der \lstinline=\arrow=-Key \lstinline=both= ist nicht wirklich eine Lösung, weil die kleinere Beschriftung dann nicht mehr am Pfeil liegt, sondern wegrutscht.
\begin{SideBySideExample}
 \makevisible
 \begin{rxn}
  \reactant[,a]{A}
  \arrow{}{}
  \branch[below=of a]{
   \arrow[-90,,,,both]{\chemfig{-[::30]-[::-60]OH}}{\Hpl}
  }
 \end{rxn}
 \makeinvisible
\end{SideBySideExample}
In diesem Fall können Sie den Branch mit den \TikZ-Keys \lstinline=xshift=\index{xshift} und \lstinline=yshift=\index{yshift} verschieben.
\begin{SideBySideExample}
 \makevisible
 \begin{rxn}
  \reactant[,a]{A}
  \arrow{}{}
  \branch[below=of a,,xshift=1.35em]{
   \arrow[-90]{\chemfig{-[::30]-[::-60]OH}}{\Hpl}
  }
 \end{rxn}
 \makeinvisible
\end{SideBySideExample}
\index{branch!Ausrichtung|)}\index{branch|)}

\subsection{chemand}\label{ssec:chemand}\index{chemand|(}\index{Befehle!chemand}
Der Befehl
\begin{lstlisting}
 \chemand[<pos>,<name>,<tikz>]
\end{lstlisting}
erzeugt und platziert ein $+$ auf die gleiche Weise, wie \lstinline+\reactant+ beliebigen Text platziert. Letztlich ist er nur ein Shortcut für \lstinline+\reactant+:
\begin{lstlisting}
 \newcommand*{\chemand}[1][]{\reactant[#1]{\chemsign[0pt]{+}}}
\end{lstlisting}
\begin{Example}
 \begin{rxn}
  \reactant{\chemfig{*6(------)}}
  \chemand
  \reactant{\ce{Br2}}
  \arrow{$h\nu$}{}
  \reactant{\chemfig{*6(--(-Br)----)}}
  \chemand
  \reactant{\ce{HBr}}
 \end{rxn}
\end{Example}
Die optionalen Argumente von \lstinline+\chemand+ und \lstinline+\reactant+ sind also die gleichen, siehe \ref{ssec:reactant} für eine Beschreibung.
\index{chemand|)}

\subsection{dummy}\label{ssec:dummy}\index{dummy|(}\index{Befehle!dummy}
\NEU%
Mit \lstinline=\dummy= zeichnet man eine leere Node. Bis Version 1.3 mussten die Pfeile, die mit \lstinline=\arrow= erzeugt werden, einer Node nachfolgen. \lstinline=\arrow= ruft intern \lstinline=\tikzchainprevious= auf. Ist \emph{vor} einem Pfeil noch \emph{keine} Node auf die Chain geschrieben worden, erzeugte das eine Fehlermeldung. Ähnliches galt für \lstinline+\branch+. Durch Setzen des \lstinline=\dummy= konnte ein Schema dennoch mit einem Pfeil beginnen.
\begin{lstlisting}
 \begin{rxn}
  \dummy\arrow{}{}
 \end{rxn}
\end{lstlisting}
\textbf{Das ist nun \emph{nicht} mehr nötig.} Dennoch kann unter Umständen eine leere Node am Anfang als Anker zur Ausrichtung anderer Objekte ganz nützlich sein, weshalb der Befehl weiter zur Verfügung steht.
\index{dummy|)}

\subsection{elmove}\label{ssec:elmove}\index{elmove|(}\index{Befehle!elmove}
\lstinline=\elmove= ist lediglich ein Abkürzungsmakro für den \CF-Befehl \lstinline=\chemmove=.
\begin{lstlisting}
 \elmove[<tikz>]{<start>}{<startrichtung>}{<ende>}{<endrichtung>}
\end{lstlisting}
Das schreibt den Befehl
\begin{lstlisting}
 \chemmove{\draw[!!<tikz>!!](!!<start>!!).. controls +(!!<startrichtung>!!) and +(!!<endrichtung>!!)..(!!<ende>!!);}
\end{lstlisting}
mit \lstinline?[->,red,shorten <=3pt,shorten >=1pt]? als Voreinstellung für \lstinline=<tikz>=.

Wie \lstinline=\chemmove= funktioniert, können Sie im Manual zu \CF nachlesen.
\begin{Example}
 \begin{center}
  \setatomsep{1.8em}
  \chemfig{*6(=[@{e1}]-=-(-[:120]Br)(-[:60]H)-(-[:-30,.4,,,white]\oplus)-[@{e2}])}
  \elmove{e1}{60:4mm}{e2}{0:4mm}
 \end{center}
\end{Example}
Sie sollten \lstinline+\elmove+ \emph{nur innerhalb} von \lstinline+\anywhere+, \lstinline+\reactant+ oder \lstinline+\transition+ verwenden. Ansonsten könnten sich einige Ausrichtungsfehler ergeben.
\index{elmove|)}

\subsection{makeinvisible}\label{ssec:makeinvisible}\index{makeinvisible|(}\index{Befehle!makeinvisible}
Dieser Befehl hebt die Änderungen von \lstinline=\makevisible= (siehe \ref{ssec:makevisible}) auf und stellt das normale Verhalten von \mC wieder her. \lstinline=\makeinvisible= wirkt sich nur auf nachfolgende Reaktanden aus.
\index{makeinvisible|)}

\subsection{makevisible}\label{ssec:makevisible}\index{makevisible|(}\index{Befehle!makevisible}
Mit \lstinline=\makevisible= können Sie die Nodes, innerhalb derer sich die Reaktanden befinden, farbig hervorheben. Das kann \zB bei der Positionierung und Feinjustierung von Branches ganz nützlich sein. Ein Beispiel dafür sehen Sie in \ref{ssec:arrow}. Je nach Art der Node ist die Markierung eine andere:

\tikz[baseline=(X.base)]\node[draw=red!60](X){\texttt{\textbackslash reactant\{\}}};, \tikz[baseline=(X.base)]\node[draw=green!60](X){\texttt{\textbackslash arrow\{above\}\{\}}};, \tikz[baseline=(X.base)]\node[draw=blue!60](X){\texttt{\textbackslash arrow\{\}\{below\}}}; und \tikz[baseline=(X.base)]\node[draw=cyan](X){\texttt{\textbackslash branch\{\}}};. Siehe auch \ref{ssec:makeinvisible}.

\lstinline=\makevisible= wirkt sich nur auf nachfolgende Reaktanden aus und ist auch nur innerhalb der Gruppe wirksam, in der er gesetzt wurde.
\begin{SideBySideExample}
 \begin{rxn}
  \makevisible
  \reactant[,a]{A}
  \arrow{a}{b}
  \branch[below=of a]{
    \arrow[-90,,,,both]{a}{b}
  }
 \end{rxn}
 \begin{rxn}
  {\makevisible
  \reactant{\chemfig{[:30]--[::-60]-OH}}
  }
  \reactant{\chemfig{[:30]--[::-60]-OH}}
 \end{rxn}
\end{SideBySideExample}
\index{makevisible|)}

\subsection{marrow}\label{ssec:marrow}\index{marrow|(}\index{Befehle!marrow}
Der Befehl \lstinline=\marrow= zeichnet einen Mesomeriepfeil.
\begin{lstlisting}
 \marrow[<pos>]
\end{lstlisting}
Er ist eine Abkürzung für \lstinline+\arrow[<pos>,<->,.5]{}{}+.
\index{marrow|)}

\subsection{mCsetup}\label{ssec:mCsetup}\index{mCsetup|(}\index{Befehle!mCsetup}
Der Befehl
\begin{lstlisting}
 \mCsetup{<keys>}
\end{lstlisting}
kann verwendet werden, um alle Voreinstellungen zu verändern. Für jeden der \lstinline=\set<command>=-Befehle von \mC mit Ausnahme von \lstinline=\setbondshape= gibt es einen Key \lstinline+<command>=<value>+. Zusätzlich gibt es den Key \lstinline+align=<value>+, mit dem das Ausrichtungsverhalten von \lstinline=rxn= und \lstinline=rxnscheme= gleichzeitig geändert werden kann und den Key \lstinline=reset=, durch den alle Voreinstellungen wiederhergestellt werden.\index{mCsetup!align}\index{mCsetup!arrowlength}\index{mCsetup!atomsize}\index{mCsetup!bondlength}\index{mCsetup!mergelength}\index{mCsetup!rcndist}\index{mCsetup!rxnalign}\index{mCsetup!schemealign}\index{mCsetup!reset}
\begin{Example}
 \mCsetup{
  align=left,
  arrowlabel=.7em,
  arrowlength=3em,
  arrowline=thick,
  atomsize=\large,
  bondlength=3em,
  mergelength=4em,
  rcndist=2em
  %rxnalign=right,
  %schemealign=left,
 }
 \setbondshape{4pt}{2pt}{1pt}
 \begin{rxn}
  \reactant{A}\arrow{a}{b}\reactant{\chemfig{A-(<[2])(<:[6])-B}}
 \end{rxn}
 \mCsetup{reset}
 \begin{rxn}
  \reactant{A}\arrow{a}{b}\reactant{\chemfig{A-(<[2])(<:[6])-B}}
 \end{rxn}
\end{Example}
\textbf{Für} \lstinline+\mCsetup+ \textbf{gilt wie für alle anderen Einstellungsbefehle: er ist nur innerhalb der Gruppe wirksam, in der er gesetzt wurde.}
\index{mCsetup|)}

\subsection{merge}\label{ssec:merge}\index{merge|(}\index{Befehle!merge}
\NEU%
Mit dem \lstinline+merge+-Befehl können verschiedene Reaktionsstränge zu einem vereint werden. Dafür müssen die einzelnen zu vereinenden Reaktanden mit einem Anker (\lstinline+\reactant[,<name>]{}+, entsprechend bei Branches, siehe \ref{ssec:reactant} bzw. \ref{ssec:branch}) gekennzeichnet sein und \emph{vor} \lstinline+\merge+ gesetzt werden.
\begin{lstlisting}
 \merge[<label>,<pos>,<länge>]{<ziel>}{<start a>}{<start b>}
\end{lstlisting}
\lstinline+\merge+ kann drei optionale Argumente bekommen und benötigt als Argumente die Anker-Namen der zu verbindenen Reaktanden.
\begin{Example}
 \begin{rxn}
  \branch[,oben]{
   \reactant[,start_a]{\chemfig{-[:30]-[:-30]OH}}
   \reactant[,start_b,xshift=9em]{\chemfig{-[:30]=[:-30]O}}
  }
  \branch[below=of oben,ziel,yshift=-5em]{
   \reactant{\chemfig{-[:30]-[:-30]O-[:30](-[2]OH)-[:-30]}}
  }
  \merge[\ce{[\Hyd]}]{ziel}{start_a}{start_b}
 \end{rxn}
\end{Example}
Die Standard-\lstinline+<pos>+ ist \lstinline+below+, andere mögliche Werte sind \lstinline+right+, \lstinline+left+ und \lstinline+above+. Mit \lstinline+<länge>+ kann die Länge des Pfeils \emph{ab der Zusammenführung} angegeben werden. Standard sind \SI{3}{\emlength}. Die Standardlänge kann über \lstinline+\setmergelength+\index{setmergelength} oder \lstinline+\mCsetup+\index{mCsetup} auch geändert werden.
\begin{Example}
 \begin{rxn}
  \reactant[,start_a]{\chemfig{-[:30]-[:-30]OH}}
  \branch[below=of start_a,start_b,yshift=-9em]{
   \reactant{\chemfig{-[:30]=[:-30]O}}
  }
  \branch[right=of start_a,ziel,xshift=7em,yshift=-6em]{
   \reactant{\chemfig{-[:30]-[:-30]O-[:30](-[2]OH)-[:-30]}}
  }
  \merge[\ce{[\Hyd]},right,5em]{ziel}{start_a}{start_b}
 \end{rxn}
\end{Example}
Da man die Reaktanden vorher platzieren muss, ist es bestimmt hilfreich, die benötigten Abstände etwas im Auge zu behalten. Drei Werte bestimmen den benötigten Platz. Zum einen die {\color{green}Ausdehnung} der beteiligten Reaktanden, der Abstand der "`reaction-nodes"' {\color{red}rcndist} (siehe \ref{ssec:setrcndist}) voneinander und die Länge des \lstinline+\merge+-Pfeils {\color{blue}mergelength} (siehe auch \ref{ssec:setmergelength}).
\begin{rxn}
 \node[above](a) at (0,0){A};
 \node[above](b) at (10em,0){B};
 \node[below](c) at (5em,-6em){C};
 \merge{c}{a}{b}
 \draw (-8.5em,1em) -- (-8.5em,-9em);
 \foreach \x in {-1,0,1,2,3,4,5,6,7,8,9}{
   \draw (-8.5em,-\x em) -- (-8.7em,-\x em);
 }
 \draw[<->,red] (10em,0)--node[midway,right,xshift=.2em]{rcndist (default: 1em)}(10em,-1em);
 \draw[<->,red] (0,0)--(0,-1em);
 \draw[<->,red] (5em,-5em)--(5em,-6em);
 \draw[<->,blue] (6em,-2em) --node[midway,right,xshift=.2em]{mergelength (default: 3em)} (6em,-5em);
 \draw[<->,green] ($(a.base)+(-.5em,0)$)--node[midway,left,xshift=-.2em]{halber Reaktand}++(0,.5em);
\end{rxn}
Noch ein letztes Beispiel, bei dem zwei Stränge vereint werden.
\begin{Example}
 \begin{rxn}
  \setatomsep{1em}\tiny
  % Strang 1
   \reactant[,oben]{ \chemfig{Cl-[:30,1.5]--[:-30,1.5]O-[:30,1.5]--[:-30,1.5]Cl}{} }
   \arrow[,,.5]{}{}
   \reactant[,start_oben]{ \chemfig{O(-[:-150]**6(-----(-OH)-))-[:90]-[:30]-[:-30]O-[:30]-[:-30]-[:-90]O-[:-30]**6(-(-HO)-----)} }
  % Strang 2
  \branch[below=of oben,start_unten,xshift=8em,yshift=-4em]{
   \reactant{ \chemfig{**6((--[6,,,2]HO)-N-(--[6]OH)----)} }
   \arrow[,,.5]{}{}
   \reactant{ \chemfig{**6((--[6]Br)-N-(--[6]Br)----)} }
  }
  % Ziel
  \branch[right=of start_oben,ziel,xshift=5em,yshift=-4em]{
   \reactant[,c]{ \chemfig{O(-[:-150]**6(-----(-O?)-))-[:90]-[:30]**6(-N-(--[:-90]O-[:-30]**6(-(-O-[6]-[:-150]-[:150]O-[:-150]-[:150]?)-----))----)} }
  }
  % Zusammenfuehren:
  \merge[,right]{ziel}{start_oben}{start_unten}
 \end{rxn}
\end{Example}
Die Verwendung von \lstinline=\merge= erfordert unter Umständen einige Spielerei mit Branches, \lstinline+xshift+\index{xshift} und \lstinline+yshift+\index{yshift}, bis man das gewünschte Ergebnis erhält.
\begin{Example}
 \begin{rxn}
  \setatomsep{1.5em}
  \reactant[,start_aa]{ \chemname{\chemfig{**6(---(-NH_2)---)}}{Anilin} }
  \reactant[below,start_ab,yshift=-3em]{ \chemname{\ce{HNO2}}{salpetrige S"aure} }
  \branch[right=of start_aa,ziel_a,xshift=6em,yshift=-5em]{
    \reactant{ \chemname{\chemfig{**6(---(-N|_2\op)---)}}{Diazoniumion} }
  }% = start_ba
  \branch[below=of ziel_a,start_bb,yshift=-3em]{
    \reactant{ \chemname{\chemfig{**6(---(-NH_2)---)}}{Anilin} }
  }
  \branch[right=of ziel_a,ziel_b,xshift=6em,yshift=-5em]{
    \reactant{ \chemname{\chemfig{N(-[:-150]**6(------))=N-[:-30]**6(---(-NH_2)---)}}{p-Aminodiazobenzol} }
  }
  \merge[,right]{ziel_a}{start_aa}{start_ab}
  \merge[,right]{ziel_b}{ziel_a}{start_bb}
 \end{rxn}
\end{Example}
\index{merge|)}

\subsection{mesomeric}\label{ssec:mesomeric}\index{mesomeric|(}\index{Befehle!mesomeric}
Der \lstinline=\mesomeric=-Befehl funktioniert wie ähnlich wie \lstinline=\branch= (\ref{ssec:branch}). Sein Zweck ist es, eckige Klammern zu setzen.
\begin{lstlisting}
 \mesomeric[<pos>,<name>,<tikz>]{<formel(n)>}
\end{lstlisting}
In \lstinline=<formel(n)>= werden die mesomeren Grenzstrukturen geschrieben. Mit \lstinline=\marrow=\linebreak (\ref{ssec:marrow}) werden die Mesomeriepfeile gesetzt. Man kann \lstinline=\mesomeric= falls nötig mit einem  Anker (\lstinline=<name>=) versehen (\ref{ssec:branch}). Die \lstinline+<pos>+ funktioniert wie bei \lstinline=\reactant[<pos>]{}=.
\begin{Example}
 \begin{rxn}
  \mesomeric{
    \reactant{
      \chemfig{*6(=[@{e1}]-=-(-[:120]X)(-[:60]H)-(-[:-30,.4,,,white]\oplus)-[@{e2}])}
      \elmove{e1}{60:4mm}{e2}{0:4mm}
    }
    \marrow
    \reactant{
      \chemfig{*6(-(-[:90,.4,,,white]\oplus)-[@{e4}]=[@{e3}]-(-[:120]X)(-[:60]H)-=)}
      \elmove{e3}{180:4mm}{e4}{150:4mm}
    }
    \marrow
    \reactant{
      \chemfig{*6(-=-(-[:-150,.4,,,white]\oplus)-(-[:120]X)(-[:60]H)-=)}
    }
   }
 \end{rxn}
\end{Example}
Oder auch von oben nach unten:
\begin{SideBySideExample}
 \begin{rxn}
  \mesomeric{
    \reactant{ \chemfig{*6(=-=-=-)} }
    \marrow[below]
    \reactant[below]{ \chemfig{*6(-=-=-=)} }
  }
 \end{rxn}
\end{SideBySideExample}
Vielleicht auch einen Komplex?
\begin{Example}
 \begin{rxn}
  \setatomsep{3em}
  \mesomeric[,a]{
    \reactant{ \chemfig{H_3\lewis{0,N}-[,1.35,,,dotted]{Cu}(-[2,,,,dotted]\lewis{6,N}H_3)(-[6,,,,dotted]\lewis{2,N}H_3)-[,1.2,,,dotted]\lewis{4,N}H_3} }
  }
  \anywhere{above right=of a,,yshift=-1em}{$2\oplus$}
 \end{rxn}
\end{Example}
\index{mesomeric|)}

\subsection{reactant}\label{ssec:reactant}\index{reactant|(}\index{Befehle!reactant}
Der Befehl \lstinline=\reactant=\footnote{In älteren Versionen hieß der Befehl \texttt{\textbackslash reactand}. Dieser Befehl ist noch immer verfügbar.} ist so etwas wie der Basisbefehl.
\begin{lstlisting}
 \reactant[<pos>,<name>,<tikz>]{<formel(n)>}
\end{lstlisting}
In diesen Befehl werden die Formeln (\lstinline=<formel>=) geschrieben und können, falls nötig, mit einem Anker (\lstinline=<name>=) versehen werden. \lstinline+<pos>+ kann die 8 Schlüssel-Werte
\begin{alphlist}
 \item \lstinline+right+,
 \item \lstinline+above right+,
 \item \lstinline+above+,
 \item \lstinline+above left+,
 \item \lstinline+left+,
 \item \lstinline+below left+,
 \item \lstinline+below+,
 \item \lstinline+below right+
\end{alphlist}
\NEU%
annehmen, einen Winkel des Intervalls $[\ang{-360};\ang{360}]$ oder eine Anker-Winkel-Kom\-bi\-na\-tion \lstinline+<anker>.<winkel>+ sein. Die Voreinstellung entspricht \lstinline+\reactant[0]{}+.
\begin{SideBySideExample}
%untereinander:
 \begin{rxn}
   \reactant{\ce{Br2}}
   \reactant[-90]{\ce{Cl2}}
 \end{rxn}

%Beispiel mit mehreren Reaktanden:
 \begin{rxn}
   \reactant{\ce{Br2}}
   \reactant[-90]{\ce{I2}}
   \reactant{\ce{Cl2}}
 \end{rxn}

%Reaktion von oben nach unten:
 \begin{rxn}
  \reactant{\ce{Br-Br}}
  \arrow[-90,,.5]{$h\nu$}{}
  \reactant[-90]{\ce{2 ~\lewis{0.,Br}}}
 \end{rxn}
\end{SideBySideExample}
Viele weitere Beispiele finden Sie in der Datei \texttt{examples.tex} bzw. \texttt{examples.pdf}.
\index{reactant|)}

\subsection{rxn (Umgebung)}\label{ssec:rxn}\index{rxn|(}\index{Befehle!rxn|see{rxn}}\index{Umgebung!rxn|see{rxn}}
Die Umgebung \lstinline=rxn= ist eine unnummerierte nicht gleitende Umgebung für Reaktionsschemata. Die Reaktionsschemata werden per Default zentriert. Die Voreinstellungen \lstinline=\setbondlength=, \lstinline=\setbondshape=, \lstinline=\setarrowlength= und \lstinline=\setatomsize= gelten hier ebenso wie bei \lstinline=rxnscheme=.
\begin{lstlisting}
 \begin{rxn}[<ausrichtung>,<skalierung>]
  ...
 \end{rxn}
\end{lstlisting}

\subsubsection{Optionen}\label{sssec:rxn_optionen}\index{rxn!Optionen|(}
\lstinline=rxn= hat zwei Optionen, die in der angegebenen Reihenfolge, durch Komma separiert, einzusetzen sind:
\begin{enumerate}
 \item\lstinline+<ausrichtung>+\index{rxn!Optionen!ausrichtung} das Ausrichtungsverhalten der \lstinline=rxn=-Umgebung, Default: center
 \item\lstinline+<skalierung>+\index{rxn!Optionen!skalierung} Skalierung der \lstinline=rxn=-Umgebung, Default: 1.0
\end{enumerate}
Wenn Sie die \lstinline+<skalierung>+-Option verwenden, können Sie auf seltsame Effekte bei \CF-Formeln stoßen.
\begin{SideBySideExample}
 \begin{rxn}[,.5]
  \reactant{\chemfig{**6(------)}}
 \end{rxn}
\end{SideBySideExample}
Die Skalierung hat keinen Einfluss auf die Größe der \CF-Formeln, skaliert aber den Aromatizitäts-Ring von Benzol und ähnlichen Molekülen. Die Ursache liegt an einer Unannehmlichkeit von \CF.
\begin{SideBySideExample}
 \chemfig[scale=.5]{**6(------)}
\end{SideBySideExample}
Sie können das lösen, indem Sie entweder mit dem \emph{ersten} optionalen Argument von \lstinline+\chemfig+ den Ring wieder vergrößern, oder mit dem \emph{zweiten} Argument den Rest auch verkleinern.
\begin{Example}
 \begin{rxn}[,.5]
  \reactant{\chemfig[scale=2]{**6(------)}}
  \reactant{\chemfig[][scale=.5]{**6(------)}}
 \end{rxn}
 \chemfig[scale=.5][scale=.5]{**6(------)}
\end{Example}
Beispiele zur Ausrichtung:
\begin{Example}
 \begin{rxn}[center]
  \reactant{center}\arrow{}{}\reactant{zentriert}
 \end{rxn}
 \begin{rxn}[right]
  \reactant{right}\arrow{}{}\reactant{rechts}
 \end{rxn}
 \begin{rxn}[left]
  \reactant{left}\arrow{}{}\reactant{links}
 \end{rxn}
\end{Example}
\index{rxn!Optionen|)}\index{rxn|)}

\subsection{rxnscheme (Umgebung)}\label{ssec:rxnscheme}\index{rxnscheme|(}\index{Befehle!rxnscheme|see{rxnscheme}}\index{Umgebung!rxnscheme|see{rxnscheme}}
Die Umgebung \lstinline=rxnscheme= ist eine Gleitumgebung für Reaktionsschemata.
\begin{lstlisting}
 \begin{rxnscheme}[<label>,<platzierung>,<ausrichtung>,<skalierung>,<titel>]{<caption>}
  ...
 \end{rxnscheme}
\end{lstlisting}

\subsubsection{Optionen}\label{sssec:rxnscheme_optionen}\index{rxnscheme!Optionen|(}
\lstinline=rxnscheme= hat fünf Optionen, die in der angegebenen Reihenfolge, durch Komma separiert, einzusetzen sind:
\begin{enumerate}
 \item\lstinline+<label>+\index{rxnscheme!Optionen!label} Wie jede Gleitumgebung kann auch \lstinline=rxnscheme= mit einem Label versehen werden. Setzen Sie \zB
 \begin{lstlisting}
 \begin{rxnscheme}[rs:schema]{<caption>}
  ...
 \end{rxnscheme}
 \end{lstlisting}
 ein, können Sie mit \lstinline=\ref{rs:schema}= wie gewohnt referenzieren.
 \item\lstinline+<platzierung>+\index{rxnscheme!Optionen!platzierung} Hier können sie Platzierungsangaben wie \lstinline+htp+ angeben. Default ist \lstinline+H+ (genau hier).
 \item\lstinline+<ausrichtung>+\index{rxnscheme!Optionen!ausrichtung}Mit dieser Option kann man auswählen, ob das Schema links, rechts oder mittig ausgerichtet wird.
 \item\lstinline+<skalierung>+\index{rxnscheme!Optionen!skalierung} Mit dieser Option kann das Reaktionsschema skaliert werden. Beachten Sie, dass sie sich nicht auf die Schriftgröße und die Größe der \CF-Formeln auswirkt. Sie können allerdings seltsame Auswirkungen auf \CF-Formeln beobachten, wenn Sie diese Option verwenden. Lesen Sie \ref{sssec:rxn_optionen} für weitere Informationen.
 \begin{lstlisting}
 \begin{rxnscheme}[,,,<skalierung>]{<caption>}
  ...
 \end{rxnscheme}
 \end{lstlisting}
 \item\lstinline+<titel>+\index{rxnscheme!Optionen!titel} Mit dieser Option lässt sich der Name des konkreten Schemas von "`Reaktionschema"' (oder "`Reaction scheme"') in \lstinline+<titel>+ ändern.
\end{enumerate}
\begin{Example}
 \begin{rxnscheme}[,H,,2]{Gro\ss es Schema}
  \large\setatomsep{3.5em}
  \reactant{ \chemfig{=[::30]-[::-60]OH} }
  \arrow[,<=>]{}{}
  \reactant{ \chemfig{-[::30]=[::-60]O} }
 \end{rxnscheme}
 \begin{rxnscheme}[,H,,.5]{Kleines Schema}
  \tiny\setatomsep{1em}
  \reactant{ \chemfig{=[::30]-[::-60]OH} }
  \arrow[,<=>]{}{}
  \reactant{ \chemfig{-[::30]=[::-60]O} }
 \end{rxnscheme}
 \begin{rxnscheme}[,H]{center}
  \reactant{center}\arrow{}{}\reactant{zentriert}
 \end{rxnscheme}
 \begin{rxnscheme}[,H,right]{right}
  \reactant{right}\arrow{}{}\reactant{rechts}
 \end{rxnscheme}
 \begin{rxnscheme}[,H,left]{left}
  \reactant{left}\arrow{}{}\reactant{links}
 \end{rxnscheme}
\end{Example}
\index{rxnscheme!Optionen|)}

\subsubsection{rxnscheme anpassen}\label{sssec:rxnscheme_anpassen}\index{rxnscheme!anpassen|(}
\paragraph{Stil}\index{rxnscheme!anpassen!Stil}
Wenn Ihnen der Stil nicht gefällt, können Sie diesen mit
\begin{lstlisting}
 \floatstyle{<neuer Stil>}
 \restylefloat{rxnfloat}
\end{lstlisting}
ändern. Als Stile stehen durch das `float'-Paket
\begin{description}
 \vitem=plain= Ohne spezielle Formatierungen, Legende erscheint unter dem Objekt
 \vitem=plaintop= Wie \lstinline=plain=, aber Legende oberhalb des Objekts
 \vitem=boxed= Objekt ist gerahmt, Legende unterhalb
 \vitem=ruled= Legende erscheint von Linien umgeben oberhalb des Objekts, Objekt wird unterhalb von einer weiteren Linie begrenzt; Voreinstellung für \lstinline=rxnscheme=
\end{description}
zur Verfügung.
\begin{Example}
 \begin{rxnscheme}[,H]{ruled}
  \reactant{Standard-Stil}
 \end{rxnscheme}
 \floatstyle{boxed}
 \restylefloat{rxnfloat}
 \begin{rxnscheme}[,H]{boxed}
  \reactant{mit Rahmen}
 \end{rxnscheme}
 \floatstyle{plain}
 \restylefloat{rxnfloat}
 \begin{rxnscheme}[,H]{plain}
  \reactant{ohne Schnickschnack}
 \end{rxnscheme}
\end{Example}
\floatstyle{ruled}
\restylefloat{rxnfloat}
\paragraph{Platzierung}\index{rxnscheme!anpassen!Platzierung}
Auch das Platzierungsverhalten, das in der Voreinstellung \lstinline=hpt= ist, können Sie entsprechend ändern.
\begin{lstlisting}
 \floatplacement{rxnfloat}{<position>}
\end{lstlisting}
Einfacher ist allerdings der Aufruf von \mC mit entsprechender Option.
\begin{lstlisting}
 \usepackage[placement=<position>]{mychemistry}
\end{lstlisting}
Sie können auch das Verhalten einer einzigen Umgebung durch Angabe der entsprechenden Option ändern.
\begin{lstlisting}
 \begin{rxnscheme}[,<platzierung>]{<caption>}
  ...
 \end{rxnscheme}
\end{lstlisting}
\paragraph{Benennung}\label{par:rxnscheme_name}\index{rxnscheme!anpassen!Benennung}
Wollen Sie den Namen der Beschriftung ändern, können Sie das mit
\begin{lstlisting}
 \setschemename{<neuer name>}
\end{lstlisting}
machen. Voreinstellung ist "`Reaktionschema"' bzw "`Reaction scheme"' bei der Paketoption `english'.
\paragraph{Zähler}\index{rxnscheme!anpassen!Zaehler@Zähler}
Um den Zähler zu ändern, gehen Sie wie üblich vor. Durch
\begin{lstlisting}
 \makeatletter
 \@addtoreset{rxnfloat}{section}
 \makeatother
 \renewcommand{\therxnfloat}{\arabic{section}.\arabic{rxnfloat}}
\end{lstlisting}
wird der Zähler der Schemata \zB mit jeder neuen \lstinline=section= zurückgesetzt und die Nummer nach den Muster \lstinline=section.rxnscheme= ausgegeben. Beachten Sie, dass Sie wegen des {@} den Aufruf mit \lstinline=\makeatletter= und\lstinline=\makeatother= begrenzen müssen.
\paragraph{Verzeichnis}\index{rxnscheme!anpassen!Verzeichnis}
Mit
\begin{lstlisting}
 \listof{rxnfloat}{<titel>}
\end{lstlisting}
können Sie eine Liste aller Reaktionsschemata erzeugen:
\begin{SideBySideExample}
 \listof{rxnfloat}{Reaktionsschemata}
\end{SideBySideExample}
\index{rxnscheme!anpassen|)}\index{rxnscheme|)}

\subsection{setarrowlabel}\label{ssec:setarrowlabel}\index{setarrowlabel|(}\index{Befehle!setarrowlabel}
\NEU%
Die Beschriftungen eines Pfeils haben in der Voreinstellung einen Abstand von \SI{0.2}{\emlength} vom Pfeil. Mit
\begin{lstlisting}
 \setarrowlabel{<abstand>}
\end{lstlisting}
kann der Abstand in \lstinline+<abstand>+ geändert werden.
\begin{SideBySideExample}
 \begin{rxn}
  \arrow{a}{b}
  \setarrowlabel{.5em}
  \arrow{a}{b}
 \end{rxn}
\end{SideBySideExample}
\index{setarrowlabel|)}

\subsection{setarrowlength}\label{ssec:setarrowlength}\index{setarrowlength|(}\index{Befehle!setarrowlength}
Reaktionspfeile haben als Standardwert die Länge \SI{4}{\emlength}. Die Voreinstellung lässt sich mit
\begin{lstlisting}
 \setarrowlength{<länge>}
\end{lstlisting}
auf \lstinline+<länge>+ ändern. Beachten Sie, dass Sie eine Längeneinheit verwenden müssen. Lassen Sie das Argument leer, wird die Voreinstellung wiederhergestellt.
\index{setarrowlength|)}

\subsection{setarrowline}\label{ssec:setarrowline}\index{setarrowline|(}\index{Befehle!setarrowline}
\NEU%
Mit dem Befehl
\begin{lstlisting}
 \setarrowline{<value>}
\end{lstlisting}
lässt sich die Dicke der Pfeillinien einstellen. Mögliche Werte sind
 \begin{flushleft}
 \begin{tikzpicture}
   \draw[ultra thin] (0,0)--(1,0)node[right]{\tt ultra thin};
   \draw[very thin] (0,-.5)--(1,-.5)node[right]{\tt very thin};
   \draw[thin] (0,-1)--(1,-1)node[right]{\tt thin};
   \draw[semithick] (0,-1.5)--(1,-1.5)node[right]{{\tt semithick} (default)};
   \draw[thick] (0,-2)--(1,-2)node[right]{\tt thick};
   \draw[very thick] (0,-2.5)--(1,-2.5)node[right]{\tt very thick};
   \draw[ultra thick] (0,-3)--(1,-3)node[right]{\tt ultra thick};
 \end{tikzpicture}
\end{flushleft}
Die Werte \lstinline+very thick+ und \lstinline+ultra thick+ sind nicht zu empfehlen.

Die Einstellung gilt auch für \lstinline+\merge+\index{merge}.
\index{setarrowline|)}

\subsection{setatomsize}\label{ssec:setatomsize}\index{setatomsize|(}\index{Befehle!setatomsize}
Mit
\begin{lstlisting}
 \setatomsize{<größe>}
\end{lstlisting}
lässt sich die Schriftgröße der Atomgruppen verändern. Standard ist \lstinline=\small=. Lassen Sie das Argument leer, wird die Voreinstellung wiederhergestellt.
\index{setatomsize|)}

\subsection{setbondlength}\label{ssec:setbondlength}\index{setbondlength|(}\index{Befehle!setbondlength}
Mit
\begin{lstlisting}
 \setbondlength{<länge>}
\end{lstlisting}
lässt sich \lstinline=\setatomsep{<länge>}= für die \CF-Formeln \emph{innerhalb} der \mC-Umgebungen einstellen. Standard ist \SI{1.8}{\emlength}. Lassen Sie das Argument leer, wird die Voreinstellung wiederhergestellt.
\index{setbondlength|)}

\subsection{setbondshape}\label{ssec:setbondshape}\index{setbondshape|(}\index{Befehle!setbondshape}
Mit
\begin{lstlisting}
 \setbondshape{<basislänge>}{<strichdicke>}{<strichabstand>}
\end{lstlisting}
lässt sich \lstinline=\setcrambond{<basislänge>}{<strichdicke>}{<strichabstand>}= für die \CF-Formeln \emph{innerhalb} der \mC-Umgebungen einstellen. Standard sind in dieser Reihenfolge \SI{3}{\pt}, \SI{.5}{\pt} und \SI{1}{\pt}. Lassen Sie die Argumente leer, wird die jeweilige Voreinstellung wiederhergestellt.
\index{setbondshape|)}

\subsection{setmergelength}\label{ssec:setmergelength}\index{setmergelength|(}\index{Befehle!setmergelength}
\NEU%
Mit
\begin{lstlisting}
 \setmergelength{<länge>}
\end{lstlisting}
kann die Länge des Pfeils beim \lstinline+\merge+-Befehl geändert werden. Genauer ist damit die Länge ab Zusammenführung bis zur Pfeilspitze gemeint (siehe \ref{ssec:merge}). Lässt man das Argument leer, wird die Voreinstellung (\SI{3}{\emlength}) wiederhergestellt.
\index{setmergelength|)}

\subsection{setrcndist}\label{ssec:setrcndist}\index{setrcndist|(}\index{Befehle!setrcndist}
Die einzelnen Nodes, in denen die Reaktanden und Pfeile geschrieben werden, haben in den \mC-Umgebungen einen bestimmten Abstand voneinander. Per Default ist das \SI{1}{\emlength}. Wenn Sie das ändern wollen, können Sie das mit
\begin{lstlisting}
 \setrcndist{<länge>}
\end{lstlisting}
machen. Lassen Sie das Argument leer, wird der Abstand wieder auf \SI{1}{\emlength} zurückgesetzt.
\begin{SideBySideExample}
 \setrcndist{2em}
 \begin{rxn}
  \reactant{A}\arrow{}{}
 \end{rxn}
 \setrcndist{}
 \begin{rxn}
  \reactant{A}\arrow{}{}
 \end{rxn}
\end{SideBySideExample}
\index{setrcndist|)}

\subsection{setrxnalign/setschemealign}\label{ssec:setrxnalign}\label{ssec:setschemealign}\index{setrxnalign|(}\index{Befehle!setrxnalign}\index{setschemealign|(}\index{Befehle!setschemealign}
Mit den Befehlen
\begin{lstlisting}
 \setrxnalign{<alignment>}
 \setschemealign{<alignment>}
\end{lstlisting}
lässt sich das Default-Ausrichtungsverhalten (siehe \ref{sssec:rxn_optionen} \&\ \ref{sssec:rxnscheme_optionen}) der Umgebungen festlegen. Es gibt die Einstellungsmöglichkeiten \lstinline=left=, \lstinline=center= oder \lstinline=right=.

Lassen Sie das Argument leer, wird die Defaulteinstellung von \mC (\lstinline=center=) wiederhergestellt.
\begin{Example}
 \setrxnalign{right}
 \begin{rxn}
  \reactant{A}\arrow{}{}\reactant{B}
 \end{rxn}
 \setrxnalign{}
 \begin{rxn}
  \reactant{A}\arrow{}{}\reactant{B}
 \end{rxn}
\end{Example}
\index{setrxnalign|)}\index{setschemealign|)}

\subsection{setschemename}\label{ssec:setschemename}\index{setschemename|(}\index{Befehle!setschemename}
Siehe \ref{par:rxnscheme_name}.
\index{setschemename|)}

\subsection{transition}\label{ssec:transition}\index{transition|(}\index{Befehle!transition}
\lstinline=\transition= funktioniert genau wie \lstinline=\reactant= (siehe \ref{ssec:reactant}).
\begin{lstlisting}
 \transition[<pos>,<name>,<tikz>]{<formel>}
\end{lstlisting}
\begin{SideBySideExample}
 \begin{rxn}
  \reactant{ \ce{H2 + I2} }
  \arrow[below,<=>,.5]{}{}
  \transition[below]{ \chemfig[dotted][]{H?-I-[2]I-[4]H?} }
  \arrow[below,<=>,.5]{}{}
  \reactant[below]{ \ce{2 HI} }
 \end{rxn}
\end{SideBySideExample}
\index{transition|)}

\section{Nachwort}
\mC steckt noch in den Kinderschuhen. Das bedeutet, dass vermutlich noch eine ganze Reihe von Bugs enthalten sind. Bestimmt fehlt auch noch das eine oder andere Feature, das nützlich wäre. Da ich das Paket nur in meiner Freizeit testen und verbessern kann, bin ich über \emph{jede} Art von Feedback sehr froh. Wenn Ihnen \mC gefällt, dann helfen Sie doch, es zu verbessern, indem Sie mir Ihre Erfahrungen mitteilen.

Viel Spaß mit \mC!

\par\vspace{.5cm}\hspace{.5cm}Clemens Niederberger, Berlin, \mCdate{de}

\section{Dank}
Ich schulde Dank für Bugreports und Vorschläge:

F.\,Chervet, Ferghun, V.\,Garibal und C.\,Tellechea (der mir ein paar essentielle Dinge klar machte).

\renewcommand{\indexname}{Stichwortverzeichnis}
\printindex
\end{document}