summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/mychemistry/mychemistry.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/mychemistry/mychemistry.sty')
-rw-r--r--Master/texmf-dist/tex/latex/mychemistry/mychemistry.sty1557
1 files changed, 0 insertions, 1557 deletions
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