Niederbergers einzelMEINUNG

Die Garde ergibt sich, aber sie stirbt nicht!

LaTeX: myChemistry

| 4 Kommentare

LaTeX & Chemie – der Überblick als pdf und Quelldatei: LaTeX & Chemie - Überblick (v2011/03/12, 414.78 kB, 750 mal heruntergeladen)

 

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.

% Beispiel 1
\begin{rxn}
\reactant{ \chemfig{-[::30]-[::-60]OH} }
\arrow{ Ox .}{}
\reactant{ \chemfig{-[::30]=_[::-60]O} }
\end{rxn
}

Grundidee

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.

% Beispiel 2
\begin{rxn}
\reactant{ \chemfig{-[::30]=_[::-60]O} }
\arrow[-90]{}{ Ox .}
\reactant[-90]{ \chemfig{-[::30](-[::60]OH ) =_[::-60]O} }
\end{rxn
}

Senkrecht

Mehrere Richtungen und mehrere Pfeiltypen sind wählbar:

Richtungen: Keywords oder Winkel möglich

Pfeiltypen

Vor allem durch das Erstellen von Branches mit \branch{} wird größere Flexibilität möglich. Damit sind verzweigte Reaktionen möglich.

% Beispiel 3
\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
}

Verzweigung

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.

% Beispiel 4
\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
}

Merging arrows

% Beispiel 5
\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
}

Claisen-Kondensation

Wer mag, kann sich das Paket hier herunterladen:

  • {title} ({version,"v",""}, {size}, {hits} mal heruntergeladen)
  • {title} ({version,"v",""}, {size}, {hits} mal heruntergeladen)
  • {title} ({version,"v",""}, {size}, {hits} mal heruntergeladen)
  • {title} ({version,"v",""}, {size}, {hits} mal heruntergeladen)