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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + Tech-Draw + + Vorlage für technische Zeichnungen + + + Emanuel Regnath + + + + + Emanuel Regnath + + + + + Emanuel Regnath + + + + + + + + + + + + + + + + + + + Maßpfeile 1mm + Maßpfeile 2mm + Linien + Widerstand + + Hilfslinien + + + + + + + + + + + + Quellen + + + Knoten + + + + + + + + + + + + + + + + + + + + + + + + + + + Ecken + + + + + + + + + + + Kondensatoren + + + + + + + + + + + Masse + + + + + + + + + + + Zählpfeile + + + + + + + + + + + + + + + + + + + + + + + + OP-Amps + Nullator + + + + + + + + + + Dioden + + + + + + + Klemmen + + + + + + + MOS-FETs + Bipolartransistoren + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gatter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Kennlinien + + + + + + + + + + + + + + + + + u + + + + + + + + + + + + + + i + + + + + + + + + + + + i + u + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + i + u + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + i + u + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + i + u + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + i + u + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + i + u + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + G + R + + + + i + u + + + + + + + i + u + + + + + + + + + i + u + + + + + + + + + i + u + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + R + + + uout + uin + + + + + + + C + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + R + + + uout + uin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + R + + + uout + uin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + R + + + uout + uin + + + + + + + C + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + R0 + R1 + + + + uout + uin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + R0 + R1 + + + uout + uin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + uout + uin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + R0 + + + + uout + uin + + + + + + + + + + + + + + + + + + + + + + + + + + + G1 + Gi + G1 + + + + + + + + + + + + + + + + + i + u + + + + + + + + t1 + t0 + t + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + i(t) + I0 + + iC(t) + C + R + + U0 + u(t) + uC(t) + + + + + + + + i + u + + + i + u + + + + + + + + t1 + t0 + t + + + + + + + + t + x + + + + + x0 + + + + + + x + + + 0.37 + + + + t0+ + + t0 + + + + + + + + + + + + + + (u,i) + (u,q) + + + + + + (i, ) + + + + + + + ( ,q) + + + + + + + + + q1 + q2 + + + + + + + + + + q1 + q2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + q1 + q2 + + + + + + + + + + + + + + + + q1 + q2 + + + + + + + + + + + + + + + + + + + + + + + + q1 + q2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + q1 + q2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + qr + qj + + + + + qr + qj + + + + + + + + + + + qr + qj + + + + + + + + + + + + + + qr + qj + + + + + + + + + q1 + q2 + + + + + + + + + + + + + + + + + + + + + + + + + + + q1 + q2 + + + + + + + + + + + + + + + + q1 + q2 + + + + + + + + + + + + + + + + + + + + + + + + + + q1 + q2 + + + + + + + + + + + + + + + + + + + + + + + + + v02 + + + + + q1 + q2 + + + + + + + + + + + + + + + + + + + + + + + + q1 + q2 + + + + + + + + + + + + + + + + + + + + + + + + + q1 + q2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + q1 + q2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + q1 + q2 + + + + + + + + + + q1 + + q2 + + + + + + + + + + + + + + + + + q1 + q2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + i + u + + + + + + + + + Watermark: + |© Emanuel Regnath + |© Emanuel Regnath + Grafiken watermarken! + + + + G + R + + + i + u + + + + + + + + + + + + + + + + + + + + + + + + + + + i + + u + + + + + + + + + + + + + + + + itr + + + + Usat + + 2 + + + + + + Usat + + Usat + + 2 + + + + + + + + i + + u + + + + + + + + + + + + + + itr + + + + + + Usat + + + + + + + + + + + –Usat + + 2 + + + + + + + i + u + + + + + + + + + + + + + + + + + + + + + + + + Usat + + + –Usat + + 2 + + + + + + + + i + + u + + + + + + + + + + + + + + itr + + + + + + Usat + + + + + + + + + + + –Usat + + 2 + + + + GL + RL + + + + + i + + u + + + + + + + itr + + + + + + Usat + + + –Usat + + 2 + + GL + + + + + + + + + + + + + + + + + + + + –RL + –RL + R + R + R + © Emanuel Regnath + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + R0 + R1 + RL + + u + + + + + + + + + + + + + + + + + + + + + + i + + iC + C + + uC + + + itr + |© Emanuel Regnath + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + R1 + R0 + RL + + u + + + + + + + + + + + + + + + + + + C + + uC + + i + iC + |© Emanuel Regnath + + + © Emanuel Regnath + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A + X + + + + + i + u + + + + + + I + II + III + + R0 + + –R + + + Usat + –Usat + + R0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + R1 + R0 + RL + + u + + + + + + + + + + i + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + R1 + R0 + RL + + u + + + + + + + + + + i + + + 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + Linien + Widerstand + + Hilfslinien + + + + + + + + + + + + Quellen + + + Knoten + + + + + + + + + + + + + + + + + + + + + + + + + + + Ecken + + + + + + + + + + + Kondensatoren + + + + + + + + + + + Masse + + + + + + + + + + + Zählpfeile + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OP-Amps + Nullator + + + + + + + + + + + Dioden + + + + + + + Klemmen + + + + + + + + + + + + + + + + + + + + + + + + + + + + MOS-FETs + + + + + + + + + + + + + + + + + + + + + Bipolartransistoren + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Halde: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gatter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Kennlinien + + + + + + + + + + + + + + + + + u + + + + + + + + + + + + + + i + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + Vorlage für technische Zeichnungen + + + Emanuel Regnath + + + + + Emanuel Regnath + + + + + Emanuel Regnath + + + + + + + + + + + + + + + + + + + Maßpfeile 1mm + Maßpfeile 2mm + Linien + Widerstand + + Hilfslinien + + + + + + + + + + + + Quellen + + + Knoten + + + + + + + + + + + + + + + + + + + + + + + + + + + Ecken + + + + + + + + + + + Kondensatoren + + + + + + + + + + + Masse + + + + + + + + + + + Zählpfeile + + + + + + + + + + + + + + + + + + + + + + + + OP-Amps + Nullator + + + + + + + + + + Dioden + + + + + + + Klemmen + + + + + + + MOS-FETs + Bipolartransistoren + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gatter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Kennlinien + + + + + + + + + + + + + + + + + u + + + + + + + + + + + + + + i + + + + + + + + + + + + i + u + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + i + u + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + i + u + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + i + u + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + i + u + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + i + u + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + G + R + + + + i + u + + + + + + + i + u + + + + + + + + + i + u + + + + + + + + + i + u + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + R + + + uout + uin + + + + + + + C + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + R + + + uout + uin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + R + + + uout + uin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + R + + + uout + uin + + + + + + + C + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + R0 + R1 + + + + uout + uin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + R0 + R1 + + + uout + uin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + uout + uin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + R + R + RL + + u + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + R0 + + + + uout + uin + + + + + + + + + + + + + + + + + + + + + + + + + + + G1 + Gi + G1 + + + + i + ! + + + !0 + + + + + ¼ + 20 + –40 + 0dB + –20 + 40 + ! + + + + + + + + !0 + + + + + 20 + –40 + 0dB + –20 + 40 + + + + + + + 10!0 + + + + + + + 0:1!0 + + + + + + + !0 + + + + + '=0 + + + + + + 10!0 + + + + + + + 0:1!0 + + ¼ + ¼=2 + ¼ + –¼=2 + + + + Q=1/2 + + Q→ + + + 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 +