In diesem Beitrag stelle ich mein LaTeX-Paket myChemistry vor, das es erlaubt, komplexe Reaktionsschemata mit relativ wenig Aufwand mit ChemFig zu erstellen.
Click here for an english version of this article.23. April 2011 – myChemistry v1.5 ist fertig. myChemistry ist auf CTAN verfügbar.
Im Download-Bereich finden Sie auch immer wieder neuere Versionen von myChemistry, die ich (noch) nicht auf CTAN hochgeladen habe.
Seit August 2010 gibt es ja für Strukturformeln mit LaTeX Christian Tellecheas Paket chemfig. Da ChemFig TikZ verwendet, um die Strukturformeln zu zeichnen, kann man mit TikZ und ChemFig auch komplexe Reaktionsschemata erstellen. Verwendet man das häufig, ist das allerdings umständlich und mit viel Copy&Paste verbunden. So habe ich angefangen, häufig verwendete TikZ-Kommandos mit Makros abzukürzen. Dabei sind so viele entstanden, dass ich daraus ein Paket gebastelt habe, um mir die nicht dauernd in ein neues Dokument kopieren zu müssen. Meiner Bequemlichkeit zuliebe haben die Makros dann noch einige Optionen bekommen, so dass nun ein Paket entstanden ist, das es erlaubt, zusammen mit ChemFig auf relativ einfache Art und Weise komplexere Reaktionsschemata zu erstellen, ohne in die Untiefen von TikZ allzusehr einsteigen zu müssen.
myChemistry
Die Grundidee ist, eine Umgebung für Schemata bereitzustellen, in der mit wenigen Befehlen Reaktanden und Reaktionspfeile relativ zueinander angeordnet werden können.
\begin{rxn}
\reactant{ \chemfig{-[::30]-[::-60]OH} }
\arrow{ Ox .}{}
\reactant{ \chemfig{-[::30]=_[::-60]O} }
\end{rxn}
Mit den Befehlen \reactant{} und \arrow{}{} werden die Reaktanden in der rxn-Umgebung angeordnet. In der Voreinstellung ist das von links nach rechts. Mit verschiedenen Optionen lassen sich Reaktanden und Pfeile nun nicht nur waagerecht sondern in jedem beliebigen Winkel ausrichten.
\begin{rxn}
\reactant{ \chemfig{-[::30]=_[::-60]O} }
\arrow[-90]{}{ Ox .}
\reactant[-90]{ \chemfig{-[::30](-[::60]OH ) =_[::-60]O} }
\end{rxn}
Mehrere Richtungen und mehrere Pfeiltypen sind wählbar:
Vor allem durch das Erstellen von Branches mit \branch{} wird größere Flexibilität möglich. Damit sind verzweigte Reaktionen möglich.
\begin{rxn}
\reactant{ \chemfig{-[::30]-[::-60]OH} }
\arrow{}{}
\reactant[,carbonyl]{ \chemfig{-[::30]=_[::-60]O} }
\branch[carbonyl.-90]{
\arrow[-90,<=>]{\ce{NH2R}}{}
\reactant[-90]{ \chemfig{-[::30]=_[::-60]N(-[6]H)-[::60]R} }
}
\arrow{}{}
\reactant{ \chemfig{-[::30](-[::60]OH)=_[::-60]O} }
\end{rxn}
Ich möchte dieses Mal bei der Beschreibung des Pakets oberflächlicher als sonst bleiben. Daher zum Schluss noch zwei Beispiele, wie man myChemistry einsetzen könnte.
\begin{rxn}
\setatomsep{1.5em}
\reactant[,start_aa]{ \chemname{\chemfig{**6(---(-NH_2)---)}}{Anilin} }
\reactant[below,start_ab,yshift=-3em]{ \chemname{\ce{HNO2}}{salpetrige S"aure} }
\branch[right=of start_aa,ziel_a,xshift=6em,yshift=-5em]{
\reactant{ \chemname{\chemfig{**6(---(-N|_2\op)---)}}{Diazoniumion} }
}% = start_ba
\branch[below=of ziel_a,start_bb,yshift=-3em]{
\reactant{ \chemname{\chemfig{**6(---(-NH_2)---)}}{Anilin} }
}
\branch[right=of ziel_a,ziel_b,xshift=6em,yshift=-5em]{
\reactant{ \chemname{\chemfig{N(-[:-150]**6(------))=N-[:-30]**6(---(-NH_2)---)}}{p-Aminodiazobenzol} }
}
\merge[,right]{ziel_a}{start_aa}{start_ab}
\merge[,right]{ziel_b}{ziel_a}{start_bb}
\end{rxn}
\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]{\ce{NaOEt}, \ce{EtOH}}{}
\reactant{\chemfig{[:30]-(=[2]O)-[:-30]-(=[2]O)-[:-30]O--[:-30]}}
}
% Mechanismus:
\branch[-90,,xshift=-13.5em]{
\arrow[-90,<<=>]{\ce{{}\om OEt}}{}
}
\mesomeric[-90,two,xshift=4.5em]{
\reactant{\chemfig{[:30](-[:150,.3,,,draw=none]@{C1}\scriptstyle\ominus)-(=[2]O)-[:-30]O--[:-30]}}
\marrow
\reactant{\chemfig{[:30]=(-[2]O|\om)-[:-30]O--[:-30]}}
}
\chemand
\reactant{\ce{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|\om)(-[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{\om @{O4}OEt}}
\arrow[four.-90]{}{}
\mesomeric[-90]{
\reactant{\chemfig{[:30]-(=[2]O)-[:-30]=(-[2]O|\om)-[:-30]O--[:-30]}}
\marrow
\reactant{\chemfig{[:30]-(=[2]O)-[:-30](-[6,.3,,,draw=none]\scriptstyle\ominus)-(=[2]O)-[:-30]O--[:-30]}}
\marrow
\reactant{\chemfig{[:30]-(-[2]O|\om)=[:-30]-(=[2]O)-[:-30]O--[:-30]}}
}
\arrow[-90]{\Hpl, \ce{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}
Wer mag, kann sich das Paket hier herunterladen:







For a long time I wanted to write equivalent commands to incorporate the package chemfig. I have been to lazzy to begin such a work! I am very glad that you did today and I really hope you plan to upload this package in the CTAN servers to facilitate the use of complex reaction involving chemfig.
Best regards
Christian Tellechea
Dear Christian,
I haven’t written an English manual yet. As soon as I have done that, I plan to upload myChemistry to CTAN. There are also some minor bugs I have to sort out, but that might be work for a new version.
Thanks for your comment :-)
Clemens
Sieht wirklich gut aus,
leider sind die Downloadlinks alle nicht mehr funktionsfähig, wäre super wenn die wieder hergestellt werden würden. Auf jeden Fall ist diese Seite in meinen Favoriten gelandet.
Hallo Chris,
Das Paket ist auf CTAN erhältlich und ist Teil von TeX Live und MiKTeX, d.h. muss bei aktuellen Versionen dieser Distributionen nicht extra installiert werden. Inzwischen hat sich übrigens mit chemfig eine Menge getan: es kann solche Schemata jetzt selbst (siehe z.B. hier).
Ich habe übrigens eine umfangreiche Liste von Chemie-Paketen zusammengestellt, alle mit ihren CTAN-Links.
Viele Grüße