From 33fd01046b3caf36764e935001a4b42fb974555c Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 22 Mar 2011 23:33:58 +0000 Subject: mychemistry 1.2 (22mar11) git-svn-id: svn://tug.org/texlive/trunk@21804 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/mychemistry/README | 39 + .../doc/latex/mychemistry/mychemistry_de.pdf | Bin 0 -> 846923 bytes .../doc/latex/mychemistry/mychemistry_de.tex | 1961 +++++++++++++++++++ .../doc/latex/mychemistry/mychemistry_en.pdf | Bin 0 -> 826361 bytes .../doc/latex/mychemistry/mychemistry_en.tex | 1966 ++++++++++++++++++++ 5 files changed, 3966 insertions(+) create mode 100644 Master/texmf-dist/doc/latex/mychemistry/README create mode 100644 Master/texmf-dist/doc/latex/mychemistry/mychemistry_de.pdf create mode 100644 Master/texmf-dist/doc/latex/mychemistry/mychemistry_de.tex create mode 100644 Master/texmf-dist/doc/latex/mychemistry/mychemistry_en.pdf create mode 100644 Master/texmf-dist/doc/latex/mychemistry/mychemistry_en.tex (limited to 'Master/texmf-dist/doc/latex/mychemistry') diff --git a/Master/texmf-dist/doc/latex/mychemistry/README b/Master/texmf-dist/doc/latex/mychemistry/README new file mode 100644 index 00000000000..09c2e36b52c --- /dev/null +++ b/Master/texmf-dist/doc/latex/mychemistry/README @@ -0,0 +1,39 @@ +-------------------------------------------------------------------------- +the myChemistry package +Creating reaction schemes with LaTeX and ChemFig +2011/03/20 +-------------------------------------------------------------------------- +Clemens Niederberger +Web: http://www.niederberger-berlin.net/2011/02/latex-mychemistry/ +E-Mail: kontakt@niederberger-berlin.net +-------------------------------------------------------------------------- +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 and +mychemistry_en.tex +-------------------------------------------------------------------------- +myChemistry relies on the ChemFig-package and won't work, if it isn't +installed. +myChemistry provides commands for typesetting complex reaction schemes +with LaTeX and ChemFig. +myChemistry bundles the packages ChemFig, mhchem, chemcompounds and +chemexec. With package options one can prevent myChemistry from loading +any chemistry related packages except ChemFig, though. +The command \arrow[both]{}{} needs at least pgf version from 09/08/2011. +With older will work, but you can't use the arrow option `both'. +-------------------------------------------------------------------------- +If you have any ideas, questions, suggestions or bugs to report, please +feel free to contact me. +-------------------------------------------------------------------------- \ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/mychemistry/mychemistry_de.pdf b/Master/texmf-dist/doc/latex/mychemistry/mychemistry_de.pdf new file mode 100644 index 00000000000..ce423e0999e Binary files /dev/null and b/Master/texmf-dist/doc/latex/mychemistry/mychemistry_de.pdf differ diff --git a/Master/texmf-dist/doc/latex/mychemistry/mychemistry_de.tex b/Master/texmf-dist/doc/latex/mychemistry/mychemistry_de.tex new file mode 100644 index 00000000000..33ce8f88f19 --- /dev/null +++ b/Master/texmf-dist/doc/latex/mychemistry/mychemistry_de.tex @@ -0,0 +1,1961 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% ------------------------------------------------------------------------------------- % +% - myChemistry - mychemistry_de.tex -------------------------------------------------- % +% - Creating reaction schemes with LaTeX and ChemFig ---------------------------------- % +% ------------------------------------------------------------------------------------- % +% - Clemens Niederberger -------------------------------------------------------------- % +% - 2011/03/20 ------------------------------------------------------------------------ % +% ------------------------------------------------------------------------------------- % +% - 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 and - % +% - mychemistry_en.tex - % +% ------------------------------------------------------------------------------------- % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\documentclass[DIV10,titlepage]{scrartcl} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% - Pakete ---------------------------------------------------------------------------- % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\usepackage{scrhack} % verbessert KOMAs Zusammenspiel mit floats +\usepackage[ngerman]{babel} % Sprache +\usepackage{emerald} % chemfig-Schrift +\usepackage[utf8x]{inputenc} % Zeichenkodierung: Eingabe +\usepackage[T1]{fontenc} % Text-Ausgabe-Codierung +\usepackage{textcomp,mathcomp} +\usepackage{xspace,paralist} % xspace und Listen +\usepackage[Gray]{SIunits} % Einheiten + \addunit{\emlength}{em} + \addunit{\pt}{pt} +\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} +\usepackage[dvipsnames]{xcolor} % Farbe + \colorlet{code}{RawSienna} + \xdefinecolor{DarkRed}{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{DarkRed}\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=black, + urlcolor=blue!70, + citecolor=black, + plainpages=false, + bookmarksopen=true, + bookmarksopenlevel=2, + bookmarksnumbered=true, + pdfstartview=FitH, + pdfauthor={Clemens Niederberger}, + pdftitle={myChemistry}, + pdfsubject={Creating reactionschemes with LaTeX}, + pdfkeywords={myChemistry}, + pdfcreator={LaTeX} + } +\usepackage[color=dunkelrot]{mychemistry} % myChemistry + \renewcommand\thebeispiel{\arabic{beispiel}} % chemexec angepasst + \labelformat{beispiel}{Bei\-spiel #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\footnotesize}, % 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{blue}]{!!}{!!}, % Hervorhebung + commentstyle={\color[named]{Gray}}, + emph={begin,end}, % Umgebungen hervorheben + emphstyle=\color{red}, + keywordstyle=\color{code}, + morekeywords={arrow,arrowlength,atomsize,bondlength,bondshape,branch,chemfig,chemmove,chemname,chemsign,ce,compound,draw,dummy,elmove,floatplacement,floatstyle,lewis,listof,makeinvisible,makevisible,marrow,merge,mesomeric,node,reactand,restylefloat,setatomsep,setcrambond,setrcndist,setrxnalign,setschemealign,setschemename,transition}, + fancyvrb=true + } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% - Kopf- und Fußzeile ---------------------------------------------------------------- % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\usepackage{scrpage2} +\pagestyle{scrheadings} +\setheadwidth{textwithmarginpar} +\automark{section} +\ihead{\mC \mCversion} +\ifoot{\small\color{gray}-~Seite~\thepage~-} +\cfoot{} +\ofoot{} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% - Komascript ------------------------------------------------------------------------ % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\setkomafont{disposition}{\rmfamily\bfseries} % Gewicht fett und Schriftart roman + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% - neue Befehle ---------------------------------------------------------------------- % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% - Beispiele ------------------------------------------------------------------------- % +% - auf Basis der Beispiele in der fancyvrb-Dokumentation ----------------------------- % +\makeatletter +\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{DarkRed}\sffamily myChemistry}\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} +\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=dunkelrot,right color=white](current page.south west) rectangle ([yshift=3cm,xshift=-3cm]current page.center); + \shade[top color=black,bottom color=dunkelrot]([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}[scale=.7] + \setatomsep{1.5em}\footnotesize + \reactand{ + \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[6,,,2]HO)-C(-[2]CH_3) + (-[6]OH)-CH_3} + }{a} + \branch[below right=of a]{ + \arrow[direction=above right,length=.7]{}{} + \reactand[above right]{ + \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{$-\ce{H2O}$}{} + \reactand{ + \chemfig{\chembelow{C}{\oplus}(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))-C + (-[2]CH_3)(-[6]OH)-CH_3} + }{} + }{} + \branch[below right=of a]{ + \arrow[type={-|>},direction=below right,length=.7]{}{} + \reactand[below right]{ + \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{$-\ce{H2O}$}{} + \reactand{ + \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\mCversion\par\bigskip + \footnotesize\mCdate{de}\par + \normalsize Clemens Niederberger\par\vskip1.5cm + \color{white}\huge Reaktionsschemata mit \LaTeX\ und \CF erstellen% + \end{center} + \vskip4cm + \begin{rxn}[scale=.7] + \setatomsep{1.5em}\footnotesize + \reactand{ \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[6,,,2]HO)-C(-[2]CH_3)(-[6]OH)-CH_3} }{a} + \branch[above right=of a]{ + \arrow[direction=above right,length=.7]{}{} + \reactand[above right]{ \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{$-\ce{H2O}$}{} + \reactand{ \chemfig{\chembelow{C}{\oplus}(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))-C(-[2]CH_3)(-[6]OH)-CH_3} }{} + }{} + \branch[below right=of a]{ + \arrow[type={-|>},direction=below right,length=.7]{}{} + \reactand[below right]{ \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{$-\ce{H2O}$}{} + \reactand{ \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{Was ist neu?} +Neben einigen Bugfixes gibt es in Version \mCversion\ 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. Das wurde in der Dokumentation jeweils mit {\ECFTeenSpirit\color{red}Neu} gekennzeichnet. 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 Vortellungen angepasst zu werden (siehe \ref{sssec:rxn_optionen}, \ref{sssec:rxnscheme_optionen} und \ref{ssec:setrcndist}). + +Nicht zuletzt steht \mC ab \mCversion\ nun unter der LPPL Version 1.3 oder später. + +\subsection{Lizenz} +\mC \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} +Damit \mC funktionieren kann, müssen ein paar Pakete installiert sein: +\begin{description} + \item[\CF] ohne das ergibt die ganze Sache gar keinen Sinn; + \item[ifthen] für interne Abfragen; + \item[calc] für interne Berechnungen; + \item[xkeyval] Paketoptionen und Befehl-Keys werden damit erstellt; + \item[float] damit wird die \verb=rxnscheme=-Umgebung definiert; + \item[pgf/\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 \verb=\pgfpositionnodelater= muss verfügbar sein. +\end{description} + +\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/latex/contrib/chemfig/}}, + \item wenn vorhanden `mhchem'\footnote{von Martin Hensel, \url{http://www.ctan.org/tex-archive/macros/latex/contrib/mhchem/}} in der Version 3, + \item wenn vorhanden `chemexec'\footnote{von mir, \url{http://www.niederberger-berlin.net/downloads/?did=1}} und + \item wenn vorhanden `chemcompounds'\footnote{von Stephan Schenk, \url{http://www.ctan.org/tex-archive/macros/latex/contrib/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 \verb=\ce{}= (mhchem) + \item \verb=\ox{}{}=, \verb=\om[]=, \verb=\op[]=, \verb=\Hyd=, \verb=\Hpl= (chemexec) + \item \verb=\chemfig[][]{}=, \verb=\chemrel[]{}=, \verb=\chemsign[]{}=, \verb=\lewis{}= (\CF) + \item \verb=\declarecompound[]{}=, \verb=\compound{}= (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 `tikzpicture'-Umgebung. Die Frage, die sich aufdrängt, ist natürlich: wozu? \CF bringt doch schon einiges an Möglichkeiten mit. 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. Selbstverständlich bleibt man mit \TikZ flexibler, aber die Möglichkeit bleibt einem ja immer offen. + +\subsection{Das Grundprinzip} +In dem `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, sollten aber die Richtungsangaben des letzten Beispiels in Erinnerung behalten, denn sie werden von \mC ebenfalls verwendet. + +\subsection{Wie funktioniert's?} +\subsubsection{Basisbefehle} +Sehen wir uns zunächst ein Beispiel an: +\begin{SideBySideExample} + \begin{rxn} + \reactand{ \chemfig{-[::30]-[::-60]OH} }{} + \arrow{Ox.}{} + \reactand{ \chemfig{-[::30]=_[::-60]O} }{} + \end{rxn} +\end{SideBySideExample} +Sie sehen hier die wichtigsten Befehle von \mC im Einsatz: +\begin{description} + \vitem=\begin{rxn}[]= Die erste von zwei Umgebungen. Sie stellt die Reaktionschemata zwischen den Text und zentriert sie (siehe \ref{ssec:rxn}). + \vitem=\reactand[]{}{}= setzt eine `node' auf die `chain', in die die chemischen Formeln geschrieben werden. Die Standard-Ausrichtung ist nach \verb=right= (siehe \ref{ssec:reactand}). + \vitem=\arrow[]{}{}= schreibt in der Standardeinstellung einen \unit{5}\emlength\ langen einfachen Pfeil nach rechts (siehe \ref{ssec:arrow}). +\end{description} +\begin{SideBySideExample} + \begin{rxn} + \reactand{ \chemfig{-[::30]=_[::-60]O} }{} + \arrow[direction=below]{}{Ox.} + \reactand[below]{ \chemfig{-[::30](-[::60]OH)=_[::-60]O} }{} + \end{rxn} +\end{SideBySideExample} +Wie Sie sehen, lässt sich das Reaktionschema durch optionale Argumente anders ausrichten. Durch die Angabe \verb=below= wird die Carbonsäure unter den Pfeil gesetzt und nicht rechts daneben. Durch die Key-Angabe \verb+direction=below+ zeigt der Pfeil nach unten anstatt nach rechts. + +\subsubsection{Verzweigungen} +Bislang ist noch nicht recht einsichtig, wieso man \mC einsetzen sollte. Die waagerechten Reaktionen sind mit `mhchem' und \CF selbst zu verwirklichen. Und weshalb sollte man eine senkrechte Reaktion benötigen? Was den Einsatz von \mC aber interessant machen könnte, ist die Möglichkeit, verzweigte Reaktionsschemata zu erstellen. +\begin{Example} + \begin{rxn} + \reactand{ \chemfig{-[::30]-[::-60]OH} }{} + \arrow{}{} + \reactand{ \chemfig{-[::30]=_[::-60]O} }{carbonyl} + \arrow[direction=below]{}{} + \reactand[below]{ \chemfig{-[::30](-[::60]OH)=_[::-60]O} }{} + \branch[right=of carbonyl]{ + \arrow[type={<=>}]{\ce{NH2R}}{} + \reactand{ \chemfig{-[::30]=_[::-60]N(-[6]H)-[::60]R} }{} + }{} + \end{rxn} +\end{Example} +Im letzten Beispiel haben Sie einen weiteren wichtigen Befehl kennengelernt: +\begin{description} + \vitem=\branch[]{}{}=\ +\end{description} +Der Zweig wurde mit \verb+right=of carbonyl+ rechts neben den ersten Reaktanden mit dem Anker \verb=carbonyl= angesetzt. Innerhalb des Zweigs wurde beim Pfeil der Key \verb+type={<=>}+ verwendet, wodurch der Gleichgewichtspfeil dargestellt wurde. Andere \verb=type=-Mög\-lich\-kei\-ten wären \verb=->= (Voreinstellung), \verb=<-= oder \verb=<->=. + +Durch mehrfaches Verwenden von \verb=\branch= können so umfangreichere Reaktionschemata entstehen: +\begin{Example} + \begin{rxn} + \reactand{ \chemfig{-[::30]-[::-60]OH} }{} + \arrow{}{} + \reactand{ \chemfig{-[::30]=_[::-60]O} }{carbonyl} + \arrow[direction=below]{}{} + \reactand[below]{ \chemfig{-[::30](-[::60]OH)=_[::-60]O} }{} + \branch[right=of carbonyl]{ + \arrow[type={<=>}]{\ce{NH2R}}{} + \reactand{ \chemfig{-[::30]=_[::-60]N(-[6]H)-[::60]R} }{} + }{imin} + \branch[below right=of carbonyl]{ + \arrow[type={<=>},direction=below right]{ \chemfig{[,.75]-[::30]-[::-60]OH} }{} + \reactand[below right]{ \chemfig{-[::30](-[::60]O-[::-60]-[::-60])-[::-60]OH} }{} + }{halbacetal} + \branch[above=of carbonyl,xshift=5.75em]{ + \arrow[direction=above]{ \chemfig{[,.75]-[::30]=_[::-60]O}/\Hpl }{} + \reactand[above]{ \chemfig{-[::30](-[::60]OH)-[::-60]-[::60]=[::60]O} }{} + \arrow{$-\ce{H2O}$}{} + \reactand{ \chemfig{-[::30]=[::-60]-[::60]=[::60]O} }{} + }{aldol} + \end{rxn} +\end{Example} + +\subsubsection{Nummerierte Schemata} +Die zweite Umgebung von \mC funktioniert genau wie die erste, setzt das Reaktionsschema allerdings in eine nummerierte Gleitumgebung mit Überschrift. +\begin{Example} + \begin{rxnscheme}{Keto-Enol-Tautomerie} + \reactand{ \chemfig{=[::30]-[::-60]OH} }{} + \arrow[type={<=>}]{}{} + \reactand{ \chemfig{-[::30]=[::-60]O} }{} + \end{rxnscheme} +\end{Example} +Hier kommt die Umgebung +\begin{Verbatim} + \begin{rxnscheme}[]{} + ... + \end{rxnscheme} +\end{Verbatim} +zum Einsatz. Wie Sie die Ihren Vorstellungen gemäß anpassen können, lesen Sie in der Befehlsreferenz (\ref{ssec:rxnscheme}). + +\subsection{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: +\begin{Verbatim} + \setatomsep{1.8em} + \setcrambond{3pt}{0.5pt}{1pt} +\end{Verbatim} +Außerhalb der Umgebungen gelten weiterhin die Voreinstellungen von \CF. +\begin{SideBySideExample} + \begin{rxn} + \reactand{\chemfig{**6(------)}}{} + \end{rxn} + \chemfig{**6(------)} +\end{SideBySideExample} +Sie können die Voreinstellungen von \mC über folgende Befehle ändern: +\begin{Verbatim} + \bondlength{} + \bondshape{}{}{} + \atomsize{} +\end{Verbatim} +Damit werden die Einstellungen nachfolgend \emph{für alle weiteren} \mC-Umgebungen geändert. Lassen Sie die Argumente leer, werden die Voreinstellungen wiederhergestellt. \verb=\atomsize= hat die Voreinstellung \verb=\small=. +\begin{SideBySideExample} + \bondlength{2.1em}\bondshape{5pt}{1pt}{2pt}\atomsize{\Large} + \begin{rxn} + \reactand{\chemfig{-[::30](<[::60])-[::-60](<:[::-60])-[::60]}}{} + \end{rxn} + \bondlength{}\bondshape{}{}{}\atomsize{} + \begin{rxn} + \reactand{\chemfig{-[::30](<[::60])-[::-60](<:[::-60])-[::60]}}{} + \end{rxn} +\end{SideBySideExample} +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{SideBySideExample} + \begin{rxn} + \setatomsep{2.1em}\setcrambond{5pt}{1pt}{2pt}\Large + \reactand{\chemfig{-[::30](<[::60])-[::-60](<:[::-60])-[::60]}}{} + \end{rxn} + \begin{rxn} + \reactand{\chemfig{-[::30](<[::60])-[::-60](<:[::-60])-[::60]}}{} + \end{rxn} +\end{SideBySideExample} +Reaktionspfeile haben als Standardwert die Länge \unit{5}\emlength\ oder $\unit{5\sqrt{2}}\emlength$ im Fall der schrägen Pfeile. Die Voreinstellung lässt sich mit +\begin{Verbatim} + \arrowlength{} +\end{Verbatim} +\SaveVerb{arrowlength}==% +auf \UseVerb{arrowlength} bzw. $\text{\UseVerb{arrowlength}}\cdot\sqrt{2}$ ändern. + +\subsection{Paket-Optionen}\label{ssec:paketoptionen} +\mC verfügt über einige Paket-Optionen. +\begin{description} + \vitem+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 \verb=rxnscheme=-Umgebung (siehe \ref{ssec:rxnscheme}) in "`Reaction scheme"' geändert. + \vitem+placement=+ Durch den Aufruf dieser Option kann das Standard-Platzie\-rungs\-ver\-hal\-ten der \verb=rxnscheme=-Umgebung (siehe \ref{ssec:rxnscheme}) in \verb== geändert werden. + \vitem+color=+ Mit dieser Option wird die entsprechende Farbe an `chemexec' weitergereicht und dessen Option \verb+shade=true+ aufgerufen. + \vitem+nocolor+ Mit dieser Option wird `chemexec' ohne Farbe und mit der Option \verb+shade=false+ geladen (Default-Verhalten von \mC). + \vitem+shade+ Mit dieser Option wird `chemexec' mit der Option \verb+shade=true+ geladen. + \vitem+nochemexec+ Durch diese Option können Sie verhindern, dass \mC `chemexec' lädt. + \vitem+nocompounds+\settowidth{\tmplength}{\tt nocompounds}\NEU[\tmplength]Durch diese Option können Sie verhindern, dass \mC `chemcompounds' lädt. + \vitem+nomhchem+\settowidth{\tmplength}{\tt nomhchem}\NEU[\tmplength]Durch diese Option können Sie verhindern, dass \mC `mhchem' lädt, vorausgesetzt, dass `chemexec' auch nicht geladen wird. + \vitem+chemstyle+\settowidth{\tmplength}{\tt chemstyle}\NEU[\tmplength]Mit dieser Option kann `chemstyle' automatisch geladen werden, ohne dass Konflikte mit \mC enstehen. + \vitem+nopackages+\settowidth{\tmplength}{\tt nopackages}\NEU[\tmplength]Durch diese Option werden (außer \CF) gar keine Pakete geladen\footnote{Außer denen, die \mC benötigt, um zu funktionieren (\TikZ etc.).}. +\end{description} + +\section{Fortgeschrittene Anwendung, Verwendung von \TikZ} +Die meisten der Befehle ermöglichen nach der Ausrichtungsangabe die Angabe weiteren \TikZ-Codes. 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 (siehe \ref{ssec:tikzsynthese}). +\begin{SideBySideExample} + \begin{rxn} + \reactand[right,->,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: +\begin{Example} + \newcommand{\leer}{\reactand[right,minimum width=5em]{ \rule[-1em]{1em}{.5pt}\;\rule[-1em]{3em}{.5pt} }{}} + \newcommand{\stoich}{\rule[-3pt]{1em}{.5pt}} + \begin{rxn} + \reactand{\bf\Large Salzbildung}{} + \reactand[below,yshift=1em]{F\"ulle die L\"ucken}{a} + \branch[below=of a]{ \reactand[right,minimum width=5em]{ \stoich\ Na }{}\reactand{$+$}{} \leer \arrow{}{} \leer \reactand{$+$}{} \leer }{b} + \branch[below=of b,draw,inner sep=3pt]{\reactand[right,minimum width=5em]{}{}\reactand{$+$}{}\reactand[right,minimum width=5em]{}{}\arrow{}{}\reactand[right,minimum width=5em]{Natriumchlorid $+$ Wasserstoff}{}}{} + \end{rxn} +\end{Example} + +\section{Alphabetische Befehlsreferenz} +Im folgenden Abschnitt werden alle Befehle von \mC in alphabetischer Reihenfolge vorgestellt. Manchmal werden in den Beispielen der Befehlsreferenz die Nodes (in der \TikZ-Bedeutung), innerhalb derer Reaktanden, Pfeile oder Branches gesetzt werden, farbig eingerahmt, um zu sehen, welchen Platz sie einnehmen. Das geschieht mithilfe des Befehls \verb=\makevisible=, siehe \ref{ssec:makevisible}. + +\subsection{arrow}\label{ssec:arrow} +Reaktionspfeile werden mit \verb=\arrow= erstellt. +\begin{Verbatim} + \arrow[]{}{} +\end{Verbatim} +Mit mehreren Keys können die Reaktionspfeile angepasst werden. Sie werden nach dem Muster \verb+key=wert+ angegeben. +\begin{description} +\vitem+direction=+ -- mögliche Einstellungen sind: + \begin{rxn} + \arrowlength{2.5em} + \dummy[a] + \arrow{}{}\reactand{right}{} + \branch[above right=of a]{\arrow[direction=above right]{}{}\reactand[above right]{above right}{}}{} + \branch[above=of a]{\arrow[direction=above]{}{}\reactand[above]{above}{}}{} + \branch[above left=of a]{\arrow[direction=above left]{}{}\reactand[above left]{above left}{}}{} + \branch[left=of a]{\arrow[direction=left]{}{}\reactand[left]{left}{}}{} + \branch[below left=of a]{\arrow[direction=below left]{}{}\reactand[below left]{below left}{}}{} + \branch[below=of a]{\arrow[direction=below]{}{}\reactand[below]{below}{}}{} + \branch[below right=of a]{\arrow[direction=below right]{}{}\reactand[below right]{below right}{}}{} + \end{rxn} +\vitem+type=+ -- mögliche Einstellungen sind: + \begin{rxn} + \dummy[a] + \branch[below=of a,yshift=1em]{\arrow{}{}\reactand{\ttfamily type=\{-\textgreater\}}{}}{b} + \branch[below=of b,yshift=1em]{\arrow[type={<-}]{}{}\reactand{\ttfamily type=\{\textless-\}}{}}{c} + \branch[below=of c,xshift=.5em,yshift=1em]{\arrow[type={<->}]{}{}\reactand{\ttfamily type=\{\textless-\textgreater\}}{}}{d} + \branch[below=of d,yshift=1em]{\arrow[type={<=>}]{}{}\reactand{\ttfamily type=\{\textless=\textgreater\}}{}}{e} + \branch[below=of e,yshift=1em]{\arrow[type={-|>}]{}{}\reactand{\ttfamily type=\{-\textbar\textgreater\}}{}}{} + \end{rxn} +\vitem+length=+ -- mit dem Faktoren, den Sie hier angeben, wird die Pfeillänge (\unit{5.0}\emlength\ bei Faktor = $1.0$, Standard) multipliziert. +\vitem+name=+ -- hier können Sie dem Pfeil einen Anker geben, auf den \zB mit einem Branch referenziert werden kann. +\vitem+both+\settowidth{\tmplength}{\tt both}\NEU[\tmplength]-- durch diesen Key haben die beiden Nodes, in die die Beschriftungen geschrieben werden, die gleichen Maße. +\end{description} +\begin{SideBySideExample} + \begin{rxn} + \dummy\arrow{\ce{Br2}}{$h\nu$} \arrow{\chemfig{-[::30]-[::-60]OH}}{} + \end{rxn} + \begin{rxn} + \dummy\arrow[direction=above]{\ce{Br2}}{$h\nu$} + \end{rxn} + \begin{rxn} + \dummy\arrow[direction=above]{\chemfig{-[::30]-[::-60]OH}}{} + \end{rxn} + \begin{rxn} + \dummy\arrow[direction=above right]{\ce{Br2}}{$h\nu$} + \end{rxn} + \begin{rxn} + \dummy\arrow[direction=above right]{\chemfig{-[::30]-[::-60]OH}}{} + \end{rxn} +\end{SideBySideExample} +Einmal die meisten Keys im Einsatz: +\begin{SideBySideExample} + \begin{rxn} + \reactand{A}{} + \arrow[name=pfeil]{B}{} + \branch[above=of pfeil,yshift=-4em]{ + \arrow[type=<-,direction=above,length=.7]{}{} + \reactand[above]{D}{} + }{} + \reactand{C}{} + \end{rxn} +\end{SideBySideExample} +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} + \reactand{A}{a} + \arrow{}{} + \branch[below=of a]{ + \arrow[direction=below]{\chemfig{-[::30]-[::-60]OH}}{} + }{} + \end{rxn} + \makeinvisible +\end{SideBySideExample} +Durch die Verwendung des Keys \verb=both= bekommen die Nodes beider Pfeilbeschriftungen die gleichen Maße, wodurch die Ausrichtung korrigiert werden kann. +\begin{SideBySideExample} + \makevisible + \begin{rxn} + \reactand{A}{a} + \arrow{}{} + \branch[below=of a]{ + \arrow[direction=below,both]{\chemfig{-[::30]-[::-60]OH}}{} + }{} + \end{rxn} + \makeinvisible +\end{SideBySideExample} +Mehr zu dem Problem der Ausrichtung lesen Sie in \ref{sssec:branch_ausrichtung}. + +\subsection{arrowlength} +Reaktionspfeile haben als Standardwert die Länge \unit{5.0}\emlength\ oder $\unit{5.0\cdot\sqrt{2}}\emlength$ im Fall der schrägen Pfeile. Die Voreinstellung lässt sich mit +\begin{Verbatim} + \arrowlength{} +\end{Verbatim} +auf \UseVerb{arrowlength} bzw. $\text{\UseVerb{arrowlength}}\cdot\sqrt{2}$ ändern. Beachten Sie, dass Sie eine Längeneinheit verwenden müssen. + +\subsection{atomsize} +Mit +\begin{Verbatim} + \atomsize{} +\end{Verbatim} +lässt sich die Schriftgröße der Atomgruppen verändern. Standard ist \verb=\small=. + +\subsection{bondlength} +Mit +\begin{Verbatim} + \bondlength{} +\end{Verbatim} +lässt sich \verb=\setatomsep{}= für die \CF-Formeln \emph{innerhalb} der \mC-Umgebungen einstellen. Standard ist \unit{1.8}\emlength. + +\subsection{bondshape} +Mit +\begin{Verbatim} + \bondshape{}{}{} +\end{Verbatim} +lässt sich \verb=\setcrambond{}{}{}= für die \CF-Formeln \emph{innerhalb} der \mC-Umgebungen einstellen. Standard sind in dieser Reihenfolge \unit{3}\pt, \unit{.5}\pt\ und \unit{1}\pt. + +\subsection{branch}\label{ssec:branch} +Der Befehl \verb=\branch= wird verwendet, um eine Verzweigung der Reaktion zu realisieren. +\begin{Verbatim} + \branch[]{}{} +\end{Verbatim} +Für den \texttt{\textbackslash branch} wird die Ausrichtung und der Anker wichtig. Sehen wir uns ein Beispiel an. +\begin{Example} + \begin{rxn} + \reactand{\chemfig{-[::30]=[::-60](-[::-60])-[::60]}}{start} + \arrow[length=.75]{\ce{HCl}}{} + \reactand{\chemfig{-[::30]-[::-60](-[::120]Cl)(-[::-60])-[::60]}}{} + \reactand{\chemsign+\chemfig{-[::30](-[::60]Cl)-[::-60](-[::-60])-[::60]}}{} + \branch[below right=of start]{ + \arrow[direction=below right,length=.75]{\ce{H2O}}{} + \reactand[below right]{\chemfig{-[::30]-[::-60](-[::120]OH)(-[::-60])-[::60]}}{} + \reactand{\chemsign+\chemfig{-[::30](-[::60]OH)-[::-60](-[::-60])-[::60]}}{} + }{} + \end{rxn} +\end{Example} +In diesem Beispiel hat der erste Reaktand den Anker \texttt{start} bekommen (Zeile 2, siehe auch \ref{ssec:reactand}). +\begin{Verbatim}[firstnumber=2] + \reactand{ ... }{!!start!!} +\end{Verbatim} +\texttt{\textbackslash branch} bezieht sich nun in seiner Ausrichtung darauf (Zeile 6): +\begin{Verbatim}[firstnumber=6] + \branch[below right!!=of start!!]{ ... }{} +\end{Verbatim} +Gibt man die Ausrichtung nicht in Bezug auf einen Anker an, bezieht sie sich immer auf den letzten \texttt{\textbackslash reactand} oder \texttt{\textbackslash arrow}. Lässt man das optionale Argument leer, dann platziert sich der Branch automatisch rechts. +\begin{SideBySideExample} + \begin{rxn} + \reactand{ \chemfig{CH_2=CH-OH} }{} + \arrow[type={<=>},length=.5]{}{} + \branch{ \reactand{ \chemfig{CH_3-CH=O} }{} }{} + \end{rxn} +\end{SideBySideExample} + +\subsubsection{Ausrichtungsprobleme}\label{sssec:branch_ausrichtung} +Wenn ein Pfeil zwei verschieden große Beschriftungen hat und in einem Branch liegt, wird der Branch nicht mehr richtig ausgerichtet. Der \verb=\arrow=-Key \verb=both= ist nicht wirklich eine Lösung, weil die kleinere Beschriftung dann nicht mehr am Pfeil liegt, sondern wegrutscht. +\begin{SideBySideExample} + \makevisible + \begin{rxn} + \reactand{A}{a} + \arrow{}{} + \branch[below=of a]{ + \arrow[direction=below,both]{\chemfig{-[::30]-[::-60]OH}}{\Hpl} + }{} + \end{rxn} + \makeinvisible +\end{SideBySideExample} +In diesem Fall können Sie den Branch mit den \TikZ-Keys \verb=xshift= und \verb=yshift= verschieben. +\begin{SideBySideExample} + \makevisible + \begin{rxn} + \reactand{A}{a} + \arrow{}{} + \branch[below=of a,xshift=-1.35em]{ + \arrow[direction=below]{\chemfig{-[::30]-[::-60]OH}}{\Hpl} + }{} + \end{rxn} + \makeinvisible +\end{SideBySideExample} + +\subsection{dummy} +Mit \verb=\dummy= zeichnet man eine leere Node. Die Pfeile, die mit \verb=\arrow= erzeugt werden, müssen einer Node nachfolgen. \verb=\arrow= ruft intern \verb=\tikzchainprevious= auf. Ist \emph{vor} einem Pfeil noch \emph{keine} Node auf die Chain geschrieben worden, erzeugt das eine Fehlermeldung. Duch setzen des \verb=\dummy= kann ein Schema dennoch mit einem Pfeil beginnen. +\begin{SideBySideExample} + \begin{rxn} + \dummy\arrow{}{} + \end{rxn} +\end{SideBySideExample} + +\subsection{elmove} +\verb=\elmove= ist lediglich ein Abkürzungsmakro für den \CF-Befehl \verb=\chemmove=. +\begin{Verbatim} + \elmove[]{}{}{}{} +\end{Verbatim} +Das schreibt den Befehl +\begin{Verbatim} + \chemmove{\draw[!!!!](!!!!).. controls +(!!!!) and +(!!!!)..(!!!!);} +\end{Verbatim} +mit \verb?[->,red,shorten <=3pt,shorten >=1pt]? als Voreinstellung für \verb==. Wie\linebreak\verb=\chemmove= funktioniert, können Sie im Manual zu \CF nachlesen. + +\begin{SideBySideExample} + \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{SideBySideExample} + +\subsection{makeinvisible}\label{ssec:makeinvisible} +\NEU% +Dieser Befehl hebt die Änderungen von \verb=\makevisible= (siehe \ref{ssec:makevisible}) auf und stellt das normale Verhalten von \mC wieder her. \verb=\makeinvisible= wirkt sich nur auf nachfolgende Reaktanden aus. + +\subsection{makevisible}\label{ssec:makevisible} +\NEU% +Mit \verb=\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 reactand\{\}\{\}}};, \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=purple, dotted](X){\texttt{\textbackslash branch\{\}\{\}}};. Siehe auch \ref{ssec:makeinvisible}. + + \verb=\makevisible= wirkt sich nur auf nachfolgende Reaktanden aus. +\begin{SideBySideExample} + \makevisible + \begin{rxn} + \reactand{A}{a} + \arrow{a}{b} + \branch[below=of a]{ + \arrow[direction=below,both]{a}{b} + }{} + \end{rxn} + \makeinvisible +\end{SideBySideExample} + +\subsection{marrow}\label{ssec:marrow} +Der Befehl \verb=\marrow= zeichnet einen Mesomeriepfeil. +\begin{Verbatim} + \marrow[] +\end{Verbatim} +Die Ausrichtung funktioniert analog zu \verb=\reactand= (\ref{ssec:reactand}), siehe auch \ref{ssec:mesomeric}. + +\subsection{merge}\label{ssec:merge} +Der \verb=merge=-Befehl sind nicht nur für den direkten Einsatz in den \mC-Um\-ge\-bun\-gen gedacht, sondern können flexibler in einem `tikzpicture' eingesetzt werden. Mit diesem Befehl können verschiedene Reaktionsstränge zu einem vereint werden. Dafür müssen die einzelnen zu vereinenden Reaktanden als `nodes' mit Namen gekennzeichnet sein. +\begin{Verbatim} + \merge[]{}{}{} +\end{Verbatim} +\begin{SideBySideExample} + \begin{center} + \begin{tikzpicture} + \node(a) at (0,0) {A}; + \node(b) at (10em,0) {B}; + \node[draw,minimum size=3em](c) at (5em,-8em) {C}; + \merge{c}{a}{b} + \node(d) at (0,-16em) {D}; + \node(e) at (10em,-16em) {E}; + \merge[direction=above]{c}{d}{e} + \node(f) at (-3em,-4em) {F}; + \node(g) at (-3em,-12em) {G}; + \merge[direction=right]{c}{f}{g} + \node(h) at (13em,-4em) {H}; + \node(i) at (13em,-12em) {I}; + \merge[direction=left]{c}{h}{i} + \end{tikzpicture} + \end{center} +\end{SideBySideExample} +Gibt man den Start- und dem Zielreaktanden Anker, funktioniert \verb=\merge= natürlich auch in den \mC-Umgebungen. +\begin{Example} + \begin{rxn} + \setatomsep{1em}\tiny + % Strang 1 + \reactand{ \chemfig{Cl-[:30,1.5]--[:-30,1.5]O-[:30,1.5]--[:-30,1.5]Cl}{} }{oben} + \arrow[length=.5]{}{} + \reactand{ \chemfig{O(-[:-150]**6(-----(-OH)-))-[:90]-[:30]-[:-30]O-[:30]-[:-30]-[:-90]O-[:-30]**6(-(-HO)-----)} }{start_oben} + % Strang 2 + \branch[below=of oben,xshift=8em,yshift=-4em]{ + \reactand{ \chemfig{**6((--[6,,,2]HO)-N-(--[6]OH)----)} }{} + \arrow[length=.5]{}{} + \reactand{ \chemfig{**6((--[6]Br)-N-(--[6]Br)----)} }{} + }{start_unten} + % Ziel + \branch[right=of start_oben,xshift=5em,yshift=-4em]{ + \reactand{ \chemfig{O(-[:-150]**6(-----(-O?)-))-[:90]-[:30]**6(-N-(--[:-90]O-[:-30]**6(-(-O-[6]-[:-150]-[:150]O-[:-150]-[:150]?)-----))----)} }{c} + }{ziel} + % Zusammenfuehren: + \merge[direction=right]{ziel}{start_oben}{start_unten} + \end{rxn} +\end{Example} +Beachten Sie, dass für die `nodes' in der Regel Branches verwendet werden sollten, wenn Sie \verb=\merge= in den \mC-Umgebungen verwenden. Die Verwendung von \verb=\merge= erfordert unter Umständen einige Spielerei mit Branches, xshift und yshift, bis man das gewünschte Ergebnis erhält. +\begin{Example} + \begin{rxn} + \setatomsep{1.5em} + \reactand{ \chemname{\chemfig{**6(---(-NH_2)---)}}{Anilin} }{start_aa} + \reactand[below,yshift=-3em]{ \chemname{\ce{HNO2}}{salpetrige S"aure} }{start_ab} + \branch[right=of start_aa,xshift=6em,yshift=-5em]{ + \reactand{ \chemname{\chemfig{**6(---(-N|_2\op)---)}}{Diazoniumion} }{} + }{ziel_a}% = start_ba + \branch[below=of ziel_a,yshift=-3em]{ + \reactand{ \chemname{\chemfig{**6(---(-NH_2)---)}}{Anilin} }{} + }{start_bb} + \branch[right=of ziel_a,xshift=6em,yshift=-5em]{ + \reactand{ \chemname{\chemfig{N(-[:-150]**6(------))=N-[:-30]**6(---(-NH_2)---)}}{p-Aminodiazobenzol} }{} + }{ziel_b} + \merge[direction=right]{ziel_a}{start_aa}{start_ab} + \merge[direction=right]{ziel_b}{ziel_a}{start_bb} + \end{rxn} +\end{Example} + +\subsection{mesomeric}\label{ssec:mesomeric} +Der \verb=\mesomeric=-Befehl funktioniert wie \verb=\reactand= (\ref{ssec:reactand}). Sein Zweck ist es, eckige Klammern zu setzen. +\begin{Verbatim} + \mesomeric[]{}{} +\end{Verbatim} +In \verb== werden die mesomeren Grenzstrukturen geschrieben. Mit \verb=\marrow=\linebreak (\ref{ssec:marrow}) werden die Mesomeriepfeile gesetzt. Man kann \verb=\mesomeric= falls nötig mit einem Anker (\verb==) versehen (\ref{ssec:branch}). Die Ausrichtung funktioniert analog \verb=\reactand=. +\begin{Example} + \begin{rxn} + \mesomeric{ + \reactand{ + \chemfig{*6(=[@{e1}]-=-(-[:120]X)(-[:60]H)-(-[:-30,.4,,,white]\oplus)-[@{e2}])} + \elmove{e1}{60:4mm}{e2}{0:4mm} + }{} + \marrow + \reactand{ + \chemfig{*6(-(-[:90,.4,,,white]\oplus)-[@{e4}]=[@{e3}]-(-[:120]X)(-[:60]H)-=)} + \elmove{e3}{180:4mm}{e4}{150:4mm} + }{} + \marrow + \reactand{ + \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{ + \reactand{ \chemfig{*6(=-=-=-)} }{} + \marrow[below] + \reactand[below]{ \chemfig{*6(-=-=-=)} }{} + }{} + \end{rxn} +\end{SideBySideExample} +Vielleicht auch einen Komplex? +\begin{SideBySideExample} + \begin{rxn} + \setatomsep{3em} + \mesomeric{ + \reactand{ \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} }{} + }{a} + \node[above right=of a,yshift=-1em] {$2\oplus$}; + \end{rxn} +\end{SideBySideExample} + +\subsection{reactand}\label{ssec:reactand} +Der Befehl \verb=\reactand= ist so etwas wie der Basisbefehl. +\begin{Verbatim} + \reactand[]{}{} +\end{Verbatim} +In diesen Befehl werden die Formeln (\verb==) geschrieben und können, falls nötig, mit einem Anker (\verb==) versehen werden. Das optionale Argument kann die 8 Werte +\begin{inparaenum}[(a)] + \item \texttt{right}, + \item \texttt{above right}, + \item \texttt{above}, + \item \texttt{above left}, + \item \texttt{left}, + \item \texttt{below left}, + \item \texttt{below}, + \item \texttt{below right} +\end{inparaenum} +annehmen, Voreinstellung ist (\texttt{right}). Dieses Argument wird verwendet, wenn die Reaktionsgleichung nicht von links nach rechts, sondern \zB von oben nach unten verlaufen soll. +\begin{SideBySideExample} +%untereinander: + \begin{rxn} + \reactand{\ce{Br2}}{} + \reactand[below]{\ce{Cl2}}{} + \end{rxn} + +%Beispiel mit mehreren Reaktanden: + \begin{rxn} + \reactand{\ce{Br2}}{} + \reactand[below]{\ce{I2}}{} + \reactand{\ce{Cl2}}{} + \end{rxn} + +%Reaktion von oben nach unten: + \begin{rxn} + \reactand{\ce{Br-Br}}{} + \arrow[length=.5,direction=below]{$h\nu$}{} + \reactand[below]{\ce{2 ~\lewis{0.,Br}}}{} + \end{rxn} +\end{SideBySideExample} + +\subsection{rxn (Umgebung)}\label{ssec:rxn} +Die Umgebung \verb=rxn= ist eine unnummerierte nicht gleitende Umgebung für Reaktionsschemata. Die Reaktionsschemata werden zentriert. Die Voreinstellungen \verb=\bondlength=, \verb=\bondshape=, \verb=\arrowlength= und \verb=\atomsize= gelten hier ebenso wie bei \verb=rxnscheme=. +\begin{Verbatim} + \begin{rxn}[] + ... + \end{rxn} +\end{Verbatim} + +\subsubsection{Optionen}\label{sssec:rxn_optionen} +\NEU\verb=rxn= hat zwei Keys: +\begin{description} + \vitem+align=+ das Ausrichtungsverhalten der \verb=rxn=-Umgebung, Default: center + \vitem+scale=+ Skalierung der \verb=rxn=-Umgebung, Default: 1.0 +\end{description} +\begin{Example} + \begin{rxn}[align=center] + \reactand{center}{}\arrow{}{}\reactand{zentriert}{} + \end{rxn} + \begin{rxn}[align=right] + \reactand{right}{}\arrow{}{}\reactand{rechts}{} + \end{rxn} + \begin{rxn}[align=left] + \reactand{left}{}\arrow{}{}\reactand{links}{} + \end{rxn} +\end{Example} + +\subsection{rxnscheme (Umgebung)}\label{ssec:rxnscheme} +Die Umgebung \verb=\rxnscheme= ist eine Gleitumgebung für Reaktionsschemata. +\begin{Verbatim} + \begin{rxnscheme}[]{} + ... + \end{rxnscheme} +\end{Verbatim} +\subsubsection{Optionen}\label{sssec:rxnscheme_optionen} +\begin{description} + \vitem+label=