diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/mychemistry/mychemistry_en.tex')
-rw-r--r-- | Master/texmf-dist/doc/latex/mychemistry/mychemistry_en.tex | 2012 |
1 files changed, 1137 insertions, 875 deletions
diff --git a/Master/texmf-dist/doc/latex/mychemistry/mychemistry_en.tex b/Master/texmf-dist/doc/latex/mychemistry/mychemistry_en.tex index e9bdab2407d..1036d203924 100644 --- a/Master/texmf-dist/doc/latex/mychemistry/mychemistry_en.tex +++ b/Master/texmf-dist/doc/latex/mychemistry/mychemistry_en.tex @@ -4,7 +4,7 @@ % - Creating reaction schemes with LaTeX and ChemFig ---------------------------------- % % ------------------------------------------------------------------------------------- % % - Clemens Niederberger -------------------------------------------------------------- % -% - 2011/04/04 ------------------------------------------------------------------------ % +% - 2011/04/15 ------------------------------------------------------------------------ % % ------------------------------------------------------------------------------------- % % - http://www.niederberger-berlin.net/2011/02/latex-mychemistry/ --------------------- % % - kontakt@niederberger-berlin.net --------------------------------------------------- % @@ -30,17 +30,18 @@ % - mychemistry_en.tex and bondwidth.tex - % % ------------------------------------------------------------------------------------- % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\documentclass[DIV10]{scrartcl} +\documentclass[DIV10,titlepage,toc=index]{scrartcl} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % - Pakete ---------------------------------------------------------------------------- % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \usepackage{etoolbox} \usepackage{scrhack} % verbessert KOMAs Zusammenspiel mit floats -\usepackage[english]{babel} % Sprache \usepackage{emerald} % chemfig-Schrift \usepackage[utf8x]{inputenc} % Zeichenkodierung: Eingabe \usepackage[T1]{fontenc} % Text-Ausgabe-Codierung \usepackage{textcomp,mathcomp} +\usepackage[makeindex]{splitidx} % Index; Kompilieren: makeindex -sl index.ist *.idx +\usepackage[english]{babel} % Sprache \usepackage{xspace,paralist} % xspace und Listen \usepackage{siunitx} \DeclareSIUnit{\emlength}{em} @@ -54,14 +55,14 @@ \labelformat{subsubsection}{section #1} \usepackage[dvipsnames]{xcolor} % Farbe \colorlet{code}{RawSienna} - \xdefinecolor{DarkRed}{rgb}{0.4392,0.0627,0.0627} + \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{DarkRed}\titlerule[2pt]\filright\normalcolor\nobreak} % davor + \color{MyDarkRed}\titlerule[2pt]\filright\normalcolor\nobreak} % davor {\contentslabel [\textsc{Section}\ \thecontentslabel]{6.5pc}} % nummerierter Eintrag @@ -95,9 +96,10 @@ pdfkeywords={myChemistry}, pdfcreator={LaTeX} } -\usepackage[english,color=dunkelrot]{mychemistry} % myChemistry +\usepackage[english,color=MyDarkRed]{mychemistry} % myChemistry \renewcommand\thebeispiel{\arabic{beispiel}} % chemexec angepasst \labelformat{beispiel}{example #1} + \labelformat{rxnfloat}{scheme #1} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % - Listings anpassen ----------------------------------------------------------------- % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -105,7 +107,7 @@ \lstset{literate={ä}{{\"a}}1 {ö}{{\"o}}1 {ü}{{\"u}}1 {Ä}{{\"A}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1 {ß}{{\ss}}1} \lstset{ language=[LaTeX]TeX, - basicstyle={\ttfamily}, % Grundstil + basicstyle={\ttfamily}, % Grundstil extendedchars=true, numbers=left, % Zeilennummern numberstyle=\tiny, % Größe des Zeilennummern @@ -121,7 +123,7 @@ keywordstyle=[20]\color{blue}, morekeywords=[20]{rxn,rxnfloat,rxnscheme,tikzpicture}, texcsstyle=[30]\color{code}, - moretexcs=[30]{arrow,branch,chemand,chemfig,chemmove,chemname,chemrel,chemsign,ce,compound,declarecompound,draw,dummy,elmove,floatplacement,floatstyle,Hpl,Hyd,lewis,listof,makeinvisible,makevisible,marrow,mCsetup,merge,mesomeric,node,nu,om,op,ox,reactand,restylefloat,setarrowlength,setatomsep,setatomsize,setbondlength,setbondshape,setcrambond,setrcndist,setrxnalign,setschemealign,setschemename,transition}, + 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,setarrowlength,setarrowline,setatomsep,setatomsize,setbondlength,setbondshape,setbondwidth,setcrambond,setmergelength,setrcndist,setrxnalign,setschemealign,setschemename,si,SI,textcolor,transition}, fancyvrb=true } @@ -132,7 +134,7 @@ \pagestyle{scrheadings} \setheadwidth{textwithmarginpar} \automark{section} -\ihead{\mC \mCversion} +\ihead{\mC v\mCversion} \ifoot{\small\color{gray}-~page~\thepage~-} \cfoot{} \ofoot{} @@ -236,12 +238,11 @@ \makeatother % - weitere Makros -------------------------------------------------------------------- % -\newcommand{\mC}{{\color{DarkRed}\sffamily my\-Chemis\-try}\xspace} % Paketname +\newcommand{\mC}{{\color{MyDarkRed}\sffamily my\-Chemis\-try}\xspace} % Paketname \newcommand{\CF}{{\ECFAugie ChemFig}\xspace} % ChemFig in der originalen Schrift \newcommand{\eg}{\mbox{e.\,g.}\xspace} \newcommand{\TikZ}{\mbox{Ti{\bfseries\itshape k}Z}\xspace} -\newcommand\Vii[1][0pt]{\leavevmode\llap{\footnotesize\ECFTeenSpirit v1.2\kern\dimexpr20pt+#1\relax}} -\newcommand\NEU[1][0pt]{\leavevmode\llap{\footnotesize\ECFTeenSpirit\color{red}New in \mCversion\kern\dimexpr20pt+#1\relax}} +\newcommand\NEU[1][0pt]{\leavevmode\llap{\footnotesize\ECFTeenSpirit\color{red}New\kern\dimexpr20pt+#1\relax}} \newlength{\tmplength} % - für Beispiele --------------------------------------------------------------------- % \newcommand{\abovearrow}{\tikz\node[draw,minimum width=3em,minimum height=1.5em,blue]{\footnotesize above};} @@ -252,38 +253,38 @@ \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); + \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}[scale=.7] + \begin{rxn}[,.7] \setatomsep{1.5em}\footnotesize - \reactand[,a]{ + \reactant[,a]{ \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[6,,,2]HO)-C(-[2]CH_3) (-[6]OH)-CH_3} } - \branch[below right=of a]{ - \arrow[direction=above right,length=.7]{}{} - \reactand[above right]{ + \branch[above right=of a]{ + \arrow[above right,,.7]{}{} + \reactant[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{ + \reactant{ \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]{ + \arrow[below right,-|>,.7]{}{} + \reactant[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{ + \reactant{ \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[6,,,2]HO)- \chembelow{C}{\oplus}(-[2]CH_3)-CH_3} } @@ -294,26 +295,26 @@ \end{tikzpicture} \begin{center} \scalebox{4}{\mC}\par - \Large\mCversion\par\bigskip + \Large v\mCversion\par\bigskip \footnotesize\mCdate{en}\par \normalsize Clemens Niederberger\par\vskip1.5cm \color{white}\huge Creating reaction schemes with \LaTeX\ and \CF% \end{center} - \vskip4cm - \begin{rxn}[scale=.7] + \vskip3cm + \begin{rxn}[,.7] \setatomsep{1.5em}\footnotesize - \reactand[,a]{ \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[6,,,2]HO)-C(-[2]CH_3)(-[6]OH)-CH_3} } + \reactant[,a]{ \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[6,,,2]HO)-C(-[2]CH_3)(-[6]OH)-CH_3} } \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[above right,,.7]{}{} + \reactant[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} }{} + \reactant{ \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[below right,-|>,.7]{}{} + \reactant[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} } + \reactant{ \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[6,,,2]HO)-\chembelow{C}{\oplus}(-[2]CH_3)-CH_3} } } \end{rxn} \end{titlepage} @@ -322,10 +323,9 @@ \section{About} \subsection{Changes} -The new features or changes of each version are marked with {\ECFTeenSpirit v} followed by the version number, \eg {\ECFTeenSpirit v1.2}. The most recent changes are marked with {\ECFTeenSpirit\color{red}New in \mCversion}. +The most recent changes are marked with {\ECFTeenSpirit\color{red}New}. \subsubsection{Version 1.2} -\Vii% Since v1.2 there are some new features. The main part plays behind the scenes: the wrong arrow- and branch-alignments have been corrected. \textbf{Due to these changes \mC now needs Version 2.10 of \TikZ (or pgf, actually}, see \ref{ssec:voraussetzungen}). There are some new "frontend" features as well. For one thing there are some new package options (see \ref{ssec:paketoptionen}). Additionally the arrows have got two new keys (see \ref{ssec:arrow}). @@ -335,56 +335,68 @@ The environments have gained a few features, with which they can be customized, Last but not least since v1.2 \mC underlies LPPL version 1.3 or later. \subsubsection{Version 1.3} -\NEU% -The commands \lstinline+\branch+, \lstinline+\mesomeric+, \lstinline+\reactand+ and \lstinline+\transition+ now cannot only accept alignment as optional argument but \TikZ keys as well. Also the second mandatory Argument \lstinline+<anchor>+ now is an optional one. So the first argument still is alignment, the second is the anchor name and in the third you can use arbitrary \TikZ keys. -\begin{Verbatim} +The commands \lstinline+\branch+, \lstinline+\mesomeric+, \lstinline+\reactant+ and \lstinline+\transition+ now cannot only accept alignment as optional argument but \TikZ keys as well. Also the second mandatory Argument \lstinline+<anchor>+ now is an optional one. So the first argument still is alignment, the second is the anchor name and in the third you can use arbitrary \TikZ keys. +\begin{lstlisting} \command[<alignment>,<anchor>,<tikz>]{} -\end{Verbatim} -Version 1.2 explicitly needed a given alignment, if one wanted to use \TikZ keys, even with default alignment. Since \mCversion\ this isn't required any more. -\begin{Verbatim} +\end{lstlisting} +Version 1.2 explicitly needed a given alignment, if one wanted to use \TikZ keys, even with default alignment. Since v\mCversion\ this isn't required any more. +\begin{lstlisting} % up to version 1.2: - \reactand{\ce{Br2}}{}\arrow{$h\nu$}{}\reactand!![right,draw,inner sep=5pt]!!{\ce{2 \lewis{0.,Br}}}{} + \reactant{\ce{Br2}}{}\arrow{$h\nu$}{}\reactant!![right,draw,inner sep=5pt]!!{\ce{2 \lewis{0.,Br}}}{} % since version 1.3: - \reactand{\ce{Br2}}\arrow{$h\nu$}{}\reactand!![,,draw,inner sep=5pt]!!{\ce{2 \lewis{0.,Br}}} -\end{Verbatim} + \reactant{\ce{Br2}}\arrow{$h\nu$}{}\reactant!![,,draw,inner sep=5pt]!!{\ce{2 \lewis{0.,Br}}} +\end{lstlisting} The commands to customize \mC have been renamed and the command\linebreak\lstinline+\mCsetup+ has been added. Now you can customize \mC using only one command. See \ref{ssec:setarrowlength}, \ref{ssec:setatomsize}, \ref{ssec:setbondlength}, \ref{ssec:setbondshape} and \ref{ssec:mCsetup}. There is the new command \lstinline+\chemand+, which produces a $+$, see \ref{ssec:chemand}. -If you're using \CF v0.4, \mC inputs the file \lstinline+bondwith.tex+ which provides the command \lstinline+\setbondwidth{<width>}+ with which you can change the line thickness of bonds. +If you're using \CF v0.4 or v0.4a, \mC inputs the file \lstinline+bondwith.tex+ which provides the command \lstinline+\setbondwidth{<width>}+ with which you can change the line thickness of bonds. + +And you might find this one nice: every \mC command in a listing in this do\-cu\-mentation is a hyperlink referring to the corresponding entry in the command reference. + +\subsubsection{Version \mCversion} +\NEU% +The command \lstinline+\merge+ has been rewritten. Now the arrow can be labeled. + +The main purpose of the command \lstinline+\dummy+ now is obsolete. The command still exists, though. + +Both environments \lstinline+rxn+ and \lstinline+rxnscheme+ have changed regarding the usage of their options, see \ref{sssec:rxn_optionen} and \ref{sssec:rxnscheme_optionen}. + +The keys of the \lstinline+\arrow+ command now are options, so the syntax of the command now is consistent with the syntax of the other commands. Then there is a new arrow type, see \ref{ssec:arrow}. Also new is the appearance of the arrows and the possibility of customizing the line thickness of the arrows, see \ref{ssec:setarrowline}. -And you might find this one nice: every \mC command in a listing is a hyperlink referring to the corresponding entry in the command reference. +There is another new command \lstinline+\anywhere+ (\ref{ssec:anywhere}), with which text or formul\ae\ can be placed off the chain. \subsection{Licence} -\mC \mCversion\ underlies the The LaTeX project public license\\(\url{http://www.latex-project.org/lppl.txt}). +\mC v\mCversion\ underlies the The \LaTeX\ project public license\\(\url{http://www.latex-project.org/lppl.txt}). -\subsection{Requirements}\label{ssec:voraussetzungen} +\subsection{Requirements}\label{ssec:voraussetzungen}\index{requirements|(} In order to function properly \mC needs some packages to be available. \begin{description} - \item[\CF] without it why would you use \mC? - \item[ifthen] for internal queries; - \item[calc] for internal calculations; - \item[xkeyval] package options and command keys are created with this package; - \item[float] the \lstinline=rxnscheme= environment is defined with this package; - \item[pgf/\TikZ] pgf actually isn't just one package but a whole bundle. They are the basis layer for \TikZ. \mC needs at least the version from 09/08/2010\footnote{\url{http://sourceforge.net/projects/pgf/files/}}. More precisely: the command \lstinline=\pgfpositionnodelater= must exist. Even more precisely: only the \lstinline+\arrow+ key \lstinline+both+ (see \ref{ssec:arrow}) needs \lstinline=\pgfpositionnodelater=. If you don't use this option, \mC should work nicely with pgf v2.00. Older versions have not been tested. + \item[\CF]\index{requirements!ChemFig@\CF} without it why would you use \mC? + \item[ifthen]\index{requirements!ifthen} for internal queries; + \item[calc]\index{requirements!calc} for internal calculations; + \item[xkeyval]\index{requirements!xkeyval} package options and command keys are created with this package; + \item[float]\index{requirements!float} the \lstinline=rxnscheme= environment is defined with this package; + \item[pgf/\TikZ]\index{requirements!pgf}\index{requirements!TikZ@\TikZ} pgf actually isn't just one package but a whole bundle. They are the basis layer for \TikZ. \mC needs at least the version from 09/08/2010\footnote{\url{http://sourceforge.net/projects/pgf/files/}}. More precisely: the command \lstinline=\pgfpositionnodelater= must exist. Even more precisely: only the \lstinline+\arrow+ key \lstinline+both+ (see \ref{ssec:arrow}) needs \lstinline=\pgfpositionnodelater=. If you don't use this option, \mC should work nicely with pgf v2.00. Older versions have not been tested. \end{description} +\index{requirements|)} \subsection{The Idea} Since \CF was published August 2010, there is a flexible solution for creating organic structures. With \CF and `mhchem' one is able to create nearly all structural and molecular formulars that a chemist needs. There is one thing, though, in which `ochem' still beats \CF: creating reaction mechanisms. This is where \mC comes in. \mC loads the packages \begin{itemize} - \item \CF\footnote{by Christian Tellechea, \url{http://www.ctan.org/tex-archive/macros/generic/chemfig/}}, - \item `mhchem'\footnote{by Martin Hensel, \url{http://www.ctan.org/tex-archive/macros/latex/contrib/mhchem/}} in version 3, when ist exists, - \item `chemexec'\footnote{by me, \url{http://www.ctan.org/tex-archive/macros/latex/contrib/chemexec/}}, when it exists, and - \item `chemcompounds'\footnote{by Stephan Schenk, \url{http://www.ctan.org/tex-archive/macros/latex/contrib/chemcompounds/}}, when ist exists. + \item \CF\footnote{by Christian Tellechea, \url{http://www.ctan.org/tex-archive/macros/generic/chemfig/}}\index{ChemFig@\CF}, + \item `mhchem'\footnote{by Martin Hensel, \url{http://www.ctan.org/tex-archive/macros/latex/contrib/mhchem/}}\index{mhchem} in version 3, when ist exists, + \item `chemexec'\footnote{by me, \url{http://www.ctan.org/tex-archive/macros/latex/contrib/chemexec/}}\index{chemexec}, when it exists, and + \item `chemcompounds'\footnote{by Stephan Schenk, \url{http://www.ctan.org/tex-archive/macros/latex/contrib/chemcompounds/}}\index{chemcompounds}, when ist exists. \end{itemize} How these packages work, you can read in their documentations. Commands provided by these packages are for example \begin{itemize} - \item \lstinline=\ce{}= (mhchem) - \item \lstinline=\ox{}{}=, \lstinline=\om[]=, \lstinline=\op[]=, \lstinline=\Hyd=, \lstinline=\Hpl= (chemexec) - \item \lstinline=\chemfig[][]{}=, \lstinline=\chemrel[]{}=, \lstinline=\chemsign[]{}=, \lstinline=\lewis{}= (\CF) - \item \lstinline=\declarecompound[]{}=, \lstinline=\compound{}= (chemcompounds). + \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} Some of these commands are used in the examples of this documentation \textit{without being mentioned explicitly}. @@ -395,7 +407,7 @@ Above all, \mC provides commands for creating reaction mechanisms. \mC provides two environments within which the mechanisms are created. Both environments basically are \lstinline+tikzpicture+ environments. One might ask oneself: why? You can do loads of stuff with \CF already. And \TikZ provides all the possibilities one could ask for. But since I'm a lazy guy I wrote several macros providing \TikZ commands, I often used. They got so many and got more and more possibilities to adjust, that I bundled them into this package. Of course you can still use \TikZ and stay more flexible with it, if you like. \subsection{Basic Principle} -Within the \lstinline+tikzpicture+ reactands and arrows are placed as nodes on a \lstinline+chain+\footnote{Provided by the tikzlibrary `chains'}. +Within the \lstinline+tikzpicture+ reactants and arrows are placed as nodes on a \lstinline+chain+\footnote{Provided by the tikzlibrary `chains'}. \begin{SideBySideExample} \begin{tikzpicture}[start chain] \node [on chain] {A}; @@ -438,180 +450,191 @@ In some of the examples in this documentation the nodes are boxed with a coloure Let's take a look at an example first: \begin{SideBySideExample} \begin{rxn} - \reactand{ \chemfig{-[::30]-[::-60]OH} } + \reactant{ \chemfig{-[::30]-[::-60]OH} } \arrow{Ox.}{} - \reactand{ \chemfig{-[::30]=_[::-60]O} } + \reactant{ \chemfig{-[::30]=_[::-60]O} } \end{rxn} \end{SideBySideExample} -In this example you see the most important commands of \mC: -\begin{description} - \vitem=\begin{rxn}[<keys>]= The first of two environments. It creates a centered reaction scheme between two paragraphs (see \ref{ssec:rxn}). - \vitem=\reactand[<alignment>,<anchor>,<tikz>]{<formula>}= places a \lstinline+node+ on the \lstinline+chain+, in which the chemical formul\ae\ are written. The default alignment is to the \lstinline=right= (see \ref{ssec:reactand}). - \vitem=\arrow[<keys>]{<above>}{<below>}= creates an arrow, which by default has a length of \SI{5}{\emlength} pointing to the right (see \ref{ssec:arrow}). -\end{description} +In this example you see the most important commands of \mC:\index{rxn} +\begin{lstlisting} + \begin{rxn}[<align>,<scalefactor>] +\end{lstlisting} +The first of two environments. It creates a centered reaction scheme between two paragraphs (see \ref{ssec:rxn}).\index{reactant} +\begin{lstlisting} + \reactant[<alignment>,<anchor>,<tikz>]{<formula>} +\end{lstlisting} +places a \lstinline+node+ on the \lstinline+chain+, in which the chemical formul\ae\ are written. The default alignment is to the \lstinline=right= (see \ref{ssec:reactant}).\index{arrow} +\begin{lstlisting} + \arrow[<direction>,<type>,<length factor>,<anchor>,both]{<above>}{<below>} +\end{lstlisting} +creates an arrow, which by default has a length of \SI{5}{\emlength} pointing to the right (see \ref{ssec:arrow}). \begin{SideBySideExample} \begin{rxn} - \reactand{ \chemfig{-[::30]=_[::-60]O} } - \arrow[direction=below]{}{Ox.} - \reactand[below]{ \chemfig{-[::30](-[::60]OH)=_[::-60]O} } + \reactant{ \chemfig{-[::30]=_[::-60]O} } + \arrow[below]{}{Ox.} + \reactant[below]{ \chemfig{-[::30](-[::60]OH)=_[::-60]O} } \end{rxn} \end{SideBySideExample} -As you can see one can align the reaction scheme vertical as well. By giving \lstinline=\reactand= the option \lstinline=below=, the carbonic acid is placed below the arrow. With \lstinline+direction=below+ the arrow points down instead to the right. +As you can see one can align the reaction scheme vertical as well. By giving \lstinline=\reactant= the option \lstinline=below=, the carbonic acid is placed below the arrow. With \lstinline+below+ the arrow points down instead to the right. \subsubsection{Branches} -With what we saw until now it is not yet clear, why one would use \mC. the horizontal reaction schemes can be realized with \CF and `mhchem' just as well. And why would anyone need a vertical reaction scheme? But what could make \mC interesting is the possibility of branched reaction schemes. +With what we saw until now it is not yet clear, why one would use \mC. the horizontal reaction schemes can be realized with \CF and `mhchem' just as well. And why would anyone need a vertical reaction scheme? But what could make \mC interesting is the possibility of branched reaction schemes.\index{branch} \begin{Example} \begin{rxn} - \reactand{ \chemfig{-[::30]-[::-60]OH} } + \reactant{ \chemfig{-[::30]-[::-60]OH} } \arrow{}{} - \reactand[,carbonyl]{ \chemfig{-[::30]=_[::-60]O} } - \arrow[direction=below]{}{} - \reactand[below]{ \chemfig{-[::30](-[::60]OH)=_[::-60]O} } + \reactant[,carbonyl]{ \chemfig{-[::30]=_[::-60]O} } + \arrow[below]{}{} + \reactant[below]{ \chemfig{-[::30](-[::60]OH)=_[::-60]O} } \branch[right=of carbonyl]{ - \arrow[type={<=>}]{\ce{NH2R}}{} - \reactand{ \chemfig{-[::30]=_[::-60]N(-[6]H)-[::60]R} } + \arrow[,<=>]{\ce{NH2R}}{} + \reactant{ \chemfig{-[::30]=_[::-60]N(-[6]H)-[::60]R} } } \end{rxn} \end{Example} -In the last example you've got to know another important command: -\begin{description} - \vitem=\branch[<alignment>,<anchor>,<tikz>]{<branch commands>}= (see \ref{ssec:branch}) -\end{description} -The branch was placed right of the first reactand with the anchor \lstinline=carbonyl= by using the option \lstinline+right=of carbonyl+. Inside the branch we used an arrow with the key \lstinline+type={<=>}+ so we would get an equilibrium arrow. Other types would for example be \lstinline=->= (default), \lstinline=<-= or \lstinline=<->=. +In the last example you've got to know another important command (see \ref{ssec:branch})\index{branch}: +\begin{lstlisting} + \branch[<alignment>,<anchor>,<tikz>]{<branch commands>} +\end{lstlisting} +The branch was placed right of the first reactant with the anchor \lstinline=carbonyl= by using the option \lstinline+right=of carbonyl+. Inside the branch we used an arrow with the key \lstinline+type={<=>}+ so we would get an equilibrium arrow. Other types would for example be \lstinline=->= (default), \lstinline=<-= or \lstinline=<->=. -Extensive reaction schemes can be realized through multiple usage of \lstinline=\branch=: +Extensive reaction schemes can be realized through multiple usage of \lstinline=\branch=\index{branch}: \begin{Example} \begin{rxn} - \reactand{ \chemfig{-[::30]-[::-60]OH} } + \reactant{ \chemfig{-[::30]-[::-60]OH} } \arrow{}{} - \reactand[,carbonyl]{ \chemfig{-[::30]=_[::-60]O} } - \arrow[direction=below]{}{} - \reactand[below]{ \chemfig{-[::30](-[::60]OH)=_[::-60]O} } + \reactant[,carbonyl]{ \chemfig{-[::30]=_[::-60]O} } + \arrow[below]{}{} + \reactant[below]{ \chemfig{-[::30](-[::60]OH)=_[::-60]O} } \branch[right=of carbonyl,imin]{ - \arrow[type={<=>},length=1.12]{\ce{NH2R}}{} - \reactand{ \chemfig{-[::30]=_[::-60]N(-[6]H)-[::60]R} } + \arrow[,<=>,1.12]{\ce{NH2R}}{} + \reactant{ \chemfig{-[::30]=_[::-60]N(-[6]H)-[::60]R} } } \branch[below right=of carbonyl,halbacetal,yshift=-2pt,xshift=3pt]{ - \arrow[type={<=>},direction=below right,length=1.12,aboveshift=3pt]{ \chemfig{[,.75]-[::30]-[::-60]OH} }{} - \reactand[below right]{ \chemfig{-[::30](-[::60]O-[::-60]-[::-60])-[::-60]OH} } + \arrow[below right,<=>,1.12]{ \chemfig{[,.75]-[::30]-[::-60]OH} }{} + \reactant[below right]{ \chemfig{-[::30](-[::60]O-[::-60]-[::-60])-[::-60]OH} } } \branch[above=of carbonyl,aldol,xshift=5.2em]{ - \arrow[direction=above]{ \chemfig{[,.75]-[::30]=_[::-60]O}/\Hpl }{} - \reactand[above]{ \chemfig{-[::30](-[::60]OH)-[::-60]-[::60]=[::60]O} } + \arrow[above]{ \chemfig{[,.75]-[::30]=_[::-60]O}/\Hpl }{} + \reactant[above]{ \chemfig{-[::30](-[::60]OH)-[::-60]-[::60]=[::60]O} } \arrow{$-\ce{H2O}$}{} - \reactand{ \chemfig{-[::30]=[::-60]-[::60]=[::60]O} } + \reactant{ \chemfig{-[::30]=[::-60]-[::60]=[::60]O} } } \end{rxn} \end{Example} \subsubsection{Numbered Schemes} -The second environment provided by \mC works just as the first one. This time the scheme is placed within a numbered floating environment and is given a caption. +The second environment provided by \mC works just as the first one. This time the scheme is placed within a numbered floating environment and is given a caption.\index{rxnscheme} \begin{Example} \begin{rxnscheme}{Keto-enol tautomerization} - \reactand{ \chemfig{=[::30]-[::-60]OH} } - \arrow[type={<=>}]{}{} - \reactand{ \chemfig{-[::30]=[::-60]O} } + \reactant{ \chemfig{=[::30]-[::-60]OH} } + \arrow[,<=>]{}{} + \reactant{ \chemfig{-[::30]=[::-60]O} } \end{rxnscheme} \end{Example} Here we use the environment -\begin{Verbatim} - \begin{rxnscheme}[<keys>]{<caption>} +\begin{lstlisting} + \begin{rxnscheme}[<label>,<placement>,<align>,<scalefactor>,<name>]{<caption>} ... \end{rxnscheme} -\end{Verbatim} +\end{lstlisting} In the command reference (\ref{ssec:rxnscheme}) you can read how to customize the scheme. -\subsection{Predefined Values} +\subsection{Predefined Values}\index{default values|(} There are some predefined values, that are basically due to my personal taste. But of course you can change them according to your requirements. For \CF-formul\ae\ \emph{inside of \mC environments} some values are predefined as follows: -\begin{Verbatim} +\begin{lstlisting} \setatomsep{1.8em} \setcrambond{3pt}{0.5pt}{1pt} -\end{Verbatim} +\end{lstlisting} Outside the \mC environments the defaults of \CF still are set. \begin{SideBySideExample} \begin{rxn} - \reactand{\chemfig{**6(------)}} + \reactant{\chemfig{**6(------)}} \end{rxn} \chemfig{**6(------)} \end{SideBySideExample} -\mC's defaults can be changed with these commands: -\begin{Verbatim} +\mC's defaults can be changed with these commands:\index{setbondlength}\index{setbondshape}\index{setatomsize} +\begin{lstlisting} \setbondlength{<length>} \setbondshape{<base length>}{<dash thickness>}{<dash spacing>} \setatomsize{<font size>} -\end{Verbatim} +\end{lstlisting} With these commands, the parameters are changed \emph{for all following} \mC environments. If you leave the arguments empty, default values are restored. Default for \lstinline=\setatomsize= is \lstinline=\small=. \begin{Example} \setbondlength{2.1em}\setbondshape{5pt}{1pt}{2pt}\setatomsize{\Large} \begin{rxn} - \reactand{\chemfig{-[::30](<[::60])-[::-60](<:[::-60])-[::60]}} + \reactant{\chemfig{-[::30](<[::60])-[::-60](<:[::-60])-[::60]}} \end{rxn} \setbondlength{}\setbondshape{}{}{}\setatomsize{} \begin{rxn} - \reactand{\chemfig{-[::30](<[::60])-[::-60](<:[::-60])-[::60]}} + \reactant{\chemfig{-[::30](<[::60])-[::-60](<:[::-60])-[::60]}} \end{rxn} \end{Example} If you only want to change the parameters of a single environment you can use \CF's commands and \LaTeX's fontsize commands \emph{inside the environment}. \begin{Example} \begin{rxn} \setatomsep{2.1em}\setcrambond{5pt}{1pt}{2pt}\Large - \reactand{\chemfig{-[::30](<[::60])-[::-60](<:[::-60])-[::60]}} + \reactant{\chemfig{-[::30](<[::60])-[::-60](<:[::-60])-[::60]}} \end{rxn} \begin{rxn} - \reactand{\chemfig{-[::30](<[::60])-[::-60](<:[::-60])-[::60]}} + \reactant{\chemfig{-[::30](<[::60])-[::-60](<:[::-60])-[::60]}} \end{rxn} \end{Example} -The default length of an arrow is \SI{5}{\emlength} or $5\sqrt2\,\si{\emlength}$ if it's a diagonal one. You can change that by using the following command: -\begin{Verbatim} +The default length of an arrow is \SI{5}{\emlength} or $5\sqrt2\,\si{\emlength}$ if it's a diagonal one. You can change that by using the following command:\index{setarrowlength} +\begin{lstlisting} \setarrowlength{<length>} -\end{Verbatim} +\end{lstlisting} \SaveVerb{arrowlength}=<length>=% Then the values are \UseVerb{arrowlength} or $\text{\UseVerb{arrowlength}}\cdot\sqrt{2}$ respectively. +\index{default values|)} -\subsection{Package options}\label{ssec:paketoptionen} +\subsection{Package options}\label{ssec:paketoptionen}\index{options|(} \mC has a number of package options. \begin{description} - \vitem+chemstyle+\settowidth{\tmplength}{\tt chemstyle}\Vii[\tmplength]load the `chemstyle' package, without conflicts with \mC. - \vitem+color=<colour>+ This loads `chemexec' with the options \lstinline=color<colour>= \&\ \lstinline+shade=true+. - \vitem+english+ With this option, \mC loads the english version of `chemexec', if the package isn't loaded separately before. The name of the \lstinline=rxnscheme= environment (see \ref{ssec:rxnscheme}) is changed into "Reaction scheme". - \vitem+nochemexec+ prevent \mC from loading `chemexec'. - \vitem+nocolor+ `chemexec' is loaded without colour and with the option \lstinline+shade=false+ (default behaviour of \mC). - \vitem+nocompounds+\settowidth{\tmplength}{\tt nocompounds}\Vii[\tmplength]prevent \mC from loading `chemcompounds'. - \vitem+nomhchem+\settowidth{\tmplength}{\tt nomhchem}\Vii[\tmplength]prevent \mC from loading `mhchem' lädt, if `chemexec' isn't loaded either. - \vitem+nopackages+\settowidth{\tmplength}{\tt nopackages}\Vii[\tmplength]prevent \mC from loading \emph{any} package (except \CF)\footnote{apart from the ones \mC needs to function (like \TikZ etc.).}. - \vitem+placement=<position>+ The default placement behaviour of the \lstinline=rxnscheme= environment is changed to \lstinline=<position>=. - \vitem+shade+ loads `chemexec' with the \lstinline+shade=true+ option. + \vitem+chemstyle+\index{options!chemstyle}load the `chemstyle' package, without conflicts with \mC. + \vitem+color=<colour>+\index{options!color} This loads `chemexec' with the options \lstinline=color<colour>= \&\ \lstinline+shade=true+. + \vitem+english+\index{options!english} With this option, \mC loads the english version of `chemexec', if the package isn't loaded separately before. The name of the \lstinline=rxnscheme= environment (see \ref{ssec:rxnscheme}) is changed into "Reaction scheme". + \vitem+nochemexec+\index{options!nochemexec} prevent \mC from loading `chemexec'. + \vitem+nocolor+\index{options!nocolor} `chemexec' is loaded without colour and with the option \lstinline+shade=false+ (default behaviour of \mC). + \vitem+nocompounds+\index{options!nocompounds}prevent \mC from loading `chemcompounds'. + \vitem+nomhchem+\index{options!nomhchem}prevent \mC from loading `mhchem' lädt, if `chemexec' isn't loaded either. + \vitem+nopackages+\index{options!nopackages}prevent \mC from loading \emph{any} package (except \CF)\footnote{apart from the ones \mC needs to function (like \TikZ etc.).}. + \vitem+placement=<position>+\index{options!placement} The default placement behaviour of the \lstinline=rxnscheme= environment is changed to \lstinline=<position>=. + \vitem+shade+\index{options!shade} loads `chemexec' with the \lstinline+shade=true+ option. \end{description} +\index{options|)} \section{Advanced Usage, Usage with \TikZ} -Most of the commands allow alignment with \TikZ code. Using \TikZ code you have much more possibilities aligning reactands relatively to one another. If you are familiar with \TikZ you have even more flexibility, of course (see \ref{ssec:tikzsynthese}). +The biggest problem with \mC usually is the correct positioning of reactants and arrows. \ref{ssec:ausrichtungsfrage} looks a little bit into this topic. + +Some of the commands can be given \TikZ code as third optional argument. More precisely you can use the same \TikZ keys there as you would with a \lstinline+\node+ inside a \lstinline+tikzpicture+. If a node is placed with \lstinline+\node[<tikz>](<placement>){<anything>};+, then \lstinline+<tikz>+ is about the same in \eg \lstinline+\reactant[,,<tikz>]{}+\index{reactant!tikz}. With this you can customize your scheme in many ways. -\subsection{The Alignment Question} -Since reactands, arrows and branches are aligned centered to the referred object, the default alignment not always produces nice results. +\subsection{The Alignment Question}\label{ssec:ausrichtungsfrage}\index{alignment|(} +Since reactants, arrows and branches are aligned centered to the referred object, the default alignment not always produces nice results. \begin{Example} \makevisible \begin{rxn} - \reactand{ \chemname{\chemfig{*6(-=-=-=)}}{benzene \compound{benzene}} } + \reactant{ \chemname{\chemfig{*6(-=-=-=)}}{benzene \compound{benzene}} } \arrow{}{} - \reactand{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \compound{bromobenzene}} } + \reactant{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \compound{bromobenzene}} } \end{rxn} \end{Example} -As you can see, both reactands are not aligned equally to the arrow, as far as the benzene ring is concerned. The first reactand seems to be too shifted up. Trying to solve this with \TikZ code fails: +As you can see, both reactants are not aligned equally to the arrow, as far as the benzene ring is concerned. The first reactant seems to be shifted up. Trying to solve this with \TikZ code fails: \begin{Example} \makevisible \begin{rxn} - \reactand[,,yshift=-1em]{ \chemname{\chemfig{*6(-=-=-=)}}{benzene \compound{benzene}} } + \reactant[,,yshift=-1em]{ \chemname{\chemfig{*6(-=-=-=)}}{benzene \compound{benzene}} } \arrow{}{} - \reactand{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \compound{bromobenzene}} } + \reactant{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \compound{bromobenzene}} } \end{rxn} \end{Example} -This is, because the first reactand is shifted with the respect to the object it refers to. Since it is the first object on the chain itself, it isn't shifted at all. The following arrow always is centered to the object before. +This is, because the first reactant is shifted with the respect to the object it refers to. Since it is the first object on the chain itself, it isn't shifted at all. The following arrow always is centered to the object before. \begin{SideBySideExample} \makevisible \begin{rxn} - \reactand{A} + \reactant{A} \chemand - \reactand[,,yshift=1em]{B} + \reactant[,,yshift=1em]{B} \arrow{}{} \end{rxn} \end{SideBySideExample} @@ -619,194 +642,245 @@ Since there is no possibility to change the alignment of the arrow itself (yet), \begin{Example} \makevisible \begin{rxn} - \reactand{A} + \reactant{A} \chemand - \reactand[,,yshift=1em]{B} + \reactant[,,yshift=1em]{B} \branch[,,yshift=-1em]{\arrow{}{}} \end{rxn} \begin{rxn} - \reactand{ \chemname{\chemfig{*6(-=-=-=)}}{benzene \compound{benzene}} } + \reactant{ \chemname{\chemfig{*6(-=-=-=)}}{benzene \compound{benzene}} } \branch[,,yshift=1em]{\arrow{}{}} - \reactand{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \compound{bromobenzene}} } + \reactant{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \compound{bromobenzene}} } \end{rxn} \end{Example} For the last example this isn't the best solution, though, because exact alignment needs lots of tries until you get the required result. There is another solution: an invisible bromine to the first benzene. \begin{Example} \makevisible \begin{rxn} - \reactand{ \chemname{\chemfig{*6(-=-=(-[,,,,draw=none]\phantom{Br})-=)}}{benzene \compound{benzene}} } + \reactant{ \chemname{\chemfig{*6(-=-=(-[,,,,draw=none]\phantom{Br})-=)}}{benzene \compound{benzene}} } \arrow{}{} - \reactand{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \compound{bromobenzene}} } + \reactant{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \compound{bromobenzene}} } \end{rxn} \end{Example} -In other cases, \TikZ code can successfully be used: +In other cases, too, an invisible substituent should be preferred over \TikZ code, since it's easier and more precise: \begin{Example} \makevisible default: \begin{rxn} - \reactand{\chemfig{-[:-30]-[:30](=[2]O)-[:-30]OH}} + \reactant{\chemfig{-[:-30]-[:30](=[2]O)-[:-30]OH}} \chemand - \reactand{\chemfig{HO-[:30]-[:-30]-[:30]}} + \reactant{\chemfig{HO-[:30]-[:-30]-[:30]}} \arrow{[\Hpl]}{\SI{200}{\celsius}} - \reactand{\chemfig{-[:-30]-[:30](=[2]O)-[:-30]O-[:30]-[:-30]-[:30]}} + \reactant{\chemfig{-[:-30]-[:30](=[2]O)-[:-30]O-[:30]-[:-30]-[:30]}} \end{rxn} - hydroxy groups at the same height: + hydroxy groups at the same height through TikZ: \begin{rxn} - \reactand{\chemfig{-[:-30]-[:30](=[2]O)-[:-30]OH}} + \reactant{\chemfig{-[:-30]-[:30](=[2]O)-[:-30]OH}} \chemand[,,yshift=-1.2em] - \reactand[,,yshift=.12em]{\chemfig{HO-[:30]-[:-30]-[:30]}} - \branch[,,yshift=1em]{\arrow{[\Hpl]}{\SI{200}{\celsius}}} - \reactand{\chemfig{-[:-30]-[:30](=[2]O)-[:-30]O-[:30]-[:-30]-[:30]}} + \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 groups at the same height through an invisible substituent: + \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} -I'm afraid that in many cases you'll have to play with \lstinline+xshift+ and \lstinline+yshift+, until the scheme looks like you want. Maybe further versions of \mC will provide a more user friendly alignment syntax. +I'm afraid that in many other cases you'll have to play with \lstinline+xshift+\index{xshift} and \lstinline+yshift+\index{yshift}, though, until the scheme looks the way you want. Maybe further versions of \mC will provide a more user friendly alignment syntax. +\index{alignment|)} \subsection{Using \TikZ to Achieve Other Results} You could, just for fun?, change the looks of a molecule with \TikZ. \begin{SideBySideExample} \begin{rxn} - \reactand[,,->,green!45!blue!55]{ \chemfig{*6(---(-)---)} } + \reactant[,,->,green!45!blue!55]{ \chemfig{*6(---(-)---)} } \end{rxn} \chemfig[->,green!45!blue!55]{*6(---(-)---)} \end{SideBySideExample} The last example is not very good, of course, since you can achieve the same result using \CF's own possibilities. But other cases are imaginable: \begin{Example} - \newcommand{\emptyreactand}{\reactand[,minimum width=5em]{ \rule[-1em]{1em}{.5pt}\;\rule[-1em]{3em}{.5pt} }{}} + \newcommand{\emptyreactant}{\reactant[,minimum width=5em]{ \rule[-1em]{1em}{.5pt}\;\rule[-1em]{3em}{.5pt} }{}} \newcommand{\stoich}{\rule[-3pt]{1em}{.5pt}} \begin{rxn} - \reactand{\bf\Large Ionic compounds (I)} - \reactand[below,a,yshift=1em]{Fill in the missing parts} - \branch[below=of a,b]{ \reactand[,,minimum width=5em]{ \stoich\ Na }\chemand \emptyreactand \arrow{}{} \emptyreactand \chemand \emptyreactand } - \branch[below=of b,,draw,inner sep=3pt]{\reactand[,,minimum width=5em]{}\chemand\reactand[,,minimum width=5em]{}\arrow{}{}\reactand[,,minimum width=5em]{Sodium chloride $+$ Hydrogen}} + \reactant{\bf\Large Ionic compounds (I)} + \reactant[below,a,yshift=1em]{Fill in the missing parts} + \branch[below=of a,b]{ \reactant[,,minimum width=5em]{ \stoich\ Na }\chemand \emptyreactant \arrow{}{} \emptyreactant \chemand \emptyreactant } + \branch[below=of b,,draw,inner sep=3pt]{\reactant[,,minimum width=5em]{}\chemand\reactant[,,minimum width=5em]{}\arrow{}{}\reactant[,,minimum width=5em]{Sodium chloride $+$ Hydrogen}} \end{rxn} \end{Example} \section{Alphabetical Command Reference} In the following section every command is explained. -\subsection{arrow}\label{ssec:arrow} +\subsection{anywhere}\label{ssec:anywhere}\index{anywhere|(}\index{Befehle!anywhere} +\NEU% +Sometimes it is useful to be able to place a reactant outside of the chain, \eg see \ref{rs:hydratisation}. +\begin{lstlisting} + \anywhere[<anchor>]{<tikz>}{<formula>} +\end{lstlisting} +The command \lstinline+\anywhere+ makes that possible. It is placed through \lstinline+<tikz>+ in a similar way as \lstinline+\branch+. +\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} +This command can be used for naming reaction partners. +\begin{Example} + \begin{rxn} + \reactant[,ketone]{\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 ketone}{$+$\color{blue}\Hyd} + \arrow[,<=>]{\tiny slow}{} + \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[,enolate]{\chemfig{H_2C=C(-[:60]\chemabove{\lewis{024,O}}{\hspace*{5mm}\scriptstyle\ominus})-[:-60]C|H_3}} + } + \anywhere{above=of enolate}{\tiny enolate ion} + \anywhere{above=of carbanion}{\tiny carbanion} + \anywhere{below=of mesomer}{$+$\color{blue}\ce{H2O}} + \end{rxn} +\end{Example} +\index{anywhere|)} + +\subsection{arrow}\label{ssec:arrow}\index{arrow|(}\index{commands!arrow} Reaction arrows are created with \lstinline=\arrow=. -\begin{Verbatim} - \arrow[<keys>]{<above>}{<below>} -\end{Verbatim} -There are several keys to customize the arrows. They are used like \lstinline+key=value+. -\begin{description} -\vitem+direction=<direction>+ -- possible values are: +\begin{lstlisting} + \arrow[<direction>,<type>,<length factor>,<anchor>,both]{<above>}{<below>} +\end{lstlisting} + +\subsubsection{Options}\index{arrow!options|(} +There are five options to customize the arrows. You've got to use them in the right order, separated by commas. +\begin{enumerate} +\item\lstinline+<direction>+\index{arrow!options!direction} -- possible values are: \begin{rxn} \setarrowlength{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=<type>+ -- possible values are: + \arrow{}{}\reactant{right} + \branch[above right=of a]{\arrow[above right]{}{}\reactant[above right]{above right}} + \branch[above=of a]{\arrow[above]{}{}\reactant[above]{above}} + \branch[above left=of a]{\arrow[above left]{}{}\reactant[above left]{above left}} + \branch[left=of a]{\arrow[left]{}{}\reactant[left]{left}} + \branch[below left=of a]{\arrow[below left]{}{}\reactant[below left]{below left}} + \branch[below=of a]{\arrow[below]{}{}\reactant[below]{below}} + \branch[below right=of a]{\arrow[below right]{}{}\reactant[below right]{below right}} + \end{rxn} +\item\lstinline+<type>+\index{arrow!options!type} -- possible values are: \begin{rxn} \dummy[a] - \branch[below=of a,b,yshift=1em]{\arrow{}{}\reactand{\ttfamily type=\{-\textgreater\}}} - \branch[below=of b,c,yshift=1em]{\arrow[type={<-}]{}{}\reactand{\ttfamily type=\{\textless-\}}} - \branch[below=of c,d,xshift=.5em,yshift=1em]{\arrow[type={<->}]{}{}\reactand{\ttfamily type=\{\textless-\textgreater\}}} - \branch[below=of d,e,yshift=1em]{\arrow[type={<=>}]{}{}\reactand{\ttfamily type=\{\textless=\textgreater\}}} - \branch[below=of e,,yshift=1em]{\arrow[type={-|>}]{}{}\reactand{\ttfamily type=\{-\textbar\textgreater\}}} - \end{rxn} -\vitem+length=<factor>+ -- the length (\SI{5.0}{\emlength}, factor = $1.0$, default) is multiplied with this factor. -\vitem+name=<anchor>+ -- this anchor can be used to refer to the arrow, \eg with a branch. -\vitem+both+\settowidth{\tmplength}{\tt both}\Vii[\tmplength]-- this gives both arrow argument nodes the same width and height. -\end{description} + \branch[below=of a,b,yshift=1em]{\arrow{}{}\reactant{\ttfamily -\textgreater}} + \branch[below=of b,c,yshift=1em]{\arrow[,<-]{}{}\reactant{\ttfamily \textless-}} + \branch[below=of c,d,xshift=.25em,yshift=1em]{\arrow[,<->]{}{}\reactant{\ttfamily \textless-\textgreater}} + \branch[below=of d,e,yshift=1em]{\arrow[,<=>]{}{}\reactant{\ttfamily \textless=\textgreater}} + \branch[below=of e,f,yshift=1em]{\arrow[,-|>]{}{}\reactant{\ttfamily -\textbar\textgreater}} + \branch[below=of f,,yshift=1em]{\arrow[,-+>]{}{}\reactant{\ttfamily -+\textgreater}} + \end{rxn} +\item\lstinline+<length factor>+\index{arrow!options!length} -- the length (\SI{5.0}{\emlength}, factor = $1.0$, default) is multiplied with this factor. +\item\lstinline+<anchor>+\index{arrow!options!anchor} -- this anchor can be used to refer to the arrow, \eg with a branch. +\item\lstinline+both+\index{arrow!options!both}-- this gives both arrow argument nodes the same width and height. +\end{enumerate} \begin{SideBySideExample} \begin{rxn} - \dummy\arrow{\ce{Br2}}{$h\nu$} \arrow{\chemfig{-[::30]-[::-60]OH}}{} + \arrow[,,.6]{\ce{Br2}}{$h\nu$} \arrow{\chemfig{-[::30]-[::-60]OH}}{} \end{rxn} \begin{rxn} - \dummy\arrow[direction=above]{\ce{Br2}}{$h\nu$} + \arrow[above,,.6]{\ce{Br2}}{$h\nu$} \end{rxn} \begin{rxn} - \dummy\arrow[direction=above]{\chemfig{-[::30]-[::-60]OH}}{} + \arrow[above]{\chemfig{-[::30]-[::-60]OH}}{} \end{rxn} \begin{rxn} - \dummy\arrow[direction=above right]{\ce{Br2}}{$h\nu$} + \arrow[above right,,.5]{\ce{Br2}}{$h\nu$} \end{rxn} \begin{rxn} - \dummy\arrow[direction=above right]{\chemfig{-[::30]-[::-60]OH}}{} + \arrow[above right]{\chemfig{-[::30]-[::-60]OH}}{} \end{rxn} \end{SideBySideExample} Most keys in action: \begin{SideBySideExample} \begin{rxn} - \reactand{A} - \arrow[name=arrow_a]{B}{} - \branch[above=of arrow_a,,yshift=-4em]{ - \arrow[type=<-,direction=above,length=.7]{}{} - \reactand[above]{D} + \reactant{A} + \arrow[,,,arrow_a]{B}{} + \branch[above=of arrow_a,,yshift=1em]{ + \arrow[above,<-,.7]{}{} + \reactant[above]{D} } - \reactand{C} + \reactant{C} \end{rxn} \end{SideBySideExample} +\index{arrow!options|)} + +\subsubsection{Alignment}\index{arrow!alignment|(} If an arrow is placed inside a branch (see \ref{ssec:branch}) the alignment of the branch possibly is determined by the width and height of the arrow arguments. If these arguments have different sizes, the alignment can go wrong. \begin{SideBySideExample} \makevisible \begin{rxn} - \reactand[,a]{A} + \reactant[,a]{A} \arrow{}{} \branch[below=of a]{ - \arrow[direction=below]{\chemfig{-[::30]-[::-60]OH}}{} + \arrow[below]{\chemfig{-[::30]-[::-60]OH}}{} } \end{rxn} \makeinvisible \end{SideBySideExample} -By using the key \lstinline=both=, both argument nodes have the same size, which can correct the alignment. +By using the key \lstinline=both=\index{arrow!both}, both argument nodes have the same size, which can correct the alignment. \begin{SideBySideExample} \makevisible \begin{rxn} - \reactand[,a]{A} + \reactant[,a]{A} \arrow{}{} \branch[below=of a]{ - \arrow[direction=below,both]{\chemfig{-[::30]-[::-60]OH}}{} + \arrow[below,,,,both]{\chemfig{-[::30]-[::-60]OH}}{} } \end{rxn} \makeinvisible \end{SideBySideExample} There is more about the alignment problem in \ref{sssec:branch_ausrichtung}. +\index{arrow!alignment|)} + +\subsubsection{Appearance}\index{arrow!appearance} +With the commands \lstinline+\setarrowlength+ (\ref{ssec:setarrowlength}) and \lstinline+\setarrowline+ (\ref{ssec:setarrowline}) the general appearance of the arrows can be changed. +\index{arrow|)} -\subsection{branch}\label{ssec:branch} -\NEU\lstinline=\branch= is used to, well, create a branch to a reaction. \textbf{If you used earlier versions of \mC please be aware, that the command syntax has changed.} -\begin{Verbatim} +\subsection{branch}\label{ssec:branch}\index{branch|(}\index{commands!branch} +\lstinline=\branch= is used to, well, create a branch to a reaction. \textbf{If you used earlier versions of \mC please be aware, that the command syntax has changed with v1.3.} +\begin{lstlisting} \branch[<alignment>,<anchor>,<tikz>]{<branch code>} -\end{Verbatim} +\end{lstlisting} For \lstinline=\branch= alignment an anchor is important. Let's take a look at an example: \begin{Example} \begin{rxn} - \reactand[,start]{\chemfig{-[::30]=_[::-60](-[::-60])-[::60]}} - \arrow[length=.75]{\ce{HCl}}{} - \reactand{\chemfig{-[::30]-[::-60](-[::120]Cl)(-[::-60])-[::60]}} + \reactant[,start]{\chemfig{-[::30]=_[::-60](-[::-60])-[::60]}} + \arrow[,,.75]{\ce{HCl}}{} + \reactant{\chemfig{-[::30]-[::-60](-[::120]Cl)(-[::-60])-[::60]}} \chemand - \reactand{\chemfig{-[::30](-[::60]Cl)-[::-60](-[::-60])-[::60]}} + \reactant{\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]}} + \arrow[below right,,.75]{\ce{H2O}}{} + \reactant[below right]{\chemfig{-[::30]-[::-60](-[::120]OH)(-[::-60])-[::60]}} \chemand - \reactand{\chemfig{-[::30](-[::60]OH)-[::-60](-[::-60])-[::60]}} + \reactant{\chemfig{-[::30](-[::60]OH)-[::-60](-[::-60])-[::60]}} } \end{rxn} \end{Example} -The first reactand got the anchor \lstinline+start+ (line 2, also see \ref{ssec:reactand}). -\begin{Verbatim}[firstnumber=2] - \reactand[,!!start!!]{ ... } -\end{Verbatim} -\lstinline=\branch= now refers to it in its alignment (line 6): -\begin{Verbatim}[firstnumber=6] +The first reactant got the anchor \lstinline+start+ (line 2, also see \ref{ssec:reactant}). +\begin{lstlisting}[firstnumber=2] + \reactant[,!!start!!]{ ... } +\end{lstlisting} +\lstinline=\branch= now refers to it in its alignment (line 7): +\begin{lstlisting}[firstnumber=7] \branch[below right!!=of start!!]{ ... } -\end{Verbatim} -If you don't use the alignment reference to an anchor, you automatically refer to the last \lstinline=\reactand= or \lstinline=\arrow=. If you don't use alignment at all, then the branch is aligned to the right of the last \lstinline=\reactand= or \lstinline=\arrow=. +\end{lstlisting} +If you don't use the alignment reference to an anchor, you automatically refer to the last \lstinline=\reactant= or \lstinline=\arrow=. If you don't use alignment at all, then the branch is aligned to the right of the last \lstinline=\reactant= or \lstinline=\arrow=. \begin{SideBySideExample} \begin{rxn} - \reactand{ \chemfig{CH_2=CH-OH} } - \arrow[type={<=>},length=.5]{}{} - \branch{ \reactand{ \chemfig{CH_3-CH=O} } } + \reactant{ \chemfig{CH_2=CH-OH} } + \arrow[,<=>,.5]{}{} + \branch{ \reactant{ \chemfig{CH_3-CH=O} } } \end{rxn} \end{SideBySideExample} You have several options for alignment: you can either put the \lstinline+\branch+ on a \lstinline+chain+ or place it relative to a object. @@ -814,73 +888,75 @@ You have several options for alignment: you can either put the \lstinline+\branc \vitem+chain+ In this case you use: \lstinline+on chain=going <value>+. \item[relative] In this case you use: \lstinline+<value>=of <anchor>+. \end{description} -As possible \lstinline+<value>+ you have the same choices as for \lstinline+\reactand+, see \ref{ssec:reactand}. Default is \lstinline+on chain=going right+. +As possible \lstinline+<value>+ you have the same choices as for \lstinline+\reactant+, see \ref{ssec:reactant}. Default is \lstinline+on chain=going right+. -\subsubsection{Alignment problems}\label{sssec:branch_ausrichtung} +\subsubsection{Alignment problems}\label{sssec:branch_ausrichtung}\index{branch!alignment|(} If an arrow has two arguments with different sizes and is placed inside a branch, the alignment of the branch can go wrong. In this case the \lstinline=\arrow= key \lstinline=both= isn't a solution, since the smaller argument then is not placed next to the arrow but is centered in its node. \begin{SideBySideExample} \makevisible \begin{rxn} - \reactand[,a]{A} + \reactant[,a]{A} \arrow{}{} \branch[below=of a]{ - \arrow[direction=below,both]{\chemfig{-[::30]-[::-60]OH}}{\Hpl} + \arrow[below,,,,both]{\chemfig{-[::30]-[::-60]OH}}{\Hpl} } \end{rxn} \makeinvisible \end{SideBySideExample} -What you have to do is shift the branch using the \TikZ keys \lstinline=xshift= and \lstinline=yshift=. +What you have to do is shift the branch using the \TikZ keys \lstinline+xshift+\index{xshift} and \lstinline+yshift+\index{yshift}. \begin{SideBySideExample} \makevisible \begin{rxn} - \reactand[,a]{A} + \reactant[,a]{A} \arrow{}{} \branch[below=of a,,xshift=-1.35em]{ - \arrow[direction=below]{\chemfig{-[::30]-[::-60]OH}}{\Hpl} + \arrow[below]{\chemfig{-[::30]-[::-60]OH}}{\Hpl} } \end{rxn} \makeinvisible \end{SideBySideExample} +\index{branch!alignment|)}\index{branch|)} -\subsection{chemand}\label{ssec:chemand} -\NEU% +\subsection{chemand}\label{ssec:chemand}\index{chemand|(}\index{commands!chemand} The command -\begin{Verbatim} +\begin{lstlisting} \chemand[<alignment>,<anchor>,<tikz>] -\end{Verbatim} -produces and places a $+$ in the same way \lstinline+\reactand+ places arbitrary text. +\end{lstlisting} +produces and places a $+$ in the same way \lstinline+\reactant+ places arbitrary text. \begin{Example} \begin{rxn} - \reactand{\chemfig{*6(------)}} + \reactant{\chemfig{*6(------)}} \chemand - \reactand{\ce{Br2}} + \reactant{\ce{Br2}} \arrow{$h\nu$}{} - \reactand{\chemfig{*6(--(-Br)----)}} + \reactant{\chemfig{*6(--(-Br)----)}} \chemand - \reactand{\ce{HBr}} + \reactant{\ce{HBr}} \end{rxn} \end{Example} -The optional arguments for \lstinline+\chemand+ and \lstinline+\reactand+ are the same, see \ref{ssec:reactand}. +The optional arguments for \lstinline+\chemand+ and \lstinline+\reactant+ are the same, see \ref{ssec:reactant} for \lstinline+\reactant+'s options. +\index{chemand|)} -\subsection{dummy}\label{ssec:dummy} -\lstinline=\dummy= creates an empty node. \lstinline=\arrow= needs to follow after a node, because \lstinline=\arrow= internally uses \lstinline=\tikzchainprevious=. If there is no node on the chain \emph{before} \lstinline=\arrow= is used, it will cause an error. But by using \lstinline=\dummy= you can start a scheme with an arrow anyway. -\begin{SideBySideExample} +\subsection{dummy}\label{ssec:dummy}\index{dummy|(}\index{commands!dummy} +\NEU\lstinline=\dummy= creates an empty node. Up to v1.3 \lstinline=\arrow= needed to follow after a node, because \lstinline=\arrow= internally uses \lstinline=\tikzchainprevious=. If there was no node on the chain \emph{before} \lstinline=\arrow= was used, it caused an error. With \lstinline+\branch+ it was similar. By using \lstinline=\dummy= you could start a scheme with an arrow anyway. +\begin{lstlisting} \begin{rxn} \dummy\arrow{}{} \end{rxn} -\end{SideBySideExample} +\end{lstlisting} +\emph{This is \textbf{not} necessary any more}. In some (alignment) cases, an empty node still might be useful, so the command still exists. +\index{dummy|)} -\subsection{elmove}\label{ssec:elmove} +\subsection{elmove}\label{ssec:elmove}\index{elmove|(}\index{commands!elmove} \lstinline=\elmove= just is a shortcut for \CF's \lstinline=\chemmove=. -\begin{lstlisting}[emphstyle=\normalcolor] +\begin{lstlisting} \elmove[<tikz>]{<start>}{<start direction>}{<end>}{<end direction>} \end{lstlisting} This is expanding the command -\begin{Verbatim} +\begin{lstlisting} \chemmove{\draw[!!<tikz>!!](!!<start>!!).. controls +(!!<start direction>!!) and +(!!<end direction>!!)..(!!<end>!!);} -\end{Verbatim} +\end{lstlisting} using \lstinline?[->,red,shorten <=3pt,shorten >=1pt]? as default for \lstinline=<tikz>=. How you use \lstinline+\chemmove+ is described in the documentation for \CF. - \begin{Example} \begin{center} \setatomsep{1.8em} @@ -888,151 +964,179 @@ using \lstinline?[->,red,shorten <=3pt,shorten >=1pt]? as default for \lstinline \elmove{e1}{60:4mm}{e2}{0:4mm} \end{center} \end{Example} +\index{elmove|)} -\subsection{makeinvisible}\label{ssec:makeinvisible} -\Vii% +\subsection{makeinvisible}\label{ssec:makeinvisible}\index{makeinvisible|(}\index{commands!makeinvisible} \lstinline=\makeinvisible= restores the normal \mC behaviour after \lstinline=\makevisible= (see \ref{ssec:makevisible}) has been used. \lstinline=\makeinvisible= only changes the looks of nodes following after it. +\index{makeinvisible|)} -\subsection{makevisible}\label{ssec:makevisible} -\Vii% -With \lstinline=\makevisible= you can visualize the nodes within which reactands, arrows and branches are set. This is useful when you're aligning branches, for example. You can see an example for \lstinline=\makevisible= in \ref{ssec:arrow}. Every kind of nodes is emphasized with a different colour: +\subsection{makevisible}\label{ssec:makevisible}\index{makevisible|(}\index{commands!makevisible} +With \lstinline=\makevisible= you can visualize the nodes within which reactants, arrows and branches are set. This is useful when you're aligning branches, for example. You can see an example for \lstinline=\makevisible= in \ref{ssec:arrow}. Every kind of nodes is emphasized with a different colour: -\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\{\}\{\}}};. Also see \ref{ssec:makeinvisible}. +\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=purple, dotted](X){\texttt{\textbackslash branch\{\}}};. Also see \ref{ssec:makeinvisible}. \lstinline=\makevisible= only changes the looks of nodes following after it. \begin{SideBySideExample} \makevisible \begin{rxn} - \reactand[,a]{A} + \reactant[,a]{A} \arrow{a}{b} \branch[below=of a]{ - \arrow[direction=below,both]{a}{b} + \arrow[below,,,,both]{a}{b} } \end{rxn} \makeinvisible \end{SideBySideExample} +\index{makevisible|)} -\subsection{marrow}\label{ssec:marrow} +\subsection{marrow}\label{ssec:marrow}\index{marrow|(}\index{commands!marrow} \lstinline=\marrow= creates a double-headed arrow. -\begin{Verbatim} +\begin{lstlisting} \marrow[<direction>] -\end{Verbatim} -It is a shortcut for \lstinline+\arrow[type=<->,length=.5,direction=<direction>]{}{}+. You can use \lstinline=<direction>= like the alignment option of \lstinline=\reactand= (see \ref{ssec:reactand} or \ref{ssec:mesomeric}). +\end{lstlisting} +It is a shortcut for \lstinline+\arrow[<direction>,<->,.5]{}{}+. +\index{marrow|)} -\subsection{mCsetup}\label{ssec:mCsetup} -\NEU% +\subsection{mCsetup}\label{ssec:mCsetup}\index{mCsetup|(}\index{commands!mCsetup} With -\begin{Verbatim} +\begin{lstlisting} \mCsetup{<keys>} -\end{Verbatim} -you can fully customize \mC. For each of \mC's commands going like \lstinline+\set<command>+ except \lstinline+\setbondshape+ there is a key \lstinline+<command>=<value>+. Additionally there is the key \lstinline+align=<value>+, with which you can change the alignment behaviour of both \lstinline+rxn+ and \lstinline+rxnscheme+, and the key \lstinline+reset+, with whith all values are reset to default. +\end{lstlisting} +you can fully customize \mC. For each of \mC's commands going like \lstinline+\set<command>+ except \lstinline+\setbondshape+ there is a key \lstinline+<command>=<value>+. Additionally there is the key \lstinline+align=<value>+, with which you can change the alignment behaviour of both \lstinline+rxn+ and \lstinline+rxnscheme+, and the key \lstinline+reset+, with whith all values are reset to default.\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, arrowlength=3em, - rcndist=2em, - atomsize=\large, + arrowline=thick, + atomsize=\large, bondlength=3em, + mergelength=4em, + rcndist=2em %rxnalign=right, - %schemealign=left, - align=left + %schemealign=left } \setbondshape{4pt}{2pt}{1pt} \begin{rxn} - \reactand{A}\arrow{}{}\reactand{\chemfig{A-(<[2])(<:[6])-B}} + \reactant{A}\arrow{}{}\reactant{\chemfig{A-(<[2])(<:[6])-B}} \end{rxn} \mCsetup{reset} \begin{rxn} - \reactand{A}\arrow{}{}\reactand{\chemfig{A-(<[2])(<:[6])-B}} + \reactant{A}\arrow{}{}\reactant{\chemfig{A-(<[2])(<:[6])-B}} \end{rxn} \end{Example} +\index{mCsetup|)} -\subsection{merge}\label{ssec:merge} -\lstinline=\merge= cannot only be used in \mC's environments but also in a `tikzpicture'. With \lstinline=\merge= you can, well, two branches into one. To be able to do that, you need to refer to anchors. -\begin{Verbatim} - \merge[<key>]{<target>}{<start a>}{<start b>} -\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} -Usage of \lstinline=\merge= in a \mC environment: +\subsection{merge}\label{ssec:merge}\index{merge|(}\index{commands!merge} +\NEU% +The \lstinline+merge+ command is used to merge different reaction chains. In order to do that, the reactants that are to be merged must have an anchor name (\lstinline+\reactant[,<anchor>]{}+, similar with branches, see \ref{ssec:reactant} and \ref{ssec:branch}) and be placed \emph{before} \lstinline+\merge+. +\begin{lstlisting} + \merge[<label>,<direction>,<length>]{<target>}{<start a>}{<start b>} +\end{lstlisting} +\lstinline+\merge+ has three optional and three mandatory arguments. The latter are the anchor names of the reactants, that are to be merged. +\begin{Example} + \begin{rxn} + \branch[,first]{ + \reactant[,start_a]{\chemfig{-[:30]-[:-30]OH}} + \reactant[,start_b,xshift=9em]{\chemfig{-[:30]=[:-30]O}} + } + \branch[below=of first,target,yshift=-5em]{ + \reactant{\chemfig{-[:30]-[:-30]O-[:30](-[2]OH)-[:-30]}} + } + \merge[\ce{[\Hyd]}]{target}{start_a}{start_b} + \end{rxn} +\end{Example} +The default \lstinline+<direction>+ is \lstinline+below+, other possible values are \lstinline+right+, \lstinline+left+ or \lstinline+above+. With \lstinline+<length>+ the length of the arrow from the point of merging to the tip can be changed. The default length is \SI{3}{\emlength}. The default length can be changed with \lstinline+\setmergelength+\index{setmergelength} or \lstinline+\mCsetup+\index{mCsetup}. +\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,target,xshift=7em,yshift=-6em]{ + \reactant{\chemfig{-[:30]-[:-30]O-[:30](-[2]OH)-[:-30]}} + } + \merge[\ce{[\Hyd]},right,5em]{target}{start_a}{start_b} + \end{rxn} +\end{Example} +Since you have to place the reactants first, it might be useful to know a little bit about involved lengths. There are three values, which influence the needed distance between start points and the target reactant. There is the {\color{green}depth} of the involved reactants, the distance of the "reaction nodes" {\color{red}rcndist} (see \ref{ssec:setrcndist}) and the length of the \lstinline+\merge+ arrow {\color{blue}mergelength} (also see \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]{reactant depth}++(0,.5em); +\end{rxn} +At last an example where two chains are merged. \begin{Example} \begin{rxn} \setatomsep{1em}\tiny - % branch 1 - \reactand[,above]{ \chemfig{Cl-[:30,1.5]--[:-30,1.5]O-[:30,1.5]--[:-30,1.5]Cl}{} } - \arrow[length=.5]{}{} - \reactand[,start_above]{ \chemfig{O(-[:-150]**6(-----(-OH)-))-[:90]-[:30]-[:-30]O-[:30]-[:-30]-[:-90]O-[:-30]**6(-(-HO)-----)} } - % branch 2 - \branch[below=of above,start_below,xshift=8em,yshift=-4em]{ - \reactand{ \chemfig{**6((--[6,,,2]HO)-N-(--[6]OH)----)} } - \arrow[length=.5]{}{} - \reactand{ \chemfig{**6((--[6]Br)-N-(--[6]Br)----)} } + % chain 1 + \reactant[,first]{ \chemfig{Cl-[:30,1.5]--[:-30,1.5]O-[:30,1.5]--[:-30,1.5]Cl}{} } + \arrow[,,.5]{}{} + \reactant[,start_above]{ \chemfig{O(-[:-150]**6(-----(-OH)-))-[:90]-[:30]-[:-30]O-[:30]-[:-30]-[:-90]O-[:-30]**6(-(-HO)-----)} } + % chain 2 + \branch[below=of first,start_below,xshift=8em,yshift=-4em]{ + \reactant{ \chemfig{**6((--[6,,,2]HO)-N-(--[6]OH)----)} } + \arrow[,,.5]{}{} + \reactant{ \chemfig{**6((--[6]Br)-N-(--[6]Br)----)} } } % target \branch[right=of start_above,target,xshift=5em,yshift=-4em]{ - \reactand[,c]{ \chemfig{O(-[:-150]**6(-----(-O?)-))-[:90]-[:30]**6(-N-(--[:-90]O-[:-30]**6(-(-O-[6]-[:-150]-[:150]O-[:-150]-[:150]?)-----))----)} } + \reactant[,c]{ \chemfig{O(-[:-150]**6(-----(-O?)-))-[:90]-[:30]**6(-N-(--[:-90]O-[:-30]**6(-(-O-[6]-[:-150]-[:150]O-[:-150]-[:150]?)-----))----)} } } % merging: - \merge[direction=right]{target}{start_above}{start_below} + \merge[,right]{target}{start_above}{start_below} \end{rxn} \end{Example} -Please note, that you should use branches to refer to, when you use \lstinline=\merge= in a \mC environment. Using \lstinline=\merge= may afford playing with xshift and yshift until you get the result you want. +The usage of \lstinline=\merge= may require some playing with branches, \lstinline+xshift+\index{xshift} and \lstinline+yshift+\index{yshift}, until you get the desired result. \begin{Example} \begin{rxn} \setatomsep{1.5em} - \reactand[,start_aa]{ \chemname{\chemfig{**6(---(-NH_2)---)}}{aniline} } - \reactand[below,start_ab,yshift=-3em]{ \chemname{\ce{HNO2}}{nitrous acid} } + \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,target_a,xshift=6em,yshift=-5em]{ - \reactand{ \chemname{\chemfig{**6(---(-N|_2\op)---)}}{diazonium ion} } + \reactant{ \chemname{\chemfig{**6(---(-N|_2\op)---)}}{Diazoniumion} } }% = start_ba \branch[below=of target_a,start_bb,yshift=-3em]{ - \reactand{ \chemname{\chemfig{**6(---(-NH_2)---)}}{aniline} } + \reactant{ \chemname{\chemfig{**6(---(-NH_2)---)}}{Anilin} } } \branch[right=of target_a,target_b,xshift=6em,yshift=-5em]{ - \reactand{ \chemname{\chemfig{N(-[:-150]**6(------))=N-[:-30]**6(---(-NH_2)---)}}{aniline yellow} } + \reactant{ \chemname{\chemfig{N(-[:-150]**6(------))=N-[:-30]**6(---(-NH_2)---)}}{p-Aminodiazobenzol} } } - \merge[direction=right]{target_a}{start_aa}{start_ab} - \merge[direction=right]{target_b}{target_a}{start_bb} + \merge[,right]{target_a}{start_aa}{start_ab} + \merge[,right]{target_b}{target_a}{start_bb} \end{rxn} \end{Example} +\index{merge|)} -\subsection{mesomeric}\label{ssec:mesomeric} -\NEU% -The \lstinline=\mesomeric= command works just like \lstinline=\branch= (see \ref{ssec:branch}) but places the formul\ae\ into square brackets. \textbf{If you used earlier versions of \mC please be aware, that the command syntax has changed.} -\begin{Verbatim} +\subsection{mesomeric}\label{ssec:mesomeric}\index{mesomeric|(}\index{commands!mesomeric} +The \lstinline=\mesomeric= command works just like \lstinline=\branch= (see \ref{ssec:branch}) but places the formul\ae\ into square brackets. \textbf{If you used earlier versions of \mC please be aware, that the command syntax has changed with v1.3.} +\begin{lstlisting} \mesomeric[<alignment>,<anchor>,<tikz>]{<formula>} -\end{Verbatim} -The resonance formul\ae\ are written into \lstinline=<formula>=. With \lstinline=\marrow= (see \ref{ssec:marrow}) you create the resonance arrows. If needed you can give an anchor (\lstinline=<anchor>=) to \lstinline=\mesomeric= (also see \ref{ssec:branch}). Alignment is used the same way as with \lstinline=\reactand=. +\end{lstlisting} +The resonance formul\ae\ are written into \lstinline=<formula>=. With \lstinline=\marrow= (see \ref{ssec:marrow}) you create the resonance arrows. If needed you can give an anchor (\lstinline=<anchor>=) to \lstinline=\mesomeric= (also see \ref{ssec:branch}). Alignment is used the same way as with \lstinline=\reactant=. \begin{Example} \begin{rxn} \mesomeric{ - \reactand{ + \reactant{ \chemfig{*6(=[@{e1}]-=-(-[:120]X)(-[:60]H)-(-[:-30,.4,,,white]\oplus)-[@{e2}])} \elmove{e1}{60:4mm}{e2}{0:4mm} } \marrow - \reactand{ + \reactant{ \chemfig{*6(-(-[:90,.4,,,white]\oplus)-[@{e4}]=[@{e3}]-(-[:120]X)(-[:60]H)-=)} \elmove{e3}{180:4mm}{e4}{150:4mm} } \marrow - \reactand{ + \reactant{ \chemfig{*6(-=-(-[:-150,.4,,,white]\oplus)-(-[:120]X)(-[:60]H)-=)} } } @@ -1042,9 +1146,9 @@ Or vertical, too: \begin{SideBySideExample} \begin{rxn} \mesomeric{ - \reactand{ \chemfig{*6(=-=-=-)} } + \reactant{ \chemfig{*6(=-=-=-)} } \marrow[below] - \reactand[below]{ \chemfig{*6(-=-=-=)} } + \reactant[below]{ \chemfig{*6(-=-=-=)} } } \end{rxn} \end{SideBySideExample} @@ -1053,20 +1157,21 @@ Or maybe a coordination complex? \begin{rxn} \setatomsep{3em} \mesomeric[,a]{ - \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} } + \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} } } \node[above right=of a,yshift=-1em] {$2\oplus$}; \end{rxn} \end{Example} +\index{mesomeric|)} -\subsection{reactand}\label{ssec:reactand} +\subsection{reactant}\label{ssec:reactant}\index{reactant|(}\index{commands!reactant} \NEU% -The command \lstinline=\reactand= is somehow the basic command of \mC. \textbf{If you used earlier versions of \mC please be aware, that the command syntax has changed.} -\begin{Verbatim} - \reactand[<alignment>,<anchor>,<tikz>]{<formula>} -\end{Verbatim} +The command \lstinline=\reactant=\footnote{In older versions this command was called \texttt{\textbackslash reactand}, which is still available.} is somehow the basic command of \mC. \textbf{If you used earlier versions of \mC please be aware, that the command syntax has changed with v1.3.} +\begin{lstlisting} + \reactant[<alignment>,<anchor>,<tikz>]{<formula>} +\end{lstlisting} In this command the actual formul\ae\ are written (\lstinline=<formula>=). If needed, they can be given an anchor (\lstinline=<anchor>=). The optional argument \lstinline=<alignment>= can have 8 different values: -\begin{inparaenum}[(a)] +\begin{alphlist} \item \lstinline=right=, \item \lstinline=above right=, \item \lstinline=above=, @@ -1075,1073 +1180,1230 @@ In this command the actual formul\ae\ are written (\lstinline=<formula>=). If ne \item \lstinline=below left=, \item \lstinline=below=, \item \lstinline=below right= -\end{inparaenum} -Default is \lstinline=right=. You use this argument to place the reactand relatively to the reactand or arrow right before. +\end{alphlist} +Default is \lstinline=right=. You use this argument to place the reactant relatively to the reactant or arrow right before. \begin{SideBySideExample} %horizontal: \begin{rxn} - \reactand{\ce{Br2}} - \reactand[below]{\ce{Cl2}} + \reactant{\ce{Br2}} + \reactant[below]{\ce{Cl2}} \end{rxn} -%more than one reactand: +%more than one reactant: \begin{rxn} - \reactand{\ce{Br2}} - \reactand[below]{\ce{I2}} - \reactand{\ce{Cl2}} + \reactant{\ce{Br2}} + \reactant[below]{\ce{I2}} + \reactant{\ce{Cl2}} \end{rxn} %vertical reaction: \begin{rxn} - \reactand{\ce{Br-Br}} - \arrow[length=.5,direction=below]{$h\nu$}{} - \reactand[below]{\ce{2 ~\lewis{0.,Br}}} + \reactant{\ce{Br-Br}} + \arrow[below,,.5]{$h\nu$}{} + \reactant[below]{\ce{2 ~\lewis{0.,Br}}} \end{rxn} \end{SideBySideExample} +\index{reactant|)} -\subsection{rxn (environment)}\label{ssec:rxn} -\lstinline=rxn= is a non-floating not numbered environment for reaction schemes. All schemes are centered. -\begin{Verbatim} - \begin{rxn}[<keys>] +\subsection{rxn (environment)}\label{ssec:rxn}\index{rxn|(}\index{commands!rxn|see{rxn}}\index{environment!rxn|see{rxn}} +\lstinline=rxn= is a non-floating not numbered environment for reaction schemes. Per default all schemes are centered. +\begin{lstlisting} + \begin{rxn}[<align>,<scalefactor>] ... \end{rxn} -\end{Verbatim} -The optional argument \lstinline=<scale factor>= has the same effect as has the key \lstinline+scale=<scalefactor>+ on \lstinline=rxnscheme=. Default is $1.0$. +\end{lstlisting} -\subsubsection{Options}\label{sssec:rxn_optionen} -\Vii\lstinline=rxn= has two keys: -\begin{description} - \vitem+align=<alignment>+ alignment behaviour of the \lstinline=rxn= environment; default is `center' - \vitem+scale=<factor>+ factor by which the \lstinline=rxn= environment is scaled; default: `1.0' -\end{description} +\subsubsection{Options}\label{sssec:rxn_optionen}\index{rxn!options|(} +\NEU\lstinline=rxn= has two options, which are to be used in the following order, separated by a comma: +\begin{enumerate} + \item\lstinline+<alignment>+\index{rxn!options!alignment} alignment behaviour of the \lstinline=rxn= environment; default is `center'. + \item\lstinline+<scalefactor>+\index{rxn!options!scale} factor by which the \lstinline=rxn= environment is scaled; default: `1.0'. Same behaviour as with \lstinline+rxnscheme+, see \ref{ssec:rxnscheme}. +\end{enumerate} +If you use the \lstinline+scalefactor+ option, you might see strange effects on \CF formul\ae. +\begin{SideBySideExample} + \begin{rxn}[,.5] + \reactant{\chemfig{**6(------)}} + \end{rxn} +\end{SideBySideExample} +Scaling does in general not affect the size of \CF formul\ae, but does scale the aromaticity ring of benzene and similar molecules. This is due to a possible bug in \CF itself. +\begin{SideBySideExample} + \chemfig[scale=.5]{**6(------)} +\end{SideBySideExample} +This can be solved either by using the \emph{first} optional argument of \lstinline+\chemfig+ to undo the scaling or by using the \emph{second} optional argument to scale the rest of the molecule. +\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} +Alignment examples: \begin{Example} - \begin{rxn}[align=center] - \reactand{center}\arrow{}{}\reactand{centered} + \begin{rxn}[center] + \reactant{center}\arrow{}{}\reactant{centered} \end{rxn} - \begin{rxn}[align=right] - \reactand{right}\arrow{}{}\reactand{raggedleft} + \begin{rxn}[right] + \reactant{right}\arrow{}{}\reactant{raggedleft} \end{rxn} - \begin{rxn}[align=left] - \reactand{left}\arrow{}{}\reactand{raggedright} + \begin{rxn}[left] + \reactant{left}\arrow{}{}\reactant{raggedright} \end{rxn} \end{Example} +\index{rxn!options|)}\index{rxn|)} -\subsection{rxnscheme (environment)}\label{ssec:rxnscheme} -\lstinline=rxnscheme= is a floating environment for reaction schemes. -\begin{Verbatim} - \begin{rxnscheme}[<keys>]{<caption>} +\subsection{rxnscheme (environment)}\label{ssec:rxnscheme}\index{rxnscheme|(}\index{commands!rxnscheme|see{rxnscheme}}\index{environment!rxnscheme|see{rxnscheme}} +\lstinline+rxnscheme+ is a floating environment for reaction schemes. +\begin{lstlisting} + \begin{rxnscheme}[<label>,<placement>,<alignment>,<scalefactor>,<name>]{<caption>} ... \end{rxnscheme} -\end{Verbatim} -\subsubsection{Options}\label{sssec:rxnscheme_optionen} -\begin{description} - \vitem+label=<label>+ Like every other floating environment \lstinline=rxnscheme= can be given a label. To do that, you need to use the key \lstinline+label=<label>+. For example if you use -\begin{Verbatim} - \begin{rxnscheme}[label={rs:schema}]{<caption>} +\end{lstlisting} + +\subsubsection{Options}\label{sssec:rxnscheme_optionen}\index{rxnscheme!options|(} +\NEU\lstinline=rxnscheme= has five options, which are to be used in the following order, separated by commas: +\begin{enumerate} + \item\lstinline+<label>+\index{rxnscheme!options!label} Like every other floating environment \lstinline+rxnscheme+ can be given a label. To do that, you need to use the option \lstinline+<label>+. For example if you use +\begin{lstlisting} + \begin{rxnscheme}[rs:schema]{<caption>} ... \end{rxnscheme} -\end{Verbatim} -you can refer to it by using \lstinline=\ref{rs:schema}= as usual. -\vitem+scale=<factor>+ \lstinline=rxnscheme= has another key with which the scheme can be scaled. Please keep in mind that it doesn't affect the font size and the size of the \CF formul\ae. -\begin{Verbatim} - \begin{rxnscheme}[placement=<placement>]{<caption>} +\end{lstlisting} + you can refer to it by using \lstinline=\ref{rs:schema}= as usual. + \item\lstinline+<placement>+\index{rxnscheme!options!placement} With this option you can change the placement of the float, \eg with \lstinline+htp+. The default value is \lstinline+H+ (exactly here). An example for this option is \ref{rs:synthese} in \ref{ssec:tikzsynthese}. + \item\lstinline+<alignment>+\index{rxnscheme!options!alignment}This option changes the alignment of the scheme. You can choose between \lstinline=left=, \lstinline=center= and \lstinline=right=. + \item\lstinline+<scalefactor>+\index{rxnscheme!options!scale} \lstinline+rxnscheme+ has another key with which the scheme can be scaled. Please keep in mind that it doesn't affect the font size and the size of \CF formul\ae. You can have strange effects on \CF formul\ae\ if you use this key, though. See \ref{sssec:rxn_optionen} for more information. + \item\lstinline+<name>+\index{rxnscheme!options!name} This option changes the name of the actual scheme from "Reaktionschema" or "Reaction scheme" into \lstinline+<name>+. +\begin{lstlisting} + \begin{rxnscheme}[,<placement>]{<caption>} ... \end{rxnscheme} -\end{Verbatim} - \vitem+align=<alignment>+\settowidth{\tmplength}{\tt align=<ausrichtung>}\Vii[\tmplength]This key changes the alignment of the scheme. You can choose between \lstinline=left=, \lstinline=center= and \lstinline=right=. -\end{description} +\end{lstlisting} +\end{enumerate} \begin{Example} - \begin{rxnscheme}[scale=2]{Big scheme} + \begin{rxnscheme}[,,,2]{Big scheme} \large\setatomsep{3.5em} - \reactand{ \chemfig{=[::30]-[::-60]OH} } - \arrow[type={<=>}]{}{} - \reactand{ \chemfig{-[::30]=[::-60]O} } + \reactant{ \chemfig{=[::30]-[::-60]OH} } + \arrow[,<=>]{}{} + \reactant{ \chemfig{-[::30]=[::-60]O} } \end{rxnscheme} - \begin{rxnscheme}[scale=.5]{Small scheme} + \begin{rxnscheme}[,,,.5]{Small scheme} \tiny\setatomsep{1em} - \reactand{ \chemfig{=[::30]-[::-60]OH} } - \arrow[type={<=>}]{}{} - \reactand{ \chemfig{-[::30]=[::-60]O} } + \reactant{ \chemfig{=[::30]-[::-60]OH} } + \arrow[,<=>]{}{} + \reactant{ \chemfig{-[::30]=[::-60]O} } \end{rxnscheme} \begin{rxnscheme}{center} - \reactand{center}\arrow{}{}\reactand{centered} + \reactant{center}\arrow{}{}\reactant{centered} \end{rxnscheme} - \begin{rxnscheme}[align=right]{right} - \reactand{right}\arrow{}{}\reactand{raggedleft} + \begin{rxnscheme}[,,right]{right} + \reactant{right}\arrow{}{}\reactant{raggedleft} \end{rxnscheme} - \begin{rxnscheme}[align=left]{left} - \reactand{left}\arrow{}{}\reactand{raggedright} + \begin{rxnscheme}[,,left]{left} + \reactant{left}\arrow{}{}\reactant{raggedright} \end{rxnscheme} \end{Example} +\index{rxnscheme!options|)} -\subsubsection{Customizing rxnscheme} -\paragraph{Style} -If you don't like the style of \lstinline=rxnscheme= you can change it by using -\begin{Verbatim} +\subsubsection{Customizing rxnscheme}\index{rxnscheme!customize|(} +\paragraph{Style}\index{rxnscheme!customize!style} +If you don't like the style of \lstinline+rxnscheme+ you can change it by using +\begin{lstlisting} \floatstyle{<new style>} \restylefloat{rxnfloat} -\end{Verbatim} +\end{lstlisting} There are different possible styles, privided by the `float' package: \begin{description} \vitem=plain= without any special formatting, the caption is below the object \vitem=plaintop= like \lstinline=plain=, but the caption is placed above the object \vitem=boxed= the object is boxed, the caption placed below - \vitem=ruled= the caption is placed above the object framed by to rules, one above and one below, another rule frames the object below; default for \lstinline=rxnscheme= + \vitem=ruled= the caption is placed above the object framed by to rules, one above and one below, another rule frames the object below; default for \lstinline+rxnscheme+ \end{description} \begin{Example} \begin{rxnscheme}{ruled} - \reactand{default style} + \reactant{default style} \end{rxnscheme} \floatstyle{boxed} \restylefloat{rxnfloat} \begin{rxnscheme}{boxed} - \reactand{framed object} + \reactant{framed object} \end{rxnscheme} \floatstyle{plain} \restylefloat{rxnfloat} \begin{rxnscheme}{plain} - \reactand{without any special formatting} + \reactant{without any special formatting} \end{rxnscheme} \end{Example} \floatstyle{ruled} \restylefloat{rxnfloat} -\paragraph{Placement} +\paragraph{Placement}\index{rxnscheme!customize!placement} Usually floating environments have an optional argument for their placement. \lstinline=rxnscheme='s default placement is \lstinline=H= which means, it is placed \emph{exactly here}. If you want to change it into \lstinline=htp= or something, you can use -\begin{Verbatim} +\begin{lstlisting} \floatplacement{rxnfloat}{<placement>} -\end{Verbatim} +\end{lstlisting} It's easier, though, loading \mC with the `placement' option: -\begin{Verbatim} +\begin{lstlisting} \usepackage[placement=<placement>]{mychemistry} -\end{Verbatim} -This will change the default placement behaviour from \lstinline=H= to \lstinline=<placement>=. You can also change the placement behaviour of just one \lstinline=rxnscheme= environment by using the placement key: -\begin{Verbatim} - \begin{rxnscheme}[placement=<placement>]{<caption>} +\end{lstlisting} +This will change the default placement behaviour from \lstinline=H= to \lstinline=<placement>=. You can also change the placement behaviour of just one \lstinline+rxnscheme+ environment by using the placement option: +\begin{lstlisting} + \begin{rxnscheme}[,<placement>]{<caption>} ... \end{rxnscheme} -\end{Verbatim} +\end{lstlisting} -\paragraph{Name}\label{par:rxnscheme_name} +\paragraph{Name}\label{par:rxnscheme_name}\index{rxnscheme!customize!name} If you want to change the name of reaction scheme\footnote{You probably do. You reading the English documention means probably, that you're not German.}, you can do that with -\begin{Verbatim} +\begin{lstlisting} \setschemename{<new name>} -\end{Verbatim} +\end{lstlisting} The default name is "Reaktionschema" or, with package option `english', "Reaction scheme". -\paragraph{Counter} +\paragraph{Counter}\index{rxnscheme!customize!counter} The counter can be changed just as usual. For example by using -\begin{Verbatim} +\begin{lstlisting} \makeatletter \@addtoreset{rxnfloat}{section} \makeatletter \renewcommand{\therxnscheme}{\arabic{section}.\arabic{rxnscheme}} -\end{Verbatim} -the counter is reset with every new section an looks like \lstinline=section.rxnscheme=. Please be aware, that you have to write \lstinline=\@addtoreset= between \lstinline=\makeatletter= and \lstinline=\makeatother= because of the {@}. -\paragraph{List of schemes} +\end{lstlisting} +the counter is reset with every new section an looks like \lstinline+section.rxnscheme+. Please be aware, that you have to write \lstinline=\@addtoreset= between \lstinline=\makeatletter= and \lstinline=\makeatother= because of the {@}. +\paragraph{List of schemes}\index{rxnscheme!customize!list} By writing -\begin{Verbatim} +\begin{lstlisting} \listof{rxnfloat}{<title>} -\end{Verbatim} -you can create a list of all schemes created with \lstinline=rxnscheme=. +\end{lstlisting} +you can create a list of all schemes created with \lstinline+rxnscheme+. \begin{SideBySideExample} \listof{rxnfloat}{Reaction schemes} \end{SideBySideExample} +\index{rxnscheme!customize|)}\index{rxnscheme|)} -\subsection{setarrowlength}\label{ssec:setarrowlength} -\NEU% +\subsection{setarrowlength}\label{ssec:setarrowlength}\index{setarrowlength|(}\index{commands!setarrowlength} The default length of an reaction arrow is \SI{5.0}{\emlength} or $5.0\cdot\sqrt{2}\,\si{\emlength}$ for the diagonal ones. You can change these values using -\begin{Verbatim} +\begin{lstlisting} \setarrowlength{<length>} -\end{Verbatim} +\end{lstlisting} into \UseVerb{arrowlength} or $\text{\UseVerb{arrowlength}}\cdot\sqrt{2}$, respectively. Mind the fact that you have to use a length unit. If you leave the argument empty, the length is reset to default. {\bfseries This command replaces \lstinline=\arrowlength= from earlier versions.} +\index{setarrowlength|)} -\subsection{setatomsize}\label{ssec:setatomsize} -\NEU% +\subsection{setatomsize}\label{ssec:setatomsize}\index{setatomsize|(}\index{commands!setatomsize} With -\begin{Verbatim} +\begin{lstlisting} \setatomsize{<font size>} -\end{Verbatim} +\end{lstlisting} you can change the font size of the atom groups. Default value is \lstinline=\small=. If you leave the argument empty, the size is reset to default. {\bfseries This command replaces \lstinline=\atomsize= from earlier versions.} +\index{setatomsize|)} -\subsection{setbondlength}\label{ssec:setbondlength} -\NEU% +\subsection{setbondlength}\label{ssec:setbondlength}\index{setbondlength|(}\index{commands!setbondlength} With -\begin{Verbatim} +\begin{lstlisting} \setbondlength{<length>} -\end{Verbatim} +\end{lstlisting} you can change \lstinline=\setatomsep{<length>}= for all \CF formul\ae\ \emph{inside} of the\\ \mC environments. Default value is \SI{1.8}{\emlength}. If you leave the argument empty, the length is reset to default. {\bfseries This command replaces \lstinline=\bondlength= from earlier versions.} +\index{setbondlength|)} -\subsection{setbondshape}\label{ssec:setbondshape} +\subsection{setarrowline}\label{ssec:setarrowline}\index{setarrowline|(}\index{Befehle!setarrowline} +\NEU% +With the command +\begin{lstlisting} + \setarrowline{<value>} +\end{lstlisting} +the thickness of the arrows can be customized. Possible values are + \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} +The values \lstinline+very thick+ and \lstinline+ultra thick+ should not be used. + +This command also applies to \lstinline+\merge+\index{merge}. +\index{setarrowline|)} + +\subsection{setbondshape}\label{ssec:setbondshape}\index{setbondshape|(}\index{commands!setbondshape} With -\begin{Verbatim} +\begin{lstlisting} \setbondshape{<base length>}{<dash thickness>}{<dash spacing>} -\end{Verbatim} +\end{lstlisting} you can change \lstinline=\setcrambond{<base length>}{<dash thickness>}{<dash spacing>}= for all \CF formul\ae\ \emph{inside} of the \mC environments. Default values are (in this order) \SI{3}{\pt}, \SI{.5}{\pt} and \SI{1}{\pt}. If you leave an argument empty, the value is reset to default. {\bfseries This command replaces \lstinline=\bondshape= from earlier versions.} +\index{setbondshape|)} + +\subsection{setmergelength}\label{ssec:setmergelength}\index{setmergelength|(}\index{commands!setmergelength} +\NEU% +With +\begin{lstlisting} + \setmergelength{<länge>} +\end{lstlisting} +you can change the length of the \lstinline+\merge+ arrow. More precisely you can change the length of the arrow from the point of line crossing to the arrow tip (see \ref{ssec:merge}). If you leave an argument empty, the value is reset to default (\SI{3}{\emlength}). +\index{setmergelength|)} -\subsection{setrcndist}\label{ssec:setrcndist} -\Vii% -The nodes within which the reactands an arrows are set have a certain distance between them. The default distance is \SI{1}{\emlength}. If you want to change that, you can use -\begin{Verbatim} +\subsection{setrcndist}\label{ssec:setrcndist}\index{setrcndist|(}\index{commands!setrcndist} +The nodes within which the reactants an arrows are set have a certain distance between them. The default distance is \SI{1}{\emlength}. If you want to change that, you can use +\begin{lstlisting} \setrcndist{<länge>} -\end{Verbatim} +\end{lstlisting} If you leave the argument empty, the distance is reset to \SI{1}{\emlength}. \begin{SideBySideExample} \setrcndist{2em} \begin{rxn} - \reactand{A}\arrow{}{} + \reactant{A}\arrow{}{} \end{rxn} \setrcndist{} \begin{rxn} - \reactand{A}\arrow{}{} + \reactant{A}\arrow{}{} \end{rxn} \end{SideBySideExample} +\index{setrcndist|)} -\subsection{setrxnalign/setschemealign}\label{ssec:setrxnalign}\label{ssec:setschemealign} -\Vii% +\subsection{setrxnalign/setschemealign}\label{ssec:setrxnalign}\label{ssec:setschemealign}\index{setrxnalign|(}\index{commands!setrxnalign}\index{setschemealign|(}\index{commands!setschemealign} With the commands -\begin{Verbatim} +\begin{lstlisting} \setrxnalign{<alignment>} \setschemealign{<alignment>} -\end{Verbatim} -The default alignment behaviour of \lstinline=rxn= and \lstinline=rxnscheme= (see \ref{sssec:rxn_optionen} \&\ \ref{sssec:rxnscheme_optionen}) can be set. You can choose between \lstinline=left=, \lstinline=center= and \lstinline=right=. +\end{lstlisting} +The default alignment behaviour of \lstinline+rxn+ and \lstinline+rxnscheme+ (see \ref{sssec:rxn_optionen} \&\ \ref{sssec:rxnscheme_optionen}) can be set. You can choose between \lstinline=left=, \lstinline=center= and \lstinline=right=. If you leave the argument empty, \mC's default behaviour (\lstinline=center=) is restored. \begin{Example} \setrxnalign{right} \begin{rxn} - \reactand{A}\arrow{}{}\reactand{B} + \reactant{A}\arrow{}{}\reactant{B} \end{rxn} \setrxnalign{} \begin{rxn} - \reactand{A}\arrow{}{}\reactand{B} + \reactant{A}\arrow{}{}\reactant{B} \end{rxn} \end{Example} +\index{setrxnalign|)}\index{setschemealign|)} -\subsection{setschemename}\label{ssec:setschemename} +\subsection{setschemename}\label{ssec:setschemename}\index{setschemename|(}\index{commands!setschemename} See \ref{par:rxnscheme_name}. +\index{setschemename|)} -\subsection{transition}\label{ssec:transition} -\NEU\lstinline=\transition= works exactly like \lstinline=\reactand= (see \ref{ssec:reactand}). \textbf{If you used earlier versions of \mC please be aware, that the command syntax has changed.} -\begin{Verbatim} +\subsection{transition}\label{ssec:transition}\index{transition|(}\index{commands!transition} +\lstinline=\transition= works exactly like \lstinline=\reactant= (see \ref{ssec:reactant}). \textbf{If you used earlier versions of \mC please be aware, that the command syntax has changed with v1.3.} +\begin{lstlisting} \transition[<alignment>,<anchor>,<tikz>]{<formula>} -\end{Verbatim} +\end{lstlisting} \begin{SideBySideExample} \begin{rxn} - \reactand{ \ce{H2 + I2} } - \arrow[type={<=>},length=.5,direction=below]{}{} + \reactant{ \ce{H2 + I2} } + \arrow[below,<=>,.5]{}{} \transition[below]{ \chemfig[dotted][]{H?-I-[2]I-[4]H?} } - \arrow[type={<=>},length=.5,direction=below]{}{} - \reactand[below]{ \ce{2 HI} } + \arrow[below,<=>,.5]{}{} + \reactant[below]{ \ce{2 HI} } \end{rxn} \end{SideBySideExample} +\index{transition|)} \section{Examples} \subsection{Addition Reaction}\label{ssec:addition} A simple reaction scheme with two different products. \begin{rxnscheme}{addition reaction} - \reactand{ \chemfig{=_[::-30]-[::60](=[::60]O)-[::-60]} } + \reactant{ \chemfig{=_[::-30]-[::60](=[::60]O)-[::-60]} } \arrow{ $+ \Hpl$ }{} \mesomeric[,rf]{ - \reactand{ \chemfig{=_[:-30]-[::60](-[::60]OH)(-[::-120,.3,,,white]\oplus)-[::-60]} } + \reactant{ \chemfig{=_[:-30]-[::60](-[::60]OH)(-[::-120,.3,,,white]\oplus)-[::-60]} } \marrow[below] - \reactand[below]{ \chemfig{\oplus-[6,.3,,,white]-[:-30]=_[::60](-[::60]OH)-[::-60]} } + \reactant[below]{ \chemfig{\oplus-[6,.3,,,white]-[:-30]=_[::60](-[::60]OH)-[::-60]} } } \branch[right=of rf,,yshift=3em]{ \arrow{}{} - \reactand{ \chemname{\chemfig{=_[:-30]-[::60](-[::60]OH)(-[::-120]R)-[::-60]}}{1,2-adduct} } + \reactant{ \chemname{\chemfig{=_[:-30]-[::60](-[::60]OH)(-[::-120]R)-[::-60]}}{1,2-adduct} } } \branch[right=of rf,,yshift=-5em]{ \arrow{}{} - \reactand{ \chemname{\chemfig{R-[6]-[:-30]=_[::60](-[::60]OH)-[::-60]}}{1,4-adduct} } + \reactant{ \chemname{\chemfig{R-[6]-[:-30]=_[::60](-[::60]OH)-[::-60]}}{1,4-adduct} } } \end{rxnscheme} - -Let's take a closer look, step after step. At first we write the first reactand and the reaction arrow. -\begin{Verbatim} - \reactand{ \chemfig{=_[::-30]-[::60](=[::60]O)-[::-60]} } +Let's take a closer look, step after step. At first we write the first reactant and the reaction arrow. +\begin{lstlisting} + \reactant{ \chemfig{=_[::-30]-[::60](=[::60]O)-[::-60]} } \arrow{ $+ \Hpl$ }{} -\end{Verbatim} +\end{lstlisting} \begin{rxn} - \reactand{ \chemfig{=_[::-30]-[::60](=[::60]O)-[::-60]} } + \reactant{ \chemfig{=_[::-30]-[::60](=[::60]O)-[::-60]} } \arrow{ $+ \Hpl$ }{} \end{rxn} -Then we write the resonance formul\ae. The \lstinline=\mesomeric= gets the anchor \lstinline=rf= (line 7). -\begin{Verbatim}[firstnumber=3] +Then we write the resonance formul\ae. The \lstinline=\mesomeric=\index{mesomeric}\index{marrow} gets the anchor \lstinline=rf= (line 7). +\begin{lstlisting}[firstnumber=3] \mesomeric[,rf]{ - \reactand{ \chemfig{=_[:-30]-[::60](-[::60]OH)(-[::-120,.3,,,white]\oplus)-[::-60]} } + \reactant{ \chemfig{=_[:-30]-[::60](-[::60]OH)(-[::-120,.3,,,white]\oplus)-[::-60]} } \marrow[below] - \reactand[below]{ \chemfig{\oplus-[6,.3,,,white]-[:-30]=_[::60](-[::60]OH)-[::-60]} } + \reactant[below]{ \chemfig{\oplus-[6,.3,,,white]-[:-30]=_[::60](-[::60]OH)-[::-60]} } } -\end{Verbatim} +\end{lstlisting} \begin{rxn} - \reactand{ \chemfig{=_[::-30]-[::60](=[::60]O)-[::-60]} } + \reactant{ \chemfig{=_[::-30]-[::60](=[::60]O)-[::-60]} } \arrow{ $+ \Hpl$ }{} \mesomeric[,rf]{ - \reactand{ \chemfig{=_[:-30]-[::60](-[::60]OH)(-[::-120,.3,,,white]\oplus)-[::-60]} } + \reactant{ \chemfig{=_[:-30]-[::60](-[::60]OH)(-[::-120,.3,,,white]\oplus)-[::-60]} } \marrow[below] - \reactand[below]{ \chemfig{\oplus-[6,.3,,,white]-[:-30]=_[::60](-[::60]OH)-[::-60]} } + \reactant[below]{ \chemfig{\oplus-[6,.3,,,white]-[:-30]=_[::60](-[::60]OH)-[::-60]} } } \end{rxn} -Now comes the 1,2-adduct, placed in a branch referring \lstinline=rf=, shifted above with yshift: -\begin{Verbatim}[firstnumber=8] +Now comes the 1,2-adduct, placed in a branch\index{branch} referring \lstinline+rf+, shifted above with \lstinline+yshift+\index{yshift}: +\begin{lstlisting}[firstnumber=8] \branch[right=of rf,,yshift=3em]{ \arrow{}{} - \reactand{ \chemname{\chemfig{=_[:-30]-[::60](-[::60]OH)(-[::-120]R)-[::-60]}}{1,2-adduct} } + \reactant{ \chemname{\chemfig{=_[:-30]-[::60](-[::60]OH)(-[::-120]R)-[::-60]}}{1,2-adduct} } } -\end{Verbatim} +\end{lstlisting} \begin{rxn} - \reactand{ \chemfig{=_[::-30]-[::60](=[::60]O)-[::-60]} } + \reactant{ \chemfig{=_[::-30]-[::60](=[::60]O)-[::-60]} } \arrow{ $+ \Hpl$ }{} \mesomeric[,rf]{ - \reactand{ \chemfig{=_[:-30]-[::60](-[::60]OH)(-[::-120,.3,,,white]\oplus)-[::-60]} } + \reactant{ \chemfig{=_[:-30]-[::60](-[::60]OH)(-[::-120,.3,,,white]\oplus)-[::-60]} } \marrow[below] - \reactand[below]{ \chemfig{\oplus-[6,.3,,,white]-[:-30]=_[::60](-[::60]OH)-[::-60]} } + \reactant[below]{ \chemfig{\oplus-[6,.3,,,white]-[:-30]=_[::60](-[::60]OH)-[::-60]} } } \branch[right=of rf,,yshift=3em]{ \arrow{}{} - \reactand{ \chemname{\chemfig{=_[:-30]-[::60](-[::60]OH)(-[::-120]R)-[::-60]}}{1,2-adduct} } + \reactant{ \chemname{\chemfig{=_[:-30]-[::60](-[::60]OH)(-[::-120]R)-[::-60]}}{1,2-adduct} } } \end{rxn} -At last we write the branch containing the 1,4-adduct, also referencing \lstinline=rf=, shifted below with yshift: -\begin{Verbatim}[firstnumber=12] +At last we write the branch\index{branch} containing the 1,4-adduct, also referencing \lstinline+rf+, shifted below with \lstinline+yshift+\index{yshift}: +\begin{lstlisting}[firstnumber=12] \branch[right=of rf,,yshift=-5em]{ \arrow{}{} - \reactand{ \chemname{\chemfig{R-[6]-[:-30]=_[::60](-[::60]OH)-[::-60]}}{1,4-adduct} } + \reactant{ \chemname{\chemfig{R-[6]-[:-30]=_[::60](-[::60]OH)-[::-60]}}{1,4-adduct} } } -\end{Verbatim} +\end{lstlisting} \begin{rxn} - \reactand{ \chemfig{=_[::-30]-[::60](=[::60]O)-[::-60]} } + \reactant{ \chemfig{=_[::-30]-[::60](=[::60]O)-[::-60]} } \arrow{ $+ \Hpl$ }{} \mesomeric[,rf]{ - \reactand{ \chemfig{=_[:-30]-[::60](-[::60]OH)(-[::-120,.3,,,white]\oplus)-[::-60]} } + \reactant{ \chemfig{=_[:-30]-[::60](-[::60]OH)(-[::-120,.3,,,white]\oplus)-[::-60]} } \marrow[below] - \reactand[below]{ \chemfig{\oplus-[6,.3,,,white]-[:-30]=_[::60](-[::60]OH)-[::-60]} } + \reactant[below]{ \chemfig{\oplus-[6,.3,,,white]-[:-30]=_[::60](-[::60]OH)-[::-60]} } } \branch[right=of rf,,yshift=3em]{ \arrow{}{} - \reactand{ \chemname{\chemfig{=_[:-30]-[::60](-[::60]OH)(-[::-120]R)-[::-60]}}{1,2-adduct} } + \reactant{ \chemname{\chemfig{=_[:-30]-[::60](-[::60]OH)(-[::-120]R)-[::-60]}}{1,2-adduct} } } \branch[right=of rf,,yshift=-5em]{ \arrow{}{} - \reactand{ \chemname{\chemfig{R-[6]-[:-30]=_[::60](-[::60]OH)-[::-60]}}{1,4-adduct} } + \reactant{ \chemname{\chemfig{R-[6]-[:-30]=_[::60](-[::60]OH)-[::-60]}}{1,4-adduct} } } \end{rxn} The complete code looks like this: -\begin{Verbatim} +\begin{lstlisting} \begin{rxnscheme}{addition reaction} - \reactand{ \chemfig{=_[::-30]-[::60](=[::60]O)-[::-60]} } + \reactant{ \chemfig{=_[::-30]-[::60](=[::60]O)-[::-60]} } \arrow{ $+ \Hpl$ }{} \mesomeric[,rf]{ - \reactand{ \chemfig{=_[:-30]-[::60](-[::60]OH)(-[::-120,.3,,,white]\oplus)-[::-60]} } + \reactant{ \chemfig{=_[:-30]-[::60](-[::60]OH)(-[::-120,.3,,,white]\oplus)-[::-60]} } \marrow[below] - \reactand[below]{ \chemfig{\oplus-[6,.3,,,white]-[:-30]=_[::60](-[::60]OH)-[::-60]} } + \reactant[below]{ \chemfig{\oplus-[6,.3,,,white]-[:-30]=_[::60](-[::60]OH)-[::-60]} } } \branch[right=of rf,,yshift=3em]{ \arrow{}{} - \reactand{ \chemname{\chemfig{=_[:-30]-[::60](-[::60]OH)(-[::-120]R)-[::-60]}}{1,2-adduct} } + \reactant{ \chemname{\chemfig{=_[:-30]-[::60](-[::60]OH)(-[::-120]R)-[::-60]}}{1,2-adduct} } } \branch[right=of rf,,yshift=-5em]{ \arrow{}{} - \reactand{ \chemname{\chemfig{R-[6]-[:-30]=_[::60](-[::60]OH)-[::-60]}}{1,4-adduct} } + \reactant{ \chemname{\chemfig{R-[6]-[:-30]=_[::60](-[::60]OH)-[::-60]}}{1,4-adduct} } } \end{rxnscheme}} -\end{Verbatim} +\end{lstlisting} -\newpage \subsection{Mesomerism} We want to display the following reaction scheme: -\begin{rxnscheme}[scale=.8]{electrophilic substitution} +\begin{rxnscheme}[,,,.8]{electrophilic substitution} \setatomsep{1.6em} - \reactand[,start]{ \chemname{\chemfig{*6(-=-=(-[,,,,white]\phantom{Br})-=)}}{benzene \compound{benzene}} } + \reactant[,start]{ \chemname{\chemfig{*6(-=-=(-[,,,,white]\phantom{Br})-=)}}{benzene \compound{benzene}} } \branch[below=of start]{ - \arrow[direction=below,name=pfeil_a,both]{\ce{Br2 / AlBr3}}{$-\ce{AlBr4\om}$} + \arrow[below,,,pfeil_a,both]{\ce{Br2 / AlBr3}}{$-\ce{AlBr4\om}$} } \branch[below=of pfeil_a,mesomerism,xshift=8.5em]{ \mesomeric{ - \reactand{ + \reactant{ \chemfig{*6(=[@{e1}]-=-(-[:120]Br)(-[:60]H)-(-[:-30,.4,,,white]\oplus)-[@{e2}])} \elmove{e1}{60:4mm}{e2}{0:4mm} } \marrow - \reactand{ + \reactant{ \chemfig{*6(-(-[:90,.4,,,white]\oplus)-[@{e4}]=[@{e3}]-(-[:120]Br)(-[:60]H)-=)} \elmove{e3}{180:4mm}{e4}{150:4mm} } \marrow - \reactand{ + \reactant{ \chemfig{*6(-=-(-[:-150,.4,,,white]\oplus)-(-[:120]Br)(-[:60]H)-=)} } } } \branch[above=of mesomerism,,xshift=7.25em]{ - \arrow[direction=above]{$-\Hpl$}{} + \arrow[above]{$-\Hpl$}{} } - \arrow[length=2.6]{}{} - \reactand{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \compound{bromobenzene}} } + \arrow[,,2.6]{}{} + \reactant{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \compound{bromobenzene}} } \end{rxnscheme} - -First we write the main reaction. To do so, we use the commands \lstinline=\reactand=, \lstinline=\arrow= and the environment \lstinline=\begin{rxn} ... \end{rxn}=. -\begin{Verbatim} - \begin{rxn} - \reactand{ +First we write the main reaction. To do so, we use the commands \lstinline=\reactant=\index{reactant}, \lstinline=\arrow=\index{arrow} and the environment \lstinline=\begin{rxnscheme} ... \end{rxnscheme}=\index{rxnscheme}. +\begin{lstlisting} + \begin{rxnscheme}{electrophilic substitution} + \reactant{ \chemname{\chemfig{*6(-=-=-=)}}{benzene \compound{benzene}} } \arrow{}{} - \reactand{ + \reactant{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \compound{bromobenzene}} } - \end{rxn} -\end{Verbatim} + \end{rxnscheme} +\end{lstlisting} \begin{rxn} - \reactand{ + \reactant{ \chemname{\chemfig{*6(-=-=-=)}}{benzene \compound{benzene}} } \arrow{}{} - \reactand{ + \reactant{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \compound{bromobenzene}} } \end{rxn} Now we make it a little bit smaller: -\begin{Verbatim} - \begin{rxn}!![scale=.8] - \setatomsep{1.6em}!! - \reactand{ +\begin{lstlisting} + \begin{rxnscheme}[,,,!!.8!!]{electrophilic substitution} + !!\setatomsep{1.6em}!! + \reactant{ \chemname{\chemfig{*6(-=-=-=)}}{benzene \compound{benzene}} } \arrow{}{} - \reactand{ + \reactant{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \compound{bromobenzene}} } - \end{rxn} -\end{Verbatim} - \begin{rxn}[scale=.8] + \end{rxnscheme} +\end{lstlisting} + \begin{rxn}[,.8] \setatomsep{1.6em} - \reactand{ + \reactant{ \chemname{\chemfig{*6(-=-=-=)}}{benzene \compound{benzene}} } \arrow{}{} - \reactand{ + \reactant{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \compound{bromobenzene}} } \end{rxn} -We have two possibilities to align both benzene rings at the same height. Either we shift the second one up using \TikZ code: -\begin{Verbatim}[firstnumber=7] - \reactand[,,!!yshift=1em!!]{ +We have two possibilities to align both benzene rings at the same height. Either we shift the second one up using \TikZ\index{tikz@\TikZ} code: +\begin{lstlisting}[firstnumber=7] + \reactant[,,!!yshift=1em!!]{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \compound{bromobenzene}} } -\end{Verbatim} -This is not the best solution, because the arrow isn't centered with respect to the rings. +\end{lstlisting} +This is not the best solution, because the arrow\index{arrow} isn't centered with respect to the rings. \begin{rxn} - \reactand{ + \reactant{ \chemname{\chemfig{*6(-=-=-=)}}{benzene \compound{benzene}} } \arrow{}{} - \reactand[,,yshift=1em]{ + \reactant[,,yshift=1em]{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \compound{bromobenzene}} } \end{rxn} -The second possibility would be to shift the first ring down. We can't achieve that by using \TikZ code, because the following arrow and reactand align themselves with respect to the reactand or arrow directly before. But we can write an invisible bromine to the first benzene to do the trick: -\begin{Verbatim}[firstnumber=3] - \reactand{ +The second possibility would be to shift the first ring down. We can't achieve that by using \TikZ\index{tikz@\TikZ} code, because the following arrow\index{arrow} and reactant\index{reactant} align themselves with respect to the reactant or arrow directly before. But we can write an invisible bromine to the first benzene to do the trick: +\begin{lstlisting}[firstnumber=3] + \reactant{ \chemname{\chemfig{*6(-=-=!!(-[,,,,white]\phantom{Br})!!-=)}}{benzene \compound{benzene}} } -\end{Verbatim} +\end{lstlisting} \begin{rxn} - \reactand{ + \reactant{ \chemname{\chemfig{*6(-=-=(-[,,,,white]\phantom{Br})-=)}}{benzene \compound{benzene}} } \arrow{}{} - \reactand{ + \reactant{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \compound{bromobenzene}} } \end{rxn} -We need to give the first reactand an anchor in order to refer to it with the branch. - \begin{Verbatim} - \begin{rxn}[scale=.8] +We need to give the first reactant an anchor in order to refer to it with the branch\index{branch}. + \begin{lstlisting} + \begin{rxnscheme}[,,,.8]{electrophilic substitution} \setatomsep{1.6em} - \reactand[,!!start!!]{ + \reactant[,!!start!!]{ \chemname{\chemfig{*6(-=-=(-[,,,,white]\phantom{Br})-=)}}{benzene \compound{benzene}} } \branch[!!below=of start!!]{ - \arrow[!!direction=below!!,both]{ \ce{Br2 / AlBr3} }{ $-\ce{AlBr4\om}$ } + \arrow[!!below!!,,,,both]{ \ce{Br2 / AlBr3} }{ $-\ce{AlBr4\om}$ } } \arrow{}{} - \reactand{ + \reactant{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \compound{bromobenzene}} } - \end{rxn} -\end{Verbatim} -So the first reactand gets the anchor \lstinline=start= and the branch refers to it with \lstinline+below=of start+. For the reaction arrow to point below, we need to use the key \lstinline+direction=below+. Now we get: - \begin{rxn}[scale=.8] + \end{rxnscheme} +\end{lstlisting} +So the first reactant gets the anchor \lstinline=start= and the branch\index{branch} refers to it with \lstinline+below=of start+. For the reaction arrow to point below, we need to use the option \lstinline+below+. Now we get: + \begin{rxn}[,.8] \setatomsep{1.6em} - \reactand[,start]{ + \reactant[,start]{ \chemname{\chemfig{*6(-=-=(-[,,,,white]\phantom{Br})-=)}}{benzene \compound{benzene}} } \branch[below=of start]{ - \arrow[direction=below,both]{\ce{Br2 / AlBr3}}{$-\ce{AlBr4\om}$} + \arrow[below,,,,both]{\ce{Br2 / AlBr3}}{$-\ce{AlBr4\om}$} } \arrow{}{} - \reactand{ + \reactant{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \compound{bromobenzene}} } \end{rxn} -Next we write the resonance formul\ae\ of the Wheland intermediate. To do that we use three further commands: \lstinline=\mesomeric=, \lstinline=\marrow= and \lstinline=\elmove=. -\begin{Verbatim} +Next we write the resonance formul\ae\ of the Wheland intermediate. To do that we use three further commands: \lstinline=\mesomeric=\index{mesomeric}, \lstinline=\marrow=\index{marrow} and \lstinline=\elmove=\index{elmove}. +\begin{lstlisting} !!\mesomeric{!! - \reactand{ + \reactant{ \chemfig{*6(=[@{e1}]-=-(-[:120]Br)(-[:60]H)-(-[:-30,.4,,,white]\oplus)-[@{e2}])} !!\elmove{e1}{60:4mm}{e2}{0:4mm}!! } !!\marrow!! - \reactand{ + \reactant{ \chemfig{*6(-(-[:90,.4,,,white]\oplus)-[@{e4}]=[@{e3}]-(-[:120]Br)(-[:60]H)-=)} \elmove{e3}{180:4mm}{e4}{150:4mm} } \marrow - \reactand{ + \reactant{ \chemfig{*6(-=-(-[:-150,.4,,,white]\oplus)-(-[:120]Br)(-[:60]H)-=)} } !!}!! -\end{Verbatim} -\begin{rxn}[scale=.8] +\end{lstlisting} +\begin{rxn}[,.8] \setatomsep{1.6em} \mesomeric{ - \reactand{ + \reactant{ \chemfig{*6(=[@{e1}]-=-(-[:120]Br)(-[:60]H)-(-[:-30,.4,,,white]\oplus)-[@{e2}])} \elmove{e1}{60:4mm}{e2}{0:4mm} } \marrow - \reactand{ + \reactant{ \chemfig{*6(-(-[:90,.4,,,white]\oplus)-[@{e4}]=[@{e3}]-(-[:120]Br)(-[:60]H)-=)} \elmove{e3}{180:4mm}{e4}{150:4mm} } \marrow - \reactand{ + \reactant{ \chemfig{*6(-=-(-[:-150,.4,,,white]\oplus)-(-[:120]Br)(-[:60]H)-=)} } } \end{rxn} -When we write the code \emph{inside} of the branch, directly after the arrow, we get the following: -\begin{rxn}[scale=.8] +When we write the code \emph{inside} of the branch\index{branch}, directly after the arrow, we get the following: +\begin{rxn}[,.8] \setatomsep{1.6em} - \reactand[,start]{ + \reactant[,start]{ \chemname{\chemfig{*6(-=-=(-[,,,,white]\phantom{Br})-=)}}{benzene \compound{benzene}} } \branch[below=of start]{ - \arrow[direction=below,both]{\ce{Br2 / AlBr3}}{$-\ce{AlBr4\om}$} + \arrow[below,,,,both]{\ce{Br2 / AlBr3}}{$-\ce{AlBr4\om}$} \mesomeric{ - \reactand{ + \reactant{ \chemfig{*6(=[@{e1}]-=-(-[:120]Br)(-[:60]H)-(-[:-30,.4,,,white]\oplus)-[@{e2}])} \elmove{e1}{60:4mm}{e2}{0:4mm} } \marrow - \reactand{ + \reactant{ \chemfig{*6(-(-[:90,.4,,,white]\oplus)-[@{e4}]=[@{e3}]-(-[:120]Br)(-[:60]H)-=)} \elmove{e3}{180:4mm}{e4}{150:4mm} } \marrow - \reactand{ + \reactant{ \chemfig{*6(-=-(-[:-150,.4,,,white]\oplus)-(-[:120]Br)(-[:60]H)-=)} } } } \arrow{}{} - \reactand{ + \reactant{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \compound{bromobenzene}} } \end{rxn} This obviously messes everything up. We can try this, though: -\begin{Verbatim} - \begin{rxn}[scale=.8] +\begin{lstlisting} + \begin{rxn}[,.8] \setatomsep{1.6em} - \reactand[,start]{ + \reactant[,start]{ \chemname{\chemfig{*6(-=-=(-[,,,,white]\phantom{Br})-=)}}{benzene \compound{benzene}} } \branch[below=of start]{ - \arrow[direction=below,both]{\ce{Br2 / AlBr3}}{$-\ce{AlBr4\om}$} + \arrow[below,,,,both]{\ce{Br2 / AlBr3}}{$-\ce{AlBr4\om}$} \mesomeric!![below]!!{ - \reactand{ + \reactant{ \chemfig{*6(=[@{e1}]-=-(-[:120]Br)(-[:60]H)-(-[:-30,.4,,,white]\oplus)-[@{e2}])} \elmove{e1}{60:4mm}{e2}{0:4mm} } \marrow - \reactand{ + \reactant{ \chemfig{*6(-(-[:90,.4,,,white]\oplus)-[@{e4}]=[@{e3}]-(-[:120]Br)(-[:60]H)-=)} \elmove{e3}{180:4mm}{e4}{150:4mm} } \marrow - \reactand{ + \reactant{ \chemfig{*6(-=-(-[:-150,.4,,,white]\oplus)-(-[:120]Br)(-[:60]H)-=)} } } } \arrow{}{} - \reactand{ + \reactant{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \compound{bromobenzene}} } \end{rxn} -\end{Verbatim} +\end{lstlisting} The result is better: - \begin{rxn}[scale=.8] + \begin{rxn}[,.8] \setatomsep{1.6em} - \reactand[,start]{ + \reactant[,start]{ \chemname{\chemfig{*6(-=-=(-[,,,,white]\phantom{Br})-=)}}{benzene \compound{benzene}} } \branch[below=of start]{ - \arrow[direction=below,both]{\ce{Br2 / AlBr3}}{$-\ce{AlBr4\om}$} + \arrow[below,,,,both]{\ce{Br2 / AlBr3}}{$-\ce{AlBr4\om}$} \mesomeric[below]{ - \reactand{ + \reactant{ \chemfig{*6(=[@{e1}]-=-(-[:120]Br)(-[:60]H)-(-[:-30,.4,,,white]\oplus)-[@{e2}])} \elmove{e1}{60:4mm}{e2}{0:4mm} } \marrow - \reactand{ + \reactant{ \chemfig{*6(-(-[:90,.4,,,white]\oplus)-[@{e4}]=[@{e3}]-(-[:120]Br)(-[:60]H)-=)} \elmove{e3}{180:4mm}{e4}{150:4mm} } \marrow - \reactand{ + \reactant{ \chemfig{*6(-=-(-[:-150,.4,,,white]\oplus)-(-[:120]Br)(-[:60]H)-=)} } } } \arrow{}{} - \reactand{ + \reactant{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \compound{bromobenzene}} } \end{rxn} -It isn't really what we want, though, because the intermediate is centered below the arrow. In order to be able to shift the whole thing, we place it into a branch of its own. -\begin{Verbatim}[firstnumber=4] +It isn't really what we want, though, because the intermediate is centered below the arrow. In order to be able to shift the whole thing, we place it into a branch\index{branch} of its own. +\begin{lstlisting}[firstnumber=4] ... \branch[below=of start]{ - \arrow[direction=below,both,!!name=arrow_a!!]{\ce{Br2 / AlBr3}}{$-\ce{AlBr4\om}$} + \arrow[below,,,!!arrow_a!!,both]{\ce{Br2 / AlBr3}}{$-\ce{AlBr4\om}$} } !!\branch[below=of arrow_a]{!! \mesomeric{ - \reactand{ + \reactant{ \chemfig{*6(=[@{e1}]-=-(-[:120]Br)(-[:60]H)-(-[:-30,.4,,,white]\oplus)-[@{e2}])} \elmove{e1}{60:4mm}{e2}{0:4mm} } \marrow - \reactand{ + \reactant{ \chemfig{*6(-(-[:90,.4,,,white]\oplus)-[@{e4}]=[@{e3}]-(-[:120]Br)(-[:60]H)-=)} \elmove{e3}{180:4mm}{e4}{150:4mm} } \marrow - \reactand{ + \reactant{ \chemfig{*6(-=-(-[:-150,.4,,,white]\oplus)-(-[:120]Br)(-[:60]H)-=)} } } !!}!! ... -\end{Verbatim} -\begin{rxn}[scale=.8] +\end{lstlisting} +\begin{rxn}[,.8] \setatomsep{1.6em} - \reactand[,start]{\chemname{\chemfig{*6(-=-=(-[,,,,white]\phantom{Br})-=)}}{benzene \compound{benzene}} } + \reactant[,start]{\chemname{\chemfig{*6(-=-=(-[,,,,white]\phantom{Br})-=)}}{benzene \compound{benzene}} } \branch[below=of start]{ - \arrow[direction=below,both,name=arrow_a]{\ce{Br2 / AlBr3}}{$-\ce{AlBr4\om}$} + \arrow[below,,,arrow_a,both]{\ce{Br2 / AlBr3}}{$-\ce{AlBr4\om}$} } \branch[below=of arrow_a]{ \mesomeric[,mesomerism]{ - \reactand{ + \reactant{ \chemfig{*6(=[@{e1}]-=-(-[:120]Br)(-[:60]H)-(-[:-30,.4,,,white]\oplus)-[@{e2}])} \elmove{e1}{60:4mm}{e2}{0:4mm} } \marrow - \reactand{ + \reactant{ \chemfig{*6(-(-[:90,.4,,,white]\oplus)-[@{e4}]=[@{e3}]-(-[:120]Br)(-[:60]H)-=)} \elmove{e3}{180:4mm}{e4}{150:4mm} } \marrow - \reactand{ + \reactant{ \chemfig{*6(-=-(-[:-150,.4,,,white]\oplus)-(-[:120]Br)(-[:60]H)-=)} } } } \arrow{}{} - \reactand{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \compound{bromobenzene}} } + \reactant{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \compound{bromobenzene}} } \end{rxn} -In first sight this isn't better. But by shifting the branch with xshift, we get what we want: -\begin{Verbatim}[firstnumber=4] +In first sight this isn't better. But by shifting the branch with \lstinline+xshift+\index{xshift}, we get what we want: +\begin{lstlisting}[firstnumber=4] ... \branch[below=of start]{ - \arrow[direction=below,both,name=arrow_a]{\ce{Br2 / AlBr3}}{$-\ce{AlBr4\om}$} + \arrow[below,,,arrow_a,both]{\ce{Br2 / AlBr3}}{$-\ce{AlBr4\om}$} } \branch[below=of arrow_a,,!!xshift=8.5em!!]{ \mesomeric{ - \reactand{ + \reactant{ \chemfig{*6(=[@{e1}]-=-(-[:120]Br)(-[:60]H)-(-[:-30,.4,,,white]\oplus)-[@{e2}])} \elmove{e1}{60:4mm}{e2}{0:4mm} } \marrow - \reactand{ + \reactant{ \chemfig{*6(-(-[:90,.4,,,white]\oplus)-[@{e4}]=[@{e3}]-(-[:120]Br)(-[:60]H)-=)} \elmove{e3}{180:4mm}{e4}{150:4mm} } \marrow - \reactand{ + \reactant{ \chemfig{*6(-=-(-[:-150,.4,,,white]\oplus)-(-[:120]Br)(-[:60]H)-=)} } } } ... -\end{Verbatim} -\begin{rxn}[scale=.8] +\end{lstlisting} +\begin{rxn}[,.8] \setatomsep{1.6em} - \reactand[,start]{\chemname{\chemfig{*6(-=-=(-[,,,,white]\phantom{Br})-=)}}{benzene \compound{benzene}} } + \reactant[,start]{\chemname{\chemfig{*6(-=-=(-[,,,,white]\phantom{Br})-=)}}{benzene \compound{benzene}} } \branch[below=of start]{ - \arrow[direction=below,both,name=arrow_a]{\ce{Br2 / AlBr3}}{$-\ce{AlBr4\om}$} + \arrow[below,,,arrow_a,both]{\ce{Br2 / AlBr3}}{$-\ce{AlBr4\om}$} } \branch[below=of arrow_a,mesomerism,xshift=8.5em]{ \mesomeric{ - \reactand{ + \reactant{ \chemfig{*6(=[@{e1}]-=-(-[:120]Br)(-[:60]H)-(-[:-30,.4,,,white]\oplus)-[@{e2}])} \elmove{e1}{60:4mm}{e2}{0:4mm} } \marrow - \reactand{ + \reactant{ \chemfig{*6(-(-[:90,.4,,,white]\oplus)-[@{e4}]=[@{e3}]-(-[:120]Br)(-[:60]H)-=)} \elmove{e3}{180:4mm}{e4}{150:4mm} } \marrow - \reactand{ + \reactant{ \chemfig{*6(-=-(-[:-150,.4,,,white]\oplus)-(-[:120]Br)(-[:60]H)-=)} } } } \arrow{}{} - \reactand{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \compound{bromobenzene}} } + \reactant{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \compound{bromobenzene}} } \end{rxn} The last arrow is also placed in its own branch, so we can shift it where we want. -\begin{Verbatim}[firstnumber=4] +\begin{lstlisting}[firstnumber=4] ... \branch[below=of start]{ - \arrow[direction=below,both,!!name=arrow_a!!]{\ce{Br2 / AlBr3}}{$-\ce{AlBr4\om}$} + \arrow[below,,,!!arrow_a!!,both]{\ce{Br2 / AlBr3}}{$-\ce{AlBr4\om}$} } \branch[below=of arrow_a,!!mesomerism!!,xshift=8.5em]{ \mesomeric{ - \reactand{ + \reactant{ \chemfig{*6(=[@{e1}]-=-(-[:120]Br)(-[:60]H)-(-[:-30,.4,,,white]\oplus)-[@{e2}])} \elmove{e1}{60:4mm}{e2}{0:4mm} } \marrow - \reactand{ + \reactant{ \chemfig{*6(-(-[:90,.4,,,white]\oplus)-[@{e4}]=[@{e3}]-(-[:120]Br)(-[:60]H)-=)} \elmove{e3}{180:4mm}{e4}{150:4mm} } \marrow - \reactand{ + \reactant{ \chemfig{*6(-=-(-[:-150,.4,,,white]\oplus)-(-[:120]Br)(-[:60]H)-=)} } } } \branch[!!above=of mesomerism,,xshift=7.25em!!]{ - \arrow[direction=above]{$-\Hpl$}{} + \arrow[above]{$-\Hpl$}{} } ... -\end{Verbatim} -\begin{rxn}[scale=.8] +\end{lstlisting} +\begin{rxn}[,.8] \setatomsep{1.6em} - \reactand[,start]{\chemname{\chemfig{*6(-=-=(-[,,,,white]\phantom{Br})-=)}}{benzene \compound{benzene}} } + \reactant[,start]{\chemname{\chemfig{*6(-=-=(-[,,,,white]\phantom{Br})-=)}}{benzene \compound{benzene}} } \branch[below=of start]{ - \arrow[direction=below,both,name=arrow_a]{\ce{Br2 / AlBr3}}{$-\ce{AlBr4\om}$} + \arrow[below,,,arrow_a,both]{\ce{Br2 / AlBr3}}{$-\ce{AlBr4\om}$} } \branch[below=of arrow_a,mesomerism,xshift=8.5em]{ \mesomeric{ - \reactand{ + \reactant{ \chemfig{*6(=[@{e1}]-=-(-[:120]Br)(-[:60]H)-(-[:-30,.4,,,white]\oplus)-[@{e2}])} \elmove{e1}{60:4mm}{e2}{0:4mm} } \marrow - \reactand{ + \reactant{ \chemfig{*6(-(-[:90,.4,,,white]\oplus)-[@{e4}]=[@{e3}]-(-[:120]Br)(-[:60]H)-=)} \elmove{e3}{180:4mm}{e4}{150:4mm} } \marrow - \reactand{ + \reactant{ \chemfig{*6(-=-(-[:-150,.4,,,white]\oplus)-(-[:120]Br)(-[:60]H)-=)} } } } \branch[above=of mesomerism,,xshift=7.25em]{ - \arrow[direction=above]{$-\Hpl$}{} + \arrow[above]{$-\Hpl$}{} } \arrow{}{} - \reactand{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \compound{bromobenzene}} } + \reactant{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \compound{bromobenzene}} } \end{rxn} -Now we're almost there: the arrow of the main reaction still is too short. -\begin{Verbatim} - \begin{rxn}[scale=.8] +Now we're almost there: the arrow of the main reaction still is too short. The complete code: +\begin{lstlisting} + \begin{rxnscheme}[,,,.8]{electrophilic substitution} \setatomsep{1.6em} - \reactand[,start]{\chemname{\chemfig{*6(-=-=(-[,,,,white]\phantom{Br})-=)}}{benzene \compound{benzene}} } + \reactant[,start]{\chemname{\chemfig{*6(-=-=(-[,,,,white]\phantom{Br})-=)}}{benzene \compound{benzene}} } \branch[below=of start]{ - \arrow[direction=below,both,name=arrow_a]{\ce{Br2 / AlBr3}}{$-\ce{AlBr4\om}$} + \arrow[below,,,arrow_a,both]{\ce{Br2 / AlBr3}}{$-\ce{AlBr4\om}$} } \branch[below=of arrow_a,mesomerism,xshift=8.5em]{ \mesomeric{ - \reactand{ + \reactant{ \chemfig{*6(=[@{e1}]-=-(-[:120]Br)(-[:60]H)-(-[:-30,.4,,,white]\oplus)-[@{e2}])} \elmove{e1}{60:4mm}{e2}{0:4mm} } \marrow - \reactand{ + \reactant{ \chemfig{*6(-(-[:90,.4,,,white]\oplus)-[@{e4}]=[@{e3}]-(-[:120]Br)(-[:60]H)-=)} \elmove{e3}{180:4mm}{e4}{150:4mm} } \marrow - \reactand{ + \reactant{ \chemfig{*6(-=-(-[:-150,.4,,,white]\oplus)-(-[:120]Br)(-[:60]H)-=)} } } } \branch[above=of mesomerism,,xshift=7.25em]{ - \arrow[direction=above]{$-\Hpl$}{} + \arrow[above]{$-\Hpl$}{} } - \arrow[!!length=2.6!!]{}{} - \reactand{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \compound{bromobenzene}} } - \end{rxn} -\end{Verbatim} - \begin{rxn}[scale=.8] - \setatomsep{1.6em} - \reactand[,start]{\chemname{\chemfig{*6(-=-=(-[,,,,white]\phantom{Br})-=)}}{benzene \compound{benzene}} } + \arrow[,,!!2.6!!]{}{} + \reactant{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \compound{bromobenzene}} } + \end{rxnscheme} +\end{lstlisting} - \branch[below=of start]{ - \arrow[direction=below,both,name=arrow_a]{\ce{Br2 / AlBr3}}{$-\ce{AlBr4\om}$} +\newpage +\subsection{Hydratisation}\label{ssec:hydratisation} +\pgfdeclaredecoration{ddbond}{initial}{% + \state{initial}[width=2pt]{% + \pgfpathlineto{\pgfpoint{2pt}{0pt}}% + \pgfpathmoveto{\pgfpoint{1.5pt}{2pt}}% + \pgfpathlineto{\pgfpoint{2pt}{2pt}}% + \pgfpathmoveto{\pgfpoint{2pt}{0pt}}% + }% + \state{final}{% + \pgfpathlineto{\pgfpointdecoratedpathlast}% + }% +}% +\tikzset{lddbond/.style={decorate,decoration=ddbond}}% +\tikzset{rddbond/.style={decorate,decoration={ddbond,mirror}}}% +\newcommand*\delm{\ensuremath{\text{\tiny$\delta\ominus$}}}% +\newcommand*\delp{\ensuremath{\text{\tiny$\delta\oplus$}}}% +A scheme with transition\index{transition} states. + +\begin{rxnscheme}[rs:hydratisation,htp]{Hydratisation} + \reactant[,carbonyl_A]{\chemfig{R_2C=O}} + \anywhere{above=of carbonyl_A}{\chemfig{H-[:-30]O-[:30]H}} + \arrow[,<=>]{\tiny slow}{} + \transition[,transition_A]{\chemfig{R_2C(-[2,,2,,densely dotted]\chemabove{O}{\delp}(-[:150]H)-[:30]H)-[:-30,1.15,,,lddbond]O-[6,,,,densely dotted]H-[,,,,densely dotted]\chemabove{A}{\delm}}} + \anywhere{below=of transition_A,text width=3cm}{(general transition state, acid cat.)} + \arrow[,<=>,.5]{}{} + \reactant{\chemfig{R_2C(-[:60]\chemabove{O}{\scriptstyle\oplus}H_2)-[:-60]OH}} + \arrow[below right,<=>,.5]{$-\Hpl$}{} + \reactant[below right]{\chemfig{R_2C(-[:60]OH)-[:-60]OH}} + \arrow[below left,<=>,.5]{\ce{H2O}}{} + \reactant[below left,zw]{\chemfig{R_2C(-[:60]OH)-[:-60]O|\om}} + \arrow[left,<=>,.5]{}{} + \transition[left,transition_B]{\chemfig{R_2C(-[2,,2,,densely dotted]O(-[:150]H-[4,,,,densely dotted]\chemabove{B}{\delp})-[:30]H)-[:-30,1.15,,,lddbond]\chemabove{O}{\delm}-[6,,,,draw=none]\phantom{H}}} + \anywhere{below=of transition_B,text width=3cm}{(general transition state, base cat.)} + \arrow[left,<=>]{\tiny slow}{} + \reactant[left,carbonyl_B]{\chemfig{R_2C=O}} + \anywhere{above=of carbonyl_B}{\chemfig{H-[:-30]O-[:30]H}} +\end{rxnscheme} + +For this example we first declare a style for the delocalized double bonds:\index{tikz@\TikZ} +\begin{lstlisting} + \pgfdeclaredecoration{ddbond}{initial}{% + \state{initial}[width=2pt]{% + \pgfpathlineto{\pgfpoint{2pt}{0pt}}% + \pgfpathmoveto{\pgfpoint{1.5pt}{2pt}}% + \pgfpathlineto{\pgfpoint{2pt}{2pt}}% + \pgfpathmoveto{\pgfpoint{2pt}{0pt}}% + }% + \state{final}{% + \pgfpathlineto{\pgfpointdecoratedpathlast}% + }% + }% + \tikzset{lddbond/.style={decorate,decoration=ddbond}}% + \tikzset{rddbond/.style={decorate,decoration={ddbond,mirror}}}% +\end{lstlisting} +Now the delocalized double bond can be used via \CF's fifth option (see the \CF manual): +\begin{SideBySideExample} + \chemfig{-[,,,,lddbond]-[,,,,rddbond]} +\end{SideBySideExample} +Further we define the two commands +\begin{lstlisting} + \newcommand*\delm{\ensuremath{\text{\tiny$\delta\ominus$}}}% + \newcommand*\delp{\ensuremath{\text{\tiny$\delta\oplus$}}}% +\end{lstlisting} +to use the partial charges without effort. + +Then the whole code looks like follows:\index{anywhere} +\begin{lstlisting} + \begin{rxnscheme}[rs:hydratisation,htp]{Hydratisation} + \reactant[,carbonyl_A]{\chemfig{R_2C=O}} + \anywhere{above=of carbonyl_A}{\chemfig{H-[:-30]O-[:30]H}} + \arrow[,<=>]{\tiny slow}{} + \transition[,transition_A]{\chemfig{R_2C(-[2,,2,,densely dotted]\chemabove{O}{\delp}(-[:150]H)-[:30]H)-[:-30,1.15,,,lddbond]O-[6,,,,densely dotted]H-[,,,,densely dotted]\chemabove{A}{\delm}}} + \anywhere{below=of transition_A,text width=3cm}{(general transition state, acid cat.)} + \arrow[,<=>,.5]{}{} + \reactant{\chemfig{R_2C(-[:60]\chemabove{O}{\scriptstyle\oplus}H_2)-[:-60]OH}} + \arrow[below right,<=>,.5]{$-\Hpl$}{} + \reactant[below right]{\chemfig{R_2C(-[:60]OH)-[:-60]OH}} + \arrow[below left,<=>,.5]{\ce{H2O}}{} + \reactant[below left,zw]{\chemfig{R_2C(-[:60]OH)-[:-60]O|\om}} + \arrow[left,<=>,.5]{}{} + \transition[left,transition_B]{\chemfig{R_2C(-[2,,2,,densely dotted]O(-[:150]H-[4,,,,densely dotted]\chemabove{B}{\delp})-[:30]H)-[:-30,1.15,,,lddbond]\chemabove{O}{\delm}-[6,,,,draw=none]\phantom{H}}} + \anywhere{below=of transition_B,text width=3cm}{(general transition state, base cat.)} + \arrow[left,<=>]{\tiny langsam}{} + \reactant[left,carbonyl_B]{\chemfig{R_2C=O}} + \anywhere{above=of carbonyl_B}{\chemfig{H-[:-30]O-[:30]H}} + \end{rxnscheme} +\end{lstlisting} + +\subsection{Esterification}\label{ssec:veresterung} +\begin{rxn} + \reactant{\chemfig{H-C(=[:60]O)-[:-60]O-H}} + \arrow[,-+>,1.2,protolysis]{\ce{H2SO4}}{\ce{HSO4\om}} + \anywhere{below=of protolysis,yshift=1em}{\tiny protolysis} + \mesomeric{ + \reactant{\chemfig{H-@{a2}C(-[:60]O-H)(-[:30,.5,,,draw=none]{\scriptstyle\oplus})-[:-60]O-H}} + \marrow + \reactant{\chemfig{H-C(=[:60]\chemabove{O}{\scriptstyle\oplus}-H)-[:-60]O-H}} } - \branch[below=of arrow_a,mesomerism,xshift=8.5em]{ - \mesomeric{ - \reactand{ - \chemfig{*6(=[@{e1}]-=-(-[:120]Br)(-[: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]Br)(-[:60]H)-=)} - \elmove{e3}{180:4mm}{e4}{150:4mm} - } - \marrow - \reactand{ - \chemfig{*6(-=-(-[:-150,.4,,,white]\oplus)-(-[:120]Br)(-[:60]H)-=)} - } - } + \branch[on chain=going below,,xshift=-5em]{ + \arrow[below,<=>]{\tiny addition}{\chemfig{H-[:120]@{a1}O-[:60]CH_3}} + \reactant[below]{\chemfig{H-C(-[2]O-[:30]H)(-\chemabove{O}{\scriptstyle\oplus}(-[:60]CH_3)-[:-60]H)-[6]O-[:-30]H}} } - \branch[above=of mesomerism,,xshift=7.25em]{ - \arrow[direction=above]{$-\Hpl$}{} + \elmove{a1}{90:1.5cm}{a2}{0:3cm} + \branch[on chain=going left,,yshift=-3.5em]{ + \arrow[left,<=>]{}{\tiny protolysis} } - - \arrow[length=2.6]{}{} - \reactand{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \compound{bromobenzene}} } + \reactant[left]{\chemfig{H-C(-[2]O-[:30]H)(-O-CH_3)-[@{b1}6]@{a3}\chemabove{O}{\hspace*{-4mm}\scriptstyle\oplus}(-[:-150]H)-[:-30]H}} + \elmove{b1}{0:5mm}{a3}{20:5mm} + \arrow[below,<=>]{\ce{- H2O}}{\tiny elimination} + \mesomeric[below,,xshift=6em]{ + \reactant{\chemfig{H-C(-[:60]O-H)(-[,.5,,,draw=none]{\scriptstyle\oplus})-[:-60]O-CH_3}} + \marrow + \reactant{\chemfig{H-C(=[:60]\chemabove{O}{\scriptstyle\oplus}-H)-[:-60]O-CH_3}} + } + \arrow[,-+>,1.2]{\ce{HSO4\om}}{\ce{H2SO4}} + \reactant{\chemfig{H-C(=[:60]O)-[:-60]O-CH_3}} +\end{rxn} +\begin{lstlisting} + \begin{rxn} + \reactant{\chemfig{H-C(=[:60]O)-[:-60]O-H}} + \arrow[,-+>,1.2,protolysis]{\ce{H2SO4}}{\ce{HSO4\om}} + \anywhere{below=of protolysis,yshift=1em}{\tiny protolysis} + \mesomeric{ + \reactant{\chemfig{H-@{a2}C(-[:60]O-H)(-[:30,.5,,,draw=none]{\scriptstyle\oplus})-[:-60]O-H}} + \marrow + \reactant{\chemfig{H-C(=[:60]\chemabove{O}{\scriptstyle\oplus}-H)-[:-60]O-H}} + } + \branch[on chain=going below,,xshift=-5em]{ + \arrow[below,<=>]{\tiny addition}{\chemfig{H-[:120]@{a1}O-[:60]CH_3}} + \reactant[below]{\chemfig{H-C(-[2]O-[:30]H)(-\chemabove{O}{\scriptstyle\oplus}(-[:60]CH_3)-[:-60]H)-[6]O-[:-30]H}} + } + \elmove{a1}{90:1.5cm}{a2}{0:3cm} + \branch[on chain=going left,,yshift=-3.5em]{ + \arrow[left,<=>]{}{\tiny protolysis} + } + \reactant[left]{\chemfig{H-C(-[2]O-[:30]H)(-O-CH_3)-[@{b1}6]@{a3}\chemabove{O}{\hspace*{-4mm}\scriptstyle\oplus}(-[:-150]H)-[:-30]H}} + \elmove{b1}{0:5mm}{a3}{20:5mm} + \arrow[below,<=>]{\ce{- H2O}}{\tiny elimination} + \mesomeric[below,,xshift=6em]{ + \reactant{\chemfig{H-C(-[:60]O-H)(-[,.5,,,draw=none]{\scriptstyle\oplus})-[:-60]O-CH_3}} + \marrow + \reactant{\chemfig{H-C(=[:60]\chemabove{O}{\scriptstyle\oplus}-H)-[:-60]O-CH_3}} + } + \arrow[,-+>,1.2]{\ce{HSO4\om}}{\ce{H2SO4}} + \reactant{\chemfig{H-C(=[:60]O)-[:-60]O-CH_3}} \end{rxn} -\newpage -\subsection[Synthesis with \TikZ]{Creating an extensive synthesis using \TikZ, \mC and \CF}\label{ssec:tikzsynthese} -Since the commands of \CF are functioning well in a `tikzpicure' environment, we can create extensive syntheses, using the \lstinline=\merge= command. The other \mC commands can't be used here without further attention, because they're placed on a chain. In the next example, we directly use the floating environment \lstinline=rxnfloat=. -\begin{Verbatim} - - \begin{rxnfloat} - \setatomsep{1.8em}\setcrambond{3pt}{.5pt}{1pt} - \centering - \begin{tikzpicture}[scale=.8] - \small - \node(a) at (0,0) {\chemfig{=_[::30]-[::-60]-[::60](-[::-60])(-[::120])-[::0]OH}}; - \node(b) at (0,-4) {\chemfig{Br-[::30]-[::-60]=_[::60](-[::-60])-[::60]}}; - \draw[-stealth,thick] (a.south) -- node[left]{HBr} (b.north); - \node(c) at (5,1) {\chemname{\chemfig{**6(--(-SO_2Cl)---(-)-)}}{tosyle chloride}}; - \node(d) at (5,-4) {\chemfig{**6(--(-SO_2Na)---(-)-)}}; - \draw[-stealth,thick] (c.south) -- node[left]{NaOH} node[right]{Zn} (d.north); - \node(e) at (2.5,-8.5) {\chemfig{**6(--(-SO_2-[:30]-[::-60]=_[::60](-[::60])-[::-60])---(-)-)}}; - \node(f) at (10,-4) {\chemname{\chemfig{-[::30](-[::60])=_[::-60]-[::60]COOH}}{3-methyl-2-butenoic acid}}; - \node(g) at (10,-8.5) {\chemfig{-[::30](-[::60])=_[::-60]-[::60]CO_2CH_3}}; - \draw[-stealth,thick] (f.south) -- node[left]{\ce{CH3OH}} (g.north); - \merge{e}{b}{d} - \node[left delimiter={[},right delimiter={]}](h) at (6.25,-14.5) {\chemfig{-[::30](-[::60])=^[::-60]-[::60](-[::60]S(=[::90]O)(=[::-90]O)-[::0]**6(---(-)---))-[::-60](-[::0])(-[::-120])-[::60](-[::60,.5,,,white]\ominus)-[::-60]CO_2CH_3}}; - \node at (5.25,-11) {\ce{NaOCH3}}; - \merge{h}{e}{g} - \node(i) at (6.25,-18.5) {}; - \node(j) at (6.25,-21.5) {\chemname{\chemfig{-[::-30](-[::-60])=^[::60]>[::-60](-[::90,1.2])-[::30,1.2](-[::120,1.2](-[::-60])-[::0])<:[::-30]COOH}}{\emph{trans}-chrysanthemum acid}}; - \draw[-stealth,thick] (h.south) -- (i.north); - \draw[-stealth,thick] (i.south) -- node[left]{KOH} (j.north); - \end{tikzpicture} - \caption{synthesis of chrysanthemum acid} - \end{rxnfloat} - -\end{Verbatim} -\begin{rxnfloat} -\setatomsep{1.8em}\setcrambond{3pt}{.5pt}{1pt} -\centering -\begin{tikzpicture}[scale=.8] - \small - \node(a) at (0,0) {\chemfig{=_[::30]-[::-60]-[::60](-[::-60])(-[::120])-[::0]OH}}; - \node(b) at (0,-4) {\chemfig{Br-[::30]-[::-60]=_[::60](-[::-60])-[::60]}}; - \draw[-stealth,thick] (a.south) -- node[left]{HBr} (b.north); - - \node(c) at (5,1) {\chemname{\chemfig{**6(--(-SO_2Cl)---(-)-)}}{tosyle chloride}}; - \node(d) at (5,-4) {\chemfig{**6(--(-SO_2Na)---(-)-)}}; - \draw[-stealth,thick] (c.south) -- node[left]{NaOH} node[right]{Zn} (d.north); - - \node(e) at (2.5,-8.5) {\chemfig{**6(--(-SO_2-[:30]-[::-60]=_[::60](-[::60])-[::-60])---(-)-)}}; - \node(f) at (10,-4) {\chemname{\chemfig{-[::30](-[::60])=_[::-60]-[::60]COOH}}{3-methyl-2-butenoic acid}}; - \node(g) at (10,-8.5) {\chemfig{-[::30](-[::60])=_[::-60]-[::60]CO_2CH_3}}; - \draw[-stealth,thick] (f.south) -- node[left]{\ce{CH3OH}} (g.north); - \merge{e}{b}{d} - - \node[left delimiter={[},right delimiter={]}](h) at (6.25,-14.5) {\chemfig{-[::30](-[::60])=^[::-60]-[::60](-[::60]S(=[::90]O)(=[::-90]O)-[::0]**6(---(-)---))-[::-60](-[::0])(-[::-120])-[::60](-[::60,.3,,,white]\ominus)-[::-60]CO_2CH_3}}; - \node at (5.25,-11) {\ce{NaOCH3}}; - \merge{h}{e}{g} - - \node(i) at (6.25,-18.5) {}; - \node(j) at (6.25,-21.5) {\chemname{\chemfig{-[::-30](-[::-60])=^[::60]>[::-60](-[::90,1.2])-[::30,1.2](-[::120,1.2](-[::-60])-[::0])<:[::-30]COOH}}{\emph{trans}-chrysanthemum acid}}; - \draw[-stealth,thick] (h.south) -- (i.north); - \draw[-stealth,thick] (i.south) -- node[left]{KOH} (j.north); -\end{tikzpicture} -\caption{synthesis of chrysanthemum acid} -\end{rxnfloat} +\end{lstlisting} + +\subsection[Extensive Synthesis]{Creating an extensive synthesis using \mC and \CF}\label{ssec:tikzsynthese} +As last example we can create extensive syntheses, using the \lstinline=\merge=\index{merge} command. +\begin{rxnscheme}[rs:synthese,htp,,.8]{synthesis of chrysanthemum acid} + \setatomsep{1.5em} + \branch[,start_left]{ + \reactant{\chemfig{=_[::30]-[::-60]-[::60](-[::-60])(-[::120])-[::0]OH}} + \arrow[below]{\ce{HBr}}{} + \reactant[below]{\chemfig{Br-[::30]-[::-60]=_[::60](-[::-60])-[::60]}} + } + \branch[right=of start_left,start_center,yshift=1em]{ + \reactant{\chemname{\chemfig[][scale=.8]{**6(--(-SO_2Cl)---(-)-)}}{tosyle chloride}} + \arrow[below]{\ce{NaOH}}{\ce{Zn}} + \reactant[below]{\chemfig[][scale=.8]{**6(--(-SO_2Na)---(-)-)}} + } + \branch[right=of start_center,start_right,xshift=3em,yshift=-10em]{ + \reactant{\chemname{\chemfig{-[::30](-[::60])=_[::-60]-[::60]COOH}}{3-methyl-2-butenoic acid}} + \arrow[below]{\ce{CH3OH}}{} + \reactant[below]{\chemfig{-[::30](-[::60])=_[::-60]-[::60]CO_2CH_3}} + } + \branch[below=of start_left,target_one,xshift=5em,yshift=-5em]{ + \reactant{\chemfig[][scale=.8]{**6(--(-SO_2-[:30]-[::-60]=_[::60](-[::60])-[::-60])---(-)-)}} + } + \branch[below=of target_one,target_two,xshift=6em,yshift=-6em]{ + \mesomeric{\chemfig[][scale=.8]{-[::30](-[::60])=^[::-60]-[::60](-[::60]S(=[::90]O)(=[::-90]O)-[::0]**6(---(-)---))-[::-60](-[::0])(-[::-120])-[::60](-[::60,.5,,,white]\ominus)-[::-60]CO_2CH_3}} + \arrow[below,,.5]{}{} + \arrow[below,,.5]{\ce{KOH}}{} + \reactant[below]{\chemname{\chemfig{-[::-30](-[::-60])=^[::60]>[::-60](-[::90,1.2])-[::30,1.2](-[::120,1.2](-[::-60])-[::0])<:[::-30]COOH}}{\emph{trans}-chrysanthemum acid}} + } + \merge{target_one}{start_left}{start_center} + \merge[\ce{NaOCH3}]{target_two}{target_one}{start_right} +\end{rxnscheme} +\begin{lstlisting} + \begin{rxnscheme}[,htp,,.8]{synthesis of chrysanthemum acid} + \setatomsep{1.5em} + \branch[,start_left]{ + \reactant{\chemfig{=_[::30]-[::-60]-[::60](-[::-60])(-[::120])-[::0]OH}} + \arrow[below]{\ce{HBr}}{} + \reactant[below]{\chemfig{Br-[::30]-[::-60]=_[::60](-[::-60])-[::60]}} + } + \branch[right=of start_left,start_center,yshift=1em]{ + \reactant{\chemname{\chemfig[][scale=.8]{**6(--(-SO_2Cl)---(-)-)}}{tosyle chloride}} + \arrow[below]{\ce{NaOH}}{\ce{Zn}} + \reactant[below]{\chemfig[][scale=.8]{**6(--(-SO_2Na)---(-)-)}} + } + \branch[right=of start_center,start_right,xshift=3em,yshift=-10em]{ + \reactant{\chemname{\chemfig{-[::30](-[::60])=_[::-60]-[::60]COOH}}{3-methyl-2-butenoic acid}} + \arrow[below]{\ce{CH3OH}}{} + \reactant[below]{\chemfig{-[::30](-[::60])=_[::-60]-[::60]CO_2CH_3}} + } + \branch[below=of start_left,target_one,xshift=5em,yshift=-5em]{ + \reactant{\chemfig[][scale=.8]{**6(--(-SO_2-[:30]-[::-60]=_[::60](-[::60])-[::-60])---(-)-)}} + } + \branch[below=of target_one,target_two,xshift=6em,yshift=-6em]{ + \mesomeric{\chemfig[][scale=.8]{-[::30](-[::60])=^[::-60]-[::60](-[::60]S(=[::90]O)(=[::-90]O)-[::0]**6(---(-)---))-[::-60](-[::0])(-[::-120])-[::60](-[::60,.5,,,white]\ominus)-[::-60]CO_2CH_3}} + \arrow[below,,.5]{}{} + \arrow[below,,.5]{\ce{KOH}}{} + \reactant[below]{\chemname{\chemfig{-[::-30](-[::-60])=^[::60]>[::-60](-[::90,1.2])-[::30,1.2](-[::120,1.2](-[::-60])-[::0])<:[::-30]COOH}}{\emph{trans}-chrysanthemum acid}} + } + \merge{target_one}{start_left}{start_center} + \merge[\ce{NaOCH3}]{target_two}{target_one}{start_right} + \end{rxnscheme} +\end{lstlisting} Let's go through the code, piece by piece. -\begin{Verbatim} - - \begin{rxnfloat} - \setatomsep{1.8em}\setcrambond{3pt}{.5pt}{1pt} - \centering - \begin{tikzpicture}[scale=.8] - \small - \node(a) at (0,0) {\chemfig{=_[::30]-[::-60]-[::60](-[::-60])(-[::120])-[::0]OH}}; - \node(b) at (0,-4) {\chemfig{Br-[::30]-[::-60]=_[::60](-[::-60])-[::60]}}; - \draw[-stealth,thick] (a.south) -- node[left]{HBr} (b.north); -\end{Verbatim} -In lines 1 -- 6 we begin the environment and make sure, that the formul\ae\ don't become to big. In lines 7 -- 9 the first two reactands are written (lines 7 and 8) and connected with an arrow (line 9). -\setatomsep{1.8em} -\setcrambond{3pt}{.5pt}{1pt} -\begin{center} -\begin{tikzpicture}[scale=.8] - \small - \node(a) at (0,0) {\chemfig{=_[::30]-[::-60]-[::60](-[::-60])(-[::120])-[::0]OH}}; - \node(b) at (0,-4) {\chemfig{Br-[::30]-[::-60]=_[::60](-[::-60])-[::60]}}; - \draw[-stealth,thick] (a.south) -- node[left]{HBr} (b.north); -\end{tikzpicture} -\end{center} -\begin{Verbatim}[firstnumber=10] - \node(c) at (5,1) {\chemname{\chemfig{**6(--(-SO_2Cl)---(-)-)}}{tosyle chloride}}; - \node(d) at (5,-4) {\chemfig{**6(--(-SO_2Na)---(-)-)}}; - \draw[-stealth,thick] (c.south) -- node[left]{NaOH} node[right]{Zn} (d.north); -\end{Verbatim} -In the three following lines 10 -- 12, we create the second branch of the synthesis. -\begin{center} -\begin{tikzpicture}[scale=.8] - \small - \node(a) at (0,0) {\chemfig{=_[::30]-[::-60]-[::60](-[::-60])(-[::120])-[::0]OH}}; - \node(b) at (0,-4) {\chemfig{Br-[::30]-[::-60]=_[::60](-[::-60])-[::60]}}; - \draw[-stealth,thick] (a.south) -- node[left]{HBr} (b.north); - \node(c) at (5,1) {\chemname{\chemfig{**6(--(-SO_2Cl)---(-)-)}}{tosyle chloride}}; - \node(d) at (5,-4) {\chemfig{**6(--(-SO_2Na)---(-)-)}}; - \draw[-stealth,thick] (c.south) -- node[left]{NaOH} node[right]{Zn} (d.north); -\end{tikzpicture} -\end{center} -\begin{Verbatim}[firstnumber=13] - \node(e) at (2.5,-8.5) {\chemfig{**6(--(-SO_2-[:30]-[::-60]=_[::60](-[::60])-[::-60])---(-)-)}}; - \node(f) at (10,-4) {\chemname{\chemfig{-[::30](-[::60])=_[::-60]-[::60]COOH}}{3-methyl-2-butenoic acid}}; - \node(g) at (10,-8.5) {\chemfig{-[::30](-[::60])=_[::-60]-[::60]CO_2CH_3}}; - \draw[-stealth,thick] (f.south) -- node[left]{\ce{CH3OH}} (g.north); -\end{Verbatim} -In lines 13 -- 16 we create the third branch and the product of the first two branches. -\begin{center} -\begin{tikzpicture}[scale=.8] - \small - \node(a) at (0,0) {\chemfig{=_[::30]-[::-60]-[::60](-[::-60])(-[::120])-[::0]OH}}; - \node(b) at (0,-4) {\chemfig{Br-[::30]-[::-60]=_[::60](-[::-60])-[::60]}}; - \draw[-stealth,thick] (a.south) -- node[left]{HBr} (b.north); - \node(c) at (5,1) {\chemname{\chemfig{**6(--(-SO_2Cl)---(-)-)}}{tosyle chloride}}; - \node(d) at (5,-4) {\chemfig{**6(--(-SO_2Na)---(-)-)}}; - \draw[-stealth,thick] (c.south) -- node[left]{NaOH} node[right]{Zn} (d.north); - \node(e) at (2.5,-8.5) {\chemfig{**6(--(-SO_2-[:30]-[::-60]=_[::60](-[::60])-[::-60])---(-)-)}}; - \node(f) at (10,-4) {\chemname{\chemfig{-[::30](-[::60])=_[::-60]-[::60]COOH}}{3-methyl-2-butenoic acid}}; - \node(g) at (10,-8.5) {\chemfig{-[::30](-[::60])=_[::-60]-[::60]CO_2CH_3}}; - \draw[-stealth,thick] (f.south) -- node[left]{\ce{CH3OH}} (g.north); -\end{tikzpicture} -\end{center} -\begin{Verbatim}[firstnumber=17] - \merge{e}{b}{d} -\end{Verbatim} -In line 17 we merge the first two branches with their product. -\begin{center} -\begin{tikzpicture}[scale=.8] - \small - \node(a) at (0,0) {\chemfig{=_[::30]-[::-60]-[::60](-[::-60])(-[::120])-[::0]OH}}; - \node(b) at (0,-4) {\chemfig{Br-[::30]-[::-60]=_[::60](-[::-60])-[::60]}}; - \draw[-stealth,thick] (a.south) -- node[left]{HBr} (b.north); - \node(c) at (5,1) {\chemname{\chemfig{**6(--(-SO_2Cl)---(-)-)}}{tosyle chloride}}; - \node(d) at (5,-4) {\chemfig{**6(--(-SO_2Na)---(-)-)}}; - \draw[-stealth,thick] (c.south) -- node[left]{NaOH} node[right]{Zn} (d.north); - \node(e) at (2.5,-8.5) {\chemfig{**6(--(-SO_2-[:30]-[::-60]=_[::60](-[::60])-[::-60])---(-)-)}}; - \node(f) at (10,-4) {\chemname{\chemfig{-[::30](-[::60])=_[::-60]-[::60]COOH}}{3-methyl-2-butenoic acid}}; - \node(g) at (10,-8.5) {\chemfig{-[::30](-[::60])=_[::-60]-[::60]CO_2CH_3}}; - \draw[-stealth,thick] (f.south) -- node[left]{\ce{CH3OH}} (g.north); - \merge{e}{b}{d} -\end{tikzpicture} -\end{center} -\begin{Verbatim}[firstnumber=18] - \node[left delimiter={[},right delimiter={]}](h) at (6.25,-14.5) {\chemfig{-[::30](-[::60])=^[::-60]-[::60](-[::60]S(=[::90]O)(=[::-90]O)-[::0]**6(---(-)---))-[::-60](-[::0])(-[::-120])-[::60](-[::60,.5,,,white]\ominus)-[::-60]CO_2CH_3}}; -\end{Verbatim} -In line 18 we create the transition state. -\begin{center} -\begin{tikzpicture}[scale=.8] - \small - \node(e) at (2.5,-8.5) {\chemfig{**6(--(-SO_2-[:30]-[::-60]=_[::60](-[::60])-[::-60])---(-)-)}}; - \node(g) at (10,-8.5) {\chemfig{-[::30](-[::60])=_[::-60]-[::60]CO_2CH_3}}; - \node[left delimiter={[},right delimiter={]}](h) at (6.25,-14.5) {\chemfig{-[::30](-[::60])=^[::-60]-[::60](-[::60]S(=[::90]O)(=[::-90]O)-[::0]**6(---(-)---))-[::-60](-[::0])(-[::-120])-[::60](-[::60,.5,,,white]\ominus)-[::-60]CO_2CH_3}}; -\end{tikzpicture} -\end{center} -\begin{Verbatim}[firstnumber=19] - \node at (5.25,-11) {\ce{NaOCH3}}; - \merge{h}{e}{g} -\end{Verbatim} -In lines 19 and 20 both branches are merged with the transition state an the merging arrow gets its reactand argument. -\begin{center} -\begin{tikzpicture}[scale=.8] - \small - \node(e) at (2.5,-8.5) {\chemfig{**6(--(-SO_2-[:30]-[::-60]=_[::60](-[::60])-[::-60])---(-)-)}}; - \node(g) at (10,-8.5) {\chemfig{-[::30](-[::60])=_[::-60]-[::60]CO_2CH_3}}; - \node[left delimiter={[},right delimiter={]}](h) at (6.25,-14.5) {\chemfig{-[::30](-[::60])=^[::-60]-[::60](-[::60]S(=[::90]O)(=[::-90]O)-[::0]**6(---(-)---))-[::-60](-[::0])(-[::-120])-[::60](-[::60,.5,,,white]\ominus)-[::-60]CO_2CH_3}}; - \node at (5.25,-11) {\ce{NaOCH3}}; - \merge{h}{e}{g} -\end{tikzpicture} -\end{center} -\begin{Verbatim}[firstnumber=21] - \node(i) at (6.25,-18.5) {}; - \node(j) at (6.25,-21.5) {\chemname{\chemfig{-[::-30](-[::-60])=^[::60]>[::-60](-[::90,1.2])-[::30,1.2](-[::120,1.2](-[::-60])-[::0])<:[::-30]COOH}}{\emph{trans}-chrysanthemum acid}}; - \draw[-stealth,thick] (h.south) -- (i.north); - \draw[-stealth,thick] (i.south) -- node[left]{KOH} (j.north); - \end{tikzpicture} - \caption{synthesis of chrysanthemum acid} - \end{rxnfloat} - -\end{Verbatim} -In the last lines, 21 -- 28, we create at first an empty node (line 21) and then the product (line 22). In lines 23 and 24 we create the last two reaction arrows. In the last four lines we end the environment. -\begin{center} -\begin{tikzpicture}[scale=.8] - \small - \node(i) at (6.25,-18.5) {}; - \node(j) at (6.25,-21.5) {\chemname{\chemfig{-[::-30](-[::-60])=^[::60]>[::-60](-[::90,1.2])-[::30,1.2](-[::120,1.2](-[::-60])-[::0])<:[::-30]COOH}}{\emph{trans}-chrysanthemum acid}}; - \draw[-stealth,thick] (h.south) -- (i.north); - \draw[-stealth,thick] (i.south) -- node[left]{KOH} (j.north); -\end{tikzpicture} -\end{center} +\begin{lstlisting} + \begin{rxnscheme}[,htp,,.8]{synthesis of chrysanthemum acid} + \setatomsep{1.5em} + \branch[,start_left]{ + \reactant{\chemfig{=_[::30]-[::-60]-[::60](-[::-60])(-[::120])-[::0]OH}} + \arrow[below]{\ce{HBr}}{} + \reactant[below]{\chemfig{Br-[::30]-[::-60]=_[::60](-[::-60])-[::60]}} + } +\end{lstlisting} +In lines 1 and 2 we begin the environment and make sure, that the formul\ae\ don't become to big. In lines 3 -- 7 the first two reactants are written (lines 4 and 6) and connected with an arrow (line 5). +\begin{rxn}[,.8] + \setatomsep{1.5em} + \branch[,start_left]{ + \reactant{\chemfig{=_[::30]-[::-60]-[::60](-[::-60])(-[::120])-[::0]OH}} + \arrow[below]{\ce{HBr}}{} + \reactant[below]{\chemfig{Br-[::30]-[::-60]=_[::60](-[::-60])-[::60]}} + } +\end{rxn} +\begin{lstlisting}[firstnumber=8] + \branch[right=of start_left,start_center,yshift=1em]{ + \reactant{\chemname{\chemfig[][scale=.8]{**6(--(-SO_2Cl)---(-)-)}}{tosyle chloride}} + \arrow[below]{\ce{NaOH}}{\ce{Zn}} + \reactant[below]{\chemfig[][scale=.8]{**6(--(-SO_2Na)---(-)-)}} + } +\end{lstlisting} +In the following lines 8 -- 12, we create the second branch of the synthesis. +\begin{rxn}[,.8] + \setatomsep{1.5em} + \branch[,start_left]{ + \reactant{\chemfig{=_[::30]-[::-60]-[::60](-[::-60])(-[::120])-[::0]OH}} + \arrow[below]{\ce{HBr}}{} + \reactant[below]{\chemfig{Br-[::30]-[::-60]=_[::60](-[::-60])-[::60]}} + } + \branch[right=of start_left,start_center,yshift=1em]{ + \reactant{\chemname{\chemfig[][scale=.8]{**6(--(-SO_2Cl)---(-)-)}}{tosyle chloride}} + \arrow[below]{\ce{NaOH}}{\ce{Zn}} + \reactant[below]{\chemfig[][scale=.8]{**6(--(-SO_2Na)---(-)-)}} + } +\end{rxn} +\begin{lstlisting}[firstnumber=13] + \branch[right=of start_center,start_right,xshift=3em,yshift=-10em]{ + \reactant{\chemname{\chemfig{-[::30](-[::60])=_[::-60]-[::60]COOH}}{3-methyl-2-butenoic acid}} + \arrow[below]{\ce{CH3OH}}{} + \reactant[below]{\chemfig{-[::30](-[::60])=_[::-60]-[::60]CO_2CH_3}} + } + \branch[below=of start_left,target_one,xshift=5em,yshift=-5em]{ + \reactant{\chemfig[][scale=.8]{**6(--(-SO_2-[:30]-[::-60]=_[::60](-[::60])-[::-60])---(-)-)}} + } +\end{lstlisting} +In lines 13 -- 20 we create the third branch and the product of the first two branches. +\begin{rxn}[,.8] + \setatomsep{1.5em} + \branch[,start_left]{ + \reactant{\chemfig{=_[::30]-[::-60]-[::60](-[::-60])(-[::120])-[::0]OH}} + \arrow[below]{\ce{HBr}}{} + \reactant[below]{\chemfig{Br-[::30]-[::-60]=_[::60](-[::-60])-[::60]}} + } + \branch[right=of start_left,start_center,yshift=1em]{ + \reactant{\chemname{\chemfig[][scale=.8]{**6(--(-SO_2Cl)---(-)-)}}{tosyle chloride}} + \arrow[below]{\ce{NaOH}}{\ce{Zn}} + \reactant[below]{\chemfig[][scale=.8]{**6(--(-SO_2Na)---(-)-)}} + } + \branch[right=of start_center,start_right,xshift=3em,yshift=-10em]{ + \reactant{\chemname{\chemfig{-[::30](-[::60])=_[::-60]-[::60]COOH}}{3-methyl-2-butenoic acid}} + \arrow[below]{\ce{CH3OH}}{} + \reactant[below]{\chemfig{-[::30](-[::60])=_[::-60]-[::60]CO_2CH_3}} + } + \branch[below=of start_left,target_one,xshift=5em,yshift=-5em]{ + \reactant{\chemfig[][scale=.8]{**6(--(-SO_2-[:30]-[::-60]=_[::60](-[::60])-[::-60])---(-)-)}} + } +\end{rxn} +\begin{lstlisting}[firstnumber=21] + \branch[below=of target_one,target_two,xshift=6em,yshift=-6em]{ + \mesomeric{\chemfig[][scale=.8]{-[::30](-[::60])=^[::-60]-[::60](-[::60]S(=[::90]O)(=[::-90]O)-[::0]**6(---(-)---))-[::-60](-[::0])(-[::-120])-[::60](-[::60,.5,,,white]\ominus)-[::-60]CO_2CH_3}} + \arrow[below,,.5]{}{} + \arrow[below,,.5]{\ce{KOH}}{} + \reactant[below]{\chemname{\chemfig{-[::-30](-[::-60])=^[::60]>[::-60](-[::90,1.2])-[::30,1.2](-[::120,1.2](-[::-60])-[::0])<:[::-30]COOH}}{\emph{trans}-chrysanthemum acid}} + } +\end{lstlisting} +In lines 21 -- 26 we create the last branch. +\begin{rxn}[,.8] + \dummy[start_left] + \branch[right=of start_left,start_right,xshift=13em,yshift=-4em]{ + \reactant[below]{\chemfig{-[::30](-[::60])=_[::-60]-[::60]CO_2CH_3}} + } + \branch[below=of start_left,target_one,xshift=5em]{ + \reactant{\chemfig[][scale=.8]{**6(--(-SO_2-[:30]-[::-60]=_[::60](-[::60])-[::-60])---(-)-)}} + } + \branch[below=of target_one,target_two,xshift=6em,yshift=-6em]{ + \mesomeric{\chemfig[][scale=.8]{-[::30](-[::60])=^[::-60]-[::60](-[::60]S(=[::90]O)(=[::-90]O)-[::0]**6(---(-)---))-[::-60](-[::0])(-[::-120])-[::60](-[::60,.5,,,white]\ominus)-[::-60]CO_2CH_3}} + \arrow[below,,.5]{}{} + \arrow[below,,.5]{\ce{KOH}}{} + \reactant[below]{\chemname{\chemfig{-[::-30](-[::-60])=^[::60]>[::-60](-[::90,1.2])-[::30,1.2](-[::120,1.2](-[::-60])-[::0])<:[::-30]COOH}}{\emph{trans}-chrysanthemum acid}} + } +\end{rxn} +Finally, the different branches are merged\index{merge}, the second merging arrow gets a label and the environment is ended. +\begin{lstlisting}[firstnumber=27] + \merge{target_one}{start_left}{start_center} + \merge[\ce{NaOCH3}]{target_two}{target_one}{start_right} + \end{rxnscheme} +\end{lstlisting} \section{Epilogue} -\mC is still very new. This means there are probably a number of bugs I haven't discovered yet. There also might be missing one or two features, that would be useful. Since I only can test an work on \mC in my spare time, I'd be very glad about \emph{every} kind of feedback. If you like \mC, why don't you help me improve it by telling me your experiences? +\mC is still very new. This means there are probably a number of bugs I haven't discovered yet. There also might be missing one or two features, that would be useful. Since I only can test and work on \mC in my spare time, I'd be very glad about \emph{every} kind of feedback. If you like \mC, why don't you help me improve it by telling me your experiences? + +I tried using real chemical reactions but I didn't make sure, that they all make sense chemically. So you shouldn't trust the examples in respect to chemistry but rather take a look into a real chemistry teaching book. -I tried using real chemical reactions but I didn't make sure, that they all make sense chemically. So you shouldn't trust the examples in respect to chemistry but rather take a look into a real chemistry teaching book.\\ I apologize for any bad or wrong English. I hope you understood the documention anyway. Have fun with \mC! \par\vspace{.5cm}\hspace{.5cm}Clemens Niederberger, Berlin, \mCdate{en} + +\section{Thanks} +I owe thanks for bug reports and suggestions to: + +F.\,Chervet, Ferghun, V.\,Garibal. + +\printindex \end{document}
\ No newline at end of file |