diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000..4a558c3
Binary files /dev/null and b/.DS_Store differ
diff --git a/.dropbox b/.dropbox
new file mode 100644
index 0000000..8a3a7fb
--- /dev/null
+++ b/.dropbox
@@ -0,0 +1 @@
+292129120
diff --git "a/Icon\r" "b/Icon\r"
new file mode 100644
index 0000000..e69de29
diff --git a/ST2FS.tex b/ST2FS.tex
new file mode 100644
index 0000000..90de773
--- /dev/null
+++ b/ST2FS.tex
@@ -0,0 +1,581 @@
+% Schaltungstechnik Formelsammlung für ST2 SoSe 2011
+% 2 Seiten
+
+% Dokumenteinstellungen
+% ======================================================================
+
+% Dokumentklasse (Schriftgröße 6, DIN A4, Artikel)
+\documentclass[6pt,a4paper]{scrartcl}
+
+% Pakete laden
+\usepackage[utf8]{inputenc} % Zeichenkodierung: UTF-8 (für Umlaute)
+\usepackage[german]{babel} % Deutsche Sprache
+\usepackage{multicol} % Spaltenpaket
+\usepackage{amsmath}
+\usepackage{amssymb}
+\usepackage{esint} % erweiterte Integralsymbole
+\usepackage{multicol} % ermöglicht Seitenspalten
+\usepackage{multirow}
+\usepackage{booktabs} % bessere Tabellenlinien
+\usepackage{graphicx}
+\usepackage{pbox} %Intelligent parbox: \pbox{maximum width}{blabalbalb \\ blabal}
+\usepackage{packages/extern/undertilde}
+%\usepackage{watermark}
+% Seitenlayout und Ränder:
+\usepackage{geometry}
+\usepackage{accents}
+\usepackage{scrtime}
+
+\geometry{a4paper,landscape, left=6mm,right=6mm, top=0mm, bottom=3mm,includeheadfoot}
+
+% Dokumentbeschreibung
+\title{ST2FS EI SoSe 2011}
+\author{Emanuel Regnath}
+%\watermark{ \centering \put(50,-500){ \includegraphics {./img/watermarkDIN4.pdf} } }
+
+
+%Kopf- und Fußzeile
+\usepackage{fancyhdr}
+\pagestyle{fancy}
+\fancyhf{}
+
+ \fancyfoot[C]{von Emanuel Regnath (Emanuel.Regnath@tum.de)}
+ \renewcommand{\headrulewidth}{0.0pt} %obere Linie ausblenden
+ \renewcommand{\footrulewidth}{0.1pt} %obere Linie ausblenden
+
+ \fancyfoot[R]{Stand: \today \ um \thistime \ Uhr \qquad \thepage}
+ \fancyfoot[L]{Homepage: emareg.de - Fehler bitte sofort melden.}
+
+% Schriftart SANS für bessere Lesbarkeit bei kleiner Schrift
+\renewcommand{\familydefault}{\sfdefault}
+% Array- und Tabellenabstände vergrößern
+\renewcommand{\arraystretch}{1.2}
+
+% Eigene Befehle
+
+
+\newcommand{\iset}[2]{\ensuremath{\bigl\{ \bigl. #1 \, \bigr| \, #2 \bigr\}}} %intensional set
+\newcommand{\eset}[1]{\ensuremath{\bigl\{#1\bigr\}}} %extensional set
+\newcommand{\enbrace}[1]{\ensuremath{\bigl\(#1\bigr\)}} %extensional set
+\newcommand{\norm}[1]{\ensuremath{\|#1\|}} %Norm
+\newcommand{\mat}[1]{\ensuremath{\begin{bmatrix} #1 \end{bmatrix}}} %Matrix
+\newcommand{\ma}[1]{\ensuremath{\utilde{\boldsymbol {#1}}}}
+\newcommand{\vect}[1]{\ensuremath{\begin{pmatrix} #1 \end{pmatrix}}} %Vektor
+\newcommand{\mvect}[1]{\ensuremath{\left. \begin{matrix} #1 \end{matrix} \right]}} %Matrixvektor
+\newcommand{\gk}[1]{\ensuremath{\left\lfloor#1\right\rfloor}} %Gaußklammer
+\newcommand{\sprod}[2]{\ensuremath{\left\langle #1, #2 \right\rangle }} %Skalarprodukt
+\newcommand{\abs}[1]{\ensuremath{\left\vert#1\right\vert}} %Betrag
+
+
+% Überschreibungen
+\renewcommand{\vec}[1]{\ensuremath{\underline{\boldsymbol {#1}}}}
+\renewcommand{\emph}[1]{\textbf{#1}}
+\renewcommand*{\dot}[1]{\accentset{\mbox{\textrm{\large\bfseries .}} }{#1}}
+\renewcommand*{\ddot}[1]{\accentset{\mbox{\textrm{\large\bfseries .\hspace{-0.25ex}.}}}{#1}}
+
+
+
+% Abkürzungen
+\newcommand{\ul}[1]{\ensuremath{\underline{#1}}} %Untersteichen
+\newcommand{\ol}[1]{\ensuremath{\overline{#1}}} %Überstreichen
+\newcommand{\Ra}[0]{\ensuremath{\Rightarrow}} %Rightarrow
+\newcommand{\ra}[0]{\ensuremath{\rightarrow}} %Rightarrow
+\newcommand{\bs}[1]{\ensuremath{\boldsymbol{#1}}} %Fett und kursiv im mathmode
+\newcommand{\diff}{\ensuremath{\ \mathrm d}} %delta
+\newcommand{\grad}{\ensuremath{\mathrm{grad}\ }} %Gradient
+\renewcommand{\div}{\ensuremath{\mathrm{div}\ }} %Divergenz
+\newcommand{\rot}{\ensuremath{\mathrm{rot}\ }} %Rotation
+\newcommand{\Sp}{\ensuremath{\mathrm{Sp}\ }} %Spur
+ % Für Mengen
+ \newcommand{\N}{\ensuremath{\mathbb N}}
+ \newcommand{\R}{\ensuremath{\mathbb R}}
+ \newcommand{\C}{\ensuremath{\mathbb C}}
+
+
+
+% Dokumentbeginn
+% ======================================================================
+\begin{document}
+
+
+% Aufteilung in Spalten
+\begin{multicols}{4}
+
+% -------------------------------------------
+% | Schaltungstechnik 2 |
+% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%=======================================================================
+
+
+
+\section{Schaltungstechnik - Allgemeines}
+
+ \subsubsection{Kirchoffsche Gesetze}
+ \begin{tabular}{l|l}
+ $\underset{\text{Kirchoff's Current Law}}{\text{Stromgesetz \textbf{KCL}}}$ & $\underset{\text{Kirchoff's Voltage Law}}{\text{Spannungsgesetz \textbf{KVL}}}$ \\ \hline
+ Knotenregel & Maschenregel\\
+ \boxed{ \sum\limits_{Knoten} i_k (t) = 0 } & \boxed{ \sum\limits_{Masche} u_m (t) = 0 } \\
+ rausfließende positiv & in Umlaufrichtung positiv \\
+ Maxwell: $\mathrm{div}\, \vec j = 0$ & Maxwell: $\mathrm{rot}\, \vec E = 0$ \\
+ $(n-1)$ Gleichungen & $b-(n-1)$ Gleichungen\\
+ \end{tabular}
+
+ \subsection{Bauelemente}
+ \begin{tabular}{l|l|l}
+ Art & Beschr. & linear \\ \hline
+ Resitiv & $f_R(u,i)$ & $u = R \cdot i$\\
+ Kapazitiv & $f_C(u,q)$ & $q = C \cdot u$ \\
+ Induktiv & $f_L(i,\Phi)$ & $\Phi = L \cdot i$\\
+ Memristiv & $f_M(q,\Phi)$ & $\Phi = M \cdot q$\\
+ \end{tabular}
+
+ \subsubsection{Allgemeine Zusammenhänge $u,i,q,\Phi$}
+ \begin{tabular}{l|l}
+ $i(t) = \dot q(t)$ & $[i]=A$\\
+ $q(t) = q(t_0) + \int_{t_0}^t i(\tau) \mathrm d\tau$ & $[q]=As=C$ \\ \midrule
+ $u(t) = \dot \Phi(t)$ & $[u]=V$\\
+ $\Phi = \Phi(t_0) + \int_{t_0}^t u(\tau) \mathrm d\tau$ & $[\Phi]=Vs=Wb$ \\
+ \end{tabular}
+
+
+ \subsubsection{Eintorverschaltungen}
+ \begin{tabular}{c||c|c}
+ & \large{Serienschaltung} & \large{Parallelschaltung} \\ \hline \hline
+ allgemein & $\begin{array}{l} u=u_1+u_2 \\ i=i_1 = i_2 \\ q=q_1=q_2 \\ \Phi=\Phi_1 + \Phi_2 \end{array}$ & $\begin{array}{l} u_=u_1=u_2 \\ i=i_1+i_2 \\ q=q_1+q_2 \\ \Phi=\Phi_1 = \Phi_2 \end{array}$ \\ \hline
+ resistiv & $R=R_1 + R_2$ & $R = \frac{R_1 \cdot R_2}{R_1 + R_2}$ \\
+ kapazitiv & $C=\frac{C_1 \cdot C_2}{C_1 + C_2}$ & $C=C_1 + C_2$\\
+ induktiv & $L=L_1 + L_2$ & $L=\frac{L_1 \cdot L_2}{L_1 + L_2}$ \\[0.5em]
+ Impedanz & $Z=Z_1 + Z_2$ & $Z = \frac{Z_1 \cdot Z_2}{Z_1 + Z_2}$\\
+ Admittanz & $Y=\frac{Y_1 \cdot Y_2}{Y_1 + Y_2}$ & $Y=Y_1 + Y_2$\\
+ \end{tabular}
+
+
+ \subsection{Linearisierung}
+ \begin{tabular}{ll}
+ Großsignal & Kleinsignal\\
+ $i=I_{AP}+\Delta i$ \ & \ $\Delta i= i - I_{AP}$\\
+ $u=U_{AP}+\Delta u$ \ & \ $\Delta u= u - U_{AP}$\\
+ \end{tabular}
+ \\
+ $\Delta \vec i \approx \ma G \cdot \Delta \vec u$ \qquad $\ma G$ ist die Jakobimatrix $\left. \frac{\partial g_i(\vec u)}{\partial u_j} \right|_{U_{AP}}$\\
+ $\Delta \vec u \approx \ma R \cdot \Delta \vec u$\\
+ Großsignal: $i \approx I_{AP} + G(U_{AP}) \cdot (u - U_{AP})$\\
+
+
+ \subsection{Zweitore}
+ \begin{tabular}{l|l}
+ Widerstandsbeschr. & Leitwertbeschr. \\ \midrule
+ $\begin{array}{ll} u_1=r_1(i_1,i_2) \\ u_2=r_2(i_1,i_2) \end{array}$ & $\begin{array}{ll} i_1=g_1(u_1,u_2) \\ i_2=g_2(u_1,u_2) \end{array}$ \\ \addlinespace[0.2cm]
+ Hybridbeschreibung & Inverse Hybridbeschr. \\ \midrule
+ $\begin{array}{ll} u_1=h_1(i_1,u_2) \\ i_2=h_2(i_1,u_2) \end{array}$ & $\begin{array}{ll} i_1=h'_1(u_1,i_2) \\ u_2=h'_2(u_1,i_2) \end{array}$ \\ \addlinespace[0.2cm]
+
+ Kettenbeschreibung & Inverse Kettenbeschr. \\ \midrule
+ $\begin{array}{ll} u_1=a_1(u_2,-i_2) \\ i_1=a_2(u_2,-i_2) \end{array}$ & $\begin{array}{ll} u_2=a'_1(u_1,-i_1) \\ i_2=a'_2(u_1,-i_1) \end{array}$ \\
+ \end{tabular}
+
+
+
+
+
+
+\subsection{Knotenspannungsanalyse}
+\boxed{ \underset{\text{Knotenleitwertsmatrix}}{\ma Y_k} \cdot \underset{\text{Spannungsvektor}}{\vec u_k} = \underset{\text{Stromquellenvektor}}{\vec i_q} }\\
+Vorgehen:
+\begin{enumerate}\itemsep0pt
+ \item Nicht lineare Elemente linearisieren
+ \item Nicht spannungsgesteuerte Elemente (dual)wandeln:\\
+ Spannungsquelle $\ra$ Stromquelle
+ \item Aufstellen der Leitwertsmatrix $\ma Y_k$: Nur Leitwerte $G$ eintragen!\\
+ $C \ra j \omega C$ \quad $L \ra \frac{1}{j\omega L}$
+ \item Bestimmung des Stromquellenvektors $\vec i_q$: \\
+ in Knoten reinfließender Strom positiv , rausfließenden negieren.
+ \item Leitwertsmatrix soweit es geht reduzieren:\\
+ Nullator: Spalten in $\ma Y_k$ und $\vec i_q$ so wie Zeilen in $\vec u_k$ addieren.\\
+ Norator: Zeilen in $\ma Y_k$ und $\vec i_q$ so wie Spalten in $\vec u_k$ addieren.\\
+ Falls mit Masse verbunden: Spalte bzw. Zeile streichen!\\
+\end{enumerate}
+
+
+
+
+
+\section{Dynamische Schaltungen}
+% ===============================================================================================
+... enthalten mindestens ein reaktives Bauelement und werden durch differentielle Zustandsgleichungen beschrieben. Reaktive Bauelemente können Energie speichern. Dadurch hängt ihr Verhalten vom vorherigen Zustand ab.\\
+
+
+
+ \begin{tabular}{ll|l}
+ \multicolumn{2}{l|}{Elementare Differentialgleichungen} & Einheiten \\ \midrule
+ Kapazität & Induktivität & $\Omega \mathrm F = \mathrm{SH} = \frac{\mathrm{H}}{\Omega} = s$\\
+ \boxed{ i_C = C \cdot \dot u_C } & \boxed{ u_L = L \cdot \dot i_L } & $\mathrm{HF}=s^2$\\
+ \end{tabular}
+ \\
+ \subsection{Relaxationspunkte (Ruhepunkte)}
+ sind die energetisch tiefsten Punkte der Kennlinie.
+ Prüfe ob \emph{von} einen Punkt(Kandidat) \emph{zu allen} anderen Punkten $\int u \diff q = W_C > 0$\\ \\
+ Ladungs/Flussgesteuert: Kandidaten nur bei $u = 0/i = 0$!\\
+ Sonst auch bei Knicken oder Wendestellen möglich.
+
+
+ \subsection{Dynamisches System}
+ mit $k$ Ausgängen, $n$ Zustandsgrößen und $r$ Erregungen.\\
+ Die Zustandsgrößen $\vec x$ müssen einen stetigen Verlauf haben!\\
+ \begin{tabular}{l|l}
+ Allgemeine Zustandsgleichung: & \boxed{ \bs{ \dot {\vec x}}(t) = \ma A \vec x(t) + \ma B \vec v(t) }\\
+ Allgemeine Ausgangsgleichung: & \boxed{ \vec y(t) = \ma C \vec x(t) + \ma D \vec v(t) }\\ \midrule
+ Zustandsvariable \ \ z.B. ($u_C,i_L$)& $\vec x(t) \in \mathbb R^n$ \\
+ Ausgangsvariable \ \ z.B. ($u_3,i_4$)& $\vec y(t) \in \mathbb R^k$ \\
+ Erregungsvektor\ \ z.B. ($U_0,I_0$) & $\vec v \in \mathbb R^r$ \\
+ Systemmatrix & $\ma A\in \mathbb R^{n \times n}$ \\
+ Einkopplungsmatrix & $\ma B \in \mathbb R^{n \times r}$ \\
+ Auskopplungsmatrix & $\ma C \in \mathbb R^{k \times n}$ \\
+ Durchgangsmatrix & $\ma D \in \mathbb R^{k \times r}$ \\
+ \end{tabular}\\[0.5em]
+ Konservatives System: $\sum\limits_{i = 1}^n \frac{\partial E(\vec x)}{\partial x_i} \dot x_i = 0$
+
+
+
+ \subsection{Schaltungen ersten Grades}
+ \pbox{5.0cm}{ Zustandsgleichung: \\[0.2em] \boxed{ \dot x(t) = - \frac{x(t)}{\tau} + \frac{x_\infty}{\tau} } \\[0.5em] $\tau > 0:$ System stabil \\ $\tau < 0:$ System instabil \\ } \qquad
+ \pbox{5.0cm}{ \includegraphics{./img/char/char_Schaltung1Grad.pdf} } \\
+ \boxed{ \text{Lösung:}\quad x(t) = x_\infty + (x_0 - x_\infty) \exp\left(- \frac{t-t_0}{\tau}\right) }\\
+ \\
+ Beispiele: \hspace{3cm} $u_C(t) = A \cdot \sin(\omega t)$\\
+ \pbox{5.0cm}{ \includegraphics[scale = 0.8]{./img/Schaltung1Grad.pdf} \\ \\ $\dot u(t) = - \frac{u(t)}{RC} + \frac{U_0 + RI_0}{RC}$ }
+ \pbox{3.0cm}{ \includegraphics{./img/char/capsin.pdf} }\\
+
+
+
+ \subsubsection{Dynamischer Pfad}
+ \begin{tabular}{l|l}
+ kapazitiv & induktiv \\ \hline
+ $u_C$ stetig, $i_C$ springt & $i_L$ stetig, $u_L$ springt \\
+ $\dot u(t) = - \frac{1}{C} \cdot i(t)$ & $\dot i(t) = - \frac{1}{L} \cdot u(t)$ \\ \midrule
+ $i > 0 \Ra \dot u < 0 \Ra u$ fällt & $u > 0 \Ra \dot i < 0 \Ra i$ fällt \\
+ $i < 0 \Ra \dot u > 0 \Ra u$ steigt & $u < 0 \Ra \dot i > 0 \Ra i$ steigt \\
+ $i = 0 \Ra \dot u = 0 \Ra$ GGP & $u = 0 \Ra \dot i = 0 \Ra$ GGP\\
+ \end{tabular}\\
+ \\[0.5em]
+ \pbox{6.0cm}{
+ Zeitdauer auf linearen Pfaden:\\
+ \boxed{\Delta t = t_1 - t_0 = \tau \ln \left( \frac{x(t_0) - x_\infty}{x(t_1) - x_\infty} \right)}
+ } \quad
+ \pbox{3.0cm} {
+ \includegraphics{./img/pfaddauer.pdf} }\\
+ $x(t_0)$: Startwert,\quad $x(t_1)$: Zielwert,\quad $x_\infty$: (gedachter) GGP
+
+
+ \subsection{Multivibrator mit $R_L = R_0 = R_1$}
+ Relaxationsoszillator (NIK Polung beachten!):\\
+ \includegraphics[scale = 0.8]{./img/astablemultivib.pdf} \ \includegraphics[scale = 0.9]{./img/char/char_astablemultivib.pdf}\\
+ Flip-Flop (Bistabile Schaltung):\\
+ \includegraphics[scale = 0.8]{./img/bistablemultivib.pdf} \includegraphics[scale = 0.9]{./img/char/char_bistablemultivib.pdf}
+
+
+ \subsection{NIK allgemein (Polung beachten)}
+ \includegraphics[scale = 0.85]{./img/NIK.pdf} \qquad \includegraphics{./img/char/char_NIK.pdf}\\
+ \begin{tabular}{cll}
+ I & negative Sättigung $u_d < 0 \Leftrightarrow u_{out}=-U_{sat}$\\
+ & $u = R_0 i - U_{sat}$\\ % < \frac{R_L}{R_L + R_1} \cdot U_{sat}$\\
+ II & linearer Bereich $u_d = 0$\\
+ & $u = - \frac{R_0}{R_1} R_L \cdot i$ \qquad \quad $-U_{sat} < \frac{R_L + R_1}{R_L}u < U_{sat}$\\
+ III & positive Sättigung $u_d > 0 \Leftrightarrow u_{out}=U_{sat}$\\
+ & $u = R_0 i + U_{sat}$ % < \frac{R_L}{R_L + R_1} \cdot U_{sat}$\\
+ \end{tabular}
+
+ \subsection{Eigenwerte(EW) $\lambda$ bestimmen}
+ $\ma A \vec q = \lambda \vec q \ \Rightarrow \ (\ma A - \lambda \ma 1) \vec q = 0$ \quad mit Eigenwert $\lambda$ und Eigenvektor $\vec q$\\
+ $\det (\ma{A}-\lambda \ma{1}) = 0$\\
+ \\
+ Vereinfachung für $2 \times 2$ Matrizen:\\
+ \boxed{
+ \lambda_{1/2} = \frac{\mathrm{sp} \ma A}{2} \pm \sqrt{ \left( \frac{\mathrm{sp} \ma A}{2} \right)^2 - \det \ma A } } \quad \boxed{ \begin{array}{ll} \text{Wähle} \\ \bigl| \lambda_1 \bigr| < \bigl|\lambda_2 \bigr| \end{array}}\\[0.5em]
+ $\mathrm{Sp } \ma A = T = a_{11} + a_{22}$, \quad $\det \ma A = \Delta = a_{11} a_{22} - a_{12} a_{21}$\\
+ \\
+ Zeitkonstante $\tau = -\frac{1}{\lambda}$
+
+
+ \subsection{Eigenvektoren(EV) $\vec q$ bestimmen}
+ $(\ma A-\lambda \ma 1) \vec q = 0 \ \Rightarrow \ \ma Q = \ker(\ma A-\lambda \ma 1)$ \\
+ \fbox{ Merke: Eigenvektoren sind beliebig skalierbar! }
+ \\
+ Vereinfachung für $2 \times 2$ Matrizen, falls $\lambda_1 \ne \lambda_2$:\\
+ \\
+ \begin{tabular}{l|l}
+ $a_{12} \ne 0:$ & $a_{21} \ne 0:$ \\ \midrule
+ $q_{1/2} = \mvect{-a_{12} \\ a_{11} - \lambda_{1/2} }$ & $q_{1/2} = \mvect{a_{22} - \lambda_{1/2} \\ -a_{21} }$ \\
+ \end{tabular}\\
+ \\
+ Falls $a_{12} = a_{21} = 0:$ $q_1 = \mvect{1 \\ 0} \quad q_2 = \mvect{0 \\ 1}$
+ \fbox{ Eigenschaften EV: $\vec q_1 \perp \vec q_2 $}
+ \subsection{Gleichgewichtspunkte(GGP) $\vec x_\infty$ bestimmen}
+ $\vec x_\infty$: $\bs{ \dot {\vec x}} = 0 = \ma A \vec x_\infty + \ma B \vec v \quad \Ra \quad$ \boxed { \vec x_\infty = - \ma A^{-1} \ma B \vec v }\\[0.5em]
+ Oder aus Schaltbild berechnen:\\
+ Ersetze $C \ra LL$ und $L \ra KS$, berechne $\vec x = \vec x_\infty$
+
+
+ \subsection{autonome(inhomogene) Systeme mit $\vec v = const.$}
+ 1. Fall $\ma A$ ist invertierbar ($\lambda_{1/2} \ne 0$)
+ \begin{enumerate}\itemsep0pt
+ \item Transformation auf homogenes System:\\
+ \begin{tabular}{ll}
+ $\vec x' = \vec x - \vec x_\infty$ & (gültig, da $\vec{\dot x}' = \vec{\dot x}$)\\
+ $\vec x_\infty = - \ma A^{-1} \ma B \vec v$ & (oder aus Schaltbild berechnen)\\
+ $\vec x'_0 = \vec x_0 - \vec x_\infty$ & Anfangswerte auch transformieren!\\
+ \end{tabular}
+ \item Löse homogenes System $\vec{\dot x}' = \ma A \vec x'$
+ \item Gesamtlösung durch Rücktransformation: $\vec x = \vec x' + \vec x_\infty$\\
+ $\Ra$ Verschiebung des Ursprungs um $\vec x_\infty$\\
+ \end{enumerate}
+ 2. Fall $\ma A$ ist singulär ($\exists \lambda = 0$)
+ \begin{enumerate}\itemsep0pt
+ \item Transformation auf Normalform: $\vec{ \dot x} = \vec x \ma A + \ma B \vec v \quad \big|\ \ma Q^{-1} \cdot$ \\
+ $\Ra \quad \vec{ \dot \xi} = \ma \Lambda \vec \xi + \vec v'$ \quad mit $\ma \Lambda = \mat{0 & 0 \\ 0 & \lambda}$\\
+ \item Berechne Xi Lösungen: \\
+ $\xi_2 = -\frac{v'_2}{\lambda} + \left(\xi_{0,2} + -\frac{v'_2}{\lambda} \right)\exp(\lambda t)$\\[0.5em]
+ \begin{tabular}{l|l}
+ Falls $v'_{01} = 0$ & Falls $v'_{01} \ne 0$ \\ \midrule
+ $\xi_1 = const.$ & $\xi_1 = v'_1 \cdot t = \xi_{0,1}$\\
+ $\xi_\infty = \vect{ iwas \\ -\frac{v'_2}{\lambda}}$ & Kein GGP! \\
+ \end{tabular}
+ \item Gesamtlösung durch Rücktransformation: $\vec x = \ma Q \cdot \xi$\\
+ \end{enumerate}
+
+
+
+ \subsection{Nichtlineare dynamische Schaltungen 2. Grades}
+ \begin{enumerate}\itemsep0pt
+ \item DGL aufstellen: $\vec{\dot x} = \vec f(\vec x)$
+ \item GGPs bestimmen: $\dot{\vec x} = \vec f(\vec x) \stackrel{!}= \vec 0$ \\
+ \begin{tabular}{llll}
+ $C:$ & $\dot u_C = 0$ & $\Rightarrow \ i_C = 0$ & $\Rightarrow$ LL\\
+ $L:$ & $\dot i_L = 0$ & $\Rightarrow \ u_L = 0$ & $\Rightarrow$ KS\\
+ \end{tabular}
+ \item Linearisiere in $\vec x_\infty$:\\
+ $\vec f(\vec x) \approx \vec f(\vec x_\infty) + \ma J (\vec x_\infty) \cdot (\vec x - \vec x_\infty)$
+ \item Berechne EW und EV von $\ma J (\vec x_\infty)$ für jeden GGP
+ \item Satz von Hartman:\\
+ Falls von $\ma J(\vec x_\infty)$ der Realteil aller Eigenwerte ungleich null ist ($Re(\lambda) \ne 0$), dann verhält sich ein konservatives System in der Umgebung von $\vec x_\infty$ qualitativ genauso wie ein lineares System mit $\ma J(\vec x_\infty)$ als Systemmatrix.
+
+ \end{enumerate}
+
+
+
+
+ \subsection{Normalform}
+ Um DGL's 2ten Grades zu entkoppeln und auf zwei DGL's ersten Grades zurückzuführen.
+ Transformiertes System = Diagonalisiertes System = Xi-System in Xi-Koordinaten.\\
+ \boxed{ \underset{ \ma Q^{-1} \vec{\dot x}(t) }{\vec{ \dot \xi}(t)} = \underset{\ma Q^{-1} \ma A \ma Q}{\ma \Lambda} \cdot \underset{ \ma Q^{-1} \vec x(t) }{\vec \xi(t)} + \underset{ \ma Q^{-1} \ma B \vec v(t) }{\vec v'(t)} }\\
+ $\ma Q$: Matrix der Eigenvektoren \quad $\ma \Lambda$: Diagonalmatrix der Eigenwerte.\\
+ \begin{tabular}{l|l}
+ Transformation: & Rücktransformation \\
+ $\vec \xi(t) = \ma Q^{-1} \vec x(t)$ & $\vec x(t) = \ma Q \vec \xi(t)$\\
+ $\ma \Lambda = \ma Q^{-1} \ma A \ma Q$ & $\ma A = \ma Q \ma \Lambda \ma Q^{-1}$\\
+ $\vec v' = \ma Q^{-1} \ma B \vec v(t)$ & $\ma B \vec v = \ma Q \vec v'$\\
+ \end{tabular}\\
+
+
+\section{Komplexe Wechselstromrechnung }
+Vorraussetzung: lineares, eingeschwungenes System mit sinusförmiger Erregung: $x(t) = \hat x \cdot \cos(\omega t + \varphi) = \hat x \cdot \sin(\omega t + \varphi + \frac{\pi}{2})$\\
+Eigenschaften: eindeutig, linear, differenierbar ($\frac{\mathrm d}{\mathrm dt} = j \omega$)\\
+Beispiel: $u_L = L \cdot \frac{\mathrm d}{\mathrm dt} i_l \ \Rightarrow \vec U_L = L \cdot j \omega \vec I_L$\\[0.5em]
+\parbox{5.1cm}{\Large $e^{j\omega t} = \cos(\omega t) + j \sin(\omega t)$ \\[0.2em] $\omega = 2 \pi f$ \qquad $A = X_m=|X|$ \\[0.2em] \normalsize Komplexe Zahlen: $\frac{z_2}{a+jb} = \frac{z_2(a-jb)}{a^2+b^2}$ \quad $ \frac{1}{j}=-j $ }
+\parbox{1.7cm}{\includegraphics{./img/Zeiger.pdf}} \\
+\framebox{
+\begin{tabular}{ll}
+ Zeiger: &\!\!\!\!\!\!$X = A \cdot \exp(j \varphi) = A \cdot \cos(\varphi) + A \cdot j \sin(\varphi)$\\[0.5em]
+ Zeitsignal: &\!\!\!\!\!\!$x(t) = \Re[X \cdot \exp(j \omega t)] = A \cdot \cos(\omega t + \varphi)$\\
+\end{tabular} }
+\\[0.5em]
+$\begin{array}{c|c|c|c|c|c|c|c|c}
+x & 0 & \pi / 6 & \pi / 4 & \pi / 3 & \pi / 2 & \pi & \frac{3}{2}\pi & 2 \pi \\ \hline
+\sin & 0 & \frac{1}{2} & \frac{1}{\sqrt{2}} & \frac{\sqrt 3}{2} & 1 & 0 & -1 & 0 \\
+\cos & 1 & \frac{\sqrt 3}{2} & \frac{1}{\sqrt 2} & \frac{1}{2} & 0 & -1 & 0 & 1 \\
+\tan & 0 & \frac{\sqrt{3}}{3}& 1 & \sqrt{3} & \infty & 0 & - \infty & 0\\
+\end{array}$\\
+\\
+$\underset{\text{Impedanz}}{Z(j\omega)} = \underset{\text{Resistanz}}{R(j\omega)} + \underset{\text{Reaktanz}}{jX(j\omega)}$: Impedanz $U = Z \cdot I $\\
+$\underset{\text{Admittanz}}{Y(j\omega)} = \underset{\text{Konduktanz}}{G(j\omega)} + \underset{\text{Suszeptanz}}{jB(j\omega)}$: Admittanz $I = Y \cdot U$\\
+
+
+\everymath{\displaystyle}
+\begin{tabular}{l|ll}
+ & $Z$ & $Y$\\ \midrule
+Widerstand & $R$ & $G = \frac{1}{R}$ \\
+Kondensator & $\frac{1}{j \omega C}$ & $j \omega C$\\
+Spule & $j \omega L$ & $\frac{1}{j \omega L}$ \\
+Memristor & $M$ & $\frac{1}{M}$\\
+\end{tabular}
+\everymath{\textstyle}
+
+
+
+Rechenregeln:
+$A = a + j b = \hat A_m \exp(j \varphi)$\\
+Radius $\hat A_m = \sqrt{a^2 + b^2}$\\
+
+Mehrere Erregungen mit unterschiedlicher Kreisfrequenz:\\
+Getrennte Zeigerrechnung für einzelne Frequenzen, dann zurücktransformieren und addieren.
+
+\subsection{Oszillatoren}
+autonome Schaltung 2. Grades mit nur einem instabile GGP.\\
+\begin{tabular}{l|lll}
+Van der Pol($L||C$) & Stückweise & fast harmon. & Relax.\\
+$\ma J(\vec x_\infty)=$ & $\ma J(\vec x_\infty)=$ & $\lambda_{1/2} =$ & $L\ra 0$\\
+$\mat{\frac{1}{RC} & -\frac{1}{C} \\ \frac{1}{L} & 0}$ & $\mat{0 & -\frac{1}{C} \\ \frac{1}{L} & \pm \frac{R}{L} }$ & $\pm \frac{R}{2L} \pm j \omega_0$\\
+\end{tabular}
+
+
+
+
+\subsection{Übertragungsfunktion $H(j\omega) = a + j b$}
+$H(j \omega) = \frac{U_{out}}{U_{in}} = |H(j \omega)| \cdot \exp\bigl(j\varphi(\omega)\bigr)$\\
+
+Bei Knotenspannungsanalyse:\\
+$H(j\omega) = \frac{U_{out}}{U_{in}} = \frac{U_{Km}}{I_n}\cdot G = \frac{(-1)^{n+m} \det \ma Y_{nm}(j\omega)}{\det \ma Y_k(j\omega)}\cdot G$\\[0.5em]
+Wichtige Regeln:\\
+$20\log_{10} \left( \frac{1}{a} \right) = -20\log_{10} \left( a \right)$ \qquad $\log_{10}(1) = 0$\\ $20\log_{10} \left( \sqrt{a} \right) = 10\log_{10} a$ \\[0.5em]
+Faktorisieren: $H(j \omega) = \prod H_i(j \omega)$ damit gilt:\\
+$v(\omega) = \sum v_i(\omega)$ \qquad $\varphi(\omega) = \sum \varphi_i(\omega)$\\
+
+$\sphericalangle H(j \omega) = \varphi(\omega) = \begin{cases}
+\arctan \frac{b}{a} & \text{für } a > 0 \\
++ \frac{\pi}{2} & \text{für } a= 0, b > 0 \\
+- \frac{\pi}{2} & \text{für } a = 0, b < 0 \\
+\arctan \frac{b}{a} + \pi & \text{für } a < 0, b \ge 0 \\
+\arctan \frac{b}{a} - \pi & \text{für } a < 0 , b < 0
+\end{cases}$\\
+$\arctan \left( - \frac{b}{a} \right) = - \arctan \left( \frac{b}{a} \right)$
+\\[6em]
+$H(p) = k \cdot \frac{p}{p^2 + p \frac{\omega_0}{Q} + \omega^2_0 }$:\\ \includegraphics{./img/bodesquare.pdf}
+
+
+
+
+\subsection{Pol-Nullstellen-Diagramm (PN-Diagramm)}
+Polstellen $\times$, Nullstellen $\circ$\\
+Polstellen = Eigenfrequenzen = Eigenwerte.\\
+Polstellen haben negativen Realteil $\Ra$ Schaltung Stabil.
+
+
+\subsection{Ortskurven}
+Berechne Markante Punkte von $Y(j\omega)$ oder $Z(j\omega)=\frac{U}{I}=H(j\omega)$\\
+\begin{tabular}{lll}
+$\Re Z(j0)$ & $\Im Z(j0)$\\
+$\Re Z(j\infty)$ & $\Im Z(j\infty)$\\
+$\Re Z(j\omega_0)$ & $\Im Z(j\omega_0)$\\
+\end{tabular}
+
+
+ \subsection{Leistung und Energie}
+ Differenzielle Energie: $\diff E = p(t) \diff t = u(t) \cdot i(t) \diff t$\\
+ Wirkleistung: $P_w = \frac{1}{T} \int\limits_0^T p(t) \diff t$\\
+ Für lineare resistive Schaltungen: $P_w = R \cdot I^2_{eff} = \frac{U^2_{eff}}{R}$\\
+ Komplexe Leistung: $P = \frac12 UI^* = P_w + j P_B$\\
+
+% Ende der Spalten
+\end{multicols}
+
+
+
+\hrule \hrule
+
+\begin{multicols}{3}
+\section{Lösen von homogenen DGLs}
+Gegeben: Homogene Differnetialgleichungen der Form $\vec{\dot x} = \ma A \vec x$ \\
+mit Anfangswerten $x_{0,1}$ und $x_{0,2}$\\[2em]
+\boxed{ \boldsymbol{\lambda_1 \ne \lambda_2 \in \R} } \qquad \boxed{ \bigl| \lambda_1 \bigr| < \bigl|\lambda_2 \bigr| \quad \Ra \vec q_2 \text{,,schneller''} } \\[1.5em]
+$\vec x(t) = x_{0,1} \cdot \exp(\lambda_1 t) \cdot \vec q_1 + x_{0,2} \cdot \exp(\lambda_2 t) \cdot \vec q_2$\\[1.5em]
+\begin{tabular}{l|l|l|l|l}
+ Matrix $\Lambda$ & Eigenwerte & $\vec x = 0$ & Name & Portrait\\ \midrule \midrule
+ {$\mat{\lambda_1 & 0 \\ 0 & \lambda_2}$} & $\lambda_1 < 0 < \lambda_2$ & instabil & Sattelpunkt & \pbox{3.0cm}{ \includegraphics{./img/char/PP_Sadle.pdf} }\\ \midrule
+ & $\lambda_2 < 0, \lambda_1 < 0 $ & stabil & Knoten 2 & \pbox{3.0cm}{ \includegraphics{./img/char/PP_stableNode.pdf} }\\ \midrule
+ & $0 < \lambda_1, 0 < \lambda_2 $ & instabil & Knoten 2 & \pbox{3.0cm}{ \includegraphics{./img/char/PP_unstableNode.pdf} }\\ \midrule
+ \multirow{2}{*}{$\mat{0 & 0 \\ 0 & \lambda_2}$} & $\lambda_1 = 0,\ \lambda_2 < 0$ & stabil & Kamm & \pbox{3.0cm}{ \includegraphics{./img/char/PP_stableLine.pdf} }\\ \midrule
+ & $\lambda_1 = 0,\ \lambda_2 > 0$ & instabil & Kamm & \pbox{3.0cm}{ \includegraphics{./img/char/PP_unstableLine.pdf} }\\
+\end{tabular}
+\vspace{2em}\\
+
+%\vspace{5em}\\
+
+\boxed{ \boldsymbol{\lambda_1 = \lambda_2 \in \R} }\\
+$\ma Q' = \mat{ \vec q'_1 & \vec q'_2} = \mat{ -a_{12} & -a_{12} \\ \frac{a_{11} - a_{22}}{2} & \frac{a_{11} - a_{22}}{2} -1 } = \mat{ \vect{\text{Eigen-} \\ \text{vektor}} & \vect{\text{Haupt-} \\ \text{vektor}}}$\\
+$\vec x(t) = \left[ \ma 1 + (\ma A - \lambda \ma 1) \cdot t \right] \cdot \exp(\lambda t) \cdot \mvect{x_{0,1} \\ x_{0,2}}$\\[0.5em]
+\begin{tabular}{l|l|l|l|l}
+ Matrix $\Lambda$ & Eigenwerte & $\vec x = 0$ & Name & Portrait\\ \midrule \midrule
+ \multirow{2}{*}{$\mat{\lambda & 0 \\ 0 & \lambda}$} & $\lambda < 0$ & stabil & Knoten 1 & \pbox{3.0cm}{ \includegraphics{./img/char/PP_stableStarNode.pdf} }\\ \midrule
+ & $\lambda > 0$ & instabil & Knoten 1 & \pbox{3.0cm}{ \includegraphics{./img/char/PP_unstableStarNode.pdf} }\\ \midrule
+ \multirow{2}{*}{$\mat{\lambda & 1 \\ 0 & \lambda}$} & $\lambda < 0$ & stabil & Knoten 3 & \pbox{3.0cm}{ \includegraphics{./img/char/PP_stableWhirlNode.pdf} }\\ \midrule
+ & $\lambda > 0$ & instabil & Knoten 3 & \pbox{3.0cm}{ \includegraphics{./img/char/PP_unstableWhirlNode.pdf} }\\ \midrule
+ $\mat{0 & 0 \\ 0 & 0}$ & $\lambda = 0$ & stabil & Ruheebene & \pbox{3.0cm}{ \includegraphics{./img/char/PP_stableZero.pdf} }\\ \midrule
+ $\mat{0 & 1 \\ 0 & 0}$ & $\lambda = 0$ & instabil & Ruhegerade & \pbox{3.0cm}{ \includegraphics{./img/char/PP_unstableZero.pdf} }\\
+\end{tabular}
+
+
+\boxed{ \boldsymbol{\lambda_1 = \lambda^*_2 = \alpha + \beta j \in \C} } \qquad \boxed{ \ma Q' = \mat{\Re \vec q_1 & \Im \vec q_1} = \mat{ \vec q_r & \vec q_j} }\\
+
+$\begin{array}{rl} \vec x(t) & = x_{0,1} \cdot e^{\alpha t} \cdot \left[ \cos (\beta t) \vec q_r - \sin(\beta t) \cdot \vec q_j \right] + \\ & +\, x_{0,2} \cdot e^{\alpha t} \cdot \left[ \sin (\beta t) \vec q_r + \cos(\beta t) \cdot \vec q_j \right] \end{array}$\\
+\begin{tabular}{l|l|l|l|l}
+ Matrix $\Lambda$ & Eigenwerte & $\vec x = 0$ & Name & Portrait\\ \midrule \midrule
+ \multirow{2}{*}{$\mat{\alpha & -\beta \\ \beta & \alpha}$} & $\alpha < 0,\ \beta \ne 0$ & stabil & Strudel & \pbox{3.0cm}{ \includegraphics{./img/char/PP_stableFocus.pdf} }\\ \midrule
+ & $\alpha > 0,\ \beta \ne 0$ & instabil & Strudel & \pbox{3.0cm}{ \includegraphics{./img/char/PP_unstableFocus.pdf} }\\ \midrule
+ $\mat{0 & -\beta \\ \beta & 0}$ & $\alpha = 0,\ \beta \ne 0$ & stabil & Wirbel & \pbox{3.0cm}{ \includegraphics{./img/char/PP_Whirl.pdf} }\\
+\end{tabular}
+\vspace{1em}\\
+Zeitverlauf immer von $\vec q_j$ nach $\vec q_r$ bzw. von $\vec q_r$ nach $-\vec q_j$\\[4em]
+Lösung für \emph{inhomogene DGL}($\vec v \ne 0$) mit singulärer Matrix $\ma A$ (nicht entkoppelbar):\\
+\begin{tabular}{l|l|l|l|l}
+$\mat{0 & 0 \\ 0 & \lambda_2}$ & $\lambda_1 = 0,\ \lambda_2 < 0$ & instabil & Kamm & \pbox{3.0cm}{ \includegraphics{./img/char/PP_unstableLine2.pdf} }\\
+$\mat{0 & 1 \\ 0 & 0}$ & $\lambda = 0$ & instabil & Knoten & \pbox{3.0cm}{ \includegraphics{./img/char/PP_unstableZero2.pdf} }\\
+\end{tabular}
+
+
+% Ende der Spalten
+\end{multicols}
+
+
+
+% Dokumentende
+% ======================================================================
+\end{document}
+
+
+
+
+Halde:
+
+\begin{tabular}{l|l|l|l|l}
+ Matrix $\Lambda$ & Eigenwerte & $\vec x = 0$ & Name & Portrait\\ \midrule
+ \multirow{3}{*}{$\mat{\lambda_1 & 0 \\ 0 & \lambda_2}$} & $\lambda_1 < 0 < \lambda_2$ & instabil & Sattelpunkt & \pbox{3.0cm}{ \includegraphics{./img/char/PP_Sadle.pdf} }\\
+ & $\lambda_2 < \lambda_1 < 0 $ & stabil & Knoten 2 & \pbox{3.0cm}{ \includegraphics{./img/char/PP_stableNode.pdf} }\\
+ & $0 < \lambda_1 < \lambda_2 $ & instabil & Knoten 2 & \pbox{3.0cm}{ \includegraphics{./img/char/PP_stableNode.pdf} }\\
+ \multirow{2}{*}{$\mat{0 & 0 \\ 0 & \lambda_2}$} & $\lambda_1 = 0,\ \lambda_2 < 0$ & stabil & Kamm & \pbox{3.0cm}{ \includegraphics{./img/char/PP_stableLine.pdf} }\\
+ & $\lambda_1 = 0,\ \lambda_2 > 0$ & instabil & Kamm & \pbox{3.0cm}{ \includegraphics{./img/char/PP_unstableLine.pdf} }\\ \midrule
+ \multirow{2}{*}{$\mat{\lambda & 0 \\ 0 & \lambda}$} & $\lambda < 0$ & stabil & Knoten 1 & \pbox{3.0cm}{ \includegraphics{./img/char/PP_stableStarNode.pdf} }\\
+ & $\lambda > 0$ & instabil & Knoten 1 & \pbox{3.0cm}{ \includegraphics{./img/char/PP_unstableStarNode.pdf} }\\
+ \multirow{2}{*}{$\mat{\lambda & 1 \\ 0 & \lambda}$} & $\lambda < 0$ & stabil & Knoten 3 & \pbox{3.0cm}{ \includegraphics{./img/char/PP_stableWhirlNode.pdf} }\\
+ & $\lambda > 0$ & instabil & Knoten 3 & \pbox{3.0cm}{ \includegraphics{./img/char/PP_unstableWhirlNode.pdf} }\\
+ $\mat{0 & 0 \\ 0 & 0}$ & $\lambda = 0$ & stabil & Ruheebene & \pbox{3.0cm}{ \includegraphics{./img/char/PP_stableZero.pdf} }\\
+ $\mat{0 & 1 \\ 0 & 0}$ & $\lambda = 0$ & instabil & Ruhegerade & \pbox{3.0cm}{ \includegraphics{./img/char/PP_unstableZero.pdf} }\\ \midrule
+ \multirow{2}{*}{$\mat{\alpha & -\beta \\ \beta & \alpha}$} & $\alpha < 0,\ \beta \ne 0$ & stabil & Strudel & \pbox{3.0cm}{ \includegraphics{./img/char/PP_stableFocus.pdf} }\\
+ & $\alpha > 0,\ \beta \ne 0$ & instabil & Strudel & \pbox{3.0cm}{ \includegraphics{./img/char/PP_unstableFocus.pdf} }\\
+ $\mat{0 & -\beta \\ \beta & 0}$ & $\alpha = 0,\ \beta \ne 0$ & stabil & Wirbel & \pbox{3.0cm}{ \includegraphics{./img/char/PP_Whirl.pdf} }\\
+\end{tabular}
+
+
+
+
+ \subsection{Lösung für hom. DGL }
+ Für Gleichungen der Form $\vec{\dot x} = \ma A \vec x$ mit Anfangswerten $x_{0,1},x_{0,2}$\\[0.5em]
+ $\lambda_1 \ne \lambda_2$: $\vec x(t) = x_{0,1} \cdot \exp(\lambda_1 t) \cdot \vec q_1 + x_{0,2} \cdot \exp(\lambda_2 t) \cdot \vec q_2$\\[0.5em]
+ $\lambda_1 = \lambda_2$: $\vec x(t) = \left[ \ma 1 + (\ma A - \lambda \ma 1) \cdot t \right] \cdot \exp(\lambda t) \cdot \mvect{x_{0,1} \\ x_{0,2}}$\\[0.5em]
+ $\lambda_1 = \lambda^*_2$:
+ $\begin{array}{rl} \vec x(t) & = x_{0,1} \cdot e^{\alpha t} \cdot \left[ \cos (\beta t) \vec q_r - \sin(\beta t) \cdot \vec q_j \right] + \\ & +\, x_{0,2} \cdot e^{\alpha t} \cdot \left[ \sin (\beta t) \vec q_r + \cos(\beta t) \cdot \vec q_j \right] \end{array}$\\
+
+
+
+
+
+
+
diff --git a/Schaltungstechnik.tex b/Schaltungstechnik.tex
new file mode 100644
index 0000000..7af30b2
--- /dev/null
+++ b/Schaltungstechnik.tex
@@ -0,0 +1,229 @@
+% .:: Laden der LaTeX4EI Formelsammlungsvorlage
+\documentclass[fs, footer]{latex4ei}
+
+% Dokumentbeginn
+% ======================================================================
+\begin{document}
+
+
+% Aufteilung in Spalten
+\vspace{-4mm}
+\begin{multicols*}{4}
+ \fstitle{Schaltungstechnik 1}
+
+% -------------------------------------------
+% | Schaltungstechnik |
+% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+% SECTION ====================================================================================
+\section{Mathematische Grundlagen}
+% ============================================================================================
+
+\sectionbox{
+\subsection{Sinus, Cosinus \quad $\sin^2(x) \bs + \cos^2(x) = 1$}
+\setlength{\tabcolsep}{4pt}
+\tablebox{
+\begin{tabular*}{\columnwidth}{@{\extracolsep\fill}c|c|c|c|c||c|c|c|c@{}} \ctrule
+$x$ & $0$ & $\pi / 6$ & $\pi / 4$ & $\pi / 3$ & $\frac{1}{2}\pi$ & $\pi$ & $1\frac{1}{2}\pi$ & $2 \pi$ \\
+$\scriptstyle{ \varphi }$ & $\scriptstyle{0^\circ}$ & $\scriptstyle{30^\circ}$ & $\scriptstyle{45^\circ}$ & $\scriptstyle{60^\circ}$ & $\scriptstyle{90^\circ}$ & $\scriptstyle{180^\circ}$ & $\scriptstyle{270^\circ}$ & $\scriptstyle{360^\circ}$ \\ \cmrule
+$\sin$ & $0$ & $\frac{1}{2}$ & $\frac{1}{\sqrt{2}}$ & $\frac{\sqrt 3}{2}$ & $1$ & $0$ & $-1$ & $0$ \\
+$\cos$ & $1$ & $\frac{\sqrt 3}{2}$ & $\frac{1}{\sqrt 2}$ & $\frac{1}{2}$ & $0$ & $-1$ & $0$ & $1$ \\
+$\tan$ & $0$ & $\frac{\sqrt{3}}{3}$ & $1$ & $\sqrt{3}$ & $\pm \infty$ & $0$ & $\mp \infty$ & $0$\\ \cbrule
+\end{tabular*} }
+}
+
+
+% SECTION ====================================================================================
+\section{Netzwerktheorie}
+% ============================================================================================
+
+\sectionbox{
+
+\subsection{Kirchhoff-Gesetze}
+Konzentriertheitshypothese: $d << \lambda$ mit \\
+$d = $ Größe der Schaltung, Wellenlänge $\lambda = c T$ \\
+
+Knotenregel \emph{KCL}: $ \sum \limits_{\text{Knoten}}i_{\ir j} (t) = 0$ (heraußfließende Ströme positiv) \\
+Maschenregel \emph{KVL}: $ \sum \limits_{\text{Umlauf}} u_{\ir j} (t) = 0$ (Spannungen in Umlaufrichtung positiv)
+
+Knoteninzidenzmatrix: $\ma A' = \mat{\alpha_{11} & \ldots & \alpha_{1b} \\ \vdots & & \\ \alpha_{n1} & \ldots & \alpha_{nb}}$ $n$ Knoten
+
+Spaltensummen von $A'$ sind immer $= 0$ \\
+$\Ra$ Zeile des Bezugsknotens streichen $\Ra$ \\
+$\ma A \vec i =0$ (reduzierte Knoteninzidenzmatrix)
+
+$\ma M = \ma A^{'\top} $ mit $\vec u = \ma M^{'} \vec u^{'}_{\ir k}$ $\Ra $ KVL in Matrixform: $\vec u - \ma A^{\top} \vec u_{k} = 0$
+
+}
+
+
+
+\sectionbox{
+ \subsection{Schaltung und Netzwerkgraph}
+ % Verbindet man mehrere Bauelemente zu einer Schaltung ergibt sich eine eindeutige Verbindungsstruktur.\\
+ Der gerichtete Netzwerkgraph stellt die Verbindungsstruktur einer Schaltung durch $n$ Knoten (node) und $b$ Verbindungskanten (branch) mit Richtungspfeilen dar.\\
+ Jedes Bauelement mit zwei Anschlüssen entspricht einer Verbindungskante. Ein Knoten ist dort, wo ein oder mehr Anschlüsse von Bauteilen durch ideal leitenden Draht miteinander verbunden sind.
+ Verbundene Anschlüsse entsprechen einem Kurzschluss, nicht verbundene Anschlüsse einem Leerlauf!
+
+
+ Um die Betriebspunkte einer Schaltung zu bestimmen sind $2b$ linear unabhängige Gleichungen nötig. Man erhält diese $2b$ Gleichungen aus den Beschreibungen der Bauelemente und den Kirchoff Gleichungen.
+
+
+ \subsubsection{Wichtige Begriffe}
+ \begin{description}%\itemsep0pt
+ \item[Zählpfeile:] Zeigen die gemeinsame(assoziierte) Zählrichtung von Stromfluss und Spannungsabfall zwischen zwei Knoten an, unabhängig von den tatsächlichen Richtungen(Vorzeichen).
+ \item[Masse(Erdung) $\perp$:] Bezugspunkt des elektr. Potentials mit Potential $0V$
+ \item[Kurzschluss(KS):] ideal leitender Draht. $u_{KS} = 0$, $i_{KS}=$beliebig
+ \item[Leerlauf(LL):] ideal isolierende Luft. $u_{LL}=$beliebig, $i_{LL} = 0$
+ \item[Tor:] Ein Tor bilden zwei Anschlüsse bei denen der Stromzufluss des einen Anschluss gleich dem Stromabfluss des anderen Anschluss entspricht. $i_{in} = i_{out}$
+ \end{description}
+
+}
+
+ \subsection{Eintorverschaltungen}
+
+
+ \tablebox{
+ \begin{tabular*}{\columnwidth}{@{\extracolsep\fill}ll@{\hspace{1em}}|ll@{}} \ctrule
+ \multicolumn{2}{c}{\large{Serienschaltung}} & \multicolumn{2}{c}{\large{Parallelschaltung}} \\ \ctrule
+ $u= \sum u_i$ & $i=\const$ & $u =\const$ & $i=\sum i_i$\\
+ $q= \const$ & $\Phi_{\ir M} =\sum \Phi_{{\ir M,}i}$ & $q=\sum q_i$ & $\Phi_{\ir M}=\const$\\ \cmrule
+ $R=\sum R_i$ & $M=\sum M_i$ & $\frac{1}{R} = \sum \frac{1}{R_i}$ & $\frac{1}{M} = \sum \frac{1}{M_i}$\\[0.5em]
+ $\frac{1}{C} = \sum \frac{1}{C_i}$ & $L=\sum L_i$ & $C=\sum C_i$ & $\frac{1}{L} = \sum \frac{1}{L_i}$ \\[0.5em] \cmrule
+ $\cx Z=\sum \cx Z_i$ & $\frac{1}{\cx Y} = \sum \frac{1}{\cx Y_i}$ & $\frac{1}{\cx Z} = \sum \frac{1}{\cx Z_i}$ & $\cx Y=\sum \cx Y_i$\\ \cbrule
+ \end{tabular*} }
+
+
+
+\sectionbox{
+\subsection{Resistive Eintore}
+
+\begin{itemize}
+ \item Implizite Darstellung: $f_F (u,i) = 0$
+ \item Parameterdarstellung: $u = u_F ( \lambda )$ \quad $ i = i_F (\lambda )$
+ \item Explizite Darstellung: $\underset{\ir Leitwertdarstellung}{i = g_F (u)}$ \quad $\underset{\ir Widerstandsdarstellung}{u = r_F (i)}$
+ \item Umpolung: $\overline F$ entsteht durch Punktspiegelung von $F$ am Unsprung: $(\overline u, \overline i) = (- u, - i) \in \overline F$
+ \item Dualität: $(u,i) \in F \Leftrightarrow ( R_d i, \frac{ u}{ R_d}) \in F^d$
+ \item Parallelschaltung von Widerstandsgeraden: $G = G_1 + G_2$ \\
+ $\Ra \frac 1 R = \frac 1 R_1 + \frac 1 R_2 \Ra R = R_1 \parallel R_2 = \frac{R_1 R_2}{R_1 + R_2}$
+ \item Serienschaltung von Widerstandsgeraden: genauso wie Parallelschaltung nur $R$ statt $G$
+ \item Arbeitspunkt ermitteln:
+ \begin{enumerate}
+ \item Schaltungs aufteilen in Quelle $Q$ und Last $L$
+ \item Parameterdarstellung $\Ra$ Kennlinien zeichnen
+ \item Lösung: Schnittpunkte der Kennlinien! $\Ra$ ist die Funktion im AP stetig und diffbar, kann man sie dort \emph{linearisieren}
+ \end{enumerate}
+\end{itemize}
+
+Eigenschaften von $F$:
+
+\tablebox{
+ \begin{tabular*}{\columnwidth}{@{\extracolsep\fill}ll@{}}
+ \ctrule
+ F ungepolt & Kennlinie punktsymm. zum Ursprung \\
+ F aktiv & mind. 1 Pkt. in II. od. IV. Quadr. \\
+ F verlustfrei & nur auf Koordinatenachsen \\
+ F quellenfrei & enthält den Ursprung \\
+ F streng linear & $(ku, ki) \in F$ \quad $ (u_1 + u_2, i_1 + i_2) \in F$ \\
+ \cbrule
+ \end{tabular*}
+}
+
+
+}
+% -- Seite 1
+
+
+
+\newpage
+% -------------------------------------------------------
+% | S C H A L T U N G S T E C H N I K 2 |
+% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%########################################################################################################################################################################################################
+{\huge{\textbf{Schaltungstechnik 2}}}
+
+
+\section{Allgemeines}
+% ===============================================================================================
+
+ \subsection{Die vier zentralen Größen $u,i,q,\Phi$}
+ % ----------------------------------------------------------------------
+ ... beschreiben die Wirkungsweise von elektronischen Bauelementen.\\ \\
+ \begin{tabular}{lc|ll}
+ Größe & & Definition\\ \hline
+ Spannung & $u$ & Potentialdifferenz. Richtung: Von hohem zu niedrigen Potential.\\
+ Stromfluss & $i$ & Bewegte Ladung. Richtung: Bewegungsrichtung positiver Ladung.\\
+ Ladung & $q$ & Grundeigenschaft von Materie. Es gibt positive und negative Ladung.\\
+ Magn. Fluss & $\Phi$ & Grundeigenschaften von elektr. magn. Feldern.\\
+ \end{tabular}
+
+ \subsubsection{Allgemeine Zusammenhänge $u,i,q,\Phi$}
+ Ladung und Strom beschreiben den Zustand der Materie.\\
+ Spannung und magn. Fluss beschreiben den Zustand des elekt. magn. Feldes.\\ \\
+ \begin{tabular}{l|l}
+ $i(t) = \dot q(t)$ & $[i]=A$\\
+ $q(t) = q(t_0) + \int_{t_0}^t i(\tau) \mathrm d\tau$ & $[q]=As=C$ \\ \hline
+ $u(t) = \dot \Phi(t)$ & $[u]=V$\\
+ $\Phi = \Phi(t_0) + \int_{t_0}^t u(\tau) \mathrm d\tau$ & $[\Phi]=Vs=Wb$ \\
+ \end{tabular}
+
+
+
+
+ \subsubsection{Arten von Bauelementen}
+ \begin{tabular}{l|l|l|l|l}
+ Art & Symbol & Beschr. & linear & Beispiel\\ \hline
+ Resistivität & \includegraphics[height=0.4cm]{./img/Resistivitat.pdf} & $f_R(u,i)$ & $u = U_0 + R \cdot i$ & PN-Diode\\
+ Kapazität & \includegraphics[height=0.4cm]{./img/Kapazivitat.pdf} & $f_C(u,q)$ & $q = Q_0 + C \cdot u$ & Kondensator\\
+ Induktivität & \includegraphics[height=0.4cm]{./img/Induktivitat.pdf} & $f_L(i,\Phi)$ & $\Phi = \Phi_0 + L \cdot i$ & Spule\\
+ Memristivität & \includegraphics[height=0.4cm]{./img/Memristivitat.pdf} & $f_M(q,\Phi)$ & $\Phi = \Phi_0 + M \cdot q$ & Memristor\\
+ \end{tabular}
+
+
+
+
+
+\sectionbox{
+ \subsection{Komplexe Wechselstromrechnung}
+ % ---------------------------------------------------------
+ Vorraussetzung: lineares, eingeschwungenes System mit sinusförmiger Erregung $x(t) = \hat x \cdot \cos(\omega t + \varphi)$
+ Effektivwert $X = \frac{\hat x}{\sqrt{2}}$\\
+ Differentialoperator: $\frac{\diff}{\diff t} = \i \omega$\\
+ \emphbox{
+ \begin{tabular}{ll}
+ Reeles Zeitsignal: &\!\!\!\!\!\! $x(t) = \hat x \cdot \cos(\omega t + \varphi_x)$\\[0.5em]
+ Effektiver Zeiger: &\!\!\!\!\!\! $\cx X = X_w + \i X_b = X \exp(\i \varphi_x)$\\[0.5em]
+ Scheitel Zeiger: &\!\!\!\!\!\! $\boldsymbol{\hat X} = \sqrt{2} \cx X = \hat X \exp(\i \varphi_x)$\\[0.5em]
+ Kompl. Zeitsignal: &\!\!\!\!\!\! $\cx x(t) = \boldsymbol{\hat X} \cdot e^{\i \omega t} = \hat x \cdot e^{\i(\omega t + \varphi_x)}$\\[0.5em]
+ Phase: &\!\!\!\!\!\! $\varphi_x := \arg \cx X = \arctan \frac{X_b}{X_w}$\\
+ \end{tabular} } \\
+ \framebox[\columnwidth]{
+ \begin{tabular}{l@{\hspace{4em}}l}
+ $\underset{\text{Impedanz}}{\cx Z(j\omega)} = \underset{\text{Resistanz}}{R(j\omega)} + \underset{\text{Reaktanz}}{jX(j\omega)}$ & $\cx U = \cx Z \cdot \cx I$\\[0.5em]
+ $\underset{\text{Admittanz}}{\cx Y(j\omega)} = \underset{\text{Konduktanz}}{G(j\omega)} + \underset{\text{Suszeptanz}}{jB(j\omega)}$ & $\cx I = \cx Y \cdot \cx U$\\
+ \end{tabular}
+ }
+
+ \tablebox{
+ \begin{tabular*}{\columnwidth}{l@{\extracolsep\fill}cccc} \ctrule
+ & \textbf{Widerstand} & \textbf{Kondensator} & \textbf{Spule} & \textbf{Memristor}\\ \cmrule
+ $Z=$ & $R$ & $\frac{1}{j \omega C}$ & $j \omega L$ & $M$\\[0.5em]
+ $Y=$ & $G = \frac{1}{R}$ & $j \omega C$ & $\frac{1}{j \omega L}$ & $\frac{1}{M}$\\[0.5em]
+ $\underset{\varphi_u - \varphi_i}{\Delta \varphi =}$ & 0 & $-\frac{\pi}{2}$ & $\frac{\pi}{2}$ & ?\\ \cbrule
+ \end{tabular*} }
+}
+
+
+
+
+
+
+
+% Ende der Spalten
+\end{multicols*}
+
+% Dokumentende
+% ======================================================================
+\end{document}
+
+% ToDos:
+
diff --git a/img/Induktivitat.pdf b/img/Induktivitat.pdf
new file mode 100644
index 0000000..9e70e78
Binary files /dev/null and b/img/Induktivitat.pdf differ
diff --git a/img/Kapazivitat.pdf b/img/Kapazivitat.pdf
new file mode 100644
index 0000000..95f4b0d
Binary files /dev/null and b/img/Kapazivitat.pdf differ
diff --git a/img/Logo.pdf b/img/Logo.pdf
new file mode 100644
index 0000000..1bf9349
Binary files /dev/null and b/img/Logo.pdf differ
diff --git a/img/Memristivitat.pdf b/img/Memristivitat.pdf
new file mode 100644
index 0000000..058989a
Binary files /dev/null and b/img/Memristivitat.pdf differ
diff --git a/img/NIK.pdf b/img/NIK.pdf
new file mode 100644
index 0000000..0ab8142
Binary files /dev/null and b/img/NIK.pdf differ
diff --git a/img/Phasenportraits.svg b/img/Phasenportraits.svg
new file mode 100644
index 0000000..f171fd6
--- /dev/null
+++ b/img/Phasenportraits.svg
@@ -0,0 +1,17463 @@
+
+
+
+
diff --git a/img/Resistivitat.pdf b/img/Resistivitat.pdf
new file mode 100644
index 0000000..03c17ff
Binary files /dev/null and b/img/Resistivitat.pdf differ
diff --git a/img/Schaltsymbole nach EN 60617.svg b/img/Schaltsymbole nach EN 60617.svg
new file mode 100644
index 0000000..d1640e8
--- /dev/null
+++ b/img/Schaltsymbole nach EN 60617.svg
@@ -0,0 +1,4222 @@
+
+
+
+
diff --git a/img/Schaltung1Grad.pdf b/img/Schaltung1Grad.pdf
new file mode 100644
index 0000000..5cbb265
Binary files /dev/null and b/img/Schaltung1Grad.pdf differ
diff --git a/img/Zeiger.pdf b/img/Zeiger.pdf
new file mode 100644
index 0000000..71152a9
Binary files /dev/null and b/img/Zeiger.pdf differ
diff --git a/img/astablemultivib.pdf b/img/astablemultivib.pdf
new file mode 100644
index 0000000..314ba9c
Binary files /dev/null and b/img/astablemultivib.pdf differ
diff --git a/img/bistablemultivib.pdf b/img/bistablemultivib.pdf
new file mode 100644
index 0000000..c5be02b
Binary files /dev/null and b/img/bistablemultivib.pdf differ
diff --git a/img/bodesquare.pdf b/img/bodesquare.pdf
new file mode 100644
index 0000000..a62bdde
Binary files /dev/null and b/img/bodesquare.pdf differ
diff --git a/img/capacitor.pdf b/img/capacitor.pdf
new file mode 100644
index 0000000..5872bc3
Binary files /dev/null and b/img/capacitor.pdf differ
diff --git a/img/char/PP_Sadle.pdf b/img/char/PP_Sadle.pdf
new file mode 100644
index 0000000..77c5e35
Binary files /dev/null and b/img/char/PP_Sadle.pdf differ
diff --git a/img/char/PP_Whirl.pdf b/img/char/PP_Whirl.pdf
new file mode 100644
index 0000000..4fb0e62
Binary files /dev/null and b/img/char/PP_Whirl.pdf differ
diff --git a/img/char/PP_stableFocus.pdf b/img/char/PP_stableFocus.pdf
new file mode 100644
index 0000000..5a9903c
Binary files /dev/null and b/img/char/PP_stableFocus.pdf differ
diff --git a/img/char/PP_stableLine.pdf b/img/char/PP_stableLine.pdf
new file mode 100644
index 0000000..184d14f
Binary files /dev/null and b/img/char/PP_stableLine.pdf differ
diff --git a/img/char/PP_stableNode.pdf b/img/char/PP_stableNode.pdf
new file mode 100644
index 0000000..aa9bf94
Binary files /dev/null and b/img/char/PP_stableNode.pdf differ
diff --git a/img/char/PP_stableStarNode.pdf b/img/char/PP_stableStarNode.pdf
new file mode 100644
index 0000000..d24194b
Binary files /dev/null and b/img/char/PP_stableStarNode.pdf differ
diff --git a/img/char/PP_stableWhirlNode.pdf b/img/char/PP_stableWhirlNode.pdf
new file mode 100644
index 0000000..0ede9d9
Binary files /dev/null and b/img/char/PP_stableWhirlNode.pdf differ
diff --git a/img/char/PP_stableZero.pdf b/img/char/PP_stableZero.pdf
new file mode 100644
index 0000000..2a2a1ed
Binary files /dev/null and b/img/char/PP_stableZero.pdf differ
diff --git a/img/char/PP_unstableFocus.pdf b/img/char/PP_unstableFocus.pdf
new file mode 100644
index 0000000..ffe5da2
Binary files /dev/null and b/img/char/PP_unstableFocus.pdf differ
diff --git a/img/char/PP_unstableLine.pdf b/img/char/PP_unstableLine.pdf
new file mode 100644
index 0000000..4aa3f56
Binary files /dev/null and b/img/char/PP_unstableLine.pdf differ
diff --git a/img/char/PP_unstableLine2.pdf b/img/char/PP_unstableLine2.pdf
new file mode 100644
index 0000000..4d88d25
Binary files /dev/null and b/img/char/PP_unstableLine2.pdf differ
diff --git a/img/char/PP_unstableNode.pdf b/img/char/PP_unstableNode.pdf
new file mode 100644
index 0000000..7b49bb1
Binary files /dev/null and b/img/char/PP_unstableNode.pdf differ
diff --git a/img/char/PP_unstableStarNode.pdf b/img/char/PP_unstableStarNode.pdf
new file mode 100644
index 0000000..090d57f
Binary files /dev/null and b/img/char/PP_unstableStarNode.pdf differ
diff --git a/img/char/PP_unstableWhirlNode.pdf b/img/char/PP_unstableWhirlNode.pdf
new file mode 100644
index 0000000..c31b6f0
Binary files /dev/null and b/img/char/PP_unstableWhirlNode.pdf differ
diff --git a/img/char/PP_unstableZero.pdf b/img/char/PP_unstableZero.pdf
new file mode 100644
index 0000000..a14480a
Binary files /dev/null and b/img/char/PP_unstableZero.pdf differ
diff --git a/img/char/PP_unstableZero2.pdf b/img/char/PP_unstableZero2.pdf
new file mode 100644
index 0000000..d4c1fb0
Binary files /dev/null and b/img/char/PP_unstableZero2.pdf differ
diff --git a/img/char/capsin.pdf b/img/char/capsin.pdf
new file mode 100644
index 0000000..75e3448
Binary files /dev/null and b/img/char/capsin.pdf differ
diff --git a/img/char/char_NIK.pdf b/img/char/char_NIK.pdf
new file mode 100644
index 0000000..a3a07e1
Binary files /dev/null and b/img/char/char_NIK.pdf differ
diff --git a/img/char/char_Schaltung1Grad.pdf b/img/char/char_Schaltung1Grad.pdf
new file mode 100644
index 0000000..891c038
Binary files /dev/null and b/img/char/char_Schaltung1Grad.pdf differ
diff --git a/img/char/char_astablemultivib.pdf b/img/char/char_astablemultivib.pdf
new file mode 100644
index 0000000..c46da7a
Binary files /dev/null and b/img/char/char_astablemultivib.pdf differ
diff --git a/img/char/char_bistablemultivib.pdf b/img/char/char_bistablemultivib.pdf
new file mode 100644
index 0000000..f756c0f
Binary files /dev/null and b/img/char/char_bistablemultivib.pdf differ
diff --git a/img/char/char_diode_ideal.pdf b/img/char/char_diode_ideal.pdf
new file mode 100644
index 0000000..3431b39
Binary files /dev/null and b/img/char/char_diode_ideal.pdf differ
diff --git a/img/char/char_diode_real.pdf b/img/char/char_diode_real.pdf
new file mode 100644
index 0000000..127e619
Binary files /dev/null and b/img/char/char_diode_real.pdf differ
diff --git a/img/char/char_norator.pdf b/img/char/char_norator.pdf
new file mode 100644
index 0000000..61e9828
Binary files /dev/null and b/img/char/char_norator.pdf differ
diff --git a/img/char/char_nullator.pdf b/img/char/char_nullator.pdf
new file mode 100644
index 0000000..7ef3824
Binary files /dev/null and b/img/char/char_nullator.pdf differ
diff --git a/img/char/char_resistor.pdf b/img/char/char_resistor.pdf
new file mode 100644
index 0000000..c410ed7
Binary files /dev/null and b/img/char/char_resistor.pdf differ
diff --git a/img/char/opencircuit.pdf b/img/char/opencircuit.pdf
new file mode 100644
index 0000000..af45bbc
Binary files /dev/null and b/img/char/opencircuit.pdf differ
diff --git a/img/char/shortcircuit.pdf b/img/char/shortcircuit.pdf
new file mode 100644
index 0000000..0e027e7
Binary files /dev/null and b/img/char/shortcircuit.pdf differ
diff --git a/img/differenzierer.pdf b/img/differenzierer.pdf
new file mode 100644
index 0000000..60362ad
Binary files /dev/null and b/img/differenzierer.pdf differ
diff --git a/img/diode_ideal.pdf b/img/diode_ideal.pdf
new file mode 100644
index 0000000..5a307d5
Binary files /dev/null and b/img/diode_ideal.pdf differ
diff --git a/img/diode_real.pdf b/img/diode_real.pdf
new file mode 100644
index 0000000..4036ea7
Binary files /dev/null and b/img/diode_real.pdf differ
diff --git a/img/exponenzierer.pdf b/img/exponenzierer.pdf
new file mode 100644
index 0000000..912f76d
Binary files /dev/null and b/img/exponenzierer.pdf differ
diff --git a/img/gate_and.pdf b/img/gate_and.pdf
new file mode 100644
index 0000000..7a2cebd
Binary files /dev/null and b/img/gate_and.pdf differ
diff --git a/img/gate_not.pdf b/img/gate_not.pdf
new file mode 100644
index 0000000..6512528
Binary files /dev/null and b/img/gate_not.pdf differ
diff --git a/img/gate_or.pdf b/img/gate_or.pdf
new file mode 100644
index 0000000..f5cb9df
Binary files /dev/null and b/img/gate_or.pdf differ
diff --git a/img/gate_xor.pdf b/img/gate_xor.pdf
new file mode 100644
index 0000000..ac43e49
Binary files /dev/null and b/img/gate_xor.pdf differ
diff --git a/img/hfunk.pdf b/img/hfunk.pdf
new file mode 100644
index 0000000..5b2712e
Binary files /dev/null and b/img/hfunk.pdf differ
diff --git a/img/integrierer.pdf b/img/integrierer.pdf
new file mode 100644
index 0000000..a2bcc1e
Binary files /dev/null and b/img/integrierer.pdf differ
diff --git a/img/invamp.pdf b/img/invamp.pdf
new file mode 100644
index 0000000..e50a61f
Binary files /dev/null and b/img/invamp.pdf differ
diff --git a/img/logarithmierer.pdf b/img/logarithmierer.pdf
new file mode 100644
index 0000000..748e1e9
Binary files /dev/null and b/img/logarithmierer.pdf differ
diff --git a/img/norator.pdf b/img/norator.pdf
new file mode 100644
index 0000000..b86aebb
Binary files /dev/null and b/img/norator.pdf differ
diff --git a/img/notinvamp.pdf b/img/notinvamp.pdf
new file mode 100644
index 0000000..5a79a68
Binary files /dev/null and b/img/notinvamp.pdf differ
diff --git a/img/nullator.pdf b/img/nullator.pdf
new file mode 100644
index 0000000..acc75c9
Binary files /dev/null and b/img/nullator.pdf differ
diff --git a/img/opamp_ideal.pdf b/img/opamp_ideal.pdf
new file mode 100644
index 0000000..5766c43
Binary files /dev/null and b/img/opamp_ideal.pdf differ
diff --git a/img/opamp_real.pdf b/img/opamp_real.pdf
new file mode 100644
index 0000000..90f5ff4
Binary files /dev/null and b/img/opamp_real.pdf differ
diff --git a/img/opencircuit.pdf b/img/opencircuit.pdf
new file mode 100644
index 0000000..990a368
Binary files /dev/null and b/img/opencircuit.pdf differ
diff --git a/img/pfaddauer.pdf b/img/pfaddauer.pdf
new file mode 100644
index 0000000..85c444d
Binary files /dev/null and b/img/pfaddauer.pdf differ
diff --git a/img/resistor.pdf b/img/resistor.pdf
new file mode 100644
index 0000000..40f88d4
Binary files /dev/null and b/img/resistor.pdf differ
diff --git a/img/shortcircuit.pdf b/img/shortcircuit.pdf
new file mode 100644
index 0000000..185231c
Binary files /dev/null and b/img/shortcircuit.pdf differ
diff --git a/img/source_curr.pdf b/img/source_curr.pdf
new file mode 100644
index 0000000..c579ab2
Binary files /dev/null and b/img/source_curr.pdf differ
diff --git a/img/source_volt.pdf b/img/source_volt.pdf
new file mode 100644
index 0000000..43c9742
Binary files /dev/null and b/img/source_volt.pdf differ
diff --git a/img/techdraw.svg b/img/techdraw.svg
new file mode 100644
index 0000000..1919f84
--- /dev/null
+++ b/img/techdraw.svg
@@ -0,0 +1,8744 @@
+
+
+
+
diff --git a/img/transistor_npn.pdf b/img/transistor_npn.pdf
new file mode 100644
index 0000000..a0d08af
Binary files /dev/null and b/img/transistor_npn.pdf differ
diff --git a/img/transistor_pnp.pdf b/img/transistor_pnp.pdf
new file mode 100644
index 0000000..d6f99b7
Binary files /dev/null and b/img/transistor_pnp.pdf differ
diff --git a/img/voltagefollower.pdf b/img/voltagefollower.pdf
new file mode 100644
index 0000000..e5cd993
Binary files /dev/null and b/img/voltagefollower.pdf differ
diff --git a/packages/.DS_Store b/packages/.DS_Store
new file mode 100644
index 0000000..d3421e5
Binary files /dev/null and b/packages/.DS_Store differ
diff --git a/packages/extern/accents.sty b/packages/extern/accents.sty
new file mode 100644
index 0000000..d44b535
--- /dev/null
+++ b/packages/extern/accents.sty
@@ -0,0 +1,281 @@
+% +--------------------------------------------------+
+% | Typeset accents.tex to get the documentation. |
+% +--------------------------------------------------+
+%
+%% Copyright (C) 1998, 1999, 2000, 2006 Javier Bezos
+%% All Rights Reserved
+%% http://www.tex-tipografia.com
+%%
+%% 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 2003/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Javier Bezos.
+%%
+%% This work consists of the files accents.tex and accents.sty.
+%
+% Changes
+% ~~~~~~~
+%
+% 2006-05-12. TeX converts to ord any symbol with a math accent.
+% Accents now emulates this behaviour with braces around the
+% nucleous; otherwise, the original category is preserved and
+% the accents could look misaligned. (Reported by Viet-TrungLuu.)
+%
+% Release
+% ~~~~~~~
+
+\ProvidesPackage{accents}[2006/05/12 v1.3 Math Accent Tools]
+
+\let\cc@palette\mathpalette
+
+\DeclareOption{nonscript}
+ {\renewcommand\cc@palette[2]{#1\textstyle{#2}}}
+
+\DeclareOption{single}
+ {\renewcommand\cc@accent[1]{\mathaccent#1}}
+
+\newdimen\cc@skew
+\newdimen\cc@wd
+
+\newcount\cc@code
+\newcount\cc@group
+\newcount\cc@skewchar
+
+\newif\ifcc@more
+
+% Code for real accents
+% ~~~~~~~~~~~~~~~~~~~~~
+
+\def\cc@accent#1#2{%
+ \begingroup
+ \cc@code=#1\relax
+ \let\math@bgroup\@empty
+ \def\math@egroup##1{\cc@setchar##1}%
+ \cc@palette\cc@@accent{#2}%
+ {\cc@nuc}%
+ \endgroup}
+
+\def\cc@iaccent#1#2{%
+ \cc@fetch{#2}%
+ \mathaccent#1{%
+ \ifcc@more#2\else
+ \cc@phant{#2}%
+ \gdef\cc@nuc{#2}%
+ \fi
+ \kern\cc@skew}%
+ \kern-\cc@skew}%
+
+\def\cc@@accent#1#2{%
+ \let\cc@style=#1%
+ \cc@fetch{#2}%
+ \mathaccent\cc@code{%
+ \ifcc@more#2\else
+ \cc@phant{#2}%
+ \gdef\cc@nuc{#2}%
+ \fi
+ \kern\cc@skew}%
+ \kern-\cc@skew
+ \kern\cc@wd}%
+
+% The accents are redefined:
+
+\begingroup
+
+\def\mathaccentV#1{\string"\noexpand\accentclass@}%
+\let\protect\@empty
+\let\mathaccent\@empty
+
+\def\cc@set#1{%
+ \xdef#1{\noexpand\protect\noexpand\cc@accent{#1}}}
+
+\cc@set\grave %{\protect\cc@accent{"7012\relax}}
+\cc@set\acute %{\protect\cc@accent{"7013\relax}}
+\cc@set\check %{\protect\cc@accent{"7014\relax}}
+\cc@set\breve %{\protect\cc@accent{"7015\relax}}
+\cc@set\bar %{\protect\cc@accent{"7016\relax}}
+\cc@set\hat %{\protect\cc@accent{"705E\relax}}
+\cc@set\dot %{\protect\cc@accent{"705F\relax}}
+\cc@set\tilde %{\protect\cc@accent{"707E\relax}}
+\cc@set\ddot %{\protect\cc@accent{"707F\relax}}
+\cc@set\vec %{\protect\cc@accent{"017E\relax}}
+\gdef\ring{\protect\cc@accent{"7017\relax}}
+
+\@ifundefined{mathring}{}{\cc@set\mathring}
+
+\endgroup
+
+% Faked accents
+% ~~~~~~~~~~~~~
+
+\newcommand\accentset[2]{%
+ \begingroup
+ \def\cc@a{#1}%
+ \let\math@bgroup\@empty
+ \def\math@egroup##1{\cc@setchar##1}%
+ \cc@palette\cc@accentset{#2}%
+ {\cc@nuc}%
+ \endgroup}
+
+\def\cc@accentset#1#2{%
+ \let\cc@style#1%
+ \cc@fetch{#2}%
+ \sbox\z@{$\m@th\cc@style\mathgroup\cc@group
+ \ifcc@more#2\else\cc@phant{#2}%
+ \gdef\cc@nuc{#2}\fi$}%
+ \cc@align{%
+ \hidewidth\kern\cc@skew
+ $\m@th\scriptscriptstyle\mathgroup\cc@group\cc@a$%
+ \hidewidth\cr{\box\z@}}%
+ \kern\cc@wd}%
+
+\def\cc@iaccentset#1#2{%
+ \cc@fetch{#2}%
+ \sbox\z@{$\m@th\cc@style\ifcc@more#2\else\cc@phant{#2}%
+ \gdef\cc@nuc{#2}\fi$}%
+ \cc@align{%
+ \hidewidth\kern\cc@skew
+ $\m@th\scriptscriptstyle#1$\hidewidth\cr
+ {\box\z@}}}%
+
+\def\cc@align#1{%
+ \vbox{%
+ \baselineskip\z@skip
+ \lineskip.25ex
+ \ialign{##\crcr#1\crcr}}}
+
+% Shared by real and faked accents
+% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+\def\cc@phant#1{%
+ \v@true\h@true
+ \finph@nt}% with \box0 from \cc@fetch
+
+\def\cc@setchar{%
+ \cc@skewchar\ifnum\mathgroup=\m@ne
+ \skewchar\textfont\@ne
+ \else\ifnum\skewchar\textfont\mathgroup=\m@ne
+ \skewchar\textfont\@ne
+ \else\skewchar\textfont\mathgroup\fi\fi
+ \advance\cc@skewchar"7100 }
+
+\def\cc@fetch#1{%
+ \cc@group=\the\mathgroup
+ \let\cc@accent\@gobble
+ \let\accentset\@gobble
+ \sbox\z@{$\m@th\mathgroup\cc@group\cc@setchar
+ \cc@style#1{}\mathchar\cc@skewchar$}%
+ \sbox\@ne{$\m@th\mathgroup\cc@group\cc@setchar
+ \cc@style#1\mathchar\cc@skewchar$}%
+ \cc@morefalse
+ \def\cc@accent##1{\global\cc@moretrue}%
+ \def\accentset##1{\global\cc@moretrue}%
+ \global\cc@skew2\wd\@ne
+ \global\advance\cc@skew-2\wd\z@
+ \sbox\z@{$\m@th\mathgroup\cc@group\cc@style#1$}%
+ \global\cc@wd-\wd\z@
+ \let\cc@accent\cc@iaccent
+ \let\accentset\cc@iaccentset}
+
+% Two useful faked accents
+% ~~~~~~~~~~~~~~~~~~~~~~~~
+
+\def\dddot{\accentset{{\cc@style.\mkern-1.7mu\textstyle.\mkern-1.7mu.}}}
+\def\ddddot{\accentset{{\cc@style.\mkern-2.1mu.\mkern-2.1mu.\mkern-2.1mu.}}}
+
+% Underaccents
+% ~~~~~~~~~~~~
+
+\newcommand\underaccent[2]{%
+ \begingroup
+ \def\cc@a{#2}% Stores the nucleous...
+ \cc@palette\cc@underaccent{#1}% ...and the accent is passed
+ #2%
+ \endgroup}%
+
+\def\cc@underaccent#1#2{%
+ \let\cc@style#1%
+ \expandafter\in@\expandafter\cc@accent\expandafter{#2}%
+ \ifin@
+ \expandafter\cc@uaccent#2\@@%
+ \else
+ \cc@uaccentset{#2}%
+ \fi}
+
+\def\cc@uaccent#1#2#3\@@{% #1 and #2 gobbles \protect\cc@accent
+ \cc@under{%
+ \vbox to.2ex{%
+ \hbox{%
+ $\m@th
+ \cc@style
+ \mathgroup\cc@group
+ \cc@shift
+ \mathchar#3$}%
+ \vss}}}
+
+\def\cc@uaccentset#1{%
+ \cc@under{%
+ \hbox{%
+ $\m@th
+ \cc@style
+ \mathgroup\cc@group
+ \cc@shift
+ \scriptscriptstyle#1$}}}
+
+\def\cc@under#1{%
+ \cc@group\the\mathgroup
+ \sbox\z@{$\m@th\cc@style\mathgroup\cc@group\cc@a$}%
+ \sbox\tw@{$\scriptspace\z@\m@th\cc@style\mathgroup\cc@group\cc@a_{}$}%
+ \rlap{%
+ \oalign{%
+ \vrule \@depth\dp\z@ \@width\z@
+ \kern\wd\tw@
+ \crcr
+ \hidewidth#1\hidewidth}}}
+
+\def\cc@shift{%
+ \dimen@=-.000008ex
+ \multiply\dimen@\ifnum\mathgroup=\m@ne
+ \fontdimen\@ne\textfont\@ne
+ \else
+ \fontdimen\@ne\textfont\cc@group\fi
+ \kern\dimen@}
+
+% And \undertilde
+% ~~~~~~~~~~~~~~~
+
+\newcommand\undertilde{\cc@palette\cc@undertilde}
+
+\def\cc@undertilde#1#2{%
+ \cc@group\the\mathgroup
+ \sbox\z@{$\m@th\mathgroup\cc@group#1#2$}%
+ \oalign{%
+ $\m@th\mathgroup\cc@group#1#2$%
+ \crcr
+ \hidewidth
+ \vbox to.5ex{%
+ \hbox{%
+ $\hss
+ #1%
+ \mathgroup\cc@group
+ \widetilde{\hbox to\wd\z@{\hss}}%
+ \hss$}%
+ \vss}%
+ \hidewidth}}
+
+% The following command is used by \DeclareMathAccent
+% and it's the only part requiring modification
+
+\def\set@mathaccent#1#2#3#4{%
+ \xdef#2{\noexpand\protect\noexpand\cc@accent
+ {"\mathchar@type#3\hexnumber@#1#4\relax}}}
+
+\ProcessOptions
+
+\endinput
\ No newline at end of file
diff --git a/packages/extern/booktabs.sty b/packages/extern/booktabs.sty
new file mode 100644
index 0000000..cf25d78
--- /dev/null
+++ b/packages/extern/booktabs.sty
@@ -0,0 +1,182 @@
+%%
+%% This is file `booktabs.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% booktabs.dtx (with options: `package')
+%%
+%% -----------------------------------------------------------------
+%% Author: Simon Fear
+%% Maintainer: Danie Els (dnjels@sun.ac.za)
+%%
+%% This file is part of the booktabs package for publication
+%% quality tables for LaTeX
+%%
+%% Copyright (C) 1995--2005 Simon Fear
+%%
+%% This program is free software; you can redistribute it and/or
+%% modify it under the terms of the GNU General Public License as
+%% published by the Free Software Foundation; either version 2 of
+%% the License, or (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public
+%% License along with this program; if not, write to the Free
+%% Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+%% MA 02111-1307 USA
+%% -----------------------------------------------------------------
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesPackage{booktabs}
+ [2005/04/14 v1.61803 publication quality tables]
+\newdimen\heavyrulewidth
+\newdimen\lightrulewidth
+\newdimen\cmidrulewidth
+\newdimen\belowrulesep
+\newdimen\belowbottomsep
+\newdimen\aboverulesep
+\newdimen\abovetopsep
+\newdimen\cmidrulesep
+\newdimen\cmidrulekern
+\newdimen\defaultaddspace
+\heavyrulewidth=.08em
+\lightrulewidth=.05em
+\cmidrulewidth=.03em
+\belowrulesep=.65ex
+\belowbottomsep=0pt
+\aboverulesep=.4ex
+\abovetopsep=0pt
+\cmidrulesep=\doublerulesep
+\cmidrulekern=.5em
+\defaultaddspace=.5em
+\newcount\@cmidla
+\newcount\@cmidlb
+\newdimen\@aboverulesep
+\newdimen\@belowrulesep
+\newcount\@thisruleclass
+\newcount\@lastruleclass
+\@lastruleclass=0
+\newdimen\@thisrulewidth
+\def\futurenonspacelet#1{\def\@BTcs{#1}%
+ \afterassignment\@BTfnslone\let\nexttoken= }
+\def\@BTfnslone{\expandafter\futurelet\@BTcs\@BTfnsltwo}
+\def\@BTfnsltwo{\expandafter\ifx\@BTcs\@sptoken\let\next=\@BTfnslthree
+ \else\let\next=\nexttoken\fi \next}
+\def\@BTfnslthree{\afterassignment\@BTfnslone\let\next= }
+\def\toprule{\noalign{\ifnum0=`}\fi
+ \@aboverulesep=\abovetopsep
+ \global\@belowrulesep=\belowrulesep %global cos for use in the next noalign
+ \global\@thisruleclass=\@ne
+ \@ifnextchar[{\@BTrule}{\@BTrule[\heavyrulewidth]}}
+\def\midrule{\noalign{\ifnum0=`}\fi
+ \@aboverulesep=\aboverulesep
+ \global\@belowrulesep=\belowrulesep
+ \global\@thisruleclass=\@ne
+ \@ifnextchar[{\@BTrule}{\@BTrule[\lightrulewidth]}}
+\def\bottomrule{\noalign{\ifnum0=`}\fi
+ \@aboverulesep=\aboverulesep
+ \global\@belowrulesep=\belowbottomsep
+ \global\@thisruleclass=\@ne
+ \@ifnextchar[{\@BTrule}{\@BTrule[\heavyrulewidth]}}
+\def\specialrule#1#2#3{\noalign{\ifnum0=`}\fi
+ \@aboverulesep=#2\global\@belowrulesep=#3\global\@thisruleclass=\tw@
+ \@BTrule[#1]}
+\def\addlinespace{\noalign{\ifnum0=`}\fi
+ \@ifnextchar[{\@addspace}{\@addspace[\defaultaddspace]}}
+\def\@addspace[#1]{\global\@belowrulesep=#1\global\@thisruleclass=\tw@
+ \futurelet\@tempa\@BTendrule}
+\def\@BTrule[#1]{%
+ \global\@thisrulewidth=#1\relax
+ \ifnum\@thisruleclass=\tw@\vskip\@aboverulesep\else
+ \ifnum\@lastruleclass=\z@\vskip\@aboverulesep\else
+ \ifnum\@lastruleclass=\@ne\vskip\doublerulesep\fi\fi\fi
+ \ifx\longtable\undefined
+ \let\@BTswitch\@BTnormal
+ \else\ifx\hline\LT@hline
+ \let\@BTswitch\@BLTrule
+ \else
+ \let\@BTswitch\@BTnormal
+ \fi\fi
+ \@BTswitch}
+\AtBeginDocument{%
+ \providecommand*\CT@arc@{}}%% colortbl support
+\def\@BTnormal{%
+ {\CT@arc@\hrule\@height\@thisrulewidth}%
+ \futurenonspacelet\@tempa\@BTendrule}
+\def\@BLTrule{\@ifnextchar({\@@BLTrule}{\@@BLTrule()}}
+\def\@@BLTrule(#1){\@setrulekerning{#1}%
+\global\@cmidlb\LT@cols
+\ifnum0=`{\fi}%
+\@cmidruleb
+\noalign{\ifnum0=`}\fi
+\futurenonspacelet\@tempa\@BTendrule}
+\def\@BTendrule{\ifx\@tempa\toprule\global\@lastruleclass=\@thisruleclass
+ \else\ifx\@tempa\midrule\global\@lastruleclass=\@thisruleclass
+ \else\ifx\@tempa\bottomrule\global\@lastruleclass=\@thisruleclass
+ \else\ifx\@tempa\cmidrule\global\@lastruleclass=\@thisruleclass
+ \else\ifx\@tempa\specialrule\global\@lastruleclass=\@thisruleclass
+ \else\ifx\@tempa\addlinespace\global\@lastruleclass=\@thisruleclass
+ \else\global\@lastruleclass=\z@\fi\fi\fi\fi\fi\fi
+ \ifnum\@lastruleclass=\@ne\relax\else\vskip\@belowrulesep\fi
+ \ifnum0=`{\fi}}
+\def\@setrulekerning#1{%
+ \global\let\cmrkern@l\z@
+ \global\let\cmrkern@r\z@
+ \@tfor\@tempa :=#1\do
+ {\def\@tempb{r}%
+ \ifx\@tempa\@tempb
+ \global\let\cmrkern@r\cmidrulekern
+ \def\cmrsideswitch{\cmrkern@r}%
+ \else
+ \def\@tempb{l}%
+ \ifx\@tempa\@tempb
+ \global\let\cmrkern@l\cmidrulekern
+ \def\cmrsideswitch{\cmrkern@l}%
+ \else
+ \global\expandafter\let\cmrsideswitch\@tempa
+ \fi
+ \fi}}
+\def\cmidrule{\noalign{\ifnum0=`}\fi
+ \@ifnextchar[{\@cmidrule}{\@cmidrule[\cmidrulewidth]}}
+\def\@cmidrule[#1]{\@ifnextchar({\@@cmidrule[#1]}{\@@cmidrule[#1]()}}
+\def\@@cmidrule[#1](#2)#3{\@@@cmidrule[#3]{#1}{#2}}
+\def\@@@cmidrule[#1-#2]#3#4{\global\@cmidla#1\relax
+ \global\advance\@cmidla\m@ne
+ \ifnum\@cmidla>0\global\let\@gtempa\@cmidrulea\else
+ \global\let\@gtempa\@cmidruleb\fi
+ \global\@cmidlb#2\relax
+ \global\advance\@cmidlb-\@cmidla
+ \global\@thisrulewidth=#3
+ \@setrulekerning{#4}
+ \ifnum\@lastruleclass=\z@\vskip \aboverulesep\fi
+ \ifnum0=`{\fi}\@gtempa
+ \noalign{\ifnum0=`}\fi\futurenonspacelet\@tempa\@xcmidrule}
+\def\@xcmidrule{%
+ \ifx\@tempa\cmidrule
+ \vskip-\@thisrulewidth
+ \global\@lastruleclass=\@ne
+ \else \ifx\@tempa\morecmidrules
+ \vskip \cmidrulesep
+ \global\@lastruleclass=\@ne\else
+ \vskip \belowrulesep
+ \global\@lastruleclass=\z@
+ \fi\fi
+ \ifnum0=`{\fi}}
+\def\@cmidrulea{%
+ \multispan\@cmidla&\multispan\@cmidlb
+ \unskip\hskip\cmrkern@l%
+ {\CT@arc@\leaders\hrule \@height\@thisrulewidth\hfill}%
+ \hskip\cmrkern@r\cr}%
+\def\@cmidruleb{%
+ \multispan\@cmidlb
+ \unskip\hskip \cmrkern@l%
+ {\CT@arc@\leaders\hrule \@height\@thisrulewidth\hfill}%
+ \hskip\cmrkern@r\cr}%
+\def\morecmidrules{\noalign{\relax}}
+\endinput
+%%
+%% End of file `booktabs.sty'.
diff --git a/packages/extern/esint.sty b/packages/extern/esint.sty
new file mode 100644
index 0000000..d50f35b
--- /dev/null
+++ b/packages/extern/esint.sty
@@ -0,0 +1,69 @@
+%%
+%% This is file `esint.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% esint.dtx (with options: `package')
+%%
+%% esint package to typeset integrals signs.
+%%
+%% See also http://perso.wanadoo.fr/eddie.saudrais (in french)
+%%
+%% Run LaTeX on esint.ins to generate files.
+%%
+%% Install the files:
+%%
+%% -- esint.sty and uesint.fd on TEXINPUT;
+%% -- esint10.mf, mathint.mf and bigint.mf on MFINPUT;
+%% -- generate tfm files running METAFONT on esint10.mf files, and put
+%% the *.tfm file on the right location.
+%%
+%% Run LaTeX on esint.dtx to generate
+%% documentation.
+%%
+
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{esint}
+\def\re@DeclareMathSymbol#1#2#3#4{%
+ \let#1=\undefined
+ \DeclareMathSymbol{#1}{#2}{#3}{#4}}
+\DeclareSymbolFont{largesymbolsA}{U}{esint}{m}{n}
+\re@DeclareMathSymbol{\intop}{\mathop}{largesymbolsA}{'001}
+ \def\int{\intop\nolimits}
+\re@DeclareMathSymbol{\iintop}{\mathop}{largesymbolsA}{'003}
+ \def\iint{\iintop\nolimits}
+\re@DeclareMathSymbol{\iiintop}{\mathop}{largesymbolsA}{'005}
+ \def\iiint{\iiintop\nolimits}
+\re@DeclareMathSymbol{\iiiintop}{\mathop}{largesymbolsA}{'007}
+ \def\iiiint{\iiiintop\nolimits}
+\re@DeclareMathSymbol{\dotsintop}{\mathop}{largesymbolsA}{'011}
+ \def\dotsint{\dotsintop\nolimits}
+\re@DeclareMathSymbol{\ointop}{\mathop}{largesymbolsA}{'013}
+ \def\oint{\ointop\nolimits}
+\re@DeclareMathSymbol{\oiintop}{\mathop}{largesymbolsA}{'015}
+ \def\oiint{\oiintop\nolimits}
+\re@DeclareMathSymbol{\sqintop}{\mathop}{largesymbolsA}{'017}
+ \def\sqint{\sqintop\nolimits}
+\re@DeclareMathSymbol{\sqiintop}{\mathop}{largesymbolsA}{'021}
+ \def\sqiint{\sqiintop\nolimits}
+\re@DeclareMathSymbol{\ointctrclockwiseop}{\mathop}{largesymbolsA}{'027}
+ \def\ointctrclockwise{\ointctrclockwiseop\nolimits}
+\re@DeclareMathSymbol{\ointclockwiseop}{\mathop}{largesymbolsA}{'031}
+ \def\ointclockwise{\ointclockwiseop\nolimits}
+\re@DeclareMathSymbol{\varointclockwiseop}{\mathop}{largesymbolsA}{'033}
+ \def\varointclockwise{\varointclockwiseop\nolimits}
+\re@DeclareMathSymbol{\varointctrclockwiseop}{\mathop}{largesymbolsA}{'035}
+ \def\varointctrclockwise{\varointctrclockwiseop\nolimits}
+\re@DeclareMathSymbol{\fintop}{\mathop}{largesymbolsA}{'037}
+ \def\fint{\fintop\nolimits}
+\re@DeclareMathSymbol{\varoiintop}{\mathop}{largesymbolsA}{'041}
+ \def\varoiint{\varoiintop\nolimits}
+\re@DeclareMathSymbol{\landupintop}{\mathop}{largesymbolsA}{'043}
+ \def\landupint{\landupintop\nolimits}
+\re@DeclareMathSymbol{\landdownintop}{\mathop}{largesymbolsA}{'045}
+ \def\landdownint{\landdownintop\nolimits}
+\endinput
+%%
+%% End of file `esint.sty'.
diff --git a/packages/extern/esint10.mf b/packages/extern/esint10.mf
new file mode 100644
index 0000000..bb97599
--- /dev/null
+++ b/packages/extern/esint10.mf
@@ -0,0 +1,115 @@
+%%
+%% This is file `esint10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% esint.dtx (with options: `mffile')
+%%
+%% esint package to typeset integrals signs.
+%%
+%% See also http://perso.wanadoo.fr/eddie.saudrais (in french)
+%%
+%% Run LaTeX on esint.ins to generate files.
+%%
+%% Install the files:
+%%
+%% -- esint.sty and uesint.fd on TEXINPUT;
+%% -- esint10.mf, mathint.mf and bigint.mf on MFINPUT;
+%% -- generate tfm files running METAFONT on esint10.mf files, and put
+%% the *.tfm file on the right location.
+%%
+%% Run LaTeX on esint.dtx to generate
+%% documentation.
+%%
+
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ESINT"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+tdec#:=6u#; % space between integrals signs (textstyle)
+ddec#:=6.5u#; % space between integrals signs (displaystyle)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+fontdimen 8: % parameters $\xi_8$ through $\xi_{13}$ will now be listed
+ rule_thickness#, % default\_rule\_thickness
+ 40/36pt#, % big\_op\_spacing1
+ 60/36pt#, % big\_op\_spacing2
+ 72/36pt#, % big\_op\_spacing3
+ 216/36pt#, % big\_op\_spacing4
+ 36/36pt#; % big\_op\_spacing5
+
+generate mathint % switch to the driver file
+\endinput
+%%
+%% End of file `esint10.mf'.
diff --git a/packages/extern/iosscientific.sty b/packages/extern/iosscientific.sty
new file mode 100644
index 0000000..8c49eee
--- /dev/null
+++ b/packages/extern/iosscientific.sty
@@ -0,0 +1,222 @@
+% Wissenschaftliche Macros für LaTeX4EI Stand 24.01.13
+% Erstellt von Emanuel Regnath, Martin Zellner
+%
+% Lizenz: Dieses package darf nur für Dokumente für LaTeX4EI verwendet werden!
+% Bei anderem Verwendungszweck bitte Erlaubnis einholen: info@latex4ei.de
+%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{scientific}[2013/01/12 Scientific Macros for LaTeX4EI]
+
+
+% Benötigte Pakete laden
+\RequirePackage{xifthen} % If Then Else Anweisungen
+\RequirePackage{amsmath} % erlaubt mathematische Formeln
+\RequirePackage{accents} % Für eigene Ableitungspunkte benötigt
+\RequirePackage{xcolor} % Farbiger Text möglich
+
+% Zusätzliche Pakete
+\RequirePackage{amssymb} % Verschiedene Symbole
+\RequirePackage{esint} % erweiterte Integralsymbole
+\RequirePackage[version=3]{mhchem} % chemistry \ce
+\RequirePackage[strict]{siunitx} % SI gerechte Darstellung von Zahlen
+
+
+
+% .:: Eigenschaften setzen
+% ======================================================================
+
+% Einrückung bei itemize verkleinern:
+\setlength{\itemindent}{0em}
+\setlength\leftmargini{1.8em}
+
+
+% .:: Externe Befehle
+% ======================================================================
+
+% \utilde: aus Package undertilde.sty
+\newlength\knuthian@fdfive
+\def\mathpal@save#1{\let\was@math@style=#1\relax}
+\def\utilde#1{\mathpalette\mathpal@save
+ {\setbox124=\hbox{$\was@math@style#1$}%
+\setbox125=\hbox{$\fam=3\global\knuthian@fdfive=\fontdimen5\font$}
+\setbox125=\hbox{$\widetilde{\vrule height 0pt depth 0pt width \wd124}$}%
+ \baselineskip=1pt\relax
+ \vtop{\copy124\copy125\vskip -\knuthian@fdfive}}}
+
+% Laplace Befehl aus trfsigns.sty
+\newcommand{\laplace}{\mbox{\setlength{\unitlength}{0.1em}
+ \begin{picture}(25,10)
+ \put(3,3){\circle{4}}
+ \put(5,3){\line(1,0){13}}
+ \put(19,3){\circle*{4}}
+ \end{picture}}}
+% Fourier Befehl von Laplace übernehmen
+\newcommand{\fourier}{\laplace}
+
+
+
+% .:: Eigene Befehle und Abkürzungen
+% ======================================================================
+
+% Bestehende Befehle sichern
+\let\oldvec = \vec
+\let\olddot = \dot
+\let\oldfrac = \frac
+\let\oldlaplace = \laplace
+
+% Eigene Bruchdarstellung:
+\renewcommand{\frac}[3][]{%
+ \ifthenelse{\isempty{#1}}%
+ {\oldfrac{#2}{#3}}
+ {\genfrac{}{}{}{}{\raisebox{#1}[\height+0.1em][\depth]{$\scriptstyle #2$}}{\raisebox{-#1}[\height][\depth + 0.2em]{$\scriptstyle #3$}}}
+}
+
+
+% Eigene Befehle
+\newcommand{\ul}[1]{\ensuremath{\underline{#1}}} % Untersteichen
+\newcommand{\ol}[1]{\ensuremath{\overline{#1}}} % Überstreichen
+\newcommand{\bs}[1]{\ensuremath{\boldsymbol{#1}}} % Fett und kursiv im mathmode
+\newcommand{\iset}[2]{\ensuremath{\bigl\{ \bigl. #1 \, \bigr| \, #2 \bigr\}}} % intensional set
+\newcommand{\eset}[1]{\ensuremath{\bigl\{#1\bigr\}}} % extensional set
+\newcommand{\norm}[1]{\ensuremath{\left\|#1\right\|}} % Norm
+\newcommand{\mat}[1]{\ensuremath{\begin{bmatrix} #1 \end{bmatrix}}} % Matrix
+\newcommand{\ma}[1]{\ensuremath{\utilde{\boldsymbol {#1}}}} % Matrixsymbol
+\newcommand{\vect}[1]{\ensuremath{\begin{pmatrix} #1 \end{pmatrix}}} % Vektor
+\newcommand{\mvect}[1]{\ensuremath{\left.\begin{matrix} #1 \end{matrix}\right]}}% Matrixvektor
+\newcommand{\tensor}[1]{\ensuremath{\underline{\underline{\boldsymbol #1}}}} % Tensor
+\newcommand{\gk}[1]{\ensuremath{\left\lfloor#1\right\rfloor}} % Gaußklammer
+\newcommand{\sprod}[2]{\ensuremath{\left\langle #1, #2 \right\rangle }} % Skalarprodukt
+\newcommand{\abs}[1]{\ensuremath{\left\vert#1\right\vert}} % Betrag
+\newcommand{\chem}[1]{\ensuremath{\displaystyle{\mathrm{#1}}}} % chemische Formeln die gut aussehen ;)
+\newcommand{\ir}[1]{\sf #1} % index roman: Indizes aufrecht schreiben
+\newcommand{\interior}[1]{\ensuremath{\overset{{}_\circ}{#1}}} % Das Innere
+\newcommand{\rom}[1]{$\underline{\overline{\textrm{#1}}}$} % Römische Zahlen
+
+
+% Komplexe und Hyperkomplexe Zahlen
+\newcommand{\cx}[1]{\boldsymbol{#1}} % komplexe Zahl
+\newcommand{\cxc}[1]{\ensuremath{\boldsymbol #1^*}} % Konjugiert komplexe Zahl
+\newcommand{\hx}[1]{\ensuremath{\mathfrak #1}} % hyperkomplexe Zehl
+\renewcommand{\i}{\ensuremath{\mathrm{i}}} % imaginary unit
+\renewcommand{\j}{\ensuremath{\mathrm{j}}} % imaginary unit
+\renewcommand{\k}{\ensuremath{\mathrm{k}}} % imaginary unit
+
+% Überschreibungen
+\renewcommand{\vec}[1]{\ensuremath{\underline{\boldsymbol {#1}}}} % Vektor fett und unterstrichen
+\renewcommand{\emph}[1]{\textbf{#1}} % Hervorhebungen fett
+\renewcommand*{\dot}[1]{\accentset{\mbox{\textrm{\large\bfseries .}} }{#1}} % Dicker Ableitungspunkt
+\renewcommand*{\ddot}[1]{\accentset{\mbox{\textrm{\large\bfseries .\hspace{-0.25ex}.}}}{#1}} % Dicker Doppelableitungspunkt
+\renewcommand*{\dddot}[1]{\accentset{\mbox{$\overset{\textrm{\large\bfseries .}}{\textrm{\large\bfseries.\hspace{-0.25ex}.}}$}}{#1}}
+
+% Abkürzungen für Symbole
+\newcommand{\Ra}{\ensuremath{\Rightarrow}} % Rightarrow
+\newcommand{\ra}{\ensuremath{\rightarrow}} % rightarrow
+\newcommand{\lra}{\ensuremath{\longrightarrow}} % Longrightarrow
+\newcommand{\bdot}{\ensuremath{\boldsymbol \cdot}} % Dicker Punkt für Skalarprodukt
+\newcommand{\svdots}{\ensuremath{\olddot :}} % small vertical dots
+\newcommand{\shdots}{\ensuremath{\!\cdot \!\cdot\!\cdot\!}} % small horizontal dots
+\newcommand{\diff}{\ensuremath{\ \mathrm d}} % differentielles Delta
+
+\newcommand{\capdot}{\cap\hspace{-0.84em}\cdot\hspace{0.5em}} % Schnittmenge bzw. AND
+\let\cupplus\uplus % Vereinigunsmenge bzw. OR
+
+
+ % Abkürzungen für Mengensymbole
+ \DeclareMathOperator{\N}{\mathbb N} % Natürliche Zahlen
+ \DeclareMathOperator{\R}{\mathbb R} % Reele Zahlen
+ \DeclareMathOperator{\C}{\mathbb C} % Komplexe Zahlen
+ \DeclareMathOperator{\K}{\mathbb K} % Reele oder komplexe Zahlen
+ \DeclareMathOperator{\B}{\mathbb B} % Binäre Zahlen 1,0
+ \def\O{\operatorname{\mathcal O}} % Landau
+ %\def\P{\operatorname{\mathbb P}} % Primzahlen
+ \DeclareMathOperator{\lpo}{\Delta} % Laplace Operator
+
+
+
+% Aufrechtschrift für Funktionen
+\DeclareMathOperator{\grad}{grad} % Gradient
+\def\div{\operatorname{div}} % Divergenz
+\DeclareMathOperator{\rot}{rot} % Rotation
+\DeclareMathOperator{\Sp}{Sp} % Spur
+\DeclareMathOperator{\ggT}{ggT} % ggT
+\DeclareMathOperator{\sgn}{sgn} % Signum
+\DeclareMathOperator{\sinc}{sinc} % Sinus Cardinalis
+\newcommand{\heavi}{\ensuremath{\Theta}} % Heaviside Funktion
+\DeclareMathOperator{\const}{const.} % Konstante
+
+
+
+% Stochastische Befehle:
+\renewcommand{\P}{\textsf{P}} % Wahrscheinlichkeitsmaß
+\DeclareMathOperator{\F}{\mathbb F} % Ereignisalgebra
+\DeclareMathOperator{\X}{\textit{X}} % Zufallsvariable X
+\DeclareMathOperator{\Y}{\textit{Y}} % Zufallsvariable Y
+\DeclareMathOperator{\Z}{\textit{Z}} % Zufallsvariable Z
+\DeclareMathOperator{\E}{\textit{E}} % Erwartungswert
+\newcommand{\ew}[1]{\textit{E} \left[ #1 \right]} % Erwartungswert (mit Parameter)
+\DeclareMathOperator{\Var}{\textit{Var}} % Varianz
+\DeclareMathOperator{\Cov}{\textit{Cov}} % Kovarianz
+
+
+% Eigene Tabellenlinien
+\def\trule{\noalign{\vspace{1pt}\hrule\hrule\vspace{2pt}}} % top rule
+\def\mrule{\noalign{\vspace{1pt}\hrule\vspace{2pt}}} % middle rule
+\def\brule{\noalign{\vspace{2pt}\hrule\hrule\vspace{1pt}}} % bottom rule
+
+
+
+
+% .:: Farbige Elemente
+% ======================================================================
+
+\definecolor{lightblue}{RGB}{235,235,255}
+\definecolor{lightred}{RGB}{255,240,240}
+\definecolor{lightgreen}{RGB}{240,255,240}
+\definecolor{lightyellow}{RGB}{255,255,240}
+\definecolor{lightblue}{RGB}{220, 240, 247}
+\definecolor{darkblue}{RGB}{23,110,138}
+\definecolor{notsodarkblue}{RGB}{119,193,214}
+\definecolor{tablecolor}{RGB}{0,128,0}
+
+% Für die Überschriften und Linien
+\definecolor{lila}{RGB}{128,0,128}
+\definecolor{latex4eiblau}{RGB}{86,124,136}
+\definecolor{latex4eigruen}{RGB}{150,163,110}
+
+% Farbige Boxen
+\newcommand{\topicbox}[2]{
+\fcolorbox{blue}{lightblue}{\color{blue}\parbox{\columnwidth-2\fboxsep}{{\large \textbf{ #1}}\\\hspace*{-\fboxsep}\rule[2pt]{\columnwidth}{0.5pt}\\ \color{black}#2}}}
+
+\newcommand{\emphbox}[1]{{\fboxrule1pt\fcolorbox{red}{lightyellow}{\parbox{\columnwidth-2\fboxsep-2pt}{\centering #1}}}}
+\newcommand{\symbolbox}[1]{{\fboxrule1pt\fcolorbox{orange}{lightyellow}{\parbox{\columnwidth-2\fboxsep-2pt}{#1}}}}
+\newcommand{\tablebox}[1]{{\fboxsep0pt\colorbox{lightgreen}{\parbox{\columnwidth}{#1}}}}
+\newcommand{\sectionbox}[1]{{\fboxsep0.5em\hspace*{-\fboxsep}\hspace*{-1pt}\fcolorbox{gray}{gray!3}{\parbox{\columnwidth}{
+ \titlespacing{\subsection}{0em}{0.2em}{0.2em}
+ \titlespacing{\subsubsection}{0em}{0.2em}{0.2em}
+#1
+}}}}
+\newcommand{\cookbox}[2]{{\fboxsep0pt\colorbox{lightblue}{\parbox{\columnwidth}{
+{\color{darkblue}\hrule\hrule}\vspace{2pt}
+ \begin{center}
+\textbf{#1}
+\end{center}
+\vspace{3pt}{\color{notsodarkblue}\hrule\hrule}
+\vspace{3pt}
+\begin{itemize}
+#2
+\end{itemize}
+\vspace{2pt}{\color{darkblue}\hrule\hrule}
+}}}}
+
+
+% Farbige Tabellenlinien
+\def\ctrule{\noalign{{\color{tablecolor}\hrule\hrule}\vspace{2pt}}} % colored top rule
+\def\cmrule{\noalign{\vspace{1pt}{\color{tablecolor}\hrule}\vspace{2pt}}} % colored middle rule
+\def\cbrule{\noalign{\vspace{2pt}{\color{tablecolor}\hrule\hrule}}} % colored bottom rule
+
+
+
+
+% Ende von /input
+\endinput
+
diff --git a/packages/extern/mhchem.sty b/packages/extern/mhchem.sty
new file mode 100644
index 0000000..831a8cf
--- /dev/null
+++ b/packages/extern/mhchem.sty
@@ -0,0 +1,2104 @@
+%% mhchem.sty
+%% Copyright 2004-2011 M.a-r.t-i.n H.e-n.s-e.l
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License version 1.3c
+% which can be found at
+% http://www.latex-project.org/lppl/lppl-1-3c.txt
+%
+% This work has the LPPL maintenance status "maintained".
+% The Current Maintainer of this work is M.a-r.t-i.n H.e-n.s-e.l.
+%
+% ( In order to fight spam, the maintainer's contact )
+% ( information is "encrypted" with ROT13. )
+% ( If you do not know ROT13 yet and have no tool for )
+% ( decryption, simply do an Internet search for "ROT13". )
+%
+% ,---[ ROT 13 ]---
+% | Gur Pheerag Znvagnvare bs guvf jbex vf Znegva Urafry
+% | jub pna or pbagnpgrq ivn
+% | zupurz@ZnegvaUrafry.qr
+% | be ivn znvy
+% | Znegva Urafry
+% | Cbfgfge. 20
+% | 09232 Unegznaafqbes
+% | Treznal
+% `----------
+%
+% This work consists of the files mhchem.sty, rsphrase.sty,
+% mhchem.pdf and legal.txt.
+%
+%
+\ProvidesPackage{mhchem}[2011/06/03 v3.11 for typesetting chemical formulae]
+\RequirePackage{ifthen}
+\RequirePackage{calc}[1998/07/07]
+\RequirePackage{twoopt}
+\RequirePackage{amsmath}
+\RequirePackage{keyval}
+\RequirePackage{graphics}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%% misc %%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\DeclareMathSymbol{\mhchem@hyphen}{0}{operators}{45}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%% \cee %%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newcommand*{\cee}[1]{%
+ \ifnum 1<\mhchem@option@version%
+ \def\mhchem@ce@out{}%
+ {\mhchem@ce@v#1\mhchem@empty\\\mhchem@END\mhchem@ENDEND}%
+ \ensuremath{%
+ \mhchem@ce@out%
+ }%
+ \else%
+ \PackageWarningNoLine{mhchem}{%
+ The \string\cee{} command of mhchem is only available\MessageBreak
+ when you secify [version=2] or greater}%
+ \fi%
+}%
+
+\def\mhchem@ce@v#1\\#2#3\mhchem@ENDEND{%
+ \ifx\mhchem@END#2%
+ \mhchem@ce@vii#1&\mhchem@END\mhchem@ENDEND%
+ \else%
+ \mhchem@ce@vii#1&\mhchem@END\mhchem@ENDEND%
+ \g@addto@macro\mhchem@ce@out{\\}%
+ \mhchem@ce@v#2#3\mhchem@ENDEND%
+ \fi%
+}
+
+\long\def\mhchem@ce@vii#1#3\mhchem@ENDEND{%
+ \ifx\mhchem@END#2%
+ \g@addto@macro\mhchem@ce@out{\ce@main{#1}}%
+ \else%
+ \g@addto@macro\mhchem@ce@out{\ce@main{#1}}%
+ \g@addto@macro\mhchem@ce@out{&}%
+ \mhchem@ce@vii#2#3\mhchem@ENDEND%
+ \fi%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%% \ce %%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%
+
+\def\mhchem@protect{\protect\noexpand\protect}%
+
+\newcommand\ce[1]{\mhchem@ce@xiii{\mhchem@ce@viii#1 \mhchem@END\mhchem@ENDEND}}%
+%
+%
+\def\mhchem@ce@viii#1 #2\mhchem@ENDEND{%
+ \ifx\mhchem@END#2%
+ \ifx\@empty#1\@empty
+ \else
+ \mhchem@ce@x#1\mhchem@END\mhchem@ENDEND%
+ \fi
+ \else%
+ \mhchem@ce@x#1\mhchem@END\mhchem@ENDEND%
+ \space\mhchem@ce@viii#2\mhchem@ENDEND%
+ \fi
+}
+\def\mhchem@ce@x#1#2\mhchem@ENDEND{%
+ \ifx\@empty#1\@empty%
+ \mhchem@ce@xi{}\mhchem@END\mhchem@ENDEND%
+ \else%\ifx\mhchem@END#1\else
+ \mhchem@ce@xi#1\mhchem@END\mhchem@ENDEND%
+ \fi%\fi%
+ \ifx\mhchem@END#2%
+ \else%
+ \mhchem@ce@x#2\mhchem@ENDEND%
+ \fi%
+}
+\def\mhchem@ce@xi#1#2\mhchem@ENDEND{%
+ \ifx\mhchem@END#2%
+ \ifx\@empty#1\@empty%
+ {}%
+ \else\if\noexpand#1##%
+ \mhchem@protect\tbond%
+ \else%
+ \mhchem@protect#1%
+ \fi\fi%
+ \else%
+ {\mhchem@ce@xii#1#2}%
+ \fi%
+}
+\def\mhchem@ce@xii#1\mhchem@END{\mhchem@ce@viii#1 \mhchem@END\mhchem@ENDEND}%
+\DeclareRobustCommand\mhchem@ce@xiii[1]{%
+ \bgroup%
+ \ifnum 4>\mhchem@option@version%
+ \def\hyphen{\mhchem@hyphen}%
+ \fi%
+ \def\mhchem@protect{\noexpand}%
+ \edef\mhchem@tmp{#1}%
+ %
+ \expandafter\ce@main\expandafter{\mhchem@tmp}%
+ \egroup
+}
+
+
+%%%
+
+\DeclareRobustCommand*{\ce@main}[1]{%
+ \bgroup%
+ \ifnum 1<\mhchem@option@version%
+ \ifmmode\else\def\mhchem@option@alwaystextmode{1}\fi%
+ \fi%
+ \def\bond{}\def\sbond{}\def\dbond{}\def\tbond{}%
+ \ifx\@empty#1\@empty\else%
+ \ifmmode\else\mhchem@option@textFont\fi%
+ \ensuremath{%
+ \mhchem@ce@xx#1 \mhchem@END\mhchem@ENDEND%
+ }%
+ \fi%
+ \egroup%
+}%
+
+\def\mhchem@ce@xx#1 #2\mhchem@ENDEND{%
+ \mhchem@ce@i#1\mhchem@empty\mhchem@ENDEND%
+ \ifx\mhchem@END#2%
+ \else%
+ \mhchem@ce@xx#2 \mhchem@ENDEND%
+ \fi%
+}
+\def\mhchem@ce@i#1#2\mhchem@ENDEND{%
+ \ifcat a#1 {\mhchem@ce@ii{#1#2}}%
+ \else\ifx 1#1{\mhchem@ce@ii{#1#2}}%
+ \else\ifx 2#1{\mhchem@ce@ii{#1#2}}%
+ \else\ifx 3#1{\mhchem@ce@ii{#1#2}}%
+ \else\ifx 4#1{\mhchem@ce@ii{#1#2}}%
+ \else\ifx 5#1{\mhchem@ce@ii{#1#2}}%
+ \else\ifx 6#1{\mhchem@ce@ii{#1#2}}%
+ \else\ifx 7#1{\mhchem@ce@ii{#1#2}}%
+ \else\ifx 8#1{\mhchem@ce@ii{#1#2}}%
+ \else\ifx 9#1{\mhchem@ce@ii{#1#2}}%
+ \else\ifx 0#1{\mhchem@ce@ii{#1#2}}%
+ \else\ifx (#1{\mhchem@ce@ii{#1#2}}%
+ \else\ifx [#1{\mhchem@ce@ii{#1#2}}%
+ \else\ifx \{#1{\mhchem@ce@ii{#1#2}}%
+ \else\ifx ^#1{\mhchem@ce@ii{#1#2}}%
+ \else\if ^#1{\mhchem@ce@ii{#1#2}}%
+ \else\ifx _#1{\mhchem@ce@ii{#1#2}}%
+ \else\ifx $#1{\mhchem@ce@ii{#1#2}}%
+ \else\ifx -#1{\ifx\@empty#2\@empty#1\else\mhchem@ce@dash#2\mhchem@END\fi}%
+ \else\if\noexpand#1<{\ifx\@empty#2\@empty#1\else\mhchem@ce@lt#2\mhchem@END\fi}%
+ \else\ifx +#1+ \mhchem@ce@ii{#2}%
+ \else\ifx \protect#1{\mhchem@ce@ii{#1#2}}%
+ %
+ \else\ifx\ce#1 \mhchem@ce@i #2 \mhchem@END%
+ \else\ifx\cf#1 \mhchem@cf{#2}%
+ \else\ifx\cmath#1 \mhchem@ce@cmath#2\mhchem@END%
+ \else\ifx\bond#1{\mhchem@ce@ii{#1#2}}%
+ \else\ifx\sbond#1{\mhchem@ce@ii{#1#2}}%
+ \else\ifx\dbond#1{\mhchem@ce@ii{#1#2}}%
+ \else\ifx\tond#1{\mhchem@ce@ii{#1#2}}%
+ \else\ifx\label#1 \mhchem@ce@label#2\mhchem@END%
+ \else\ifx\tag#1 \mhchem@ce@tag#2\mhchem@END%
+ %
+ \else #1#2%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}
+
+%
+\def\mhchem@ce@dash#1#2\mhchem@END{%
+ \if\noexpand#1>%
+ {}\ifx\@empty#2\@empty\mhchem@gives#2%
+ \else\mhchem@ce@deploycommand{mhchem@gives}#2{}\mhchem@END\fi{}%
+ \else%
+ -#1#2%
+ \fi%
+}%
+\def\mhchem@ce@lt#1#2\mhchem@END{%
+ \ifx =#1\mhchem@ce@equal#2\mhchem@END%
+ \else\if\noexpand#1<\mhchem@ce@equiL#2\mhchem@END%
+ \else\ifx-#1%
+ \ifx\@empty#2\@empty%
+ {}\mhchem@givesleft#2{}%
+ \else%
+ \mhchem@ce@dashtwo#2\mhchem@END%
+ \fi%
+ \else%
+ <#1#2%
+ \fi\fi\fi%
+}
+\def\mhchem@ce@equal#1#2\mhchem@END{%
+ \if\noexpand#1>% (<=)>...
+ \ifx\@empty#2\@empty{}\mhchem@equilibrium#2{}%
+ \else%
+ \mhchem@ce@equi#2\mhchem@END%
+ \fi%
+ \else%
+ <=#1#2%
+ \fi%
+}
+\def\mhchem@ce@equi#1#2\mhchem@END{%
+ \if\noexpand#1>%
+ {}\ifx\@empty#2\@empty\mhchem@equilibriumRight#2%
+ \else\mhchem@ce@deploycommand{mhchem@equilibriumRight}#2{}\mhchem@END\fi{}%
+ \else%
+ {}\mhchem@ce@deploycommand{mhchem@equilibrium}#1#2{}\mhchem@END{}%
+ \fi%
+}
+\def\mhchem@ce@equiL#1#2\mhchem@END{%
+ \ifx =#1\mhchem@ce@equiLi#2\mhchem@END%
+ \else<=#1#2%
+ \fi%
+}
+\def\mhchem@ce@equiLi#1#2\mhchem@END{%
+ \if\noexpand#1>% (<<=)>
+ {}\ifx\@empty#2\@empty\mhchem@equilibriumLeft#2%
+ \else\mhchem@ce@deploycommand{mhchem@equilibriumLeft}#2{}\mhchem@END\fi{}%
+ \else%
+ <<=#1#2%
+ \fi%
+}
+\def\mhchem@ce@dashtwo#1#2\mhchem@END{%
+ \if\noexpand#1>%
+ {}\ifx\@empty#2\@empty\mhchem@mesomeric#2%
+ \else\mhchem@ce@deploycommand{mhchem@mesomeric}#2{}\mhchem@END\fi{}%
+ \else%
+ {}\mhchem@ce@deploycommand{mhchem@givesleft}#1#2{}\mhchem@END{}%
+ \fi%
+}
+\def\mhchem@ce@deploycommand#1#2#3\mhchem@END{%
+ \ifx T#2\csname#1T\endcsname#3%
+ \else\ifx C#2\csname#1C\endcsname#3%
+ \else\csname#1\endcsname#2#3\fi\fi%
+}
+
+\def\mhchem@ce@ii#1{%
+ \mhchem@ce@iii#1%
+}
+\newtoks\tok@mhchem@ce@iii%
+\def\mhchem@ce@iii@tmp@i{}%
+\def\mhchem@ce@iii@tmp@ii{}%
+\def\mhchem@ce@iii#1\mhchem@empty{%
+ \tok@mhchem@ce@iii{#1}%
+ \edef\mhchem@ce@iii@tmp@i{\the\tok@mhchem@ce@iii}%
+ %
+ \def\mhchem@ce@iii@tmp@ii{(^)}%
+ \ifx\mhchem@ce@iii@tmp@i\mhchem@ce@iii@tmp@ii%
+ {}\mathop{\uparrow}{}%
+ \else\def\mhchem@ce@iii@tmp@ii{^}%
+ \ifx\mhchem@ce@iii@tmp@i\mhchem@ce@iii@tmp@ii%
+ {}\mathop{\uparrow}{}%
+ \else\def\mhchem@ce@iii@tmp@ii{(v)}%
+ \ifx\mhchem@ce@iii@tmp@i\mhchem@ce@iii@tmp@ii%
+ {}\mathop{\downarrow}{}%
+ \else\def\mhchem@ce@iii@tmp@ii{v}%
+ \ifx\mhchem@ce@iii@tmp@i\mhchem@ce@iii@tmp@ii%
+ {}\mathop{\downarrow}{}%
+ \else%
+ \mhchem@cf{#1}%
+ \fi\fi\fi\fi%
+}%
+
+\def\mhchem@ce@cmath#1#2\mhchem@END{\mhchem@cmath{#1}\mhchem@cf{#2}}
+\def\mhchem@ce@label#1#2\mhchem@END{\label{#1}\mhchem@cf{#2}}
+\def\mhchem@ce@tag#1#2\mhchem@END{\tag{#1}\mhchem@cf{#2}}
+
+%%%%%%%%%%%%%
+%%% arrows
+
+\newlength{\mhchem@arrowminlength}
+\setlength{\mhchem@arrowminlength}{1em}
+%TODO: adapt min length to each of the math modes
+
+%%% for font arrows
+%%%%% idea taken from http://www.texnik.de/misc/harpoon.phtml
+\def\mhchem@rightharpoonupfill@{\arrowfill@\relbar\relbar\rightharpoonup}
+\def\mhchem@leftharpoondownfill@{\arrowfill@\leftharpoondown\relbar\relbar}
+\newcommand*\mhchem@xrightleftharpoons[2][]{%
+ \mathrel{%
+ \rlap{\protect\raisebox{.22ex}{$\ext@arrow 3399\mhchem@rightharpoonupfill@{}{\mhchem@mathbox[#1]{#2}}$}}%
+ \raisebox{-.22ex}{$\ext@arrow 3399\mhchem@leftharpoondownfill@{#1}{\hphantom{#2}}$}}}%
+\newsavebox\mhchem@arrows@box%
+\newcommand*\mhchem@xlongrightshortleftharpoons[2][]{\mathrel{%
+ \sbox{\mhchem@arrows@box}%
+ {$\mkern9mu\ext@arrow 3399\mhchem@leftharpoondownfill@%
+ {#1}{\hphantom{#2}\mkern-6mu\mkern-12mu}$}%
+ \rlap{\protect\raisebox{-.22ex}{\usebox{\mhchem@arrows@box}}}%
+ \protect\raisebox{.22ex}{$\ext@arrow 3399\mhchem@rightharpoonupfill@%
+ {\hphantom{\usebox{\mhchem@arrows@box}}\mkern-6mu}{#2}$}%
+ }}
+\newcommand*\mhchem@xshortrightlongleftharpoons[2][]{\mathrel{%
+ \sbox{\mhchem@arrows@box}%
+ {$\mkern9mu\ext@arrow 3399\mhchem@rightharpoonupfill@%
+ {\hphantom{#1}\mkern-6mu\mkern-12mu}{#2}$}%
+ \rlap{\protect\raisebox{.22ex}{\usebox{\mhchem@arrows@box}}}%
+ \protect\raisebox{-.22ex}{$\ext@arrow 3399\mhchem@leftharpoondownfill@%
+ {#1}{\hphantom{\usebox{\mhchem@arrows@box}}\mkern-6mu}$}%
+ }}
+%\newcommand*\mhchem@xleftrightarrow[2][]{\ext@arrow 3095\leftrightarrowfill@{#1}{#2}}
+
+
+%%% for pgf arrows
+\newcommand*\mhchem@rightarrow@pgf[1]{%
+ \begin{tikzpicture}[baseline]%
+ \draw[use as bounding box] (0,0) (#1,0.85ex);
+ \draw[cap=round, join=round, line width=0.09ex]
+ (0cm,0.575ex) -- ++(#1,0cm)
+ arc (250:198:0.6ex) arc (198:250:0.6ex)
+ arc (110:162:0.6ex);
+ \end{tikzpicture}%
+}%
+\newcommand*\mhchem@leftarrow@pgf[1]{%
+ \begin{tikzpicture}[baseline]%
+ \draw[use as bounding box] (0,0) (#1,0.85ex);
+ \draw[cap=round, join=round, line width=0.09ex]
+ (#1,0.575ex) -- (0cm,0.575ex)
+ arc (70:18:0.6ex) arc (18:70:0.6ex)
+ arc (-70:-18:0.6ex);
+ \end{tikzpicture}%
+}%
+\newcommand*\mhchem@leftrightarrow@pgf[1]{%
+ \begin{tikzpicture}[baseline]%
+ \draw[use as bounding box] (0,0) (#1,0.85ex);
+ \draw[cap=round, join=round, line width=0.09ex]
+ (0cm,0.575ex)
+ arc (70:18:0.6ex) arc (18:70:0.6ex)
+ arc (-70:-18:0.6ex) arc (-18:-70:0.6ex)
+ -- ++(#1,0cm)
+ arc (250:198:0.6ex) arc (198:250:0.6ex)
+ arc (110:162:0.6ex);
+ \end{tikzpicture}%
+}%
+\newcommand*\mhchem@leftrightharpoon@pgf[1]{%
+ \begin{tikzpicture}[baseline]%
+ \draw[use as bounding box] (0,0) (#1,1ex);
+ \draw[cap=round, join=round, line width=0.09ex]
+ (0cm,0.575ex+0.22ex) -- ++(#1,0cm) arc (250:198:0.9ex);
+ \draw[cap=round, join=round, line width=0.09ex]
+ (#1,0.575ex-0.22ex) -- ++(-#1,0cm) arc (70:18:0.9ex);
+ \end{tikzpicture}%
+}%
+\newcommand*\mhchem@longrightshortleftharpoons@pgf[1]{%
+ \begin{tikzpicture}[baseline]%
+ \draw[use as bounding box] (0,0) (#1,1ex);
+ \draw[cap=round, join=round, line width=0.09ex]
+ (0.0cm,0.575ex+0.22ex) -- ++(#1,0cm) arc (250:198:0.9ex);
+ \draw[cap=round, join=round, line width=0.09ex]
+ (#1+0.5em-1em,0.575ex-0.22ex) -- (0.5em,0.575ex-0.22ex) arc (70:18:0.9ex);
+ \end{tikzpicture}%
+}%
+\newcommand*\mhchem@shortrightlongleftharpoons@pgf[1]{%
+ \begin{tikzpicture}[baseline]%
+ \draw[use as bounding box] (0,0) (#1,1ex);
+ \draw[cap=round, join=round, line width=0.09ex]
+ (0.5em,0.575ex+0.22ex) -- ++(#1-1em,0cm) arc (250:198:0.9ex);
+ \draw[cap=round, join=round, line width=0.09ex]
+ (#1,0.575ex-0.22ex) -- ++(-#1,0cm) arc (70:18:0.9ex);
+ \end{tikzpicture}%
+}%
+
+%%% for pgf-filled arrows
+\newcommand*\mhchem@rightarrow@pgffilled[1]{%
+ \begin{tikzpicture}[baseline]%
+ \draw[use as bounding box] (0,0) (#1,0.85ex);
+ \draw[cap=round, join=round, line width=0.09ex, shorten >=0.01ex]
+ (0cm,0.575ex) -- ++(#1,0cm);
+ \filldraw[cap=round, join=round, line width=0.09ex]
+ (#1,0.575ex)
+ -- ++(-0.6ex,0.2ex) -- ++(0.15ex,-0.2ex)
+ -- ++(-0.15ex,-0.2ex)
+ -- cycle;
+ \end{tikzpicture}%
+}%
+\newcommand*\mhchem@leftarrow@pgffilled[1]{%
+ \begin{tikzpicture}[baseline]%
+ \draw[use as bounding box] (0,0) (#1,0.85ex);
+ \draw[cap=round, join=round, line width=0.09ex, shorten >=0.01ex]
+ (0cm,0.575ex) -- ++(#1,0cm);
+ \filldraw[cap=round, join=round, line width=0.09ex]
+ (0cm,0.575ex)
+ -- ++(0.6ex,0.2ex) -- ++(-0.15ex,-0.2ex)
+ -- ++(+0.15ex,-0.2ex)
+ -- cycle;
+ \end{tikzpicture}%
+}%
+\newcommand*\mhchem@leftrightarrow@pgffilled[1]{%
+ \begin{tikzpicture}[baseline]%
+ \draw[use as bounding box] (0,0) (#1,0.85ex);
+ \draw[cap=round, join=round, line width=0.09ex, shorten >=0.01ex]
+ (0cm,0.575ex) -- ++(#1,0cm);
+ \filldraw[cap=round, join=round, line width=0.09ex]
+ (#1,0.575ex)
+ -- ++(-0.6ex,0.2ex) -- ++(0.15ex,-0.2ex)
+ -- ++(-0.15ex,-0.2ex)
+ -- cycle;
+ \filldraw[cap=round, join=round, line width=0.09ex]
+ (0cm,0.575ex)
+ -- ++(0.6ex,0.2ex) -- ++(-0.15ex,-0.2ex)
+ -- ++(+0.15ex,-0.2ex)
+ -- cycle;
+ \end{tikzpicture}%
+}%
+\newcommand*\mhchem@leftrightharpoon@pgffilled[1]{%
+ \begin{tikzpicture}[baseline]%
+ \draw[use as bounding box] (0,0) (#1,1ex);
+ \draw[cap=round, join=round, line width=0.09ex, shorten >=0.01ex]
+ (0cm,0.575ex+0.22ex) -- ++(#1,0cm);
+ \filldraw[cap=round, join=round, line width=0.09ex]
+ (#1,0.575ex+0.22ex)
+ -- ++(-0.6ex,0.25ex) -- ++(0.15ex,-0.25ex)
+ -- cycle;
+ \draw[cap=round, join=round, line width=0.09ex, shorten >=0.01ex]
+ (0cm,0.575ex-0.22ex) -- ++(#1,0cm);
+ \filldraw[cap=round, join=round, line width=0.09ex]
+ (0cm,0.575ex-0.22ex)
+ -- ++(0.6ex,-0.25ex) -- ++(-0.15ex,0.25ex)
+ -- cycle;
+ \end{tikzpicture}%
+}%
+\newcommand*\mhchem@longrightshortleftharpoons@pgffilled[1]{%
+ \begin{tikzpicture}[baseline]%
+ \draw[use as bounding box] (0,0) (#1,1ex);
+ \draw[cap=round, join=round, line width=0.09ex, shorten >=0.01ex]
+ (0cm,0.575ex+0.22ex) -- ++(#1,0cm);
+ \filldraw[cap=round, join=round, line width=0.09ex]
+ (#1,0.575ex+0.22ex)
+ -- ++(-0.6ex,0.25ex) -- ++(0.15ex,-0.25ex)
+ -- cycle;
+ \draw[cap=round, join=round, line width=0.09ex, shorten >=0.01ex]
+ (0.5em,0.575ex-0.22ex) -- ++(#1-1em,0cm);
+ \filldraw[cap=round, join=round, line width=0.09ex]
+ (0.5em,0.575ex-0.22ex)
+ -- ++(0.6ex,-0.25ex) -- ++(-0.15ex,0.25ex)
+ -- cycle;
+ \end{tikzpicture}%
+}%
+\newcommand*\mhchem@shortrightlongleftharpoons@pgffilled[1]{%
+ \begin{tikzpicture}[baseline]%
+ \draw[use as bounding box] (0,0) (#1,1ex);
+ \draw[cap=round, join=round, line width=0.09ex, shorten >=0.01ex]
+ (0.5em,0.575ex+0.22ex) -- ++(#1-1em,0cm);
+ \filldraw[cap=round, join=round, line width=0.09ex]
+ (#1-0.5em,0.575ex+0.22ex)
+ -- ++(-0.6ex,0.25ex) -- ++(0.15ex,-0.25ex)
+ -- cycle;
+ \draw[cap=round, join=round, line width=0.09ex, shorten >=0.01ex]
+ (0cm,0.575ex-0.22ex) -- ++(#1,0cm);
+ \filldraw[cap=round, join=round, line width=0.09ex]
+ (0cm,0.575ex-0.22ex)
+ -- ++(0.6ex,-0.25ex) -- ++(-0.15ex,0.25ex)
+ -- cycle;
+ \end{tikzpicture}%
+}%
+
+\newlength{\mhchem@arrowlength@pgf}
+\newlength{\mhchem@arrowminlength@pgf}
+%TODO: use \mhchem@arrowminlength
+\def\mhchem@labeledarrow@pgf#1#2#3#4#5#6#7{% 1-4 muskips 5 arrow 6 text above 7 below
+ \setlength\mhchem@arrowlength@pgf{\widthof{\ensuremath{%
+ \mkern#3mu%
+ \mathop{}%
+ \limits%
+ \@ifnotempty{#7}{^{\if0#1\else\mkern#1mu\fi%
+ #7\if0#2\else\mkern#2mu\fi}}%
+ \@ifnotempty{#6}{_{\if0#1\else\mkern#1mu\fi%
+ #6\if0#2\else\mkern#2mu\fi}}%
+ \mkern#4mu%
+ }}}%
+ %
+ \setlength\mhchem@arrowminlength@pgf{10pt+0.5em}%
+ \ifthenelse{\equal{mhchem@longrightshortleftharpoons@pgf}{#5}}{
+ \setlength\mhchem@arrowminlength@pgf{1.85em}%
+ \setlength\mhchem@arrowlength@pgf{\widthof{\ensuremath{%
+ \mkern#3mu%
+ \mathop{}%
+ \limits%
+ \@ifnotempty{#7}{^{\if0#1\else\mkern#1mu\fi%
+ #7\if0#2\else\mkern#2mu\fi}}%
+ \@ifnotempty{#6}{_{\if0#1\else\mkern#1mu\fi%
+ \hspace{1em}% %%
+ #6\if0#2\else\mkern#2mu\fi}}%
+ \mkern#4mu%
+ }}}%
+ }{}%
+ \ifthenelse{\equal{mhchem@shortrightlongleftharpoons@pgf}{#5}}{
+ \setlength\mhchem@arrowminlength@pgf{1.85em}%
+ \setlength\mhchem@arrowlength@pgf{\widthof{\ensuremath{%
+ \mkern#3mu%
+ \mathop{}%
+ \limits%
+ \@ifnotempty{#7}{^{\if0#1\else\mkern#1mu\fi%
+ \hspace{1em}% %%
+ #7\if0#2\else\mkern#2mu\fi}}%
+ \@ifnotempty{#6}{_{\if0#1\else\mkern#1mu\fi%
+ #6\if0#2\else\mkern#2mu\fi}}%
+ \mkern#4mu%
+ }}}%
+ }{}%
+ \ifthenelse{\equal{mhchem@longrightshortleftharpoons@pgffilled}{#5}}{
+ \setlength\mhchem@arrowminlength@pgf{1.85em}%
+ \setlength\mhchem@arrowlength@pgf{\widthof{\ensuremath{%
+ \mkern#3mu%
+ \mathop{}%
+ \limits%
+ \@ifnotempty{#7}{^{\if0#1\else\mkern#1mu\fi%
+ #7\if0#2\else\mkern#2mu\fi}}%
+ \@ifnotempty{#6}{_{\if0#1\else\mkern#1mu\fi%
+ \hspace{1em}% %%
+ #6\if0#2\else\mkern#2mu\fi}}%
+ \mkern#4mu%
+ }}}%
+ }{}%
+ \ifthenelse{\equal{mhchem@shortrightlongleftharpoons@pgffilled}{#5}}{
+ \setlength\mhchem@arrowminlength@pgf{1.85em}%
+ \setlength\mhchem@arrowlength@pgf{\widthof{\ensuremath{%
+ \mkern#3mu%
+ \mathop{}%
+ \limits%
+ \@ifnotempty{#7}{^{\if0#1\else\mkern#1mu\fi%
+ \hspace{1em}% %%
+ #7\if0#2\else\mkern#2mu\fi}}%
+ \@ifnotempty{#6}{_{\if0#1\else\mkern#1mu\fi%
+ #6\if0#2\else\mkern#2mu\fi}}%
+ \mkern#4mu%
+ }}}%
+ }{}%
+ %
+ \ifdim\mhchem@arrowlength@pgf<\mhchem@arrowminlength@pgf%
+ \setlength\mhchem@arrowlength@pgf{\mhchem@arrowminlength@pgf}%
+ \fi%
+ \mathrel{\mkern#3mu\mathop{\csname#5\endcsname{\mhchem@arrowlength@pgf}%
+ }%
+ \limits
+ \@ifnotempty{#7}{^{\if0#1\else\mkern#1mu\fi%
+ #7\if0#2\else\mkern#2mu\fi}}%
+ \@ifnotempty{#6}{_{\if0#1\else\mkern#1mu\fi%
+ #6\if0#2\else\mkern#2mu\fi}}%
+ \mkern#4mu%
+ }%}
+}%
+
+\newcommandtwoopt*\mhchem@gives[2][][]{}
+\newcommandtwoopt*\mhchem@givesleft[2][][]{}
+\newcommandtwoopt*\mhchem@mesomeric[2][][]{}
+\newcommandtwoopt*\mhchem@equilibrium[2][][]{}
+\newcommandtwoopt*\mhchem@equilibriumRight[2][][]{}
+\newcommandtwoopt*\mhchem@equilibriumLeft[2][][]{}
+
+\newcommand\mhchem@definearrows[1]{%
+ %%% font
+ \ifthenelse{\equal{#1}{font}}{%
+ \renewcommandtwoopt*\mhchem@gives[2][\hspace{\mhchem@arrowminlength}][]{\ensuremath{%
+ \xrightarrow%
+ [{##2}]%
+ {##1}}}%
+ \renewcommandtwoopt*\mhchem@givesleft[2][\hspace{\mhchem@arrowminlength}][]{\ensuremath{%
+ \xleftarrow%
+ [{##2}]%
+ {##1}}}%
+ \renewcommandtwoopt*\mhchem@mesomeric[2][\hspace{\mhchem@arrowminlength}][]{\ensuremath{%
+ \ext@arrow 3399\leftrightarrowfill@%
+ {##2}%
+ {##1}}}%
+ \renewcommandtwoopt*{\mhchem@equilibrium}[2][\hspace{\mhchem@arrowminlength}][]{\ensuremath{%
+ \mhchem@xrightleftharpoons%
+ [{##2}]%
+ {##1}}}%
+ \renewcommandtwoopt*{\mhchem@equilibriumRight}[2][\hphantom{\makebox[\mhchem@arrowminlength]{}}][]{\ensuremath{%
+ \mhchem@xlongrightshortleftharpoons%
+ [{##2}]%
+ {##1}}}%
+ \renewcommandtwoopt*{\mhchem@equilibriumLeft}[2][][\hspace{\mhchem@arrowminlength}]{\ensuremath{%
+ \mhchem@xshortrightlongleftharpoons%
+ [{##2}]%
+ {##1}}}%
+ }{%%% pgf
+ \ifthenelse{\equal{#1}{pgf}}{%
+ \renewcommandtwoopt*\mhchem@gives[2][][]%
+ {\ensuremath{\mhchem@labeledarrow@pgf{1.5}{5}{1.5}{1}{mhchem@rightarrow@pgf}{##2}{##1}}}%
+ \renewcommandtwoopt*\mhchem@givesleft[2][][]%
+ {\ensuremath{\mhchem@labeledarrow@pgf{5}{1.5}{1}{1.5}{mhchem@leftarrow@pgf}{##2}{##1}}}%
+ \renewcommandtwoopt*\mhchem@mesomeric[2][][]%
+ {\ensuremath{\mhchem@labeledarrow@pgf{5}{5}{1}{1}{mhchem@leftrightarrow@pgf}{##2}{##1}}}%
+ \renewcommandtwoopt*\mhchem@equilibrium[2][][]%
+ {\ensuremath{\mhchem@labeledarrow@pgf{6}{6}{1}{1}{mhchem@leftrightharpoon@pgf}{##2}{##1}}}%
+ \renewcommandtwoopt*\mhchem@equilibriumRight[2][][]%
+ {\ensuremath{\mhchem@labeledarrow@pgf{6}{6}{1}{1}{mhchem@longrightshortleftharpoons@pgf}{##2}{##1}}}%
+ \renewcommandtwoopt*\mhchem@equilibriumLeft[2][][]%
+ {\ensuremath{\mhchem@labeledarrow@pgf{6}{6}{1}{1}{mhchem@shortrightlongleftharpoons@pgf}{##2}{##1}}}%
+ }{%%% pgf-filled
+ \ifthenelse{\equal{#1}{pgf-filled}}{%
+ \renewcommandtwoopt*\mhchem@gives[2][][]%
+ {\ensuremath{\mhchem@labeledarrow@pgf{1.5}{7}{1.5}{1}{mhchem@rightarrow@pgffilled}{##2}{##1}}}%
+ \renewcommandtwoopt*\mhchem@givesleft[2][][]%
+ {\ensuremath{\mhchem@labeledarrow@pgf{7}{1.5}{1}{1.5}{mhchem@leftarrow@pgffilled}{##2}{##1}}}%
+ \renewcommandtwoopt*\mhchem@mesomeric[2][][]%
+ {\ensuremath{\mhchem@labeledarrow@pgf{7}{7}{1}{1}{mhchem@leftrightarrow@pgffilled}{##2}{##1}}}%
+ \renewcommandtwoopt*\mhchem@equilibrium[2][][]%
+ {\ensuremath{\mhchem@labeledarrow@pgf{7}{7}{1}{1}{mhchem@leftrightharpoon@pgffilled}{##2}{##1}}}%
+ \renewcommandtwoopt*\mhchem@equilibriumRight[2][][]%
+ {\ensuremath{\mhchem@labeledarrow@pgf{7}{7}{1}{1}{mhchem@longrightshortleftharpoons@pgffilled}{##2}{##1}}}%
+ \renewcommandtwoopt*\mhchem@equilibriumLeft[2][][]%
+ {\ensuremath{\mhchem@labeledarrow@pgf{7}{7}{1}{1}{mhchem@shortrightlongleftharpoons@pgffilled}{##2}{##1}}}%
+ }{%
+ \PackageError{mhchem}{The option font=#1 is not supported}%
+ }%
+ }}%
+}
+
+\newcommandtwoopt*\mhchem@givesT[2][\hspace{\mhchem@arrowminlength}][]%
+ {\mhchem@gives[\text{#1}][\text{#2}]}%
+\newcommandtwoopt*\mhchem@givesC[2][\hspace{\mhchem@arrowminlength}][]%
+ {\mhchem@gives[\ce@main{#1}][\ce@main{#2}]}%
+\newcommandtwoopt*\mhchem@givesleftT[2][\hspace{\mhchem@arrowminlength}][]%
+ {\mhchem@givesleft[\text{#1}][\text{#2}]}%
+\newcommandtwoopt*\mhchem@givesleftC[2][\hspace{\mhchem@arrowminlength}][]%
+ {\mhchem@givesleft[\ce@main{#1}][\ce@main{#2}]}%
+\newcommandtwoopt*\mhchem@mesomericT[2][\hspace{\mhchem@arrowminlength}][]%
+ {\mhchem@mesomeric[\text{#1}][\text{#2}]}%
+\newcommandtwoopt*\mhchem@mesomericC[2][\hspace{\mhchem@arrowminlength}][]%
+ {\mhchem@mesomeric[\ce@main{#1}][\ce@main{#2}]}%
+\newcommandtwoopt*{\mhchem@equilibriumT}[2][\hspace{\mhchem@arrowminlength}][]%
+ {\mhchem@equilibrium[\text{#1}][\text{#2}]}
+\newcommandtwoopt*{\mhchem@equilibriumC}[2][\hspace{\mhchem@arrowminlength}][]%
+ {\mhchem@equilibrium[\ce@main{#1}][\ce@main{#2}]}
+\newcommandtwoopt*{\mhchem@equilibriumRightT}[2][\hspace{\mhchem@arrowminlength}][]%
+ {\mhchem@equilibriumRight[\text{#1}][\text{#2}]}
+\newcommandtwoopt*{\mhchem@equilibriumRightC}[2][\hspace{\mhchem@arrowminlength}][]%
+ {\mhchem@equilibriumRight[\ce@main{#1}][\ce@main{#2}]}
+\newcommandtwoopt*{\mhchem@equilibriumLeftT}[2][][\hspace{\mhchem@arrowminlength}]%
+ {\mhchem@equilibriumLeft[\text{#1}][\text{#2}]}
+\newcommandtwoopt*{\mhchem@equilibriumLeftC}[2][][\hspace{\mhchem@arrowminlength}]%
+ {\mhchem@equilibriumLeft[\ce@main{#1}][\ce@main{#2}]}
+
+
+%%%%%%%%%%%%%
+%%% bonds %%%
+%
+\newlength\mhchem@bondwidth%
+\newlength\mhchem@bondheight%
+\newlength\mhchem@smallbondwidth@tmpA%
+\newlength\mhchem@smallbondwidth@tmpB%
+\newlength\mhchem@smallbondwidth%
+
+\def\mhchem@setbondwidth{%
+ \setlength\mhchem@bondwidth{\widthof{\sbond}}%
+ \setlength\mhchem@bondheight{\heightof{\sbond}}%
+ \setlength\mhchem@smallbondwidth@tmpA{%
+ \mhchem@bondwidth-\mhchem@option@minussidebearingleft-\mhchem@option@minussidebearingright}%
+ \setlength\mhchem@smallbondwidth@tmpB{%
+ \widthof{\sbond\sbond\sbond}-\mhchem@option@minussidebearingleft-%
+ \mhchem@option@minussidebearingright}%
+ \setlength\mhchem@smallbondwidth{\mhchem@bondwidth*%
+ \ratio{\mhchem@smallbondwidth@tmpA}{\mhchem@smallbondwidth@tmpB}}%
+}
+\def\mhchem@halfbond{\rlap{\hspace{\mhchem@option@minussidebearingleft}%
+ \resizebox{\mhchem@smallbondwidth}{\mhchem@bondheight}{\sbond}\unskip%
+ \resizebox{\mhchem@smallbondwidth}{\mhchem@bondheight}{\sbond}%
+ \resizebox{\mhchem@smallbondwidth}{\mhchem@bondheight}{\sbond}}%
+ \phantom{\sbond}}
+\def\mhchem@bond#1{%
+ %
+ \if ##\noexpand#1%
+ \tbond%
+ \else\ifx \tbond#1%
+ \tbond%
+ \else%
+ \ifthenelse{\equal{#1}{-}}{\sbond}{%
+ \ifthenelse{\equal{#1}{=}}{\dbond}{%
+ \ifthenelse{\equal{#1}{~}}{%
+ \mhchem@setbondwidth%
+ \mhchem@halfbond}{%
+ \ifthenelse{\equal{#1}{~-}}{%
+ \mhchem@setbondwidth%
+ \rlap{\protect\raisebox{.2ex}{\mhchem@halfbond}}%
+ \protect\raisebox{-.2ex}{\sbond}}{%
+ \ifthenelse{\equal{#1}{~--}}{%
+ \mhchem@setbondwidth%
+ \rlap{\protect\raisebox{.4ex}{\mhchem@halfbond}}%
+ \rlap{\sbond}%
+ \protect\raisebox{-.4ex}{\sbond}}{%
+ \ifthenelse{\equal{#1}{~=}}{%
+ \mhchem@setbondwidth%
+ \rlap{\protect\raisebox{.4ex}{\mhchem@halfbond}}%
+ \rlap{\sbond}%
+ \protect\raisebox{-.4ex}{\sbond}}{%
+ \ifthenelse{\equal{#1}{-~-}}{%
+ \mhchem@setbondwidth%
+ \rlap{\protect\raisebox{.4ex}{\sbond}}%
+ \rlap{\mhchem@halfbond}%
+ \protect\raisebox{-.4ex}{\sbond}}{%
+ \ifthenelse{\equal{#1}{...}}{{\cdot}{\cdot}{\cdot}}{%
+ \ifthenelse{\equal{#1}{....}}{{\cdot}{\cdot}{\cdot}{\cdot}}{%
+ \ifthenelse{\equal{#1}{->}}{{\rightarrow}}{%
+ \ifthenelse{\equal{#1}{<-}}{{\leftarrow}}{%
+ %
+ \PackageError{mhchem}{unknown bond type in \string\bond (#1)}%
+ }}}}}}}}}}}%
+ \fi\fi%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%% \cf %%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newtoks\mhchem@cf@result%
+\newcommand*\mhchem@cf[2][]{%
+ \bgroup%
+ %%%
+ \def\sbond{{\ensuremath{-}}}%
+ \ifnum 2=\mhchem@option@version%
+ \let\bond\sbond%
+ \else\ifnum 2<\mhchem@option@version%
+ \DeclareRobustCommand*\bond{\mhchem@bond}%
+ \fi\fi%
+ \DeclareRobustCommand\dbond{\rlap{\protect\raisebox{.2ex}{\sbond}}\protect\raisebox{-.2ex}{\sbond}}%
+ \DeclareRobustCommand\tbond{\rlap{\protect\raisebox{.4ex}{\sbond}}%
+ \rlap{\sbond}\protect\raisebox{-.4ex}{\sbond}}%
+ \def\hyphen{\mhchem@hyphen}%
+ %%%
+ \ifmmode\else\def\mhchem@option@alwaystextmode{1}\fi%
+ \if 1\mhchem@option@alwaystextmode%
+ \edef\mhchem@mathOrText##1{\noexpand\text{##1}}%
+ \edef\mhchem@mathOrText@ii##1##2{##2}%
+ \else%
+ \ifnum 1<\mhchem@option@version%
+ \edef\mhchem@mathOrText##1{\ifmmode\noexpand\mhchem@option@mathFont{##1}\else\noexpand\text{##1}\fi}%
+ \edef\mhchem@mathOrText@ii##1##2{\ifmmode\noexpand\mhchem@option@mathFont{##1}\else ##2\fi}%
+ \else%
+ \edef\mhchem@mathOrText##1{\ifmmode ##1\else\noexpand\text{##1}\fi}%
+ \edef\mhchem@mathOrText@ii##1##2{\ifmmode ##1\else ##2\fi}%
+ \fi%
+ \fi%
+ \ifmmode\else\mhchem@option@textFont\fi%
+ %%%
+ \def\mhchem@cf@state{s}%
+ %
+ %
+ %
+ %
+ %
+ %
+ %
+ %
+ %
+ %
+ \def\mhchem@cf@startedWithBond{0}%
+ %%%
+ \mhchem@cf@outputReset%
+ \mhchem@cf@result={}%
+ %%%
+ \mhchem@cf@continue#2\mhchem@END%
+ %%%
+ %
+ %
+ \ifthenelse{\equal{#1}{}}%
+ {%
+ \ensuremath{\the\mhchem@cf@result}%
+ }{%
+ \ensuremath{\overset{#1}{\the\mhchem@cf@result}}%
+ }%
+ %TODO: insert kerning if full stop (or similar) follows superscript
+ %\@ifnextchar,{\kern-0.2em}{} ??%
+ \egroup%
+}%
+\def\mhchem@cf@i{%
+ %
+ %
+ %%%
+ \ifx\mhchem@END\mhchem@cf@lookahead%
+ \if -\mhchem@cf@state%
+ \ifnum 4>\mhchem@option@version%
+ \mhchem@cf@sup=\expandafter{\the\mhchem@cf@sup -}%
+ \else%
+ \if 0\mhchem@cf@startedWithBond%
+ \mhchem@cf@sup=\expandafter{\the\mhchem@cf@sup -}%
+ \else%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \mhchem@cf@result=\expandafter{\the\mhchem@cf@result\sbond}%
+ \fi%
+ \fi%
+ \fi%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \let\mhchem@cf@action\mhchem@gobble%
+ \else\ifx\relax\mhchem@cf@lookahead%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else\ifx\protect\mhchem@cf@lookahead%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ %%%
+ \else%
+%
+%
+%
+%
+ \if -\mhchem@cf@state%
+ %
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \mhchem@cf@result=\expandafter{\the\mhchem@cf@result\sbond}%
+ \def\mhchem@cf@state{+}%
+ \fi%
+ \if s\mhchem@cf@state%
+ \ifx \{\mhchem@cf@lookahead%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\ifx \}\mhchem@cf@lookahead%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\ifx\bond\mhchem@cf@lookahead%
+ \ifnum 2=\mhchem@option@version%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
+ \else%
+ \def\mhchem@cf@state{C}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
+ \fi%
+ \else\if =\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \mhchem@cf@result=\expandafter{\the\mhchem@cf@result\dbond}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else\if ##\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \mhchem@cf@result=\expandafter{\the\mhchem@cf@result\tbond}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else\ifcat\noexpand\mhchem@macro\noexpand\mhchem@cf@lookahead%
+ \def\mhchem@cf@state{c}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
+ \else\if ^\mhchem@cf@lookahead%
+ \def\mhchem@cf@state{p}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else\if _\mhchem@cf@lookahead%
+ \def\mhchem@cf@state{q}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else\if `\mhchem@cf@lookahead%
+ \ifnum 4>\mhchem@option@version%
+ \def\mhchem@cf@state{P}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \fi%
+ \else\if ,\mhchem@cf@lookahead%
+ \ifnum 4>\mhchem@option@version%
+ \def\mhchem@cf@state{Q}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else%
+ \def\mhchem@cf@state{1}%
+ \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@amount}{{,}}}%
+ \fi%
+ \else\if .\mhchem@cf@lookahead%
+ \ifnum 4>\mhchem@option@version%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{s}%
+ \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@result}%
+ {\mhchem@mathOrText@ii{{}\cdot{}}{\mhchem@option@textcdot}}}%
+ \else%
+ \def\mhchem@cf@state{1}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@amount}}%
+ \fi%
+ \else\if +\mhchem@cf@lookahead%
+ \def\mhchem@cf@state{+}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@sup}}%
+ \else\if -\mhchem@cf@lookahead%
+ \ifnum 1<\mhchem@option@version%
+ \def\mhchem@cf@state{-}%
+ \def\mhchem@cf@startedWithBond{1}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else%
+ \def\mhchem@cf@state{+}%
+ \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@sup}{-}}%
+ \fi%
+ \else\if |\mhchem@cf@lookahead%
+ \let\mhchem@cf@action\mhchem@cf@switchState%
+ \else\if (\mhchem@cf@lookahead%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\if )\mhchem@cf@lookahead%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\if [\mhchem@cf@lookahead%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\if ]\mhchem@cf@lookahead%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\if *\mhchem@cf@lookahead%
+ \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@result}%
+ {\mhchem@mathOrText@ii{{}\cdot{}}{\mhchem@option@textcdot}}}%
+ \else\ifcat a\mhchem@cf@lookahead%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\ifcat 1\mhchem@cf@lookahead%
+ \def\mhchem@cf@state{1}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@amount}}%
+ \else\if\mhchem@lbracechar\mhchem@cf@lookahead%
+ \ifnum 4>\mhchem@option@version%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextGroup{\mhchem@cf@result}}%
+ \else%
+ \def\mhchem@cf@state{1}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextGroup{\mhchem@cf@amount}}%
+ \fi%
+ \else\if $\mhchem@cf@lookahead%
+ \ifnum 4>\mhchem@option@version%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendMath{\mhchem@cf@element}}%
+ \else%
+ \def\mhchem@cf@state{1}%
+ \def\mhchem@cf@action{\mhchem@cf@appendMath{\mhchem@cf@amount}}%
+ \fi%
+ \else%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \else\if C\mhchem@cf@state%
+ \if\mhchem@lbracechar\mhchem@cf@lookahead%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextGroup{\mhchem@cf@result}}%
+ \else%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
+ \fi%
+ \def\mhchem@cf@state{c}%
+ \else\if c\mhchem@cf@state%
+ \if\mhchem@lbracechar\mhchem@cf@lookahead%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextGroup{\mhchem@cf@result}}%
+ \else%
+ \def\mhchem@cf@state{s}%
+ \def\mhchem@cf@action{\mhchem@cf@continue}%
+ \fi%
+ \else\if 1\mhchem@cf@state%
+ \ifx \{\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\ifx \}\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\ifx\bond\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \ifnum 2=\mhchem@option@version%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
+ \else%
+ \def\mhchem@cf@state{C}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
+ \fi%
+ \else\if =\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \mhchem@cf@result=\expandafter{\the\mhchem@cf@result\dbond}%
+ \def\mhchem@cf@state{+}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else\if ##\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \mhchem@cf@result=\expandafter{\the\mhchem@cf@result\tbond}%
+ \def\mhchem@cf@state{+}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else\ifcat\noexpand\mhchem@macro\noexpand\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{c}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
+ \else\if ^\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{p}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else\if _\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{q}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else\if `\mhchem@cf@lookahead%
+ \ifnum 4>\mhchem@option@version%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{E}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@amount}}%
+ \fi%
+ \else\if ,\mhchem@cf@lookahead%
+ \ifnum 4>\mhchem@option@version%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{F}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else%
+ \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@amount}{{,}}}%
+ \fi%
+ \else\if .\mhchem@cf@lookahead%
+ \ifnum 4>\mhchem@option@version%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{s}%
+ \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@result}%
+ {\mhchem@mathOrText@ii{{}\cdot{}}{\mhchem@option@textcdot}}}%
+ \else%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@amount}}%
+ \fi%
+ \else\if |\mhchem@cf@lookahead%
+ \PackageWarning{mhchem}{The symbol | is not allowed here}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else\if (\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\if )\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\if [\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\if ]\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\if *\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{s}%
+ \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@result}%
+ {\mhchem@mathOrText@ii{{}\cdot{}}{\mhchem@option@textcdot}}}%
+ \else\ifcat a\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\ifcat 1\mhchem@cf@lookahead%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@amount}}%
+ \else\if\mhchem@lbracechar\mhchem@cf@lookahead%
+ \ifnum 4>\mhchem@option@version%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{s}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextGroup{\mhchem@cf@result}}%
+ \else%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextGroup{\mhchem@cf@amount}}%
+ \fi%
+ \else\if $\mhchem@cf@lookahead%
+ \def\mhchem@cf@action{\mhchem@cf@appendMath{\mhchem@cf@amount}}%
+ \else%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{s}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \else\if a\mhchem@cf@state%
+ \ifx \{\mhchem@cf@lookahead%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\ifx \}\mhchem@cf@lookahead%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\ifx\bond\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \ifnum 2=\mhchem@option@version%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
+ \else%
+ \def\mhchem@cf@state{C}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
+ \fi%
+ \else\if =\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \mhchem@cf@result=\expandafter{\the\mhchem@cf@result\dbond}%
+ \def\mhchem@cf@state{+}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else\if ##\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \mhchem@cf@result=\expandafter{\the\mhchem@cf@result\tbond}%
+ \def\mhchem@cf@state{+}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else\ifcat\noexpand\mhchem@macro\noexpand\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{c}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
+ \else\if ^\mhchem@cf@lookahead%
+ \def\mhchem@cf@state{e}%
+ \expandafter\ifx\expandafter\@empty\the\mhchem@cf@sup\@empty\else%
+ \mhchem@cf@sup=\expandafter{\the\mhchem@cf@sup ,}%
+ \fi%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else\if _\mhchem@cf@lookahead%
+ \def\mhchem@cf@state{f}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else\if `\mhchem@cf@lookahead%
+ \ifnum 4>\mhchem@option@version%
+ \def\mhchem@cf@state{E}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \fi%
+ \else\if ,\mhchem@cf@lookahead%
+ \ifnum 4>\mhchem@option@version%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else%
+ \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@element}{,}}%
+ \fi%
+ \else\if .\mhchem@cf@lookahead%
+ \ifnum 4>\mhchem@option@version%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{s}%
+ \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@result}%
+ {\mhchem@mathOrText@ii{{}\cdot{}}{\mhchem@option@textcdot}}}%
+ \else%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \fi%
+ \else\if +\mhchem@cf@lookahead%
+ \def\mhchem@cf@state{+}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@sup}}%
+ \else\if -\mhchem@cf@lookahead%
+ \ifnum 1<\mhchem@option@version%
+ \def\mhchem@cf@state{-}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else%
+ \def\mhchem@cf@state{+}%
+ \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@sup}{-}}%
+ \fi%
+ \else\if |\mhchem@cf@lookahead%
+ \PackageWarning{mhchem}{The symbol | is not allowed here}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else\if (\mhchem@cf@lookahead%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\if )\mhchem@cf@lookahead%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\if [\mhchem@cf@lookahead%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\if ]\mhchem@cf@lookahead%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\if *\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{s}%
+ \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@result}%
+ {\mhchem@mathOrText@ii{{}\cdot{}}{\mhchem@option@textcdot}}}%
+ \else\ifcat a\mhchem@cf@lookahead%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\ifcat 1\mhchem@cf@lookahead%
+ \def\mhchem@cf@state{2}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@amount}}%
+ \else\if\mhchem@lbracechar\mhchem@cf@lookahead%
+ \ifnum 4>\mhchem@option@version%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextGroupAsMath{%
+ \mhchem@cf@element}}%
+ \else%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextGroup{\mhchem@cf@element}}%
+ \fi%
+ \else\if $\mhchem@cf@lookahead%
+ \def\mhchem@cf@action{\mhchem@cf@appendMath{\mhchem@cf@element}}%
+ \else%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{s}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \else\if 2\mhchem@cf@state%
+ \ifx \{\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\ifx \}\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\ifx\bond\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \ifnum 2=\mhchem@option@version%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
+ \else%
+ \def\mhchem@cf@state{C}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
+ \fi%
+ \else\if =\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \mhchem@cf@result=\expandafter{\the\mhchem@cf@result\dbond}%
+ \def\mhchem@cf@state{+}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else\if ##\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \mhchem@cf@result=\expandafter{\the\mhchem@cf@result\tbond}%
+ \def\mhchem@cf@state{+}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else\ifcat\noexpand\mhchem@macro\noexpand\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{c}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
+ \else\if ^\mhchem@cf@lookahead%
+ \def\mhchem@cf@state{e}%
+ \expandafter\ifx\expandafter\@empty\the\mhchem@cf@sup\@empty\else%
+ \mhchem@cf@sup=\expandafter{\the\mhchem@cf@sup ,}%
+ \fi%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else\if _\mhchem@cf@lookahead%
+ \def\mhchem@cf@state{f}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else\if `\mhchem@cf@lookahead%
+ \ifnum 4>\mhchem@option@version%
+ \def\mhchem@cf@state{E}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@amount}}%
+ \fi%
+ \else\if ,\mhchem@cf@lookahead%
+ \ifnum 4>\mhchem@option@version%
+ \def\mhchem@cf@state{F}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else%
+ \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@amount}{,}}%
+ \fi%
+ \else\if .\mhchem@cf@lookahead%
+ \ifnum 4>\mhchem@option@version%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{s}%
+ \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@result}%
+ {\mhchem@mathOrText@ii{{}\cdot{}}{\mhchem@option@textcdot}}}%
+ \else%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@amount}}%
+ \fi%
+ \else\if +\mhchem@cf@lookahead%
+ \def\mhchem@cf@state{+}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@sup}}%
+ \else\if -\mhchem@cf@lookahead%
+ \ifnum 1<\mhchem@option@version%
+ \def\mhchem@cf@state{-}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else%
+ \def\mhchem@cf@state{+}%
+ \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@sup}{-}}%
+ \fi%
+ \else\if |\mhchem@cf@lookahead%
+ \PackageWarning{mhchem}{The symbol | is not allowed here}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else\if (\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\if )\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\if [\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\if ]\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\if *\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{s}%
+ \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@result}%
+ {\mhchem@mathOrText@ii{{}\cdot{}}{\mhchem@option@textcdot}}}%
+ \else\ifcat a\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\ifcat 1\mhchem@cf@lookahead%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@amount}}%
+ \else\if\mhchem@lbracechar\mhchem@cf@lookahead%
+ \ifnum 4>\mhchem@option@version%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{s}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextGroup{\mhchem@cf@result}}%
+ \else%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextGroup{\mhchem@cf@element}}%
+ \fi%
+ \else\if $\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendMath{\mhchem@cf@element}}%
+ \else%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{s}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \else\if e\mhchem@cf@state%
+ \def\mhchem@cf@state{+}%
+ \if $\mhchem@cf@lookahead%
+ \def\mhchem@cf@action{\mhchem@cf@appendMathAsGroup{\mhchem@cf@sup}}%
+ \else%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@sup}}%
+ \fi%
+ \else\if f\mhchem@cf@state%
+ \def\mhchem@cf@state{+}%
+ \if $\mhchem@cf@lookahead%
+ \def\mhchem@cf@action{\mhchem@cf@appendMathAsGroup{\mhchem@cf@amount}}%
+ \else%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@amount}}%
+ \fi%
+ \else\if p\mhchem@cf@state%
+ \def\mhchem@cf@state{*}%
+ \if $\mhchem@cf@lookahead%
+ \def\mhchem@cf@action{\mhchem@cf@appendMathAsGroup{\mhchem@cf@presup}}%
+ \else%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@presup}}%
+ \fi%
+ \else\if q\mhchem@cf@state%
+ \def\mhchem@cf@state{*}%
+ \if $\mhchem@cf@lookahead%
+ \def\mhchem@cf@action{\mhchem@cf@appendMathAsGroup{\mhchem@cf@presub}}%
+ \else%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@presub}}%
+ \fi%
+ \else\if E\mhchem@cf@state%
+ \def\mhchem@cf@state{+}%
+ \def\mhchem@cf@action{%
+ \mhchem@cf@appendNextTokenAsMathrm{\mhchem@cf@sup}}%
+ \else\if F\mhchem@cf@state%
+ \def\mhchem@cf@state{+}%
+ \def\mhchem@cf@action{%
+ \mhchem@cf@appendNextTokenAsMathrm{\mhchem@cf@amount}}%
+ \else\if P\mhchem@cf@state%
+ \def\mhchem@cf@state{*}%
+ \def\mhchem@cf@action{%
+ \mhchem@cf@appendNextTokenAsMathrm{\mhchem@cf@presup}}%
+ \else\if Q\mhchem@cf@state%
+ \def\mhchem@cf@state{*}%
+ \def\mhchem@cf@action{%
+ \mhchem@cf@appendNextTokenAsMathrm{\mhchem@cf@presub}}%
+ \else\if +\mhchem@cf@state%
+ \ifx \{\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\ifx \}\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\ifx\bond\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \ifnum 2=\mhchem@option@version%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
+ \else%
+ \def\mhchem@cf@state{C}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
+ \fi%
+ \else\if =\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \mhchem@cf@result=\expandafter{\the\mhchem@cf@result\dbond}%
+ \def\mhchem@cf@state{+}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else\if ##\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \mhchem@cf@result=\expandafter{\the\mhchem@cf@result\tbond}%
+ \def\mhchem@cf@state{+}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else\ifcat\noexpand\mhchem@macro\noexpand\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{c}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
+ \else\if ^\mhchem@cf@lookahead%
+ \def\mhchem@cf@state{e}%
+ \expandafter\ifx\expandafter\@empty\the\mhchem@cf@sup\@empty\else%
+ \mhchem@cf@sup=\expandafter{\the\mhchem@cf@sup ,}%
+ \fi%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else\if _\mhchem@cf@lookahead%
+ \def\mhchem@cf@state{f}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else\if `\mhchem@cf@lookahead%
+ \ifnum 4>\mhchem@option@version%
+ \def\mhchem@cf@state{E}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \fi%
+ \else\if ,\mhchem@cf@lookahead%
+ \ifnum 4>\mhchem@option@version%
+ \def\mhchem@cf@state{F}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@element}{,}}%
+ \fi%
+ \else\if .\mhchem@cf@lookahead%
+ \ifnum 4>\mhchem@option@version%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{s}%
+ \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@result}%
+ {\mhchem@mathOrText@ii{{}\cdot{}}{\mhchem@option@textcdot}}}%
+ \else%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \fi%
+ \else\if +\mhchem@cf@lookahead%
+ \def\mhchem@cf@state{+}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@sup}}%
+ \else\if -\mhchem@cf@lookahead%
+ \ifnum 1<\mhchem@option@version%
+ \def\mhchem@cf@state{-}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else%
+ \def\mhchem@cf@state{+}%
+ \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@sup}{-}}%
+ \fi%
+ \else\if |\mhchem@cf@lookahead%
+ \PackageWarning{mhchem}{The symbol | is not allowed here}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else\if (\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\if )\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\if [\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\if ]\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\if *\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{s}%
+ \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@result}%
+ {\mhchem@mathOrText@ii{{}\cdot{}}{\mhchem@option@textcdot}}}%
+ \else\ifcat a\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\ifcat 1\mhchem@cf@lookahead%
+ %
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\if\mhchem@lbracechar\mhchem@cf@lookahead%
+ \ifnum 4>\mhchem@option@version%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{s}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextGroup{\mhchem@cf@result}}%
+ \else%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextGroup{\mhchem@cf@element}}%
+ \fi%
+ \else\if $\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendMath{\mhchem@cf@element}}%
+ \else%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{s}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi% .
+ \else\if *\mhchem@cf@state%
+ \ifx \{\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{s}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
+ \else\ifx \}\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{s}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
+ \else\ifx\bond\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \ifnum 2=\mhchem@option@version%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
+ \else%
+ \def\mhchem@cf@state{C}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
+ \fi%
+ \else\if =\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \mhchem@cf@result=\expandafter{\the\mhchem@cf@result\dbond}%
+ \def\mhchem@cf@state{+}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else\if ##\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \mhchem@cf@result=\expandafter{\the\mhchem@cf@result\tbond}%
+ \def\mhchem@cf@state{+}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else\ifcat\noexpand\mhchem@macro\noexpand\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{c}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
+ \else\if ^\mhchem@cf@lookahead%
+ \def\mhchem@cf@state{p}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else\if _\mhchem@cf@lookahead%
+ \def\mhchem@cf@state{q}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else\if `\mhchem@cf@lookahead%
+ \ifnum 4>\mhchem@option@version%
+ \def\mhchem@cf@state{P}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \fi%
+ \else\if ,\mhchem@cf@lookahead%
+ \ifnum 4>\mhchem@option@version%
+ \def\mhchem@cf@state{Q}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@element}{,}}%
+ \fi%
+ \else\if .\mhchem@cf@lookahead%
+ \ifnum 4>\mhchem@option@version%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{s}%
+ \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@result}%
+ {\mhchem@mathOrText@ii{{}\cdot{}}{\mhchem@option@textcdot}}}%
+ \else%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \fi%
+ \else\if |\mhchem@cf@lookahead%
+ \PackageWarning{mhchem}{The symbol | is not allowed here}%
+ \let\mhchem@cf@action\mhchem@cf@gobbleNextToken%
+ \else\if (\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{s}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
+ \else\if )\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{s}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
+ \else\if [\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{s}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
+ \else\if ]\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{s}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
+ \else\if *\mhchem@cf@lookahead%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{s}%
+ \def\mhchem@cf@action{\mhchem@cf@append{\mhchem@cf@result}%
+ {\mhchem@mathOrText@ii{{}\cdot{}}{\mhchem@option@textcdot}}}%
+ \else\ifcat a\mhchem@cf@lookahead%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@element}}%
+ \else\ifcat 1\mhchem@cf@lookahead%
+ %
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{1}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@amount}}%
+ \else\if\mhchem@lbracechar\mhchem@cf@lookahead%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextGroup{\mhchem@cf@element}}%
+ \else\if $\mhchem@cf@lookahead%
+ \def\mhchem@cf@state{a}%
+ \def\mhchem@cf@action{\mhchem@cf@appendMath{\mhchem@cf@element}}%
+ \else%
+ \mhchem@cf@outputAndReset{\mhchem@cf@result}%
+ \def\mhchem@cf@state{s}%
+ \def\mhchem@cf@action{\mhchem@cf@appendNextToken{\mhchem@cf@result}}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi% .
+ \else%
+ \PackageWarning{mhchem}{Assertion failed: unknown internal state \mhchem@cf@state}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+ \fi\fi\fi%
+ \mhchem@cf@action%
+}%
+%%%
+\def\mhchem@cf@continue{%
+ \futurelet\mhchem@cf@lookahead\mhchem@cf@i%
+}%
+\def\mhchem@cf@gobbleNextToken#1{%
+ \mhchem@cf@continue%
+}%
+\def\mhchem@cf@append#1#2#3{%
+ %\showthe#1%
+ #1=\expandafter{\the#1#2}%
+ %\showthe#1%
+ \mhchem@cf@continue%
+}%
+\def\mhchem@cf@appendExpand#1#2#3{%
+ \edef\mhchem@cf@appendExpand@i{\noexpand\mhchem@cf@append\noexpand{#1}{#2}}%
+ \mhchem@cf@appendExpand@i%
+}%
+\def\mhchem@cf@appendAndExecute#1#2#3#4{%
+ #1=\expandafter{\the#1#2}%
+ #3%
+ \mhchem@cf@continue%
+}%
+\def\mhchem@cf@appendAndExecuteExpand#1#2#3#4{%
+ \edef\mhchem@cf@appendExpand@i{\noexpand\mhchem@cf@appendAndExecute\noexpand{#1}{#2}{#3}}%
+ \mhchem@cf@appendExpand@i%
+}%
+\def\mhchem@cf@appendNextGroup#1#2{%
+ #1=\expandafter{\the#1{#2}}%
+ \mhchem@cf@continue%
+}
+\def\mhchem@cf@appendNextGroupAsMath#1#2{%
+ #1=\expandafter{\the#1{\text{\ensuremath{#2}}}}%
+ \mhchem@cf@continue%
+}
+\def\mhchem@cf@appendNextToken#1#2{%
+ %\showthe#1%
+ #1=\expandafter{\the#1#2}%
+ %\showthe#1%
+ \mhchem@cf@continue%
+}
+\def\mhchem@cf@appendNextTokenAsMathrm#1#2{%
+ #1=\expandafter{\the#1{\ensuremath{\mathrm{#2}}}}%
+ \mhchem@cf@continue%
+}
+\def\mhchem@cf@appendMath#1#2#3${%
+ #1=\expandafter{\the#1\text{\ensuremath{#3}}}%
+ \mhchem@cf@continue%
+}%
+\def\mhchem@cf@appendMathAsGroup#1#2#3${%
+ #1=\expandafter{\the#1{\text{\ensuremath{#3}}}}%
+ \mhchem@cf@continue%
+}%
+\def\mhchem@cf@switchState#1#2|{%
+ \ifthenelse{\equal{1}{#2}}{% if 1
+ \def\mhchem@cf@state{a}% switch to [a]element
+ }{%
+ \PackageWarning{mhchem}{Command |#2| unknown}%
+ }%
+ \mhchem@cf@continue%
+}%
+
+%%%%%
+\newtoks\mhchem@cf@element%
+\newtoks\mhchem@cf@amount%
+%\newtoks\mhchem@cf@sub%
+\newtoks\mhchem@cf@sup%
+\newtoks\mhchem@cf@presub%
+\newtoks\mhchem@cf@presup%
+\def\mhchem@cf@output{%
+ %
+ \if\mhchem@cf@state s%
+ \else\if\mhchem@cf@state 1%
+ \noexpand\mhchem@mathOrText{\noexpand\mhchem@cf@frac\the\mhchem@cf@amount/\noexpand\mhchem@END}%
+ \else%
+ \if\mhchem@option@usenonsimultaneoussubsuperscripts 0\relax%
+ \noexpand\mhchem@chemfive%
+ {\noexpand\mhchem@cf@replaceMath{\the\mhchem@cf@presup}}%
+ {\noexpand\mhchem@cf@replaceMath{\the\mhchem@cf@presub}}%
+ {\the\mhchem@cf@element}%
+ {\noexpand\mhchem@cf@replaceMath{\the\mhchem@cf@amount}}%
+ {\noexpand\mhchem@cf@replaceMathMinusDot{\the\mhchem@cf@sup}}%
+ {}%
+ \else%
+ \noexpand\mhchem@chemfive%
+ {\noexpand\mhchem@cf@replaceMath{\the\mhchem@cf@presup}}%
+ {\noexpand\mhchem@cf@replaceMath{\the\mhchem@cf@presub}}%
+ {\the\mhchem@cf@element}%
+ {\noexpand\mhchem@cf@replaceMath{\the\mhchem@cf@amount}}%
+ {}%
+ {\noexpand\mhchem@cf@replaceMathMinusDot{\the\mhchem@cf@sup}}%
+ \fi%
+ \fi\fi%\fi%
+}
+\def\mhchem@cf@outputReset{%
+ %\showthe\mhchem@cf@element%
+ %\showthe\mhchem@cf@sup%
+ %
+ \mhchem@cf@element={}%
+ \mhchem@cf@amount={}%
+ \mhchem@cf@sup={}%
+ \mhchem@cf@presub={}%
+ \mhchem@cf@presup={}%
+}
+\def\mhchem@cf@outputAndReset#1{%
+ \edef\mhchem@cf@outputAndReset@i{#1={\the#1\mhchem@cf@output}}%
+ \mhchem@cf@outputAndReset@i%
+ %\showthe#1%
+ \mhchem@cf@outputReset%
+}
+
+
+
+%%% frac
+\def\mhchem@cf@frac#1/#2\mhchem@END{%
+ \ifthenelse{\equal{#2}{}}{%
+ #1\mhchem@option@skipAfterAmount%
+ }{%
+ \ensuremath{\mathchoice%
+ {\textstyle%
+ \frac{\mhchem@mathOrText{#1}}{\mhchem@mathOrText{\mhchem@getfirstchar#2\mhchem@ENDgetfirstchar}}\mhchem@option@skipAfterFracAmount}%
+ {\frac{\mhchem@mathOrText{#1}}{\mhchem@mathOrText{\mhchem@getfirstchar#2\mhchem@ENDgetfirstchar}}\mhchem@option@skipAfterFracAmount}%
+ {\frac{\mhchem@mathOrText{#1}}{\mhchem@mathOrText{\mhchem@getfirstchar#2\mhchem@ENDgetfirstchar}}\mhchem@option@skipAfterFracAmount}%
+ {\frac{\mhchem@mathOrText{#1}}{\mhchem@mathOrText{\mhchem@getfirstchar#2\mhchem@ENDgetfirstchar}}\mhchem@option@skipAfterFracAmount}%
+ }%
+ }%
+}%
+\def\mhchem@getfirstchar#1#2\mhchem@ENDgetfirstchar{#1}
+\def\mhchem@getlastchars#1#2\mhchem@ENDgetlastchars{#2}
+
+%%% replaceMath
+ %
+ %
+ %
+\newtoks\mhchem@cf@replaceMath@result
+\newcommand\mhchem@cf@replaceMath[1]{%
+ \mhchem@cf@replaceMath@result={}%
+ \mhchem@cf@replaceMath@continue#1\mhchem@END%
+ %
+ \the\mhchem@cf@replaceMath@result%
+}
+\def\mhchem@cf@replaceMath@i{%
+ \ifx\mhchem@END\mhchem@cf@replaceMath@lookahead%
+ \let\mhchem@cf@replaceMath@action\mhchem@gobble%
+ \else\if\mhchem@lbracechar\mhchem@cf@replaceMath@lookahead%
+ \let\mhchem@cf@replaceMath@action\mhchem@cf@replaceMath@appendNextGroup%
+ \else\if $\mhchem@cf@replaceMath@lookahead%
+ \let\mhchem@cf@replaceMath@action\mhchem@cf@replaceMath@appendMath%
+ \else%
+ \let\mhchem@cf@replaceMath@action\mhchem@cf@replaceMath@appendNextToken%
+ \fi\fi\fi%
+ \mhchem@cf@replaceMath@action%
+}
+%%%
+\def\mhchem@cf@replaceMath@continue{%
+ \futurelet\mhchem@cf@replaceMath@lookahead\mhchem@cf@replaceMath@i%
+}
+\def\mhchem@cf@replaceMath@appendNextGroup#1{%
+ \mhchem@cf@replaceMath@result=\expandafter{\the\mhchem@cf@replaceMath@result{#1}}%
+ \mhchem@cf@replaceMath@continue%
+}
+\def\mhchem@cf@replaceMath@appendNextToken#1{%
+ \mhchem@cf@replaceMath@result=\expandafter{\the\mhchem@cf@replaceMath@result#1}%
+ \mhchem@cf@replaceMath@continue%
+}
+\def\mhchem@cf@replaceMath@appendMath#1#2${%
+ \mhchem@cf@replaceMath@result=\expandafter{\the\mhchem@cf@replaceMath@result\text{\ensuremath{#2}}}%
+ \mhchem@cf@replaceMath@continue%
+}%
+%%% replaceMathMinusDot
+%%%
+%%%
+%%%
+%%%
+%%%
+\newtoks\mhchem@cf@replaceMathMinusDot@result
+\newcommand\mhchem@cf@replaceMathMinusDot[1]{%
+ \mhchem@cf@replaceMathMinusDot@result={}%
+ \mhchem@cf@replaceMathMinusDot@continue#1\mhchem@END%
+ %
+ \the\mhchem@cf@replaceMathMinusDot@result%
+}
+\def\mhchem@cf@replaceMathMinusDot@i{%
+ \ifx\mhchem@END\mhchem@cf@replaceMathMinusDot@lookahead%
+ \let\mhchem@cf@replaceMathMinusDot@action\mhchem@gobble%
+ \else\if -\mhchem@cf@replaceMathMinusDot@lookahead\relax%
+ \def\mhchem@cf@replaceMathMinusDot@action{\mhchem@cf@replaceMathMinusDot@append{\mhchem@mathOrText@ii{-}{\mhchem@option@textminus}}}%
+ \else\if .\mhchem@cf@replaceMathMinusDot@lookahead\relax%
+ \def\mhchem@cf@replaceMathMinusDot@action{\mhchem@cf@replaceMathMinusDot@append{\ensuremath{\textbf{\fontfamily{cmr}\selectfont\textperiodcentered}}}}%
+ \else\if\mhchem@lbracechar\mhchem@cf@replaceMathMinusDot@lookahead%
+ \let\mhchem@cf@replaceMathMinusDot@action\mhchem@cf@replaceMathMinusDot@appendNextGroup%
+ \else\if $\mhchem@cf@replaceMathMinusDot@lookahead%
+ \let\mhchem@cf@replaceMathMinusDot@action\mhchem@cf@replaceMathMinusDot@appendMath%
+ \else%
+ \let\mhchem@cf@replaceMathMinusDot@action\mhchem@cf@replaceMathMinusDot@appendNextToken%
+ \fi\fi\fi\fi\fi%
+ \mhchem@cf@replaceMathMinusDot@action%
+}
+%%%
+\def\mhchem@cf@replaceMathMinusDot@continue{%
+ \futurelet\mhchem@cf@replaceMathMinusDot@lookahead\mhchem@cf@replaceMathMinusDot@i%
+}
+\def\mhchem@cf@replaceMathMinusDot@append#1#2{%
+ \mhchem@cf@replaceMathMinusDot@result=\expandafter{\the\mhchem@cf@replaceMathMinusDot@result#1}%
+ \mhchem@cf@replaceMathMinusDot@continue%
+}
+\def\mhchem@cf@replaceMathMinusDot@appendNextGroup#1{%
+ \mhchem@cf@replaceMathMinusDot@result=\expandafter{\the\mhchem@cf@replaceMathMinusDot@result{#1}}%
+ \mhchem@cf@replaceMathMinusDot@continue%
+}
+\def\mhchem@cf@replaceMathMinusDot@appendNextToken#1{%
+ \mhchem@cf@replaceMathMinusDot@result=\expandafter{\the\mhchem@cf@replaceMathMinusDot@result#1}%
+ \mhchem@cf@replaceMathMinusDot@continue%
+}
+\def\mhchem@cf@replaceMathMinusDot@appendMath#1#2${%
+ \mhchem@cf@replaceMathMinusDot@result=\expandafter{\the\mhchem@cf@replaceMathMinusDot@result\text{\ensuremath{#2}}}%
+ \mhchem@cf@replaceMathMinusDot@continue%
+}%
+
+
+%%%%%%%%%%%%%%%%%%%%%
+%%% @chemfive %%%
+%%%%%%%%%%%%%%%%%%%%%
+%%%
+%%%
+%%%
+%%%
+%%%
+%%%
+%%%
+\newcommand*\mhchem@chemfive[6]{%
+ {%
+ \mhchem@prepostscript%
+ [\mhchem@mathOrText{\smash[t]{2+}}]%
+ {\mhchem@mathOrText{#1}}%
+ {\mhchem@mathOrText{#2}}%
+ {\mhchem@mathOrText@ii{\mhchem@option@mathFont{#3}}{\text{#3}}}%
+ {\mhchem@mathOrText{#4}}%
+ {\mhchem@mathOrText{#5}}%
+ {\mhchem@mathOrText{#6}}%
+ }%
+}
+
+%%% @prepostscript
+%%%
+%%%
+%%%
+%%%
+%%%
+%%%
+%%%
+\newlength\mhchem@prepostscript@tmp@i%
+\newlength\mhchem@prepostscript@tmp@ii%
+\newcommand*\mhchem@prepostscript[7][]{%
+ \m@th%
+ \ensuremath{%
+ \setlength{\mhchem@prepostscript@tmp@i}{\widthof{$#2#3$}}%
+ \ifdim\mhchem@prepostscript@tmp@i>0pt%
+ \setlength{\mhchem@prepostscript@tmp@i}{\widthof{${}^{#2}$}}% [1]
+ \setlength{\mhchem@prepostscript@tmp@ii}{\widthof{${}_{#3}$}}% [1]
+ \ifdim\mhchem@prepostscript@tmp@i<\mhchem@prepostscript@tmp@ii%
+ \setlength{\mhchem@prepostscript@tmp@i}{\mhchem@prepostscript@tmp@ii}\fi% [1]
+ \vphantom{#4}% [2]
+ {}%
+ ^{%
+ \mhchem@mathboxright{\mhchem@prepostscript@tmp@i}{% [1]
+ \vphantom{#6#7}% [2]
+ \vphantom{#1}% [4]
+ #2%
+ }% [1]
+ }%
+ _{%
+ \mhchem@mathboxright{\mhchem@prepostscript@tmp@i}{% [1]
+ \vphantom{#5}% [2]
+ #3%
+ }% [1]
+ }%
+ \mhchem@minispace% [3]
+ \fi%
+ #4%
+ \setlength{\mhchem@prepostscript@tmp@i}{\widthof{$#5#6$}}%
+ \ifdim\mhchem@prepostscript@tmp@i>0pt%
+ _{%
+ \vphantom{#3}% [2]
+ #5%
+ }%
+ ^{%
+ \vphantom{#2#7}% [2]
+ \vphantom{#1}% [4]
+ #6
+ }%
+ \fi%
+ \setlength{\mhchem@prepostscript@tmp@i}{\widthof{$#7$}}%
+ \ifdim\mhchem@prepostscript@tmp@i>0pt%
+ \mhchem@minispace% [3]
+ {}%
+ _{\vphantom{#3#5}}% [2]
+ ^{%
+ \vphantom{#2#6}% [2]
+ \vphantom{#1}% [4]
+ #7%
+ }%
+ \fi%
+ }%
+%
+%
+%
+%
+%
+%
+%
+}
+
+%%% @mathbox
+%%%
+%%%
+\newcommand*\mhchem@mathbox[2][]{%
+ \mathchoice%
+ {\mhchem@mathbox@ii{\displaystyle}{#1}{#2}}%
+ {\mhchem@mathbox@ii{\textstyle}{#1}{#2}}%
+ {\mhchem@mathbox@ii{\scriptstyle}{#1}{#2}}%
+ {\mhchem@mathbox@ii{\scriptscriptstyle}{#1}{#2}}}%
+\newlength\mhchem@mathbox@tmp@i
+\newlength\mhchem@mathbox@tmp@ii
+\newcommand*\mhchem@mathbox@ii[3]{%
+ \setlength{\mhchem@mathbox@tmp@i}{\widthof{\ensuremath{#1#2}}}%
+ \setlength{\mhchem@mathbox@tmp@ii}{\widthof{\ensuremath{#1#3}}}%
+ \ifdim\mhchem@mathbox@tmp@i<\mhchem@mathbox@tmp@ii%
+ \mhchem@mathbox@i{#3}%
+ \else%
+ \makebox[\mhchem@mathbox@tmp@i]{\ensuremath{#1#3}}%
+ \fi}
+\newcommand*\mhchem@mathbox@i[1]{\mathchoice%
+ {\mbox{\ensuremath{\displaystyle#1}}}%
+ {\mbox{\ensuremath{\textstyle#1}}}%
+ {\mbox{\ensuremath{\scriptstyle#1}}}%
+ {\mbox{\ensuremath{\scriptscriptstyle#1}}}}
+
+%%% @mathboxright
+\newcommand*\mhchem@mathboxright[2]{\mathchoice%
+ {\makebox[#1][r]{\ensuremath{\displaystyle#2}}}%
+ {\makebox[#1][r]{\ensuremath{\textstyle#2}}}%
+ {\makebox[#1][r]{\ensuremath{\scriptstyle#2}}}%
+ {\makebox[#1][r]{\ensuremath{\scriptscriptstyle#2}}}}
+
+%%% @minispace
+%%%
+%%%
+\newlength\mhchem@minispace@tmp
+\newcommand*\mhchem@minispace{%
+ \setlength{\mhchem@minispace@tmp}{0pt-\widthof{${}^8_8$}+%
+ \widthof{$\text{C}^8_8$}-\widthof{$\text{C}^{}_{}$}}% [3]
+ \kern\mhchem@minispace@tmp%
+}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%% Package Options %%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\mhchem@option@version{0}
+\define@key{mhchem}{version}{\def\mhchem@option@version{#1}}
+
+\def\mhchem@option@mathFont{\mathrm}
+\def\mhchem@option@textFont{}
+\define@key{mhchem}{textfontcommand}{\def\mhchem@option@textFont{#1}}
+\define@key{mhchem}{textfontname}{\def\mhchem@option@textFont{\csname#1\endcsname}}
+\define@key{mhchem}{mathfontcommand}{\def\mhchem@option@mathFont{#1}}
+\define@key{mhchem}{mathfontname}{\def\mhchem@option@mathFont{\csname#1\endcsname}}
+\define@key{mhchem}{font}{%
+ \ifthenelse{\equal{sf}{#1}}{%
+ \def\mhchem@option@textFont{\sffamily}%
+ \def\mhchem@option@mathFont{\mathsf}%
+ }{\ifthenelse{\equal{}{#1}}{%
+ \def\mhchem@option@textFont{}%
+ \def\mhchem@option@mathFont{\mathrm}%
+ }{\PackageError{mhchem}{Font option `#1' unknown}}}%
+}
+
+%
+\def\mhchem@option@alwaystextmode{0}%
+
+\newlength\mhchem@option@minussidebearingleft
+\newlength\mhchem@option@minussidebearingright
+\setlength\mhchem@option@minussidebearingleft{0.06em}
+\setlength\mhchem@option@minussidebearingright{0.11em}
+\define@key{mhchem}{minus-sidebearing-left}{\setlength\mhchem@option@minussidebearingleft{#1}}
+\define@key{mhchem}{minus-sidebearing-right}{\setlength\mhchem@option@minussidebearingright{#1}}
+
+%
+%
+%
+%
+%
+%
+%
+%
+%
+%
+%
+%
+%
+%
+%
+%
+
+% Replicate layout of MS Word (superscript after subscript, not over)
+\def\mhchem@option@usenonsimultaneoussubsuperscripts{0}%
+% There is no key defined for this option, as to promote good typographic conventions.
+
+\mhchem@definearrows{font}
+\define@key{mhchem}{arrows}{%
+ \ifthenelse{\equal{pgf}{#1} \or \equal{pgf-filled}{#1}}{%
+ \RequirePackage{pgf}% for finding the tikz package more easily
+ \RequirePackage{tikz}%
+ }{}%
+ \mhchem@definearrows{#1}%
+}
+
+\def\mhchem@option@skipAfterAmount{\,}
+\define@key{mhchem}{skip-after-amount}{\def\mhchem@option@skipAfterAmount{#1}\def\mhchem@option@skipAfterFracAmount{#1}}
+\def\mhchem@option@skipAfterFracAmount{\,}
+\define@key{mhchem}{skip-after-frac-amount}{\def\mhchem@option@skipAfterFracAmount{#1}}
+%
+
+\def\mhchem@option@textminus{--}
+\define@key{mhchem}{textminus}{\def\mhchem@option@textminus{#1}}
+%
+
+\def\mhchem@option@textcdot{\cdot}
+\define@key{mhchem}{textcdot}{\def\mhchem@option@textcdot{#1}}
+%
+
+%%% begin: standard keyval handling as in many other packages
+\def\ProcessOptionsWithKV#1{%
+ \let\@tempc\relax%
+ \let\mhchem@tempa\@empty%
+ \@for\CurrentOption:=\@classoptionslist\do{%
+ \@ifundefined{KV@#1@\CurrentOption}%
+ {}%
+ {%
+ \edef\mhchem@tempa{\mhchem@tempa,\CurrentOption,}%
+ \@expandtwoargs\@removeelement\CurrentOption%
+ \@unusedoptionlist\@unusedoptionlist%
+ }%
+ }%
+ \edef\mhchem@tempa{%
+ \noexpand\setkeys{#1}{%
+ \mhchem@tempa\@ptionlist{\@currname.\@currext}%
+ }%
+ }%
+ \mhchem@tempa%
+ \let\CurrentOption\@empty%
+ \AtEndOfPackage{\let\@unprocessedoptions\relax}%
+}
+\ProcessOptionsWithKV{mhchem}\relax
+%%% end:
+
+\define@key{mhchem}{arrows}{\mhchem@definearrows{#1}}%
+
+\newcommand*\mhchemoptions[1]{\setkeys{mhchem}{#1}}
+
+\ifnum 0=\mhchem@option@version%
+ \PackageWarningNoLine{mhchem}{%
+ You did not specify a 'version' option for the mhchem\MessageBreak
+ package. If you are about to create a new document,\MessageBreak
+ please write \string\usepackage[version=3]{mhchem} in your preamble in\MessageBreak
+ order to use the most recent version of mhchem}%
+ \def\mhchem@option@version{3}%
+\else\ifnum 4=\mhchem@option@version%
+ \PackageWarningNoLine{mhchem}{%
+ You are using version 3.09 of mhchem. You entered\MessageBreak
+ the parameter version=4. This means, you are using\MessageBreak
+ some beta features of mhchem that are subject\MessageBreak
+ to change without notice}%
+\fi\fi%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%% misc %%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ifnum 4>\mhchem@option@version
+ \newcommand*\mhchem@cmath[1]{\ensuremath{\text{\ensuremath{#1}}}}%
+ \newcommand*\cmath[1]{\mhchem@cmath{#1}}
+ \newcommand*\cf[2][]{\mhchem@cf[#1]{#2}}
+\fi
+
+
+
+
+
+
+
+
+
+%
+%
+%
+%
+%
+%
+%
+%
+%
+%
+%
+%
+%
+%
+%
+%
+
+%
+\def\mhchem@END{}
+\def\mhchem@macro{}
+\def\mhchem@empty{}
+%
+\edef\mhchem@lbracechar{\string{} %}
+\def\mhchem@gobble#1{}%
+%
+%
\ No newline at end of file
diff --git a/packages/extern/parskip.sty b/packages/extern/parskip.sty
new file mode 100644
index 0000000..8b29613
--- /dev/null
+++ b/packages/extern/parskip.sty
@@ -0,0 +1,33 @@
+% This is PARSKIP.STY by H.Partl, TU Wien, as of 19 Jan 1989.
+% Document Style Option to be used with any style and with any size.
+% It produces the following Paragraph Layout:
+% Zero Parindent and non-zero Parskip. The stretchable glue in \parskip
+% helps LaTeX in finding the best place for page breaks.
+
+\parskip=0.5\baselineskip \advance\parskip by 0pt plus 2pt
+\parindent=\z@
+
+% To accompany this, the vertical spacing in the list environments is changed
+% to use the same as \parskip in all relevant places (for normalsize only):
+% \parsep = \parskip
+% \itemsep = \z@ % add nothing to \parskip between items
+% \topsep = \z@ % add nothing to \parskip before first item
+
+\def\@listI{\leftmargin\leftmargini
+ \topsep\z@ \parsep\parskip \itemsep\z@}
+\let\@listi\@listI
+\@listi
+
+\def\@listii{\leftmargin\leftmarginii
+ \labelwidth\leftmarginii\advance\labelwidth-\labelsep
+ \topsep\z@ \parsep\parskip \itemsep\z@}
+
+\def\@listiii{\leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii\advance\labelwidth-\labelsep
+ \topsep\z@ \parsep\parskip \itemsep\z@}
+
+% Note that listiv, listv and listvi don't change vertical parameters.
+
+\endinput
+
+
diff --git a/packages/extern/pbox.sty b/packages/extern/pbox.sty
new file mode 100644
index 0000000..d93146d
--- /dev/null
+++ b/packages/extern/pbox.sty
@@ -0,0 +1,61 @@
+%%
+%% This is file `pbox.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pbox.dtx (with options: `style')
+%%
+%% Copyright (C) 2003 Simon Law
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{pbox}[2003/04/06 v1.0 Dynamic parboxes]
+\RequirePackage{calc}
+\RequirePackage{ifthen}
+\newcommand{\settominwidth}[3][\columnwidth]{%
+ \settowidth{#2}{\begin{tabular}{@{}l@{}}#3\end{tabular}}%
+ \ifthenelse{\lengthtest{#1<#2}}{\setlength{#2}{#1}}}
+\newcommand{\widthofpbox}[1]{%
+ \widthof{\begin{tabular}{@{}l@{}}#1\end{tabular}}}
+\DeclareRobustCommand*{\pbox}[1][]{%
+ \def\pb@xargi{#1}%
+ \pb@xi}
+\DeclareRobustCommand*{\pb@xi}[1][]{%
+ \def\pb@xargii{#1}%
+ \pb@xii}
+\DeclareRobustCommand*{\pb@xii}[1][]{%
+ \def\pb@xargiii{#1}%
+ \pb@xiii}
+\newlength{\pb@xlen}
+\DeclareRobustCommand{\pb@xiii}[2]{%
+ \settominwidth[#1]{\pb@xlen}{#2}%
+ \ifthenelse{\equal{\pb@xargi}{}}
+ {\parbox{\pb@xlen}{#2}}
+ {\ifthenelse{\equal{\pb@xargii}{}}
+ {\ifthenelse{\equal{\pb@xargiii}{}}
+ {\parbox[\pb@xargi]{\pb@xlen}{#2}}
+ {\parbox[\pb@xargi][][\pb@xargiii]{\pb@xlen}{#2}}}
+ {\ifthenelse{\equal{\pb@xargiii}{}}
+ {\parbox[\pb@xargi][\pb@xargii]{\pb@xlen}{#2}}
+ {\parbox[\pb@xargi][\pb@xargii][\pb@xargiii]{\pb@xlen}{#2}}}}%
+ \def\pb@xargi\relax
+ \def\pb@xargii\relax
+ \def\pb@xargiii\relax
+ \makebox[0pt]{}}
+\endinput
+%%
+%% End of file `pbox.sty'.
diff --git a/packages/extern/scientific.log b/packages/extern/scientific.log
new file mode 100644
index 0000000..a12a5ab
--- /dev/null
+++ b/packages/extern/scientific.log
@@ -0,0 +1,216 @@
+This is pdfTeX, Version 3.1415926-2.4-1.40.13 (TeX Live 2012/Debian) (format=pdflatex 2013.1.7) 12 FEB 2013 20:15
+entering extended mode
+ restricted \write18 enabled.
+ file:line:error style messages enabled.
+ %&-line parsing enabled.
+**scientific.sty
+(./scientific.sty
+LaTeX2e <2011/06/27>
+Babel and hyphenation patterns for english, dumylang, nohyphenation, ng
+erman, german, swissgerman, ngerman-x-2012-05-30, german-x-2012-05-30, loaded.
+
+LaTeX Warning: You have requested package `',
+ but the package provides `scientific'.
+
+Package: scientific 2013/01/12 Scientific Macros for LaTeX4EI
+(./xifthen.sty
+Package: xifthen 2009/04/17 v1.3 Extended ifthen features
+ (/usr/share/texlive/texmf-dist/tex/latex/etex-pkg/etex.sty
+Package: etex 1998/03/26 v2.0 eTeX basic definition package (PEB)
+\et@xins=\count79
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty
+Package: calc 2007/08/22 v4.3 Infix arithmetic (KKT,FJ)
+\calc@Acount=\count80
+\calc@Bcount=\count81
+\calc@Adimen=\dimen102
+\calc@Bdimen=\dimen103
+\calc@Askip=\skip41
+\calc@Bskip=\skip42
+LaTeX Info: Redefining \setlength on input line 76.
+LaTeX Info: Redefining \addtolength on input line 77.
+\calc@Ccount=\count82
+\calc@Cskip=\skip43
+)
+(/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty
+Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/ifmtarg/ifmtarg.sty
+Package: ifmtarg 2009/09/02 v1.2a check for an empty argument
+))
+(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty
+Package: amsmath 2000/07/18 v2.13 AMS math features
+\@mathmargin=\skip44
+
+For additional information on amsmath, use the `?' option.
+(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty
+Package: amstext 2000/06/29 v2.01
+
+(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty
+File: amsgen.sty 1999/11/30 v2.0
+\@emptytoks=\toks14
+\ex@=\dimen104
+))
+(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty
+Package: amsbsy 1999/11/29 v1.2d
+\pmbraise@=\dimen105
+)
+(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty
+Package: amsopn 1999/12/14 v2.01 operator names
+)
+\inf@bad=\count83
+LaTeX Info: Redefining \frac on input line 211.
+\uproot@=\count84
+\leftroot@=\count85
+LaTeX Info: Redefining \overline on input line 307.
+\classnum@=\count86
+\DOTSCASE@=\count87
+LaTeX Info: Redefining \ldots on input line 379.
+LaTeX Info: Redefining \dots on input line 382.
+LaTeX Info: Redefining \cdots on input line 467.
+\Mathstrutbox@=\box26
+\strutbox@=\box27
+\big@size=\dimen106
+LaTeX Font Info: Redeclaring font encoding OML on input line 567.
+LaTeX Font Info: Redeclaring font encoding OMS on input line 568.
+\macc@depth=\count88
+\c@MaxMatrixCols=\count89
+\dotsspace@=\muskip10
+\c@parentequation=\count90
+\dspbrk@lvl=\count91
+\tag@help=\toks15
+\row@=\count92
+\column@=\count93
+\maxfields@=\count94
+\andhelp@=\toks16
+\eqnshift@=\dimen107
+\alignsep@=\dimen108
+\tagshift@=\dimen109
+\tagwidth@=\dimen110
+\totwidth@=\dimen111
+\lineht@=\dimen112
+\@envbody=\toks17
+\multlinegap=\skip45
+\multlinetaggap=\skip46
+\mathdisplay@stack=\toks18
+LaTeX Info: Redefining \[ on input line 2666.
+LaTeX Info: Redefining \] on input line 2667.
+) (./accents.sty
+Package: accents 2006/05/12 v1.3 Math Accent Tools
+\cc@skew=\dimen113
+\cc@wd=\dimen114
+\cc@code=\count95
+\cc@group=\count96
+\cc@skewchar=\count97
+)
+(/usr/share/texmf/tex/latex/xcolor/xcolor.sty
+Package: xcolor 2007/01/21 v2.11 LaTeX color extensions (UK)
+
+(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/color.cfg
+File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive
+)
+Package xcolor Info: Driver file: pdftex.def on input line 225.
+
+(/usr/share/texlive/texmf-dist/tex/latex/pdftex-def/pdftex.def
+File: pdftex.def 2011/05/27 v0.06d Graphics/color for pdfTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty
+Package: infwarerr 2010/04/08 v1.3 Providing info/warning/error messages (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
+Package: ltxcmds 2011/11/09 v1.22 LaTeX kernel commands for general use (HO)
+)
+\Gread@gobject=\count98
+)
+Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1337.
+Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1341.
+Package xcolor Info: Model `RGB' extended on input line 1353.
+Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1355.
+Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1356.
+Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1357.
+Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1358.
+Package xcolor Info: Model `Gray' substituted by `gray' on input line 1359.
+Package xcolor Info: Model `wave' substituted by `hsb' on input line 1360.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty
+Package: amssymb 2009/06/22 v3.00
+
+(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty
+Package: amsfonts 2009/06/22 v3.00 Basic AMSFonts support
+\symAMSa=\mathgroup4
+\symAMSb=\mathgroup5
+LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold'
+(Font) U/euf/m/n --> U/euf/b/n on input line 96.
+)) (./esint.sty
+Package: esint
+\symlargesymbolsA=\mathgroup6
+)
+(./mhchem.sty
+Package: mhchem 2011/06/03 v3.11 for typesetting chemical formulae
+ (./twoopt.sty
+Package: twoopt 1999/04/12 v1.3 Definitions with two optional arguments (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
+Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
+\KV@toks@=\toks19
+)
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
+Package: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR)
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
+Package: trig 1999/03/16 v1.09 sin cos tan (DPC)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/graphics.cfg
+File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live
+)
+Package graphics Info: Driver file: pdftex.def on input line 91.
+)
+\tok@mhchem@ce@iii=\toks20
+\mhchem@arrowminlength=\skip47
+\mhchem@arrows@box=\box28
+\mhchem@arrowlength@pgf=\skip48
+\mhchem@arrowminlength@pgf=\skip49
+\mhchem@bondwidth=\skip50
+\mhchem@bondheight=\skip51
+\mhchem@smallbondwidth@tmpA=\skip52
+\mhchem@smallbondwidth@tmpB=\skip53
+\mhchem@smallbondwidth=\skip54
+\mhchem@cf@result=\toks21
+\mhchem@cf@element=\toks22
+\mhchem@cf@amount=\toks23
+\mhchem@cf@sup=\toks24
+\mhchem@cf@presub=\toks25
+\mhchem@cf@presup=\toks26
+\mhchem@cf@replaceMath@result=\toks27
+\mhchem@cf@replaceMathMinusDot@result=\toks28
+\mhchem@prepostscript@tmp@i=\skip55
+\mhchem@prepostscript@tmp@ii=\skip56
+\mhchem@mathbox@tmp@i=\skip57
+\mhchem@mathbox@tmp@ii=\skip58
+\mhchem@minispace@tmp=\skip59
+\mhchem@option@minussidebearingleft=\skip60
+\mhchem@option@minussidebearingright=\skip61
+
+./mhchem.sty:2039: Missing \endcsname inserted.
+
+ \@classoptionslist
+l.2039 \ProcessOptionsWithKV{mhchem}
+ \relax
+?
+./mhchem.sty:2039: Emergency stop.
+
+ \@classoptionslist
+l.2039 \ProcessOptionsWithKV{mhchem}
+ \relax
+End of file on the terminal!
+
+
+Here is how much of TeX's memory you used:
+ 2404 strings out of 495007
+ 30707 string characters out of 3179691
+ 96772 words of memory out of 3000000
+ 5619 multiletter control sequences out of 15000+200000
+ 3640 words of font info for 14 fonts, out of 3000000 for 9000
+ 14 hyphenation exceptions out of 8191
+ 27i,0n,35p,273b,34s stack positions out of 5000i,500n,10000p,200000b,50000s
+./mhchem.sty:2039: ==> Fatal error occurred, no output PDF file produced!
diff --git a/packages/extern/scientific.sty b/packages/extern/scientific.sty
new file mode 100644
index 0000000..c946aa4
--- /dev/null
+++ b/packages/extern/scientific.sty
@@ -0,0 +1,257 @@
+% Wissenschaftliche Macros für LaTeX4EI Stand 24.01.13
+% Erstellt von Emanuel Regnath, Martin Zellner
+%
+% Lizenz: Dieses package darf nur für Dokumente für LaTeX4EI verwendet werden!
+% Bei anderem Verwendungszweck bitte Erlaubnis einholen: info@latex4ei.de
+%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{scientific}[2013/01/12 Scientific Macros for LaTeX4EI]
+
+
+% Benötigte Pakete laden
+\RequirePackage{xifthen} % If Then Else Anweisungen
+\RequirePackage{amsmath} % erlaubt mathematische Formeln
+\RequirePackage{accents} % Für eigene Ableitungspunkte benötigt
+\RequirePackage{xcolor} % Farbiger Text möglich
+
+% Zusätzliche Pakete
+\RequirePackage{amssymb} % Verschiedene Symbole
+\RequirePackage{esint} % erweiterte Integralsymbole
+\RequirePackage[version=3]{mhchem} % chemistry \ce
+\RequirePackage[strict]{siunitx} % SI gerechte Darstellung von Zahlen
+
+\RequirePackage{boites}
+
+% .:: Eigenschaften setzen
+% ======================================================================
+
+% Einrückung bei itemize verkleinern:
+\setlength{\itemindent}{0em}
+\setlength\leftmargini{1.8em}
+
+
+% .:: Externe Befehle
+% ======================================================================
+
+% \utilde: aus Package undertilde.sty
+\newlength\knuthian@fdfive
+\def\mathpal@save#1{\let\was@math@style=#1\relax}
+\def\utilde#1{\mathpalette\mathpal@save
+ {\setbox124=\hbox{$\was@math@style#1$}%
+\setbox125=\hbox{$\fam=3\global\knuthian@fdfive=\fontdimen5\font$}
+\setbox125=\hbox{$\widetilde{\vrule height 0pt depth 0pt width \wd124}$}%
+ \baselineskip=1pt\relax
+ \vtop{\copy124\copy125\vskip -\knuthian@fdfive}}}
+
+% Laplace Befehl aus trfsigns.sty
+\newcommand{\laplace}{\mbox{\setlength{\unitlength}{0.1em}
+ \begin{picture}(25,10)
+ \put(3,3){\circle{4}}
+ \put(5,3){\line(1,0){13}}
+ \put(19,3){\circle*{4}}
+ \end{picture}}}
+% Fourier Befehl von Laplace übernehmen
+\newcommand{\fourier}{\laplace}
+\newcommand{\FT}{\laplace} % Fourier Transform
+\newcommand{\LT}{\laplace} % Laplace Transform
+\newcommand{\DFT}{\laplace} % Discrete Fourier Transform
+\newcommand{\DTFT}{\laplace} % Discrete Time Fourier Transform
+\newcommand{\ZT}{\laplace} % Z-Transform
+
+
+% .:: Eigene Befehle und Abkürzungen
+% ======================================================================
+
+% Bestehende Befehle sichern
+\let\oldvec = \vec
+\let\olddot = \dot
+\let\oldfrac = \frac
+\let\oldlaplace = \laplace
+
+% Eigene Bruchdarstellung:
+\renewcommand{\frac}[3][]{%
+ \ifthenelse{\isempty{#1}}%
+ {\oldfrac{#2}{#3}}
+ {\genfrac{}{}{}{}{\raisebox{#1}[\height+0.1em][\depth]{$\scriptstyle #2$}}{\raisebox{-#1}[\height][\depth + 0.2em]{$\scriptstyle #3$}}}
+}
+
+
+% Eigene Befehle
+\newcommand{\ul}[1]{\ensuremath{\underline{#1}}} % Untersteichen
+\newcommand{\ol}[1]{\ensuremath{\overline{#1}}} % Überstreichen
+\newcommand{\bs}[1]{\ensuremath{\boldsymbol{#1}}} % Fett und kursiv im mathmode
+\newcommand{\iset}[2]{\ensuremath{\bigl\{ \bigl. #1 \, \bigr| \, #2 \bigr\}}} % intensional set
+\newcommand{\eset}[1]{\ensuremath{\bigl\{#1\bigr\}}} % extensional set
+\newcommand{\norm}[1]{\ensuremath{\left\|#1\right\|}} % Norm
+\newcommand{\mat}[1]{\ensuremath{\begin{bmatrix} #1 \end{bmatrix}}} % Matrix
+\newcommand{\ma}[1]{\ensuremath{\utilde{\boldsymbol {#1}}}} % Matrixsymbol
+\newcommand{\tma}[3]{\ensuremath{{}_{#1} \ma #2_#3 }} % Trafomatrix
+\newcommand{\vect}[1]{\ensuremath{\begin{pmatrix} #1 \end{pmatrix}}} % Vektor
+\newcommand{\mvect}[1]{\ensuremath{\left.\begin{matrix} #1 \end{matrix}\right]}}% Matrixvektor
+\newcommand{\tensor}[1]{\ensuremath{\underline{\underline{\boldsymbol #1}}}} % Tensor
+\newcommand{\gk}[1]{\ensuremath{\left\lfloor#1\right\rfloor}} % Gaußklammer
+\newcommand{\sprod}[2]{\ensuremath{\left\langle #1, #2 \right\rangle }} % Skalarprodukt
+\newcommand{\abs}[1]{\ensuremath{\left\vert#1\right\vert}} % Betrag
+\newcommand{\chem}[1]{\ensuremath{\displaystyle{\mathrm{#1}}}} % chemische Formeln die gut aussehen ;)
+\newcommand{\ir}[1]{\sf #1} % index roman: Indizes aufrecht schreiben
+\newcommand{\interior}[1]{\ensuremath{\overset{{}_\circ}{#1}}} % Das Innere
+\newcommand{\rom}[1]{$\underline{\overline{\textrm{#1}}}$} % Römische Zahlen
+
+
+% Komplexe und Hyperkomplexe Zahlen
+\newcommand{\cx}[1]{\boldsymbol{#1}} % komplexe Zahl
+\newcommand{\cxc}[1]{\ensuremath{\boldsymbol #1^*}} % Konjugiert komplexe Zahl
+\newcommand{\hx}[1]{\ensuremath{\mathfrak #1}} % hyperkomplexe Zehl
+\renewcommand{\i}{\ensuremath{\mathrm{i}}} % imaginary unit
+\renewcommand{\j}{\ensuremath{\mathrm{j}}} % imaginary unit
+\renewcommand{\k}{\ensuremath{\mathrm{k}}} % imaginary unit
+
+% Überschreibungen
+\renewcommand{\vec}[1]{\ensuremath{\underline{\boldsymbol {#1}}}} % Vektor fett und unterstrichen
+\renewcommand{\emph}[1]{\textbf{#1}} % Hervorhebungen fett
+\renewcommand*{\dot}[1]{\accentset{\mbox{\textrm{\large\bfseries .}} }{#1}} % Dicker Ableitungspunkt
+\renewcommand*{\ddot}[1]{\accentset{\mbox{\textrm{\large\bfseries .\hspace{-0.25ex}.}}}{#1}} % Dicker Doppelableitungspunkt
+\renewcommand*{\dddot}[1]{\accentset{\mbox{$\overset{\textrm{\large\bfseries .}}{\textrm{\large\bfseries.\hspace{-0.25ex}.}}$}}{#1}}
+
+% Abkürzungen für Symbole
+\newcommand{\Ra}{\ensuremath{\Rightarrow}} % Rightarrow
+\newcommand{\ra}{\ensuremath{\rightarrow}} % rightarrow
+\newcommand{\lra}{\ensuremath{\longrightarrow}} % Longrightarrow
+\newcommand{\bdot}{\ensuremath{\boldsymbol \cdot}} % Dicker Punkt für Skalarprodukt
+\newcommand{\svdots}{\ensuremath{\olddot :}} % small vertical dots
+\newcommand{\shdots}{\ensuremath{\!\cdot \!\cdot\!\cdot\!}} % small horizontal dots
+\newcommand{\diff}{\ensuremath{\ \mathrm d}} % differentielles Delta
+
+\newcommand{\capdot}{\cap\hspace{-0.84em}\cdot\hspace{0.5em}} % Schnittmenge bzw. AND
+\let\cupplus\uplus % Vereinigunsmenge bzw. OR
+
+
+ % Abkürzungen für Mengensymbole
+ \DeclareMathOperator{\N}{\mathbb N} % Natürliche Zahlen
+ \DeclareMathOperator{\R}{\mathbb R} % Reele Zahlen
+ \DeclareMathOperator{\C}{\mathbb C} % Komplexe Zahlen
+ \DeclareMathOperator{\K}{\mathbb K} % Reele oder komplexe Zahlen
+ \DeclareMathOperator{\B}{\mathbb B} % Binäre Zahlen 1,0
+ \def\O{\operatorname{\mathcal O}} % Landau
+ %\def\P{\operatorname{\mathbb P}} % Primzahlen
+ \DeclareMathOperator{\lpo}{\Delta} % Laplace Operator
+
+
+
+% Aufrechtschrift für Funktionen
+\DeclareMathOperator{\grad}{grad} % Gradient
+\def\div{\operatorname{div}} % Divergenz
+\DeclareMathOperator{\rot}{rot} % Rotation
+\DeclareMathOperator{\Sp}{Sp} % Spur
+\DeclareMathOperator{\ggT}{ggT} % ggT
+\DeclareMathOperator{\sgn}{sgn} % Signum
+\DeclareMathOperator{\sinc}{sinc} % Sinus Cardinalis
+\newcommand{\heavi}{\ensuremath{\Theta}} % Heaviside Funktion
+\DeclareMathOperator{\const}{const.} % Konstante
+\DeclareMathOperator{\rect}{rect} % Rectangular
+\DeclareMathOperator{\tri}{tri} % Tri
+
+
+% Stochastische Befehle:
+\renewcommand{\P}{\textsf{P}} % Wahrscheinlichkeitsmaß
+\DeclareMathOperator{\F}{\mathbb F} % Ereignisalgebra
+\DeclareMathOperator{\X}{\textit{X}} % Zufallsvariable X
+\DeclareMathOperator{\Y}{\textit{Y}} % Zufallsvariable Y
+\DeclareMathOperator{\Z}{\textit{Z}} % Zufallsvariable Z
+\DeclareMathOperator{\E}{\textsf{E}} % Erwartungswert
+\newcommand{\ew}[1]{\textit{E} \left[ #1 \right]} % Erwartungswert (mit Parameter)
+\DeclareMathOperator{\Var}{\textsf{Var}} % Varianz
+\DeclareMathOperator{\Cov}{\textsf{Cov}} % Kovarianz
+
+
+% Eigene Tabellenlinien
+\def\trule{\noalign{\vspace{1pt}\hrule\hrule\vspace{2pt}}} % top rule
+\def\mrule{\noalign{\vspace{1pt}\hrule\vspace{2pt}}} % middle rule
+\def\brule{\noalign{\vspace{2pt}\hrule\hrule\vspace{1pt}}} % bottom rule
+
+
+
+
+% .:: Farbige Elemente
+% ======================================================================
+
+\definecolor{lightblue}{RGB}{235,235,255}
+\definecolor{lightred}{RGB}{255,240,240}
+\definecolor{lightgreen}{RGB}{240,255,240}
+\definecolor{lightyellow}{RGB}{255,255,240}
+\definecolor{lightblue}{RGB}{220, 240, 247}
+\definecolor{darkblue}{RGB}{23,110,138}
+\definecolor{notsodarkblue}{RGB}{119,193,214}
+\definecolor{tablecolor}{RGB}{0,128,0}
+
+% Für die Überschriften und Linien
+\definecolor{lila}{RGB}{128,0,128}
+\definecolor{latex4eiblau}{RGB}{86,124,136}
+\definecolor{latex4eigruen}{RGB}{150,163,110}
+
+% Farbige Boxen
+\newcommand{\topicbox}[2]{
+\fcolorbox{blue}{lightblue}{\color{blue}\parbox{\columnwidth-2\fboxsep}{{\large \textbf{ #1}}\\\hspace*{-\fboxsep}\rule[2pt]{\columnwidth}{0.5pt}\\ \color{black}#2}}}
+
+\newcommand{\emphbox}[1]{{\fboxrule1pt\fcolorbox{red}{lightyellow}{\parbox{\columnwidth-2\fboxsep-2pt}{\centering #1}}}}
+\newcommand{\symbolbox}[1]{{\fboxrule1pt\fcolorbox{orange}{lightyellow}{\parbox{\columnwidth-2\fboxsep-2pt}{#1}}}}
+\newcommand{\tablebox}[1]{{\fboxsep0pt\colorbox{lightgreen}{\parbox{\columnwidth}{#1}}}}
+\newcommand{\sectionbox}[1]{{\fboxsep0.5em\hspace*{-\fboxsep}\hspace*{-1pt}
+\fcolorbox{gray}{gray!3}{
+\parbox{\columnwidth}{
+ \titlespacing{\subsection}{0em}{0.2em}{0.2em}
+ \titlespacing{\subsubsection}{0em}{0.2em}{0.2em}
+#1
+}}}}
+
+\newcommand{\cookbox}[2]{{\fboxsep0pt\colorbox{lightblue}{\parbox{\columnwidth}{
+{\color{darkblue}\hrule\hrule}\vspace{2pt}
+ \begin{center}
+\textbf{#1}
+\end{center}
+\vspace{3pt}{\color{notsodarkblue}\hrule\hrule}
+\vspace{3pt}
+\begin{itemize}
+#2
+\end{itemize}
+\vspace{2pt}{\color{darkblue}\hrule\hrule}
+}}}}
+
+\newcommand{\cooknumbox}[2]{{\fboxsep0pt\colorbox{lightblue}{\parbox{\columnwidth}{
+{\color{darkblue}\hrule\hrule}\vspace{2pt}
+ \begin{center}
+\textbf{#1}
+\end{center}
+\vspace{3pt}{\color{notsodarkblue}\hrule\hrule}
+\vspace{3pt}
+\begin{enumerate}
+#2
+\end{enumerate}
+\vspace{2pt}{\color{darkblue}\hrule\hrule}
+}}}}
+
+
+
+% BETA
+
+\newcommand{\sectionboxnew}[1]{
+\begin{breakbox}
+
+ \titlespacing{\subsection}{0em}{0.2em}{0.2em}
+ \titlespacing{\subsubsection}{0em}{0.2em}{0.2em}
+#1
+
+\end{breakbox}
+
+}
+% Farbige Tabellenlinien
+\def\ctrule{\noalign{{\color{tablecolor}\hrule\hrule}\vspace{2pt}}} % colored top rule
+\def\cmrule{\noalign{\vspace{1pt}{\color{tablecolor}\hrule}\vspace{2pt}}} % colored middle rule
+\def\cbrule{\noalign{\vspace{2pt}{\color{tablecolor}\hrule\hrule}}} % colored bottom rule
+
+
+
+
+% Ende von /input
+\endinput
+
diff --git a/packages/extern/titlesec.sty b/packages/extern/titlesec.sty
new file mode 100644
index 0000000..c9c4f5d
--- /dev/null
+++ b/packages/extern/titlesec.sty
@@ -0,0 +1,1336 @@
+% +--------------------------------------------------+
+% | Typeset titlesec.tex to get the documentation. |
+% +--------------------------------------------------+
+%
+% Copyright (c) 1998-2011 by Javier Bezos.
+% All Rights Reserved.
+%
+% This file is part of the titlesec distribution release 2.10.0
+% -----------------------------------------------------------
+%
+% It 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 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% The Current Maintainer of this work is Javier Bezos.
+%
+% Notes
+% ~~~~~
+%
+% The following tags are used:
+% ttl@ : the generic tag used through the style
+% ttlh@ : a shape definition
+% ttlf@ : a macro containing the title format
+% ttls@ : id. the title space
+% ttlp@ : page key related macros
+% ttll@ : level number
+%
+% The ttlf@ and ttls@ contains data in the form {..}{..}.
+% Perhaps in future releases they should be converted
+% to a prop-like list, similar to that proposed by the
+% latex team.
+%
+% Admittedly, the current implementation seems too
+% complicated, but that's necessary in order to provide
+% certain compatibility with the sections as defined by the
+% used class. Other packages opt for providing the sections
+% as defined by standard classes ignoring the class; for
+% instance sectsty which does a simple task in a simple and
+% nice way. However, that was not my goal.
+%
+% Release
+% ~~~~~~~
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{titlesec}[2011/12/15 v2.10.0 Sectioning titles]
+
+% Initialization
+% ~~~~~~~~~~~~~~
+
+\newif\ifttl@ps
+\ttl@psfalse
+
+% The \ttl@label switch is used when printing the label in titles.
+% A numberless variant makes it to true.
+% There is a \ttl@toclabel as well, which is true iff the
+% title is numbered; used in toc entries (except default part
+% and chapter) and marks (only in titlesec pagestyles).
+
+\newif\ifttl@label
+\newif\ifttl@toclabel
+
+\newbox\ttl@box
+
+% A provision for the report style:
+
+\@ifundefined{if@mainmatter}
+ {\let\if@mainmatter\iftrue}{}
+
+\@ifundefined{if@openright}
+ {\let\if@openright\iftrue}{}
+
+% and the ams styles as well
+
+\@ifundefined{@chapapp}
+ {\let\@chapapp\chaptername}{}
+
+\def\ttl@trylist{\ttl@try{}}
+
+\def\ttl@getkeys#1#2{%
+ \if\expandafter @\@gobble#1@\@empty
+ \edef\ttl@b{\expandafter\@gobble\string#1}%
+ \let\ttl@a\ttl@b
+ \else
+ \makeatletter
+ \edef\ttl@d{%
+ \noexpand\input{ttlkeys.def}%
+ \catcode`\noexpand\@=\the\catcode`\@}%
+ \ttl@d
+ \ttl@getkeys{#1}{#2}%
+ \fi}
+
+% A more meaningful error for \@notdefinable
+
+\expandafter\AtEndOfPackage\expandafter{\expandafter
+ \gdef\expandafter\@notdefinable\expandafter{\@notdefinable}}
+
+\def\@notdefinable{%
+ \PackageError{titlesec}%
+ {Incompatible package}%
+ {Titlesec cannot continue defining its own macros
+ because\MessageBreak
+ \@backslashchar\reserved@a\space is already used by other package,
+ the class\MessageBreak
+ or the document.}}
+
+% +-----------------+
+% | C L A S S E S |
+% +-----------------+
+
+\def\ttl@useclass#1#2{%
+ \@ifstar
+ {\ttl@labelfalse#1{#2}[]}%
+ {\ttl@labeltrue\@dblarg{#1{#2}}}}
+
+\def\ttl@straightclass{\ttl@useclass\ttl@straight@i}
+\def\ttl@partclass{\ttl@useclass\ttl@part@i}
+\def\ttl@topclass{\ttl@useclass\ttl@top@i}
+\def\ttl@pageclass{\ttl@useclass\ttl@page@i}
+
+% Here \scantokens is used to make sure the unescaped name
+% has `letters' and no `others'. Mainly for hyperref, so there
+% should be no problems.
+
+\newcommand\titleclass[1]{%
+ \edef\ttl@a{\expandafter\@gobble\string#1}%
+ \ifx\scantokens\@undefined\else
+ \scantokens\expandafter{\expandafter
+ \def\expandafter\ttl@a\expandafter{\ttl@a}}%
+ \fi
+ \@ifnextchar[{\@tempswatrue\ttl@class@i{#1}}%
+ {\@tempswafalse\ttl@class@ii{#1}}}
+
+\def\ttl@class@i#1[#2]{%
+ \@namedef{ttll@\ttl@a}{#2}%
+ \expandafter\providecommand\csname\ttl@a title\endcsname{}%%%%
+ \@ifundefined{ttl@toplevel}{}%
+ {\expandafter\let\csname ttlss@\ttl@a\expandafter\endcsname
+ \csname ttlss@\ttl@toplevel\endcsname}%
+ \edef\ttl@toplevel{\ttl@a}%
+ \ttl@class@ii{#1}}
+
+\def\ttl@class@ii#1#2{%
+ \@ifundefined{ttl@#2class}%
+ {\PackageError{titlesec}{Unknown sectioning class}%
+ {Valid names are top, page and straight}}%
+ {\expandafter\let\csname ttl@compat\ttl@a\endcsname\relax
+ \@ifundefined{\ttl@a mark}%
+ {\@namedef{\ttl@a mark}{\@gobble}}%
+ {}%
+ \edef#1{%
+ \expandafter\noexpand\csname ttl@#2class\endcsname{\ttl@a}}}%
+ \if@tempswa
+ \expandafter\@gobble
+ \else
+ \expandafter\@firstofone
+ \fi
+ {\@ifnextchar[%
+ {\ttl@class@iii}%
+ {\@ifundefined{ttll@\ttl@a}%
+ {\PackageError{titlesec}{Unknown sectioning level}%
+ {\string\titleclass\space with no optional arguments\MessageBreak
+ only changes the class of an *existing* level}}}}}
+
+\def\ttl@class@iii[#1]{%
+ \edef\ttl@b{\expandafter\@gobble\string#1}%
+ \expandafter\let\csname ttlss@\ttl@a\expandafter\endcsname
+ \csname ttlss@\ttl@b\endcsname
+ \expandafter\edef\csname ttlss@\ttl@b\endcsname{\ttl@a}%
+ \let\ttl@a\ttl@toplevel
+ \count@\csname ttll@\ttl@toplevel\endcsname
+ \ttl@class@iv}
+
+\def\ttl@class@iv{%
+ \@ifundefined{ttlss@\ttl@a}{}%
+ {\advance\count@\@ne
+ \edef\ttl@a{\csname ttlss@\ttl@a\endcsname}%
+ \expandafter\edef\csname ttll@\ttl@a\endcsname{\the\count@}%
+ \ttl@class@iv}}
+
+% Typesetting Classes: General tools
+% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+% The following command handles the *n spacing
+% Some tricks are necessary to multiply a
+% skip by a non integer number
+
+\newskip\beforetitleunit
+\beforetitleunit=1ex\@plus.3ex\@minus.06ex
+\newskip\aftertitleunit
+\aftertitleunit=1ex\@plus.1ex
+
+\newdimen\ttl@plus
+\newdimen\ttl@minus
+
+\def\ttl@assign#1{%
+ \@ifstar
+ {\ttl@assign@i{#1}}%
+ {\ttl@assign@d{#1}}}
+
+\def\ttl@assign@i#1#2\relax#3{%
+ \ttl@plus\z@
+ \ttl@minus\z@
+ \afterassignment\ttl@assign@ii
+ \dimen@\the#3, % <- space
+ #1 = #2\dimen@
+ plus #2\ttl@plus
+ minus #2\ttl@minus}
+
+\def\ttl@assign@ii#1 {% <- space
+ \if#1,\else\afterassignment\ttl@assign@ii\fi
+ \csname ttl@\string#1\endcsname}
+
+\def\ttl@assign@d#1#2\relax#3{\setlength#1{#2}}
+
+% To be used with \v/vspace to make them calc-savvy
+
+\def\ttl@calc#1#2{%
+ {\setlength\@tempskipa{#2}%
+ #1\@tempskipa}}
+
+\def\ttl@calcneg#1#2{%
+ {\setlength\@tempskipa{#2}%
+ #1{-\@tempskipa}}}
+
+% Gets from ttls@ and passes the spacing parameters:
+
+\def\ttl@startargs#1#2{% Get the first arguments, with the spacing
+ \@ifundefined{ttlp@#2}%
+ {\let\ttl@key@page\@empty}%
+ {\ttlp@fetch{#2}}%
+ \begingroup
+ \def\ttl@b{ttls@#2}%
+ \edef\ttl@key@numberless{\ifttl@label//\else/*\fi}%
+ \def\ttl@a##1{\csname ttl@key@##1\endcsname}% Used as elt in try
+ \ttl@trylist
+ \xdef\ttl@b{\ttl@c}%
+ \endgroup
+ \ifx\ttl@b\@empty
+ \PackageError{titlesec}{Format/spacing not found}%
+ {I was unable to find the format corresponding to #2.\MessageBreak
+ Maybe you haven't set it with \string\titleformat\space and
+ \string\titlespacing}
+ \fi
+ \expandafter#1\ttl@b{#2}}
+
+% Used in ttl@select
+
+\def\ttl@savefn#1[#2]#3{%
+ \ifcase#1%
+ \footnotemark[#2]%
+ \gdef\ttl@fn{\footnotetext[#2]{#3}}%
+ \else
+ \footnotemark
+ \gdef\ttl@fn{\footnotetext{#3}}%
+ \fi}
+
+\def\ttl@nest@error{%
+ \PackageError{titlesec}{Nested titles}{Titles must not be nested}}
+
+\def\ttl@hmode@error{%
+ \PackageError{titlesec}{Entered in horizontal mode}
+ {The argument cannot contain horizontal material\MessageBreak
+ such as text, \string\noindent, \string\makebox, etc.}}
+
+% \ttl@select not only selects the right version to be
+% used. It also take steps to ensure that a mark
+% is not lost inside a box by saving it into \ttl@mk,
+% which in turn is used by the sect and chap commands.
+
+\newif\ifttl@explicit
+
+\def\ttl@gmk#1{\gdef\ttl@mk{#1}}
+
+\def\ttl@select#1#2#3#4{%
+ \ttl@Hy@saveanchor
+ \global\let\ttl@mk\@empty % global because of rigidchapters
+ \global\let\ttl@fn\@empty
+ \begingroup
+ \everypar{\setbox\z@\lastbox\strut}% or \hskip-\parindent?
+ \let\ttl@straight@i\ttl@nest@error
+ \let\ttl@top@i \ttl@nest@error
+ \let\ttl@part@i \ttl@nest@error
+ \let\ttl@page@i \ttl@nest@error
+ \let\ttl@newpage\newpage
+ \def\newpage{\ttl@savewrite\ttl@newpage}%
+ \def\markboth##1##2{\protect\ttl@gmk{\protect\markboth{##1}{##2}}}%
+ \def\markright##1{\protect\ttl@gmk{\protect\markright{##1}}}%
+ \def\@mkboth##1##2{\protect\ttl@gmk{\protect\@mkboth{##1}{##2}}}%
+ \def\footnote{\@ifnextchar[%
+ {\ttl@savefn\z@}{\ttl@savefn\@ne[]}}%
+ \edef\ttl@key@numberless{\ifttl@label//\else/*\fi}%
+ \def\ttl@b{ttlf@#1}%
+ \def\ttl@a##1{\csname ttl@key@##1\endcsname}% Used as elt in try
+ \ttl@trylist
+ \ifttl@explicit
+ \def\ttl@passexplicit{\ttl@case{#4}}%
+ \ttl@c{#4}{#2}{#3}{}% ttl@c is returned by ttl@try with ttlf@...
+ \else
+ \let\ttl@passexplicit\ttl@case
+ \ttl@c{#2}{#3}{#4}% ttl@c is returned by ttl@try with ttlf@...
+ \fi
+ \endgroup}
+
+\let\ttl@savewrite\@empty
+
+\def\ttl@finmarks{%
+ \ttl@savewrite
+ \ttl@mk % Contains a possible mark, returned by \ttl@select
+ \ttl@fn} % And a footnote
+
+\def\ttl@try#1{%
+ \edef\ttl@c{#1}% #1 is a list in the form \ttl@a{key}\ttl@a{key}
+ \@ifundefined{\ttl@b\ttl@c}{}{%
+ \edef\ttl@c{\expandafter\noexpand\csname\ttl@b\ttl@c\endcsname}%
+ \def\ttl@a##1{\csname ttl@extra@##1\endcsname}%
+ #1%
+ \let\ttl@try\@gobble}} % locally modified to `break' testings
+
+% \ttl@write writes marks and toc. tocdepth is taken
+% care of when the toc is typesetted and not here.
+% Used always through ttl@savewrite
+
+\def\ttl@write#1#2{%
+ \ttl@blinemarks
+ \csname#1mark\endcsname{#2}%
+ \def\ttl@a{\protect\numberline{\@nameuse{the#1}}}%
+ \@nameuse{ttl@toc#1}% eg, \ttl@tocpart modifies \ttl@a
+ \ttl@addcontentsline{#1}{#2}% Depends on toctitles
+ \ttl@elinemarks
+ \global\ttl@toclabelfalse}
+
+\newif\ifttl@premark % to be used in ttlps.def
+\ttl@premarkfalse
+
+\def\ttl@premark#1#2{%
+ \protected@xdef\ttl@prevmarks{\ttl@marks}%
+ \ttl@blinemarks
+ \csname#1mark\endcsname{#2}%
+ \ttl@elinemarks
+ \gdef\ttl@prevmarks{\ttl@marks}}
+
+% Must be preceded by a default \ttl@savewrite, which is used
+% in starred variants--\@empty in top and straight classes.
+% In straight class, it is preceded by the setting of
+% prev marks to provide a "fixed" top mark. Otherwise,
+% the default prev mark (= curr mark) is used (restored
+% after ttl@labelling in straight). This is the command
+% to be hacked if you want to change the behaviour of
+% starred variants.
+
+\def\ttl@labelling#1#2{%
+ \let\ttl@Hy@saveanchor\@empty
+ \ifttl@label % First: if star
+ \def\ttl@savewrite{\ttl@write{#1}{#2}}%
+ \@nameuse{ttl@#1label}% eg, sets if mainmatter in chapter.
+ \ifttl@label % Second, eg, if not main matter
+ \ifnum\@nameuse{ttll@#1}>\c@secnumdepth\relax
+ \ttl@labelfalse % Third: if too deep
+ \else
+ \ttl@Hy@refstepcounter{#1}%
+ \@nameuse{ttl@#1out}%
+ \fi
+ \fi
+ \fi
+ \let\ifttl@toclabel\ifttl@label
+ \ifx\ttl@savewrite\@empty\else % If marks
+ \ifttl@ps
+ \ifttl@premark
+ \global\ttl@premarkfalse
+ \else % if no \pretitlemark
+ \ttl@premark{#1}{#2}%
+ \fi
+ \fi
+ \ifttl@label\else\ttl@Hy@steplink{#1}\fi
+ \fi}
+
+% Executed by ttl@labelling if the name of section is chapter:
+
+\def\ttl@chapterlabel{\if@mainmatter\else\ttl@labelfalse\fi}
+
+% Executed by ttl@labelling if chapter has a number. Note
+% you can define messages for other sectioning levels (eg,
+% \ttl@sectionout).
+
+\def\ttl@chapterout{\typeout{\chaptertitlename\space\thechapter.}}
+
+% Straight class
+% ~~~~~~~~~~~~~
+% Default for nobottomtitles. Changed by nobottomtitles*
+
+\def\ttl@addstretch{\advance\@tempskipa-\pagestretch}
+
+% 1:name 2:level 3:indent 4:before 5:after 6:afind [7]:cap 8:title
+% The second argument of ttl@sect is the level, which
+% is empty if the star version is used. In this case
+% neither the toc nor the marks are written.
+
+\def\ttl@straight@i#1[#2]#3{%
+ \def\@currentlabelname{#2}% for nameref
+ \gdef\ttl@savemark{\csname#1mark\endcsname{#3}}%
+ \let\ttl@savewrite\@empty
+ \def\ttl@savetitle{#3}%
+ \gdef\thetitle{\csname the#1\endcsname}%
+ \if@noskipsec \leavevmode \fi
+ \par
+ \ttl@labelling{#1}{#2}%
+ \ttl@startargs\ttl@straight@ii{#1}{#3}}
+
+% 1:left 2:right 3:before 4:after 5:afterindent 6:name 7:title
+
+\def\ttl@straight@ii#1#2#3#4#5#6#7{%
+ \ttl@assign\@tempskipa#3\relax\beforetitleunit
+ \@ifundefined{ttl@ps@#6}{}%
+ {\PackageWarning{titlesec}{Page style in straight class ignored}}%
+ \if@nobreak
+ \ttl@titlespace{\@tempskipa}%
+ \else
+ \@ifundefined{#6break}%
+ {\addpenalty{\@secpenalty}}%
+ {\csname#6break\endcsname}%
+ \addvspace{\@tempskipa}%
+ \ifdim\bottomtitlespace<\z@
+ \else
+ \begingroup
+ \@tempskipb\pagegoal
+ \@tempskipa\pagegoal
+ \ttl@addstretch % \relax if nobottomtitle*
+ \advance\@tempskipa-\bottomtitlespace\relax % not a register
+ \pagegoal\@tempskipa
+ \def\@textbottom{\vskip\z@\@plus.0001fil}%
+ \penalty9999
+ \pagegoal\@tempskipb
+ \endgroup
+ \fi
+ \fi
+ \@afterindenttrue
+ \ifcase#5 \@afterindentfalse\fi
+ \ttl@assign\@tempskipb#4\relax\aftertitleunit
+ \ttl@select{#6}{#1}{#2}{#7}%
+ \ttl@finmarks
+ \@ifundefined{ttlp@#6}{}{\ttlp@write{#6}}%
+ \if@noskipsec
+ \global\@nobreakfalse
+ \everypar{%
+ \if@noskipsec
+ \global\@noskipsecfalse
+ \clubpenalty\@M
+ \hskip-\parindent
+ \begingroup
+ \@svsechd\unskip{\hspace{\@tempskipb}}%
+ \endgroup
+ \else
+ \clubpenalty\@clubpenalty\everypar{}%
+ \fi}%
+ \else
+ \par\nobreak
+ \vspace{\@tempskipb}%
+ \@afterheading
+ \fi
+ \ignorespaces}
+
+% Part class
+% ~~~~~~~~~~
+
+\providecommand\partmark[1]{\markboth{}{}}
+
+\def\ttl@part@i#1[#2]#3{%
+ \gdef\ttl@savemark{\csname#1mark\endcsname{#3}}%
+ \def\ttl@savewrite{\ttl@write{#1}{#3}}% A default value. Not #2!
+ \def\ttl@savetitle{#3}%
+ \ttl@labelling{#1}{#2}%
+ \ttl@startargs\ttl@part@ii{#1}{#3}}
+
+\def\ttl@part@ii#1#2#3#4#5#6#7{%
+ \ttl@assign\@tempskipa#3\relax\beforetitleunit
+ \vspace*{\@tempskipa}%
+ \@ifundefined{ttl@ps@#6}{}%
+ {\PackageWarning{titlesec}{Page style in part class ignored}}%
+ \global\@afterindenttrue
+ \ifcase#5 \global\@afterindentfalse \fi
+ \ttl@assign\@tempskipb#4\relax\aftertitleunit
+ \ttl@select{#6}{#1}{#2}{#7}%
+ \ttl@finmarks
+ \@ifundefined{ttlp@#6}{}{\ttlp@write{#6}}%
+ \par\nobreak
+ \vspace{\@tempskipb}%
+ \@afterheading}
+
+% Page class
+% ~~~~~~~~~~
+
+\def\ttl@page@i#1[#2]#3{%
+ \gdef\ttl@savemark{\csname#1mark\endcsname{#3}}%
+ \def\ttl@savewrite{\ttl@write{#1}{#3}}% A default value. Not #2!
+ \def\ttl@savetitle{#3}%
+ \ttl@labelling{#1}{#2}%
+ \ttl@startargs\ttl@page@ii{#1}{#3}}
+
+\def\ttl@page@ii#1#2#3#4#5#6#7{%
+ \ttl@assign\@tempskipa#3\relax\beforetitleunit
+ \if@openright
+ \cleardoublepage
+ \else
+ \clearpage
+ \fi
+ \@ifundefined{ttl@ps@#6}%
+ {\thispagestyle{plain}}%
+ {\thispagestyle{\@nameuse{ttl@ps@#6}}}%
+ \if@twocolumn
+ \onecolumn
+ \@tempswatrue
+ \else
+ \@tempswafalse
+ \fi
+ \vspace*{\@tempskipa}%
+ \@afterindenttrue
+ \ifcase#5 \@afterindentfalse\fi
+ \ttl@assign\@tempskipb#4\relax\aftertitleunit
+ \ttl@select{#6}{#1}{#2}{#7}%
+ \ttl@finmarks
+ \@ifundefined{ttlp@#6}{}{\ttlp@write{#6}}%
+ \vspace{\@tempskipb}%
+ \newpage
+ \if@twoside
+ \if@openright
+ \null
+ \@ifundefined{ttl@ps@#6}%
+ {\thispagestyle{empty}}%
+ {\thispagestyle{\@nameuse{ttl@ps@#6}}}%
+ \newpage
+ \fi
+ \fi
+ \if@tempswa
+ \twocolumn
+ \fi
+ \ignorespaces}
+
+% Top class and some makechapterhead stuff
+% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+%
+% \ttl@mkchap is the new make(s)chapterhead.
+
+\def\ttl@mkchap#1#2#3#4#5#6#7{%
+ \gdef\ttl@savemark{\csname#6mark\endcsname{#7}}%
+ \let\ttl@savewrite\@empty
+ \let\ttl@Hy@saveanchor\@empty
+ \@ifundefined{ttl@ps@#6}{}%
+ {\thispagestyle{\@nameuse{ttl@ps@#6}}}%
+ \let\ifttl@toclabel\ifttl@label
+ \ttl@mkchap@i{#1}{#2}{#3}{#4}{#5}{#6}{#7}}
+
+% But \ttl@mkchap@i is used by both makechapterhead and
+% the top class.
+
+\def\ttl@mkchap@i#1#2#3#4#5#6#7{%
+ \ttl@assign\@tempskipa#3\relax\beforetitleunit
+ \vspace*{\@tempskipa}%
+ \global\@afterindenttrue
+ \ifcase#5 \global\@afterindentfalse\fi
+ \ttl@assign\@tempskipb#4\relax\aftertitleunit
+ \ttl@topmode{\@tempskipb}{%
+ \ttl@select{#6}{#1}{#2}{#7}}%
+ \ttl@finmarks % Outside the box!
+ \@ifundefined{ttlp@#6}{}{\ttlp@write{#6}}}
+
+\def\ttl@top@i#1[#2]#3{%
+ \gdef\ttl@savemark{\csname#1mark\endcsname{#3}}%
+ \let\ttl@savewrite\@empty
+ \def\ttl@savetitle{#3}%
+ \ttl@labelling{#1}{#2}%
+ \ttl@startargs\ttl@top@ii{#1}{#3}}
+
+\def\ttl@top@ii#1#2#3#4#5#6#7{%
+ \@ifundefined{#6break}%
+ {\if@openright
+ \cleardoublepage
+ \else
+ \clearpage
+ \fi}%
+ {\csname#6break\endcsname}%
+ \@ifundefined{ttl@ps@#6}%
+ {\thispagestyle{plain}}%
+ {\thispagestyle{\@nameuse{ttl@ps@#6}}}%
+ \global\@topnum\z@
+ \@ifundefined{#6tolists}%
+ {\addtocontents{lof}{\protect\ttl@tocsep}%
+ \addtocontents{lot}{\protect\ttl@tocsep}}
+ {\@nameuse{#6tolists}}%
+ \if@twocolumn
+ \@topnewpage[\ttl@mkchap@i{#1}{#2}{#3}{#4}{#5}{#6}{#7}]%
+ \else
+ \ttl@mkchap@i{#1}{#2}{#3}{#4}{#5}{#6}{#7}%
+ \@afterheading
+ \fi
+ \ignorespaces}
+
+
+% \def\ttl@noskipsectrue{%
+% \if@noskipsec
+% \PackageError{titlesec}{Invalid shape for top class}%
+% {The selected shape only makes sense when merged into\MessageBreak
+% a paragraph. That is impossible in the top class}%
+% \else
+
+\newcommand\chaptertitlename{\@chapapp}
+\def\ttl@tocsep{\addvspace{10\p@}}
+
+% +-----------------+
+% | S H A P E S |
+% +-----------------+
+%
+% % Reformatting Titles: Interface
+% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+% The surrounding space is stored in a macro
+% named \ttls@ whose content is
+% {left}{right}{before}{after}{afterindent}.
+% But if there is the page key, the name is
+% \ttls@/
+
+\newcommand\titlespacing{%
+ \@ifstar{\ttl@spacing@i{\z@}}{\ttl@spacing@i{\@ne}}}
+
+\def\ttl@spacing@i#1#2#3#4#5{%
+ \ttl@getkeys{#2}{titlesec}%
+ \@ifnextchar[{%
+ \ttl@spacing@ii{#1}{#3}{#4}{#5}%
+ }{%
+ \ttl@spacing@ii{#1}{#3}{#4}{#5}[\z@]}}
+
+\def\ttl@spacing@ii#1#2#3#4[#5]{%
+ \expandafter\def\csname ttls@\ttl@a\endcsname
+ {{#2}{#5}{#3}{#4}{#1}}}
+
+% The section name is built in \ttl@a.
+% The format is stored in a macro named \ttlf@,
+% or \ttlf@/ if there is the page spec,
+% or \ttlf@.../* if numberless is true
+% whose content is
+% \ttl@{format}{label}{sep}{before}{after}
+
+\newtoks\ttl@toksa
+
+\newcommand\titleformat{%
+ \@ifstar{\ttl@format@s}%
+ {\ttl@format@i}}
+
+\def\ttl@format@s#1#2{%
+ \edef\ttl@a{\expandafter\@gobble\string#1}%
+ \@ifundefined{ttlf@\ttl@a}%
+ {\PackageError{titlesec}{Not allowed in `easy' settings}
+ {The sectiong command you are trying to redefine\MessageBreak
+ is not handled by the starred variant (eg, \string\part)}}{}
+ \expandafter\expandafter\expandafter
+ \ttl@format@si\csname ttlf@\ttl@a \endcsname
+ {#2}}
+
+\def\ttl@format@si#1#2#3#4#5#6#7{%
+ \@namedef{ttlf@\ttl@a}{#1{#7}{#3}{#4}{#5}{#6}}}
+
+\def\ttl@format@i#1{%
+ \@ifnextchar[{\ttl@format@ii{#1}}{\ttl@format@ii{#1}[hang]}}
+
+\def\ttl@format@ii#1[#2]#3#4#5#6{%
+ \ttl@getkeys{#1}{titlesec}%
+ \ttl@toksa{{#3}{#4}{#5}{#6}}% Save arguments
+ \@ifnextchar[{%
+ \ttl@format@iii{#2}%
+ }{%
+ \ttl@format@iii{#2}[]}}
+
+% First, we get the shape -- if not defined it loads
+% the corresponding file.
+
+\def\ttl@format@iii#1[#2]{%
+ \@ifundefined{ttlh@#1}{%
+ \begingroup
+ \makeatletter
+ \InputIfFileExists{#1.tss}{}{%
+ \PackageError{titlesec}{Unknown shape}%
+ {Shapes are defined in files with extension tss\MessageBreak
+ Either you have misspelled the shape\MessageBreak
+ or there is no a #1.tss file}}%
+ \endgroup}{}%
+ \@temptokena{#2}%
+ \ifttl@explicit
+ \edef\ttl@b{%
+ \def\expandafter\noexpand\csname ttlf@\ttl@a\endcsname####1%
+ {\expandafter\noexpand\csname ttlh@#1\endcsname
+ \the\ttl@toksa{\the\@temptokena}}}%
+ \else
+ \edef\ttl@b{%
+ \def\expandafter\noexpand\csname ttlf@\ttl@a\endcsname
+ {\expandafter\noexpand\csname ttlh@#1\endcsname
+ \the\ttl@toksa{\the\@temptokena}}}%
+ \fi
+ \ttl@b
+ \csname ttl@compat\ttl@a\endcsname}
+
+% Styles
+% ~~~~~~
+
+% 1:global 2:label 3:sep 4:style 5:after 6:left 7:right 8:title
+% \ttl@ and \ttlh@ take the following eight
+% arguments:
+% {format}{label}{sep}{before}{after}{left}{right}{title}
+% where before and after refer to the format.
+% With the option explicit, #4 contains the title and #8 is
+% empty.
+
+\def\ttlh@display#1#2#3#4#5#6#7#8{%
+ \gdef\ttl@makeline##1{\ttl@calc\hspace{#6}##1\ttl@calc\hspace{#7}}%
+ \setlength\leftskip{#6}%
+ \setlength\rightskip{#7}%
+ \interlinepenalty\@M
+ \ttl@changecentercr
+ \ttl@beginlongest
+ #1\ifhmode\ttl@hmode@error\fi
+ \ttl@glcmds
+ \parindent\z@
+ \ifttl@label
+ {#2\strut\@@par}\nobreak\ttl@calc\vspace{#3}%
+ \fi
+ #4{#8}%
+ \kern\z@\strut\@@par
+ \nobreak\ttl@midlongest#5\@@par
+ \ttl@endlongest}
+
+\def\ttlh@hang#1#2#3#4#5#6#7#8{%
+ \gdef\ttl@makeline##1{\ttl@calc\hspace{#6}##1\ttl@calc\hspace{#7}}%
+ \setlength\leftskip{#6}%
+ \setlength\rightskip{#7}%
+ \interlinepenalty\@M
+ \ttl@changecentercr
+ \ttl@beginlongest
+ #1{\ifhmode\ttl@hmode@error\fi
+ \ttl@glcmds
+ \parindent\z@
+ \leavevmode
+ \begingroup
+ \ifttl@label
+ \sbox\z@{#2\strut\ttl@calc\hspace{#3}}%
+ \advance\leftskip\wd\z@
+ \llap{\box\z@}%
+ \fi
+ #4{#8}%
+ \kern\z@\strut\@@par
+ \endgroup
+ \nobreak\ttl@midlongest#5\@@par}%
+ \ttl@endlongest}
+
+\def\ttlh@runin#1#2#3#4#5#6#7#8{%
+ \global\@noskipsectrue
+ \gdef\ttl@makeline##1{##1}%
+ \ttl@changecentercr
+ #1{\ifhmode\ttl@hmode@error\fi
+ \global\sbox\ttl@box{%
+ \ttl@calc\hspace{#6}%
+ \ifttl@label{\strut#2}\ttl@calc\hspace{#3}\fi
+ #4{#8}#5\unskip}}%
+ \gdef\@svsechd{\unhbox\ttl@box}}
+
+% +-----------------+
+% | T O O L S |
+% +-----------------+
+%
+% calcwidth
+% ~~~~~~~~~
+% Implemented after code from soul (but much modified...)
+
+\newdimen\titlewidth
+\newdimen\titlewidthlast
+\newdimen\titlewidthfirst
+
+\let\ttl@glcmds\relax
+\let\ttl@beginlongest\@empty
+\let\ttl@midlongest\@empty
+\let\ttl@endlongest\@empty
+\let\iftitlemeasuring\@secondoftwo
+
+\def\ttl@xbeginlongest#1\ttl@endlongest{%
+ \titlewidth\z@
+ \titlewidthlast\z@
+ \let\iftitlemeasuring\@firstoftwo
+ \setbox\ttl@box\vbox{%
+ \def\ttl@glcmds{%
+ \def\\{\@ifstar{\@ifnextchar[{\ttl@bs}{\newline}}%
+ {\@ifnextchar[{\ttl@bs}{\newline}}}%
+ \def\ttl@bs[####1]{\newline}%
+ \let\@centercr\\%
+ \def\ttl@midlongest####1\@@par{}% Very dirty...
+ \advance\rightskip 1\leftskip plus 1fil
+ \leftskip=\z@}%
+ #1}%
+ \let\iftitlemeasuring\@secondoftwo
+ \ttl@boxprocess
+ #1}
+
+\def\ttl@boxprocess{%
+ \setbox\ttl@box=\vbox{%
+ \unvcopy\ttl@box
+ \unskip\unpenalty
+ \global\setbox\@ne=\lastbox}%
+ \ifvoid\@ne
+ \else
+ \setbox\tw@=\hbox{\hskip-\leftskip\unhbox\@ne\hskip-\rightskip}%
+ \titlewidthfirst\wd\tw@
+ \ifdim\titlewidth<\titlewidthfirst
+ \titlewidth\titlewidthfirst
+ \fi
+ \ifdim\titlewidthlast=\z@
+ \titlewidthlast\titlewidthfirst
+ \fi
+ \expandafter\ttl@boxprocess
+ \fi}
+
+% Rules
+% ~~~~~
+
+\providecommand\titleline{%
+ \@ifstar{\ttl@line@i{\hb@xt@\titlewidth}}%
+ {\ttl@line@i{}}}
+
+\def\ttl@line@i#1{%
+ \@ifnextchar[{\ttl@line{#1}}{\ttl@line{#1}[s]}}
+
+\def\ttl@line#1[#2]#3{%
+ \vskip\topskip
+ \hrule \@height \z@
+ \nobreak
+ \vskip-\topskip
+ \begingroup
+ \parindent\z@
+ \everypar{}%
+ \leftskip\z@
+ \rightskip\z@ % #1 is either \hb@xt@\titlewidth or empty:
+ \@makebox[\hsize][#2]{\ttl@makeline{#1{#3}}}%
+ \par
+ \endgroup
+ \hrule height \z@
+ \nobreak}
+
+\providecommand\titlerule{\@ifstar{\ttl@row}{\ttl@rule}}
+
+\let\ttl@leaders\xleaders % For titletoc compatibility
+
+\def\ttl@row{\@ifnextchar[{\ttl@row@i}{\ttl@row@i[\wd\z@]}}
+\def\ttl@row@i[#1]#2{%
+ \ifvmode\expandafter\titleline\fi
+ {\sbox\z@{#2}%
+ \ttl@calcneg\hspace{#1}%
+ \hskip\wd\z@
+ \ttl@leaders\hb@xt@#1{\hss\box\z@}%
+ \hfill\kern\z@}}
+
+\def\ttl@rule{\@ifnextchar[{\ttl@rule@i}{\ttl@rule@i[.4\p@]}}
+\def\ttl@rule@i[#1]{%
+ \ifvmode\expandafter\titleline\fi
+ {\leaders\hrule height #1\hfill\kern\z@}}
+
+% Par shapes and space
+% ~~~~~~~~~~~~~~~~~~~~
+
+\providecommand\filright{%
+ \gdef\ttl@filleft##1{\hskip##1}%
+ \gdef\ttl@filright##1{\hfill}%
+ \let\\\@centercr
+ \advance\rightskip\z@ \@plus 1fil\relax}
+\providecommand\filleft{%
+ \gdef\ttl@filleft##1{\hfill}%
+ \gdef\ttl@filright##1{\hskip##1}%
+ \let\\\@centercr
+ \advance\leftskip\z@ \@plus 1fil
+ \parfillskip\z@}
+\providecommand\filcenter{\filleft\filright
+ \gdef\ttl@filleft##1{\hfill}}
+\providecommand\fillast{%
+ \gdef\ttl@filleft##1{\hfill}%
+ \gdef\ttl@filright##1{\hfill}%
+ \let\\\@centercr
+ \filleft\advance\rightskip\z@ \@plus -1fil
+ \parfillskip\z@ \@plus 2fil\relax}
+\newcommand\filinner{%
+ \if@twoside
+ \ifodd\count\z@\filleft\else\filright\fi
+ \else
+ \filleft
+ \fi}
+\newcommand\filouter{%
+ \if@twoside
+ \ifodd\count\z@\filright\else\filleft\fi
+ \else
+ \filright
+ \fi}
+
+\newcommand\wordsep{\fontdimen\tw@\font \@plus
+ \fontdimen\thr@@\font \@minus \fontdimen4\font}
+
+% +-----------------+
+% | O P T I O N S |
+% +-----------------+
+
+
+\DeclareOption{pagestyles}{\let\sectiontitle\@empty}
+\DeclareOption{extramarks}{\let\ttl@fetchmark\@empty}
+\DeclareOption{floatps}{%
+ \ifx\sectiontitle\@empty
+ \let\ttl@replace\space
+ \else
+ \PackageWarning{titlesec}{Ignoring `floatps' without
+ `pagestyles'. This option is now deprecated.}%
+ \fi}
+\DeclareOption{psfloats}{%
+ \ifx\sectiontitle\@empty
+ \let\ttl@replace\@empty
+ \else
+ \PackageWarning{titlesec}{Ignoring `psfloats' without
+ `pagestyles'}%
+ \fi}
+
+\DeclareOption{loadonly}{\let\ttl@extract\@empty}
+
+\DeclareOption{outermarks}{%
+ \def\ttl@titlemarks{\outertitlemarks}}
+\DeclareOption{topmarks}{
+ \def\ttl@titlemarks{\toptitlemarks}}
+\DeclareOption{botmarks}{%
+ \def\ttl@titlemarks{\bottitlemarks}}
+\DeclareOption{innermarks}{%
+ \def\ttl@titlemarks{\innertitlemarks}}
+
+\DeclareOption{footmarks}{} % Backward compat
+
+\DeclareOption{explicit}{\ttl@explicittrue}
+
+\DeclareOption{clearempty}{%
+ \def\cleardoublepage{%
+ \clearpage{\ps@empty\if@twoside\ifodd\c@page\else
+ \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi\fi\fi}}}
+
+\DeclareOption{rigidchapters}{%
+ \def\ttl@topmode#1#2{\vbox to #1{#2\vfil}}%
+ \def\ttl@chapafter{.26\textheight}}
+\DeclareOption{rubberchapters}{%
+ \def\ttl@topmode#1#2{{#2}\ttl@calc\vspace{#1}}%
+ \def\ttl@chapafter{40\p@}}
+
+\DeclareOption{bottomtitles}{%
+ \def\bottomtitlespace{-1\p@}}
+\DeclareOption{nobottomtitles}{%
+ \def\bottomtitlespace{.2\textheight}}
+\DeclareOption{nobottomtitles*}{%
+ \let\ttl@addstretch\relax
+ \def\bottomtitlespace{.2\textheight}}
+
+\DeclareOption{calcwidth}{%
+ \let\ttl@beginlongest\ttl@xbeginlongest}
+
+\DeclareOption{aftersep}{%
+ \let\ttl@titlespace\@gobble}
+\DeclareOption{largestsep}{%
+ \let\ttl@titlespace\addvspace}
+
+\DeclareOption{oldparttoc}{%
+ \def\ttl@tocpart{\def\ttl@a{\thepart\hspace{1em}}}}
+\DeclareOption{newparttoc}{%
+ \let\ttl@tocpart\relax}
+
+\DeclareOption{rm}{%
+ \protected@xdef\ttl@fonts{\ttl@fonts\protect\rmfamily}}
+\DeclareOption{sf}{%
+ \protected@xdef\ttl@fonts{\ttl@fonts\protect\sffamily}}
+\DeclareOption{tt}{%
+ \protected@xdef\ttl@fonts{\ttl@fonts\protect\ttfamily}}
+\DeclareOption{md}{%
+ \protected@xdef\ttl@fonts{\ttl@fonts\protect\mdseries}}
+\DeclareOption{bf}{%
+ \protected@xdef\ttl@fonts{\ttl@fonts\protect\bfseries}}
+\DeclareOption{up}{%
+ \protected@xdef\ttl@fonts{\ttl@fonts\protect\upshape}}
+\DeclareOption{it}{%
+ \protected@xdef\ttl@fonts{\ttl@fonts\protect\itshape}}
+\DeclareOption{sl}{%
+ \protected@xdef\ttl@fonts{\ttl@fonts\protect\slshape}}
+\DeclareOption{sc}{%
+ \protected@xdef\ttl@fonts{\ttl@fonts\protect\scshape}}
+
+\DeclareOption{big}{%
+ \gdef\ttl@sizes#1{\ifcase#1\relax\Huge\or\Large\or\large
+ \or\normalsize\or\or\or\huge\fi}}
+\DeclareOption{medium}{%
+ \gdef\ttl@sizes#1{\ifcase#1\relax\huge\or\Large\or\large
+ \or\normalsize\or\or\or\LARGE\fi}}
+\DeclareOption{small}{%
+ \gdef\ttl@sizes#1{\ifcase#1\relax\LARGE\or\large
+ \or\normalsize\or\normalsize\or\or\or\Large\fi}}
+\DeclareOption{tiny}{%
+ \gdef\ttl@sizes#1{\ifcase#1\relax\large\or\normalsize\or
+ \normalsize\or\normalsize\or\or\or\normalsize\fi}}
+
+\DeclareOption{raggedleft}{%
+ \gdef\ttl@fil{\filleft}}
+\DeclareOption{center}{%
+ \gdef\ttl@fil{\filcenter}}
+\DeclareOption{raggedright}{%
+ \gdef\ttl@fil{\filright}}
+
+\DeclareOption{uppercase}{%
+ \gdef\ttl@case{\MakeUppercase}}
+
+\DeclareOption{compact}{%
+ \gdef\ttl@space{1}%
+ \gdef\ttl@chapafter{30\p@}}
+
+% Deprecated. To be remmoved in a major upgrade (3.0)
+\DeclareOption{indentfirst}{%
+ \gdef\@afterindentfalse{\let\if@afterindent\iftrue}%
+ \@afterindenttrue
+ \def\titlespacing{%
+ \@ifstar{\ttl@spacing@i{\@ne}}{\ttl@spacing@i{\@ne}}}}
+\DeclareOption{nonindentfirst}{%
+ \def\titlespacing{%
+ \@ifstar{\ttl@spacing@i{\z@}}{\ttl@spacing@i{\z@}}}}
+
+% New names
+\DeclareOption{indentafter}{%
+ \gdef\@afterindentfalse{\let\if@afterindent\iftrue}%
+ \@afterindenttrue
+ \def\titlespacing{%
+ \@ifstar{\ttl@spacing@i{\@ne}}{\ttl@spacing@i{\@ne}}}}
+\DeclareOption{noindentafter}{%
+ \def\titlespacing{%
+ \@ifstar{\ttl@spacing@i{\z@}}{\ttl@spacing@i{\z@}}}}
+
+% newlinetospace
+\let\ttl@blinemarks\relax
+\let\ttl@elinemarks\relax
+
+\DeclareRobustCommand\ttl@linetosp{%
+ \@ifstar{\ttl@linetosp@i}{\ttl@linetosp@i}}%
+
+\def\ttl@linetosp@i{%
+ \ifdim\lastskip>\z@\else\space\fi
+ \ignorespaces}
+
+\DeclareOption{newlinetospace}{%
+ \def\ttl@blinemarks{%
+ \let\ttl@e\\%
+ \def\\{\ttl@linetosp}}%
+ \def\ttl@elinemarks{\let\\\ttl@e}}%
+
+% toctitles
+\def\ttl@addcontentsline#1#2{%
+ \addcontentsline{toc}{#1}{\ifttl@toclabel\ttl@a\fi#2}%
+ \nobreak}
+
+\DeclareOption{toctitles}{%
+ \def\ttl@addcontentsline#1#2{%
+ \addcontentsline{toc}{#1}{\ifttl@toclabel\ttl@a\fi\ttl@savetitle}%
+ \nobreak}}
+
+% pageatnewline
+
+\def\ttl@changecentercr{%
+ \let\ttl@centercr\@centercr
+ \def\@centercr{\@ifstar{\ttl@centercr*}{\ttl@centercr*}}}
+
+\DeclareOption{pageatnewline}{\let\ttl@changecentercr\relax}
+
+\def\ttl@fonts{}
+
+\ExecuteOptions{rubberchapters,bottomtitles,aftersep,oldparttoc,%
+ innermarks}
+
+\ProcessOptions
+
+% +-----------------+
+% | H Y P E R R E F |
+% +-----------------+
+%
+% These two commands are provided by hyperref. But if they
+% are not defined at \begin{document} hyperref has not been
+% loaded or it is an old version.
+
+\AtBeginDocument{%
+ \ifx\ttl@Hy@steplink\@undefined
+ \let\ttl@Hy@steplink\@gobble
+ \let\ttl@Hy@refstepcounter\refstepcounter
+ \fi}
+
+% +-----------------+
+% | PAGE STYLES |
+% +-----------------+
+%
+% This is generic:
+
+\newcommand\assignpagestyle[2]{%
+ \@namedef{ttl@ps@\expandafter\@gobble\string#1}{#2}}
+
+% Old pagestyles
+% ~~~~~~~~~~~~~~
+
+\providecommand\newpagestyle{%
+ \let\ttl@compatps\@empty % marks the ``old interface''
+ \makeatletter
+ \edef\ttl@d{%
+ \noexpand\input{ttlps.def}%
+ \catcode`\noexpand\@=\the\catcode`\@}%
+ \ttl@d
+ \newpagestyle}
+
+\providecommand\renewpagestyle{%
+ \let\ttl@compatps\@empty % marks the ``old interface''
+ \makeatletter
+ \edef\ttl@d{%
+ \noexpand\input{ttlps.def}%
+ \catcode`\noexpand\@=\the\catcode`\@}%
+ \ttl@d
+ \renewpagestyle}
+
+\providecommand\widenhead{%
+ \let\ttl@compatps\@empty % marks the ``old interface''
+ \makeatletter
+ \edef\ttl@d{%
+ \noexpand\input{ttlps.def}%
+ \catcode`\noexpand\@=\the\catcode`\@}%
+ \ttl@d
+ \widenhead}
+
+% New pagestyles
+% ~~~~~~~~~~~~~~
+
+\@ifundefined{sectiontitle}{}{\input{ttlps.def}}
+
+% +-----------------+
+% | C O M P A T |
+% +-----------------+
+% Easy setup, i.e., that of package options, is
+% taken care of, if necessary.
+
+\renewcommand\secdef[2]{%
+ \@ifstar
+ {\ttl@labelfalse
+ #2}
+ {\ttl@labeltrue
+ \ifx#1\@chapter
+ \if@mainmatter\else\ttl@labelfalse\fi
+ \ifnum\ttll@chapter>\c@secnumdepth\ttl@labelfalse\fi
+ \else\ifx#1\@part
+ \ifnum\ttll@part>\c@secnumdepth\ttl@labelfalse\fi
+ \fi\fi
+ \let\ifttl@toclabel\ifttl@label
+ \@dblarg{#1}}}
+
+\@ifundefined{ttl@extract}{}{\endinput}
+
+\newcommand\titlelabel[1]{%
+ \def\@seccntformat##1{#1}}
+
+\expandafter\ifx\csname chapter\endcsname\relax
+
+ \def\ttl@compatpart{\titleclass{\part}{part}\relax}
+
+\else
+
+ \def\ttl@compatchapter{%
+ \def\@makechapterhead{%
+ \ttl@labeltrue
+ \if@mainmatter\else\ttl@labelfalse\fi
+ \ifnum\ttll@chapter>\c@secnumdepth\ttl@labelfalse\fi
+ \ttl@startargs\ttl@mkchap{chapter}}%
+ \def\@makeschapterhead{%
+ \ttl@labelfalse
+ \if@mainmatter\else\ttl@labelfalse\fi
+ \ifnum\ttll@chapter>\c@secnumdepth\ttl@labelfalse\fi
+ \ttl@startargs\ttl@mkchap{chapter}}}
+
+ \def\ttl@compatpart{\titleclass{\part}{page}\relax}
+
+\fi
+
+\def\ttl@@extract#1\@startsection#2#3#4#5#6#7#8{%
+ \@tempskipa=#5
+ \@tempskipb=#6
+ \ifdim\@tempskipa<\z@
+ \toks@{\titlespacing*#8{#4}}%
+ \@tempskipa-\@tempskipa
+ \else
+ \toks@{\titlespacing#8{#4}}%
+ \fi
+ \@ifundefined{ttl@space}{}{%
+ \ttl@assign\@tempskipa*\ttl@space\relax\beforetitleunit}%
+ \ifdim\@tempskipb<\z@
+ \if@tempswa
+ \titleformat#8[runin]%
+ {\ttl@fonts\ttl@sizes{#3}}{\@seccntformat{#2}}%
+ {\z@}\ttl@passexplicit
+ \else
+ \titleformat#8[runin]%
+ {#7}{\@seccntformat{#2}}%
+ {\z@}\ttl@passexplicit
+ \fi
+ \@tempskipb-\@tempskipb
+ \else
+ \if@tempswa
+ \titleformat#8%
+ {\ttl@fil\ttl@fonts\ttl@sizes{#3}}{\@seccntformat{#2}}%
+ {\z@}\ttl@passexplicit
+ \else
+ \titleformat#8%
+ {#7}{\@seccntformat{#2}}%
+ {\z@}\ttl@passexplicit
+ \fi
+ \@ifundefined{ttl@space}{}{%
+ \ttl@assign\@tempskipb*\ttl@space\relax\aftertitleunit}%
+ \fi
+ \edef\ttl@a{\the\toks@{\the\@tempskipa}{\the\@tempskipb}}
+ \ttl@a}
+
+\def\ttl@extract#1{%
+ \expandafter\in@\expandafter\@startsection\expandafter{#1}%
+ \ifin@
+ \expandafter\ttl@@extract#1#1%
+ \else
+ \PackageWarningNoLine{titlesec}%
+ {Non standard sectioning command detected\MessageBreak
+ Using default spacing and no format}
+ \titlespacing*#1{\z@}{*3}{*2}%
+ \fi}
+
+\@tempswafalse
+
+\ifx\ttl@fonts\@empty
+ \def\ttl@fonts{\bfseries}
+\else
+ \@tempswatrue
+\fi
+
+\expandafter\ifx\csname ttl@sizes\endcsname\relax
+ \gdef\ttl@sizes#1{\ifcase#1\relax\Huge\or\Large\or\large
+ \or\normalsize\or\or\or\huge\fi}
+\else
+ \@tempswatrue
+\fi
+
+\expandafter\ifx\csname ttl@fil\endcsname\relax
+ \let\ttl@fil\@empty
+\else
+ \@tempswatrue
+\fi
+
+\expandafter\ifx\csname ttl@case\endcsname\relax
+ \let\ttl@case\@firstofone
+\else
+ \@tempswatrue
+\fi
+
+\if@tempswa
+
+ \expandafter\ifx\csname chapter\endcsname\relax\else
+ \titleformat\chapter[display]%
+ {\@ifundefined{ttl@fil}{\raggedright}{\ttl@fil}\ttl@fonts\ttl@sizes6}
+ {\@chapapp\space\thechapter}{.8\baselineskip}{\ttl@sizes\z@\ttl@passexplicit}
+ \fi
+
+\fi
+
+\ttl@extract\section
+\ttl@extract\subsection
+\ttl@extract\subsubsection
+\ttl@extract\paragraph
+\ttl@extract\subparagraph
+
+\let\ttl@extract\@undefined
+\let\ttl@@extract\@undefined
+
+\def\ttl@toplevel{part}
+
+\expandafter\ifx\csname chapter\endcsname\relax
+
+ \@namedef{ttll@part}{0}
+ \titleclass{\section}{straight}[\part]
+
+ \titlespacing*{\part}
+ {\z@}
+ {4ex}
+ {3ex}
+
+\else
+
+ \let\ttl@save@mkchap\@makechapterhead
+ \let\ttl@save@mkschap\@makeschapterhead
+
+ \def\@makechapterhead#1{%
+ \gdef\ttl@savemark{\chaptermark{#1}}%
+ \ttl@save@mkchap{#1}%
+ \@ifundefined{ttl@ps@chapter}{}%
+ {\thispagestyle{\@nameuse{ttl@ps@chapter}}}}
+
+ \def\@makeschapterhead#1{%
+ \gdef\ttl@savemark{\chaptermark{#1}}%
+ \ttl@save@mkschap{#1}%
+ \@ifundefined{ttl@ps@chapter}{}%
+ {\thispagestyle{\@nameuse{ttl@ps@chapter}}}}
+
+ \@namedef{ttll@part}{-1}
+ \@namedef{ttlss@part}{chapter}
+ \@namedef{ttll@chapter}{0}
+ \titleclass{\section}{straight}[\chapter]
+
+% The following is unoperant, unless when \chapter / \part
+% format is redefined
+
+ \titlespacing*{\part}
+ {\z@}
+ {\z@\@plus1fil}
+ {\z@\@plus1fil}
+
+ \titlespacing*\chapter
+ {\z@}%
+ {50\p@}%
+ {\ttl@chapafter}%
+
+\fi
+
+\titleclass{\subsection} {straight}[\section]
+\titleclass{\subsubsection}{straight}[\subsection]
+\titleclass{\paragraph} {straight}[\subsubsection]
+\titleclass{\subparagraph} {straight}[\paragraph]
+
+\endinput
diff --git a/packages/extern/twoopt.sty b/packages/extern/twoopt.sty
new file mode 100644
index 0000000..f272012
--- /dev/null
+++ b/packages/extern/twoopt.sty
@@ -0,0 +1,104 @@
+%%
+%% This is file `twoopt.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% twoopt.dtx (with options: `package')
+%%
+%% This file is part of the package `twoopt' for use with LaTeX2e.
+%%
+%% Function: Defining commands with two optional arguments.
+%%
+%% Copyright (C) 1998,1999 Heiko Oberdiek.
+%%
+%% This program can be redistributed and/or modified
+%% under the terms of the LaTeX Project Public License
+%% distributed from CTAN archives in directory
+%% macros/latex/base/lppl.txt; either version 1 of
+%% the License, or (at your option) any later version.
+%%
+%% Please send error reports and suggestions for improvements to
+%% Heiko Oberdiek .
+%%
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesPackage{twoopt}
+ [1999/04/12 v1.3 Definitions with two optional arguments (HO)]
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\newcommand{\newcommandtwoopt}{%
+ \@ifstar{\@newcommandtwoopt*}{\@newcommandtwoopt{}}%
+}
+\newcommand{\@newcommandtwoopt}{}
+\long\def\@newcommandtwoopt#1#2{%
+ \expandafter\@@newcommandtwoopt
+ \csname2\string#2\endcsname{#1}{#2}%
+}
+\newcommand{\@@newcommandtwoopt}{}
+\long\def\@@newcommandtwoopt#1#2#3[#4][#5][#6]{%
+ \newcommand#2#3[1][{#5}]{%
+ \to@ScanSecondOptArg#1{##1}{#6}%
+ }%
+ \newcommand#2#1[{#4}]%
+}
+\newcommand{\renewcommandtwoopt}{%
+ \@ifstar{\@renewcommandtwoopt*}{\@renewcommandtwoopt{}}%
+}
+\newcommand{\@renewcommandtwoopt}{}
+\long\def\@renewcommandtwoopt#1#2{%
+ \begingroup
+ \escapechar\m@ne
+ \xdef\@gtempa{{\string#2}}%
+ \endgroup
+ \expandafter\@ifundefined\@gtempa{%
+ \@latex@error{\noexpand#2undefined}\@ehc
+ }{}%
+ \let#2\@undefined
+ \expandafter\let\csname2\string#2\endcsname\@undefined
+ \expandafter\@@newcommandtwoopt
+ \csname2\string#2\endcsname{#1}{#2}%
+}
+\newcommand{\providecommandtwoopt}{%
+ \@ifstar{\@providecommandtwoopt*}{\@providecommandtwoopt{}}%
+}
+\newcommand{\@providecommandtwoopt}{}
+\long\def\@providecommandtwoopt#1#2{%
+ \begingroup
+ \escapechar\m@ne
+ \xdef\@gtempa{{\string#2}}%
+ \endgroup
+ \expandafter\@ifundefined\@gtempa{%
+ \expandafter\@@newcommandtwoopt
+ \csname2\string#2\endcsname{#1}{#2}%
+ }{%
+ \let\to@dummyA\@undefined
+ \let\to@dummyB\@undefined
+ \@@newcommandtwoopt\to@dummyA{#1}\to@dummyB
+ }%
+}
+\newcommand{\to@ScanSecondOptArg}[3]{%
+ \@ifnextchar[{%
+ \expandafter#1\to@ArgOptToArgArg{#2}%
+ }{%
+ #1{#2}{#3}%
+ }%
+}
+\newcommand{\to@ArgOptToArgArg}{}
+\long\def\to@ArgOptToArgArg#1[#2]{{#1}{#2}}
+\endinput
+%%
+%% End of file `twoopt.sty'.
diff --git a/packages/extern/undertilde.sty b/packages/extern/undertilde.sty
new file mode 100644
index 0000000..adec6ad
--- /dev/null
+++ b/packages/extern/undertilde.sty
@@ -0,0 +1,34 @@
+%%
+%% This is file `undertilde.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% undertilde.dtx (with options: `package')
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from undertilde.sty.
+%%
+%% For distribution of the original source see the terms
+%% for copying and modification in the file undertilde.dtx.
+%%
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+\ProvidesPackage{undertilde}[2000/08/08 v1.0 Tilde under a math object]
+\newlength\knuthian@fdfive
+\def\mathpal@save#1{\let\was@math@style=#1\relax}
+\def\utilde#1{\mathpalette\mathpal@save
+ {\setbox124=\hbox{$\was@math@style#1$}%
+\setbox125=\hbox{$\fam=3\global\knuthian@fdfive=\fontdimen5\font$}
+\setbox125=\hbox{$\widetilde{\vrule height 0pt depth 0pt width \wd124}$}%
+ \baselineskip=1pt\relax
+ \vtop{\copy124\copy125\vskip -\knuthian@fdfive}}}
+\endinput
+%%
+%% End of file `undertilde.sty'.
diff --git a/packages/extern/xifthen.sty b/packages/extern/xifthen.sty
new file mode 100644
index 0000000..a013cee
--- /dev/null
+++ b/packages/extern/xifthen.sty
@@ -0,0 +1,222 @@
+\def \filedate {2009/04/17}%
+\def \fileversion {v1.3}%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{xifthen}%
+ [\filedate \space \fileversion \space Extended ifthen features]
+
+\RequirePackage{etex}
+\RequirePackage{calc}
+\RequirePackage{ifthen}
+\RequirePackage{ifmtarg}
+
+% First of all, \TE@repl (ifthen) needs to be patched. (v1.2)
+% (viz. \newtest{\superlogique}[1]{\(\NOT#1\AND\boolean{true}\)})
+% Pointed out by MPG and Pierre Albar\`ede [19 Mar 2009]
+
+\def \TE@repl #1#2{%
+ \long \def \@tempc ##1#1##2{%
+ \def \@tempb{\@tempc}%
+ \begingroup % Thanks MPG
+ \toks@ {##2}%
+ \edef \@tempa {\the \toks@}% <- UF v1.3
+ \expandafter \endgroup
+ \ifx \@tempa \@tempb
+ \toks@ \expandafter {\the \toks@ ##1}%
+ \expandafter \@gobble
+ \else
+ \toks@ \expandafter {\the \toks@ ##1#2}%
+ \expandafter \@tempc
+ \fi
+ ##2%
+ }%
+ \toks@ \expandafter {\expandafter}%
+ \expandafter \@tempc \the \toks@ #1\@tempc
+}
+
+% \cnttest {} {} {}
+%
+\newcommand*{\TE@cnttest}[4]{%
+ \TE@throw
+ \noexpand \calc@assign@count{\@tempcnta}{\unexpanded{#1}}%
+ \noexpand \calc@assign@count{\@tempcntb}{\unexpanded{#3}}%
+ \noexpand \if \noexpand \TE@cnttest@ {#2}%
+ #4%
+}
+
+\newcommand*{\TE@cnttest@}[1]{%
+ \ifcsname TE@cnttest@@#1\endcsname
+ \csname TE@cnttest@@#1\expandafter\expandafter\expandafter \endcsname
+ \expandafter \@gobble
+ \else
+ \expandafter \@firstofone
+ \fi
+ {FF\PackageError{xifthen}{Not a valid comparison operator "#1"}%
+ {Valid comparisons are <, =, >, <=, and =>.}}%
+}
+
+\@namedef{TE@cnttest@@<}{\ifnum \@tempcnta<\@tempcntb AA\else AB\fi}
+\@namedef{TE@cnttest@@>}{\ifnum \@tempcnta>\@tempcntb AA\else AB\fi}
+\@namedef{TE@cnttest@@=}{\ifnum \@tempcnta=\@tempcntb AA\else AB\fi}
+\@namedef{TE@cnttest@@<=}{%
+ \ifnum \@tempcnta<\@tempcntb AA\else
+ \ifnum \@tempcnta=\@tempcntb AA\else AB\fi
+ \fi
+}
+\@namedef{TE@cnttest@@>=}{%
+ \ifnum \@tempcnta>\@tempcntb AA\else
+ \ifnum \@tempcnta=\@tempcntb AA\else AB\fi
+ \fi
+}
+
+% \dimtest {} {} {}
+%
+\newcommand*{\TE@dimtest}[4]{%
+ \TE@throw
+ \noexpand \calc@assign@skip{\@tempskipa}{\unexpanded{#1}}%
+ \noexpand \calc@assign@skip{\@tempskipb}{\unexpanded{#3}}%
+ \noexpand \if \noexpand \TE@dimtest@ {#2}%
+ #4%
+}
+
+\newcommand*{\TE@dimtest@}[1]{%
+ \ifcsname TE@dimtest@@#1\endcsname
+ \csname TE@dimtest@@#1\expandafter\expandafter\expandafter \endcsname
+ \expandafter \@gobble
+ \else
+ \expandafter \@firstofone
+ \fi
+ {FF\PackageError{xifthen}{Not a valid comparison operator "#1"}%
+ {Valid comparisons are <, =, >, <=, and =>.}}%
+}
+
+\@namedef{TE@dimtest@@<}{\ifdim \@tempskipa<\@tempskipb AA\else AB\fi}
+\@namedef{TE@dimtest@@>}{\ifdim \@tempskipa>\@tempskipb AA\else AB\fi}
+\@namedef{TE@dimtest@@=}{\ifdim \@tempskipa=\@tempskipb AA\else AB\fi}
+\@namedef{TE@dimtest@@<=}{%
+ \ifdim \@tempskipa<\@tempskipb AA\else
+ \ifdim \@tempskipa=\@tempskipb AA\else AB\fi
+ \fi
+}
+\@namedef{TE@dimtest@@>=}{%
+ \ifdim \@tempskipa>\@tempskipb AA\else
+ \ifdim \@tempskipa=\@tempskipb AA\else AB\fi
+ \fi
+}
+
+% \isnamedefined {}
+%
+\newcommand*{\TE@isnamedefined}[2]{%
+ \TE@throw
+ \noexpand \ifcsname #1\endcsname
+ #2%
+}
+
+% \isempty {}
+%
+\newcommand*{\TE@isempty}[2]{%
+ \TE@throw
+ \noexpand \if FF\noexpand \@nameuse{fi}%
+ \noexpand \@ifmtarg{\unexpanded{#1}}{%
+ \noexpand \@nameuse{iftrue}%
+ }{%
+ \noexpand \@nameuse{iffalse}%
+ }%
+ #2%
+}
+
+% \isequivalentto {} {}
+%
+\newcommand*{\TE@isequivalentto}[3]{%
+ \TE@throw
+ \noexpand \ifx \noexpand #1\noexpand#2%
+ #3%
+}
+
+% \isin {} {}
+%
+\newcommand*{\TE@isin}[3]{%
+ \TE@throw
+ \unexpanded {\in@{#1}{#2}}%
+ \noexpand \ifin@
+ #3%
+}
+
+% \endswith {} {}
+%
+\newcommand*{\TE@endswith}[3]{%
+ \TE@throw
+ \unexpanded {\in@{#2\@nil}{#1\@nil}}%
+ \noexpand \ifin@
+ #3%
+}
+
+% \newtest [] {}
+%
+\newcommand*{\newtest}[1]{%
+ \@ifnextchar[{%
+ \@newtest{#1}%
+ }{%
+ \@newtest{#1}[0]%
+ }%
+}%
+
+\newcommand*{\@newtest}{}
+\def \@newtest #1[#2]#3{%
+ \toks@ = {\(#3\)}%
+ \TE@repl \or \TE@or
+ \TE@repl \and \TE@and
+ \TE@repl \not \TE@neg
+ \TE@repl \OR \TE@or
+ \TE@repl \AND \TE@and
+ \TE@repl \NOT \TE@neg
+ \edef \@tempa {%
+ \unexpanded{\newcommand*{#1}[{#2}]}{\the \toks@}%
+ }%
+ \@tempa
+}%
+
+\newcommand*{\TE@hook}{%
+ \let \isequivalentto = \TE@isequivalentto
+ \let \terminateswith = \TE@endswith % For compability reasons (deprecated)
+ \let \endswith = \TE@endswith
+ \let \isnamedefined = \TE@isnamedefined
+ \let \isempty = \TE@isempty
+ \let \cnttest = \TE@cnttest
+ \let \dimtest = \TE@dimtest
+ \let \isin = \TE@isin
+}
+
+\renewcommand{\ifthenelse}[1]{%
+ \toks@{#1}%
+ \TE@repl \or \TE@or
+ \TE@repl \and \TE@and
+ \TE@repl \not \TE@neg
+ \TE@repl \OR \TE@or
+ \TE@repl \AND \TE@and
+ \TE@repl \NOT \TE@neg
+ \begingroup
+ \let \protect = \@unexpandable@protect
+ \def \@setref ##1##2##3{\ifx ##1\relax \z@ \else \expandafter ##2##1\fi}%
+ \def \value ##1{\the \csname c@##1\endcsname}%
+ \let \equal = \TE@equal
+ \let \( = \TE@lparen
+ \let \) = \TE@rparen
+ \let \isodd = \TE@odd
+ \let \lengthtest = \TE@length
+ \let \isundefined = \TE@undef
+ \TE@hook
+ \begingroup
+ \let \@tempa = \relax
+ \let \@tempb = \relax
+ \xdef \@gtempa {\expandafter \TE@eval \the \toks@ \TE@endeval}%
+ \endgroup
+ \@gtempa
+ \expandafter \endgroup
+ \ifTE@val
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+
+\endinput
diff --git a/packages/intern/.DS_Store b/packages/intern/.DS_Store
new file mode 100644
index 0000000..e3d1340
Binary files /dev/null and b/packages/intern/.DS_Store differ
diff --git a/packages/intern/Changelog.txt b/packages/intern/Changelog.txt
new file mode 100644
index 0000000..5aafa5f
--- /dev/null
+++ b/packages/intern/Changelog.txt
@@ -0,0 +1,23 @@
+
+
+
+
+Geänderte Befehle:
+
+\gk -> \floor + neuer Befehl \ceiling
+
+
+Vielleicht:
+\lpo -> \laplace
+
+
+Neue Dokumentenklasse latex4ei
+
+ Optionen:
+
+ fs: Legt die Grundliegenden Formatierungen für eine Formelsammlung an
+ footer: Erzeugt einen LaTeX4EI Footer
+
+
+ Befehle:
+ fstitle: Legt einen Titel an (ggf. in paket auslagern)
\ No newline at end of file
diff --git a/packages/intern/README b/packages/intern/README
new file mode 100644
index 0000000..60517cf
--- /dev/null
+++ b/packages/intern/README
@@ -0,0 +1,37 @@
+# Installation der LaTeX4EI Build Umgebung
+
+.:: Stand: 2.6.2013
+.:: Author: Martin Zellner
+
+
+## Mac OS X
+
+- Installiere MacTex 2012 oder neuer
+- Erzeuge einen symbolischen Link um die Pakete einzubinden:
+
+ cd /usr/local/texlive/2012/texmf-dist/tex/latex/
+ sudo ln -s " %Pfad zur Dropbox%/packages/intern/" latex4ei
+- Aktualisiere die LaTeX Umgebung:
+
+ sudo texhash
+ sudo mktexlsr
+---
+
+## Linux
+
+ cd /usr/share/texlive/texmf-dist/tex/latex
+ sudo ln -s PATHTOFOLDER/packages/intern/ latex4ei
+ sudo texhash
+ sudo mktexlsr
+
+
+## Windows (f¸r MiKTeX)
+- Installiere die aktuellste MiKTeX Version
+- ÷ffne Start -> Alle Programme -> MiKTeX x.x -> Maintenance (Admin) -> Settings (Admin)
+- Gehe zu Registerkarte "Roots"
+- Klicke auf "Add"
+- Suche in secret LaTeX Dropbox -> packages -> edit -> miktex structure
+- Klicke auf "OK" und nochmals auf "OK".
+- Fertig
+
+---
\ No newline at end of file
diff --git a/packages/intern/latex4ei.cls b/packages/intern/latex4ei.cls
new file mode 100644
index 0000000..ad108fb
--- /dev/null
+++ b/packages/intern/latex4ei.cls
@@ -0,0 +1,87 @@
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{latex4ei}[2013/05/06 Formelsammlungsvorlage von LaTeX4EI]
+
+% Dokumentklasse (Schriftgröße 6, DIN A4, Artikel)
+\LoadClass[6pt,a4paper,landscape]{scrartcl}
+
+ % Pakete laden
+ \RequirePackage[utf8]{inputenc} % Zeichenkodierung: UTF-8 (für Umlaute)
+ \RequirePackage[german]{babel} % Deutsche Sprache
+ \RequirePackage{multicol} % ermöglicht Seitenspalten
+ \RequirePackage{graphicx} % Zum Bilder einfügen benötigt
+ \RequirePackage{pbox} % Intelligent parbox: \pbox{maximum width}{blabalbalb \\ blabal}
+ \RequirePackage{scrtime} % Änderungsdatum
+ \RequirePackage{parskip} % Verhindert das einrücken am Zeilenanfang
+ \RequirePackage{titlesec} % Ermöglicht neuformatierung von Titeln
+ \RequirePackage{xcolor} % Ermöglicht farbigen Text
+ \RequirePackage{multicol} % Spalten-Layout
+ \RequirePackage{geometry} % Seitenlayout und Ränder
+ \RequirePackage{fancyhdr} % Kopf- und Fußzeile
+ %\RequirePackage{tikz} % Alle möglichen Zeichnungen
+ %\RequirePackage{multirow} % Zeilenübergreifender Text
+
+ \RequirePackage{scientific} % Befehle von LaTeX4EI (öffentlich)
+ \RequirePackage{latex4ei} % Befehle von LaTeX4EI (privat)
+
+
+\newcommand{\fstitle}[1]{
+ \vspace{-20mm}{
+ \parbox{2.3cm}{
+ \includegraphics[height=1.4cm]{img/Logo.pdf}
+ }
+ \parbox{4cm}{
+ \emph{\huge{#1}}
+ }}
+}
+
+
+% .:: Formelsammlungsstyle
+\DeclareOption{fs}{
+ % .:: Seitenlayout und Ränder
+ % ======================================================================
+ \geometry{a4paper,landscape, left=6mm,right=6mm, top=0mm, bottom=3mm,includeheadfoot}
+
+ % .:: Überschriften anpassen
+ % ======================================================================
+ \definecolor{sectioncolor}{RGB}{40,40,128}
+
+ %\titleformat{ command }[ shape ]{ format }{ label }{ sep }{ before-code }[ after-code ]
+ \titleformat{\section}{\Large \bfseries}{\thesection .}{0.5em}{\color{sectioncolor}}[\color{sectioncolor} \hrule \hrule]
+ \titleformat{\subsection}{\large \bfseries}{\thesubsection .}{0.3em}{}
+
+ %\titlespacing{Überschriftart}{keine Ahnung}{Abstand oberhalb}{Abstand unterhalb}
+ \titlespacing{\section}{0em}{1.0em}{0.1em}
+ \titlespacing{\subsection}{0em}{0.2em}{-0.4em}
+ \titlespacing{\subsubsection}{0em}{0em}{-0.5em}
+
+ \setlength{\parskip}{1pt}
+
+ % Schriftart SANS für bessere Lesbarkeit bei kleiner Schrift
+ \renewcommand{\familydefault}{\sfdefault}
+
+ % Array- und Tabellenabstände vergrößern
+ \renewcommand{\arraystretch}{1.2}
+}
+
+\DeclareOption{footer}{
+ % .:: Kopf- und Fußzeile
+ % ======================================================================
+ \pagestyle{fancy}
+ \fancyhf{}
+
+ \fancyfoot[C]{von LaTeX4EI - Mail: \emph{info@latex4ei.de}}
+ \renewcommand{\headrulewidth}{0.0pt} %obere Linie ausblenden
+ \renewcommand{\footrulewidth}{0.1pt} %obere Linie ausblenden
+
+ \fancyfoot[R]{Stand: \today \ um \thistime \ Uhr \qquad \thepage}
+ \fancyfoot[L]{Homepage: www.latex4ei.de -- Fehler bitte \emph{sofort} melden.}
+}
+
+
+\ProcessOptions*
+
+% SI-Units
+\sisetup{per-mode=fraction}
+\sisetup{sticky-per=true}
+
+\AtBeginDocument{\sisetup{math-rm=\mathrm, text-rm=\rmfamily}}
diff --git a/packages/intern/latex4ei.sty b/packages/intern/latex4ei.sty
new file mode 100644
index 0000000..d8fa34b
--- /dev/null
+++ b/packages/intern/latex4ei.sty
@@ -0,0 +1,162 @@
+% Layout, Macros für LaTeX4EI Stand 04.04.13
+% Erstellt von Emanuel Regnath, Martin Zellner
+%
+% Lizenz: Dieses package darf nur für Dokumente für LaTeX4EI verwendet werden!
+% Bei anderem Verwendungszweck bitte Erlaubnis einholen: info@latex4ei.de
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{latex4ei}[2013/05/06 Macros for LaTeX4EI]
+
+
+\RequirePackage{xifthen} % If Then Else Anweisungen
+
+
+% .:: Eigenschaften setzen
+% ======================================================================
+
+% Einrückung bei itemize verkleinern:
+\setlength{\itemindent}{0em}
+\setlength\leftmargini{1.8em}
+\setlength\itemsep{0em}
+
+%Abstand zwischen Absätzen = Abstand den eine neue Zeile im Quellcode erzeugt
+\setlength{\parskip}{0mm}
+
+
+
+% .:: Formatierungen
+% ======================================================================
+\newcommand{\ABB}[1]{\textsc{#1}} % Abkürzungen
+\newcommand{\code}[1]{\verb+#1+} % Quellcode
+\newcommand{\Fbox}[1]{\fbox{\strut#1}} % Gleich hohe Boxen
+
+
+% .:: Eigene Befehle und Abkürzungen
+% ======================================================================
+
+%\let\oldfrac = \frac
+
+% Eigene Bruchdarstellung:
+%\renewcommand{\frac}[3][]{%
+%\ifthenelse{\isempty{#1}}%
+% {\oldfrac{#2}{#3}}
+% {\genfrac{}{}{}{}{\raisebox{#1}[\height+0.1em][\depth]{$\scriptstyle #2$}}{\raisebox{-#1}[\height][\depth + 0.2em]{$\scriptstyle #3$}}}
+%}
+
+
+
+
+% Überschreibungen
+\renewcommand{\vec}[1]{\ensuremath{\underline{\boldsymbol {#1}}}} % Vektor fett und unterstrichen
+\renewcommand{\emph}[1]{\textbf{#1}} % Hervorhebungen fett
+
+% Dickere Ableitungspunkte
+\renewcommand*{\dot}[1]{\accentset{\mbox{\textrm{\large\bfseries .}} }{#1}} % Dicker Ableitungspunkt
+\renewcommand*{\ddot}[1]{\accentset{\mbox{\textrm{\large\bfseries .\hspace{-0.25ex}.}}}{#1}} % Dicker Doppelableitungspunkt
+\renewcommand*{\dddot}[1]{\accentset{\mbox{$\overset{\textrm{\large\bfseries .}}{\textrm{\large\bfseries.\hspace{-0.25ex}.}}$}}{#1}}
+
+
+% Abkürzungen für Symbole
+\providecommand{\ul}[1]{\ensuremath{\underline{#1}}} % Underline
+\providecommand{\ol}[1]{\ensuremath{\overline{#1}}} % Overline
+\providecommand{\bs}[1]{\ensuremath{\boldsymbol{#1}}} % bold and italic in mathmode
+\providecommand{\Ra}{\ensuremath{\Rightarrow}} % Rightarrow
+\providecommand{\ra}{\ensuremath{\rightarrow}} % rightarrow
+\providecommand{\lra}{\ensuremath{\longrightarrow}} % Longrightarrow
+\providecommand{\upa}{\ensuremath{\uparrow}}
+\providecommand{\downa}{\ensuremath{\downarrow}}
+\providecommand{\bdot}{\ensuremath{\boldsymbol \cdot}} % Dicker Punkt für Skalarprodukt
+\providecommand{\svdots}{\ensuremath{\olddot :}} % small vertical dots
+\providecommand{\shdots}{\ensuremath{\!\cdot \!\cdot\!\cdot\!}} % small horizontal dots
+
+
+
+
+
+% Eigene Tabellenlinien
+\def\trule{\noalign{\vspace{1pt}\hrule\hrule\vspace{2pt}}} % top rule
+\def\mrule{\noalign{\vspace{1pt}\hrule\vspace{2pt}}} % middle rule
+\def\brule{\noalign{\vspace{2pt}\hrule\hrule\vspace{1pt}}} % bottom rule
+
+% Farbige Tabellenlinien
+\def\ctrule{\noalign{{\color{tablecolor}\hrule\hrule}\vspace{2pt}}} % colored top rule
+\def\cmrule{\noalign{\vspace{1pt}{\color{tablecolor}\hrule}\vspace{2pt}}} % colored middle rule
+\def\cbrule{\noalign{\vspace{2pt}{\color{tablecolor}\hrule\hrule}}} % colored bottom rule
+
+
+
+% .:: Farbige Strukturierungselemente wie Boxen
+% ======================================================================
+
+\definecolor{lightblue}{RGB}{235,235,255}
+\definecolor{lightred}{RGB}{255,240,240}
+\definecolor{lightgreen}{RGB}{240,255,240}
+\definecolor{lightyellow}{RGB}{255,255,240}
+\definecolor{lightblue}{RGB}{220, 240, 247}
+\definecolor{darkblue}{RGB}{23,110,138}
+\definecolor{notsodarkblue}{RGB}{119,193,214}
+\definecolor{tablecolor}{RGB}{0,128,0}
+
+% Für die Überschriften und Linien
+\definecolor{lila}{RGB}{128,0,128}
+\definecolor{latex4eiblau}{RGB}{86,124,136}
+\definecolor{latex4eigruen}{RGB}{150,163,110}
+
+% Farbige Boxen
+\providecommand{\topicbox}[2]{
+\fcolorbox{blue}{lightblue}{\color{blue}\parbox{\columnwidth-2\fboxsep}{{\large \textbf{ #1}}\\\hspace*{-\fboxsep}\rule[2pt]{\columnwidth}{0.5pt}\\ \color{black}#2}}}
+
+\providecommand{\emphbox}[1]{{\fboxrule1pt\fcolorbox{red}{lightyellow}{\parbox{\columnwidth-2\fboxsep-2pt}{\centering #1}}}}
+\providecommand{\symbolbox}[1]{{\fboxrule1pt\fcolorbox{orange}{lightyellow}{\parbox{\columnwidth-2\fboxsep-2pt}{#1}}}}
+\providecommand{\tablebox}[1]{{\fboxsep0pt\colorbox{lightgreen}{\parbox{\columnwidth}{#1}}}}
+\providecommand{\sectionbox}[1]{{\fboxsep0.5em\hspace*{-\fboxsep}\hspace*{-1pt}
+\fcolorbox{gray}{gray!3}{
+\parbox{\columnwidth}{
+ \titlespacing{\subsection}{0em}{0.2em}{0.2em}
+ \titlespacing{\subsubsection}{0em}{0.2em}{0.2em}
+#1
+}}}}
+
+% blaue Rezeptebox
+\providecommand{\cookbox}[2]{{\fboxsep0pt\colorbox{lightblue}{\parbox{\columnwidth}{
+{\color{darkblue}\hrule\hrule}\vspace{2pt}
+ \begin{center}
+\textbf{#1}
+\end{center}
+\vspace{3pt}{\color{notsodarkblue}\hrule\hrule}
+\vspace{3pt}
+\begin{itemize}
+#2
+\end{itemize}
+\vspace{2pt}{\color{darkblue}\hrule\hrule}
+}}}}
+
+% blaue Rezeptebox als Liste
+\providecommand{\cooknumbox}[2]{{\fboxsep0pt\colorbox{lightblue}{\parbox{\columnwidth}{
+{\color{darkblue}\hrule\hrule}\vspace{2pt}
+ \begin{center}
+\textbf{#1}
+\end{center}
+\vspace{3pt}{\color{notsodarkblue}\hrule\hrule}
+\vspace{3pt}
+\begin{enumerate}
+#2
+\end{enumerate}
+\vspace{2pt}{\color{darkblue}\hrule\hrule}
+}}}}
+
+
+
+% BETA
+
+\providecommand{\sectionboxnew}[1]{
+ \begin{breakbox}
+
+ \titlespacing{\subsection}{0em}{0.2em}{0.2em}
+ \titlespacing{\subsubsection}{0em}{0.2em}{0.2em}
+ #1
+
+ \end{breakbox}
+}
+
+
diff --git a/packages/intern/latex4ei_symbols.sty b/packages/intern/latex4ei_symbols.sty
new file mode 100644
index 0000000..f960015
--- /dev/null
+++ b/packages/intern/latex4ei_symbols.sty
@@ -0,0 +1,125 @@
+% Bezeichner und Symbole Stand 04.06.13
+% Erstellt von Emanuel Regnath, Martin Zellner
+%
+% Lizenz: Dieses package darf nur für Dokumente für LaTeX4EI verwendet werden!
+% Bei anderem Verwendungszweck bitte Erlaubnis einholen: info@latex4ei.de
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{latex4ei_symbols}[2013/05/06 Macros for LaTeX4EI]
+
+
+\RequirePackage{xifthen} % If Then Else Anweisungen
+
+
+
+% Ideen: \tooltipp{} für einmalige tooltipps
+% Symbole standardbuchstaben für standardsymbole: \F = F = Kraft
+% Umschaltmöglichkeit von Symbolkategorien: \symbols = math, stochastic, physic
+% Umschaltmöglichkeit von einzelnen Symbolen: \symbol{\E} = energy, electricfield
+
+% ODER: intelligentes LaTeX? Wertet automatisch symbole in $...$ aus
+
+
+% .:: Symbole Konstanten
+% ======================================================================
+\providecommand{\clight}{\ensuremath{c_0}}
+\providecommand{\ccharge}{\ensuremath{e}}
+\providecommand{\celectric}{\ensuremath{\varepsilon_0}}
+\providecommand{\cmagnetic}{\ensuremath{\mu_0}}
+\providecommand{\cplanck}{\ensuremath{h}}
+
+\providecommand{\cgravity}{\ensuremath{h}}
+\providecommand{\cbolzmann}{\ensuremath{k_{\mathrm{B}}}}
+\providecommand{\cavogadro}{\ensuremath{N_{\mathrm{A}}}}
+
+\providecommand{\cme}{\ensuremath{m_{\mathrm{e}}}}
+\providecommand{\cmp}{\ensuremath{m_{\mathrm{p}}}}
+\providecommand{\cmn}{\ensuremath{m_{\mathrm{n}}}}
+
+
+
+% .:: Mathematik
+% ======================================================================
+
+
+
+
+
+
+% Allgemein
+\providecommand{\linear}{linear }
+\providecommand{\kausal}{kausal }
+\providecommand{\}{}
+\providecommand{\}{}
+\providecommand{\}{}
+\providecommand{\}{}
+
+
+
+\providecommand{\Binomialkoeffizient}{Binomialkoeffizient}
+
+\providecommand{\Injektiv}{Injektiv}
+\providecommand{\Surjektiv}{Surjektiv}
+\providecommand{\Bijektiv}{Bijektiv}
+
+\providecommand{\Komplex}{Komplex}
+\providecommand{\Polynom}{Polynom}
+\providecommand{\}{}
+\providecommand{\}{}
+\providecommand{\}{}
+\providecommand{\}{}
+\providecommand{\}{}
+\providecommand{\}{}
+\providecommand{\}{}
+\providecommand{\}{}
+\providecommand{\}{}
+\providecommand{\}{}
+\providecommand{\}{}
+
+
+% .:: Stochastik
+% ======================================================================
+
+
+
+% .:: Geometrie
+% ======================================================================
+
+
+
+
+% .:: Systemtheorie
+% ======================================================================
+
+
+
+
+% .:: Physik
+% ======================================================================
+
+
+
+
+
+% .:: Elektrotechnik
+% ======================================================================
+
+
+
+
+
+% .:: Informatik
+% ======================================================================
+
+
+
+
+
+% .:: Maschinenbau
+% ======================================================================
+
+
+
+
+% Ende von \input
+\endinput
diff --git a/packages/intern/miktex structure/.DS_Store b/packages/intern/miktex structure/.DS_Store
new file mode 100644
index 0000000..780cc06
Binary files /dev/null and b/packages/intern/miktex structure/.DS_Store differ
diff --git a/packages/intern/miktex structure/tex/.DS_Store b/packages/intern/miktex structure/tex/.DS_Store
new file mode 100644
index 0000000..d62cbc6
Binary files /dev/null and b/packages/intern/miktex structure/tex/.DS_Store differ
diff --git a/packages/intern/miktex structure/tex/latex/.DS_Store b/packages/intern/miktex structure/tex/latex/.DS_Store
new file mode 100644
index 0000000..4a558c3
Binary files /dev/null and b/packages/intern/miktex structure/tex/latex/.DS_Store differ
diff --git a/packages/intern/miktex structure/tex/latex/packages/latex4ei.cls b/packages/intern/miktex structure/tex/latex/packages/latex4ei.cls
new file mode 100644
index 0000000..ad108fb
--- /dev/null
+++ b/packages/intern/miktex structure/tex/latex/packages/latex4ei.cls
@@ -0,0 +1,87 @@
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{latex4ei}[2013/05/06 Formelsammlungsvorlage von LaTeX4EI]
+
+% Dokumentklasse (Schriftgröße 6, DIN A4, Artikel)
+\LoadClass[6pt,a4paper,landscape]{scrartcl}
+
+ % Pakete laden
+ \RequirePackage[utf8]{inputenc} % Zeichenkodierung: UTF-8 (für Umlaute)
+ \RequirePackage[german]{babel} % Deutsche Sprache
+ \RequirePackage{multicol} % ermöglicht Seitenspalten
+ \RequirePackage{graphicx} % Zum Bilder einfügen benötigt
+ \RequirePackage{pbox} % Intelligent parbox: \pbox{maximum width}{blabalbalb \\ blabal}
+ \RequirePackage{scrtime} % Änderungsdatum
+ \RequirePackage{parskip} % Verhindert das einrücken am Zeilenanfang
+ \RequirePackage{titlesec} % Ermöglicht neuformatierung von Titeln
+ \RequirePackage{xcolor} % Ermöglicht farbigen Text
+ \RequirePackage{multicol} % Spalten-Layout
+ \RequirePackage{geometry} % Seitenlayout und Ränder
+ \RequirePackage{fancyhdr} % Kopf- und Fußzeile
+ %\RequirePackage{tikz} % Alle möglichen Zeichnungen
+ %\RequirePackage{multirow} % Zeilenübergreifender Text
+
+ \RequirePackage{scientific} % Befehle von LaTeX4EI (öffentlich)
+ \RequirePackage{latex4ei} % Befehle von LaTeX4EI (privat)
+
+
+\newcommand{\fstitle}[1]{
+ \vspace{-20mm}{
+ \parbox{2.3cm}{
+ \includegraphics[height=1.4cm]{img/Logo.pdf}
+ }
+ \parbox{4cm}{
+ \emph{\huge{#1}}
+ }}
+}
+
+
+% .:: Formelsammlungsstyle
+\DeclareOption{fs}{
+ % .:: Seitenlayout und Ränder
+ % ======================================================================
+ \geometry{a4paper,landscape, left=6mm,right=6mm, top=0mm, bottom=3mm,includeheadfoot}
+
+ % .:: Überschriften anpassen
+ % ======================================================================
+ \definecolor{sectioncolor}{RGB}{40,40,128}
+
+ %\titleformat{ command }[ shape ]{ format }{ label }{ sep }{ before-code }[ after-code ]
+ \titleformat{\section}{\Large \bfseries}{\thesection .}{0.5em}{\color{sectioncolor}}[\color{sectioncolor} \hrule \hrule]
+ \titleformat{\subsection}{\large \bfseries}{\thesubsection .}{0.3em}{}
+
+ %\titlespacing{Überschriftart}{keine Ahnung}{Abstand oberhalb}{Abstand unterhalb}
+ \titlespacing{\section}{0em}{1.0em}{0.1em}
+ \titlespacing{\subsection}{0em}{0.2em}{-0.4em}
+ \titlespacing{\subsubsection}{0em}{0em}{-0.5em}
+
+ \setlength{\parskip}{1pt}
+
+ % Schriftart SANS für bessere Lesbarkeit bei kleiner Schrift
+ \renewcommand{\familydefault}{\sfdefault}
+
+ % Array- und Tabellenabstände vergrößern
+ \renewcommand{\arraystretch}{1.2}
+}
+
+\DeclareOption{footer}{
+ % .:: Kopf- und Fußzeile
+ % ======================================================================
+ \pagestyle{fancy}
+ \fancyhf{}
+
+ \fancyfoot[C]{von LaTeX4EI - Mail: \emph{info@latex4ei.de}}
+ \renewcommand{\headrulewidth}{0.0pt} %obere Linie ausblenden
+ \renewcommand{\footrulewidth}{0.1pt} %obere Linie ausblenden
+
+ \fancyfoot[R]{Stand: \today \ um \thistime \ Uhr \qquad \thepage}
+ \fancyfoot[L]{Homepage: www.latex4ei.de -- Fehler bitte \emph{sofort} melden.}
+}
+
+
+\ProcessOptions*
+
+% SI-Units
+\sisetup{per-mode=fraction}
+\sisetup{sticky-per=true}
+
+\AtBeginDocument{\sisetup{math-rm=\mathrm, text-rm=\rmfamily}}
diff --git a/packages/intern/miktex structure/tex/latex/packages/latex4ei.sty b/packages/intern/miktex structure/tex/latex/packages/latex4ei.sty
new file mode 100644
index 0000000..d8fa34b
--- /dev/null
+++ b/packages/intern/miktex structure/tex/latex/packages/latex4ei.sty
@@ -0,0 +1,162 @@
+% Layout, Macros für LaTeX4EI Stand 04.04.13
+% Erstellt von Emanuel Regnath, Martin Zellner
+%
+% Lizenz: Dieses package darf nur für Dokumente für LaTeX4EI verwendet werden!
+% Bei anderem Verwendungszweck bitte Erlaubnis einholen: info@latex4ei.de
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{latex4ei}[2013/05/06 Macros for LaTeX4EI]
+
+
+\RequirePackage{xifthen} % If Then Else Anweisungen
+
+
+% .:: Eigenschaften setzen
+% ======================================================================
+
+% Einrückung bei itemize verkleinern:
+\setlength{\itemindent}{0em}
+\setlength\leftmargini{1.8em}
+\setlength\itemsep{0em}
+
+%Abstand zwischen Absätzen = Abstand den eine neue Zeile im Quellcode erzeugt
+\setlength{\parskip}{0mm}
+
+
+
+% .:: Formatierungen
+% ======================================================================
+\newcommand{\ABB}[1]{\textsc{#1}} % Abkürzungen
+\newcommand{\code}[1]{\verb+#1+} % Quellcode
+\newcommand{\Fbox}[1]{\fbox{\strut#1}} % Gleich hohe Boxen
+
+
+% .:: Eigene Befehle und Abkürzungen
+% ======================================================================
+
+%\let\oldfrac = \frac
+
+% Eigene Bruchdarstellung:
+%\renewcommand{\frac}[3][]{%
+%\ifthenelse{\isempty{#1}}%
+% {\oldfrac{#2}{#3}}
+% {\genfrac{}{}{}{}{\raisebox{#1}[\height+0.1em][\depth]{$\scriptstyle #2$}}{\raisebox{-#1}[\height][\depth + 0.2em]{$\scriptstyle #3$}}}
+%}
+
+
+
+
+% Überschreibungen
+\renewcommand{\vec}[1]{\ensuremath{\underline{\boldsymbol {#1}}}} % Vektor fett und unterstrichen
+\renewcommand{\emph}[1]{\textbf{#1}} % Hervorhebungen fett
+
+% Dickere Ableitungspunkte
+\renewcommand*{\dot}[1]{\accentset{\mbox{\textrm{\large\bfseries .}} }{#1}} % Dicker Ableitungspunkt
+\renewcommand*{\ddot}[1]{\accentset{\mbox{\textrm{\large\bfseries .\hspace{-0.25ex}.}}}{#1}} % Dicker Doppelableitungspunkt
+\renewcommand*{\dddot}[1]{\accentset{\mbox{$\overset{\textrm{\large\bfseries .}}{\textrm{\large\bfseries.\hspace{-0.25ex}.}}$}}{#1}}
+
+
+% Abkürzungen für Symbole
+\providecommand{\ul}[1]{\ensuremath{\underline{#1}}} % Underline
+\providecommand{\ol}[1]{\ensuremath{\overline{#1}}} % Overline
+\providecommand{\bs}[1]{\ensuremath{\boldsymbol{#1}}} % bold and italic in mathmode
+\providecommand{\Ra}{\ensuremath{\Rightarrow}} % Rightarrow
+\providecommand{\ra}{\ensuremath{\rightarrow}} % rightarrow
+\providecommand{\lra}{\ensuremath{\longrightarrow}} % Longrightarrow
+\providecommand{\upa}{\ensuremath{\uparrow}}
+\providecommand{\downa}{\ensuremath{\downarrow}}
+\providecommand{\bdot}{\ensuremath{\boldsymbol \cdot}} % Dicker Punkt für Skalarprodukt
+\providecommand{\svdots}{\ensuremath{\olddot :}} % small vertical dots
+\providecommand{\shdots}{\ensuremath{\!\cdot \!\cdot\!\cdot\!}} % small horizontal dots
+
+
+
+
+
+% Eigene Tabellenlinien
+\def\trule{\noalign{\vspace{1pt}\hrule\hrule\vspace{2pt}}} % top rule
+\def\mrule{\noalign{\vspace{1pt}\hrule\vspace{2pt}}} % middle rule
+\def\brule{\noalign{\vspace{2pt}\hrule\hrule\vspace{1pt}}} % bottom rule
+
+% Farbige Tabellenlinien
+\def\ctrule{\noalign{{\color{tablecolor}\hrule\hrule}\vspace{2pt}}} % colored top rule
+\def\cmrule{\noalign{\vspace{1pt}{\color{tablecolor}\hrule}\vspace{2pt}}} % colored middle rule
+\def\cbrule{\noalign{\vspace{2pt}{\color{tablecolor}\hrule\hrule}}} % colored bottom rule
+
+
+
+% .:: Farbige Strukturierungselemente wie Boxen
+% ======================================================================
+
+\definecolor{lightblue}{RGB}{235,235,255}
+\definecolor{lightred}{RGB}{255,240,240}
+\definecolor{lightgreen}{RGB}{240,255,240}
+\definecolor{lightyellow}{RGB}{255,255,240}
+\definecolor{lightblue}{RGB}{220, 240, 247}
+\definecolor{darkblue}{RGB}{23,110,138}
+\definecolor{notsodarkblue}{RGB}{119,193,214}
+\definecolor{tablecolor}{RGB}{0,128,0}
+
+% Für die Überschriften und Linien
+\definecolor{lila}{RGB}{128,0,128}
+\definecolor{latex4eiblau}{RGB}{86,124,136}
+\definecolor{latex4eigruen}{RGB}{150,163,110}
+
+% Farbige Boxen
+\providecommand{\topicbox}[2]{
+\fcolorbox{blue}{lightblue}{\color{blue}\parbox{\columnwidth-2\fboxsep}{{\large \textbf{ #1}}\\\hspace*{-\fboxsep}\rule[2pt]{\columnwidth}{0.5pt}\\ \color{black}#2}}}
+
+\providecommand{\emphbox}[1]{{\fboxrule1pt\fcolorbox{red}{lightyellow}{\parbox{\columnwidth-2\fboxsep-2pt}{\centering #1}}}}
+\providecommand{\symbolbox}[1]{{\fboxrule1pt\fcolorbox{orange}{lightyellow}{\parbox{\columnwidth-2\fboxsep-2pt}{#1}}}}
+\providecommand{\tablebox}[1]{{\fboxsep0pt\colorbox{lightgreen}{\parbox{\columnwidth}{#1}}}}
+\providecommand{\sectionbox}[1]{{\fboxsep0.5em\hspace*{-\fboxsep}\hspace*{-1pt}
+\fcolorbox{gray}{gray!3}{
+\parbox{\columnwidth}{
+ \titlespacing{\subsection}{0em}{0.2em}{0.2em}
+ \titlespacing{\subsubsection}{0em}{0.2em}{0.2em}
+#1
+}}}}
+
+% blaue Rezeptebox
+\providecommand{\cookbox}[2]{{\fboxsep0pt\colorbox{lightblue}{\parbox{\columnwidth}{
+{\color{darkblue}\hrule\hrule}\vspace{2pt}
+ \begin{center}
+\textbf{#1}
+\end{center}
+\vspace{3pt}{\color{notsodarkblue}\hrule\hrule}
+\vspace{3pt}
+\begin{itemize}
+#2
+\end{itemize}
+\vspace{2pt}{\color{darkblue}\hrule\hrule}
+}}}}
+
+% blaue Rezeptebox als Liste
+\providecommand{\cooknumbox}[2]{{\fboxsep0pt\colorbox{lightblue}{\parbox{\columnwidth}{
+{\color{darkblue}\hrule\hrule}\vspace{2pt}
+ \begin{center}
+\textbf{#1}
+\end{center}
+\vspace{3pt}{\color{notsodarkblue}\hrule\hrule}
+\vspace{3pt}
+\begin{enumerate}
+#2
+\end{enumerate}
+\vspace{2pt}{\color{darkblue}\hrule\hrule}
+}}}}
+
+
+
+% BETA
+
+\providecommand{\sectionboxnew}[1]{
+ \begin{breakbox}
+
+ \titlespacing{\subsection}{0em}{0.2em}{0.2em}
+ \titlespacing{\subsubsection}{0em}{0.2em}{0.2em}
+ #1
+
+ \end{breakbox}
+}
+
+
diff --git a/packages/intern/miktex structure/tex/latex/packages/scientific.sty b/packages/intern/miktex structure/tex/latex/packages/scientific.sty
new file mode 100644
index 0000000..1b244e7
--- /dev/null
+++ b/packages/intern/miktex structure/tex/latex/packages/scientific.sty
@@ -0,0 +1,194 @@
+% www.latex4ei.de Date 01.05.13
+%
+% DESCRIPTION: latex package with useful macros for scientific documents
+% AUTHOR: Emanuel Regnath, Martin Zellner
+% VERSION: 1.0
+%
+% LICENCE: Dieses package darf für beliebige Zwecke in LaTeX Dokumente eingebunden werden.
+% Änderung am Quellcode sind nicht gestattet. Ergänzungswünsche bitte an info@latex4ei.de
+%
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{scientific}[2013/05/01 Scientific Macros for LaTeX4EI]
+
+% Benötigte Pakete laden
+\RequirePackage{xifthen} % If Then Else Anweisungen
+\RequirePackage{amsmath} % erlaubt mathematische Formeln
+\RequirePackage{accents} % Für eigene Ableitungspunkte benötigt
+\RequirePackage{xcolor} % Farbiger Text möglich
+
+% Zusätzliche Pakete
+\RequirePackage{amssymb} % Verschiedene Symbole
+\RequirePackage{esint} % erweiterte Integralsymbole
+\RequirePackage[version=3]{mhchem} % chemistry \ce
+
+
+% Save old commands
+\let\oldvec = \vec
+
+
+% .:: SI Einheiten
+% ======================================================================
+\RequirePackage{siunitx} % SI gerechte Darstellung von Zahlen
+\sisetup{per-mode=reciprocal} % Statt Brüchen ^-1
+\sisetup{sticky-per=true} % Alle Einheiten hinter per sind reziprok
+\newcommand{\unitof}[1]{\ensuremath{\left[#1\right]}} % Einheit von
+
+
+
+% .:: Vektoren und Matrizen
+% ======================================================================
+
+% Definiere \utilde: aus Package undertilde.sty
+\newlength\knuthian@fdfive
+\def\mathpal@save#1{\let\was@math@style=#1\relax}
+\def\utilde#1{\mathpalette\mathpal@save
+ {\setbox124=\hbox{$\was@math@style#1$}%
+\setbox125=\hbox{$\fam=3\global\knuthian@fdfive=\fontdimen5\font$}
+\setbox125=\hbox{$\widetilde{\vrule height 0pt depth 0pt width \wd124}$}%
+ \baselineskip=1pt\relax
+ \vtop{\copy124\copy125\vskip -\knuthian@fdfive}}}
+
+% Definiere Vektoren und Matrizen
+\newcommand{\ma}[1]{\ensuremath{\utilde{\boldsymbol {#1}}}} % Matrixsymbol
+\newcommand{\mat}[1]{\ensuremath{\begin{bmatrix} #1 \end{bmatrix}}} % Matrix
+\newcommand{\tma}[3]{\ensuremath{{}_{#1} \ma #2_#3 }} % Trafomatrix
+\renewcommand{\vec}[1]{\ensuremath{\underline{\boldsymbol {#1}}}} % Vektor fett und unterstrichen
+\newcommand{\vect}[1]{\ensuremath{\begin{pmatrix} #1 \end{pmatrix}}} % Vector
+\newcommand{\mvect}[1]{\ensuremath{\left.\begin{matrix} #1 \end{matrix}\right]}}% Matrixvector
+\newcommand{\tensor}[1]{\ensuremath{\underline{\underline{\boldsymbol #1}}}} % Tensor
+
+% Vektoroperationen
+\newcommand{\norm}[1]{\ensuremath{\left\|#1\right\|}} % Norm
+
+
+
+% .:: Differentielles Delta
+% ======================================================================
+\newcommand{\diff}{\mathop{}\!\mathrm{\vphantom( d}} % differentielles Delta perfekt
+
+
+
+% .:: Gemischtes
+% ======================================================================
+\newcommand{\floor}[1]{\ensuremath{\left\lfloor#1\right\rfloor}} % Abrunden
+\newcommand{\ceil}[1]{\ensuremath{\left\lceil {#1} \right\rceil}} % Aufrunden
+\newcommand{\sprod}[2]{\ensuremath{\left\langle #1, #2 \right\rangle }} % Skalarprodukt
+\newcommand{\abs}[1]{\ensuremath{\left\vert#1\right\vert}} % Betrag (absolute value)
+\newcommand{\chem}[1]{\ensuremath{\displaystyle{\mathrm{#1}}}} % chemische Formeln die gut aussehen ;)
+\newcommand{\ir}[1]{\sf #1} % index roman: Indizes aufrecht schreiben
+\newcommand{\rom}[1]{\ensuremath{\underline{\overline{\textsc{#1}}}}} % Römische Zahlen
+
+
+
+
+% .:: Komplexe und Hyperkomplexe Zahlen
+% ======================================================================
+\newcommand{\cx}[1]{\boldsymbol{#1}} % komplexe Zahl
+\newcommand{\cxc}[1]{\ensuremath{\boldsymbol #1^*}} % Konjugiert komplexe Zahl
+\newcommand{\hx}[1]{\ensuremath{\mathfrak #1}} % hyperkomplexe Zahl
+\renewcommand{\i}{\ensuremath{\mathrm{i}}} % imaginary unit
+\renewcommand{\j}{\ensuremath{\mathrm{j}}} % imaginary unit
+\renewcommand{\k}{\ensuremath{\mathrm{k}}} % imaginary unit
+
+% Real und Imaginärteil
+\renewcommand{\Re}[1]{\ensuremath{\operatorname{Re}\left\{#1\right\}}}
+\renewcommand{\Im}[1]{\ensuremath{\operatorname{Im}\left\{#1\right\}}}
+
+
+% .:: Mengen
+% ======================================================================
+\newcommand{\iset}[2]{\ensuremath{\bigl\{ \bigl. #1 \, \bigr| \, #2 \bigr\}}} % intensional set
+\newcommand{\eset}[1]{\ensuremath{\bigl\{#1\bigr\}}} % extensional set
+
+% Abkürzungen für Mengensymbole
+\DeclareMathOperator{\N}{\mathbb N} % Natürliche Zahlen
+\DeclareMathOperator{\R}{\mathbb R} % Reele Zahlen
+\DeclareMathOperator{\C}{\mathbb C} % Komplexe Zahlen
+\DeclareMathOperator{\K}{\mathbb K} % Reele oder komplexe Zahlen
+\DeclareMathOperator{\B}{\mathbb B} % Binäre Zahlen 1,0
+\def\O{\operatorname{\mathcal O}} % Landau
+
+% Mengenoperatoren:
+\let\cupplus\uplus % Vereinigunsmenge bzw. OR
+
+\newlength{\caplength}
+\setlength{\caplength}{\widthof{$\cap$}}
+\DeclareMathOperator{\capdot}{\cap\hspace{-0.7\caplength}\text{\textperiodcentered}\hspace{0.4\caplength}} % Schnittmenge bzw. AND
+
+% Topologie
+\newcommand{\interior}[1]{\ensuremath{\overset{{}_\circ}{#1}}} % Das Innere
+%\newcommand{\boundary}
+
+
+
+% .:: Frequenztransformationen (Fourier, Laplace, usw.)
+% ======================================================================
+
+% Define symbol for Transformations. Source: trfsigns.sty
+\newcommand{\ftsymbol}{\mbox{\setlength{\unitlength}{0.1em}
+ \begin{picture}(25,4)
+ \put(3,3){\circle{4}} % empty
+ \put(5,3){\line(1,0){13}}
+ \put(19,3){\circle*{4}} % filled
+ \end{picture}}}
+
+% Define Transformations
+\DeclareMathOperator{\FT}{\overset{\scriptscriptstyle\mathcal{F}}{\ftsymbol}} % Fourier Transform
+\DeclareMathOperator{\LT}{\overset{\scriptscriptstyle\mathcal{L}}{\ftsymbol}} % Laplace Transform
+\DeclareMathOperator{\DFT}{\overset{\scriptscriptstyle\mathcal{DF}}{\ftsymbol}} % Discrete Fourier Transform
+\DeclareMathOperator{\DTFT}{\overset{\scriptscriptstyle\mathcal{DTF}}{\ftsymbol}} % Discrete Time Fourier Transform
+\DeclareMathOperator{\ZT}{\overset{\scriptscriptstyle\mathcal{Z}}{\ftsymbol}} % Z-Transform
+
+
+
+% .:: Mathematische Operatoren
+% ======================================================================
+
+% Differentialgeometrie
+\DeclareMathOperator{\grad}{grad} % Gradient
+\def\div{\operatorname{div}} % Divergenz
+\DeclareMathOperator{\rot}{rot} % Rotation
+\DeclareMathOperator{\lpo}{\Delta} % Laplace Operator
+\DeclareMathOperator{\laplace}{\Delta} % Laplace Operator
+\DeclareMathOperator{\waveop}{\square} % Wellenoperator
+\DeclareMathOperator{\diag}{diag} % Diagonalmatrix
+
+
+% Sonstige
+\DeclareMathOperator{\Sp}{Sp} % Spur
+\DeclareMathOperator{\ggT}{ggT} % ggT
+\DeclareMathOperator{\sgn}{sgn} % Signum
+\DeclareMathOperator{\const}{const.} % Konstante
+\DeclareMathOperator{\SNR}{SNR} % Signal Noise Ratio
+
+
+
+
+% Signale
+\DeclareMathOperator{\dirac}{\ensuremath{\delta}} % Dirac Distribution
+\DeclareMathOperator{\heavi}{\ensuremath{\Theta}} % Heaviside Sprungfunktion
+\DeclareMathOperator{\sinc}{sinc} % Sinus Cardinalis
+\DeclareMathOperator{\rect}{rect} % Rectangular
+\DeclareMathOperator{\tri}{tri} % Triangular
+\DeclareMathOperator{\erf}{erf} % Errorfunktion
+
+
+
+% .:: Stochastische Befehle:
+% ======================================================================
+\renewcommand{\P}{\textsf{P}} % Wahrscheinlichkeitsmaß
+\DeclareMathOperator{\F}{\mathbb F} % Ereignisalgebra
+\DeclareMathOperator{\X}{\textsf{\textit{X}}} % Zufallsvariable X
+\DeclareMathOperator{\Y}{\textsf{\textit{Y}}} % Zufallsvariable Y
+\DeclareMathOperator{\Z}{\textsf{\textit{Z}}} % Zufallsvariable Z
+\DeclareMathOperator{\E}{\textsf{E}} % Erwartungswert
+\newcommand{\ew}[1]{\textit{E} \left[ #1 \right]} % Erwartungswert (mit Parameter)
+\DeclareMathOperator{\Var}{\textsf{Var}} % Varianz
+\DeclareMathOperator{\Cov}{\textsf{Cov}} % Kovarianz
+
+
+
+% Ende von \input
+\endinput
+
diff --git a/packages/intern/scientific.sty b/packages/intern/scientific.sty
new file mode 100644
index 0000000..1b244e7
--- /dev/null
+++ b/packages/intern/scientific.sty
@@ -0,0 +1,194 @@
+% www.latex4ei.de Date 01.05.13
+%
+% DESCRIPTION: latex package with useful macros for scientific documents
+% AUTHOR: Emanuel Regnath, Martin Zellner
+% VERSION: 1.0
+%
+% LICENCE: Dieses package darf für beliebige Zwecke in LaTeX Dokumente eingebunden werden.
+% Änderung am Quellcode sind nicht gestattet. Ergänzungswünsche bitte an info@latex4ei.de
+%
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{scientific}[2013/05/01 Scientific Macros for LaTeX4EI]
+
+% Benötigte Pakete laden
+\RequirePackage{xifthen} % If Then Else Anweisungen
+\RequirePackage{amsmath} % erlaubt mathematische Formeln
+\RequirePackage{accents} % Für eigene Ableitungspunkte benötigt
+\RequirePackage{xcolor} % Farbiger Text möglich
+
+% Zusätzliche Pakete
+\RequirePackage{amssymb} % Verschiedene Symbole
+\RequirePackage{esint} % erweiterte Integralsymbole
+\RequirePackage[version=3]{mhchem} % chemistry \ce
+
+
+% Save old commands
+\let\oldvec = \vec
+
+
+% .:: SI Einheiten
+% ======================================================================
+\RequirePackage{siunitx} % SI gerechte Darstellung von Zahlen
+\sisetup{per-mode=reciprocal} % Statt Brüchen ^-1
+\sisetup{sticky-per=true} % Alle Einheiten hinter per sind reziprok
+\newcommand{\unitof}[1]{\ensuremath{\left[#1\right]}} % Einheit von
+
+
+
+% .:: Vektoren und Matrizen
+% ======================================================================
+
+% Definiere \utilde: aus Package undertilde.sty
+\newlength\knuthian@fdfive
+\def\mathpal@save#1{\let\was@math@style=#1\relax}
+\def\utilde#1{\mathpalette\mathpal@save
+ {\setbox124=\hbox{$\was@math@style#1$}%
+\setbox125=\hbox{$\fam=3\global\knuthian@fdfive=\fontdimen5\font$}
+\setbox125=\hbox{$\widetilde{\vrule height 0pt depth 0pt width \wd124}$}%
+ \baselineskip=1pt\relax
+ \vtop{\copy124\copy125\vskip -\knuthian@fdfive}}}
+
+% Definiere Vektoren und Matrizen
+\newcommand{\ma}[1]{\ensuremath{\utilde{\boldsymbol {#1}}}} % Matrixsymbol
+\newcommand{\mat}[1]{\ensuremath{\begin{bmatrix} #1 \end{bmatrix}}} % Matrix
+\newcommand{\tma}[3]{\ensuremath{{}_{#1} \ma #2_#3 }} % Trafomatrix
+\renewcommand{\vec}[1]{\ensuremath{\underline{\boldsymbol {#1}}}} % Vektor fett und unterstrichen
+\newcommand{\vect}[1]{\ensuremath{\begin{pmatrix} #1 \end{pmatrix}}} % Vector
+\newcommand{\mvect}[1]{\ensuremath{\left.\begin{matrix} #1 \end{matrix}\right]}}% Matrixvector
+\newcommand{\tensor}[1]{\ensuremath{\underline{\underline{\boldsymbol #1}}}} % Tensor
+
+% Vektoroperationen
+\newcommand{\norm}[1]{\ensuremath{\left\|#1\right\|}} % Norm
+
+
+
+% .:: Differentielles Delta
+% ======================================================================
+\newcommand{\diff}{\mathop{}\!\mathrm{\vphantom( d}} % differentielles Delta perfekt
+
+
+
+% .:: Gemischtes
+% ======================================================================
+\newcommand{\floor}[1]{\ensuremath{\left\lfloor#1\right\rfloor}} % Abrunden
+\newcommand{\ceil}[1]{\ensuremath{\left\lceil {#1} \right\rceil}} % Aufrunden
+\newcommand{\sprod}[2]{\ensuremath{\left\langle #1, #2 \right\rangle }} % Skalarprodukt
+\newcommand{\abs}[1]{\ensuremath{\left\vert#1\right\vert}} % Betrag (absolute value)
+\newcommand{\chem}[1]{\ensuremath{\displaystyle{\mathrm{#1}}}} % chemische Formeln die gut aussehen ;)
+\newcommand{\ir}[1]{\sf #1} % index roman: Indizes aufrecht schreiben
+\newcommand{\rom}[1]{\ensuremath{\underline{\overline{\textsc{#1}}}}} % Römische Zahlen
+
+
+
+
+% .:: Komplexe und Hyperkomplexe Zahlen
+% ======================================================================
+\newcommand{\cx}[1]{\boldsymbol{#1}} % komplexe Zahl
+\newcommand{\cxc}[1]{\ensuremath{\boldsymbol #1^*}} % Konjugiert komplexe Zahl
+\newcommand{\hx}[1]{\ensuremath{\mathfrak #1}} % hyperkomplexe Zahl
+\renewcommand{\i}{\ensuremath{\mathrm{i}}} % imaginary unit
+\renewcommand{\j}{\ensuremath{\mathrm{j}}} % imaginary unit
+\renewcommand{\k}{\ensuremath{\mathrm{k}}} % imaginary unit
+
+% Real und Imaginärteil
+\renewcommand{\Re}[1]{\ensuremath{\operatorname{Re}\left\{#1\right\}}}
+\renewcommand{\Im}[1]{\ensuremath{\operatorname{Im}\left\{#1\right\}}}
+
+
+% .:: Mengen
+% ======================================================================
+\newcommand{\iset}[2]{\ensuremath{\bigl\{ \bigl. #1 \, \bigr| \, #2 \bigr\}}} % intensional set
+\newcommand{\eset}[1]{\ensuremath{\bigl\{#1\bigr\}}} % extensional set
+
+% Abkürzungen für Mengensymbole
+\DeclareMathOperator{\N}{\mathbb N} % Natürliche Zahlen
+\DeclareMathOperator{\R}{\mathbb R} % Reele Zahlen
+\DeclareMathOperator{\C}{\mathbb C} % Komplexe Zahlen
+\DeclareMathOperator{\K}{\mathbb K} % Reele oder komplexe Zahlen
+\DeclareMathOperator{\B}{\mathbb B} % Binäre Zahlen 1,0
+\def\O{\operatorname{\mathcal O}} % Landau
+
+% Mengenoperatoren:
+\let\cupplus\uplus % Vereinigunsmenge bzw. OR
+
+\newlength{\caplength}
+\setlength{\caplength}{\widthof{$\cap$}}
+\DeclareMathOperator{\capdot}{\cap\hspace{-0.7\caplength}\text{\textperiodcentered}\hspace{0.4\caplength}} % Schnittmenge bzw. AND
+
+% Topologie
+\newcommand{\interior}[1]{\ensuremath{\overset{{}_\circ}{#1}}} % Das Innere
+%\newcommand{\boundary}
+
+
+
+% .:: Frequenztransformationen (Fourier, Laplace, usw.)
+% ======================================================================
+
+% Define symbol for Transformations. Source: trfsigns.sty
+\newcommand{\ftsymbol}{\mbox{\setlength{\unitlength}{0.1em}
+ \begin{picture}(25,4)
+ \put(3,3){\circle{4}} % empty
+ \put(5,3){\line(1,0){13}}
+ \put(19,3){\circle*{4}} % filled
+ \end{picture}}}
+
+% Define Transformations
+\DeclareMathOperator{\FT}{\overset{\scriptscriptstyle\mathcal{F}}{\ftsymbol}} % Fourier Transform
+\DeclareMathOperator{\LT}{\overset{\scriptscriptstyle\mathcal{L}}{\ftsymbol}} % Laplace Transform
+\DeclareMathOperator{\DFT}{\overset{\scriptscriptstyle\mathcal{DF}}{\ftsymbol}} % Discrete Fourier Transform
+\DeclareMathOperator{\DTFT}{\overset{\scriptscriptstyle\mathcal{DTF}}{\ftsymbol}} % Discrete Time Fourier Transform
+\DeclareMathOperator{\ZT}{\overset{\scriptscriptstyle\mathcal{Z}}{\ftsymbol}} % Z-Transform
+
+
+
+% .:: Mathematische Operatoren
+% ======================================================================
+
+% Differentialgeometrie
+\DeclareMathOperator{\grad}{grad} % Gradient
+\def\div{\operatorname{div}} % Divergenz
+\DeclareMathOperator{\rot}{rot} % Rotation
+\DeclareMathOperator{\lpo}{\Delta} % Laplace Operator
+\DeclareMathOperator{\laplace}{\Delta} % Laplace Operator
+\DeclareMathOperator{\waveop}{\square} % Wellenoperator
+\DeclareMathOperator{\diag}{diag} % Diagonalmatrix
+
+
+% Sonstige
+\DeclareMathOperator{\Sp}{Sp} % Spur
+\DeclareMathOperator{\ggT}{ggT} % ggT
+\DeclareMathOperator{\sgn}{sgn} % Signum
+\DeclareMathOperator{\const}{const.} % Konstante
+\DeclareMathOperator{\SNR}{SNR} % Signal Noise Ratio
+
+
+
+
+% Signale
+\DeclareMathOperator{\dirac}{\ensuremath{\delta}} % Dirac Distribution
+\DeclareMathOperator{\heavi}{\ensuremath{\Theta}} % Heaviside Sprungfunktion
+\DeclareMathOperator{\sinc}{sinc} % Sinus Cardinalis
+\DeclareMathOperator{\rect}{rect} % Rectangular
+\DeclareMathOperator{\tri}{tri} % Triangular
+\DeclareMathOperator{\erf}{erf} % Errorfunktion
+
+
+
+% .:: Stochastische Befehle:
+% ======================================================================
+\renewcommand{\P}{\textsf{P}} % Wahrscheinlichkeitsmaß
+\DeclareMathOperator{\F}{\mathbb F} % Ereignisalgebra
+\DeclareMathOperator{\X}{\textsf{\textit{X}}} % Zufallsvariable X
+\DeclareMathOperator{\Y}{\textsf{\textit{Y}}} % Zufallsvariable Y
+\DeclareMathOperator{\Z}{\textsf{\textit{Z}}} % Zufallsvariable Z
+\DeclareMathOperator{\E}{\textsf{E}} % Erwartungswert
+\newcommand{\ew}[1]{\textit{E} \left[ #1 \right]} % Erwartungswert (mit Parameter)
+\DeclareMathOperator{\Var}{\textsf{Var}} % Varianz
+\DeclareMathOperator{\Cov}{\textsf{Cov}} % Kovarianz
+
+
+
+% Ende von \input
+\endinput
+