\NeedsTeXFormat{LaTeX2e}[1998/01/01]% oder spaeter? textcomp!
\ProvidesPackage{hfst}[1999/07/14 Hans Friedrichs Privatzeug]

\RequirePackage{nicefrac}
\RequirePackage{units}
\RequirePackage{textcomp}
\RequirePackage{xspace}

% analog zu \textsuperscript aus latex.ltx
\DeclareRobustCommand*\textsubscript[1]{%
  \@textsubscript{\selectfont#1}}
\def\@textsubscript#1{%
  {\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}}


\newif\ifsummary
\summaryfalse
\DeclareOption{summary}{\summarytrue}

\ProcessOptions\relax

% fuer Aufzaehlungen
\newcommand{\nitem}[1][]{\item[\textbf{-}#1 ]}
\newcommand{\pitem}[1][]{\item[\textbf{+}#1 ]}

%
% Makros fuer Author und Title
% \maketitle wirft die aus Speicherplatzgruenden nach gebrauch weg
% von Bernd Raichle
%
\newcommand{\doctitle}{}% sicherstellen, dass \origtitle undefiniert
\newcommand{\origtitle}{}% sicherstellen, dass \origtitle undefiniert
\let\origtitle=\title  % vorherige Definiton von \title sichern
\renewcommand{\title}[1]{%
  \renewcommand{\doctitle}{#1}%
  \origtitle{#1}}
\newcommand{\docauthor}{}% sicherstellen, dass \origauthor undefiniert
\newcommand{\origauthor}{}% sicherstellen, dass \origauthor undefiniert
\let\origauthor=\author  % vorherige Definiton von \author sichern
\renewcommand{\author}[1]{%
  \renewcommand{\docauthor}{#1}%
  \origauthor{#1}}


\newcommand{\Ergo}{\ensuremath{\Rightarrow\ \xspace}}
\newcommand{\ergo}{\ensuremath{\rightarrow\ \xspace}}
\newcommand{\rauf}{\ensuremath{\uparrow}}
\newcommand{\runter}{\ensuremath{\downarrow}}
\newcommand{\siehe}{\ensuremath{\uparrow}}

\newcommand{\mergo}[3][\@empty]{%
 \renewcommand{\arraystretch}{1.3}
 \begin{tabular}{cl}
  \ifthenelse{\equal{\@empty}{#1}}{%
   \raisebox{-0.9ex}{$\nearrow$}    & #2 \\
   \raisebox{+0.9ex}{$\searrow$}    & #3
  }{%
   \raisebox{-1.0ex}{$\nearrow$}    & #1 \\
   $\rightarrow$ & #2 \\
   \raisebox{+1.0ex}{$\searrow$}    & #3
  }
 \end{tabular}
}

%
% Mathematik
%

% soll 
% #1|
%   |#2
% erzeugen
%
% funktioniert nur bei einzeiligen Bedingungen

\newcommand{\unter}[2][]{%
 \left.#1\right|_{\mskip-8mu\relax\scriptsize\begin{array}[t]{l}#2\end{array}}%
% \left.#1\right|_{#2}%
}

%\renewcommand{\unter}[2][]{\left.#1\right|_{\mskip-8mu\relax\scriptsize\begin{array}{l}#2\end{array}}}



% Makro fuer Integrale 
% Aufruf
% \intt[ug][og]{integrand}{integrationsvariable}

% Dank an 
% From: schlegel@Informatik.Uni-Rostock.de (Juergen Schlegelmilch)
% Newsgroups: de.comp.text.tex
% Subject: Re: Makro mit 2 optionalen Argumenten
% Date: 28 Jan 1998 08:09:25 GMT
% Message-ID: <slrn6ctrgn.2p0.schlegel@pella.informatik.uni-rostock.de>
% fuer die Erstellung von Makros mit 2 opt. Argumenten mit LaTeX
% Mitteln.

% kann man nun auch mit twoopt.sty einfach machen

\newcommand*\@untergr{} % Hier merken wir uns die Untergrenze
\newcommand*\intt[1][]{%
  \renewcommand*\@untergr{#1}% Merken
  \@intt% Rest bearbeiten
}
\newcommand*{\@intt}[3][]{%
 \int_{\@untergr}^{#1} #2 \, \de #3
}

% Makro fuer Differentiale
%
% #1 ordnung (optional)
% #2 funktion die differenziert wird
% #3 variable nach der differenziert wird
\newcommand*\diff[3][{}]{\frac{\de{}^{#1} #2}{\de{#3}^{#1}}}
\newcommand*\pdiff[3][]{\frac{\partial^{#1} #2}{\partial #3^{#1}}}

\newcommand*{\difft}[1]{\diff{#1}{t}}


% Klammern
\newcommand*{\lk}[1]{\left#1}
\newcommand*{\rk}[1]{\right#1}

% Wenn ein Satz mit einer Formel endet braucht man einen Punkt
\newcommand{\mpunkt}{\quad\textrm{.}}
% oder ein Komma
\newcommand{\mkomma}{\quad\textrm{,}}


%
% Vektoren und Matrizen. Damit die Unterlinien immer gleich tief
% sind ist das vphantom
%
% {} sorgt dafuer, dass eventuelle Indizes nicht zu tief sitzen

\DeclareRobustCommand{\vek}[1]{\hspace{0.9pt}\underline{\vphantom{q}#1}{}}

\DeclareMathAlphabet{\mathbfit}{OT1}{cmr}{bx}{it}
\DeclareRobustCommand{\mat}[1]{\hspace{0.9pt}\underline{\vphantom{q}\mathbfit{#1}}{}}

% mir gefaellt \varphi besser als \phi
\let\phi\varphi

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newcommand{\ename}[1]{\textsc{#1}}

% Trennungen
\DeclareOption{german}{\input{ghyph.sty}}
\ProcessOptions

% Ich will die Bilder und Tabellen moeglichst hier haben
\renewcommand{\fps@figure}{htbp}
\renewcommand{\fps@table}{htbp}

% \long\def\@caption#1[#2]#3{\par\addcontentsline{\csname
%   ext@#1\endcsname}{#1}{\protect\numberline{\csname
%   the#1\endcsname}{\ignorespaces #2}}\begingroup
%     \@parboxrestore
%     \normalsize
%     \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
%   \endgroup}

%
% geaendert, damit Bildunterschriften in \sl sind
%
\long\def\@caption#1[#2]#3{\par\addcontentsline{\csname
  ext@#1\endcsname}{#1}{\protect\numberline{\csname
  the#1\endcsname}{\ignorespaces #2}}\begingroup
    \@parboxrestore
    \normalsize
    \@makecaption{\sl\csname fnum@#1\endcsname}{\ignorespaces #3}\par
  \endgroup}

% dummy makro fuer dies und das
\newcommand{\lumpi}{}
\newlength{\llumpi}



\newcommand{\compl}[1]{\underline{#1}}
%\newcommand{\e}[1]{\mathop{\operator@font e}\nolimits^{#1}}
\newcommand{\e}[1]{\textrm{e}^{#1}}
% 5\EE 3 ergibt 5 mal 10^3
%
\newcommand{\EE}[1]{\ensuremath{\cdot 10^{#1}}}

%\def\D#1{\cal D{\left( #1 \right )}}
 \def\D#1{     D{\left( #1 \right )}} % fuer folie
 %

\newcommand{\ohm}{}
\let\ohm\Omega
\newcommand{\konst}{\textrm{const.}}
\newcommand{\sgn}{\mbox{sgn}}
\newcommand{\must}{\stackrel{!}{=}}
\newcommand{\entspricht}{\hat{=}}
% \newcommand{\bruch}[2]{^{#1}\mskip-2mu/\mskip-2mu_{#2}}
%\newcommand{\bruch}[2]{^{#1}\mskip-5mu/\mskip-2mu_{#2}}
%\newcommand{\nicefrac}[2]{^{#1}\mskip-5mu/\mskip-2mu_{#2}}
\let\bruch\nicefrac % \usepackage{nicefrac}


\newcommand{\inv}[1]{\frac{1}{#1}}



% Fuer Textformeln muesste das d in \scriptsize sein
\newcommand{\de}{\mathrm{d}}

% Mit Hilfe von Wolfgang May

% \newcommand{\diff}[2]{%
%  \mathchoice{\frac{\textrm{d}#1}{\textrm{d}#2}}
%             {\frac{\textrm{\scriptsize{}d}#1}{\textrm{\scriptsize{}d}#2}}
%             {\frac{\textrm{\tiny{}d}#1}{\textrm{\tiny{}d}#2}}
%             {\frac{\textrm{\tiny{}d}#1}{\textrm{\tiny{}d}#2}}
% }% \diff

\newcommand{\abs}[1]{\left|#1\right|}

\newcommand{\grad}{\mbox{\textdegree{}}}

%
% Einheiten
%
%\newcommand{\efrac}[2]{\ensuremath{\frac{\mathrm{#1}}{\mathrm{#2}}}}
\newcommand{\efrac}[2]{\unitfrac{#1}{#2}}

\DeclareRobustCommand{\sek}{\mathrm{s}}
\DeclareRobustCommand{\mum}[1][]{\unit[#1]{\textrm{\textmu{}}m}}
\DeclareRobustCommand{\musek}[1][]{\unit[#1]{\textrm{\textmu{}}s}}
%\DeclareRobustCommand{\rpm}{\ensuremath{\mathrm{min}^{-1}}}
%\DeclareRobustCommand{\rpm}{m\textsuperscript{-1}}%{\unitfrac{1}{min}}
% Thu Apr  8 09:07:45 MET DST 1999
\DeclareRobustCommand{\rpm}[1][]{\unit[#1]{min\textsuperscript{-1}}}



\newcommand{\folia}{%
\newpage
\setlength{\unitlength}{1cm}
\begin{picture}(0,3)%
\thicklines%
\put(-0.5,1.75){%
\framebox(10,2){\hfill
                \includegraphics[width=1.9cm]{tulogo.eps}
                \hfill
                \parbox[b]{7.5cm}
                    {\Huge TU Chemnitz\newline
                     \Large Elektrotechnisches Institut\vspace*{2mm} }}
}%
\put(9.75,1.75){\framebox(7.25,2){\Huge Magnetlager }}%
\put(-0.75,-19){\framebox(18,23){} }%
\end{picture}%
}%folia

\newcommand{\efolia}{%
\newpage
\setlength{\unitlength}{1cm}
\begin{picture}(0,3)%
\thicklines%
\put(-0.5,1.75){%
\framebox(10,2){\hfill
                \includegraphics[width=1.9cm]{tulogo.eps}
                \hfill
                \parbox[b]{7.5cm}
                    {\Huge TU Chemnitz\newline
%                    \Large Elektrotechnisches Institut\vspace*{2mm} }}
                     \Large Electrical Machines and Drives\vspace*{2mm}  }}
}%
%\put(9.75,1.75){\framebox(7.25,2){\Huge Magnetic Bearing}}%
\put(9.75,1.75){\framebox(7.25,2){\Huge \@title}}%
\put(-0.75,-19){\framebox(18,23){} }%
\end{picture}%
}%efolia


\newcommand{\foliasize}{
 \setlength{\unitlength}{1cm}
 \setlength{\textwidth}{16.5cm}
 \setlength{\textheight}{21.5cm} % 21.5 cm ist ok
 \setlength{\oddsidemargin}{-0.0cm}
 \setlength{\parindent}{0pt}
 \renewcommand{\normalfont}{\sffamily}
}


% %\newif\ifcomment
% \newcommand{\comment}[1]{%
% %  \ifcomment%
%   \mbox{}\marginpar{\hspace{0.pt}\fbox{%
%       \parbox{0.9\linewidth}{\raggedright\hspace{0.pt}#1}}}%
%   \fi%
%   }


%   PENALTIES
%     \@beginparpenalty : put at the beginning of a list
%     \@endparpenalty   : put at end of list
%     \@itempenalty     : put between items.

% die normalerweise alle drei auf -\@lowpenalty (= -51) gesetzt werden,

% wie kann man erreichen, dass bei einer selbstdefinierten 
% Umgebung Leerzeichen
% nach dem "\begin{...}" ignoriert werden?
% 
% \newenvironment{superduper}{%
%   begin-blablabla
%   \ignorespaces         % <<<======
% }{%
%   ende-blablabla
% }

% Zusammenfassung im Inhaltsverzeichnis
% \newcommand{\summary}[1]{%
%  \addtocontents{toc}{
%                        \sl\small\noindent #1 }
%  \addtocontents{toc}{}
% }
\ifsummary
\newcommand{\summary}[1]{%
 \addtocontents{toc}{\protect\begin{list}{}{
                     \protect\setlength{\leftmargin}{0.1\linewidth}
                     \protect\setlength{\rightmargin}{0.05\linewidth}
                     \protect\setlength{\topsep}{0\baselineskip}
                   }
                     \protect\item[]
                       \protect\sl\protect\small #1
                     \protect\end{list}
}
\addtocontents{toc}{}
 \begin{quote}\sl\small #1\end{quote}
}
\else
\newcommand{\summary}[1]{}
\fi

% Von Axel Reichert Message-ID: <wdafcrw8a0.fsf@mpie-duesseldorf.mpg.de>
     \newcommand{\tablecaption}{%
       \setlength{\@tempdima}{\abovecaptionskip}%
       \setlength{\abovecaptionskip}{\belowcaptionskip}%
       \setlength{\belowcaptionskip}{\@tempdima}%
       \caption%
     }
     \newcommand{\figurecaption}{%
       \setlength{\@tempdima}{\abovecaptionskip}%
       \setlength{\abovecaptionskip}{\belowcaptionskip}%
       \setlength{\belowcaptionskip}{\@tempdima}%
       \caption%
     }
