summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-03-26 21:31:31 +0000
committerKarl Berry <karl@freefriends.org>2020-03-26 21:31:31 +0000
commit43d422c5abd7a05708ebb2dab98b18043436fd08 (patch)
treec6d5c9da90a8a76ea859e051b3065e0535e19161
parent92c0c09db1a4291c5cf027d25557ccb55bbefd2a (diff)
rm mychemistry, obsolete on ctan
git-svn-id: svn://tug.org/texlive/trunk@54565 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/mychemistry/README30
-rw-r--r--Master/texmf-dist/doc/latex/mychemistry/examples.pdfbin941952 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/latex/mychemistry/examples.tex864
-rw-r--r--Master/texmf-dist/doc/latex/mychemistry/mychemistry_en.pdfbin764132 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/latex/mychemistry/mychemistry_en.tex1724
-rw-r--r--Master/texmf-dist/tex/latex/mychemistry/mychemistry.sty1557
-rwxr-xr-xMaster/tlpkg/bin/tlpkg-ctan-check2
-rwxr-xr-xMaster/tlpkg/libexec/ctan2tds1
-rw-r--r--Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/mychemistry.tlpsrc0
10 files changed, 2 insertions, 4177 deletions
diff --git a/Master/texmf-dist/doc/latex/mychemistry/README b/Master/texmf-dist/doc/latex/mychemistry/README
deleted file mode 100644
index 2fe11d7b08e..00000000000
--- a/Master/texmf-dist/doc/latex/mychemistry/README
+++ /dev/null
@@ -1,30 +0,0 @@
---------------------------------------------------------------------------
-the MYCHEMISTRY package v1.99b 2012/12/19
-
- create reaction schemes with LaTeX and chemfig
-
---------------------------------------------------------------------------
-Clemens Niederberger
-Web: https://www.bitbucket.org/cgnieder/mychemistry
-E-Mail: contact@mychemistry.eu
---------------------------------------------------------------------------
-If you have any ideas, questions, suggestions or bugs to report, please
-feel free to contact me.
---------------------------------------------------------------------------
-Copyright 2011--2012 Clemens Niederberger
-
-This work may be distributed and/or modified under the
-conditions of the LaTeX Project Public License, either version 1.3
-of this license or (at your option) any later version.
-The latest version of this license is in
- http://www.latex-project.org/lppl.txt
-and version 1.3 or later is part of all distributions of LaTeX
-version 2005/12/01 or later.
-
-This work has the LPPL maintenance status `maintained'.
-
-The Current Maintainer of this work is Clemens Niederberger.
-
-This work consists of the files mychemistrysty, mychemistry_en.tex,
-README and the derived file mychemistry_en.pdf.
--------------------------------------------------------------------------- \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/mychemistry/examples.pdf b/Master/texmf-dist/doc/latex/mychemistry/examples.pdf
deleted file mode 100644
index 88eda6001e8..00000000000
--- a/Master/texmf-dist/doc/latex/mychemistry/examples.pdf
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/mychemistry/examples.tex b/Master/texmf-dist/doc/latex/mychemistry/examples.tex
deleted file mode 100644
index 46dbc964660..00000000000
--- a/Master/texmf-dist/doc/latex/mychemistry/examples.tex
+++ /dev/null
@@ -1,864 +0,0 @@
-\documentclass[DIV10]{cnpkgdoc}
-\docsetup{
- pkg = mychemistry,
- title = mychemistry -- examples,
- subtitle = Create Reaction Schemes with \LaTeXe\ and Chemfig ,
- code-box = {
- skipbelow = .5\baselineskip plus .5ex minus .5ex ,
- skipabove = .5\baselineskip plus .5ex minus .5ex ,
- roundcorner = 3pt ,
- innerleftmargin = 1.5em ,
- innerrightmargin = 1.5em
- }
-}
-
-\addcmds{
- @addtoreset,
- anywhere,
- arrow,
- branch,
- celsius,
- ch,
- chemabove,
- chemand,
- chembelow,
- chemfig,
- chemname,
- cmpd,
- colorlet,
- command,
- draw,
- elmove,
- floatstyle,
- fpch,
- fplus,
- fscrm,
- fscrp,
- Hpl,
- iupac,
- lewis,
- Lewis,
- listof,
- makeinvisible,
- makevisible,
- marrow,
- mch,
- mCsetup,
- mech,
- mesomeric,
- N,
- node,
- para,
- pch,
- phantom,
- reactant,
- restylefloat,
- setarrowlabel,
- setarrowlength,
- setarrowline,
- setatomsep,
- setatomsize,
- setbondlength,
- setbondshape,
- setcrambond,
- setmergelength,
- setrcndist,
- setrxnalign,
- setschemealign,
- setschemename,
- SI,
- text,
- therxnscheme,
- tikzset,
- trans,
- transition
-}
-
-\chemsetup[option]{circled=all}
-
-\usepackage{chemnum}
-\usepackage{fnpct}
-\usepackage{booktabs}
-\usepackage{siunitx}
-\usepackage{scrhack}
-
-\TitlePicture{%
- \parbox{.7\linewidth}{%
- Since the documentation is already long enough I decided to provide an
- extra file containing only examples and a few words where to find possibly
- interesting code.\par
- For all the undocumented little macros like \cmd{fscrp} or \cmd{delm} have
- a look in the \paket*{chemmacros} documentation.
- }
-}
-
-\begin{document}
-
-\section{Addition Reaction}\label{sec:addition}
-A simple reaction scheme with two different products.
-
-\begin{rxnscheme}{Addition Reaction}
- \reactant{ \chemfig{=_[::-30]-[::60](=[::60]O)-[::-60]} }
- \arrow{ $+ \Hpl$ }{}
- \mesomeric[,rf]{
- \reactant{ \chemfig{=_[:-30]-[::60](-[::60]OH)(-[::-120,.3,,,white]\fplus)-[::-60]} }
- \marrow[below]
- \reactant[below]{ \chemfig{\fplus-[6,.3,,,white]-[:-30]=_[::60](-[::60]OH)-[::-60]} }
- }
- \branch[right=of rf,,yshift=3em]{
- \arrow{}{}
- \reactant{ \chemname{\chemfig{=_[:-30]-[::60](-[::60]OH)(-[::-120]R)-[::-60]}}{1,2-adduct} }
- }
- \branch[right=of rf,,yshift=-5em]{
- \arrow{}{}
- \reactant{ \chemname{\chemfig{R-[6]-[:-30]=_[::60](-[::60]OH)-[::-60]}}{1,4-adduct} }
- }
-\end{rxnscheme}
-
-
-\begin{beispiel}[code only]
- \begin{rxnscheme}[,]{Addition Reaction}
- \reactant{ \chemfig{=_[::-30]-[::60](=[::60]O)-[::-60]} }
- \arrow{ $+ \Hpl$ }{}
- \mesomeric[,rf]{
- \reactant{ \chemfig{=_[:-30]-[::60](-[::60]OH)(-[::-120,.3,,,white]\fplus)-[::-60]} }
- \marrow[below]
- \reactant[below]{ \chemfig{\fplus-[6,.3,,,white]-[:-30]=_[::60](-[::60]OH)-[::-60]} }
- }
- \branch[right=of rf,,yshift=3em]{
- \arrow{}{}
- \reactant{ \chemname{\chemfig{=_[:-30]-[::60](-[::60]OH)(-[::-120]R)-[::-60]}}{1,2-adduct} }
- }
- \branch[right=of rf,,yshift=-5em]{
- \arrow{}{}
- \reactant{ \chemname{\chemfig{R-[6]-[:-30]=_[::60](-[::60]OH)-[::-60]}}{1,4-adduct} }
- }
- \end{rxnscheme}
-\end{beispiel}
-
-\section{Mesomerism}
-\begin{rxnscheme}[,,,.8]{Mesomerism}
- \setatomsep{1.6em}
- \reactant[,start]{ \chemname{\chemfig{*6(-=-=(-[,,,,white]\phantom{Br})-=)}}{benzene \cmpd{benzene}} }
- \arrow[,,2.8]{}{}
- \reactant{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \cmpd{bromobenzene}} }
- \arrow[start.below,,,pfeil_a]{\ch{Br2} / \ch{AlBr3}}{$-\ch{AlBr4-}$}
- \mesomeric[pfeil_a.below,mesomerism,xshift=8.5em,yshift=-2.5em]{
- \reactant{
- \chemfig{*6(=[@{e1}]-=-(-[:120]Br)(-[:60]H)-(-[:-30,.4,,,white]\fplus)-[@{e2}])}
- \elmove{e1}{60:4mm}{e2}{0:4mm}
- }
- \marrow
- \reactant{
- \chemfig{*6(-(-[:90,.4,,,white]\fplus)-[@{e4}]=[@{e3}]-(-[:120]Br)(-[:60]H)-=)}
- \elmove{e3}{180:4mm}{e4}{150:4mm}
- }
- \marrow
- \reactant{
- \chemfig{*6(-=-(-[:-150,.4,,,white]\fplus)-(-[:120]Br)(-[:60]H)-=)}
- }
- }
- \branch[above=of mesomerism,,xshift=7.5em]{
- \arrow[above]{$-\Hpl$}{}
- }
-\end{rxnscheme}
-
-If you put something relative to an arrow you might have to consider that the
-arrow's anchor point is in the middle of the arrow. That's why \cmd{mesomeric}
-is shifted with \code{yshift=-2.5em} in line 9.
-\begin{beispiel}[code only]
- \begin{rxnscheme}[,,,.8]{Mesomerism}
- \setatomsep{1.6em}
- % main reaction:
- \reactant[,start]{ \chemname{\chemfig{*6(-=-=(-[,,,,white]\phantom{Br})-=)}}{benzene \cmpd{benzene}} }
- \arrow[,,2.8]{}{}
- \reactant{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \cmpd{bromobenzene}} }
- % branch:
- \arrow[start.below,,,pfeil_a]{\ch{Br2} / \ch{AlBr3}}{$-\ch{AlBr4-}$}
- \mesomeric[!!pfeil_a.below!!,mesomerism,xshift=8.5em,!!yshift=-2.5em!!]{
- \reactant{
- \chemfig{*6(=[@{e1}]-=-(-[:120]Br)(-[:60]H)-(-[:-30,.4,,,white]\fplus)-[@{e2}])}
- \elmove{e1}{60:4mm}{e2}{0:4mm}
- }
- \marrow
- \reactant{
- \chemfig{*6(-(-[:90,.4,,,white]\fplus)-[@{e4}]=[@{e3}]-(-[:120]Br)(-[:60]H)-=)}
- \elmove{e3}{180:4mm}{e4}{150:4mm}
- }
- \marrow
- \reactant{
- \chemfig{*6(-=-(-[:-150,.4,,,white]\fplus)-(-[:120]Br)(-[:60]H)-=)}
- }
- }
- % last arrow inside a branch, since it cannot be shifted by itself:
- \branch[above=of mesomerism,,xshift=7.5em]{
- \arrow[above]{$-\Hpl$}{}
- }
- \end{rxnscheme}
-\end{beispiel}
-
-\section{The Former Titlepage}
-This scheme used to be on the title page of the examples file. It isn't any more
-but here's the scheme, anyway.
-\begin{rxnscheme}[,,,.7]{The Titlepage}
- \setatomsep{1.5em}\footnotesize
- \reactant[,a]{ \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[6,,,2]HO)-C(-[2]CH_3)(-[6]OH)-CH_3} }
- \arrow[a.20]{}{}
- \reactant[20]{ \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[@{e1}6,,,2]H_2@{e2}\chembelow{O}{\fplus})-C(-[2]CH_3)(-[6]OH)-CH_3}\elmove{e1}{10:4mm}{e2}{-10:4mm} }
- \arrow[,,1.42]{$-\ch{H2O}$}{}
- \reactant{ \chemfig{\chembelow{C}{\fplus}(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))-C(-[2]CH_3)(-[6]OH)-CH_3} }{}
- \arrow[a.-20,-|>]{}{}
- \reactant[-20]{ \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[6,,,2]HO)-C(-[2]CH_3)(-[@{e3}6]@{e4}\chembelow{O}{\fplus}H_2)-CH_3}\elmove{e3}{170:4mm}{e4}{-170:4mm} }
- \arrow[,,1.42]{$-\ch{H2O}$}{}
- \reactant[,end]{ \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[6,,,2]HO)-\chembelow{C}{\fplus}(-[2]CH_3)-CH_3} }
- \anywhere{below=of end}{}
-\end{rxnscheme}
-
-\begin{beispiel}[code only]
- \begin{rxn}[,.7]
- \setatomsep{1.5em}\footnotesize
- % reaction above:
- \reactant[,a]{ \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[6,,,2]HO)-C(-[2]CH_3)(-[6]OH)-CH_3} }
- \arrow[a.45]{}{}
- \reactant[45]{ \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[@{e1}6,,,2]H_2@{e2}\chembelow{O}{\fplus})-C(-[2]CH_3)(-[6]OH)-CH_3}\elmove{e1}{10:4mm}{e2}{-10:4mm} }
- \arrow[,,1.42]{$-\ch{H2O}$}{}
- \reactant{ \chemfig{\chembelow{C}{\fplus}(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))-C(-[2]CH_3)(-[6]OH)-CH_3} }{}
- % going down:
- \arrow[a.-45,-|>]{}{}
- \reactant[-45]{ \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[6,,,2]HO)-C(-[2]CH_3)(-[@{e3}6]@{e4}\chembelow{O}{\fplus}H_2)-CH_3}\elmove{e3}{170:4mm}{e4}{-170:4mm} }
- \arrow[,,1.42]{$-\ch{H2O}$}{}
- \reactant{ \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[6,,,2]HO)-\chembelow{C}{\fplus}(-[2]CH_3)-CH_3} }
- \end{rxn}
-\end{beispiel}
-
-\section{Condensation Reaction}
-\begin{rxnscheme}{Condensation Reaction}
- \reactant{\chemfig{**6(---(-CH_2OH)-(-OH)--)}}
- \chemand
- \reactant{\chemfig{**6(----(-OH)-(-HOCH_2)-)}}
- \arrow[,-+>]{}{\ch{H2O}}
- \reactant{\chemfig{**6(---(-CH_2-[:-30]O-[:30]CH_2-[:-30]**6(-----(-OH)-))-(-OH)--)}}
- \arrow[-90,-+>,,dec]{}{\ch{CH2O}}
- \anywhere{dec.180,,xshift=-.2em}{\SI{200}{\celsius}}
- \reactant[-90,target]{\chemfig{**6(---(-CH_2-[:-30]**6(-----(-OH)-))-(-OH)--)}}
- \branch[left=of target]{
- \reactant{\chemfig{**6(---(-CH_2OH)-(-OH)--)}}
- \chemand
- \reactant{\chemfig{**6(----(-OH)-(-H)-)}}
- \arrow[,-+>]{}{\ch{H2O}}
- }
-\end{rxnscheme}
-
-\begin{beispiel}[code only]
- \begin{rxnscheme}{Condensation Reaction}
- \reactant{\chemfig{**6(---(-CH_2OH)-(-OH)--)}}
- \chemand
- \reactant{\chemfig{**6(----(-OH)-(-HOCH_2)-)}}
- \arrow[,-+>]{}{\ch{H2O}}
- \reactant{\chemfig{**6(---(-CH_2-[:-30]O-[:30]CH_2-[:-30]**6(-----(-OH)-))-(-OH)--)}}
- \arrow[-90,-+>,,dec]{}{\ch{CH2O}}
- \anywhere{dec.180,,xshift=-.2em}{\SI{200}{\celsius}}
- \reactant[-90,target]{\chemfig{**6(---(-CH_2-[:-30]**6(-----(-OH)-))-(-OH)--)}}
- \branch[left=of target]{
- \reactant{\chemfig{**6(---(-CH_2OH)-(-OH)--)}}
- \chemand
- \reactant{\chemfig{**6(----(-OH)-(-H)-)}}
- \arrow[,-+>]{}{\ch{H2O}}
- }
- \end{rxnscheme}
-\end{beispiel}
-
-\section{Substitution vs. Elimination}
-\begin{rxnscheme}{Substitution vs. Elimination}
- % first reaction:
- \reactant[,start_a]{\chemfig{@{H}H-[@{b1}:-60]\chemabove{C}{\scriptstyle\beta}(<[:-100]H)(<:[:-150]H)-[@{b2}]\chemabove{C}{\scriptstyle\alpha}(<[:20]H)(<:[:60]H)-[@{b3}:-60]@{X1}X}}
- \arrow{E2}{}
- \reactant{\chemfig{H-[:60]C(-[:120]H)=C(-[:60]H)-[:-60]H}}
- \chemand
- \reactant{\ch{X-}}
- \chemand
- \reactant{\chemfig{O(-[:60]H)-[:-60]H}}
- % second reaction:
- \reactant[start_a.-90,start_b,yshift=-4em]{\chemfig{H-[:-60]C(<[:-100]H)(<:[:-150]H)-@{C}C(<[:20]H)(<:[:60]H)-[@{b4}:-60]@{X2}X}}
- \arrow{S$_\text{N}$2}{}
- \reactant{\chemfig{H-[:-60]C(<[:-100]H)(<:[:-150]H)-C(<[:-80]H)(<:[:-30]H)-[:60]OH}}
- \chemand
- \reactant{\ch{X-}}
- % nucleophile/base:
- \anywhere{start_b.135,nuc,xshift=-3em,yshift=2em}{\chemfig{H-@{O}\chemabove{\lewis{026,O}}{\hspace{5mm}\fscrm}}}
- % electron movements:
- \anywhere{nuc.0}{
- \elmove{O}{90:1.5cm}{H}{180:1cm}
- \elmove{b1}{60:1cm}{b2}{90:5mm}
- \elmove{b3}{-170:5mm}{X1}{180:5mm}
- \elmove{O}{-90:1cm}{C}{100:1.5cm}
- \elmove{b4}{-170:5mm}{X2}{180:5mm}
- }
-\end{rxnscheme}
-
-You may see in line 20 that the \cmd{elmove} commands are put inside of
-\cmd{anywhere}. This is necessary in order to produce the right scheme. But this
-time you can position \cmd{anywhere} literally anywhere.
-\begin{beispiel}[code only]
- \begin{rxnscheme}{Substitution vs. Elimination}
- % first reaction:
- \reactant[,start_a]{\chemfig{@{H}H-[@{b1}:-60]\chemabove{C}{\scriptstyle\beta}(<[:-100]H)(<:[:-150]H)-[@{b2}]\chemabove{C}{\scriptstyle\alpha}(<[:20]H)(<:[:60]H)-[@{b3}:-60]@{X1}X}}
- \arrow{\mech[e2}{}
- \reactant{\chemfig{H-[:60]C(-[:120]H)=C(-[:60]H)-[:-60]H}}
- \chemand
- \reactant{\ch{X-}}
- \chemand
- \reactant{\chemfig{O(-[:60]H)-[:-60]H}}
- % second reaction:
- \reactant[start_a.-90,start_b,yshift=-4em]{\chemfig{H-[:-60]C(<[:-100]H)(<:[:-150]H)-@{C}C(<[:20]H)(<:[:60]H)-[@{b4}:-60]@{X2}X}}
- \arrow{\mech[2]}{}
- \reactant{\chemfig{H-[:-60]C(<[:-100]H)(<:[:-150]H)-C(<[:-80]H)(<:[:-30]H)-[:60]OH}}
- \chemand
- \reactant{\ch{X-}}
- % nucleophile/base:
- \anywhere{start_b.135,nuc,xshift=-3em,yshift=2em}{\chemfig{H-@{O}\chemabove{\lewis{026,O}}{\hspace{5mm}\fscrm}}}
- % electron movements:
- \anywhere{nuc.0}{
- \elmove{O}{90:1.5cm}{H}{180:1cm}
- \elmove{b1}{60:1cm}{b2}{90:5mm}
- \elmove{b3}{-170:5mm}{X1}{180:5mm}
- \elmove{O}{-90:1cm}{C}{100:1.5cm}
- \elmove{b4}{-170:5mm}{X2}{180:5mm}
- }
- \end{rxnscheme}
-\end{beispiel}
-
-\section{Scheme with three Lines}\label{sec:three_lines}
-\begin{rxnscheme}{Scheme with three Lines}
- \setatomsep{1.5em}
- \footnotesize
- \reactant[,start]{\chemfig{EtO-(=[2]O)-[:-60](-Br)-[:-120](=[6]O)-[4]EtO}}
- \chemand
- \reactant{\chemfig{*6(-=-=-*5(-(=O)-\chemabove{\lewis{4:,N}}{\fscrm}(-[4,.7,,,draw=none]\chemabove{K}{\fscrp})-(=O)--)=)}}
- \arrow{}{}
- \reactant{\chemfig{*6(-=-=-*5(-(=O)-N(-(-[::-60](=[::-60]O)-[::60]EtO)-[::60](=[::60]O)-[::-60]EtO)-(=O)--)=)}}
- % newline, started with \anywhere:
- \anywhere{start.-90,a,xshift=-4em,yshift=-5em}{}
- \arrow[a.0,,.6]{\chemabove{\lewis{0:,B}}{\fscrm}}{}
- \arrow{\ch{R-X}}{}
- \reactant{\chemfig{*6(-=-=-*5(-(=O)-N(-(-[4]R)(-[::-60](=[::-60]O)-[::60]EtO)-[::60](=[::60]O)-[::-60]EtO)-(=O)--)=)}}
- \arrow[,,1.25]{\Hpl/\ch{H2O}}{}
- \reactant{\chemfig{*6(-=-=-*5(-(=O)-N(-(-[4]R)(-[::-60](=[::-60]O)-[::60]HO_2C)-[::60](=[::60]O)-[::-60]HO_2C)-(=O)--)=)}}
- % newline, started with \anywhere:
- \anywhere{a.-90,b,yshift=-7em}{}
- \arrow[b.0]{$- {\ch{CO2}}$}{}
- \arrow{\Hpl}{\ch{H2O}}
- \reactant{\chemfig{R-(-[6]H)(-[2]C|O_2\mch)-NH_3\pch}}
-\end{rxnscheme}
-\begin{beispiel}[code only]
- \begin{rxnscheme}{Scheme with three Lines}
- \setatomsep{1.5em}
- \footnotesize
- \reactant[,start]{\chemfig{EtO-(=[2]O)-[:-60](-Br)-[:-120](=[6]O)-[4]EtO}}
- \chemand
- \reactant{\chemfig{*6(-=-=-*5(-(=O)-\chemabove{\lewis{4:,N}}{\fscrm}(-[4,.7,,,draw=none]\chemabove{K}{\fscrp})-(=O)--)=)}}
- \arrow{}{}
- \reactant{\chemfig{*6(-=-=-*5(-(=O)-N(-(-[::-60](=[::-60]O)-[::60]EtO)-[::60](=[::60]O)-[::-60]EtO)-(=O)--)=)}}
- % newline, started with \anywhere:
- \anywhere{start.-90,a,xshift=-4em,yshift=-5em}{}
- \arrow[a.0,,.6]{\chemabove{\lewis{0:,B}}{\fscrm}}{}
- \arrow{\ch{R-X}}{}
- \reactant{\chemfig{*6(-=-=-*5(-(=O)-N(-(-[4]R)(-[::-60](=[::-60]O)-[::60]EtO)-[::60](=[::60]O)-[::-60]EtO)-(=O)--)=)}}
- \arrow[,,1.25]{\Hpl/\ch{H2O}}{}
- \reactant{\chemfig{*6(-=-=-*5(-(=O)-N(-(-[4]R)(-[::-60](=[::-60]O)-[::60]HO_2C)-[::60](=[::60]O)-[::-60]HO_2C)-(=O)--)=)}}
- % newline, started with \anywhere:
- \anywhere{a.-90,b,yshift=-7em}{}
- \arrow[b.0]{$- {\ch{CO2}}$}{}
- \arrow{\Hpl}{\ch{H2O}}
- \reactant{\chemfig{R-(-[6]H)(-[2]C|O_2\mch)-NH_3\pch}}
- \end{rxnscheme}
-\end{beispiel}
-
-
-\section{Hydratisation}\label{sec: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}}}%
-A scheme with transition states.
-
-\begin{rxnscheme}{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[,<=>,.7]{}{}
- \reactant{\chemfig{R_2C(-[:60]\chemabove{O}{\fscrp}H_2)-[:-60]OH}}
- \arrow[below right,<=>,.7]{$-\Hpl$}{}
- \reactant[below right]{\chemfig{R_2C(-[:60]OH)-[:-60]OH}}
- \arrow[below left,<=>,.7]{}{\ch{H2O}}
- \reactant[below left,zw]{\chemfig{R_2C(-[:60]OH)-[:-60]O|\mch}}
- \arrow[left,<=>,.7]{}{}
- \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:
-\begin{beispiel}[code only]
- \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{beispiel}
-Now the delocalized double bond can be used via \paket*{chemfig}'s fifth option
-(see the \paket{chemfig} manual):
-\begin{beispiel}[code only]
- \chemfig{-[,,,,lddbond]-[,,,,rddbond]}
-\end{beispiel}
-\chemfig{-[,,,,lddbond]-[,,,,rddbond]}\par\medskip
-
-Then the whole code looks like follows:
-\begin{beispiel}[code only]
- \begin{rxnscheme}{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[,<=>,.7]{}{}
- \reactant{\chemfig{R_2C(-[:60]\chemabove{O}{\fscrp}H_2)-[:-60]OH}}
- \arrow[below right,<=>,.7]{$-\Hpl$}{}
- \reactant[below right]{\chemfig{R_2C(-[:60]OH)-[:-60]OH}}
- \arrow[below left,<=>,.7]{}{\ch{H2O}}
- \reactant[below left,zw]{\chemfig{R_2C(-[:60]OH)-[:-60]O|\mch}}
- \arrow[left,<=>,.7]{}{}
- \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{beispiel}
-You can see that \cmd{anywhere} was used several times, either to place molecules
-or to label molecules.
-
-\section{Esterification}\label{sec:veresterung}
-\begin{rxnscheme}{Esterification}
- \reactant{\chemfig{H-C(=[:60]O)-[:-60]O-H}}
- \arrow[,-+>,1.5,protolysis]{\ch{H2SO4}}{\ch{HSO4-}}
- \anywhere{below=of protolysis,,yshift=1em}{\tiny protolysis}
- \mesomeric{
- \reactant{\chemfig{H-@{a2}C(-[:60]O-H)(-[:30,.5,,,draw=none]{\fscrp})-[:-60]O-H}}
- \marrow
- \reactant{\chemfig{H-C(=[:60]\chemabove{O}{\fscrp}-H)-[:-60]O-H}}
- }
- \branch[below,,xshift=-5em]{
- \arrow[below,<=>]{\chemfig{H-[:120]@{a1}O-[:60]CH_3}}{\tiny addition}
- \reactant[below]{\chemfig{H-C(-[2]O-[:30]H)(-\chemabove{O}{\fscrp}(-[:60]CH_3)-[:-60]H)-[6]O-[:-30]H}\elmove{a1}{90:1.5cm}{a2}{0:3cm}}
- }
- \branch[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}\fscrp}(-[:-150]H)-[:-30]H}\elmove{b1}{0:5mm}{a3}{20:5mm}}
- \arrow[below,<=>]{$- {\ch{H2O}}$}{\tiny elimination}
- \mesomeric[below,,xshift=6em]{
- \reactant{\chemfig{H-C(-[:60]O-H)(-[,.5,,,draw=none]{\fscrp})-[:-60]O-CH_3}}
- \marrow
- \reactant{\chemfig{H-C(=[:60]\chemabove{O}{\fscrp}-H)-[:-60]O-CH_3}}
- }
- \arrow[,-+>,1.5]{\ch{HSO4-}}{\ch{H2SO4}}
- \reactant{\chemfig{H-C(=[:60]O)-[:-60]O-CH_3}}
-\end{rxnscheme}
-
-\begin{beispiel}[code only]
- \begin{rxn}{Esterification}
- \reactant{\chemfig{H-C(=[:60]O)-[:-60]O-H}}
- \arrow[,-+>,1.2,protolysis]{\ch{H2SO4}}{\ch{HSO4-}}
- \anywhere{below=of protolysis,,yshift=1em}{\tiny protolysis}
- \mesomeric{
- \reactant{\chemfig{H-@{a2}C(-[:60]O-H)(-[:30,.5,,,draw=none]{\fscrp})-[:-60]O-H}}
- \marrow
- \reactant{\chemfig{H-C(=[:60]\chemabove{O}{\fscrp}-H)-[:-60]O-H}}
- }
- \branch[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}{\fscrp}(-[:60]CH_3)-[:-60]H)-[6]O-[:-30]H}
- \elmove{a1}{90:1.5cm}{a2}{0:3cm}
- }
- }
- \branch[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}\fscrp}(-[:-150]H)-[:-30]H}
- \elmove{b1}{0:5mm}{a3}{20:5mm}
- }
- \arrow[below,<=>]{$- {\ch{H2O}}$}{\tiny elimination}
- \mesomeric[below,,xshift=6em]{
- \reactant{\chemfig{H-C(-[:60]O-H)(-[,.5,,,draw=none]{\fscrp})-[:-60]O-CH_3}}
- \marrow
- \reactant{\chemfig{H-C(=[:60]\chemabove{O}{\fscrp}-H)-[:-60]O-CH_3}}
- }
- \arrow[,-+>,1.2]{\ch{HSO4-}}{\ch{H2SO4}}
- \reactant{\chemfig{H-C(=[:60]O)-[:-60]O-CH_3}}
- \end{rxnscheme}
-\end{beispiel}
-
-\section{Electrophilic Addition}\label{sec:elektrophile_addition}
-This scheme forms a circle.
-\begin{rxnscheme}{Electrophilic Addition}
- \setarrowlength{3em}
- \reactant{\chemfig{>[:-20]C(<[:40])=[6]C(<[:-130])<[:-20]}}
- \chemand[,plus]
- \reactant{\chemfig{\lewis{246,Br}-\lewis{026,Br}}}
- \arrow[plus.-90,<=>]{\footnotesize fast}{}
- \reactant[-90,attack]{\chemfig{>[:-20]C(<[:40])=[@{db}6]C(<[:-130])<[:-20]}}
- \anywhere{right=of attack}{
- \chemfig{@{Br1}\lewis{246,Br}-[@{b2}]@{Br2}\lewis{026,Br}}
- \elmove{db}{20:5mm}{Br1}{135:5mm}
- \elmove{b2}{-120:5mm}{Br2}{-120:5mm}
- }
- % to the left:
- \arrow[attack.-135,<=>,2]{$- {\ch{Br-}}$}{\footnotesize slow}
- \reactant[-135,carbenium_a]{\vflipnext\chemfig{-[:-30]\chembelow{C}{\fscrp}(-[:30])-[6]C(<[:-150])(<:[:-100])-[:-30]\lewis{137,Br}}}
- \anywhere{below=of carbenium_a}{\footnotesize carbenium ion}
- \arrow[,<<=>]{}{}
- \reactant[,bromonium]{\chemfig{>:[:-60]C?(<[:160])-[6]C(<[:-110])(<:[:-150])-[:30]\lewis{17,Br}?-[4,.5,,,draw=none]{\fscrp}}}
- \anywhere{below=of bromonium,,yshift=.35em}{\footnotesize bromonium ion}
- % to the right:
- \arrow[attack.-45,<=>,2]{\footnotesize slow}{$- {\ch{Br-}}$}
- \reactant[-45,carbenium_b]{\chemfig{-[:-30]\chemabove{C}{\fscrp}(-[:30])-[6]C(<:[:-150])(<[:-100])-[:-30]\lewis{157,Br}}}
- \anywhere{below=of carbenium_b}{\footnotesize carbenium ion}
- \arrow[left,<<=>]{}{}
- \mCsetup{reset}
-\end{rxnscheme}
-
-\begin{beispiel}[code only]
- \begin{rxnscheme}{Electrophilic Addition}
- \setarrowlength{3em}
- \reactant{\chemfig{>[:-20]C(<[:40])=[6]C(<[:-130])<[:-20]}}
- \chemand[,plus]
- \reactant{\chemfig{\lewis{246,Br}-\lewis{026,Br}}}
- \arrow[plus.-90,<=>]{\footnotesize fast}{}
- \reactant[-90,attack]{\chemfig{>[:-20]C(<[:40])=[@{db}6]C(<[:-130])<[:-20]}}
- \anywhere{right=of attack}{
- \chemfig{@{Br1}\lewis{246,Br}-[@{b2}]@{Br2}\lewis{026,Br}}
- \elmove{db}{20:5mm}{Br1}{135:5mm}
- \elmove{b2}{-120:5mm}{Br2}{-120:5mm}
- }
- % to the left:
- \arrow[attack.-135,<=>,2]{$- {\ch{Br-}}$}{\footnotesize slow}
- \reactant[-135,carbenium_a]{\vflipnext\chemfig{-[:-30]\chembelow{C}{\fscrp}(-[:30])-[6]C(<[:-150])(<:[:-100])-[:-30]\lewis{137,Br}}}
- \anywhere{below=of carbenium_a}{\footnotesize carbenium ion}
- \arrow[,<<=>]{}{}
- \reactant[,bromonium]{\chemfig{>:[:-60]C?(<[:160])-[6]C(<[:-110])(<:[:-150])-[:30]\lewis{17,Br}?-[4,.5,,,draw=none]{\fscrp}}}
- \anywhere{below=of bromonium,,yshift=.35em}{\footnotesize bromonium ion}
- % to the right:
- \arrow[attack.-45,<=>,2]{\footnotesize slow}{$- {\ch{Br-}}$}
- \reactant[-45,carbenium_b]{\chemfig{-[:-30]\chemabove{C}{\fscrp}(-[:30])-[6]C(<:[:-150])(<[:-100])-[:-30]\lewis{157,Br}}}
- \anywhere{below=of carbenium_b}{\footnotesize carbenium ion}
- \arrow[left,<<=>]{}{}
- \mCsetup{reset}
- \end{rxnscheme}
-\end{beispiel}
-
-\section{Activation of Fatty Acids}\label{sec:activation_fatty_acid}
-\begin{rxnscheme}{Activation of Fatty Acids}
- \reactant[,ATP]{\chemfig{\chemabove{O}{\hspace*{-5mm}\fscrm}-P(=[2]O)(-[6]\chembelow{O}{\fscrm})-O-P(=[2]O)(-[6]\chembelow{O}{\fscrm})-@{O1}O-[@{b1}]@{P}P(=[2]O)(-[6]\chembelow{O}{\fscrm})-O-CH_2-[6,1.5,1](-[6,.5])(-[:20,1.3]O?[a])<[7](-[2,.5])(-[6]OH)-[,,,,line width=3pt](-[2,.5])(-[6]OH)>[1]?[a](-[6,.5])-[2,1.5]N?[b]-[:18]([:30]*6(-N=-N=(-NH_2)-=))-[:90]-[:162]N=^[:-126]?[b]}}
- \anywhere{below right=of ATP,,xshift=-4em,yshift=3em}{\bfseries ATP}
- \arrow[below,,1.5]{}{\chemname{\chemfig{R-C(=[:-60]O)-[:60]@{O2}O-[@{b2}]H}}{fatty acid}}
- \branch[on chain=going below]{
- \reactant[,pyrophosphat]{
- \chemfig{\chemabove{O}{\hspace*{-5mm}\fscrm}-P(=[2]O)(-[6]\chembelow{O}{\fscrm})-O-P(=[2]O)(-[6]\chembelow{O}{\fscrm})-\chemabove{O}{\hspace*{5mm}\fscrm}}
- \elmove{b1}{100:1cm}{O1}{90:5mm}
- \elmove{O2}{135:1cm}{P}{-135:1cm}
- \elmove{b2}{-90:5mm}{O2}{-60:5mm}
- }
- \anywhere{below=of pyrophosphat}{pyrophosphate PP$_\text{i}$}
- \chemand
- \reactant[,acyl-amp]{\chemfig{R-@{C}C(=[:-60]O)-[@{b3}:60]@{O3}O-P(-[6]\chembelow{O}{\fscrm})(=[2]O)-O-CH_2-[6,,1,1]r|ibos|e-[2,1.05,3,1]a|denine}}
- \anywhere{below=of acyl-amp}{\bfseries acyl-AMP}
- }
- \branch[on chain=going below,,xshift=-8em]{
- \arrow[below]{\ch{H2O}}{}
- \reactant[below,Pi]{2~\chemfig{HO-P(=[2]O)(-[6]\chembelow{O}{\fscrm})-O}}
- \anywhere{below right=of Pi}{P$_\text{i}$}
- }
- \branch[,,xshift=4em]{
- \arrow[below,-+>]{\chemfig{CoA-@{S}S-[@{b4}:-60]H}}{AMP}
- \reactant[below,acyl-SCoA]{
- \chemfig{R-C(=[:-60]O)-[:60]S-CoA}
- \elmove{S}{45:3cm}{C}{-120:2cm}
- \elmove{b3}{135:5mm}{O3}{110:7mm}
- \elmove{b4}{-120:7mm}{S}{-100:5mm}
- }
- \anywhere{below=of acyl-SCoA}{acyl-SCoA}
- }
-\end{rxnscheme}
-
-\begin{beispiel}[code only]
- \begin{rxnscheme}{Activation of Fatty Acids}
- \reactant[,ATP]{\chemfig{\chemabove{O}{\hspace*{-5mm}\fscrm}-P(=[2]O)(-[6]\chembelow{O}{\fscrm})-O-P(=[2]O)(-[6]\chembelow{O}{\fscrm})-@{O1}O-[@{b1}]@{P}P(=[2]O)(-[6]\chembelow{O}{\fscrm})-O-CH_2-[6,1.5,1](-[6,.5])(-[:20,1.3]O?[a])<[7](-[2,.5])(-[6]OH)-[,,,,line width=3pt](-[2,.5])(-[6]OH)>[1]?[a](-[6,.5])-[2,1.5]N?[b]-[:18]([:30]*6(-N=-N=(-NH_2)-=))-[:90]-[:162]N=^[:-126]?[b]}}
- \anywhere{below right=of ATP,,xshift=-4em,yshift=3em}{\bfseries ATP}
- \arrow[below,,1.5]{\chemname{\chemfig{R-C(=[:-60]O)-[:60]@{O2}O-[@{b2}]H}}{fatty acid}}{}
- \branch[on chain=going below]{
- \reactant[,pyrophosphat]{
- \chemfig{\chemabove{O}{\hspace*{-5mm}\fscrm}-P(=[2]O)(-[6]\chembelow{O}{\fscrm})-O-P(=[2]O)(-[6]\chembelow{O}{\fscrm})-\chemabove{O}{\hspace*{5mm}\fscrm}}
- \elmove{b1}{100:1cm}{O1}{90:5mm}
- \elmove{O2}{135:1cm}{P}{-135:1cm}
- \elmove{b2}{-90:5mm}{O2}{-60:5mm}
- }
- \anywhere{below=of pyrophosphat}{pyrophosphate PP$_\text{i}$}
- \chemand
- \reactant[,acyl-amp]{\chemfig{R-@{C}C(=[:-60]O)-[@{b3}:60]@{O3}O-P(-[6]\chembelow{O}{\fscrm})(=[2]O)-O-CH_2-[6,,1,1]r|ibos|e-[2,1.05,3,1]A|denine}}
- \anywhere{below=of acyl-amp}{\bfseries acyl-AMP}
- }
- \branch[on chain=going below,,xshift=-8em]{
- \arrow[below]{\ch{H2O}}{}
- \reactant[below,Pi]{2~\chemfig{HO-P(=[2]O)(-[6]\chembelow{O}{\fscrm})-O}}
- \anywhere{below right=of Pi}{P$_\text{i}$}
- }
- \branch[,,xshift=4em]{
- \arrow[below,-+>]{\chemfig{CoA-@{S}S-[@{b4}:-60]H}}{AMP}
- \reactant[below,acyl-SCoA]{
- \chemfig{R-C(=[:-60]O)-[:60]S-CoA}
- \elmove{S}{135:2cm}{C}{-135:1cm}
- \elmove{b3}{-45:5mm}{O3}{-70:7mm}
- \elmove{b4}{-120:7mm}{S}{-100:5mm}
- }
- \anywhere{below=of acyl-SCoA}{acyl-SCoA}
- }
- \end{rxnscheme}
-\end{beispiel}
-
-\section{Change the layout with \TikZ}\label{sec:tikz_layout}
-\begin{rxnscheme}{Change the layout with \TikZ}
- \colorlet{mCgreen}{green!50!gray}
- \colorlet{mCblue}{cyan!50!gray}
- \colorlet{mCred}{magenta!50!gray}
- \tikzset{reactant/.style={draw=#1,fill=#1!10,minimum width=.8\textwidth,inner sep=1em,rounded corners}}
- \mCsetup{arrowlength=3em,arrowline=very thick}
- \reactant[,,reactant=mCgreen]{
- \chemname{\chemfig{Alky|l--[6](-[4,,,2]Acy|l)-[6]-O-P(=[2]O)(-[6]O|\mch)-O-[:-30]-[:30]-[:-30]NH_2}}{\bfseries Phosphatidylethanolamine}
- }
- \arrow[below]{\iupac{\N\-acyl\|transferase}}{}
- \reactant[below,,reactant=mCblue]{
- \chemname{\chemfig{Alky|l--[6](-[4,,,2]Acy|l)-[6]-O-P(=[2]O)(-[6]O|\mch)-O-[:-30]-[:30]-[:-30]\chembelow{N}{H}-[:30](=[2]O)-[:-30]-[:30]-[:-30]-[:30]=_-[:-30]-[:30]=_-[:-60]-[::-60]=_[:180]-[::-30]-[::60]=_[:180]-[::-30]-[::60]-[::-60]-[::60]-[6]}}{\bfseries\iupac{\N\-arachidonoyl\-PE}}
- }
- \arrow[below]{Phospholipase D}{}
- \reactant[below,,reactant=mCred]{
- \chemname{\chemfig{HO-[:-30]-[:30]-[:-30]\chembelow{N}{H}-[:30](=[2]O)-[:-30]-[:30]-[:-30]-[:30]=_-[:-30]-[:30]=_-[:-60]-[::-60]=_[:180]-[::-30]-[::60]=_[:180]-[::-30]-[::60]-[::-60]-[::60]-[6]}}{\bfseries Anandamide}
- }
- \mCsetup{reset}
-\end{rxnscheme}
-
-This is an example for the usage of the \code{<tikz>} option. Please take a closer
-look at lines \numlist{5;7;11;15}.
-\begin{beispiel}[code only]
- \begin{rxnscheme}{Change the layout with \TikZ}
- \colorlet{mCgreen}{green!50!gray}
- \colorlet{mCblue}{cyan!50!gray}
- \colorlet{mCred}{magenta!50!gray}
- !!\tikzset{reactant/.style={draw=#1,fill=#1!10,minimum width=.8\textwidth,inner sep=1em,rounded corners}}!!
- \mCsetup{arrowlength=3em,arrowline=very thick}
- \reactant[,,!!reactant=mCgreen!!]{
- \chemname{\chemfig{Alky|l--[6](-[4,,,2]Acy|l)-[6]-O-P(=[2]O)(-[6]O|\mch)-O-[:-30]-[:30]-[:-30]NH_2}}{\bfseries Phosphatidylethanolamine}
- }
- \arrow[below]{}{\iupac{\N-acyl\|transferase}}
- \reactant[below,,!!reactant=mCblue!!]{
- \chemname{\chemfig{Alky|l--[6](-[4,,,2]Acy|l)-[6]-O-P(=[2]O)(-[6]O|\mch)-O-[:-30]-[:30]-[:-30]\chembelow{N}{H}-[:30](=[2]O)-[:-30]-[:30]-[:-30]-[:30]=_-[:-30]-[:30]=_-[:-60] -[::-60]=_[:180]-[::-30]-[::60]=_[:180]-[::-30]- [::60]-[::-60]-[::60]-[6]}}{\bfseries\iupac{\N\-arachidonoyl\-PE}}
- }
- \arrow[below]{}{Phospholipase D}
- \reactant[below,,!!reactant=mCred!!]{
- \chemname{\chemfig{HO-[:-30]-[:30]-[:-30]\chembelow{N}{H}-[:30](=[2]O)-[:-30]-[:30]-[:-30]-[:30]=_-[:-30]-[:30]=_-[:-60] -[::-60]=_[:180]-[::-30]-[::60]=_[:180]-[::-30]- [::60]-[::-60]-[::60]-[6]}}{\bfseries Anandamide}
- }
- \mCsetup{reset}
- \end{rxnscheme}
-\end{beispiel}
-
-\section{Claisen-Kondensation}
-\begin{rxnscheme}{Claisen-Kondensation}
- \colorlet{mCred}{red!50!gray}
- \setatomsep{1.5em}
- % Ergebnis:
- \branch[,one,draw=mCred,fill=mCred!10,rounded corners,inner sep=.5em]{
- \reactant{\chemfig{[:30]-(=[2]O)-[:-30]O--[:-30]}}
- \chemand
- \reactant{\chemfig{[:30]-(=[2]O)-[:-30]O--[:-30]}}
- \arrow[,,2]{\ch{NaOEt}, \ch{EtOH}}{}
- \reactant{\chemfig{[:30]-(=[2]O)-[:-30]-(=[2]O)-[:-30]O--[:-30]}}
- }
- % Mechanismus:
- \branch[-90,,xshift=-13.5em]{
- \arrow[-90,<<=>]{\ch{^-OEt}}{}
- }
- \mesomeric[-90,two,xshift=4.5em]{
- \reactant{\chemfig{[:30](-[:150,.3,,,draw=none]@{C1}\fscrm)-(=[2]O)-[:-30]O--[:-30]}}
- \marrow
- \reactant{\chemfig{[:30]=(-[2]O|\mch)-[:-30]O--[:-30]}}
- }
- \chemand
- \reactant{\ch{EtOH}}
- \branch[two.-90,three,xshift=-5.5em]{
- \arrow[-90,<=>,,,both]{\chemfig[][scale=.7]{[:30]-@{C2}(=[@{b1}2]O@{O1})-[:-30]O--[:-30]}}{}
- }
- \reactant[three.-90]{\chemfig{-(-[@{b2}2]@{O2}O|\mch)(-[6]-[:-30](=[6]O)-[:30]O-[:-30]-[:30])-[@{b3}]@{O3}O-[:30]-[:-30]}}
- \arrow[,<=>]{}{}
- \reactant[,four]{\chemfig{[:30]-(=[2]O)-[:-30]@{C3}(-[:-120]H)(-[@{b4}:-60]H@{H})-(=[2]O)-[:-30]O--[:-30]}}
- \chemand
- \reactant{\chemfig{\mch @{O4}OEt}}
- \arrow[four.-90]{}{}
- \mesomeric[-90]{
- \reactant{\chemfig{[:30]-(=[2]O)-[:-30]=(-[2]O|\mch)-[:-30]O--[:-30]}}
- \marrow
- \reactant{\chemfig{[:30]-(=[2]O)-[:-30](-[6,.3,,,draw=none]\fscrm)-(=[2]O)-[:-30]O--[:-30]}}
- \marrow
- \reactant{\chemfig{[:30]-(-[2]O|\mch)=[:-30]-(=[2]O)-[:-30]O--[:-30]}}
- }
- \arrow[-90]{\Hpl, \ch{H2O}}{}
- \reactant[-90]{\chemfig{[:30]-(=[2]O)-[:-30]-(=[2]O)-[:-30]O--[:-30]}}
- \anywhere{one.0}{
- \elmove{C1}{-100:2cm}{C2}{-90:2cm}
- \elmove{b1}{10:5mm}{O1}{0:5mm}
- \elmove{O2}{180:5mm}{b2}{180:5mm}
- \elmove{b3}{80:5mm}{O3}{90:5mm}
- \elmove{b4}{0:5mm}{C3}{0:7mm}
- \elmove{O4}{-90:1cm}{H}{-45:1cm}
- }
-\end{rxnscheme}
-
-\begin{beispiel}[code only]
- \begin{rxnscheme}{Claisen-Kondensation}
- \colorlet{mCred}{red!50!gray}
- \setatomsep{1.5em}
- % Ergebnis:
- \branch[,one,draw=mCred,fill=mCred!10,rounded corners,inner sep=.5em]{
- \reactant{\chemfig{[:30]-(=[2]O)-[:-30]O--[:-30]}}
- \chemand
- \reactant{\chemfig{[:30]-(=[2]O)-[:-30]O--[:-30]}}
- \arrow[,,2]{\ch{NaOEt}, \ch{EtOH}}{}
- \reactant{\chemfig{[:30]-(=[2]O)-[:-30]-(=[2]O)-[:-30]O--[:-30]}}
- }
- % Mechanismus:
- \branch[-90,,xshift=-13.5em]{
- \arrow[-90,<=>]{\ch{^-OEt}}{}
- }
- \mesomeric[-90,two,xshift=4.5em]{
- \reactant{\chemfig{[:30](-[:150,.3,,,draw=none]@{C1}\fscrm)-(=[2]O)-[:-30]O--[:-30]}}
- \marrow
- \reactant{\chemfig{[:30]=(-[2]O|\mch)-[:-30]O--[:-30]}}
- }
- \chemand
- \reactant{\ch{EtOH}}
- \branch[two.-90,three,xshift=-5.5em]{
- \arrow[-90,<=>,,,both]{\chemfig[][scale=.7]{[:30]-@{C2}(=[@{b1}2]O@{O1})-[:-30]O--[:-30]}}{}
- }
- \reactant[three.-90]{\chemfig{-(-[@{b2}2]@{O2}O|\mch)(-[6]-[:-30](=[6]O)-[:30]O-[:-30]-[:30])-[@{b3}]@{O3}O-[:30]-[:-30]}}
- \arrow[,<=>]{}{}
- \reactant[,four]{\chemfig{[:30]-(=[2]O)-[:-30]@{C3}(-[:-120]H)(-[@{b4}:-60]H@{H})-(=[2]O)-[:-30]O--[:-30]}}
- \chemand
- \reactant{\chemfig{\mch @{O4}OEt}}
- \arrow[four.-90]{}{}
- \mesomeric[-90]{
- \reactant{\chemfig{[:30]-(=[2]O)-[:-30]=(-[2]O|\mch)-[:-30]O--[:-30]}}
- \marrow
- \reactant{\chemfig{[:30]-(=[2]O)-[:-30](-[6,.3,,,draw=none]\fscrm)-(=[2]O)-[:-30]O--[:-30]}}
- \marrow
- \reactant{\chemfig{[:30]-(-[2]O|\mch)=[:-30]-(=[2]O)-[:-30]O--[:-30]}}
- }
- \arrow[-90]{\Hpl, \ch{H2O}}{}
- \reactant[-90]{\chemfig{[:30]-(=[2]O)-[:-30]-(=[2]O)-[:-30]O--[:-30]}}
- \anywhere{one.0}{
- \elmove{C1}{-100:2cm}{C2}{-90:2cm}
- \elmove{b1}{10:5mm}{O1}{0:5mm}
- \elmove{O2}{180:5mm}{b2}{180:5mm}
- \elmove{b3}{80:5mm}{O3}{90:5mm}
- \elmove{b4}{0:5mm}{C3}{0:7mm}
- \elmove{O4}{-90:1cm}{H}{-45:1cm}
- }
- \end{rxnscheme}
-\end{beispiel}
-
-
-\section{Extensive Synthesis}\label{sec:tikzsynthese}
-As last example we can create extensive syntheses, using the \cmd{merge} command.
-\begin{rxnscheme}[,,,.8]{Extensive Synthesis}
- \setatomsep{1.5em}
- \branch[,start_left]{
- \reactant{\chemfig{=_[::30]-[::-60]-[::60](-[::-60])(-[::120])-[::0]OH}}
- \arrow[below]{\ch{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]{\ch{NaOH}}{\ch{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}}{\iupac{3\-methyl\-2\-butenoic acid}}}
- \arrow[below]{\ch{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]\fminus)-[::-60]CO_2CH_3}}
- \arrow[below,,.5]{}{}
- \arrow[below,,.5]{\ch{KOH}}{}
- \reactant[below]{\chemname{\chemfig{-[::-30](-[::-60])=^[::60]>[::-60](-[::90,1.2])-[::30,1.2](-[::120,1.2](-[::-60])-[::0])<:[::-30]COOH}}{\iupac{\trans\-chrysanthemum acid}}}
- }
- \merge{target_one}{start_left}{start_center}
- \merge[\ch{NaOCH3}]{target_two}{target_one}{start_right}
-\end{rxnscheme}
-\begin{beispiel}[code only]
- \begin{rxnscheme}[,,,.8]{Extensive Synthesis}
- \setatomsep{1.5em}
- \branch[,start_left]{
- \reactant{\chemfig{=_[::30]-[::-60]-[::60](-[::-60])(-[::120])-[::0]OH}}
- \arrow[below]{\ch{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]{\ch{NaOH}}{\ch{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}}{\iupac{3\-methyl\-2\-butenoic acid}}}
- \arrow[below]{\ch{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]\fminus)-[::-60]CO_2CH_3}}
- \arrow[below,,.5]{}{}
- \arrow[below,,.5]{\ch{KOH}}{}
- \reactant[below]{\chemname{\chemfig{-[::-30](-[::-60])=^[::60]>[::-60](-[::90,1.2])-[::30,1.2](-[::120,1.2](-[::-60])-[::0])<:[::-30]COOH}}{\iupac{\trans\-chrysanthemum acid}}
- }
- \merge{target_one}{start_left}{start_center}
- \merge[\ch{NaOCH3}]{target_two}{target_one}{start_right}
- \end{rxnscheme}
-\end{beispiel}
-
-\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/mychemistry/mychemistry_en.pdf b/Master/texmf-dist/doc/latex/mychemistry/mychemistry_en.pdf
deleted file mode 100644
index daffa005e0e..00000000000
--- a/Master/texmf-dist/doc/latex/mychemistry/mychemistry_en.pdf
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/mychemistry/mychemistry_en.tex b/Master/texmf-dist/doc/latex/mychemistry/mychemistry_en.tex
deleted file mode 100644
index 269b8fecbfd..00000000000
--- a/Master/texmf-dist/doc/latex/mychemistry/mychemistry_en.tex
+++ /dev/null
@@ -1,1724 +0,0 @@
-% arara: pdflatex
-% arara: pdflatex
-% arara: makeindex: { sort: on, style: mychemistry_en.ist }
-% arara: pdflatex
-% --------------------------------------------------------------------------
-% the MYCHEMISTRY package
-%
-% create reaction schemes with LaTeX and chemfig
-%
-% --------------------------------------------------------------------------
-% Clemens Niederberger
-% Web: https://www.bitbucket.org/cgnieder/mychemistry
-% E-Mail: contact@mychemistry.eu
-% --------------------------------------------------------------------------
-% If you have any ideas, questions, suggestions or bugs to report, please
-% feel free to contact me.
-% --------------------------------------------------------------------------
-% Copyright 2011--2012 Clemens Niederberger
-%
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3
-% of this license or (at your option) any later version.
-% The latest version of this license is in
-% http://www.latex-project.org/lppl.txt
-% and version 1.3 or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
-%
-% This work has the LPPL maintenance status `maintained'.
-%
-% The Current Maintainer of this work is Clemens Niederberger.
-%
-% This work consists of the files modiagram.sty, modiagram_en.tex,
-% README and the derived file modiagram_en.pdf.
-% --------------------------------------------------------------------------
-% \errorcontextlines=999
-\documentclass[toc=index,DIV10]{cnpkgdoc}
-\docsetup{
- pkg = [draft]mychemistry,
- subtitle = Create Reaction Schemes with \LaTeXe\ and Chemfig ,
- code-box = {
- skipbelow = .5\baselineskip plus .5ex minus .5ex ,
- skipabove = .5\baselineskip plus .5ex minus .5ex ,
- roundcorner = 3pt ,
- innerleftmargin = 1.5em ,
- innerrightmargin = 1.5em
- }
-}
-
-\usepackage{chemnum}
-\usepackage{fnpct}
-\usepackage{booktabs}
-\usepackage{siunitx}
-
-\chemsetup[chemformula]{format=\libertineLF}
-
-\addcmds{
- @addtoreset,
- anywhere,
- arrow,
- branch,
- celsius,
- ch,
- chemabove,
- chemand,
- chembelow,
- chemfig,
- chemname,
- cmpd,
- colorlet,
- command,
- draw,
- elmove,
- floatstyle,
- fpch,
- fplus,
- fscrm,
- fscrp,
- Hpl,
- iupac,
- lewis,
- Lewis,
- listof,
- makeinvisible,
- makevisible,
- marrow,
- mch,
- mCsetup,
- mech,
- mesomeric,
- N,
- node,
- para,
- pch,
- phantom,
- reactant,
- restylefloat,
- setarrowlabel,
- setarrowlength,
- setarrowline,
- setatomsep,
- setatomsize,
- setbondlength,
- setbondshape,
- setcrambond,
- setmergelength,
- setrcndist,
- setrxnalign,
- setschemealign,
- setschemename,
- SI,
- text,
- therxnscheme,
- tikzset,
- trans,
- transition
-}
-
-\usepackage{makeidx}
-\usepackage{filecontents}
-\begin{filecontents*}{\jobname.ist}
- heading_prefix "{\\bfseries "
- heading_suffix "\\hfil}\\nopagebreak\n"
- headings_flag 1
- delim_0 "\\dotfill "
- delim_1 "\\dotfill "
- delim_2 "\\dotfill "
- delim_r "\\nohyperpage{\\textendash}"
- suffix_2p "\\nohyperpage{\\,f.}"
- suffix_3p "\\nohyperpage{\\,ff.}"
-\end{filecontents*}
-
-\makeindex
-
-\begin{document}
-\section{Licence and Requirements}\label{ssec:voraussetzungen}
-Permission is granted to copy, distribute and/or modify this software under the
-terms of the LaTeX Project Public License, version 1.3 or later
-(\url{http://www.latex-project.org/lppl.txt}). This package has the status
-``maintained.''
-
-\mychemistry needs and loads the packages \paket{etoolbox}, \paket{float},
-\paket{xkeyval}, \paket{chemmacros} and \paket{chemfig}. It also loads the
-TikZ-libraries \code{arrows}, \code{positioning}, \code{decorations.pathmorphing},
-\code{shapes}, \code{calc}, \code{matrix}, \code{chains}, \code{scopes} and
-\code{intersections}.
-
-\mychemistry also loads \paket*{translations}\footnote{Part of the
-\paket*{exsheets} package} for proper language support.
-
-\section{Changes}
-With v1.99 (=v2.0beta) package dependencies have changed so that \mychemistry
-loads noticably less packages than before. Most important for you: it does \emph{not}
-load \paket{mhchem} any more. This documentation uses \paket{chemmacros} instead
-which is loaded by \mychemistry.
-
-There are now considerably less package options as most of them are not needed
-any more.
-
-\mychemistry now provides proper language support, \eg, when used together with
-\paket{babel}.
-
-New is the command \cmd{setelmove}. The command \cmd{makevisible} now only has
-an effect if the new option \key{draft} is used.
-
-\section{Background}
-\mychemistry provides two environments within which the mechanisms are created.
-Both environments basically are \code{tikzpicture} environments. When this package
-first was written \paket{chemfig} lacked the possibility of creating reaction
-schemes itself. This was the motivation for me to get started on \mychemistry
-which then rapidly grew and until now has its users.
-
-The background has changed in August 2011, though. Then \paket{chemfig} v1.0 was
-published and now provides simple but powerful macros to create reactions schemes.
-They don't seem to to be used very often but I am advertising as much as I can.
-Anyway, since then \mychemistry can be considered obsolete and is not actively
-developed any more. The current release 1.99 (= 2.0beta) was due to an
-incompatibilty with \paket{pdfpages} and a complete robustification of various
-parts of the code.
-
-\emph{Other than bug fixes this package will very likely \emph{not} be updated
-any more}!
-
-\section{Package options}\label{sec:paketoptionen}
-\mychemistry has a few package options.
-\begin{beschreibung}
- \option{strict} With this option all warning messages are turned into error
- messages.
- \option{draft} This option is an alias to \key{strict}. Additionally it enables
- the \cmd{makevisible} command.
- \option{final} This option is the opposite to \key{draft}, \ie, most error
- messages will be issued as warnings. It also disables the \cmd{makevisible}
- command.
- \option{placement}{<value>} Changes the default floating behaviour of \env{rxnscheme},
- see section~\ref{ssec:rxnscheme}.
-\end{beschreibung}
-
-\section{Usage}
-\subsection{Basic Principle}
-Within the \code{tikzpicture} reactants and arrows are placed as nodes on a
-\code{chain}\footnote{Provided by the tikzlibrary `chains'}.
-
-\begin{beispiel}
- \begin{tikzpicture}[start chain]
- \node [on chain] {A};
- \node [on chain] {B};
- \node [on chain] {C};
- \end{tikzpicture}
-\end{beispiel}
-This way there are several possibilities to place the nodes relative to the others.
-\begin{beispiel}
- \begin{tikzpicture}[start chain=going right,node distance=5mm]
- \node [draw,on chain] {Hello};
- \node [draw,on chain] {World};
- \node [draw,continue chain=going below,on chain] {,};
- \node [draw,on chain] {this};
- \node [draw,on chain] {is};
- \end{tikzpicture}
-\end{beispiel}
-
-Above all \mychemistry uses the possibility of creating branches to the chain.
-\begin{beispiel}
- \begin{tikzpicture}[start chain=going right,node distance=5mm]
- \node [draw,on chain] {A};
- \node [draw,on chain] {B};
- { [start branch]
- \node [on chain=going below] {1};
- \node [on chain=going below] {2};
- }
- { [start branch]
- \node [on chain=going above] {$\alpha$};
- \node [on chain=going above] {$\beta$};
- }
- \node [draw,on chain] {C};
- \end{tikzpicture}
-\end{beispiel}
-You don't have to understand that mechanism in detail but you should remember the
-placement commands in the last example, because \mychemistry uses them in the same
-way.
-
-In some of the examples in this documentation the nodes are boxed with a coloured
-frame (see section~\ref{ssec:makevisible}). This is done so one can see, which size
-they have and which impact changes of the alignment have on them.
-
-\subsection{How does it work?}
-\subsubsection{Basic Commands}
-There are two basic commands:
-\begin{beschreibung}
- \Befehl{reactant}[<pos>,<name>,<tikz>]{<formula>}
- \Befehl{arrow}[<pos>,<type>,<length factor>,<name>,both,<tikz>]{<above>}\ma{<below>}
-\end{beschreibung}
-
-Schemes are created within the \env{rxn}{} environment. There you place reactants
-and arrows.
-\begin{beispiel}
- \begin{rxn}
- \reactant{ \chemfig{-[::30]-[::-60]OH} }
- \arrow{Ox.}{}
- \reactant{ \chemfig{-[::30]=_[::-60]O} }
- \end{rxn}
-\end{beispiel}
-
-When you don't use options reactants and arrows always are put to the right of
-the last object. With the option \code{<pos>} you can change this behaviour.
-\begin{beispiel}
- % positioning using key words
- \begin{rxn}
- \reactant{ \chemfig{-[::30]-[::-60]OH} }
- \arrow[below]{Ox.}{}
- \reactant[below]{ \chemfig{-[::30]=_[::-60]O} }
- \end{rxn}
- % positioning using an angle
- \begin{rxn}
- \reactant{ \chemfig{-[::30]-[::-60]OH} }
- \arrow[180]{}{Ox.}
- \reactant[180]{ \chemfig{-[::30]=_[::-60]O} }
- \end{rxn}
-\end{beispiel}
-
-\begin{table}
- \centering
- \begin{tabular}{>{\ttfamily}l*{2}{>{$}r<{$}}}
- \toprule
- {\normalfont key word} & \text{pos. angle} & \text{neg. angle} \\
- \midrule
- right & 0 & \pm 360 \\
- right above & 45 & -315 \\
- above & 90 & -270 \\
- above left & 135 & -225 \\
- left & 180 & -180 \\
- below left & 225 & -135 \\
- below & 270 & -90 \\
- below right & 315 & -45 \\
- \bottomrule
- \end{tabular}
- \caption{key words for positioning}\label{tab:keywords}
-\end{table}
-
-You can see in the last example that positioning can be realized through key
-words (see table~\ref{tab:keywords}) like \code{below} or by using the angle
-relative to the horizontal line. Every angle from the interval
-$[\ang{-360};\ang{360}]$. \ang{0} corresponds to \code{right} which is the default
-value. \emph{Positive angles} mean a turn \emph{counter clockwise}, negative ones
-a turn clockwise -- like you're used to in mathematics.
-
-\begin{beispiel}
- \begin{rxn}
- \reactant{ \chemfig{-[::30]-[::-60]OH} }
- \arrow[20]{Ox.}{}
- \reactant[20]{ \chemfig{-[::30]=_[::-60]O} }
- \end{rxn}
- \begin{rxn}
- \reactant{ \chemfig{-[::30]-[::-60]OH} }
- \arrow[-20]{Ox.}{}
- \reactant[-20]{ \chemfig{-[::30]=_[::-60]O} }
- \end{rxn}
-\end{beispiel}
-
-\subsubsection{Positioning}
-Reactants and arrows cannot only be positioned through key words and angles. They
-can refer to another reactant or arrow.
-\begin{beispiel}
- \begin{rxn}
- \reactant[,start]{ \chemfig{R-[::30](-[::60]R|^1) (-[::-120]R|^2)-[::-60]OH} }
- \arrow[40]{\tiny$\text{R}^1=\text{H}$} {\tiny$\text{R}^2=\text{H}$}
- \reactant[40]{ \chemfig{R-[::30]=_[::-60]O} }
- \arrow[start.0]{\tiny$\text{R}^1=\text{alkyl}$} {\tiny$\text{R}^2=\text{H}$}
- \reactant{ \chemfig{R-[::30](-[::60]R)=_[::-60]O} }
- \arrow[start.-40,-|>]{\tiny$\text{R}^1=\text{alkyl}$} {\tiny$\text{R}^2=\text{Alkyl}$}
- \end{rxn}
-\end{beispiel}
-In the last example the first reactant got the \code{<name>} \code{start}. The
-arrows in lines 5 and 7 now could refer to it. A \emph{previously given name} can
-act as an anchor for later reactants or arrows, if the positioning is written like
-\code{<anchor>.<angle>}.
-
-Arrows can be given names, too. The anchor point of an arrow always is in the
-middle of the arrow line and has \emph{no} size.
-\begin{beispiel}
- \begin{rxn}
- \reactant{\chemfig{[:60]-(-[::60])=[::-60](-[::-60])-}}
- \arrow[,,,arrow]{}{}
- \reactant[arrow.90]{\ch{H2O}}
- \end{rxn}
-\end{beispiel}
-
-Using this kind of positioning does \emph{not} break the chain.
-\begin{beispiel}[code only]
- \begin{rxn}
- \reactant[,a]{A}
- \arrow{}{}
- \reactant{B}
- \arrow[a.-90]{}{}
- \reactant[-90]{C}
- \arrow[a.180]{}{}
- \reactant[180]{D}
- \end{rxn}
-\end{beispiel}
-
-All seven objects of this example are logically speaking part of the same chain.
-The next object is placed to the right of the last one if no positioning is used.
-\begin{rxn}
- \tikzset{nummer/.style={circle,fill=gray!30,draw=gray,minimum size=3.5mm}}
- \reactant[,a]{A}\arrow[,,,pa]{}{}\reactant[,b]{B}
- \arrow[a.-90,,,pb]{}{}\reactant[-90,c]{C}
- \arrow[a.180,,,pc]{}{}\reactant[180,d]{D}
- \anywhere{a.45,,nummer}{1}
- \anywhere{pa.90,,nummer}{2}
- \anywhere{b.45,,nummer}{3}
- \anywhere{pb.0,,nummer}{4}
- \anywhere{c.45,,nummer}{5}
- \anywhere{pc.90,,nummer}{6}
- \anywhere{d.45,,nummer}{7}
-\end{rxn}
-
-\subsubsection{Branches}
-To break a chain you use the command
-\begin{beschreibung}
- \Befehl{branch}[<pos>,<name>,<tikz>]{<formulae>}
-\end{beschreibung}
-The positioning of a branch is slightly different from earlier objects, although
-the syntax is similar. A branch has two additional ways of positioning. Every
-positioning that refers to an anchor cause that the branch is not a part of the
-chain but is a real branch.
-\begin{description}
- \item[\code{<angle>}] on the chain
- \item[\code{<key>}] on the chain
- \item[\code{<anchor>.<angle>}] not on the chain
- \item[\code{on chain=going <key>}]on the chain
- \item[\code{<key>=of <anchor>}] not on the chain
-\end{description}
-As \code{<key>} you again use the values from table~\ref{tab:keywords}.
-
-\begin{beispiel}
- \begin{rxn}
- \reactant{ \chemfig{-[::30]-[::-60]OH} }
- \arrow{}{}
- \reactant[,carbonyl]{ \chemfig{-[::30]=_[::-60]O} }
- \branch[carbonyl.-90]{
- \arrow[-90,<=>]{\ch{NH2R}}{}
- \reactant[-90]{ \chemfig{-[::30]=_[::-60]N(-[6]H)-[::60]R} }
- }
- \arrow{}{}
- \reactant{ \chemfig{-[::30](-[::60]OH)=_[::-60]O} }
- \end{rxn}
-\end{beispiel}
-
-Please note that in the last example the arrow and the reactant placed after
-branch continue the original chain.
-\begin{beispiel}[code only]
- \begin{rxn}
- \reactant[,a]{A}
- \arrow{}{}
- \reactant{B}
- \branch[a.-90]{
- \arrow[-90]{}{}
- \reactant[-90]{C}
- }
- \arrow[a.180]{}{}
- \reactant[180]{D}
- \end{rxn}
-\end{beispiel}
-
-The chain is broken by the branch which starts a new chain itself.
-\begin{rxn}
- \tikzset{nummer/.style={circle,fill=gray!30,draw=gray,minimum size=3.5mm,overlay}}
- \reactant[,a]{A}\arrow[,,,pa]{}{}\reactant[,b]{B}
- \branch[a.-90]{
- \arrow[-90,,,pb]{}{}\reactant[-90,c]{C}
- \anywhere{pb.0,,nummer}{a}
- \anywhere{c.45,,nummer}{b}
- }
- \arrow[a.180,,,pc]{}{}\reactant[180,d]{D}
- \anywhere{a.45,,nummer}{1}
- \anywhere{pa.90,,nummer}{2}
- \anywhere{b.45,,nummer}{3}
- \anywhere{pc.90,,nummer}{4}
- \anywhere{d.45,,nummer}{5}
-\end{rxn}
-
-Using \cmd{branch} allows to create schemes with several branches:
-\begin{beispiel}
- \begin{rxn}
- \reactant{ \chemfig{-[::30]-[::-60]OH} }
- \arrow{}{}
- \reactant[,carbonyl]{ \chemfig{-[::30]=_[::-60]O} }
- \arrow[-90]{}{}
- \reactant[-90]{ \chemfig{-[::30](-[::60]OH)=_[::-60]O} }
- \branch[right=of carbonyl]{
- \arrow[,<=>,1.12]{\ch{NH2R}}{}
- \reactant{ \chemfig{-[::30]=_[::-60]N(-[6]H)-[::60]R} }
- }
- \branch[below right=of carbonyl]{
- \arrow[-45,<=>,1.12]{ \chemfig{[,.75]-[::30]-[::-60]OH} }{}
- \reactant[-45]{ \chemfig{-[::30](-[::60]O-[::-60]-[::-60])-[::-60]OH} }
- }
- \arrow[carbonyl.90]{ \chemfig{[,.75]-[::30]=_[::-60]O}/\Hpl }{}
- \reactant[90]{ \chemfig{-[::30](-[::60]OH)-[::-60]-[::60]=[::60]O} }
- \arrow{$-\ch{H2O}$}{}
- \reactant{ \chemfig{-[::30]=[::-60]-[::60]=[::60]O} }
- \end{rxn}
-\end{beispiel}
-
-\subsubsection{Numbered Schemes}
-There is another environment to create schemes.
-\begin{beschreibung}
- \Umg{rxnscheme}[<label>,<placement>,<alignment>,<skale factor>,<title>]{<caption>}
-\end{beschreibung}
-
-This is a floating environment for scheme, which can be given a \code{<caption>},
-a \code{<label>} and the common placement identifiers like \code{htp} (default).
-\begin{beispiel}[code and float]
-\begin{rxnscheme}{Keto-Enol-tautomerism}
- \reactant{ \chemfig{=[::30]-[::-60]OH} }
- \arrow[,<=>]{}{}
- \reactant{ \chemfig{-[::30]=[::-60]O} }
-\end{rxnscheme}
-\end{beispiel}
-
-\subsection{Predefined 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 \paket{chemfig}%
--formul\ae\ \emph{inside of \mychemistry environments} some values are predefined
-as follows:
-\begin{beispiel}[code only]
- \setatomsep{1.8em}
- \setcrambond{3pt}{0.5pt}{1pt}
-\end{beispiel}
-Outside the \mychemistry environments the defaults of \paket{chemfig} still are
-set.
-\begin{beispiel}
- \begin{rxn}
- \reactant{\chemfig{**6(------)}}
- \end{rxn}
- \chemfig{**6(------)}
-\end{beispiel}
-
-\mychemistry's defaults can be changed with these commands:
-\begin{beschreibung}
- \Befehl{setbondlength}{<length>}
- \Befehl{setbondshape}{<base length>}\ma{<dash thickness>}\ma{<dash spacing>}
- \Befehl{setatomsize}{<font size>}
-\end{beschreibung}
-With these commands the parameters are changed \emph{for all following}
-\mychemistry environments. If you leave the arguments empty default values are
-restored. Default for \cmd{setatomsize} is \cmd{small}.
-
-\begin{beispiel}
- \setbondlength{2.1em}\setbondshape{5pt}{1pt}{2pt}\setatomsize{\Large}
- \begin{rxn}
- \reactant{\chemfig{-[::30](<[::60])-[::-60](<:[::-60])-[::60]A}}
- \end{rxn}
- \setbondlength{}\setbondshape{}{}{}\setatomsize{}
- \begin{rxn}
- \reactant{\chemfig{-[::30](<[::60])-[::-60](<:[::-60])-[::60]A}}
- \end{rxn}
-\end{beispiel}
-
-If you only want to change the parameters of a single environment you can use
-\paket{chemfig}'s commands and \LaTeX's fontsize commands \emph{inside the
-environment}.
-\begin{beispiel}
- \begin{rxn}
- \setatomsep{2.1em}\setcrambond{5pt}{1pt}{2pt}\Large
- \reactant{\chemfig{-[::30](<[::60])-[::-60](<:[::-60])-[::60]A}}
- \end{rxn}
- \begin{rxn}
- \reactant{\chemfig{-[::30](<[::60])-[::-60](<:[::-60])-[::60]A}}
- \end{rxn}
-\end{beispiel}
-
-The default length of reaction arrows is \SI{4}{em}, the default line width is
-\code{semithick} and the default label distance is \SI{0.2}{em}. You can change
-these default values with the commands
-\begin{beschreibung}
- \Befehl{setarrowlength}{<length>}
- \Befehl{setarrowline}{<line width>}
- \Befehl{setarrowlabel}{<label distance>}
-\end{beschreibung}
-or with
-\begin{beschreibung}
- \befehl{mCsetup}{<options>} valid options are:
- \Option{arrowlength}{<length>}
- \Option{arrowline}{<line width>}
- \Option{arrowlabel}{<label distance>}
-\end{beschreibung}
-
-\section{Advanced Usage, Usage with \TikZ}
-The biggest problem with \mychemistry usually is the correct positioning of
-reactants and arrows. Section~\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 \cmd{node}
-inside a \code{tikzpicture}. If a node is placed with \cmd{node}\oa{<tikz>}%
-\da{<placement>}\ma{<anything>} then \code{<tikz>} is about the same in \eg
-\cmd{reactant}[,,<tikz>]{}. With this you can customize your scheme in many ways.
-
-\subsection{The Alignment Question}\label{ssec:ausrichtungsfrage}
-Since reactants, arrows and branches are aligned centered to the referred object
-the default alignment not always produces nice results.
-\begin{beispiel}
- \makevisible
- \begin{rxn}
- \reactant{ \chemname{\chemfig{*6(-=-=-=)}}{benzene \cmpd{benzene}} }
- \arrow{}{}
- \reactant{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \cmpd{bromobenzene}} }
- \end{rxn}
-\end{beispiel}
-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{beispiel}
- \makevisible
- \begin{rxn}
- \reactant[,,yshift=-1em]{ \chemname{\chemfig{*6(-=-=-=)}}{benzene \cmpd{benzene}} }
- \arrow{}{}
- \reactant{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \cmpd{bromobenzene}} }
- \end{rxn}
-\end{beispiel}
-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 a
-all. The following arrow always is centered to the object before.
-\begin{beispiel}
- \makevisible
- \begin{rxn}
- \reactant{A}
- \chemand
- \reactant[,,yshift=1em]{B}
- \arrow{}{}
- \end{rxn}
-\end{beispiel}
-Since there is no possibility to change the alignment of the arrow itself what
-you can do is put it inside a branch.
-\begin{beispiel}
- \makevisible
- \begin{rxn}
- \reactant{A}
- \chemand
- \reactant[,,yshift=1em]{B}
- \branch[,,yshift=-1em]{\arrow{}{}}
- \end{rxn}
- \begin{rxn}
- \reactant{ \chemname{\chemfig{*6(-=-=-=)}}{benzene \cmpd{benzene}} }
- \branch[,,yshift=1em]{\arrow{}{}}
- \reactant{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \cmpd{bromobenzene}} }
- \end{rxn}
-\end{beispiel}
-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{beispiel}
- \makevisible
- \begin{rxn}
- \reactant{ \chemname{\chemfig{*6(-=-=(-[,,,,draw=none]\phantom{Br})-=)}}{benzene \cmpd{benzene}} }
- \arrow{}{}
- \reactant{ \chemname{\chemfig{*6(-=-=(-Br)-=)}}{bromobenzene \cmpd{bromobenzene}} }
- \end{rxn}
-\end{beispiel}
-In other cases, too, an invisible substituent should be preferred over \TikZ code
-since it's easier and more precise:
-\begin{beispiel}
- \makevisible
- default:
- \begin{rxn}
- \reactant{\chemfig{-[:-30]-[:30](=[2]O)-[:-30]OH}}
- \chemand
- \reactant{\chemfig{HO-[:30]-[:-30]-[:30]}}
- \arrow{[\Hpl]}{\SI{200}{\celsius}}
- \reactant{\chemfig{-[:-30]-[:30](=[2]O)-[:-30]O-[:30]-[:-30]-[:30]}}
- \end{rxn}
- hydroxy groups at the same height through TikZ:
- \begin{rxn}
- \reactant{\chemfig{-[:-30]-[:30](=[2]O)-[:-30]OH}}
- \chemand[,,yshift=-1.2em]
- \reactant[,,yshift=.12em]{\chemfig{HO-[:30]-[:-30]-[:30]}}
- \branch[,,yshift=1.08em]{\arrow{[\Hpl]}{\SI{200}{\celsius}}}
- \reactant{\chemfig{-[:-30]-[:30](=[2]O)-[:-30]O-[:30]-[:-30]-[:30]}}
- \end{rxn}
- hydroxy 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{beispiel}
-
-I'm afraid that in many other cases you'll have to play with \code{xshift} and
-\code{yshift}, though, until the scheme looks the way you want.
-
-\subsection{Using \TikZ to Achieve Other Results}
-You could, just for fun?, change the looks of a molecule with \TikZ.
-\begin{beispiel}
- \begin{rxn}
- \reactant[,,->,green!45!blue!55]{ \chemfig{*6(---(-)---)} }
- \end{rxn}
- \chemfig[->,green!45!blue!55]{*6(---(-)---)}
-\end{beispiel}
-The last example is not very good, of course, since you can achieve the same result
-using \paket{chemfig}'s own possibilities. But other cases are imaginable: for
-example one could define a style with which reactants are shown:
-\begin{beispiel}
- \colorlet{mCgreen}{green!50!gray}
- \colorlet{mCblue}{cyan!50!gray}
- \colorlet{mCred}{magenta!50!gray}
- \colorlet{mCyellow}{yellow!50!gray}
- \begin{rxn}
- \tikzset{reactant/.style={draw=#1,fill=#1!10,inner sep=1em,minimum height=10em,minimum width=12em,rounded corners}}
- \reactant[,cytosine,reactant=mCred]{\chemfig{H-[:30]N*6(-(=O)-N=(-NH_2)-=-)}}
- \anywhere{cytosine.-90,,yshift=-2mm}{Cytosine}
- \reactant[,thymine,reactant=mCyellow]{\chemfig{H-[:30]N*6(-(=O)-N(-H)-(=O)-(-CH_3)=-)}}
- \anywhere{thymine.-90,,yshift=-2mm}{Thymine}
- \reactant[cytosine.-90,adenine,yshift=-2em,reactant=mCblue]{\chemfig{[:-36]*5(-N(-H)-*6(-N=-N=(-NH_2)--)--N=)}}
- \anywhere{adenine.-90,Guanin,yshift=-2mm}{Adenine}
- \reactant[,guanine,reactant=mCgreen]{\chemfig{[:-36]*5(-N(-H)-*6(-N=(-NH_2)-N(-H)-(=O)--)--N=)}}
- \anywhere{guanine.-90,,yshift=-2mm}{Guanine}
- \end{rxn}
-\end{beispiel}
-This way certain parts of a scheme could be emphasized:
-\begin{beispiel}
- \begin{rxn}
- \setatomsep{1.5em}
- \colorlet{mCgreen}{green!50!gray}
- \tikzset{emph/.style={draw=mCgreen,fill=mCgreen!10,inner sep=1em}}
- \reactant[,lineOne]{\chemfig{R^1-[:30](=[@{b1}2]O)-[:-30]O-H}}
- \arrow[,<=>]{\chemfig{@{Hpl1}\Hpl}}{}
- \branch[,,emph]{
- \reactant{\chemfig{R^1-[:30]@{C1}(-[2]O-[:30]H)(-[6,.5,,,draw=none]\fplus)-[:-30]O-H}}
- \arrow[,<=>,2]{\chemfig{[:30]H-@{O1}O-[::-60]-R^2}}{}
- \reactant{\chemfig{R^1-[:30](-[2]O-[:30]H)(-[6]@{O2}O-[:-150]H)-[:-30]@{O3}\chemabove{O}{\fplus}(-[@{b2}6]H)-[:30]-[:-30]R^2}}
- }
- \anywhere{lineOne.-90,lineTwo,xshift=-3em,yshift=-7em}{}
- \arrow[lineTwo.0,<=>]{$-$\Hpl/\chemfig{@{Hpl2}\Hpl}}{}
- \reactant{\chemfig{R^1-[:30](-[@{b3}2]O-[@{b4}:30]H)(-[@{b5}6]@{O4}\chembelow{O}{\fplus}(-[:-30]H)-[:-150]H)-[:-30]O-[:30]-[:-30]R^2}}
- \arrow[,<=>,2]{$- \ch{H+} - \ch{H2O}$}{}
- \reactant{\chemfig{R^1-[:30](=[2]O)-[:-30]O-[:30]-[:-30]R^2}}
- \anywhere{lineTwo.-90}{
- \elmove{b1}{10:5mm}{Hpl1}{135:1cm}
- \elmove{O1}{135:1.5cm}{C1}{30:5mm}
- \elmove{O2}{-90:3cm}{Hpl2}{90:2cm}
- \elmove{b2}{0:5mm}{O3}{-10:5mm}
- \elmove{b4}{-40:5mm}{b3}{0:5mm}
- \elmove{b5}{-30:5mm}{O4}{-10:5mm}
- }
- \end{rxn}
-\end{beispiel}
-
-\section{Alphabetical Command Reference}
-In the following section every command is explained.
-
-\subsection{anywhere}\label{ssec:anywhere}
-Sometimes it might be useful to be able to place a reactant or anything else off
-the chain.
-\begin{beschreibung}
- \Befehl{anywhere}{<pos>,<name>,<tikz>}\ma{<something>}
-\end{beschreibung}
-For this case there's \cmd{anywhere}. It is positioned with \code{<pos>} similar
-to \cmd{branch}.
-\begin{description}
- \item[\code{<anchor>.<angle>}] not on the chain
- \item[\code{on chain=going <key>}] on the chain
- \item[\code{<key>=of <anchor>}] not on the chain
-\end{description}
-Please be aware that \code{<pos>} cannot be left empty.
-
-\begin{beispiel}
- \begin{rxn}
- \reactant[,carbonyl_A]{\chemfig{R_2C=O}}
- \anywhere{above=of carbonyl_A}{\chemfig{H-[:-30]O-[:30]H}};
- \end{rxn}
-\end{beispiel}
-You can use this command \eg for placing labels next to reactants.
-\begin{beispiel}
- \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}{$+ \ch[format=\color{blue}]{OH-}$}
- \arrow[,<=>]{\tiny slow}{}
- \mesomeric[,mesomer]{
- \reactant[,carbanion]{\chemfig{H_2|\chemabove[3pt]{\lewis{2,C}}{\fscrm}-C(=[:60]\lewis{02,O})-[:-60]C|H_3}}
- \marrow
- \reactant[,enolate]{\chemfig{H_2C=C(-[:60]\chemabove{\lewis{024,O}}{\hspace*{5mm}\fscrm})-[:-60]C|H_3}}
- }
- \anywhere{above=of enolate}{\tiny enolate ion}
- \anywhere{above=of carbanion}{\tiny carbanion}
- \anywhere{below=of mesomer}{$+ \ch[format=\color{blue}]{H2O}$}
- \end{rxn}
-\end{beispiel}
-You can find many further examples for the usage of \cmd{anywhere} in \code{examples.tex}
-or \code{examples.pdf}, respectively.
-
-\subsection{\cmd{arrow}}\label{ssec:arrow}
-Reaction arrows are created with \cmd{arrow}.
-\begin{beschreibung}
- \Befehl{arrow}[<pos>,<type>,<length factor>,<name>,both,<tikz>]{<above>}\ma{<below>}
-\end{beschreibung}
-
-\subsubsection{Options}
-There are a number of options to customize the arrows. The options must be used
-in the right order, separated with commas.
-\begin{enumerate}
-\item\code{<pos>} -- possible values:
- \begin{rxn}
- \setarrowlength{2.5em}
- \dummy[a]
- \arrow{}{}\reactant{right = \ang{0}}
- \branch[above right=of a]{\arrow[above right]{}{}\reactant[above right,,overlay]{above right = \ang{45}}}
- \branch[above=of a]{\arrow[above]{}{}\reactant[above,,overlay]{above = \ang{90}}}
- \branch[above left=of a]{\arrow[above left]{}{}\reactant[above left,,overlay]{above left = \ang{135}}}
- \branch[left=of a]{\arrow[left]{}{}\reactant[left,,overlay]{left = \ang{180} = \ang{-180}}}
- \branch[below left=of a]{\arrow[below left]{}{}\reactant[below left,,overlay,xshift=-2em]{below left = \ang{225} = \ang{-135}}}
- \branch[below=of a]{\arrow[below]{}{}\reactant[below,,overlay]{below = \ang{270} = \ang{-90}}}
- \branch[below right=of a]{\arrow[below right]{}{}\reactant[below right,,overlay,xshift=2em]{below right = \ang{315} = \ang{-45}}}
- \end{rxn}
- Additionally you can use every angle from the interval $[\ang{-360};\ang{360}]$.
-
- You can also use an angle with respect to an object that's been named with
- \code{<name>}: \code{<name>.<angle>}. This means the arrow is placed in an
- angle of \code{<angle>} next to \code{<name>}. You can find lots of examples in
- \code{examples.tex} or\code{examples.pdf}, respectively.
-\item\code{<type>} -- possible values:
- \begin{rxn}
- \dummy[a]
- \branch[below=of a,b,yshift=.5em]{\arrow{}{}\reactant{\ttfamily -\textgreater}}
- \branch[below=of b,c,yshift=.5em]{\arrow[,<-]{}{}\reactant{\ttfamily \textless-}}
- \branch[below=of c,d,xshift=.25em,yshift=.5em]{\arrow[,<->]{}{}\reactant{\ttfamily \textless-\textgreater}}
- \branch[below=of d,e,yshift=.5em]{\arrow[,<=>]{}{}\reactant{\ttfamily \textless=\textgreater}}
- \branch[below=of e,f,xshift=.25em,yshift=.5em]{\arrow[,<=>>]{}{}\reactant{\ttfamily \textless=\textgreater{}\textgreater}}
- \branch[below=of f,g,yshift=.5em]{\arrow[,<<=>]{}{}\reactant{\ttfamily \textless{}\textless=\textgreater}}
- \branch[below=of g,h,xshift=-.25em,yshift=.5em]{\arrow[,-|>]{}{}\reactant{\ttfamily -\textbar\textgreater}}
- \branch[below=of h,,yshift=.5em]{\arrow[,-+>]{ }{ }\reactant{\ttfamily -+\textgreater}}
- \end{rxn}
-\item\code{<length factor>} -- this factor multiplies with the arrow length
- (\SI{4}{em} with factor = $1.0$, default)
-\item\code{<name>} -- can be used to give the arrow an anchor, to which another
- object can refer.
-\item\code{both}-- this gives both nodes within which the labels are written the
- same size.
-\item\code{<tikz>} -- you can modify the arrow with \TikZ keys. Not all \TikZ
- keys have an effect, though. You can't shift arrows with \code{shift=<coord>},
- for example.
-\end{enumerate}
-\begin{beispiel}
- \begin{rxn}
- \arrow[,,.25]{M}{}\arrow[,,.5]{MM}{}\arrow[,,.75]{MMM}{}\arrow{MMMM}{}\arrow[,,1.125]{MMMMM}{}\arrow[,,1.25]{MMMMM}{}
- \end{rxn}
-\end{beispiel}
-Please note, that the labels \code{<above>} and \code{<below>} are rotated with
-the arrow. At an angle of \ang{180} \code{<above>} actually is \emph{below} the arrow.
-\begin{beispiel}
- \begin{rxn}
- \setarrowlength{2.5em}
- \dummy[a]
- \arrow{a}{b}
- \arrow[a.45]{a}{b}
- \arrow[a.90]{a}{b}
- \arrow[a.135]{a}{b}
- \arrow[a.180]{a}{b}
- \arrow[a.225]{a}{b}
- \arrow[a.270]{a}{b}
- \arrow[a.315]{a}{b}
- \end{rxn}
-\end{beispiel}
-
-You need to be aware of one or two points, when using the arrow type \code{-+>}:
-if you leave the labels empty, the arrow is the same as \code{->}. The first label
-is the one added to the reaction, the second the one subtracted. If you use only
-one of the labels only the corresponding arrow part is drawn.
-\begin{beispiel}
- corresponds \verb"->":
- \begin{rxn}
- \arrow[,-+>]{}{}
- \end{rxn}
- add:
- \begin{rxn}
- \arrow[,-+>]{a}{}
- \end{rxn}
- subtract:
- \begin{rxn}
- \arrow[,-+>]{}{b}
- \end{rxn}
- both add and subtract:
- \begin{rxn}
- \arrow[,-+>]{a}{b}
- \end{rxn}
- Blanks are \emph{not} an empty label:
- \begin{rxn}
- \arrow[,-+>]{ }{ }
- \end{rxn}
-\end{beispiel}
-
-You can change the appearance of an arrow with \TikZ keys:
-\begin{beispiel}
- \begin{rxn}
- \mCsetup{arrowlabel=.7em,arrowlength=6em}
- \reactant{A}
- \arrow[20,,,,,decorate,decoration=snake,blue]{a}{b}
- \reactant[20]{A$^*$}
- \end{rxn}
-\end{beispiel}
-
-\subsubsection{Alignment}
-If an arrow is placed inside a branch the alignment of the branch may be
-determined by the size of the label nodes. If the two labels have a different
-size, alignment can go wrong.
-\begin{beispiel}
- \makevisible
- \begin{rxn}
- \reactant[,a]{A}
- \arrow{}{}
- \branch[below=of a]{
- \arrow[-90]{\chemfig{-[::30]-[::-60]OH}}{}
- }
- \end{rxn}
- \makeinvisible
-\end{beispiel}
-By using the option \code{both} both nodes get the same size. This can correct
-the alignment.
-\begin{beispiel}
- \makevisible
- \begin{rxn}
- \reactant[,a]{A}
- \arrow{}{}
- \branch[below=of a]{
- \arrow[-90,,,,both]{\chemfig{-[::30]-[::-60]OH}}{}
- }
- \end{rxn}
- \makeinvisible
-\end{beispiel}
-There's more to the question of alignment in section~\ref{sssec:branch_ausrichtung}.
-
-\subsubsection{Appearance}
-You can change the general appearance of arrows with \cmd{setarrowlength}
-(section~\ref{ssec:setarrowlength}) and \cmd{setarrowline} (section~\ref{ssec:setarrowline}).
-
-\subsection{\cmd{branch}}\label{ssec:branch}
-\cmd{branch} is used to, well, create a branch to a reaction.
-\begin{beschreibung}
- \Befehl{branch}[<pos>,<anchor>,<tikz>]{<branch code>}
-\end{beschreibung}
-For \cmd{branch} positioning an anchor is important. Let's take a look at an example:
-\begin{beispiel}
- \begin{rxn}
- \reactant[,start]{\chemfig{-[::30]=_[::-60](-[::-60])-[::60]}}
- \arrow[,,.75]{\ch{HCl}}{}
- \reactant{\chemfig{-[::30]-[::-60](-[::120]Cl)(-[::-60])-[::60]}}
- \chemand
- \reactant{\chemfig{-[::30](-[::60]Cl)-[::-60](-[::-60])-[::60]}}
- \branch[below right=of start]{
- \arrow[-45,,.75]{\ch{H2O}}{}
- \reactant[-45]{\chemfig{-[::30]-[::-60](-[::120]OH)(-[::-60])-[::60]}}
- \chemand
- \reactant{\chemfig{-[::30](-[::60]OH)-[::-60](-[::-60])-[::60]}}
- }
- \end{rxn}
-\end{beispiel}
-The first reactant got the anchor \code{start} (line 2, also see
-section~\ref{ssec:reactant}). \cmd{branch} now refers to it in its alignment
-(line 7). If you don't use the alignment reference to an anchor you automatically
-refer to the last \cmd{reactant} or \cmd{arrow}. If you don't use alignment at all,
-then the branch is aligned to the right of the last \cmd{reactant} or \cmd{arrow}.
-\begin{beispiel}
- \begin{rxn}
- \reactant{ \chemfig{CH_2=CH-OH} }
- \arrow[,<=>,.5]{}{}
- \branch{ \reactant{ \chemfig{CH_3-CH=O} } }
- \end{rxn}
-\end{beispiel}
-
-\subsubsection{Positioning}\label{sssec:branch_positionierung}
-There are several ways to position a branch. It can either be part of the chain
-or be a real branch.
-\begin{description}
- \item[\code{<angle>}] on the chain
- \item[\code{<key>}] on the chain
- \item[\code{<anchor>.<angle>}] not on the chain
- \item[\code{on chain=going <key>}] on the chain
- \item[\code{<key>=of <anchor>}] not on the chain
-\end{description}
-
-The default behaviour is equal to \cmd{branch}[0]{}. In different situations
-different ways can be favoured. For example if you want to use \cmd{branch} to
-shift an arrow it can still be part of the chain.
-\begin{beispiel}
- \begin{rxn}
- \reactant{A}
- \branch[,,yshift=1em]{\arrow{}{}}
- \reactant[,,yshift=-1em]{B}
- \end{rxn}
-\end{beispiel}
-
-If you like to start a real branch it \emph{does} matter which way you use.
-\begin{beispiel}
- \makevisible
- \begin{rxn}
- \reactant[,a]{\chemfig{[:30]--[::-60]-OH}}
- \arrow{}{}
- \branch[a.-45]{\arrow[-45]{}{}}
- \end{rxn}
- \begin{rxn}
- \reactant[,a]{\chemfig{[:30]--[::-60]-OH}}
- \arrow{}{}
- \branch[below right=of a]{\arrow[-45]{}{}}
- \end{rxn}
-\end{beispiel}
-
-If a reactant isn't squared or circled \ang{-45} does not mean the same as
-``below right.''
-\begin{beispiel}
- \makevisible
- \begin{rxn}
- \reactant[,a,circle]{\chemfig{[:30]--[::-60]-OH}}
- \arrow{}{}
- \branch[a.-45]{\arrow[-45]{}{}}
- \end{rxn}
- \begin{rxn}
- \reactant[,a,circle]{\chemfig{[:30]--[::-60]-OH}}
- \arrow{}{}
- \branch[below right=of a]{\arrow[-45]{}{}}
- \end{rxn}
-\end{beispiel}
-
-\subsubsection{Alignment problems}\label{sssec:branch_ausrichtung}
-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 \cmd{arrow} key
-\code{both} isn't a solution since the smaller argument then is not placed next
-to the arrow but is centered in its node.
-\begin{beispiel}
- \makevisible
- \begin{rxn}
- \reactant[,a]{A}
- \arrow{}{}
- \branch[below=of a]{
- \arrow[below,,,,both]{\chemfig{-[::30]-[::-60]OH}}{\Hpl}
- }
- \end{rxn}
-\end{beispiel}
-
-What you have to do is shift the branch using the \TikZ keys \code{xshift} and
-\code{yshift}.
-\begin{beispiel}
- \makevisible
- \begin{rxn}
- \reactant[,a]{A}
- \arrow{}{}
- \branch[below=of a,,xshift=-1.35em]{
- \arrow[below]{\chemfig{-[::30]-[::-60]OH}}{\Hpl}
- }
- \end{rxn}
-\end{beispiel}
-
-\subsection{\cmd{chemand}}\label{ssec:chemand}
-The command
-\begin{beschreibung}
- \Befehl{chemand}[<alignment>,<anchor>,<tikz>]
-\end{beschreibung}
-produces and places a $+$ in the same way \cmd{reactant} places arbitrary text.
-\begin{beispiel}
- \begin{rxn}
- \reactant{\chemfig{*6(------)}}
- \chemand
- \reactant{\ch{Br2}}
- \arrow{$h\nu$}{}
- \reactant{\chemfig{*6(--(-Br)----)}}
- \chemand
- \reactant{\ch{HBr}}
- \end{rxn}
-\end{beispiel}
-The optional arguments for \cmd{chemand} and \cmd{reactant} are the same, see
-section~\ref{ssec:reactant} for \cmd{reactant}'s options.
-
-\subsection{\cmd{dummy}}\label{ssec:dummy}
-\cmd{dummy} creates an empty node. Up to v1.3 \cmd{arrow} needed to follow after
-a node since \cmd{arrow} internally uses \cmd*{tikzchainprevious}. If there was
-no node on the chain \emph{before} \cmd{arrow} was used an error was raised.
-The same thing happened with \cmd{branch}. By using \cmd{dummy} you could start
-a scheme with an arrow anyway.
-\begin{beispiel}[code only]
- \begin{rxn}
- \dummy\arrow{}{}
- \end{rxn}
-\end{beispiel}
-\emph{This is \emph{not} necessary any more}. In some (alignment) cases an empty
-node still might be useful so the command still exists.
-
-\subsection{\cmd{elmove}}\label{ssec:elmove}
-\cmd{elmove} just is a wrapper for \paket{chemfig}'s \cmd*{chemmove}.
-\begin{beschreibung}
- \Befehl{elmove}[<tikz>]{<start>}\ma{<start direction>}\ma{<end>}\ma{<end direction>}
-\end{beschreibung}
-This is expanding to
-\begin{beispiel}[code only]
- \chemmove{\draw[<tikz>](<start>).. controls +(<start direction>) and +(<end direction>)..(<end>);}
-\end{beispiel}
-using \oa{->,red,shorten <=3pt,shorten >=1pt} as default for \code{<tikz>}. How
-you use \cmd*{chemmove} is described in the documentation of \chemfig.
-\begin{beispiel}
- \begin{center}
- \setatomsep{1.8em}
- \chemfig{*6(=[@{e1}]-=-(-[:120]Br)(-[:60]H)-(-[:-30,.4,,,white]\oplus)-[@{e2}])}
- \elmove{e1}{60:4mm}{e2}{0:4mm}
- \end{center}
-\end{beispiel}
-You should use \cmd{elmove} \emph{only inside} of \cmd{anywhere}, \cmd{reactant}
-or \cmd{transition}. Otherwise you might get alignment errors.
-
-\subsection{\cmd{makeinvisible}}\label{ssec:makeinvisible}
-\begin{beschreibung}
- \Befehl{makeinvisible}
-\end{beschreibung}
-\cmd{makeinvisible} restores the normal \mychemistry behaviour after \cmd{makevisible}
-(see section~\ref{ssec:makevisible}) has been used. \cmd{makeinvisible} only changes
-the looks of nodes following after it.
-
-\subsection{\cmd{makevisible}}\label{ssec:makevisible}
-\begin{beschreibung}
- \Befehl{makevisible}
-\end{beschreibung}
-With \cmd{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 of the usage of \cmd{makevisible} in section~\ref{ssec:arrow}.
-Every kind of nodes is emphasized with a different colour:
-
-\tikz[baseline=(X.base)]\node[draw=red!60](X){\cmd{reactant}{}};,
-\tikz[baseline=(X.base)]\node[draw=green!60](X){\cmd{arrow}{above}};,
-\tikz[baseline=(X.base)]\node[draw=blue!60](X){\cmd{arrow}{below}};
-and \tikz[baseline=(X.base)]\node[draw=cyan](X){\cmd{branch}{}};.
-Also see section~\ref{ssec:makeinvisible}.
-
-\cmd{makevisible} only changes the looks of nodes following after it ond only
-effects the group whithin which it is used.
-\begin{beispiel}
- \begin{rxn}
- \makevisible
- \reactant[,a]{A}
- \arrow{a}{b}
- \branch[below=of a]{
- \arrow[-90,,,,both]{a}{b}
- }
- \end{rxn}
- \begin{rxn}
- {\makevisible
- \reactant{\chemfig{[:30]--[::-60]-OH}}
- }
- \reactant{\chemfig{[:30]--[::-60]-OH}}
- \end{rxn}
-\end{beispiel}
-
-\emph{Please beware that \cmd{makevisible} \emph{only} has an effect if the
-package option \key{draft} is active}!
-
-\subsection{\cmd{marrow}}\label{ssec:marrow}
-\cmd{marrow} creates a double-headed arrow.
-\begin{beschreibung}
- \Befehl{marrow}[<direction>]
-\end{beschreibung}
-It is a shortcut for \cmd{arrow}[<direction>,<->,.5]\ma{}\ma{}.
-
-\subsection{\cmd{mCsetup}}\label{ssec:mCsetup}
-With
-\begin{beschreibung}
- \Befehl{mCsetup}{<keys>}
-\end{beschreibung}
-you can fully customize \mychemistry. For each of \mychemistry's commands going
-like \cmd{set<command>} except \cmd{setbondshape} there is a key \key{<command>}{<value>}.
-Additionally there is the key \key{align}{<value>} with which you can change the
-alignment behaviour of both \env{rxn}{} and \env{rxnscheme}{}, and the key
-\key{reset} with whith all values are reset to default.
-\begin{beispiel}
- \mCsetup{
- align=left,
- arrowlabel=.7em,
- arrowlength=3em,
- arrowline=thick,
- atomsize=\large,
- bondlength=3em,
- mergelength=4em,
- rcndist=2em
- %rxnalign=right,
- %schemealign=left
- }
- \setbondshape{4pt}{2pt}{1pt}
- \begin{rxn}
- \reactant{A}\arrow{a}{b}\reactant{\chemfig{A-(<[2])(<:[6])-B}}
- \end{rxn}
- \mCsetup{reset}
- \begin{rxn}
- \reactant{A}\arrow{a}{b}\reactant{\chemfig{A-(<[2])(<:[6])-B}}
- \end{rxn}
-\end{beispiel}
-\cmd{mCsetup} as well as every other setup command only effects the group whithin
-which it is used.
-
-Here is a complete list of valid keys:
-\begin{beschreibung}
- \Option{align}
- \Option{arrowlabel}
- \Option{arrowlength}
- \Option{arrowline}
- \Option{atomsize}
- \Option{bondlength}
- \Option{elmove}
- \Option{mergelength}
- \Option{rcndist}
- \Option{reset}
- \Option{rxnalign}
- \Option{schemealign}
-\end{beschreibung}
-
-\subsection{\cmd{merge}}\label{ssec:merge}
-The \cmd{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
-(\cmd{reactant}[,<anchor>]{}), similar with branches, see sections~\ref{ssec:reactant}
-and \ref{ssec:branch}) and be placed \emph{before} \cmd{merge}.
-\begin{beschreibung}
- \Befehl{merge}[<label>,<direction>,<length>]{<target>}\ma{<start a>}\ma{<start b>}
-\end{beschreibung}
-\cmd{merge} has three optional and three mandatory arguments. The latter are the
-anchor names of the reactants that are to be merged.
-\begin{beispiel}
- \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[\ch{[OH^-]}]{target}{start_a}{start_b}
- \end{rxn}
-\end{beispiel}
-
-The default \code{<direction>} is \code{below}, other possible values are
-\code{right}, \code{left} and \code{above}. With \code{<length>} the length of
-the arrow from the point of merging to the tip can be changed. The default length
-is \SI{3}{em}. The default length can be changed with \cmd{setmergelength} or
-\cmd{mCsetup}.
-\begin{beispiel}
- \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[\ch{[OH^-]},right,5em]{target}{start_a}{start_b}
- \end{rxn}
-\end{beispiel}
-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 \emph{depth}
-of the involved reactants, the distance of the ``reaction nodes'' \emph{rcndist}
-(see section~\ref{ssec:setrcndist}) and the length of the \cmd{merge} arrow
-\emph{mergelength} (also see section~\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{beispiel}
- \begin{rxn}
- \setatomsep{1.15em}\footnotesize
- % 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]{
- \reactant[,c]{ \chemfig{O(-[:-150]**6(-----(-O?)-))-[:90]-[:30]**6(-N-(--[:-90]O-[:-30]**6(-(-O-[6]-[:-150]-[:150]O-[:-150]-[:150]?)-----))----)} }
- }
- % merging:
- \merge[,right]{target}{start_above}{start_below}
- \end{rxn}
-\end{beispiel}
-The usage of \cmd{merge} may require some playing with branches, \code{xshift}
-and \code{yshift} until you get the desired result.
-\begin{beispiel}
- \begin{rxn}
- \setatomsep{1.5em}
- \reactant[,start_aa]{ \chemname{\chemfig{**6(---(-NH_2)---)}}{Anilin} }
- \reactant[below,start_ab,yshift=-3em]{ \chemname{\ch{HNO2}}{salpetrige S\"aure} }
- \branch[right=of start_aa,target_a,xshift=6em,yshift=-5em]{
- \reactant{ \chemname{\chemfig{**6(---(-N|_2\fpch)---)}}{Diazoniumion} }
- }% = start_ba
- \branch[below=of target_a,start_bb,yshift=-3em]{
- \reactant{ \chemname{\chemfig{**6(---(-NH_2)---)}}{Anilin} }
- }
- \branch[right=of target_a,target_b,xshift=6em,yshift=-5em]{
- \reactant{ \chemname{\chemfig{N(-[:-150]**6(------))=N-[:-30]**6(---(-NH_2)---)}}{\iupac{\para\-Amino\|diazo\|benzol}} }
- }
- \merge[,right]{target_a}{start_aa}{start_ab}
- \merge[,right]{target_b}{target_a}{start_bb}
- \end{rxn}
-\end{beispiel}
-
-\subsection{\cmd{mesomeric}}\label{ssec:mesomeric}
-The \cmd{mesomeric} command works just like \cmd{branch} (see section~\ref{ssec:branch})
-but places the formul\ae\ into square brackets.
-\begin{beschreibung}
- \Befehl{mesomeric}[<pos>,<anchor>,<tikz>]{<formula>}
-\end{beschreibung}
-The resonance formul\ae\ are written into \code{<formula>}. With \cmd{marrow}
-(see section~\ref{ssec:marrow}) you can create the resonance arrows. If needed
-you can give an anchor (\code{<anchor>}) to \cmd{mesomeric} (also see
-section~\ref{ssec:branch}). Alignment is used the same way as with \cmd{reactant}.
-\begin{beispiel}
- \begin{rxn}
- \mesomeric{
- \reactant{
- \chemfig{*6(=[@{e1}]-=-(-[:120]X)(-[:60]H)-(-[:-30,.4,,,white]\fplus)-[@{e2}])}
- \elmove{e1}{60:4mm}{e2}{0:4mm}
- }
- \marrow
- \reactant{
- \chemfig{*6(-(-[:90,.4,,,white]\fplus)-[@{e4}]=[@{e3}]-(-[:120]X)(-[:60]H)-=)}
- \elmove{e3}{180:4mm}{e4}{150:4mm}
- }
- \marrow
- \reactant{
- \chemfig{*6(-=-(-[:-150,.4,,,white]\fplus)-(-[:120]X)(-[:60]H)-=)}
- }
- }
- \end{rxn}
-\end{beispiel}
-
-Or vertical, too:
-\begin{beispiel}
- \begin{rxn}
- \mesomeric{
- \reactant{ \chemfig{*6(=-=-=-)} }
- \marrow[below]
- \reactant[below]{ \chemfig{*6(-=-=-=)} }
- }
- \end{rxn}
-\end{beispiel}
-
-Or maybe a coordination complex?
-\begin{beispiel}
- \begin{rxn}
- \setatomsep{3em}
- \mesomeric[,a]{
- \reactant{ \chemfig{H_3\lewis{0,N}-[,1.35,,,dotted]{Cu}(-[2,,,,dotted]\lewis{6,N}H_3)(-[6,,,,dotted]\lewis{2,N}H_3)-[,1.2,,,dotted]\lewis{4,N}H_3} }
- }
- \node[above right=of a,yshift=-1em] {$2\fplus$};
- \end{rxn}
-\end{beispiel}
-
-\subsection{\cmd{reactant}}\label{ssec:reactant}
-\cmd{reactant} is something like the basic command.
-\begin{beschreibung}
- \Befehl{reactant}[<pos>,<name>,<tikz>]{<formula>}
-\end{beschreibung}
-Formul\ae\ (\code{<formula>}) are written inside this command and can be named
-(\code{<name>}) for other objects to refer to. \code{<pos>} can either be one of
-these key words
-\begin{enumerate}
- \item \code{right},
- \item \code{above right},
- \item \code{above},
- \item \code{above left},
- \item \code{left},
- \item \code{below left},
- \item \code{below},
- \item \code{below right}
-\end{enumerate}
-or be an angle from the intervall $[\ang{-360};\ang{360}]$. You also can position
-it relativ to another object via \code{<anchor>.<angle>}. The default equals
-\cmd{reactant}[0]{}.
-\begin{beispiel}
- below:
- \begin{rxn}
- \reactant{\ch{Br2}}
- \reactant[-90]{\ch{Cl2}}
- \end{rxn}
-
- more than one reactant:
- \begin{rxn}
- \reactant{\ch{Br2}}
- \reactant[-90]{\ch{I2}}
- \reactant{\ch{Cl2}}
- \end{rxn}
-
- going down:
- \begin{rxn}
- \reactant{\ch{Br-Br}}
- \arrow[-90,,.5]{$h\nu$}{}
- \reactant[-90]{\ch{2 "\Lewis{0.,Br}"}}
- \end{rxn}
-\end{beispiel}
-You can find many more examples in the file \code{examples.tex} or
-\code{examples.pdf}, respectively.
-
-\subsection{rxn (environment)}\label{ssec:rxn}
-\env{rxn}{} is a non-floating not numbered environment for reaction schemes. Per
-default all schemes are centered.
-\begin{beschreibung}
- \Umg{rxn}[<alignment>,<scalefactor>]{...}
-\end{beschreibung}
-
-\subsubsection{Options}\label{sssec:rxn_optionen}
-\env{rxn}{} has two options which are to be used in the following order, separated
-by a comma:
-\begin{enumerate}
- \item\code{<alignment>}: alignment behaviour of the \env{rxn}{} environment;
- default is \code{center}.
- \item\code{<scalefactor>}: factor by which the \env{rxn}{} environment is scaled;
- default: \code{1.0}. Same behaviour as with \env{rxnscheme}, see
- section~\ref{ssec:rxnscheme}.
-\end{enumerate}
-If you use the \code{<scalefactor>} option you might see strange effects on
-\paket{chemfig} formul\ae.
-
-\begin{beispiel}
- \begin{rxn}[,.5]
- \reactant{\chemfig{**6(------)}}
- \end{rxn}
-\end{beispiel}
-Scaling does in general not affect the size of \paket{chemfig} formul\ae\ but
-does scale the aromaticity ring of benzene and similar molecules. This is not
-\mychemistry's fault:
-\begin{beispiel}
- \chemfig[scale=.5]{**6(------)}
-\end{beispiel}
-This issue can be solved either by using the \emph{first} optional argument of
-\cmd*{chemfig} to undo the scaling or by using the \emph{second} optional argument
-to scale the rest of the molecule.
-\begin{beispiel}
- \begin{rxn}[,.5]
- \reactant{\chemfig[scale=2]{**6(------)}}
- \reactant{\chemfig[][scale=.5]{**6(------)}}
- \end{rxn}
- \chemfig[scale=.5][scale=.5]{**6(------)}
-\end{beispiel}
-
-Alignment examples:
-\begin{beispiel}
- \begin{rxn}[center]
- \reactant{center}\arrow{}{}\reactant{centered}
- \end{rxn}
- \begin{rxn}[right]
- \reactant{right}\arrow{}{}\reactant{raggedleft}
- \end{rxn}
- \begin{rxn}[left]
- \reactant{left}\arrow{}{}\reactant{raggedright}
- \end{rxn}
-\end{beispiel}
-
-\subsection{rxnscheme (environment)}\label{ssec:rxnscheme}
-\env{rxnscheme}{} is a floating environment for reaction schemes.
-\begin{beschreibung}
- \Umg{rxnscheme}[<label>,<placement>,<alignment>,<scalefactor>,<name>]{\unskip\ma{<caption>} ...}
-\end{beschreibung}
-
-\subsubsection{Options}\label{sssec:rxnscheme_optionen}
-\env{rxnscheme}{} has five options which are to be used in the following order,
-separated by commas:
-\begin{enumerate}
- \item\code{<label>}: Like every other floating environment \env{rxnscheme}{} can
- be given a label. In order to do that you need to use the option \code{<label>}.
- For example if you use
-\begin{beispiel}[code only]
- \begin{rxnscheme}[rs:schema]{<caption>}
- ...
- \end{rxnscheme}
-\end{beispiel}
- you can refer to it by using \cmd*{ref}{rs:schema} as usual.
- \item\code{<placement>}: With this option you can change the placement of the
- float, \eg with \code{h}. The default value is \code{htp}.
- \item\code{<alignment>}: This option changes the alignment of the scheme. You
- can choose between \code{left}, \code{center} and \code{right}.
- \item\code{<scalefactor>}: \env{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 \paket{chemfig}'s formul\ae. You can have strange effects on
- \paket{chemfig}'s formul\ae\ if you use this key, though. See
- section~\ref{sssec:rxn_optionen} for more information.
- \item\code{<name>} This option changes the name of the actual scheme from
- ``Reaction scheme'' into \code{<name>}.
-\begin{beispiel}[code only]
- \begin{rxnscheme}[,<placement>]{<caption>}
- ...
- \end{rxnscheme}
-\end{beispiel}
-\end{enumerate}
-
-\begin{beispiel}[code and float]
- \begin{rxnscheme}[,,,2]{Big scheme}
- \large\setatomsep{3.5em}
- \reactant{ \chemfig{=[::30]-[::-60]OH} }
- \arrow[,<=>]{}{}
- \reactant{ \chemfig{-[::30]=[::-60]O} }
- \end{rxnscheme}
- \begin{rxnscheme}[,,,.5]{Small scheme}
- \setatomsep{1.15em}\footnotesize
- \reactant{ \chemfig{=[::30]-[::-60]OH} }
- \arrow[,<=>]{}{}
- \reactant{ \chemfig{-[::30]=[::-60]O} }
- \end{rxnscheme}
- \begin{rxnscheme}{center}
- \reactant{center}\arrow{}{}\reactant{centered}
- \end{rxnscheme}
- \begin{rxnscheme}[,,right]{right}
- \reactant{right}\arrow{}{}\reactant{raggedleft}
- \end{rxnscheme}
- \begin{rxnscheme}[,,left]{left}
- \reactant{left}\arrow{}{}\reactant{raggedright}
- \end{rxnscheme}
-\end{beispiel}
-
-\subsubsection{Customizing rxnscheme}
-\paragraph{Style}
-If you don't like the style of \env{rxnscheme}{} you can change it by using
-\begin{beschreibung}
- \Befehl{floatstyle}{<new style>}
- \Befehl{rxnfloat}
-\end{beschreibung}
-There are different possible styles, provided by the \paket{float} package:
-\begin{description}
- \item[\code{plain}] without any special formatting, the caption is below the object.
- \item[\code{plaintop}] like \code{plain} but the caption is placed above the object.
- \item[\code{boxed}] the object is boxed, the caption placed below.
- \item[\code{ruled}] the caption is placed above the object framed by two rules,
- one above and one below, another rule frames the object below; default for
- \env{rxnscheme}{}.
-\end{description}
-
-\begin{beispiel}[code and float]
- \begin{rxnscheme}{ruled}
- \reactant{default style}
- \end{rxnscheme}
- \floatstyle{boxed}
- \restylefloat{rxnfloat}
- \begin{rxnscheme}{boxed}
- \reactant{framed object}
- \end{rxnscheme}
- \floatstyle{plain}
- \restylefloat{rxnfloat}
- \begin{rxnscheme}{plain}
- \reactant{without any special formatting}
- \end{rxnscheme}
-\end{beispiel}
-\floatstyle{ruled}
-\restylefloat{rxnfloat}
-
-\paragraph{Placement}
-Usually floating environments have an optional argument for their placement.
-The default placement is \code{htp}. If you want to change it into \code{H} or
-something, you can use
-\begin{beschreibung}
- \Befehl{floatplacement}{rxnfloat}\ma{<placement>}
-\end{beschreibung}
-
-It's easier, though, loading \mychemistry with the \key{placement} option:
-\begin{beispiel}[code only]
- \usepackage[placement=<placement>]{mychemistry}
-\end{beispiel}
-
-This will change the default placement behaviour from \code{htp} to \code{<placement>}.
-You can also change the placement behaviour of just one \env{rxnscheme}{} by
-using the placement option:
-\begin{beispiel}[code only]
- \begin{rxnscheme}[,<placement>]{<caption>}
- ...
- \end{rxnscheme}
-\end{beispiel}
-
-\paragraph{Name}\label{par:rxnscheme_name}
-If you want to change the name of reaction scheme you can do that with
-\begin{beschreibung}
- \Befehl{setschemename}{<new name>}
-\end{beschreibung}
-The default name is ``Reaction scheme'' but can change depending on the language
-you've loaded with \paket{babel}.
-
-\paragraph{Counter}
-The counter can be changed just as usual. For example by using
-\begin{beispiel}[code only]
- \makeatletter
- \@addtoreset{rxnfloat}{section}
- \makeatletter
- \renewcommand*\therxnscheme{\arabic{section}.\arabic{rxnscheme}}
-\end{beispiel}
-the counter is reset with every new section an looks like \code{section.rxnscheme}.
-
-\paragraph{List of Schemes}
-By writing
-\begin{beschreibung}
- \Befehl{listof}{rxnfloat}\ma{<title>}
-\end{beschreibung}
-you can create a list of all schemes created with \env{rxnscheme}{}.
-\begin{beispiel}
- \listof{rxnfloat}{Reaction schemes}
-\end{beispiel}
-
-\subsection{\cmd{setarrowlabel}}\label{ssec:setarrowlabel}
-The distance of arrow labels to the arrow has a default value of \SI{0.2}{em}.
-You can change this with
-\begin{beschreibung}
- \Befehl{setarrowlabel}{<distance>}
-\end{beschreibung}
-into \code{<distance>}.
-\begin{beispiel}
- \begin{rxn}
- \arrow{a}{b}
- \setarrowlabel{.5em}
- \arrow{a}{b}
- \end{rxn}
-\end{beispiel}
-
-\subsection{\cmd{setarrowlength}}\label{ssec:setarrowlength}
-The default length of an reaction arrow is \SI{4}{em}. You can change this value
-with
-\begin{beschreibung}
- \Befehl{setarrowlength}{<length>}
-\end{beschreibung}
-into \code{<length>}. Mind the fact that you have to use a length unit. If you
-leave the argument empty the length is reset to default.
-
-\subsection{\cmd{setatomsize}}\label{ssec:setatomsize}
-With
-\begin{beschreibung}
- \Befehl{setatomsize}{<font size>}
-\end{beschreibung}
-you can change the font size of the atom groups. Default value is \cmd*{small}.
-If you leave the argument empty the size is reset to default.
-
-\subsection{\cmd{setbondlength}}\label{ssec:setbondlength}
-With
-\begin{beschreibung}
- \Befehl{setbondlength}{<length>}
-\end{beschreibung}
-you can change \cmd{setatomsep}{<length>}= for all \paket{chemfig} formul\ae\
-\emph{inside} of the \mychemistry environments. The default value is \SI{1.8}{em}.
-If you leave the argument empty the length is reset to default.
-
-\subsection{\cmd{setarrowline}}\label{ssec:setarrowline}
-With the command
-\begin{beschreibung}
- \Befehl{setarrowline}{<value>}
-\end{beschreibung}
-the thickness of the arrows can be customized. Possible values are
- \begin{flushleft}
- \begin{tikzpicture}
- \draw[ultra thin] (0,0)--(1,0)node[right]{\ttfamily ultra thin};
- \draw[very thin] (0,-.5)--(1,-.5)node[right]{\ttfamily very thin};
- \draw[thin] (0,-1)--(1,-1)node[right]{\ttfamily thin};
- \draw[semithick] (0,-1.5)--(1,-1.5)node[right]{{\ttfamily semithick} (default)};
- \draw[thick] (0,-2)--(1,-2)node[right]{\ttfamily thick};
- \draw[very thick] (0,-2.5)--(1,-2.5)node[right]{\ttfamily very thick};
- \draw[ultra thick] (0,-3)--(1,-3)node[right]{\ttfamily ultra thick};
- \end{tikzpicture}
-\end{flushleft}
-
-This command also applies to \cmd{merge}.
-
-\subsection{\cmd{setbondshape}}\label{ssec:setbondshape}
-With
-\begin{beschreibung}
- \Befehl{setbondshape}{<base length>}\ma{<dash thickness>}\ma{<dash spacing>}
-\end{beschreibung}
-you can change \cmd{setcrambond}{<base length>}\ma{<dash thickness>}\ma{<dash spacing>}
-for all \paket{chemfig} formul\ae\ \emph{inside} of the \mychemistry 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.
-
-\subsection{\cmd{setelmove}}\label{ssec:setelmove}
-The command
-\begin{beschreibung}
- \Befehl{setelmove}{<tikz>}
-\end{beschreibung}
-sets the default style that is used for the lines drawn by \cmd{elmove}. An empty
-argument resets to \code{->,red,shorten <=3pt,shorten >=1pt}.
-
-\subsection{\cmd{setmergelength}}\label{ssec:setmergelength}
-With
-\begin{beschreibung}
- \Befehl{setmergelength}{<length>}
-\end{beschreibung}
-you can change the length of the \cmd{merge} arrow. More precisely you can change
-the length of the arrow from the point of line crossing to the arrow tip (see
-section~\ref{ssec:merge}). If you leave the argument empty the value is reset to
-default (\SI{3}{em}).
-
-\subsection{\cmd{setrcndist}}\label{ssec:setrcndist}
-The nodes within which the reactants an arrows are set have a certain distance
-between them. The default distance is \SI{1}{em}. If you want to change that you
-can use
-\begin{beschreibung}
- \Befehl{setrcndist}{<length>}
-\end{beschreibung}
-If you leave the argument empty the distance is reset to \SI{1}{em}.
-\begin{beispiel}
- \setrcndist{2em}
- \begin{rxn}
- \reactant{A}\arrow{}{}
- \end{rxn}
- \setrcndist{}
- \begin{rxn}
- \reactant{A}\arrow{}{}
- \end{rxn}
-\end{beispiel}
-
-\subsection{\cmd{setrxnalign}/\cmd{setschemealign}}\label{ssec:setrxnalign}\label{ssec:setschemealign}
-With the commands
-\begin{beschreibung}
- \Befehl{setrxnalign}{<alignment>}
- \Befehl{setschemealign}{<alignment>}
-\end{beschreibung}
-The default alignment behaviour of \env{rxn}{} and \env{rxnscheme}{} (see
-sections~\ref{sssec:rxn_optionen} and \ref{sssec:rxnscheme_optionen}) can be set.
-You can choose between \code{left}, \code{center} and \code{right}.
-
-If you leave the argument empty \mychemistry's default behaviour (\code{center})
-is restored.
-\begin{beispiel}
- \setrxnalign{right}
- \begin{rxn}
- \reactant{A}\arrow{}{}\reactant{B}
- \end{rxn}
- \setrxnalign{}
- \begin{rxn}
- \reactant{A}\arrow{}{}\reactant{B}
- \end{rxn}
-\end{beispiel}
-
-\subsection{\cmd{setschemename}}\label{ssec:setschemename}
-See page~\pageref{par:rxnscheme_name}.
-
-\subsection{\cmd{transition}}\label{ssec:transition}
-\cmd{transition} works exactly like \cmd{reactant} (see section~\ref{ssec:reactant}).
-\begin{beschreibung}
- \Befehl{transition}[<pos>,<anchor>,<tikz>]{<formula>}
-\end{beschreibung}
-\begin{beispiel}
- \begin{rxn}
- \reactant{ \ch{H2 + I2} }
- \arrow[below,<=>,.5]{}{}
- \transition[below]{ \chemfig[dotted][]{H?-I-[2]I-[4]H?} }
- \arrow[below,<=>,.5]{}{}
- \reactant[below]{ \ch{2 HI} }
- \end{rxn}
-\end{beispiel}
-
-\appendix
-\printindex
-\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/latex/mychemistry/mychemistry.sty b/Master/texmf-dist/tex/latex/mychemistry/mychemistry.sty
deleted file mode 100644
index 089ac37b854..00000000000
--- a/Master/texmf-dist/tex/latex/mychemistry/mychemistry.sty
+++ /dev/null
@@ -1,1557 +0,0 @@
-% --------------------------------------------------------------------------
-% the MYCHEMISTRY package
-%
-% create reaction schemes with LaTeX and chemfig
-%
-% --------------------------------------------------------------------------
-% Clemens Niederberger
-% Web: https://www.bitbucket.org/cgnieder/mychemistry
-% E-Mail: contact@mychemistry.eu
-% --------------------------------------------------------------------------
-% If you have any ideas, questions, suggestions or bugs to report, please
-% feel free to contact me.
-% --------------------------------------------------------------------------
-% Copyright 2011--2012 Clemens Niederberger
-%
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3
-% of this license or (at your option) any later version.
-% The latest version of this license is in
-% http://www.latex-project.org/lppl.txt
-% and version 1.3 or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
-%
-% This work has the LPPL maintenance status `maintained'.
-%
-% The Current Maintainer of this work is Clemens Niederberger.
-%
-% This work consists of the files mychemistrysty, mychemistry_en.tex,
-% README and the derived file mychemistry_en.pdf.
-% --------------------------------------------------------------------------
-\ProvidesPackage{mychemistry}[2012/12/19 v1.99b create reaction schemes with LaTeX and chemfig]
-\RequirePackage{etoolbox,float,xkeyval,chemfig,chemmacros}
-\usetikzlibrary{
- arrows,
- positioning,
- decorations.pathmorphing,
- shapes,
- calc,
- matrix,
- chains,
- scopes,
- intersections}
-
-% --------------------------------------------------------------------------
-% Tools
-\newif\ifmCh@strict
-\newif\ifmCh@draft
-\def\mCh@if@strict{%
- \ifmCh@strict\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}
-
-\def\mCh@error#1#2{%
- \mCh@if@strict
- {\PackageError{mychemistry}{#1}{#2}}
- {\PackageWarning{mychemistry}{#1}{#2}}}
-
-\def\mCh@strict@error#1#2{%
- \begingroup
- \mCh@stricttrue
- \mCh@error{#1}{#2}%
- \endgroup}
-
-\def\mCh@def#1{%
- \ifdef{#1}{%
- \mCh@strict@error{already defined}{mychemistry tries to define \string#1 but
- it seems it is already defined. Please contact the author.}%
- \@gobble
- }{\def#1}}
-
-% "variablen" definieren
-\mCh@def\mCh@strip@bs{\expandafter\@gobble\string}
-\mCh@def\mCh@ifis@variable#1#2#3{%
- \ifcsdef{mCh@variable@\mCh@strip@bs#1}
- {#2}
- {\mCh@error{variable \string#1 undefined}{}#3}}
-\mCh@def\mCh@new@variable#1{%
- \ifcsdef{mCh@variable@\mCh@strip@bs#1}
- {\mCh@error{variable \string#1 already defined. I'm doing nothing!}{}}
- {\csdef{mCh@variable@\mCh@strip@bs#1}{}\csdef{mCh@\mCh@strip@bs#1}{}}}
-\mCh@def\mCh@set@variable#1#2{%
- \mCh@ifis@variable{#1}{\csdef{mCh@\mCh@strip@bs#1}{#2}}{\@gobble}}
-\mCh@def\mCh@xset@variable#1#2{%
- \mCh@ifis@variable{#1}{\csedef{mCh@\mCh@strip@bs#1}{#2}}{\@gobble}}
-\mCh@def\mCh@clear@variable#1{%
- \mCh@ifis@variable{#1}{\csdef{mCh@\mCh@strip@bs#1}{}}{}}
-\mCh@def\mCh@let@variable#1#2{%
- \mCh@ifis@variable{#1}{\mCh@ifis@variable{#2}
- {\csletcs{mCh@\mCh@strip@bs#1}{mCh@\mCh@strip@bs#2}}{}}{}}
-\mCh@def\mCh@empty@variable#1{%
- \mCh@ifis@variable{#1}{\cslet{mCh@\mCh@strip@bs#1}\@empty}{}}
-\mCh@def\mCh@ifeq@variable#1#2#3#4{%
- \mCh@ifis@variable{#1}{\mCh@ifis@variable{#2}
- {\ifcsequal{mCh@\mCh@strip@bs#1}{mCh@\mCh@strip@bs#2}{#3}{#4}}{}}{}}
-\mCh@def\mCh@ifempty@variable#1#2#3{%
- \ifcsequal{mCh@\mCh@strip@bs#1}{@empty}{#2}{#3}}
-
-\mCh@new@variable\true
-\mCh@new@variable\false
-
-\mCh@set@variable\true{true}
-\mCh@set@variable\false{false}
-
-% Optional Argument Analysis
-% is #2 part of #1? (inspired by \CF@if@instr by Christian Tellechea)
-\mCh@def\mCh@if@instr#1#2{%
- \def\mCh@if@instr@i##1#2##2\@nil{%
- \ifstrempty{##2}{\@secondoftwo}{\@firstoftwo}}%
- \mCh@if@instr@i#1\@@nil#2\@nil
-}
-
-\mCh@new@variable\firstarg
-\mCh@new@variable\secondarg
-\mCh@new@variable\thirdarg
-
-% Am ersten , splitten, #1 in #3 speichern, #2 in \mCh@remainargs
-% (das Makro ist eine Kopie von \CF@analyze@movearg in chemfig.tex von Christian Tellechea)
-\mCh@def\mCh@splitfirst#1,#2\@nil#3{%
- \def#3{#1}\def\mCh@remainargs{#2}%
-}
-
-% ein durch , in 3 Teile getrenntes Argument splitten
-% (das Makro ist eine Abwandlung von \CF@analyze@movearg in chemfig.tex von Christian Tellechea)
-\mCh@def\mCh@splitarg#1{%
- \mCh@if@instr{#1}{,}
- {\expandafter\mCh@splitfirst#1\@nil\mCh@firstarg}
- {\mCh@set@variable\firstarg{#1}}%
- \expandafter\mCh@if@instr\expandafter{\mCh@remainargs}{,}
- {\expandafter\mCh@splitfirst\mCh@remainargs\@nil\mCh@secondarg}{\expandafter\mCh@set@variable\expandafter\secondarg\expandafter{\mCh@remainargs}}%
- \ifx\mCh@remainargs\mCh@secondarg
- \mCh@empty@variable\thirdarg
- \else
- \expandafter\mCh@set@variable\expandafter\thirdarg\expandafter{\mCh@remainargs}%
- \fi
-}
-
-% --------------------------------------------------------------------------
-% options
-\define@key[MC]{mychemistry.sty}{strict}{\mCh@stricttrue}
-\DeclareOptionX[MC]{strict}{\mCh@stricttrue}
-
-\define@key[MC]{mychemistry.sty}{draft}{\mCh@stricttrue\mCh@drafttrue}
-\DeclareOptionX[MC]{draft}{\mCh@stricttrue\mCh@drafttrue}
-
-\define@key[MC]{mychemistry.sty}{final}{\mCh@strictfalse\mCh@draftfalse}
-\DeclareOptionX[MC]{final}{\mCh@strictfalse\mCh@draftfalse}
-
-\mCh@new@variable\rs@placement
-\mCh@new@variable\rs@currentplacement
-
-\mCh@set@variable\rs@placement{hpt}
-\mCh@let@variable\rs@currentplacement\rs@placement
-
-\define@key[MC]{mychemistry.sty}{placement}{%
- \mCh@set@variable\rs@placement{#1}}
-
-\ProcessOptionsX[MC]
-
-% --------------------------------------------------------------------------
-% language settings
-\mCh@new@variable\rs@name
-\mCh@set@variable\rs@name{Reaction scheme}
-
-\RequirePackage{translations}
-\NewTranslation{English} {reaction-scheme-(caption-title)} {Reaction scheme}
-\NewTranslation{French} {reaction-scheme-(caption-title)} {Sch\'{e}ma r\'{e}actionnel}
-\NewTranslation{German} {reaction-scheme-(caption-title)} {Reaktionsschema}
-\NewTranslation{Italian} {reaction-scheme-(caption-title)} {Reazione Scheme}
-\NewTranslation{Spanish} {reaction-scheme-(caption-title)} {Esquema de Reacci\'{o}n}
-\mCh@set@variable\rs@name{\GetTranslation{reaction-scheme-(caption-title)}}
-
-
-% --------------------------------------------------------------------------
-% Direction Analysis
-% Richtungen:
-\mCh@new@variable\r
-\mCh@new@variable\ar
-\mCh@new@variable\a
-\mCh@new@variable\al
-\mCh@new@variable\l
-\mCh@new@variable\br
-\mCh@new@variable\b
-\mCh@new@variable\bl
-
-\mCh@set@variable\r{right}
-\mCh@set@variable\ar{above right}
-\mCh@set@variable\a{above}
-\mCh@set@variable\al{above left}
-\mCh@set@variable\l{left}
-\mCh@set@variable\br{below right}
-\mCh@set@variable\b{below}
-\mCh@set@variable\bl{below left}
-
-\mCh@new@variable\vert@i
-\mCh@new@variable\vert@ii
-\mCh@new@variable\vert@iii
-
-\mCh@set@variable\vert@i{90}
-\mCh@set@variable\vert@ii{-90}
-\mCh@set@variable\vert@iii{270}
-
-% Richtung in Bezug auf node oder nicht?
-\mCh@new@variable\direction
-
-\mCh@def\mCh@split@angle#1.#2\@nil#3{%
- \def#3{#1}\mCh@set@variable\direction{#2}}
-\mCh@def\mCh@wowo@node#1{%
- \mCh@if@instr{#1}{.}
- {\expandafter\mCh@split@angle#1\@nil\mCh@referred@node}
- {\mCh@set@variable\direction{#1}}}
-
-% Winkel bestimmen:
-\mCh@new@variable\angle
-\mCh@new@variable\referred@node
-
-\mCh@def\mCh@analyze@angle#1{%
- \mCh@empty@variable\angle
- \mCh@empty@variable\referred@node
- \mCh@wowo@node{#1}%
- \mCh@ifeq@variable\direction\r {\mCh@set@variable\angle{0}}{}%
- \mCh@ifeq@variable\direction\ar {\mCh@set@variable\angle{45}}{}%
- \mCh@ifeq@variable\direction\a {\mCh@set@variable\angle{90}}{}%
- \mCh@ifeq@variable\direction\al {\mCh@set@variable\angle{135}}{}%
- \mCh@ifeq@variable\direction\l {\mCh@set@variable\angle{180}}{}%
- \mCh@ifeq@variable\direction\bl {\mCh@set@variable\angle{225}}{}%
- \mCh@ifeq@variable\direction\b {\mCh@set@variable\angle{270}}{}%
- \mCh@ifeq@variable\direction\br {\mCh@set@variable\angle{315}}{}%
- \mCh@ifempty@variable\angle{%
- \pgfmathparse{\mCh@direction <0 ? int(\mCh@direction+360) : int(\mCh@direction) }%
- \mCh@xset@variable\angle{\pgfmathresult}%
- }{}%
-}
-% --------------------------------------------------------------------------
-% PFEILE
-% \arrow[<pos>,<type>,<length factor>,<name>,both,<tikz>]{<above>}{<below>}
-% Pfeiltypen:
-\mCh@new@variable\arrow@type@def
-\mCh@new@variable\arrow@type@eqv
-\mCh@new@variable\arrow@type@back
-\mCh@new@variable\arrow@type@eq
-\mCh@new@variable\arrow@type@eqq
-\mCh@new@variable\arrow@type@eeq
-\mCh@new@variable\arrow@type@not
-\mCh@new@variable\arrow@type@pm
-
-\mCh@set@variable\arrow@type@def{->}
-\mCh@set@variable\arrow@type@eqv{<->}
-\mCh@set@variable\arrow@type@back{<-}
-\mCh@set@variable\arrow@type@eq{<=>}
-\mCh@set@variable\arrow@type@eqq{<=>>}
-\mCh@set@variable\arrow@type@eeq{<<=>}
-\mCh@set@variable\arrow@type@not{-|>}
-\mCh@set@variable\arrow@type@pm{-+>}
-
-% Voreinstellungen
-% Pfeillänge
-\mCh@new@variable\arrow@length@def
-\mCh@new@variable\arrow@length
-\mCh@new@variable\arrow@factor
-
-\mCh@set@variable\arrow@length@def{4em}
-\let\mCh@arrow@length\mCh@arrow@length@def
-\mCh@set@variable\arrow@factor{1}
-
-\newrobustcmd\setarrowlength[1]{%
- \ifblank{#1}
- {\mCh@let@variable\arrow@length\arrow@length@def}
- {\mCh@set@variable\arrow@length{#1}}}
-
-% Label-Abstand
-\mCh@new@variable\arrow@label@dist@def
-\mCh@new@variable\arrow@label@dist
-
-\mCh@set@variable\arrow@label@dist@def{.2em}
-\mCh@let@variable\arrow@label@dist\arrow@label@dist@def
-
-\newrobustcmd\setarrowlabel[1]{%
- \ifblank{#1}
- {\mCh@let@variable\arrow@label@dist\arrow@label@dist@def}
- {\mCh@set@variable\arrow@label@dist{#1}}}
-
-% Pfeildicke
-\mCh@new@variable\arrow@linethickness@default
-\mCh@new@variable\arrow@linethickness
-
-\mCh@set@variable\arrow@linethickness@default{semithick}
-\mCh@let@variable\arrow@linethickness\arrow@linethickness@default
-
-\newrobustcmd\setarrowline[1]{%
- \ifblank{#1}
- {\mCh@let@variable\arrow@linethickness\arrow@linethickness@default}
- {\mCh@set@variable\arrow@linethickness{#1}}}
-
-% Winkel untersuchen, um Label richtig anzubringen
-\mCh@new@variable\beta
-\mCh@new@variable\arrow@label@anchor@up
-\mCh@new@variable\arrow@label@anchor@down
-\mCh@new@variable\arrow@label@anchor@add
-\mCh@new@variable\arrow@label@anchor@sub
-\newcount\mCh@alpha
-
-\mCh@def\mCh@evaluate@angle#1{
- \mCh@alpha=#1
- \pgfmathparse{cos(\mCh@alpha) > 0}
- \ifnum\pgfmathresult=1
- \mCh@set@variable\beta{#1}%
- \mCh@set@variable\arrow@label@anchor@up{south}%
- \mCh@set@variable\arrow@label@anchor@down{north}%
- \ifnum\mCh@alpha<180
- \mCh@set@variable\arrow@label@anchor@add{east}%
- \mCh@set@variable\arrow@label@anchor@sub{south}%
- \else
- \mCh@set@variable\arrow@label@anchor@add{south}%
- \mCh@set@variable\arrow@label@anchor@sub{west}%
- \fi
- \else
- \pgfmathparse{cos(\mCh@alpha) == 0}%
- \ifnum\pgfmathresult=1
- \mCh@set@variable\beta{0}%
- \ifnum\mCh@alpha=90
- \mCh@set@variable\arrow@label@anchor@up{east}%
- \mCh@set@variable\arrow@label@anchor@down{west}%
- \mCh@set@variable\arrow@label@anchor@add{east}%
- \mCh@set@variable\arrow@label@anchor@sub{east}%
- \else
- \mCh@set@variable\arrow@label@anchor@up{west}%
- \mCh@set@variable\arrow@label@anchor@down{east}%
- \mCh@set@variable\arrow@label@anchor@add{west}%
- \mCh@set@variable\arrow@label@anchor@sub{west}%
- \fi
- \else
- \mCh@set@variable\arrow@label@anchor@up{north}%
- \mCh@set@variable\arrow@label@anchor@down{south}%
- \ifnum\mCh@alpha=180
- \mCh@set@variable\beta{180-#1}%
- \mCh@set@variable\arrow@label@anchor@add{north}%
- \mCh@set@variable\arrow@label@anchor@sub{north}%
- \fi
- \ifnum\mCh@alpha>180
- \mCh@set@variable\beta{180+#1}%
- \mCh@set@variable\arrow@label@anchor@add{west}%
- \mCh@set@variable\arrow@label@anchor@sub{north}%
- \fi
- \ifnum\mCh@alpha<180
- \mCh@set@variable\beta{180+#1}%
- \mCh@set@variable\arrow@label@anchor@add{north}%
- \mCh@set@variable\arrow@label@anchor@sub{east}%
- \fi
- \fi
- \fi
-}
-
-% Maße der Nodes der Pfeilargumente bestimmen, größere später an Pfeil weitergeben
-\mCh@new@variable\arrow@both
-\mCh@set@variable\arrow@both{both}
-
-\newlength{\mCh@height@A}
-\newlength{\mCh@height@B}
-\newlength{\mCh@arrow@label@height}
-\newlength{\mCh@width@A}
-\newlength{\mCh@width@B}
-\newlength{\mCh@arrow@label@width}
-
-\mCh@def\mCh@savenode{%
- \global\let\mCh@minx=\pgfpositionnodelaterminx
- \global\let\mCh@maxx=\pgfpositionnodelatermaxx
- \global\let\mCh@miny=\pgfpositionnodelaterminy
- \global\let\mCh@maxy=\pgfpositionnodelatermaxy
-}
-
-% der nächste Befehl benötigt pgf v2.10!
-\mCh@def\mCh@largernode#1#2{%
- \ifdef\pgfpositionnodelater{%
- \pgfpositionnodelater{\mCh@savenode}%
- \node{#1};
- \deflength{\mCh@width@A}{\mCh@maxx-\mCh@minx}%
- \deflength{\mCh@height@A}{\mCh@maxy-\mCh@miny}%
- \node{#2};
- \deflength{\mCh@width@B}{\mCh@maxx-\mCh@minx}%
- \deflength{\mCh@height@B}{\mCh@maxy-\mCh@miny}%
- \pgfmathsetlength{\mCh@arrow@label@width}{max(\mCh@width@A,\mCh@width@B)}%
- \pgfmathsetlength{\mCh@arrow@label@height}{max(\mCh@height@A,\mCh@height@B)}%
- \global\mCh@arrow@label@width=\mCh@arrow@label@width
- \global\mCh@arrow@label@height=\mCh@arrow@label@height
- }{%
- \mCh@error{%
- The command \string\pgfpositionnodelater\space is undefined. Make sure,
- you have installed the latest version of pgf}{}%
- }%
-}
-
-% Pfeil zeichnen:
-\newrobustcmd\mCh@arrow[3][]{%
- \ifstrempty{#1}
- {\mCh@arrow@i}{\mCh@arrow@ii[#1]}
- {#2}{#3}}
-
-\mCh@def\mCh@arrow@i#1#2{%
- \node[on chain=going {at=(\tikzchainprevious.0)},
- minimum size=0,
- inner sep=3pt,
- outer sep=0,
- anchor=180,
- shift=(0:.5*\mCh@rxn@node@distance)] (@mCh@arrow@start){};
- \node[on chain=going {at=(\tikzchainprevious.0),
- shift=($(0:.5*\mCh@arrow@factor*\mCh@arrow@length)$)},
- minimum size=0,
- inner sep=3pt,
- outer sep=0] (@mCh@arrow@end){};
- \draw[-mCtip,\mCh@arrow@linethickness]
- let \n1={0}, \n2={180}
- in (@mCh@arrow@start.\n1) --node[pos=.5,inner sep=0](mCh@arrow@center){}
- ++($(0:\mCh@arrow@factor*\mCh@arrow@length)$);
- \expandafter\node\expandafter[\mCh@arrow@uplabel@visible,
- rotate=0,
- anchor=south,
- inner sep=0]
- at ($(mCh@arrow@center)!\mCh@arrow@label@dist!90:(@mCh@arrow@end)$){#1};
- \expandafter\node\expandafter[\mCh@arrow@downlabel@visible,
- rotate=0,
- anchor=north,
- inner sep=0]
- at ($(mCh@arrow@center)!\mCh@arrow@label@dist!-90:(@mCh@arrow@end)$){#2};
-}
-
-\mCh@new@variable\arrow@plusminus
-\mCh@new@variable\anchor
-\mCh@new@variable\arrow@tikz
-\mCh@new@variable\arrow@type@valid
-\mCh@new@variable\arrow@type
-\mCh@new@variable\arrow@type@actual
-\mCh@new@variable\arrow@name
-
-\mCh@def\mCh@arrow@ii[#1]#2#3{%
- \mCh@empty@variable\arrow@plusminus
- \mCh@empty@variable\arrow@type
- \let\mCh@remainargs\@empty
- \mCh@splitarg{#1}%
- \mCh@ifempty@variable\firstarg{% erste Option: Richtung
- \mCh@set@variable\angle{0}%
- \mCh@set@variable\beta{0}%
- \mCh@set@variable\arrow@label@anchor@up{south}%
- \mCh@set@variable\arrow@label@anchor@down{north}%
- \mCh@set@variable\arrow@label@anchor@add{south}%
- \mCh@set@variable\arrow@label@anchor@sub{south}%
- \mCh@set@variable\anchor{180}%
- \mCh@empty@variable\referred@node
- }{%
- \expandafter\mCh@analyze@angle\expandafter{\mCh@firstarg}%
- \mCh@set@variable\anchor{180+\mCh@angle}%
- \mCh@evaluate@angle{\mCh@angle}%
- }
- \mCh@ifempty@variable\referred@node{%
- \mCh@set@variable\referred@node{\tikzchainprevious}%
- }{}%
- \mCh@ifempty@variable\secondarg{}{% zweite Option: Typ
- \mCh@set@variable\arrow@type{true}
- \mCh@let@variable\arrow@type@actual\secondarg
- }%
- \let\mCh@remainargs\@empty%
- \expandafter\mCh@splitarg\expandafter{\mCh@thirdarg}%
- \mCh@ifempty@variable\firstarg{% dritte Option: Längenfaktor
- \mCh@set@variable\arrow@factor{1}%
- }{%
- \mCh@xset@variable\arrow@factor{\mCh@firstarg}%
- }%
- \mCh@ifempty@variable\secondarg{% vierte Option: Name
- \mCh@set@variable\arrow@name{mCh@arrow@center}%
- }{%
- \mCh@xset@variable\arrow@name{\mCh@secondarg}%
- }%
- \let\mCh@remainargs\@empty%
- \expandafter\mCh@splitarg\expandafter{\mCh@thirdarg}%
- \mCh@ifeq@variable\arrow@both\firstarg% fünfte Option: both
- {{\mCh@largernode{#2}{#3}}}%
- {%
- \deflength{\mCh@arrow@label@width}{0pt}%
- \deflength{\mCh@arrow@label@height}{0pt}%
- }%
- \mCh@ifempty@variable\secondarg{% sechste Option: tikz
- \mCh@empty@variable\arrow@tikz
- }{%
- \mCh@xset@variable\arrow@tikz{\mCh@secondarg,\mCh@thirdarg}%
- }%
- \node[on chain=going {at=(\mCh@referred@node.\mCh@angle)},
- minimum size=0,
- inner sep=3pt,
- outer sep=0,
- anchor=\mCh@anchor,
- shift=(\mCh@angle:.5*\mCh@rxn@node@distance)] (@mCh@arrow@start){};
- \node[on chain=going {at=(\tikzchainprevious.\mCh@angle),
- shift=($(\mCh@angle:.5*\mCh@arrow@factor*\mCh@arrow@length)$)},
- minimum size=0,
- inner sep=3pt,
- outer sep=0] (@mCh@arrow@end){};
- \mCh@ifeq@variable\arrow@type\true{%
- \mCh@let@variable\arrow@type@valid\false
- \mCh@ifeq@variable\arrow@type@actual\arrow@type@eq{% <=>
- \mCh@let@variable\arrow@type@valid\true
- \expandafter\draw\expandafter[\mCh@arrow@tikz,
- -mChtip,
- \mCh@arrow@linethickness]
- let \n1={20+\mCh@angle}, \n2={160+\mCh@angle}
- in (@mCh@arrow@start.\n1) --node[pos=.5,inner sep=0](mCh@arrow@center@up){}
- ++($(\mCh@angle:\mCh@arrow@factor*\mCh@arrow@length)$);
- \expandafter\draw\expandafter[\mCh@arrow@tikz,
- mChtip-,
- \mCh@arrow@linethickness]
- let \n1={-20+\mCh@angle}, \n2={200+\mCh@angle}
- in (@mCh@arrow@start.\n1) --node[pos=.5,inner sep=0](mCh@arrow@center@down){}
- ++($(\mCh@angle:\mCh@arrow@factor*\mCh@arrow@length)$);
- \draw[draw=none]
- let \n1={\mCh@angle}, \n2={180+\mCh@angle}
- in (@mCh@arrow@start.\n1) --node[pos=.5,inner sep=0](\mCh@arrow@name){}
- ++($(\mCh@angle:\mCh@arrow@factor*\mCh@arrow@length)$);
- \expandafter\node\expandafter[\mCh@arrow@uplabel@visible,
- rotate=\mCh@beta,
- anchor=\mCh@arrow@label@anchor@up,
- minimum width=\mCh@arrow@label@width,
- minimum height=\mCh@arrow@label@height,
- inner sep=0]
- at ($(mCh@arrow@center@up)!\mCh@arrow@label@dist!90:(@mCh@arrow@end)$){#2};
- \expandafter\node[\expandafter\mCh@arrow@downlabel@visible,
- rotate=\mCh@beta,
- anchor=\mCh@arrow@label@anchor@down,
- minimum width=\mCh@arrow@label@width,
- minimum height=\mCh@arrow@label@height,
- inner sep=0]
- at ($(mCh@arrow@center@down)!\mCh@arrow@label@dist!-90:(@mCh@arrow@end)$){#3};
- }{}%
- \mCh@ifeq@variable\arrow@type@actual\arrow@type@eqq{% <=>>
- \mCh@let@variable\arrow@type@valid\true
- \expandafter\draw\expandafter[\mCh@arrow@tikz,
- -mChtip,
- \mCh@arrow@linethickness]
- let \n1={20+\mCh@angle}, \n2={160+\mCh@angle}
- in (@mCh@arrow@start.\n1) --node[pos=.5,inner sep=0](mCh@arrow@center@up){}
- ++($(\mCh@angle:\mCh@arrow@factor*\mCh@arrow@length)$);
- \expandafter\draw\expandafter[\mCh@arrow@tikz,
- mChtip-,
- \mCh@arrow@linethickness]
- let \n1={-20+\mCh@angle}
- in ($(@mCh@arrow@start.\n1)+(\mCh@angle:.25*\mCh@arrow@factor*\mCh@arrow@length)$)
- --node[pos=.5,inner sep=0](mCh@arrow@center@down){}
- ++($(\mCh@angle:.5*\mCh@arrow@factor*\mCh@arrow@length)$);
- \draw[draw=none] let \n1={\mCh@angle}, \n2={180+\mCh@angle}
- in (@mCh@arrow@start.\n1) --node[pos=.5,inner sep=0](\mCh@arrow@name){}
- ++($(\mCh@angle:\mCh@arrow@factor*\mCh@arrow@length)$);
- \expandafter\node\expandafter[\mCh@arrow@uplabel@visible,
- rotate=\mCh@beta,
- anchor=\mCh@arrow@label@anchor@up,
- minimum width=\mCh@arrow@label@width,
- minimum height=\mCh@arrow@label@height,
- inner sep=0]
- at ($(mCh@arrow@center@up)!\mCh@arrow@label@dist!90:(@mCh@arrow@end)$){#2};
- \expandafter\node\expandafter[\mCh@arrow@downlabel@visible,
- rotate=\mCh@beta,
- anchor=\mCh@arrow@label@anchor@down,
- minimum width=\mCh@arrow@label@width,
- minimum height=\mCh@arrow@label@height,
- inner sep=0]
- at ($(mCh@arrow@center@down)!\mCh@arrow@label@dist!-90:(@mCh@arrow@end)$){#3};
- }{}%
- \mCh@ifeq@variable\arrow@type@actual\arrow@type@eeq{% <<=>
- \mCh@let@variable\arrow@type@valid\true
- \expandafter\draw\expandafter[\mCh@arrow@tikz,
- -mChtip,
- \mCh@arrow@linethickness]
- let \n1={20+\mCh@angle}, \n2={160+\mCh@angle}
- in ($(@mCh@arrow@start.\n1)+(\mCh@angle:.25*\mCh@arrow@factor*\mCh@arrow@length)$)
- --node[pos=.5,inner sep=0](mCh@arrow@center@up){}
- ++($(\mCh@angle:.5*\mCh@arrow@factor*\mCh@arrow@length)$);
- \expandafter\draw\expandafter[\mCh@arrow@tikz,
- mChtip-,
- \mCh@arrow@linethickness]
- let \n1={-20+\mCh@angle}, \n2={200+\mCh@angle}
- in (@mCh@arrow@start.\n1) --node[pos=.5,inner sep=0](mCh@arrow@center@down){}
- ++($(\mCh@angle:\mCh@arrow@factor*\mCh@arrow@length)$);
- \draw[draw=none]
- let \n1={\mCh@angle}, \n2={180+\mCh@angle}
- in (@mCh@arrow@start.\n1) --node[pos=.5,inner sep=0](\mCh@arrow@name){}
- ++($(\mCh@angle:\mCh@arrow@factor*\mCh@arrow@length)$);
- \expandafter\node\expandafter[\mCh@arrow@uplabel@visible,
- rotate=\mCh@beta,
- anchor=\mCh@arrow@label@anchor@up,
- minimum width=\mCh@arrow@label@width,
- minimum height=\mCh@arrow@label@height,
- inner sep=0]
- at ($(mCh@arrow@center@up)!\mCh@arrow@label@dist!90:(@mCh@arrow@end)$){#2};
- \expandafter\node\expandafter[\mCh@arrow@downlabel@visible,
- rotate=\mCh@beta,
- anchor=\mCh@arrow@label@anchor@down,
- minimum width=\mCh@arrow@label@width,
- minimum height=\mCh@arrow@label@height,
- inner sep=0]
- at ($(mCh@arrow@center@down)!\mCh@arrow@label@dist!-90:(@mCh@arrow@end)$){#3};
- }{}%
- \mCh@ifeq@variable\arrow@type@actual\arrow@type@def{% ->
- \mCh@let@variable\arrow@type@valid\true
- \expandafter\draw\expandafter[\mCh@arrow@tikz,
- -mCtip,
- \mCh@arrow@linethickness,
- \mCh@arrow@tikz]
- let \n1={\mCh@angle}, \n2={180+\mCh@angle}
- in (@mCh@arrow@start.\n1) --node[pos=.5,inner sep=0](\mCh@arrow@name){}
- ++($(\mCh@angle:\mCh@arrow@factor*\mCh@arrow@length)$);
- \expandafter\node\expandafter[\mCh@arrow@uplabel@visible,
- rotate=\mCh@beta,
- anchor=\mCh@arrow@label@anchor@up,
- minimum width=\mCh@arrow@label@width,
- minimum height=\mCh@arrow@label@height]
- at ($(\mCh@arrow@name)!\mCh@arrow@label@dist!90:(@mCh@arrow@end)$){#2};
- \expandafter\node\expandafter[\mCh@arrow@downlabel@visible,
- rotate=\mCh@beta,
- anchor=\mCh@arrow@label@anchor@down,
- minimum width=\mCh@arrow@label@width,
- minimum height=\mCh@arrow@label@height]
- at ($(\mCh@arrow@name)!\mCh@arrow@label@dist!-90:(@mCh@arrow@end)$){#3};
- }{}%
- \mCh@ifeq@variable\arrow@type@actual\arrow@type@eqv{% <->
- \mCh@let@variable\arrow@type@valid\true
- \expandafter\draw\expandafter[\mCh@arrow@tikz,
- mCtip-mCtip,
- \mCh@arrow@linethickness]
- let \n1={\mCh@angle}, \n2={180+\mCh@angle}
- in (@mCh@arrow@start.\n1) --node[pos=.5,inner sep=0](\mCh@arrow@name){}
- ++($(\mCh@angle:\mCh@arrow@factor*\mCh@arrow@length)$);
- \expandafter\node\expandafter[\mCh@arrow@uplabel@visible,
- rotate=\mCh@beta,
- anchor=\mCh@arrow@label@anchor@up,
- minimum width=\mCh@arrow@label@width,
- minimum height=\mCh@arrow@label@height,inner sep=0]
- at ($(\mCh@arrow@name)!\mCh@arrow@label@dist!90:(@mCh@arrow@end)$){#2};
- \expandafter\node\expandafter[\mCh@arrow@downlabel@visible,
- rotate=\mCh@beta,
- anchor=\mCh@arrow@label@anchor@down,
- minimum width=\mCh@arrow@label@width,
- minimum height=\mCh@arrow@label@height,inner sep=0]
- at ($(\mCh@arrow@name)!\mCh@arrow@label@dist!-90:(@mCh@arrow@end)$){#3};
- }{}%
- \mCh@ifeq@variable\arrow@type@actual\arrow@type@back{% <-
- \mCh@let@variable\arrow@type@valid\true
- \expandafter\draw\expandafter[\mCh@arrow@tikz,
- mCtip-,
- \mCh@arrow@linethickness]
- let \n1={\mCh@angle}, \n2={180+\mCh@angle}
- in (@mCh@arrow@start.\n1) --node[pos=.5,inner sep=0](\mCh@arrow@name){}
- ++($(\mCh@angle:\mCh@arrow@factor*\mCh@arrow@length)$);
- \expandafter\node\expandafter[\mCh@arrow@uplabel@visible,
- rotate=\mCh@beta,
- anchor=\mCh@arrow@label@anchor@up,
- minimum width=\mCh@arrow@label@width,
- minimum height=\mCh@arrow@label@height,
- inner sep=0] at ($(\mCh@arrow@name)!\mCh@arrow@label@dist!90:(@mCh@arrow@end)$){#2};
- \expandafter\node\expandafter[\mCh@arrow@downlabel@visible,
- rotate=\mCh@beta,
- anchor=\mCh@arrow@label@anchor@down,
- minimum width=\mCh@arrow@label@width,
- minimum height=\mCh@arrow@label@height,
- inner sep=0]
- at ($(\mCh@arrow@name)!\mCh@arrow@label@dist!-90:(@mCh@arrow@end)$){#3};
- }{}%
- \mCh@ifeq@variable\arrow@type@actual\arrow@type@not{% -|>
- \mCh@let@variable\arrow@type@valid\true
- \expandafter\draw\expandafter[\mCh@arrow@tikz,
- -mCtip,
- \mCh@arrow@linethickness]
- let \n1={\mCh@angle}, \n2={180+\mCh@angle}
- in (@mCh@arrow@start.\n1) --node[pos=.5,inner sep=0](\mCh@arrow@name){}
- ++($(\mCh@angle:\mCh@arrow@factor*\mCh@arrow@length)$);
- \expandafter\node\expandafter[\mCh@arrow@uplabel@visible,
- rotate=\mCh@beta,
- anchor=\mCh@arrow@label@anchor@up,
- minimum width=\mCh@arrow@label@width,
- minimum height=\mCh@arrow@label@height,
- inner sep=0] at ($(\mCh@arrow@name)!.8em!90:(@mCh@arrow@end)$){#2};
- \expandafter\node\expandafter[\mCh@arrow@downlabel@visible,
- rotate=\mCh@beta,
- anchor=\mCh@arrow@label@anchor@down,
- minimum width=\mCh@arrow@label@width,
- minimum height=\mCh@arrow@label@height,inner sep=0]
- at ($(\mCh@arrow@name)!.8em!-90:(@mCh@arrow@end)$){#3};
- \draw ($(mCh@arrow@center)!.6em!-110:(@mCh@arrow@end)+(\mCh@angle:.1em)$)
- --($(mCh@arrow@center)!.6em!70:(@mCh@arrow@end)+(\mCh@angle:.1em)$);
- \draw ($(mCh@arrow@center)!.6em!-110:(@mCh@arrow@end)+(180+\mCh@angle:.1em)$)
- --($(mCh@arrow@center)!.6em!70:(@mCh@arrow@end)+(180+\mCh@angle:.1em)$);
- }{}%
- \mCh@ifeq@variable\arrow@type@actual\arrow@type@pm{% -+>
- \mCh@let@variable\arrow@type@valid\true
- \mCh@let@variable\arrow@plusminus\true
- \draw[-mCtip,\mCh@arrow@linethickness]
- let \n1={\mCh@angle}, \n2={180+\mCh@angle}
- in (@mCh@arrow@start.\n1) --node[pos=.5,inner sep=0](\mCh@arrow@name){}
- ++($(\mCh@angle:\mCh@arrow@factor*\mCh@arrow@length)$);
- }{}%
- \mCh@ifeq@variable\arrow@type@valid\false
- {\mCh@error{Unknown arrow type `\mCh@arrow@type@actual'}{}}{}%
- }{% default: ->
- \expandafter\draw\expandafter[\mCh@arrow@tikz,
- -mCtip,
- \mCh@arrow@linethickness]
- let \n1={\mCh@angle}, \n2={180+\mCh@angle}
- in (@mCh@arrow@start.\n1) --node[pos=.5,inner sep=0](\mCh@arrow@name){}
- ++($(\mCh@angle:\mCh@arrow@factor*\mCh@arrow@length)$);
- \expandafter\node\expandafter[\mCh@arrow@uplabel@visible,
- rotate=\mCh@beta,
- anchor=\mCh@arrow@label@anchor@up,
- minimum width=\mCh@arrow@label@width,
- minimum height=\mCh@arrow@label@height,inner sep=0]
- at ($(\mCh@arrow@name)!\mCh@arrow@label@dist!90:(@mCh@arrow@end)$){#2};
- \expandafter\node\expandafter[\mCh@arrow@downlabel@visible,
- rotate=\mCh@beta,
- anchor=\mCh@arrow@label@anchor@down,
- minimum width=\mCh@arrow@label@width,
- minimum height=\mCh@arrow@label@height,inner sep=0]
- at ($(\mCh@arrow@name)!\mCh@arrow@label@dist!-90:(@mCh@arrow@end)$){#3};
- }%
- \mCh@ifempty@variable\arrow@plusminus{}{%
- \ifstrempty{#2}{}{%
- \draw (\mCh@arrow@name.base) edge[bend left]
- ++(${0.6667}*(146.3+\mCh@angle:.5*\mCh@arrow@factor*\mCh@arrow@length)$);
- \node[anchor=\mCh@arrow@label@anchor@add,
- inner sep=\mCh@arrow@label@dist,
- minimum width=\mCh@arrow@label@width,
- minimum height=\mCh@arrow@label@height]
- at ($(\mCh@arrow@name.base)+{0.6667}*(146.3+\mCh@angle:.5*\mCh@arrow@factor*\mCh@arrow@length)$) {#2};
- }%
- \ifstrempty{#3}{}{%
- \draw (\mCh@arrow@name.base) edge[bend right,-mCtip]
- ++(${0.6667}*(33.7+\mCh@angle:.5*\mCh@arrow@factor*\mCh@arrow@length)$);
- \node[anchor=\mCh@arrow@label@anchor@sub,
- inner sep=\mCh@arrow@label@dist,
- minimum width=\mCh@arrow@label@width,
- minimum height=\mCh@arrow@label@height]
- at ($(\mCh@arrow@name.base)+{0.6667}*(33.7+\mCh@angle:.5*\mCh@arrow@factor*\mCh@arrow@length)$) {#3};
- }%
- }%
- \mCh@set@variable\arrow@factor{1}%
-}
-
-% eigene Pfeilspitze ------------------------------------------------------------------ %
-\pgfarrowsdeclare{mCtip}{mCtip}
- {%
- \arrowsize=0.2pt
- \advance\arrowsize by .5\pgflinewidth
- \pgfarrowsleftextend{-4\arrowsize-.5\pgflinewidth}%
- \pgfarrowsrightextend{.5\pgflinewidth}%
- }
- {%
- \pgfsetdash{}{0pt}% do not dash
- \pgfsetroundjoin% fix join
- \pgfsetroundcap% fix cap
- \pgfpathmoveto{\pgfpointorigin}%
- \pgfpathlineto{\pgfpoint{-3pt}{1pt}}%
- \pgfpathlineto{\pgfpoint{-1.5pt}{0pt}}%
- \pgfpathlineto{\pgfpoint{-3pt}{-1pt}}%
- \pgfpathlineto{\pgfpoint{0pt}{0pt}}%
- \pgfusepathqfillstroke
- }
-
-\pgfarrowsdeclare{mChtip}{mChtip}
- {%
- \arrowsize=0.2pt
- \advance\arrowsize by .5\pgflinewidth
- \pgfarrowsleftextend{-4\arrowsize-.5\pgflinewidth}%
- \pgfarrowsrightextend{.5\pgflinewidth}%
- }
- {%
- \pgfsetdash{}{0pt}% do not dash
- \pgfsetroundjoin% fix join
- \pgfsetroundcap% fix cap
- \pgfpathmoveto{\pgfpoint{0pt}{0pt}}%
- \pgfpathlineto{\pgfpoint{-3pt}{1pt}}%
- \pgfpathlineto{\pgfpoint{-1.5pt}{0pt}}%
- \pgfpathlineto{\pgfpoint{0pt}{0pt}}%
- \pgfusepathqfillstroke
- }
-
-% --------------------------------------------------------------------------
-% MERGE
-% \merge[<label>,<pos>,<length>]{<target>}{<start a>}{<start b>}
-\mCh@new@variable\merge@length
-\mCh@new@variable\merge@length@default
-\mCh@new@variable\merge@length@value
-\mCh@new@variable\merge@arg
-\mCh@new@variable\merge@to
-\mCh@new@variable\merge@from@one
-\mCh@new@variable\merge@from@two
-
-\mCh@set@variable\merge@length@default{3em}
-\mCh@let@variable\merge@length@value\merge@length@default
-
-% Basisbefehle
-\mCh@def\mCh@merge@right{%
- \draw[mCtip-,\mCh@arrow@linethickness]
- ($(\mCh@merge@to.west)+(-\mCh@rxn@node@distance,0)$)
- --node[midway,above,yshift=.1em]{\mCh@merge@arg}
- ++(-\mCh@merge@length,0) node(crossing) {};
- \draw[\mCh@arrow@linethickness]
- ($(\mCh@merge@from@one.east)+(\mCh@rxn@node@distance,0)$) -| (crossing.base);
- \draw[\mCh@arrow@linethickness]
- ($(\mCh@merge@from@two.east)+(\mCh@rxn@node@distance,0)$) -| (crossing.base);
-}
-
-\mCh@def\mCh@merge@above{%
- \draw[mCtip-,\mCh@arrow@linethickness]
- ($(\mCh@merge@to.south)+(0,-\mCh@rxn@node@distance)$)
- --node[midway,right,xshift=.1em]{\mCh@merge@arg}
- ++(0,-\mCh@merge@length) node(crossing) {};
- \draw[\mCh@arrow@linethickness]
- (crossing.base) -| ($(\mCh@merge@from@one.north)+(0,\mCh@rxn@node@distance)$);
- \draw[\mCh@arrow@linethickness]
- (crossing.base) -| ($(\mCh@merge@from@two.north)+(0,\mCh@rxn@node@distance)$);
-}
-
-\mCh@def\mCh@merge@left{%
- \draw[mCtip-,\mCh@arrow@linethickness]
- ($(\mCh@merge@to.east)+(\mCh@rxn@node@distance,0)$)
- --node[midway,above,yshift=.1em]{\mCh@merge@arg}
- ++(\mCh@merge@length,0) node(crossing) {};
- \draw[\mCh@arrow@linethickness]
- ($(\mCh@merge@from@one.west)+(-\mCh@rxn@node@distance,0)$) -| (crossing.base);
- \draw[\mCh@arrow@linethickness]
- ($(\mCh@merge@from@two.west)+(-\mCh@rxn@node@distance,0)$) -| (crossing.base);
-}
-
-\mCh@def\mCh@merge@below{%
- \draw[mCtip-,\mCh@arrow@linethickness]
- ($(\mCh@merge@to.north)+(0,\mCh@rxn@node@distance)$)
- --node[midway,right,xshift=.1em]{\mCh@merge@arg}
- ++(0,\mCh@merge@length) node(crossing) {};
- \draw[\mCh@arrow@linethickness]
- (crossing.base) -| ($(\mCh@merge@from@one.south)+(0,-\mCh@rxn@node@distance)$);
- \draw[\mCh@arrow@linethickness]
- (crossing.base) -| ($(\mCh@merge@from@two.south)+(0,-\mCh@rxn@node@distance)$);
-}
-
-% eigentlicher Befehl ----------------------------------------------------------------- %
-\newrobustcmd\mCh@merge[4][]{%
- \ifblank{#1}
- {\mCh@merge@i}{\mCh@merge@ii[#1]}
- {#2}{#3}{#4}}
-
-\mCh@def\mCh@merge@i#1#2#3{%
- \mCh@let@variable\merge@length\merge@length@value
- \mCh@empty@variable\merge@arg
- \mCh@set@variable\merge@to{#1}%
- \mCh@set@variable\merge@from@one{#2}%
- \mCh@set@variable\merge@from@two{#3}%
- \mCh@merge@below
-}
-
-\mCh@def\mCh@merge@ii[#1]#2#3#4{%
- \let\mCh@remainargs\@empty
- \mCh@splitarg{#1}%
- \mCh@ifempty@variable\firstarg
- {\mCh@empty@variable\merge@arg}
- {\mCh@let@variable\merge@arg\firstarg}%
- \mCh@ifempty@variable\thirdarg
- {\mCh@let@variable\merge@length\merge@length@value}
- {\mCh@set@variable\merge@length{\mCh@thirdarg}}%
- \mCh@set@variable\merge@to{#2}%
- \mCh@set@variable\merge@from@one{#3}%
- \mCh@set@variable\merge@from@two{#4}%
- \mCh@ifempty@variable\secondarg
- {\mCh@merge@below}
- {\csuse{mCh@merge@\mCh@secondarg}}%
-}
-
-\newrobustcmd\setmergelength[1]{%
- \ifblank{#1}
- {\mCh@let@variable\merge@length@value\merge@length@default}
- {\mCh@set@variable\merge@length@value{#1}}}
-
-% --------------------------------------------------------------------------
-% REAKTIONSSCHEMA
-\newlength\mCh@rxn@node@distance@default
-\newlength\mCh@rxn@node@distance
-
-\deflength\mCh@rxn@node@distance@default{1em}
-\deflength\mCh@rxn@node@distance{\mCh@rxn@node@distance@default}
-
-\newrobustcmd\setrcndist[1]{%
- \ifblank{#1}
- {\deflength\mCh@rxn@node@distance{\mCh@rxn@node@distance@default}}
- {\deflength\mCh@rxn@node@distance{#1}}}
-
-% Schema
-% \begin{rxnscheme}[<label>,<placement>,<align>,<scale factor>,<name>]{<caption>}
-\mCh@new@variable\rs@scale
-\mCh@new@variable\rs@currentscale
-
-\mCh@set@variable\rs@scale{1.0}
-\mCh@set@variable\rs@currentscale{\mCh@rs@scale}
-
-\newrobustcmd\setschemename[1]{%
- \mCh@set@variable\rs@name{#1}}
-
-\mCh@new@variable\rs@caption
-\mCh@new@variable\rs@label
-\mCh@new@variable\rs@currentlabel
-\mCh@new@variable\rs@align
-\mCh@new@variable\rs@right
-\mCh@new@variable\rs@center
-\mCh@new@variable\rs@left
-
-\mCh@let@variable\rs@currentlabel\rs@label
-\mCh@set@variable\rs@align{center}
-\mCh@set@variable\rs@right{right}
-\mCh@set@variable\rs@center{center}
-\mCh@set@variable\rs@left{left}
-
-\newrobustcmd\setschemealign[1]{%
- \ifblank{#1}
- {\mCh@set@variable\rs@align{center}}
- {\mCh@set@variable\rs@align{#1}}}
-
-% Gleitumgebung
-\floatstyle{ruled}
-\newfloat{rxnfloat}{\mCh@rs@currentplacement}{rxnscheme}
-\floatname{rxnfloat}{\mCh@rs@name}% Name ändern
-
-% eigentliche Umgebung:
-\newrobustcmd\mCh@rxnscheme[2][]{%
- \ifblank{#1}
- {\mCh@rxnscheme@i}
- {\mCh@empty@variable\rs@currentlabel\mCh@rxnscheme@ii[#1]}%
- {#2}}
-
-\mCh@def\mCh@rxnscheme@ii[#1]#2{% [<label>,<placement>,<align>,<scale>,<name>]
- \let\mCh@remainargs\@empty
- \mCh@splitarg{#1}%
- \mCh@ifempty@variable\firstarg% erste Option
- {\mCh@empty@variable\rs@currentlabel}
- {\mCh@let@variable\rs@currentlabel\firstarg}%
- \mCh@ifempty@variable\secondarg% zweite Option
- {\mCh@let@variable\rs@currentplacement\rs@placement}
- {\mCh@let@variable\rs@currentplacement\secondarg}%
- \let\mCh@remainargs\@empty
- \expandafter\mCh@splitarg\expandafter{\mCh@thirdarg}%
- \mCh@ifempty@variable\firstarg% dritte Option
- {\mCh@set@variable\rs@align{center}}
- {\mCh@let@variable\rs@align\firstarg}%
- \mCh@ifempty@variable\secondarg% vierte Option
- {\mCh@set@variable\rs@currentscale{1}}
- {\mCh@let@variable\rs@currentscale\secondarg}%
- \mCh@ifempty@variable\thirdarg{}% fünfte Option
- {\mCh@let@variable\rs@name\thirdarg}%
- \mCh@rxnscheme@i{#2}%
-}
-
-\mCh@def\mCh@scheme@enable{%
- \let\arrow\mCh@arrow
- \let\reactant\mCh@reactant
- \let\mesomeric\mCh@mesomeric
- \let\transition\mCh@transition
- \let\anywhere\mCh@anywhere
- \let\dummy\mCh@dummy
- \let\branch\mCh@branch
- \let\chemand\mCh@chemand
- \let\merge\mCh@merge
-% \let\elmove\mCh@elmove
-}
-
-\mCh@def\mCh@scheme@disable{%
- \let\arrow\relax
- \let\reactant\relax
- \let\mesomeric\relax
- \let\transition\relax
- \let\anywhere\relax
- \let\dummy\relax
- \let\branch\relax
- \let\chemand\relax
- \let\merge\relax
-% \let\elmove\relax
-}
-
-\mCh@def\mCh@rxnscheme@i#1{%
- \mCh@scheme@enable
- \mCh@set@variable\rs@caption{#1}%
- \rxnfloat
- \mCh@ifeq@variable\rs@align\rs@center{\centering}{}%
- \mCh@ifeq@variable\rs@align\rs@left{\raggedright}{}%
- \mCh@ifeq@variable\rs@align\rs@right{\raggedleft}{}%
- \mCh@atomsize\mCh@bondlength\mCh@bondshape
- \tikzpicture[
- every picture/.style={scale=\mCh@rs@currentscale},
- start chain,
- node distance=\mCh@rxn@node@distance,
- inner sep=0pt,
- outer sep=0pt]
- \mCh@dummy
-}
-
-\newenvironment{rxnscheme}{\mCh@rxnscheme}{%
- \endtikzpicture
- \caption{\mCh@rs@caption}%
- \mCh@ifempty@variable\rs@currentlabel{}
- {\label{\mCh@rs@currentlabel}}%
- \endrxnfloat
- \mCh@scheme@disable
-}
-
-% ----------------------------------------------------------------------------
-% einfache Reaktion
-% \begin{rxn}[<align>,<scalefactor>]
-\mCh@new@variable\reaction@scale
-\mCh@new@variable\reaction@align
-
-\mCh@set@variable\reaction@scale{1.0}
-\mCh@set@variable\reaction@align{center}
-
-\newrobustcmd\setrxnalign[1]{%
- \ifblank{#1}
- {\mCh@set@variable\reaction@align{center}}
- {\mCh@set@variable\reaction@align{#1}}}
-
-\mCh@new@variable\reaction@right
-\mCh@new@variable\reaction@center
-\mCh@new@variable\reaction@left
-
-\mCh@set@variable\reaction@right{right}
-\mCh@set@variable\reaction@center{center}
-\mCh@set@variable\reaction@left{left}
-
-\newrobustcmd\mCh@rxn[1][]{%
- \ifblank{#1}
- {\mCh@rxn@i}{\mCh@rxn@ii[#1]}}
-
-\mCh@def\mCh@rxn@ii[#1]{%
- \let\mCh@remainargs\@empty
- \mCh@splitarg{#1}%
- \mCh@ifempty@variable\firstarg
- {\mCh@let@variable\reaction@align\reaction@center}
- {\mCh@let@variable\reaction@align\firstarg}%
- \mCh@ifempty@variable\secondarg
- {\mCh@set@variable\reaction@scale{1}}
- {\mCh@let@variable\reaction@scale\secondarg}%
- \mCh@rxn@i
-}
-
-\mCh@def\mCh@rxn@i{%
- \mCh@scheme@enable
- \hspace*{0pt}%
- \mCh@ifeq@variable\reaction@align\reaction@center{\center}{}%
- \mCh@ifeq@variable\reaction@align\reaction@left{\flushleft}{}%
- \mCh@ifeq@variable\reaction@align\reaction@right{\flushright}{}%
- \mCh@bondlength\mCh@bondshape\mCh@atomsize
- \begin{tikzpicture}[
- every picture/.style={scale=\mCh@reaction@scale},
- start chain,
- node distance=\mCh@rxn@node@distance,
- inner sep=0pt,
- outer sep=0pt]
- \mCh@dummy
-}
-
-\newenvironment{rxn}{\mCh@rxn}{%
- \end{tikzpicture}%
- \mCh@ifeq@variable\reaction@align\reaction@center{\endcenter}{}%
- \mCh@ifeq@variable\reaction@align\reaction@left{\endflushleft}{}%
- \mCh@ifeq@variable\reaction@align\reaction@right{\endflushright}{}%
- \mCh@scheme@disable
-}
-
-% --------------------------------------------------------------------------
-% REAKTANDEN
-% Standardreaktand
-% \reactant[<pos>,<name>,<tikz>]{<something>}
-\def\mCh@argument@safe{\@makeother\#}
-
-\newrobustcmd\mCh@reactant[1][]{%
- \begingroup
- \mCh@argument@safe
- \ifblank{#1}
- {\mCh@reactant@i}
- {\mCh@reactant@ii[#1]}%
-}
-
-\mCh@def\mCh@reactant@i#1{%
- \expandafter\node\expandafter[%
- \mCh@reactant@visible,
- on chain=going {at=(\tikzchainprevious.0)},
- anchor=180,
- shift=(0:\mCh@rxn@node@distance)]{#1};
- \endgroup
-}
-
-\mCh@def\mCh@reactant@ii[#1]#2{%
- \let\mCh@remainargs\@empty\mCh@splitarg{#1}%
- \mCh@ifempty@variable\firstarg{% erste Option: <pos>, zweite Option: <name>, dritte Option: <tikz>
- \mCh@set@variable\angle{0}%
- \mCh@set@variable\anchor{180}%
- \mCh@empty@variable\referred@node
- }{%
- \expandafter\mCh@analyze@angle\expandafter{\mCh@firstarg}%
- \mCh@set@variable\anchor{180+\mCh@angle}%
- }%
- \mCh@ifempty@variable\referred@node
- {\mCh@set@variable\referred@node{\tikzchainprevious}}{}%
- \expandafter\expandafter\expandafter\node\expandafter\expandafter\expandafter[%
- \expandafter\mCh@thirdarg\expandafter,%
- \mCh@reactant@visible,
- on chain=going {at=(\mCh@referred@node.\mCh@angle)},
- anchor=\mCh@anchor,shift=(\mCh@angle:\mCh@rxn@node@distance)]
- (\mCh@secondarg){#2};
- \endgroup
-}
-
-% Mesomerie
-% \mesomeric[<pos>,<name>,<tikz>]{<something>}
-\newrobustcmd\mCh@mesomeric[1][]{%
- \begingroup
- \mCh@argument@safe
- \ifblank{#1}
- {\mCh@mesomeric@i}
- {\mCh@mesomeric@ii[#1]}%
-}
-
-\mCh@def\mCh@mesomeric@i#1{%
- \node[on chain=going {at=(\tikzchainprevious.0),
- shift=($(0:\mCh@rxn@node@distance)$)},
- anchor=180,shift=(0:\mCh@rxn@node@distance),
- inner sep=1pt,
- left delimiter={[},
- right delimiter={]}]
- {\tikzpicture[start branch]#1\endtikzpicture};
- \endgroup
-}
-
-\mCh@def\mCh@mesomeric@ii[#1]#2{%
- \let\mCh@remainargs\@empty
- \mCh@splitarg{#1}%
- \mCh@ifempty@variable\firstarg{% erste Option: <pos>, zweite Option: <name>, dritte Option: <tikz>
- \mCh@set@variable\angle{0}%
- \mCh@set@variable\anchor{180}%
- \mCh@empty@variable\referred@node
- }{%
- \expandafter\mCh@analyze@angle\expandafter{\mCh@firstarg}%
- \mCh@set@variable\anchor{180+\mCh@angle}%
- }%
- \mCh@ifempty@variable\referred@node
- {\mCh@set@variable\referred@node{\tikzchainprevious}}{}%
- \expandafter\node\expandafter[\mCh@thirdarg,
- on chain=going {at=(\mCh@referred@node.\mCh@angle)},
- anchor=\mCh@anchor,
- shift=(\mCh@angle:\mCh@rxn@node@distance),
- inner sep=1pt,
- left delimiter={[},
- right delimiter={]}]
- (\mCh@secondarg){\tikzpicture[start branch]#2\endtikzpicture};
- \endgroup
-}
-
-% Mesomerie-Pfeil
-% \marrow[<pos>]
-\newrobustcmd\marrow[1][]{\arrow[#1,<->,.5]{}{}}
-
-% Anywhere
-% \anywhere{<pos>,<name>,<tikz>}{<something>}
-\mCh@new@variable\anywhere@positioning
-
-\newrobustcmd\mCh@anywhere[1]{%
- \begingroup
- \mCh@argument@safe
- \let\mCh@remainargs\@empty
- \mCh@splitarg{#1}% erste Option: <pos>, zweite Option: <name>, dritte Option: <tikz>
- \mCh@ifempty@variable\firstarg{%
- \mCh@error{\string\anywhere: positioning missing}{}%
- }{%
- \expandafter\mCh@if@instr\expandafter{\mCh@firstarg}{=}{%
- \mCh@xset@variable\anywhere@positioning{\mCh@firstarg}%
- }{%
- \expandafter\mCh@analyze@angle\expandafter{\mCh@firstarg}%
- \mCh@set@variable\anchor{180+\mCh@angle}%
- \mCh@ifempty@variable\referred@node{%
- \mCh@error{You can't use `angle' to position \string\anywhere.
- You need to use `name.angle'}%
- }{%
- \mCh@set@variable\anywhere@positioning{%
- at=(\mCh@referred@node.\mCh@angle),anchor=\mCh@anchor}%
- }%
- }%
- }%
- \mCh@anywhere@i
-}
-
-\mCh@def\mCh@anywhere@i#1{%
- \expandafter\expandafter\expandafter\node\expandafter\expandafter\expandafter[%
- \expandafter\mCh@thirdarg\expandafter,%
- \mCh@anywhere@positioning](\mCh@secondarg){#1};
- \endgroup
-}
-
-% Dummy
-% \dummy[<name>]
-\newrobustcmd\mCh@dummy[1][]{%
- \ifblank{#1}
- {\draw node[on chain,xshift=-\mCh@rxn@node@distance]{};}
- {\draw node[on chain,xshift=-\mCh@rxn@node@distance](#1){};}}
-
-% Uebergangszustand
-% \transition[<pos>,<name>,<tikz>]{<something>}
-\mCh@new@variable\transition@name
-
-\newrobustcmd\mCh@transition[1][]{%
- \begingroup
- \mCh@argument@safe
- \ifblank{#1}
- {\mCh@transition@i}
- {\mCh@transition@ii[#1]}%
-}
-
-\mCh@def\mCh@transition@i#1{%
- \expandafter\node\expandafter[\mCh@reactant@visible,
- on chain=going {at=(\tikzchainprevious.0)},
- anchor=180,
- shift=(0:\mCh@rxn@node@distance),
- anchor=180,
- inner sep=3pt,
- left delimiter={[},
- right delimiter={]}]
- (mCh@transition@name){#1};
- \node at ($(mCh@transition@name.north east)+(.7em,0)$)
- {$\transitionstatesymbol$};
- \endgroup
-}
-
-\mCh@def\mCh@transition@ii[#1]#2{%
- \let\mCh@remainargs\@empty
- \mCh@splitarg{#1}%
- \mCh@ifempty@variable\firstarg{% erste Option: <pos>
- \mCh@set@variable\angle{0}%
- \mCh@set@variable\anchor{180}%
- \mCh@empty@variable\referred@node
- }{%
- \expandafter\mCh@analyze@angle\expandafter{\mCh@firstarg}%
- \mCh@set@variable\anchor{180+\mCh@angle}%
- }%
- \mCh@ifempty@variable\secondarg% zweite Option: <name>, dritte Option: <tikz>
- {\mCh@set@variable\transition@name{mCh@transition@name}}
- {\mCh@let@variable\transition@name\secondarg}%
- \mCh@ifempty@variable\referred@node
- {\mCh@set@variable\referred@node{\tikzchainprevious}}{}%
- \expandafter\expandafter\expandafter\node\expandafter\expandafter\expandafter[%
- \mCh@reactant@visible\expandafter,%
- \mCh@thirdarg,
- on chain=going {at=(\mCh@referred@node.\mCh@angle)},
- anchor=\mCh@anchor,
- shift=(\mCh@angle:\mCh@rxn@node@distance),
- inner sep=3pt,
- left delimiter={[},
- right delimiter={]}]
- (\mCh@transition@name){#2};
- \node at ($(\mCh@transition@name.north east)+(.7em,0)$)
- {$\transitionstatesymbol$};
- \endgroup
-}
-
-% Abzweigung
-% \branch[<pos>,<name>,<tikz>]{<formulae>}
-% <pos>: default: on chain=going "right" (0°)
-% on chain=going <somewhere>
-% <somewhere>=of <name>
-% <angle> (sitzt auf der Kette)
-% <name>.<angle> (sitzt nicht auf der Kette)
-\mCh@new@variable\branch@positioning
-
-\newrobustcmd\mCh@branch[1][]{%
- \begingroup
- \mCh@argument@safe
- \ifblank{#1}
- {\mCh@branch@i}
- {\mCh@branch@ii[#1]}%
-}
-
-\mCh@def\mCh@branch@i{%
- \expandafter\mCh@set@variable\expandafter\branch@positioning\expandafter{\mCh@branch@visible,
- on chain=going {at=(\tikzchainprevious.0)},
- anchor=180,
- shift=(0:\mCh@rxn@node@distance)}%
- \mCh@empty@variable\secondarg
- \mCh@empty@variable\thirdarg
- \mCh@branch@iii}
-
-\mCh@def\mCh@branch@ii[#1]{%
- \let\mCh@remainargs\@empty
- \mCh@splitarg{#1}% erste Option: <pos>, zweite Option: <name>, dritte Option: <tikz>
- \mCh@ifempty@variable\firstarg{%
- \expandafter\mCh@set@variable\expandafter\branch@positioning\expandafter{\mCh@branch@visible,
- on chain=going {at=(\tikzchainprevious.0)},
- anchor=180,
- shift=(0:\mCh@rxn@node@distance)}%
- }{%
- \expandafter\mCh@if@instr\expandafter{\mCh@firstarg}{=}{%
- \mCh@xset@variable\branch@positioning{\mCh@branch@visible,\mCh@firstarg}%
- }{%
- \expandafter\mCh@analyze@angle\expandafter{\mCh@firstarg}%
- \mCh@set@variable\anchor{180+\mCh@angle}%
- \mCh@ifempty@variable\referred@node{%
- \expandafter\mCh@set@variable\expandafter\branch@positioning\expandafter{\mCh@branch@visible,
- on chain=going {at=(\tikzchainprevious.\mCh@angle)},
- anchor=\mCh@anchor,
- shift=(\mCh@angle:\mCh@rxn@node@distance)}%
- }{%
- \expandafter\mCh@set@variable\expandafter\branch@positioning\expandafter{\mCh@branch@visible,
- at=(\mCh@referred@node.\mCh@angle),
- anchor=\mCh@anchor,
- shift=(\mCh@angle:\mCh@rxn@node@distance)}%
- }%
- }%
- }%
- \mCh@branch@iii}
-
-\mCh@def\mCh@branch@iii#1{%
- \expandafter\expandafter\expandafter\node\expandafter\expandafter\expandafter[%
- \expandafter\mCh@branch@positioning\expandafter,%
- \mCh@thirdarg]
- (\mCh@secondarg){\tikzpicture[start branch]#1\endtikzpicture};
- \endgroup
-}%
-
-
-% --------------------------------------------------------------------------
-% Sonstiges
-% Elektronenverschiebungspfeile
-\mCh@new@variable\elmove@default@tikz
-\mCh@new@variable\elmove@tikz
-
-\tikzset{mCh@elmove/.style={->,red,shorten <=3pt,shorten >=1pt}}
-\mCh@set@variable\elmove@default@tikz{mCh@elmove}
-\mCh@let@variable\elmove@tikz\elmove@default@tikz
-
-\newrobustcmd\elmove[5][]{%
- \chemmove{
- \expandafter\draw\expandafter[\mCh@elmove@tikz,#1]
- (#2).. controls +(#3) and +(#5)..(#4);
- }}
-
-\newrobustcmd\setelmove[1]{%
- \ifblank{#1}
- {\mCh@let@variable\elmove@tikz\elmove@default@tikz}
- {\mCh@set@variable\elmove@tikz{#1}}}
-
-% Plus
-\newrobustcmd\mCh@chemand[1][]{%
- \ifblank{#1}
- {\reactant{\chemsign[0pt]{+}}}
- {\reactant[#1]{\chemsign[0pt]{+}}}}
-
-% --------------------------------------------------------------------------
-% Setup myChemistry
-% Bindungslänge
-\mCh@new@variable\bondlength@default
-\mCh@new@variable\bondlength
-
-\mCh@set@variable\bondlength@default{1.8em}
-\mCh@set@variable\bondlength{\setatomsep{\mCh@bondlength@default}}
-
-\newrobustcmd\setbondlength[1]{%
- \ifblank{#1}
- {\mCh@set@variable\bondlength{\setatomsep{\mCh@bondlength@default}}}
- {\mCh@set@variable\bondlength{\setatomsep{#1}}}}
-
-% Keilbindungen
-\mCh@new@variable\bondshape@one
-\mCh@new@variable\bondshape@two
-\mCh@new@variable\bondshape@three
-
-\mCh@set@variable\bondshape@one{3pt}
-\mCh@set@variable\bondshape@two{.5pt}
-\mCh@set@variable\bondshape@three{1pt}
-
-\newrobustcmd\setbondshape[3]{%
- \ifblank{#1}
- {\mCh@set@variable\bondshape@one{3pt}}
- {\mCh@set@variable\bondshape@one{#1}}%
- \ifblank{#2}
- {\mCh@set@variable\bondshape@two{.5pt}}
- {\mCh@set@variable\bondshape@two{#2}}%
- \ifblank{#3}
- {\mCh@set@variable\bondshape@three{1pt}}
- {\mCh@set@variable\bondshape@three{#3}}%
-}
-
-\mCh@new@variable\bondshape
-\mCh@set@variable\bondshape{%
- \setcrambond{\mCh@bondshape@one}{\mCh@bondshape@two}{\mCh@bondshape@three}}
-
-% Atomgröße
-\mCh@new@variable\atomsize@default
-\mCh@new@variable\atomsize
-
-\mCh@set@variable\atomsize@default{\small}
-\mCh@let@variable\atomsize\atomsize@default
-
-\newrobustcmd\setatomsize[1]{%
- \ifblank{#1}
- {\mCh@let@variable\atomsize\atomsize@default}
- {\mCh@set@variable\atomsize{#1}}}
-
-% allg. Setup
-\newrobustcmd\mCsetup[1]{\setkeys{mCh@setup}{#1}}
-
-\define@key{mCh@setup}{arrowlabel}[\mCh@arrow@label@dist@def]{%
- \setarrowlabel{#1}}
-\define@key{mCh@setup}{arrowlength}[\mCh@arrow@length@def]{%
- \setarrowlength{#1}}
-\define@key{mCh@setup}{arrowline}[\mCh@arrow@linethickness@default]{%
- \setarrowline{#1}}
-\define@key{mCh@setup}{atomsize}[\mCh@atomsize@default]{%
- \setatomsize{#1}}
-\define@key{mCh@setup}{bondlength}[\mCh@bondlength@default]{%
- \setbondlength{#1}}
-\define@key{mCh@setup}{rcndist}[\mCh@rxn@node@distance@default]{%
- \setrcndist{#1}}
-\define@key{mCh@setup}{rxnalign}[center]{%
- \setrxnalign{#1}}
-\define@key{mCh@setup}{schemealign}[center]{%
- \setschemealign{#1}}
-\define@key{mCh@setup}{align}[center]{%
- \setrxnalign{#1}
- \setschemealign{#1}}
-\define@key{mCh@setup}{mergelength}[\mCh@merge@length@default]{%
- \setmergelength{#1}}
-\define@key{mCh@setup}{elmove}[\mCh@elmove@default@tikz]{%
- \setelmove{#1}}
-\define@key{mCh@setup}{reset}[]{%
- \setarrowlabel{}%
- \setarrowlength{}%
- \setarrowline{}%
- \setmergelength{}%
- \setatomsize{}%
- \setbondlength{}%
- \setbondshape{}{}{}%
- \setrcndist{}%
- \setrxnalign{}%
- \setschemealign{}%
- \setelmove{}%
-}
-
-% --------------------------------------------------------------------------
-% NODES SICHTBAR/UNSICHTBAR MACHEN
-\mCh@new@variable\reactant@visible
-\mCh@new@variable\arrow@uplabel@visible
-\mCh@new@variable\arrow@downlabel@visible
-\mCh@new@variable\branch@visible
-
-\mCh@empty@variable\reactant@visible
-\mCh@empty@variable\arrow@uplabel@visible
-\mCh@empty@variable\arrow@downlabel@visible
-\mCh@empty@variable\branch@visible
-
-\newrobustcmd\makevisible{%
- \ifmCh@draft
- \mCh@set@variable\reactant@visible{draw=red!60,solid}%
- \mCh@set@variable\arrow@uplabel@visible{draw=green!60,solid}%
- \mCh@set@variable\arrow@downlabel@visible{draw=blue!60,solid}%
- \mCh@set@variable\branch@visible{draw=cyan,solid}%
- \fi
-}
-
-\newrobustcmd\makeinvisible{%
- \mCh@empty@variable\reactant@visible
- \mCh@empty@variable\arrow@uplabel@visible
- \mCh@empty@variable\arrow@downlabel@visible
- \mCh@empty@variable\branch@visible
-}
-
-\endinput
-
-% ----------------------------------------------------------------------------
-HISTORY:
-2011/02/24 version 1.0 - first release to CTAN
-2011/03/01 version 1.1 - package option `english' added
- - package key `placement' added
- - rxnscheme key `placement' added
- - package key `shade=boolean' changed into package
- option `shade'
- - package option `nochemexec' added, will prevent mC
- from loading chemexec
-2011/03/20 version 1.2 - license changed into LPPL 1.3 or later
- - package option `nocompounds' added, will prevent mC
- from loading chemcompounds
- - package option `chemstyle' added, will load chemstyle
- - package option `nomhchem' added, will prevent mC from
- loading mhchem if chemexec isn't loaded either
- - package option `nopackages' added, will prevent mC
- from loading any chemistry package except chemfig
- - some small issues resolved
- - bug in arrow type <=> resolved
- - arrow argument placement rewritten; two new keys for
- arrow: `aboveshift' and `belowshift' (causing new
- problems with alignment, though)
- - wrong arrow alignment (due to last change) mainly
- resolved (NEEDS pgf v2.10!)
- => solved wrong branch alignment as well
- - `inner sep' set to 0, arrow, transition & mesomeric
- adjusted
- - bug in arrow type -|> resolved
- - commands \makevisible / \makeinvisible added
- - arrow key `both' added
- - rxn has now keys instead of an option
- - commands \setrcndist, \setrxnalign, \setschemealign
- added
- - rxn-, rxnscheme-key align added
-2011/03/26 version 1.2.1 - rewritten commands, so they accept second argument
- without first:
- \reactand, \mesomeric, \transition, \branch,
- \makevisible, \makeinvisible
-2011/03/28 version 1.2.2 - bugfix with transition
- - atomsize, arrowlength, bondlength and bondshape
- renamed into set<name> and code slightly rewritten
- - \mCsetup added
-2011/04/01 version 1.2.3 - bug in \branch resolved
- - \chemand added
-2011/04/02 version 1.2.4 - bugs in \makevisible, \makeinvisible resolved
- - input bondwidth.tex if ChemFig v0.4
-2011/04/04 version 1.3 - commands \reactand, \mesomeric, \branch, \transition,
- \chemand (\makeinvisible, \makeinvisible) rewritten:
- more flexible with opt. arguments
-2011/04/15 version 1.4 - minor bugfixes
- - \merge-command rewritten: it now accepts an arrow
- label and the length is adjustable
- - \dummy mostly obsolete
- - bugfix with aligning rxn & rxnscheme
- - synonym to \reactand=\reactant added
- - rxn & rxnscheme rewritten
- - commands \reactant, \mesomeric, \branch & \transition
- modified: argument is set with \mCh@argument@safe{#1},
- so the chemfig catcode regime is working properly
- before () (else possible problem with triple bond ~)
- - syntax of \arrow changed so it fits to the syntax of
- all the other commands
- - command \anywhere added
- - own arrow tips defined
- - command \setarrowline added
- - new arrow type -+> added
-2011/04/23 version 1.5 - major parts of the code rewritten -- the whole
- positioning part now is different and way more flexible:
- arbitrary angles can be used for positioning, referencing
- an object is easier, arrows can be modified using <tikz>,
- command \anywhere now has similar syntax
- - arrow types <=>> and <<=> added
- - arrow type -+> modified: more flexible
- - bugfixes in error-handling
-2011/04/27 version 1.5.1 - removed bondwidth.tex
- - \arrow, \reactant, \mesomeric, \transition, \anywhere,
- \dummy, \branch, and \chemand only defined inside scheme
- environments
-2012/07/27 version 1.99 - conflict with `pdfpages' resolved, LaTeXified various
- parts in order to minimize conflicts with other
- packages; \merge is also only defined inside the scheme
- environments
-2012/09/20 version 1.99a - small adjustments to \elmove
-2012/12/19 version 1.99b - changed catcode regime (# is read with catcode 12)
- so that chemfig's bond offset works
-
-% ---------------------------------------------------------------------------- \ No newline at end of file
diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check
index 0ef3ddf43e4..fc01a21703d 100755
--- a/Master/tlpkg/bin/tlpkg-ctan-check
+++ b/Master/tlpkg/bin/tlpkg-ctan-check
@@ -504,7 +504,7 @@ my @TLP_working = qw(
musicography musikui musixguit
musixtex musixtex-fonts musixtnt musuos muthesis
mversion mwcls mwe mweights mxedruli
- mychemistry mycv mylatexformat mynsfc
+ mycv mylatexformat mynsfc
na-box na-position nag nameauth namespc nanicolle nanumtype1 nar
natbib natded nath nature
navigator navydocs
diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds
index ba2f5899620..099ec9bfb66 100755
--- a/Master/tlpkg/libexec/ctan2tds
+++ b/Master/tlpkg/libexec/ctan2tds
@@ -859,6 +859,7 @@ chomp (my $ctan_root = `tlpkginfo --ctan-root`);
'mx' , "die 'skipping, author does not recommend system install'",
'mxd', "die 'skipping, noinfo license, old mongolian'",
'mxedruli', "&MAKEflatten",
+ 'mychemistry', "die 'skipping, obsolete on ctan'",
'na-border', "die 'skipping, nonfree font'",
'named', "die 'skipping, await request for old bst+sty'",
'namunsrt', "die 'skipping, await request for old bst'",
diff --git a/Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc b/Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc
index 8b9083a3253..cbd03f18951 100644
--- a/Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc
@@ -131,7 +131,6 @@ depend mhequ
depend miller
depend mismath
depend multiobjective
-depend mychemistry
depend natded
depend nath
depend nicematrix
diff --git a/Master/tlpkg/tlpsrc/mychemistry.tlpsrc b/Master/tlpkg/tlpsrc/mychemistry.tlpsrc
deleted file mode 100644
index e69de29bb2d..00000000000
--- a/Master/tlpkg/tlpsrc/mychemistry.tlpsrc
+++ /dev/null