From 267a9b3c9510955de4cafd61675964c21b89c493 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 17 Apr 2011 00:44:16 +0000 Subject: mychemistry 1.4 (16apr11) git-svn-id: svn://tug.org/texlive/trunk@22097 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/mychemistry/README | 12 +- .../doc/latex/mychemistry/mychemistry_de.pdf | Bin 909168 -> 985138 bytes .../doc/latex/mychemistry/mychemistry_de.tex | 1998 ++++++++++--------- .../doc/latex/mychemistry/mychemistry_en.pdf | Bin 887184 -> 962500 bytes .../doc/latex/mychemistry/mychemistry_en.tex | 2012 +++++++++++--------- 5 files changed, 2272 insertions(+), 1750 deletions(-) (limited to 'Master/texmf-dist/doc/latex/mychemistry') diff --git a/Master/texmf-dist/doc/latex/mychemistry/README b/Master/texmf-dist/doc/latex/mychemistry/README index f94cf1e73a6..16d1d9effe0 100644 --- a/Master/texmf-dist/doc/latex/mychemistry/README +++ b/Master/texmf-dist/doc/latex/mychemistry/README @@ -1,7 +1,7 @@ -------------------------------------------------------------------------- -the myChemistry package v1.3 +the myChemistry package v1.4 Creating reaction schemes with LaTeX and ChemFig -2011/04/04 +2011/04/15 -------------------------------------------------------------------------- Clemens Niederberger Web: http://www.niederberger-berlin.net/2011/02/latex-mychemistry/ @@ -35,12 +35,12 @@ The command \arrow[both]{}{} needs at least pgf version from 09/08/2010. It will work with older versions, if you don't use the arrow option `both'. The file bondwidth.tex provides the command \setbondwidth{} -for ChemFig and is inluded with \input{bondwidth} after +for ChemFig and is included with \input{bondwidth} after \usepackage{chemfig} or \usepackage{mychemistry}. If you used earlier versions of myChemistry before, please be aware -that that the usage of some commands, e.g. \reactand, has changed. -Your documents might not compile properly anymore unless the code -is adjusted. +that that the usage of some commands, e.g. \reactant, rxn, \arrow ... +has changed. Your documents will probably not compile properly anymore +unless the code is adjusted. -------------------------------------------------------------------------- If you have any ideas, questions, suggestions or bugs to report, please feel free to contact me. diff --git a/Master/texmf-dist/doc/latex/mychemistry/mychemistry_de.pdf b/Master/texmf-dist/doc/latex/mychemistry/mychemistry_de.pdf index d17960b50fc..2f4df923e5f 100644 Binary files a/Master/texmf-dist/doc/latex/mychemistry/mychemistry_de.pdf and b/Master/texmf-dist/doc/latex/mychemistry/mychemistry_de.pdf differ diff --git a/Master/texmf-dist/doc/latex/mychemistry/mychemistry_de.tex b/Master/texmf-dist/doc/latex/mychemistry/mychemistry_de.tex index 9cc45d178b7..74c130f8581 100644 --- a/Master/texmf-dist/doc/latex/mychemistry/mychemistry_de.tex +++ b/Master/texmf-dist/doc/latex/mychemistry/mychemistry_de.tex @@ -4,7 +4,7 @@ % - Creating reaction schemes with LaTeX and ChemFig ---------------------------------- % % ------------------------------------------------------------------------------------- % % - Clemens Niederberger -------------------------------------------------------------- % -% - 2011/04/04 ------------------------------------------------------------------------ % +% - 2011/04/15 ------------------------------------------------------------------------ % % ------------------------------------------------------------------------------------- % % - http://www.niederberger-berlin.net/2011/02/latex-mychemistry/ --------------------- % % - kontakt@niederberger-berlin.net --------------------------------------------------- % @@ -30,17 +30,18 @@ % - mychemistry_en.tex and bondwidth.tex - % % ------------------------------------------------------------------------------------- % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\documentclass[DIV10,titlepage]{scrartcl} +\documentclass[DIV10,titlepage,toc=index]{scrartcl} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % - Pakete ---------------------------------------------------------------------------- % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \usepackage{etoolbox} \usepackage{scrhack} % verbessert KOMAs Zusammenspiel mit floats -\usepackage[ngerman]{babel} % Sprache \usepackage{emerald} % chemfig-Schrift \usepackage[utf8x]{inputenc} % Zeichenkodierung: Eingabe \usepackage[T1]{fontenc} % Text-Ausgabe-Codierung \usepackage{textcomp,mathcomp} +\usepackage[makeindex]{splitidx} % Index; Kompilieren: makeindex -sl index.ist *.idx +\usepackage[ngerman]{babel} % Sprache \usepackage{xspace,paralist} % xspace und Listen \usepackage{siunitx} \DeclareSIUnit{\emlength}{em} @@ -61,7 +62,7 @@ \usepackage{titletoc} \titlecontents{section} [6.5pc] % SECTION-ANZEIGE {\renewcommand\familydefault{ppl}\addvspace{2pc}\bfseries - \color{MyDarkRed}\titlerule[2pt]\filright\normalcolor\nobreak} % davor + \color{MyDarkRed}\titlerule[2pt]\filright\normalcolor\nobreak} % davor {\contentslabel [\textsc{Abschnitt}\ \thecontentslabel]{6.5pc}} % nummerierter Eintrag @@ -95,9 +96,10 @@ pdfkeywords={myChemistry}, pdfcreator={LaTeX} } -\usepackage[color=dunkelrot]{mychemistry} % myChemistry - \def\thebeispiel{\arabic{beispiel}} % chemexec angepasst +\usepackage[color=MyDarkRed]{mychemistry} % myChemistry + \def\thebeispiel{\arabic{beispiel}} % chemexec angepasst \labelformat{beispiel}{Bei\-spiel #1} + \labelformat{rxnfloat}{Sche\-ma #1} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % - Listings anpassen ----------------------------------------------------------------- % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -105,7 +107,7 @@ \lstset{literate={ä}{{\"a}}1 {ö}{{\"o}}1 {ü}{{\"u}}1 {Ä}{{\"A}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1 {ß}{{\ss}}1} \lstset{ language=[LaTeX]TeX, - basicstyle={\ttfamily}, % Grundstil + basicstyle={\ttfamily}, % Grundstil extendedchars=true, numbers=left, % Zeilennummern numberstyle=\tiny, % Größe des Zeilennummern @@ -121,7 +123,7 @@ keywordstyle=[20]\color{blue}, morekeywords=[20]{rxn,rxnfloat,rxnscheme,tikzpicture}, texcsstyle=[30]\color{code}, - moretexcs=[30]{arrow,branch,chemand,chemfig,chemmove,chemname,chemrel,chemsign,ce,compound,declarecompound,draw,dummy,elmove,floatplacement,floatstyle,Hpl,Hyd,lewis,listof,makeinvisible,makevisible,marrow,mCsetup,merge,mesomeric,node,nu,om,op,ox,reactand,restylefloat,setarrowlength,setatomsep,setatomsize,setbondlength,setbondshape,setcrambond,setrcndist,setrxnalign,setschemealign,setschemename,transition}, + moretexcs=[30]{anywhere,arrow,branch,chemabove,chemand,chembelow,chemfig,chemmove,chemname,chemrel,chemsign,ce,color,compound,declarecompound,draw,dummy,elmove,floatplacement,floatstyle,Hpl,Hyd,lewis,listof,makeinvisible,makevisible,marrow,mCsetup,merge,mesomeric,node,nu,om,op,ox,pgfpositionnodelater,reactant,restylefloat,setarrowlength,setarrowline,setatomsep,setatomsize,setbondlength,setbondshape,setbondwidth,setcrambond,setmergelength,setrcndist,setrxnalign,setschemealign,setschemename,si,SI,textcolor,transition}, fancyvrb=true } @@ -132,7 +134,7 @@ \pagestyle{scrheadings} \setheadwidth{textwithmarginpar} \automark{section} -\ihead{\mC \mCversion} +\ihead{\mC v\mCversion} \ifoot{\small\color{gray}-~Seite~\thepage~-} \cfoot{} \ofoot{} @@ -240,8 +242,7 @@ \newcommand{\CF}{{\ECFAugie ChemFig}\xspace} % ChemFig in der originalen Schrift \newcommand{\zB}{\mbox{z.\,B.}\xspace} \newcommand{\TikZ}{\mbox{Ti{\bfseries\itshape k}Z}\xspace} -\newcommand\Vii[1][0pt]{\leavevmode\llap{\footnotesize\ECFTeenSpirit seit v1.2\kern\dimexpr20pt+#1\relax}} -\newcommand\NEU[1][0pt]{\leavevmode\llap{\footnotesize\ECFTeenSpirit\color{red}Neu in \mCversion\kern\dimexpr20pt+#1\relax}} +\newcommand\NEU[1][0pt]{\leavevmode\llap{\footnotesize\ECFTeenSpirit\color{red}Neu\kern\dimexpr20pt+#1\relax}} \newlength{\tmplength} % - für Beispiele --------------------------------------------------------------------- % \newcommand{\oben}{\tikz\node[draw,minimum width=3em,minimum height=1.5em,blue]{\footnotesize oben};} @@ -252,38 +253,38 @@ \begin{titlepage} % inspired by the titlepage of chemfig's documentation \begin{tikzpicture}[remember picture,overlay] - \shade[color=dunkelrot,right color=white](current page.south west) rectangle ([yshift=3cm,xshift=-3cm]current page.center); - \shade[top color=black,bottom color=dunkelrot]([yshift=7cm]current page.east)rectangle([yshift=2.5cm]current page.west); + \shade[color=MyDarkRed,right color=white](current page.south west) rectangle ([yshift=3cm,xshift=-3cm]current page.center); + \shade[top color=black,bottom color=MyDarkRed]([yshift=7cm]current page.east)rectangle([yshift=2.5cm]current page.west); \node[text width=\textwidth,opacity=.15,yshift=-5.3cm] at (current page.center) {% \begin{verbatim} - \begin{rxn}[scale=.7] + \begin{rxn}[,.7] \setatomsep{1.5em}\footnotesize - \reactand[,a]{ + \reactant[,a]{ \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[6,,,2]HO)-C(-[2]CH_3) (-[6]OH)-CH_3} } - \branch[below right=of a]{ - \arrow[direction=above right,length=.7]{}{} - \reactand[above right]{ + \branch[above right=of a]{ + \arrow[above right,,.7]{}{} + \reactant[above right]{ \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[@{e1}6,,,2]H_2@{e2} \chembelow{O}{\oplus})-C(-[2]CH_3)(-[6]OH)-CH_3}\elmove{e1} {10:4mm}{e2}{-10:4mm} } \arrow{$-\ce{H2O}$}{} - \reactand{ + \reactant{ \chemfig{\chembelow{C}{\oplus}(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))-C (-[2]CH_3)(-[6]OH)-CH_3} } } \branch[below right=of a]{ - \arrow[type={-|>},direction=below right,length=.7]{}{} - \reactand[below right]{ + \arrow[below right,-|>.7]{}{} + \reactant[below right]{ \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[6,,,2]HO)-C(-[2]CH_3) (-[@{e3}6]@{e4}\chembelow{O}{\oplus}H_2)-CH_3}\elmove{e3} {170:4mm}{e4}{-170:4mm} } \arrow{$-\ce{H2O}$}{} - \reactand{ + \reactant{ \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[6,,,2]HO)- \chembelow{C}{\oplus}(-[2]CH_3)-CH_3} } @@ -294,26 +295,26 @@ \end{tikzpicture} \begin{center} \scalebox{4}{\mC}\par - \Large\mCversion\par\bigskip + \Large v\mCversion\par\bigskip \footnotesize\mCdate{de}\par \normalsize Clemens Niederberger\par\vskip1.5cm \color{white}\huge Reaktionsschemata mit \LaTeX\ und \CF erstellen% \end{center} - \vskip4cm - \begin{rxn}[scale=.7] + \vskip3cm + \begin{rxn}[,.7] \setatomsep{1.5em}\footnotesize - \reactand[,a]{ \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[6,,,2]HO)-C(-[2]CH_3)(-[6]OH)-CH_3} } + \reactant[,a]{ \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[6,,,2]HO)-C(-[2]CH_3)(-[6]OH)-CH_3} } \branch[above right=of a]{ - \arrow[direction=above right,length=.7]{}{} - \reactand[above right]{ \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[@{e1}6,,,2]H_2@{e2}\chembelow{O}{\oplus})-C(-[2]CH_3)(-[6]OH)-CH_3}\elmove{e1}{10:4mm}{e2}{-10:4mm} } + \arrow[above right,,.7]{}{} + \reactant[above right]{ \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[@{e1}6,,,2]H_2@{e2}\chembelow{O}{\oplus})-C(-[2]CH_3)(-[6]OH)-CH_3}\elmove{e1}{10:4mm}{e2}{-10:4mm} } \arrow{$-\ce{H2O}$}{} - \reactand{ \chemfig{\chembelow{C}{\oplus}(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))-C(-[2]CH_3)(-[6]OH)-CH_3} } + \reactant{ \chemfig{\chembelow{C}{\oplus}(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))-C(-[2]CH_3)(-[6]OH)-CH_3} } } \branch[below right=of a]{ - \arrow[type={-|>},direction=below right,length=.7]{}{} - \reactand[below right]{ \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[6,,,2]HO)-C(-[2]CH_3)(-[@{e3}6]@{e4}\chembelow{O}{\oplus}H_2)-CH_3}\elmove{e3}{170:4mm}{e4}{-170:4mm} } + \arrow[below right,-|>,.7]{}{} + \reactant[below right]{ \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[6,,,2]HO)-C(-[2]CH_3)(-[@{e3}6]@{e4}\chembelow{O}{\oplus}H_2)-CH_3}\elmove{e3}{170:4mm}{e4}{-170:4mm} } \arrow{$-\ce{H2O}$}{} - \reactand{ \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[6,,,2]HO)-\chembelow{C}{\oplus}(-[2]CH_3)-CH_3} } + \reactant{ \chemfig{C(-[4]*6(=-=-=-))(-[2]*6(=-=-=-))(-[6,,,2]HO)-\chembelow{C}{\oplus}(-[2]CH_3)-CH_3} } } \end{rxn} \end{titlepage} @@ -322,81 +323,93 @@ \section{Über} \subsection{Änderungen} -Neue Befehle oder Veränderungen wurden mit {\ECFTeenSpirit seit v} gefolgt von der Versionsnummer markiert, \zB {\ECFTeenSpirit seit v1.2}. Die neuesten Änderungen sind mit {\ECFTeenSpirit\color{red}Neu in \mCversion} gekennzeichnet. +Die neuesten Änderungen sind mit {\ECFTeenSpirit\color{red}Neu} gekennzeichnet. \subsubsection{Version 1.2} -\Vii% -Neben einigen Bugfixes gibt es in Version \mCversion\ ein paar Neuerungen. Insbesondere wurde das fehlerhafte Verhalten bei der Ausrichtung von Branches sowie das seltsame Verhalten von Pfeilbeschriftungen, wenn man die Pfeillänge änderte, korrigiert. \textbf{Diese Veränderung hat zur Folge, das \mC nun \TikZ oder vielmehr pgf in der Version 2.10 benötigt} (siehe \ref{ssec:voraussetzungen}). +Neben einigen Bugfixes gibt es in Version v1.2 ein paar Neuerungen. Insbesondere wurde das fehlerhafte Verhalten bei der Ausrichtung von Branches sowie das seltsame Verhalten von Pfeilbeschriftungen, wenn man die Pfeillänge änderte, korrigiert. \textbf{Diese Veränderung hat zur Folge, das \mC nun \TikZ oder vielmehr pgf in der Version 2.10 benötigt} (siehe \ref{ssec:voraussetzungen}). Während sich diese Neuerungen im Hintergrund abspielen, gibt es auch ein paar Neuerungen für die Bedienung. Zum Beispiel gibt es nun einige Paketoptionen, um die automatisch eingebundenen Pakete besser zu handhaben (\ref{ssec:paketoptionen}). Außerdem haben die Pfeile zwei neue Keys bekommen (siehe \ref{ssec:arrow}). -Auch die Umgebungen haben nun ein paar Möglichkeiten mehr, den persönlichen Vortellungen angepasst zu werden (siehe \ref{sssec:rxn_optionen}, \ref{sssec:rxnscheme_optionen} und \ref{ssec:setrcndist}). +Auch die Umgebungen haben nun ein paar Möglichkeiten mehr, den persönlichen Vorstellungen angepasst zu werden (siehe \ref{sssec:rxn_optionen}, \ref{sssec:rxnscheme_optionen} und \ref{ssec:setrcndist}). Nicht zuletzt steht \mC ab v1.2 nun unter der LPPL Version 1.3 oder später. \subsubsection{Version 1.3} -\NEU% -Die Befehle \lstinline+\branch+, \lstinline+\mesomeric+, \lstinline+\reactand+ und \lstinline+\transition+ können als optionales Argument neben der Ausrichtung auch \TikZ-Keys erhalten. Das zweite Argument ist nun ebenfalls als Option einzusetzen. Damit ist das erste optionale Argument immer noch die Ausrichtung, das zweite der Anker und in das dritte können beliebige \TikZ-Keys eingesetzt werden. -\begin{Verbatim} +Die Befehle \lstinline+\branch+, \lstinline+\mesomeric+, \lstinline+\reactant+ und \lstinline+\transition+ können als optionales Argument neben der Ausrichtung auch \TikZ-Keys erhalten. Das zweite Argument ist nun ebenfalls als Option einzusetzen. Damit ist das erste optionale Argument immer noch die Ausrichtung, das zweite der Anker und in das dritte können beliebige \TikZ-Keys eingesetzt werden. +\begin{lstlisting} \befehl[,,]{} -\end{Verbatim} -Bis Version 1.2 musste die Ausrichtung explizit angegeben werden, auch wenn die Default\-einstellung verwendet werden sollte, falls man \TikZ-Keys verwenden wollte. Das ist seit \mCversion\ nicht mehr nötig. -\begin{Verbatim} +\end{lstlisting} +Bis Version 1.2 musste die Ausrichtung explizit angegeben werden, auch wenn die Default-Einstellung verwendet werden sollte, falls man \TikZ-Keys verwenden wollte. Das ist seit v1.3 nicht mehr nötig. +\begin{lstlisting} % bisher: - \reactand{\ce{Br2}}{}\arrow{$h\nu$}{}\reactand!![right,draw,inner sep=5pt]!!{\ce{2 \lewis{0.,Br}}}{} + \reactant{\ce{Br2}}{}\arrow{$h\nu$}{}\reactant!![right,draw,inner sep=5pt]!!{\ce{2 \lewis{0.,Br}}}{} % jetzt: - \reactand{\ce{Br2}}\arrow{$h\nu$}{}\reactand!![,,draw,inner sep=5pt]!!{\ce{2 \lewis{0.,Br}}} -\end{Verbatim} + \reactant{\ce{Br2}}\arrow{$h\nu$}{}\reactant!![,,draw,inner sep=5pt]!!{\ce{2 \lewis{0.,Br}}} +\end{lstlisting} Die Voreinstellungsbefehle wurden umbenannt und der Befehl \lstinline+\mCsetup+ hinzugefügt, mit dem die Voreinstellungen mit einer Schnittstelle gehandhabt werden können. Siehe \ref{ssec:setarrowlength}, \ref{ssec:setatomsize}, \ref{ssec:setbondlength}, \ref{ssec:setbondshape} und \ref{ssec:mCsetup}. -Es gibt den neuen Befehl \lstinline+chemand+, der ein $+$ erzeugt, siehe \ref{ssec:chemand}. +Es gibt den neuen Befehl \lstinline+\chemand+, der ein $+$ erzeugt, siehe \ref{ssec:chemand}. + +Wenn man \CF v0.4 oder v0.4a verwendet, wird die Datei \lstinline+bondwidth.tex+ eingebunden, die den Befehl \lstinline+\setbondwidth{}+ bereitstellt. Damit kann die Liniendicke der Bindungen von \CF-Formeln verändert werden. + +Und auch das ist vielleicht ganz angenehm: alle \mC-Befehle in den Listings der Dokumentation sind nun anklickbare Hyperlinks, die auf ihre Beschreibung in der Befehlsreferenz verweisen. -Wenn man \CF v0.4 verwendet, bindet \mC die Datei \lstinline+bondwidth.tex+ ein, die den Befehl \lstinline+\setbondwidth{}+ bereitstellt. Damit kann die Liniendicke der Bindungen von \CF-Formeln verändert werden. +\subsubsection{Version \mCversion} +\NEU% +Der Befehl \lstinline+\merge+ wurde neu geschrieben, so dass der Pfeil auch beschriftet werden kann. + +Der eigentliche Zweck des Befehls \lstinline+\dummy+ ist obsolet geworden. Der Befehl existiert aber weiterhin. + +Bei den beiden Umgebungen \lstinline+rxn+ und \lstinline+rxnscheme+ hat sich die Verwendung der Optionen geändert, siehe \ref{sssec:rxn_optionen} und \ref{sssec:rxnscheme_optionen}. -Und auch das ist vielleicht ganz angenehm: alle \mC-Befehle in den Listings sind nun anklickbare Hyperlinks, die auf ihre Beschreibung in der Befehlsreferenz verweisen. +Die Keys von \lstinline+\arrow+ sind in Optionen verändert worden, um die Syntax des Befehls mit den anderen anzugleichen. Zudem gibt es einen neuen Pfeiltypen, siehe \ref{ssec:arrow}. Neu ist außerdem das Aussehen der Pfeile und eine Möglichkeit, die Liniendicke der Pfeile anzupassen, siehe \ref{ssec:setarrowline}. + +Es gibt einen weiteren neuen Befehl: \lstinline+\anywhere+ (\ref{ssec:anywhere}), mit dem Text oder Formeln außerhalb der Chain gesetzt werden können. \subsection{Lizenz} -\mC \mCversion\ steht unter der LaTeX Project Public License Version 1.3 oder später.\newline(\url{http://www.latex-project.org/lppl.txt}) +\mC v\mCversion\ steht unter der \LaTeX\ Project Public License Version 1.3 oder später.\newline(\url{http://www.latex-project.org/lppl.txt}) -\subsection{Voraussetzungen}\label{ssec:voraussetzungen} +\subsection{Voraussetzungen}\label{ssec:voraussetzungen}\index{Voraussetzungen|(} Damit \mC funktionieren kann, müssen ein paar Pakete installiert sein: \begin{description} - \item[\CF] ohne das ergibt die ganze Sache gar keinen Sinn; - \item[ifthen] für interne Abfragen; - \item[calc] für interne Berechnungen; - \item[xkeyval] Paketoptionen und Befehl-Keys werden damit erstellt; - \item[float] damit wird die \lstinline=rxnscheme=-Umgebung definiert; - \item[pgf/\TikZ] pgf ist nicht nur ein Paket sondern eine ganze Reihe von Paketen. Sie stellen die gesamte Basis für \TikZ da. Damit \mC funktionieren kann, muss mindestens die Version vom 08.09.2010\footnote{\url{http://sourceforge.net/projects/pgf/files/}} installiert sein.\\ + \item[\CF]\index{Voraussetzungen!ChemFig@\CF} ohne das ergibt die ganze Sache gar keinen Sinn; + \item[ifthen]\index{Voraussetzungen!ifthen} für interne Abfragen; + \item[calc]\index{Voraussetzungen!calc} für interne Berechnungen; + \item[xkeyval]\index{Voraussetzungen!xkeyval} Paketoptionen und Befehl-Keys werden damit erstellt; + \item[float]\index{Voraussetzungen!float} damit wird die \lstinline=rxnscheme=-Umgebung definiert; + \item[pgf/\TikZ]\index{Voraussetzungen!pgf}\index{Voraussetzungen!TikZ@\TikZ} pgf ist nicht nur ein Paket sondern eine ganze Reihe von Paketen. Sie stellen die gesamte Basis für \TikZ da. Damit \mC funktionieren kann, muss mindestens die Version vom 08.09.2010\footnote{\url{http://sourceforge.net/projects/pgf/files/}} installiert sein.\\ Genauer: der Befehl \lstinline=\pgfpositionnodelater= muss verfügbar sein. Noch genauer benötigt der Key \lstinline+both+ des Befehls \lstinline+\arrow+ diese Version. Wenn Sie den Key nicht verwenden, sollte \mC auch mit pgf v2.00 problemlos funktionieren. Ältere Versionen wurden nicht getestet. \end{description} +\index{Voraussetzungen|)} \subsection{Die Idee} Seit August 2010 steht mit \CF eine wirklich flexible Lösung für organische Strukturformeln zur Verfügung. So kann man nun durch das Einbinden von \CF und `mhchem' mehr oder weniger alle Struktur- und Summenformeln, die man als Chemiker so benötigt, mit \LaTeX\ setzen. Was \CF gegenüber `ochem' noch benachteiligt, ist das Erstellen richtiger Reaktionsmechanismen. Hier soll \mC Abhilfe schaffen. \mC bindet die Pakete \begin{itemize} - \item \CF\footnote{von Christian Tellechea, \url{http://www.ctan.org/tex-archive/macros/generic/chemfig/}}, - \item wenn vorhanden `mhchem'\footnote{von Martin Hensel, \url{http://www.ctan.org/tex-archive/macros/latex/contrib/mhchem/}} in der Version 3, - \item wenn vorhanden `chemexec'\footnote{von mir, \url{http://www.ctan.org/tex-archive/macros/latex/contrib/chemexec/}} und - \item wenn vorhanden `chemcompounds'\footnote{von Stephan Schenk, \url{http://www.ctan.org/tex-archive/macros/latex/contrib/chemcompounds/}} ein. + \item \CF\footnote{von Christian Tellechea, \url{http://www.ctan.org/tex-archive/macros/generic/chemfig/}}\index{ChemFig@\CF}, + \item wenn vorhanden `mhchem'\footnote{von Martin Hensel, \url{http://www.ctan.org/tex-archive/macros/latex/contrib/mhchem/}}\index{mhchem} in der Version 3, + \item wenn vorhanden `chemexec'\footnote{von mir, \url{http://www.ctan.org/tex-archive/macros/latex/contrib/chemexec/}}\index{chemexec} und + \item wenn vorhanden `chemcompounds'\footnote{von Stephan Schenk, \url{http://www.ctan.org/tex-archive/macros/latex/contrib/chemcompounds/}}\index{chemcompounds} ein. \end{itemize} Zur Funktion der Befehle der oben genannten Pakete siehe deren Dokumentation. Wenn Sie die Pakete separat laden wollen, weil Sie ihnen Optionen mitgeben wollen, dann sollten Sie das machen, \emph{bevor} Sie \mC laden, um Konflikte zu vermeiden. \mC prüft intern einerseits darauf, ob die Pakete installiert sind und falls ja, ob sie bereits geladen sind. Wenn nicht, werden sie von \mC aufgerufen. Befehle, die durch die eingebundenen Pakete zur Verfügung stehen, sind unter anderem \begin{itemize} - \item \lstinline=\ce{}= (mhchem) - \item \lstinline=\ox{}{}=, \lstinline=\om[]=, \lstinline=\op[]=, \lstinline=\Hyd=, \lstinline=\Hpl= (chemexec) - \item \lstinline=\chemfig[][]{}=, \lstinline=\chemrel[]{}=, \lstinline=\chemsign[]{}=, \lstinline=\lewis{}= (\CF) - \item \lstinline=\declarecompound[]{}=, \lstinline=\compound{}= (chemcompounds). + \item \lstinline=\ce{}= (mhchem)\index{mhchem} + \item \lstinline=\ox{}{}=, \lstinline=\om[]=, \lstinline=\op[]=, \lstinline=\Hyd=, \lstinline=\Hpl= (chemexec)\index{chemexec} + \item \lstinline=\chemfig[][]{}=, \lstinline=\chemrel[]{}=, \lstinline=\chemsign[]{}=, \lstinline=\lewis{}= (\CF)\index{ChemFig@\CF} + \item \lstinline=\declarecompound[]{}=, \lstinline=\compound{}= (chemcompounds).\index{chemcompounds} \end{itemize} -In den Beispielen in diesem Manual wurden Befehle dieser Pakete verwendet \emph{ohne sie speziell als solche zu kennzeichnen}.\\ +In den Beispielen in diesem Manual wurden Befehle dieser Pakete verwendet \emph{ohne sie speziell als solche zu kennzeichnen}. + Vor allem stellt \mC Befehle zum Erstellen von Reaktionsschemata zur Verfügung. \section{Verwendung} \subsection{Hintergrund} -\mC stellt zwei Umgebungen zur Verfügung, innerhalb derer die Reaktionsmechanismen erstellt werden. Beide Umgebungen sind letztlich eine `tikzpicture'-Umgebung. Die Frage, die sich aufdrängt, ist natürlich: wozu? \CF bringt doch schon einiges an Möglichkeiten mit. Und mit \TikZ hat man wirklich alle Möglichkeiten offen. Zugegeben. Allerdings bin ich faul, also habe einige häufig verwendete \TikZ-Befehle zu Makros zusammengefasst. Die sind immer mehr geworden und haben immer mehr Feinheiten erhalten, so dass dieses Paket dabei herausgekommen ist. Selbstverständlich bleibt man mit \TikZ flexibler, aber die Möglichkeit bleibt einem ja immer offen. +\mC stellt zwei Umgebungen zur Verfügung, innerhalb derer die Reaktionsmechanismen erstellt werden. Beide Umgebungen sind letztlich eine \lstinline+tikzpicture+-Umgebung. Die Frage, die sich aufdrängt, ist natürlich: wozu? \CF bringt doch schon einiges an Möglichkeiten mit, Reaktionsgleichungen zu erstellen. Und mit \TikZ hat man wirklich alle Möglichkeiten offen. Zugegeben. Allerdings bin ich faul, also habe einige häufig verwendete \TikZ-Befehle zu Makros zusammengefasst. Die sind immer mehr geworden und haben immer mehr Feinheiten erhalten, so dass dieses Paket dabei herausgekommen ist. \subsection{Das Grundprinzip} -In dem `tikzpicture', das in den \mC-Umgebungen erstellt wird, werden Reaktanden und Reaktionspfeile mit einzelnen `nodes'\footnote{In einem tikzpicture kann man nahezu beliebig sogenannte `nodes' setzen, mit allen möglichen Formen und Inhalten. Das sind "`Knotenpunkte"' an bestimmten Koordinaten in einer `tikzpicture'-Umgebung.} auf einer `chain'\footnote{Dafür ist die tikzlibrary `chains' nötig.} angeordnet. +In dem \lstinline+tikzpicture+, das in den \mC-Umgebungen erstellt wird, werden Reaktanden und Reaktionspfeile mit einzelnen `nodes'\footnote{In einem tikzpicture kann man nahezu beliebig sogenannte `nodes' setzen, mit allen möglichen Formen und Inhalten. Das sind "`Knotenpunkte"' an bestimmten Koordinaten in einer `tikzpicture'-Umgebung.} auf einer `chain'\footnote{Dafür ist die tikzlibrary `chains' nötig.} angeordnet. \begin{SideBySideExample} \begin{tikzpicture}[start chain] \node [on chain] {A}; @@ -406,17 +419,17 @@ In dem `tikzpicture', das in den \mC-Umgebungen erstellt wird, werden Reaktanden \end{SideBySideExample} Dadurch ergeben sich einige Möglichkeiten, die `nodes' relativ zueinander zu platzieren. \begin{SideBySideExample} - \begin{tikzpicture}[start chain=going right,node distance=5mm] + \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,continue chain=going below, on chain] {,}; \node [draw,on chain] {this}; \node [draw,on chain] {is}; \end{tikzpicture} \end{SideBySideExample} \mC macht vor allem von der Möglichkeit Gebrauch, `branches' zu erstellen. \begin{SideBySideExample} - \begin{tikzpicture}[start chain=going right,node distance=5mm] + \begin{tikzpicture}[start chain=going right, node distance=5mm] \node [draw,on chain] {A}; \node [draw,on chain] {B}; { [start branch] @@ -439,182 +452,191 @@ In manchen Beispielen der Dokumentation werden die Nodes farbig eingerahmt (sieh Sehen wir uns zunächst ein Beispiel an: \begin{SideBySideExample} \begin{rxn} - \reactand{ \chemfig{-[::30]-[::-60]OH} } + \reactant{ \chemfig{-[::30]-[::-60]OH} } \arrow{Ox.}{} - \reactand{ \chemfig{-[::30]=_[::-60]O} } + \reactant{ \chemfig{-[::30]=_[::-60]O} } \end{rxn} \end{SideBySideExample} -Sie sehen hier die wichtigsten Befehle von \mC im Einsatz: -\begin{description} - \vitem=\begin{rxn}[]= Die erste von zwei Umgebungen. Sie stellt die Reaktionschemata zwischen den Text und zentriert sie (siehe \ref{ssec:rxn}). - \vitem=\reactand[,,]{}= setzt eine \lstinline+node+ auf die\linebreak\lstinline+chain+, in die die chemischen Formeln geschrieben werden. - - Die Standard-Aus\-rich\-tung ist \lstinline=right= (siehe \ref{ssec:reactand}). - \vitem=\arrow[]{}{}= schreibt in der Standardeinstellung einen \SI{5}{\emlength} langen einfachen Pfeil nach rechts (siehe \ref{ssec:arrow}). -\end{description} +Sie sehen hier die wichtigsten Befehle von \mC im Einsatz:\index{rxn} +\begin{lstlisting} + \begin{rxn}[,] +\end{lstlisting} +Die erste von zwei Umgebungen. Sie stellt die Reaktionschemata zwischen den Text und zentriert sie (siehe \ref{ssec:rxn}).\index{reactant} +\begin{lstlisting} +\reactant[,,]{} +\end{lstlisting} +setzt eine \lstinline+node+ auf die\linebreak\lstinline+chain+, in die die chemischen Formeln geschrieben werden. Die Standard-Aus\-rich\-tung ist \lstinline=right= (siehe \ref{ssec:reactant}).\index{arrow} +\begin{lstlisting} + \arrow[,,,,both]{}{} +\end{lstlisting} +schreibt in der Standardeinstellung einen \SI{5}{\emlength} langen einfachen Pfeil nach rechts (siehe \ref{ssec:arrow}). \begin{SideBySideExample} \begin{rxn} - \reactand{ \chemfig{-[::30]=_[::-60]O} } - \arrow[direction=below]{}{Ox.} - \reactand[below]{ \chemfig{-[::30](-[::60]OH)=_[::-60]O} } + \reactant{ \chemfig{-[::30]=_[::-60]O} } + \arrow[below]{}{Ox.} + \reactant[below]{ \chemfig{-[::30](-[::60]OH)=_[::-60]O} } \end{rxn} \end{SideBySideExample} -Wie Sie sehen, lässt sich das Reaktionschema durch optionale Argumente anders ausrichten. Durch die Angabe \lstinline=below= wird die Carbonsäure unter den Pfeil gesetzt und nicht rechts daneben. Durch die Key-Angabe \lstinline+direction=below+ zeigt der Pfeil nach unten anstatt nach rechts. +Wie Sie sehen, lässt sich das Reaktionsschema durch optionale Argumente anders ausrichten. Durch die Angabe \lstinline=below= wird die Carbonsäure unter den Pfeil gesetzt und nicht rechts daneben. Durch die Angabe \lstinline+below+ zeigt der Pfeil nach unten anstatt nach rechts. \subsubsection{Verzweigungen} -Bislang ist noch nicht recht einsichtig, wieso man \mC einsetzen sollte. Die waagerechten Reaktionen sind mit `mhchem' und \CF selbst zu verwirklichen. Und weshalb sollte man eine senkrechte Reaktion benötigen? Was den Einsatz von \mC aber interessant machen könnte, ist die Möglichkeit, verzweigte Reaktionsschemata zu erstellen. +Bislang ist noch nicht recht einsichtig, wieso man \mC einsetzen sollte. Die waagerechten Reaktionen sind mit `mhchem' und \CF selbst zu verwirklichen. Und weshalb sollte man eine senkrechte Reaktion benötigen? Was den Einsatz von \mC aber interessant machen könnte, ist die Möglichkeit, verzweigte Reaktionsschemata zu erstellen.\index{branch} \begin{Example} \begin{rxn} - \reactand{ \chemfig{-[::30]-[::-60]OH} } + \reactant{ \chemfig{-[::30]-[::-60]OH} } \arrow{}{} - \reactand[,carbonyl]{ \chemfig{-[::30]=_[::-60]O} } - \arrow[direction=below]{}{} - \reactand[below]{ \chemfig{-[::30](-[::60]OH)=_[::-60]O} } + \reactant[,carbonyl]{ \chemfig{-[::30]=_[::-60]O} } + \arrow[below]{}{} + \reactant[below]{ \chemfig{-[::30](-[::60]OH)=_[::-60]O} } \branch[right=of carbonyl]{ - \arrow[type={<=>}]{\ce{NH2R}}{} - \reactand{ \chemfig{-[::30]=_[::-60]N(-[6]H)-[::60]R} } + \arrow[,<=>]{\ce{NH2R}}{} + \reactant{ \chemfig{-[::30]=_[::-60]N(-[6]H)-[::60]R} } } \end{rxn} \end{Example} -Im letzten Beispiel haben Sie einen weiteren wichtigen Befehl kennengelernt: -\begin{description} - \vitem=\branch[,,]{}= (siehe \ref{ssec:branch}) -\end{description} +Im letzten Beispiel haben Sie einen weiteren wichtigen Befehl kennengelernt (siehe \ref{ssec:branch}):\index{branch} +\begin{lstlisting} + \vitem=\branch[,,]{} +\end{lstlisting} Der Zweig wurde mit \lstinline+right=of carbonyl+ rechts neben den ersten Reaktanden mit dem Anker \lstinline=carbonyl= angesetzt. Innerhalb des Zweigs wurde beim Pfeil der Key \lstinline+type={<=>}+ verwendet, wodurch der Gleichgewichtspfeil dargestellt wurde. Andere \lstinline=type=-Mög\-lich\-kei\-ten wären \lstinline=->= (Voreinstellung), \lstinline=<-= oder \lstinline=<->=. -Durch mehrfaches Verwenden von \lstinline=\branch= können so umfangreichere Reaktionschemata entstehen: +Durch mehrfaches Verwenden von \lstinline=\branch=\index{branch} können so umfangreichere Reaktionschemata entstehen: \begin{Example} \begin{rxn} - \reactand{ \chemfig{-[::30]-[::-60]OH} } + \reactant{ \chemfig{-[::30]-[::-60]OH} } \arrow{}{} - \reactand[,carbonyl]{ \chemfig{-[::30]=_[::-60]O} } - \arrow[direction=below]{}{} - \reactand[below]{ \chemfig{-[::30](-[::60]OH)=_[::-60]O} } + \reactant[,carbonyl]{ \chemfig{-[::30]=_[::-60]O} } + \arrow[below]{}{} + \reactant[below]{ \chemfig{-[::30](-[::60]OH)=_[::-60]O} } \branch[right=of carbonyl,imin]{ - \arrow[type={<=>},length=1.12]{\ce{NH2R}}{} - \reactand{ \chemfig{-[::30]=_[::-60]N(-[6]H)-[::60]R} } + \arrow[,<=>,1.12]{\ce{NH2R}}{} + \reactant{ \chemfig{-[::30]=_[::-60]N(-[6]H)-[::60]R} } } \branch[below right=of carbonyl,halbacetal,yshift=-2pt,xshift=3pt]{ - \arrow[type={<=>},direction=below right,length=1.12,aboveshift=3pt]{ \chemfig{[,.75]-[::30]-[::-60]OH} }{} - \reactand[below right]{ \chemfig{-[::30](-[::60]O-[::-60]-[::-60])-[::-60]OH} } + \arrow[below right,<=>,1.12]{ \chemfig{[,.75]-[::30]-[::-60]OH} }{} + \reactant[below right]{ \chemfig{-[::30](-[::60]O-[::-60]-[::-60])-[::-60]OH} } } \branch[above=of carbonyl,aldol,xshift=5.2em]{ - \arrow[direction=above]{ \chemfig{[,.75]-[::30]=_[::-60]O}/\Hpl }{} - \reactand[above]{ \chemfig{-[::30](-[::60]OH)-[::-60]-[::60]=[::60]O} } + \arrow[above]{ \chemfig{[,.75]-[::30]=_[::-60]O}/\Hpl }{} + \reactant[above]{ \chemfig{-[::30](-[::60]OH)-[::-60]-[::60]=[::60]O} } \arrow{$-\ce{H2O}$}{} - \reactand{ \chemfig{-[::30]=[::-60]-[::60]=[::60]O} } + \reactant{ \chemfig{-[::30]=[::-60]-[::60]=[::60]O} } } \end{rxn} \end{Example} \subsubsection{Nummerierte Schemata} -Die zweite Umgebung von \mC funktioniert genau wie die erste, setzt das Reaktionsschema allerdings in eine nummerierte Gleitumgebung mit Überschrift. +Die zweite Umgebung von \mC funktioniert genau wie die erste, setzt das Reaktionsschema allerdings in eine nummerierte Gleitumgebung mit Überschrift.\index{rxnscheme} \begin{Example} \begin{rxnscheme}{Keto-Enol-Tautomerie} - \reactand{ \chemfig{=[::30]-[::-60]OH} } - \arrow[type={<=>}]{}{} - \reactand{ \chemfig{-[::30]=[::-60]O} } + \reactant{ \chemfig{=[::30]-[::-60]OH} } + \arrow[,<=>]{}{} + \reactant{ \chemfig{-[::30]=[::-60]O} } \end{rxnscheme} \end{Example} Hier kommt die Umgebung -\begin{Verbatim} - \begin{rxnscheme}[]{} +\begin{lstlisting} + \begin{rxnscheme}[