%  \iffalse
%<*ID>
%^^A =================================================================
%^^A   Here is the `standard file header'-stuff
%^^A   (http://www.math.utah.edu/~beebe/software/filehdr/filehdr.html)
%^^A   Basic info. For a short installation guide, see below
%^^A =================================================================
%%% @LaTeX-package-file{
%%%  author        = "Andre Dierker",
%%%  version       = "v1.2n",
%%%  date          = "$Date: 2011-02-07 00:30:22 +0100 (Mo, 07. Feb 2011) $",
%%%  filename      = "fbithesis.dtx,
%%%  address       = "Andre Dierker
%%%                   Bruder-Otger-Str. 17
%%%                   D-49088 Osnabrück
%%%                   Germany",
%%%  URL           = "http://fbithesis.kand.de/",
%%%  email         = "dierker@kand.de (Internet)",
%%%  pgp-key       = "1024D/DD2BCC9D 1999-10-27 Andre Dierker",
%%%  fingerprint   = "8182 D1CE B1B4 2D58 B6FF
%%%                   CBD8 8E3B 739E DD2B CC9D",
%%%  pgp-key       = "1024D/F4D24AC9 2002-04-01 Andre Dierker
%%%                   (software distribution key) <software@kand.de>",
%%%  fingerprint   = "461E 2EB4 DE3A 6BC8 3320
%%%                   2A7B 59C5 21EA F4D2 4AC9",
%%%  codetable     = "ISO/ASCII",
%%%  keywords      = "University of Dortmund, TU Dortmund University,
%%%                   Department of Computer Science, internal,
%%%                   research, project, technical,
%%%                   report, master, diploma, phd, doctoral, thesis,
%%%                   dissertation, title page, cover page, cardboard,
%%%                   Universität Dortmund, TU Dortmund,
%%%                   Technische Universität Dortmund,
%%%                   Fachbereich Informatik, Fakultät für Informatik
%%%                   Diplomarbeit, Doktorarbeit, Projektgruppe,
%%%                   Forschungsbericht, Intern, Bericht, Endbericht,
%%%                   Deckblatt, Titelseite, Titelblatt, maketitle,
%%%                   titlepage, documentclass",
%%%  dependencies  = "\LaTeXe, graphicx",
%%%  supported     = "yes",
%%%  abstract      = "This is a LaTeX2e package providing a
%%%                   document-class tuned for research reports or
%%%                   internal reports like master/phd-theses at the
%%%                   TU Dortmund.",
%%%  docstring     = "At the Department of Computer Science
%%%                   (german: `Fakultät für Informatik)
%%%                   at the TU Dortmund there are
%%%                   cardboard cover pages for internal reports like
%%%                   master/phd-theses.  The main function of the
%%%                   LaTeX2e document-class provided by this package
%%%                   is a replacement for the \maketitle command to
%%%                   typeset a title page that is adjusted to these
%%%                   cover pages.",
%%%  copyright     = "fbithesis.dtx, the documented macro-file for
%%%                                  the fbithesis package
%%%                   Copyright (C) 2002-2011 Andre Dierker
%%%
%%%                   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 2005/12/01 or
%%%                   later.
%%%
%%%                   This Work has the LPPL maintenance status
%%%                   "author-maintained".
%%%
%%%                   The Current Maintainer of this work is
%%%                   Andre Dierker.
%%%
%%%                   This Work consists of all files listed in
%%%                   README."
%%% }
%</ID>
%
%<*install>
%^^A =================================================================
%^^A   Purpose of this package
%^^A =================================================================
% This is a LaTeX2e package providing a new document-class tuned for
% research reports or internal reports like master/phd-theses at the
% TU Dortmund.
%
% At the Department of Computer Science at the TU Dortmund there are
% cardboard cover pages for internal reports like master/phd-theses.
% The main function of the LaTeX2e document-class provided by this
% package is a replacement for the \maketitle command to typeset a
% title page that is adjusted to these cover pages.
%
%^^A =================================================================
%^^A   Installation of this package
%^^A =================================================================
% Installation:
%    LaTeX this file: creates docstrip installation file
%                       fbithesis.ins, README AND the (LaTeX2e)
%                       documentation
%    (La)TeX fbithesis.ins: creates class file fbithesis.cls, example
%                            file example.tex and documentation
%                            driver fbithesis.drv
%
% Docstrip options available:
%        package - to produce a (LaTeX2e) class file (.cls)
%        driver  - to produce a driver file to print the documentation
%        example - to produce an example file, which demonstrates the
%                  possibilities of this package
%
% Additionally Docstrip options: (these are not really used)
%        ID        - the Standard File Header
%        install   - the short installation guide
%        readme    - the ReadMe file
%        installer - the installer batch file
%        dtx       - Information that should remain in this file
%</install>
%  \fi
%
%^^A =================================================================
%^^A   Some basic integrity-test stuff
%^^A =================================================================
% \CheckSum{1104}
%% \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         \~}
%
%  \iffalse
%
%    \changes{v0.3b}{2002/03/31}{ReadMe: revised}
%    \changes{v0.5b}{2002/08/15}{ReadMe: \file{fbithesis.cfg} added}
%    \changes{v0.8a}{2002/12/16}{ReadMe: changed (LPPL removal, 'No 
%      warranty' disclaimer)}
%    \changes{v0.8e}{2003/01/01}{ReadMe: extended purpose}
%    \changes{v1.2b}{2005/01/05}{ReadMe: address updated}
%    \changes{v1.2c}{2005/02/13}{ReadMe: \file{makeindex}-lines for
%      docindex}
%    \changes{v1.2k}{2008/02/17}{ReadMe: renamed to \file{README}}
%    \changes{v1.2m}{2011/02/06}{ReadMe: address updated}
%    \changes{v1.2m}{2011/02/06}{ReadMe: renaming of uni and fbi}
%<*readme>
%^^A =================================================================
%^^A   Here is the README file
%^^A   It is written on first LaTeX run if it does not already exist
%^^A =================================================================
\begin{filecontents*}{README.txt}
                       The fbithesis package

                  ($Date: 2011-02-07 00:30:22 +0100 (Mo, 07. Feb 2011) $)

                 Copyright (C) 2002-2011 Andre Dierker

Purpose:
  This is a LaTeX2e package providing a new document-class tuned for
  research reports or internal reports like master/phd-theses at the
  TU Dortmund.

  At the Department of Computer Science at the TU Dortmund
  there are cardboard cover pages for internal reports like
  master/phd-theses.  The main function of the LaTeX2e document-class
  provided by this package is a replacement for the \maketitle command
  to typeset a title page that is adjusted to these cover pages.

Files:
  fbithesis.dtx       Docstrip archive
                        To generate the documentation, run this
                        through LaTeX.
  fbithesis.dtx.asc   Signature file
                        To verify the docstrip archive, run e.g.
                        gpg --verify fbithesis.dtx.asc

Generated Files:
  fbithesis.ins  Batch file, run through LaTeX
                   The file will be generated if you run
                   fbithesis.dtx through LaTeX.
  fbithesis.drv  Driver for documentation
                   The file will be generated from fbithesis.ins.
                   To generate customized documentation, edit this
                   file and run it through LaTeX.
  fbithesis.cls  LaTeX package
                   It will be generated, if you run fbithesis.ins
                   through LaTeX.
  fbithesis.cfg  Configuration file
                   It will be generated, if you run fbithesis.ins
                   through LaTeX.
  fbithesis.dvi  Package documentation, will be generated from
                   fbithesis.drv
  example.tex    Example file which demonstrates the possibilities of
                   this package.  It will be generated, if you run
                   fbithesis.ins through LaTeX.
  README         This file.  It will be generated if you run
                   fbithesis.dtx through LaTeX.

Installation:

  LaTeX fbithesis.dtx   Creates docstrip installation file
                          fbithesis.ins and this file
  (La)TeX fbithesis.ins Creates class file fbithesis.cls, example
                          file example.tex and documentation driver
                          fbithesis.drv

  Docstrip options available:
    package - to produce a (LaTeX2e) class file (.cls)
    driver  - to produce a driver file to print the documentation
    example - to produce an example file, which demonstrates the
                possibilities of the package

  Move fbithesis.cls into a directory searched by LaTeX. (If you don't
                        know where this could be simply drop the file
                        into your thesis' directory)
  LaTeX fbithesis.dtx   Creates the (LaTeX2e) documentation.

    optionally:
  Edit fbithesis.drv    and customize the documentation driver to your wishes.
  LaTeX fbithesis.drv   Generates customized documentation.
                          Depending on your customization you will
                          have to run
                          makeindex fbithesis.idx -s gind.ist -o fbithesis.ind
                          and/or
                          makeindex fbithesis.glo -s gglo.ist -o fbithesis.gls
                          or (if you are using docindex
                          makeindex fbithesis.idx -s docindex.ist -o fbithesis.ind
                          and/or
                          makeindex fbithesis.glo -s docindex.ist -o fbithesis.gls
  LaTeX example.tex     Demonstrates the possibilities of this
                          package.

Contact:
  E-Mail:    dierker@kand.de
  Address:   Andre Dierker, Bruder-Otger-Str. 17, D-49088 Osnabrück, Germany

Legal stuff:
  README, the ReadMe file for the fbithesis package
  Copyright (C) 2002-2011  Andre Dierker

  This file is part of the fbithesis package.
  -------------------------------------------

  There is no warranty for the fbithesis package.  I provide the
  Work `as is', without warranty of any kind, either expressed or
  implied, including, but not limited to, the implied warranties of
  merchantability and fitness for a particular purpose.  The entire
  risk as to the quality and performance of the program is with you.
  Should the Work prove defective, you assume the cost of all
  necessary servicing, repair, or correction.

  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 2005/12/01 or later.

  This is a generated file.  It may not be distributed without the
  original source file fbithesis.dtx.

  This Work has the LPPL maintenance status "author-maintained".

  The Current Maintainer of this work is Andre Dierker.

  This Work consists of all files listed above in this file. See 
  the sections ``Files'' and ``Generated Files''.

  Files generated by means of unpacking this program using the
  docstrip program may be distributed at the distributor's
  discretion.  However if they are distributed then a copy of
  this Work must be distributed together with them.
\end{filecontents*}
%</readme>
%
%    \changes{v0.3b}{2002/03/31}{Batch file: optimized preambles}
%    \changes{v0.4f}{2002/07/05}{Batch file: \cmd{\usedir}}
%    \changes{v0.4h}{2002/08/13}{Batch file: request docstrip v2.4e}
%    \changes{v0.5b}{2002/08/15}{Batch file: \file{fbithesis.cfg}
%      stuff}
%    \changes{v0.5f}{2002/09/04}{Batch file: minor changes}
%    \changes{v0.7a}{2002/11/06}{Batch file: \cmd{stdtext}}
%    \changes{v0.8a}{2002/12/16}{Batch file: changed (LPPL removal)}
%    \changes{v1.0a}{2003/01/03}{Batch file: mention possible
%      locations}
%    \changes{v1.1j}{2003/07/03}{Batch file: linebreaks}
%    \changes{v1.2e}{2006/01/03}{Batch file: optic}
%<*installer>
%^^A =================================================================
%^^A   Here is the docstrip installation file
%^^A   It is written on first LaTeX run if it does not already exist
%^^A =================================================================
\begin{filecontents}{fbithesis.ins}
%% fbithesis.ins, the batch file for the fbithesis package
%% Copyright (C) 2002-2011 Andre Dierker
%%
%% This file is part of the fbithesis package.
%% -------------------------------------------
%%
%% 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 2005/12/01 or later.
%%
%% In particular, NO PERMISSION is granted to modify the contents of
%% this file since it contains the legal notices that are placed in
%% the files it generates.
%%
%% This file may not be distributed without the original source file
%% fbithesis.dtx.
%%
%% The list of all files belonging to the fbithesis package is given
%% in the file `README'.
%%
%% This file will generate fast loadable files and documentation
%% driver files from the .dtx files in this package when run through
%% LaTeX or TeX.
%%
%% ------------------- start of docstrip commands -------------------
\input docstrip.tex
%
\ifToplevel{\ifx\askonceonly\undefined%
\Msg{**********************************************}%
\Msg{*}%
\Msg{* This installation requires docstrip}%
\Msg{* version 2.4e or later.}%
\Msg{*}%
\Msg{* An older version of docstrip has been input}%
\Msg{*}%
\Msg{**********************************************}%
\errhelp{Move or rename old docstrip.tex.}%
\errmessage{Old docstrip in input path}%
\batchmode%
\csname @@end\endcsname%
\fi%
}%
%
%% Define standard text:
%
\def\nline{^^J\MetaPrefix\space}%
\def\stdtext{%
Copyright (C) 2002-2011 Andre Dierker\nline\nline%
This file is part of the fbithesis package.\nline%
-------------------------------------------\nline\nline%
It may be distributed and/or modified under the conditions of the\nline%
LaTeX Project Public License, either version 1.3 of this license or\nline%
(at your option) any later version.\nline\nline%
The latest version of this license is in\nline%
\space\space http://www.latex-project.org/lppl.txt\nline%
and version 1.3 or later is part of all distributions of LaTeX\nline%
version 2005/12/01 or later.\nline\nline%
This file may not be distributed without the original source file\nline%
`\inFileName'.\nline\nline%
The list of all files belonging to the fbithesis package is given\nline%
in the file `README'.}
%
%% Declare preambles (and use \stdtext):
%
\declarepreamble\driver

This is `\outFileName', the documentation driver for the fbithesis
package.
\stdtext

This is the driver file to produce the LaTeX documentation from the
original source file `\inFileName'.

Make changes to it as needed. (Never edit the file `\inFileName'!)

\endpreamble%
%
\declarepreamble\package

This is `\outFileName', a LaTeX2e package providing a replacement
for the maketitle command.
\stdtext

For more details, LaTeX the source `\inFileName'.

\endpreamble%
%
\declarepreamble\example

This is `\outFileName', an example file for the fbithesis package.
\stdtext

For more details, LaTeX the source `\inFileName'.

\endpreamble%
%
\declarepreamble\config

This is `\outFileName', a configuration file for the fbithesis
package.
\stdtext

For more details, LaTeX the source `\inFileName'.

\endpreamble%
%
\keepsilent%
%
%% Greeting:
%
\askforoverwritetrue%
%
\ifToplevel{%
  \Msg{}%
  \Msg{*********************************************************}%
  \Msg{* Hello to the installation of the `fbithesis' package. *}%
  \Msg{*********************************************************}%
  \Msg{}%
  \Msg{***********************}%
  \Msg{* Generating files... *}%
  \Msg{***********************}%
}%
%
%% File generation:
%
\generate{%
  \usepreamble\example%
  \file{example.tex}{\from{fbithesis.dtx}{example}}%
  \file{exampleaux.tex}{\from{fbithesis.dtx}{exampleaux}}%
  \usepreamble\driver%
  \file{fbithesis.drv}{\from{fbithesis.dtx}{driver}}%
  \usepreamble\config%
  \file{fbithesis.cfg}{\from{fbithesis.dtx}{config}}%
  \usedir{tex/latex/misc}%
  \usepreamble\package%
  \file{fbithesis.cls}{\from{fbithesis.dtx}{package}}%
}%
%
%% Report:
%
\ifToplevel{%
  \Msg{}%
  \Msg{**************************************************************}%
  \Msg{*}%
\makeatletter\@ifundefined{basedir}{%
  \Msg{* To finish the installation you have to move the following}%
  \Msg{* file into a directory searched by LaTeX:}%
}{%
  \Msg{* The following file has been automatically created in a}%
  \Msg{* directory searched by LaTeX:}%
}\makeatother%
  \Msg{*}%
  \Msg{* \space\space fbithesis.cls}%
\makeatletter\@ifundefined{basedir}{%
  \Msg{*}%
  \Msg{* Using a TDS compatible TeX distribution, this would be e.g.}%
  \Msg{* tex/latex/misc of your main or your local or your private}%
  \Msg{* texmf path. If you don't know these paths, have a look}%
  \Msg{* at your `texmf.cnf' or try:}%
  \Msg{* \space\space kpsexpand \string $TEXMFMAIN}%
  \Msg{* \space\space kpsexpand \string $TEXMFLOCAL}%
  \Msg{* \space\space kpsexpand \string $HOMETEXMF}%
  \Msg{* You may also use another folder at your \string $TEXINPUTS path.}%
}{}\makeatother%
  \Msg{*}%
  \Msg{* To produce the documentation and an example, run the}%
  \Msg{* following files through LaTeX:}%
  \Msg{*}%
  \Msg{* \space\space fbithesis.drv (three times)}%
  \Msg{* \space\space example.tex}%
  \Msg{*}%
  \Msg{* For the legal stuff please have a look at:}%
  \Msg{*}%
  \Msg{* \space\space README}%
  \Msg{*}%
  \Msg{*}%
  \Msg{* Happy TeXing!}%
  \Msg{*}%
  \Msg{**************************************************************}%
  \Msg{}%
}%
%
\endbatchfile
\end{filecontents}
%</installer>
%
%    \changes{v0.3d}{2002/04/03}{Head: revised}
%    \changes{v0.5b}{2002/08/15}{Head: \file{fbithesis.cfg} stuff}
%    \changes{v0.5e}{2002/09/04}{Head: revised}
%^^A =================================================================
%^^A   Here is the header that is written to driver-, example- and
%^^A   class-file
%^^A =================================================================
%
% The docdate info.  It specifies the date of the documentation, which
% may differ from the filedate.  (Its ok if docdate is younger.  If it
% is older, then I forgot documenting. In that case: kick me...  ;-)
%<*dtx|driver>
\def\docdate{2008/02/17}
%</dtx|driver>
%
% The required LaTeX version:
%<*dtx|driver|package|example>
\NeedsTeXFormat{LaTeX2e}[1994/12/01]%
%</dtx|driver|package|example>
%
% Identification of the docstrip file:
%<*dtx>
\ProvidesFile
%=====================================================================
             {fbithesis.dtx}
%=====================================================================
%</dtx>
%
% Identification of the driver file:
%<driver>\ProvidesFile{fbithesis.drv}
%
% Identification of the example file:
%<example>\ProvidesFile{example.tex}
%
% Identification of the auxiliary file for the example:
%<exampleaux>\ProvidesFile{exampleaux.tex}
%
% Identification of the configuration file:
%<config>\ProvidesFile{fbithesis.cfg}
%
% Identification of the package file:
%<package>\ProvidesClass{fbithesis}
%
% Provide command to identify example file:
%<example>\def\DescribesFile#1 [#2 #3 #4 (#5)]
%<example>  {\def\filedate{#2}\def\fileversion{#3}}
%
% Identification of the example file:
%<example>\DescribesFile{fbithesis.cls}
%
% The next three lines:
% 1.: Identification of the included .dtx-file.
% 2.: The date and version for docstrip, driver, example, config,
%       package and dtx file.
% 3.:  A short description and author for the included .dtx-file.
%  \fi
% \ProvidesFile{fbithesis}
  [2011/02/07 v1.2n
% Documentation for fbithesis (AD)]
%  \iffalse
%
% A short description and author for driver, example, config
% and package file:
%<package> TU Dortmund FBI Report class (AD)]
%<example> Example
%<exampleaux> Auxiliary file for the example
%<config> Configuration
%<driver> Driver
%<example|exampleaux|config|driver> for fbithesis (AD)]
%
% A short description and author for the docstrip file:
%<*dtx>
  Documented source for fbithesis (AD)]
%</dtx>
%
%    \changes{v0.3c}{2002/04/01}{Driver: revised}
%    \changes{v0.8a}{2002/12/16}{Driver: changed (LPPL removal)}
%    \changes{v1.1j}{2003/07/03}{Driver: use \package{docindex.sty}}
%    \changes{v1.1k}{2003/07/28}{Driver: use \package{xdoc2.sty}}
%    \changes{v1.1k}{2003/07/28}{Driver: \env{length} and 
%      \cmd{describefile} implemented}
%    \changes{v1.1l}{2003/09/11}{Driver: cleaned of
%      \package{xdoc2}-stuff}
%    \changes{v1.2b}{2005/01/04}{Driver: use \package{hyperref.sty}}
%^^A =================================================================
%^^A   Here is the driver for customized documentation
%^^A =================================================================
%<*driver>
 %
 % We do not specify any options by default and its recommended not to
 %   change this.  If you want to use a4paper, the proper way is to add
 %   a line
 %     \PassOptionsToClass{a4paper}{article}
 %   to your `ltxdoc.cfg'.
\documentclass{ltxdoc}

 % Only use fontenc if it is present
 \IfFileExists{fontenc.sty}{%
   \usepackage[T1]{fontenc}}{}

 % Only use multicol if it is present
 \IfFileExists{multicol.sty}{%
   \usepackage{multicol}}{}

 % Only use hyperref if it is present
 \IfFileExists{hyperref.sty}{%
   \usepackage[bookmarks,backref,colorlinks,hyperindex]{hyperref}
 }{%
   \def\href##1##2{|##2|}
 }

 % Only use xdoc2 if it is present
 \IfFileExists{xdoc2.sty}{%
   \usepackage[dolayout]{xdoc2}%

   % Only use docidx2e if it is present
   \IfFileExists{docidx2e.sty}{%
     \usepackage{docidx2e}}{}%
 }{}

  % By default this file will build the `user' documentation.  It
  %   covers the basic information you need as an user and provides
  %   (if you want to) a compact index with the most important
  %   commands.  To get the `programmer' documentation (with code
  %   listing, extended command index and change history), comment out
  %   the next line
 \OnlyDescription

  % To produce the compact command index run
  %     makeindex fbithesis.idx -s gind.ist -o fbithesis.ind
  %   or, if you use docindex
  %     makeindex fbithesis.idx -s docindex.ist -o fbithesis.ind

  % If you commented out \OnlyDescription, you are able to control the
  %   index and change history with the following commands:

  % To produce the extended command index: add the following line
  %   one run, then run 
  %      makeindex fbithesis.idx -s gind.ist -o fbithesis.ind
  %   and re-process, with or without this line (much faster without)
  %
  % This will only have an effect if you commented out
  %   \OnlyDescription above!
 %\EnableCrossrefs

  % Next you can control the index numbering by the two commands
  %   \PageIndex and \CodelineIndex (I prefer the latter one..).  If
  %   you don't want an index, comment out both commands.
  %
  % Description index entries refer to page numbers, code listing
  %   index entries refer to code lines
 \CodelineIndex
  % Make all index entries (description and code listing) refer to
  %   page numbers (if you add the following line you should comment
  %   out the \CodelineIndex)
 %\PageIndex

  % Produce a 2 column index (if ever)
 \setcounter{IndexColumns}{2}

  % To produce a change history: add the following line for one run,
  %   then run 
  %     makeindex fbithesis.glo -s gglo.ist -o fbithesis.gls
  %   or, if you use docindex
  %     makeindex fbithesis.glo -s docindex.ist -o fbithesis.gls
  %   and re-process, with or without this line (faster without)
 %\RecordChanges

\begin{document}
  \DocInput{fbithesis.dtx}
\end{document}
%</driver>
%  \fi
%
%    \changes{v0.3c}{2002/04/01}{Env: \cmd{\ifmulticols} implemented}
%    \changes{v0.4f}{2002/07/05}{Env: \cmd{\ifmulticols} corrected}
%    \changes{v1.1l}{2003/09/11}{Env: \cmd{\ifxdoc} and
%      \cmd{\ifdocidx} implemented}
%^^A =================================================================
%^^A   We continue with the `normal' .dtx-file.
%^^A   Check the environment we are confirmed with:
%^^A   - If there is multicol.sty, we'll print the table of contents
%^^A     with 2 columns
%^^A   - If there is xdoc2.sty, we'll use its great possibilities
%^^A   - If there is docidx2e.sty, we'll use it for an enhanced index
%^^A     and glossar
%^^A =================================================================
%    \newif\ifmulticols
%    \IfFileExists{multicol.sty}{\multicolstrue}{\multicolsfalse}
%    \newif\ifxdoc
%    \IfFileExists{xdoc2.sty}{\xdoctrue}{\xdocfalse}
%    \newif\ifdocidx
%    \IfFileExists{docidx2e.sty}{\docidxtrue}{\docidxfalse}
%
%    \changes{v1.1l}{2003/09/11}{Defs: \cmd{\Lswitch} implemented}
%    \changes{v1.1l}{2003/09/11}{Defs: \texttt{xdoc2}-stuff}
%    \changes{v1.2a}{2004/12/30}{Defs: \cmd{\describefile} corrected}
%    \changes{v1.2b}{2005/01/03}{Defs: \cmd{\describeoption}
%      corrected}
%    \changes{v1.2b}{2005/01/07}{Defs: \cmd{\ctanurl} implemented}
%    \changes{v1.2j}{2006/10/25}{Defs: \cmd{\NEW*} corrected}
%^^A =================================================================
%^^A   Some definitions to enhance the logical mark-up of this
%^^A   documentation
%^^A =================================================================
%     \makeatletter
%     ^^A for environments (`\cmd' for commands is already defined in
%     ^^A                   \package{ltxdoc.cls})
%    \DeclareRobustCommand*{\env}[1]{\texttt{#1}}
%     ^^A for packages, styles, classes
%    \DeclareRobustCommand*{\package}[1]{\texttt{#1}}
%    ^^A for programs
%    \DeclareRobustCommand*{\program}[1]{\textsf{#1}}
%     ^^A for eMails, urls
%    \DeclareRobustCommand*{\url}[1]{\href{#1}{|#1|}}
%     ^^A for URLs to CTAN
%    \DeclareRobustCommand*{\ctanurl}[1]
%      {\href{ftp://ftp.dante.de/pub/#1}{\ctan: |#1|}}
%     ^^A for files, paths and command-lines
%    \DeclareRobustCommand*{\file}[1]{\texttt{#1}}
%     ^^A for persons
%    \DeclareRobustCommand*{\person}[1]{\textsc{#1}}
%     ^^A for counters
%    \DeclareRobustCommand*{\Lcount}[1]{\textsl{\small#1}}
%     ^^A for length registers
%    \DeclareRobustCommand*{\Llength}[1]{\cmd{#1}}
%     ^^A for switches
%    \DeclareRobustCommand*{\Lswitch}[1]{\texttt{#1}}
%     ^^A for package options
%    \DeclareRobustCommand*{\Lopt}[1]{\textsf{#1}}
%     ^^A for quotations
%    \DeclareRobustCommand*{\qm}[1]{``#1''}
%     ^^A for mail addresses
%    \DeclareRobustCommand*{\mail}[2][]
%      {\ifx\empty#1\empty\else\textless\person{#1}\textgreater^^A
%        \space\fi\url{#2}}
%    \DeclareRobustCommand*{\smiley}{|:-)|}
%    \DeclareRobustCommand*{\winkey}{|;-)|}
%    \DeclareRobustCommand*{\tds}{TDS}
%    \DeclareRobustCommand*{\ctan}{\textsc{ctan}}
%    \let\describemacro=\DescribeMacro
%^^A From scrlogo.dtx:
%    \DeclareRobustCommand*{\koma}{\textsf{K\kern.05em O\kern.05em^^A
%      M\kern.05em A\kern.1em-\kern.1em Script}}
%^^A From amsdtx.dtx:
%    \DeclareRobustCommand*{\ams}{{\protect\usefont{OMS}{cmsy}{m}{n}^^A
%      A\kern-.1667em\lower.5ex\hbox{M}\kern-.125emS}}
%^^A From ltxguide.cls:
%    \newcommand*{\NEWfeature}[1]{^^A
%      \marginpar{\small\sffamily\raggedright^^A
%        New feature\par#1}}
%    \DeclareRobustCommand*{\NEWdescription}[1]{^^A
%      \marginpar{\small\sffamily\raggedright^^A
%        New description\par#1}}
%^^A From xdoc2.dtx:
%    ^^A make linebreaks easier:
%    \DeclareRobustCommand*{\B}{\penalty\exhyphenpenalty}
%    \ifxdoc
%      \NewMacroEnvironment{length}{\XD@grab@harmless@asmacro}{1}
%      {^^A
%        \cs{#1} length}{^^A
%        \XDMainIndex{\LevelSorted{#1}{\cs{#1} length}}^^A
%        \XDMainIndex{^^A
%          \LevelSame{lengths:}\LevelSorted{#1}{\cs{#1}}^^A
%        }}%
%      {{#1 length}{\cs{#1} length}}%
%      {}%
%      \NewMacroEnvironment{counter}{\XD@grab@harmless@asmacro}{1}
%      {^^A
%        \cs{#1} counter}{^^A
%        \XDMainIndex{\LevelSorted{#1}{\cs{#1} counter}}^^A
%        \XDMainIndex{^^A
%          \LevelSame{lengths:}\LevelSorted{#1}{\cs{#1}}^^A
%        }}%
%      {{#1 counter}{\cs{#1} counter}}%
%      {}%
%      \let\option=\relax
%      \let\endoption=\relax
%      \NewMacroEnvironment{option}{\XD@grab@harmless\relax}{1}
%      {^^A
%        \Lopt{#1} option}{^^A
%        \XDMainIndex{\LevelSorted{#1}{\Lopt{#1} option}}^^A
%        \XDMainIndex{^^A
%          \LevelSame{options:}\LevelSorted{#1}{\Lopt{#1}}^^A
%        }}%
%      {{#1 option}{\Lopt{#1} option}}%
%      {}%
%      \let\describeoption=\relax^^A
%      \NewDescribeCommand{\describeoption}
%      {^^A
%        \XD@grab@harmless\relax}{1}{^^A
%        \GenericDescribePrint{option \Lopt{#1}}^^A
%        \IndexEntry{^^A
%          \LevelSame{options:}\LevelSorted{#1}{\Lopt{#1}}^^A
%        }{usage}{\thepage}^^A
%        \IndexEntry{^^A
%          \LevelSorted{#1}{\Lopt{#1} option}^^A
%        }{usage}{\thepage}^^A
%      }%
%      \let\switch=\relax
%      \let\endswitch=\relax
%      \NewMacroEnvironment{switch}{\XD@grab@harmless\relax}{1}
%      {^^A
%        \Lswitch{#1} switch}{^^A
%        \MakeSortKey{\XD@last@key}{#1}{}^^A
%        \XDMainIndex{^^A
%          \LevelSorted{\XD@last@key}{\texttt{#1} switch}}^^A
%        \XDMainIndex{\LevelSorted{if#1}{\cs{if#1}}}^^A
%        \MakeSortKey{\@tempa}{#1true}{}^^A
%        \XDMainIndex{^^A
%          \LevelSorted{\@tempa}{\cs{#1true}}}^^A
%        \MakeSortKey{\@tempa}{#1false}{}^^A
%        \XDMainIndex{^^A
%          \LevelSorted{\@tempa}{\cs{#1false}}}^^A
%        \XDMainIndex{^^A
%          \LevelSame{switches}\LevelSorted{^^A
%            \XD@last@key}{\texttt{#1}}^^A
%        }}%
%      {{#1}{\Lswitch{#1} switch}}%
%      {^^A
%        \DoNotIndexHarmless{if#1}^^A
%        \DoNotIndexHarmless{#1true}^^A
%        \DoNotIndexHarmless{#1false}^^A
%      }^^A
%      \NewMacroEnvironment{documentation}{^^A
%        \XD@grab@harmless\relax}{1}{}{^^A
%        \IndexEntry{^^A
%          \LevelSorted{#1}{#1 (documentation)}^^A
%        }{none}{\thepage}^^A
%        \IndexEntry{^^A
%          \LevelSame{documentation:}\LevelSorted{#1}{#1}^^A
%        }{none}{\thepage}^^A
%      }%
%      {{#1}{#1}}%
%      {}^^A
%      \NewDescribeCommand{\describefile}{\XD@grab@marg\relax}{1}
%      {^^A
%        \protected@edef\@temp{\file{#1}}^^A
%        \GenericDescribePrint{file \@temp}^^A
%        \IndexEntry{\LevelSorted{#1}{\@temp (file)}}
%                   {usage}{\thepage}^^A
%        \IndexEntry{\LevelSame{files:}\LevelSorted{#1}{\@temp}}
%                   {usage}{\thepage}}^^A
%    \else
%    ^^A dummy-implementations for xdoc2-based macros:
%      \newcommand*{\describecsfamily}[1]{^^A
%        \leavevmode
%        \GenericDescribePrint{\MacroFont\Bslash#1}^^A
%        \ignorespaces}
%      \newcommand*{\describeoption}[1]{^^A
%        \leavevmode
%        \GenericDescribePrint{option \Lopt{#1}}^^A
%        \ignorespaces}
%      \newcommand*{\describefile}[1]{^^A
%        \leavevmode
%        \GenericDescribePrint{file \file{#1}}^^A
%        \ignorespaces}
%      \newcommand*{\GenericDescribePrint}[1]{^^A
%        \marginpar{\raggedleft\strut #1}}
%      \newcommand*{\DoNotIndexBy}[1]{}
%      \DeclareRobustCommand*{\Bslash}{\bslash}
%      \newenvironment{option}[1]{\trivlist\item[]}{\endtrivlist}%
%      \newenvironment{length}[1]{\trivlist\item[]}{\endtrivlist}%
%      \newenvironment{switch}[1]{\trivlist\item[]}{\endtrivlist}%
%      \newenvironment{documentation}[1]{^^A
%        \trivlist\item[]}{\endtrivlist}^^A
%      ^^A\@ifpackagelater{doc}{2000/05/20}{}{%
%      ^^A  \let\XD@fragile@meta=\meta
%      ^^A  \def\meta{%
%      ^^A    \ifx \protect\@typeset@protect
%      ^^A      \expandafter\futurelet \expandafter\@let@token
%      ^^A      \expandafter\XD@fragile@meta
%      ^^A    \else
%      ^^A      \noexpand\meta
%      ^^A    \fi
%      ^^A  }%
%      ^^A}%
%    \fi
%    ^^A When using docidx2e we remember the user to use docindex.ist 
%    ^^A   instead of gglo.ist and gind.ist
%    \ifdocidx
%      \AtEndDocument{%
%        \typeout{************************************}%
%        \typeout{* \space Use docindex.ist when sorting \space\space *}%
%        \typeout{* fbithesis.idx and fbithesis.glo! *}%
%        \typeout{************************************}%
%      }%
%    \fi
%
%    \changes{v1.2j}{2006/10/25}{optical changes to the toc}
%^^A =================================================================
%^^A   Changes to article
%^^A =================================================================
%    \ifmulticols
%      \renewcommand*\l@section[2]{%
%        \ifnum \c@tocdepth >\z@
%          \addpenalty\@secpenalty
%          \addvspace{1.0em \@plus\p@}%
%          \setlength\@tempdima{0.8em}%
%          \begingroup
%            \parindent \z@ \rightskip \@pnumwidth
%            \parfillskip -\@pnumwidth
%            \leavevmode \bfseries
%            \advance\leftskip\@tempdima
%            \hskip -\leftskip
%            #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
%          \endgroup
%        \fi}
%      \renewcommand*{\l@subsection}{\@dottedtocline{2}{0.8em}{1.6em}}
%      \renewcommand*{\l@subsubsection}{\@dottedtocline{3}{2.4em}{2.4em}}
%      \renewcommand*{\l@paragraph}{\@dottedtocline{4}{4.8em}{3.2em}}
%      \renewcommand*{\l@subparagraph}{\@dottedtocline{5}{8em}{4em}}
%    \fi
%    \makeatother
%
%
%^^A =================================================================
%^^A   Changes concerning the whole document or huge parts of it
%^^A =================================================================
%    \changes{v0.3a}{2002/03/19}{Docu: major revision (class changes)}
%    \changes{v0.3b}{2002/03/31}{Minor corrections}
%    \changes{v0.3b}{2002/03/31}{Various legal stuff}
%    \changes{v0.4a}{2002/04/04}{Citations}
%    \changes{v0.4e}{2002/04/09}{Minor corrections}
%    \changes{v0.4f}{2002/07/05}{Docu: some minor corrections and 
%      enhancements}
%    \changes{v0.4f}{2002/07/05}{Meta-Docu: major enhancements}
%    \changes{v0.4g}{2002/08/11}{Minor corrections}
%    \changes{v0.4h}{2002/08/13}{ID: more (German) keywords}
%    \changes{v0.4h}{2002/08/13}{Minor corrections and enhancements}
%    \changes{v0.5e}{2002/08/30}{Minor corrections and enhancements}
%    \changes{v0.5f}{2002/09/04}{Docu: minor changes}
%    \changes{v0.5f}{2002/09/04}{Meta-Docu: minor changes}
%    \changes{v0.5g}{2002/09/12}{Typos corrected}
%    \changes{v0.5j}{2002/09/21}{Docu: minor changes}
%    \changes{v0.6a}{2002/09/23}{Docu: minor changes}
%    \changes{v0.6d}{2002/10/19}{Docu: minor changes}
%    \changes{v0.7b}{2002/11/13}{Docu: minor changes}
%    \changes{v0.7e}{2002/11/26}{Docu: minor changes and enhancements}
%    \changes{v0.7f}{2002/11/28}{Minor optimizations}
%    \changes{v0.7h}{2002/12/12}{Docu: minor changes}
%    \changes{v0.8a}{2002/12/16}{LPPL removal}
%    \changes{v0.8a}{2002/12/16}{Minor corrections}
%    \changes{v0.8b}{2002/12/20}{ID: legal stuff reduced}
%    \changes{v0.8d}{2002/12/31}{Minor changes}
%    \changes{v0.8e}{2003/01/01}{Minor changes and corrections}
%    \changes{v0.8f}{2003/01/03}{Docu: changes and enhancements}
%    \changes{v1.0b}{2003/01/05}{Docu: many changes, corrections and
%      enhancements}
%    \changes{v1.0c}{2003/01/07}{Docu: \cmd{\mail}}
%    \changes{v1.0d}{2003/01/08}{whole bunch of typos fixed}
%    \changes{v1.1a}{2003/01/09}{Docu: \cmd{\NEW}-commands}
%    \changes{v1.1b}{2003/01/30}{Typos fixed}
%    \changes{v1.1c}{2003/02/07}{Docu: \cmd{\ams}-command}
%    \changes{v1.1k}{2003/07/28}{Docu: CTAN-hierarchy has changed: no
%      distinction between `supported' and `other'}
%    \changes{v1.1k}{2003/07/28}{Docu: \cmd{\B}-command}
%    \changes{v1.1k}{2003/07/28}{Docu: \cmd{\program}-command}
%    \changes{v1.1k}{2003/07/28}{Docu: \cmd{\describe}-commands}
%    \changes{v1.1k}{2003/07/28}{Docu: \env{option}, \env{length} and
%      \env{switch} environments}
%    \changes{v1.1l}{2003/09/11}{Docu: \env{documentation} 
%      environment}
%    \changes{v1.2b}{2005/01/05}{Docu: \cmd{\ref}s corrected}
%    \changes{v1.2b}{2005/01/07}{Docu: \cmd{ctanurl} used}
%
%^^A =================================================================
%^^A   Even with enabled crossrefs do not index all macros.
%^^A =================================================================
%
%^^A The \cmd{\DoNotIndexBy}-calls have to be placed before the
%^^A \cmd{\DoNotIndex}-calls 
%    \DoNotIndexBy{@}
%    \DoNotIndexBy{fbi@}
%
%    \DoNotIndex{\@empty}
%    \DoNotIndex{\@for}
%    \DoNotIndex{\@ifundefined}
%    \DoNotIndex{\@maketitle}
%    \DoNotIndex{\@ne}
%    \DoNotIndex{\@plus}
%    \DoNotIndex{\@tempboxa, \@tempcnta, \@tempdima, \@temptokena}
%    \DoNotIndex{\\, \", \{, \} }
%    \DoNotIndex{\addtolength, \AtEndDocument, \advance}
%    \DoNotIndex{\afterassignment}
%    \DoNotIndex{\begin, \begingroup, \bf, \bfseries, \box}
%    \DoNotIndex{\baselineskip, \backslash}
%    \DoNotIndex{\ClassError, \ClassWarning, \ClassWarningNoLine}
%    \DoNotIndex{\ClassInfo, \CurrentOption, \cdot, \count, \csname}
%    \DoNotIndex{\centering, \cleardoublepage, \clearpage}
%    \DoNotIndex{\DeclareRobustCommand, \def, \documentclass}
%    \DoNotIndex{\DeclareOption, \dimen, \divide, \do}
%    \DoNotIndex{\else, \end, \ExecuteOptions, \endgroup}
%    \DoNotIndex{\expandafter, \endcsname}
%    \DoNotIndex{\fontfamily, \fontseries, \fontsize}
%    \DoNotIndex{\footnoterule, \footnotesize, \frontmatter}
%    \DoNotIndex{\fboxrule, \fboxsep \framebox, \filename@ext}
%    \DoNotIndex{\fi, \filedate, \fileversion, \filename@parse}
%    \DoNotIndex{\gdef, \global, \GenericWarning, \Gin@sepdefault}
%    \DoNotIndex{\Ginput@path, \Gin@temp, \Gin@getbase, \Gin@ext}
%    \DoNotIndex{\Gin@extensions}
%    \DoNotIndex{\hfill, \hfil, \hskip, \hspace, \hbox, \hss, \hb@xt@}
%    \DoNotIndex{\headheight, \headsep, \ht, \hoffset}
%    \DoNotIndex{\IfFileExists, \InputIfFileExists, \ifx, \if}
%    \DoNotIndex{\input@path}
%    \DoNotIndex{\kern}
%    \DoNotIndex{\LARGE, \Large, \large, \let, \lineskip, \LoadClass}
%    \DoNotIndex{\line, \linethickness}
%    \DoNotIndex{\mainmatter, \mbox, \MessageBreak, \makebox}
%    \DoNotIndex{\multiput, \m@ne}
%    \DoNotIndex{\newcommand, \newlength, \null, \noexpand, \newbox}
%    \DoNotIndex{\newif, \next@tpage, \noindent}
%    \DoNotIndex{\oddsidemargin}
%    \DoNotIndex{\par, \PackageError, \PackageWarningNoLine, \put}
%    \DoNotIndex{\PassOptionsToClass, \ProcessOptions}
%    \DoNotIndex{\providecommand}
%    \DoNotIndex{\protect, \parbox}
%    \DoNotIndex{\relax, \renewcommand, \rule, \RequirePackage}
%    \DoNotIndex{\selectfont, \setcounter, \setlength, \small}
%    \DoNotIndex{\setbox, \space, \stop, \scriptsize, \string}
%    \DoNotIndex{\today, \texttt, \typeout, \thinlines, \the}
%    \DoNotIndex{\textwidth, \thispagestyle, \topmargin, \topskip}
%    \DoNotIndex{\usepackage, \undefined, \unitlength, \unkern}
%    \DoNotIndex{\vfil, \vskip, \vbox, \vss, \vspace, \vfill}
%    \DoNotIndex{\voffset}
%    \DoNotIndex{\wd}
%    \DoNotIndex{\z@}
%
%^^A =================================================================
%^^A   After this the commands \filedate and \fileversion are defined
%^^A =================================================================
%    \GetFileInfo{fbithesis}
%
%^^A =================================================================
%^^A   Title definition
%^^A =================================================================
%    \title{The \package{\filename}~package\thanks{This file has
%    version number \fileversion.  It was last revised on \filedate,
%    the documentation is dated \docdate.}}
%    \author{Andre
%    Dierker\thanks{\url{dierker@kand.de}}}
%    \date{Printed on \today}
%    \maketitle
%
%  \begin{documentation}{Abstract}
%    \changes{v0.3c}{2002/04/01}{revised}
%    \changes{v0.8a}{2002/12/16}{changed (LPPL removal)}
%    \changes{v1.2j}{2006/10/23}{enhanced}
%^^A =================================================================
%^^A   A small abstract
%^^A =================================================================
%    \begin{abstract}
%      \package{\filename.cls} is a \LaTeXe\ document-class tuned for
%      research reports or internal reports like master/phd-theses at
%      the TU Dortmund University.
%
%      At the Department of Computer Science at the TU
%      Dortmund there are cardboard cover pages for internal reports
%      like master/phd-theses.  The main function of the \LaTeX2e\
%      document-class provided by this package is a replacement for
%      the \cmd{maketitle} command to typeset a title page that is
%      adjusted to these cover pages.
%
%      See \file{README} for a short overview and additional
%      (legal) information and \file{example.tex} for---of course---an
%      example.
%    \end{abstract}
%  \end{documentation}
%
%  \begin{documentation}{TOC}
%    \changes{v0.3c}{2002/04/01}{two columns (copied from
%      \package{doc.dtx})}
%    \changes{v0.7f}{2002/11/28}{use \cs{AtEndDocument}}
%^^A =================================================================
%^^A   Open a multicols-env. here. (And close it at the end of the 
%^^A   document...)
%^^A   Note: this solution could lead to problems! (See multitoc.dtx
%^^A   by Martin Schr\"oder)
%^^A =================================================================
%    \ifmulticols
%      \addtocontents{toc}{\protect\begin{multicols}{2}}
%    \fi
%
%    {\parskip 0pt      ^^A We have to reset \parskip (bug in \LaTeX,
%                       ^^A see doc.dtx)
%      \tableofcontents
%    }
%  \end{documentation}
%
%  \begin{documentation}{Introduction}
%    \changes{v0.3c}{2002/04/01}{revised}
%    \changes{v0.4h}{2002/08/13}{new paragraph dealing with templates}
%    \changes{v0.5d}{2002/08/29}{rearranged}
%    \changes{v0.7b}{2002/11/13}{new figure showing title page}
%    \changes{v0.7b}{2002/11/13}{new paragraph concerning the
%      imitation}
%    \changes{v0.8e}{2003/01/01}{fixed bad phrasing}
%    \changes{v1.2j}{2006/10/25}{decoration explained}
%    \changes{v1.2m}{2011/02/06}{renaming of uni and fbi}
%^^A =================================================================
%^^A   Short description of what is done by the package
%^^A   Miscellaneous comments
%^^A =================================================================
%    \section{Introduction}
%    \label{sec:intro}
%
%    At the Department of Computer Science at the TU Dortmund
%    University there are cardboard cover
%    pages (see figure \ref{fig:cover} on page \pageref{fig:cover})
%    for internal reports like master/phd-theses.  The main function
%    of the \LaTeXe\ document-class \package{\filename} is to replace
%    the \cmd{\maketitle}~command to typeset a title page that is
%    adjusted to these cover pages (see figure \ref{fig:fbititle} on
%    page \pageref{fig:fbititle}).
%
%    \begin{figure}
%      \centering
%      \setlength{\unitlength}{0.25cm}
%      \begin{picture}(21,29.7)
%        \thicklines
%        \put(0,0){\framebox(21,29.7){\mbox{}}}
%        \put(2.9,15.4){\framebox(9.2,9.1){\mbox{}}}
%        \put(1.6,25.65){\rule{1.375mm}{1.375mm}}
%        \thinlines
%        \put(15,20){\vector(-1,0){4}}
%        \put(15.4,20){\makebox(0,0)[l]{window}}
%        \put(2.9,26.5){\framebox(9.2,0.5){\mbox{}}}
%        \put(7.5,26.5){\makebox(0,0)[b]{\tiny\sffamily
%                                        UNIVERSIT\"{A}T DORTMUND}}
%        \put(2.9,25.6){\framebox(9.2,0.5){\mbox{}}}
%        \put(7.5,25.6){\makebox(0,0)[b]{\tiny\sffamily FACHBEREICH
%                                    INFORMATIK}}
%        \put(2.9,13.6){\framebox(9.2,0.5){\mbox{}}}
%        \put(7.5,13.6){\makebox(0,0)[b]{\tiny\sffamily INTERNE
%                                        BERICHTE}}
%        \put(2.9,12.75){\framebox(9.2,0.5){\mbox{}}}
%        \put(7.5,12.75){\makebox(0,0)[b]{\tiny\sffamily INTERNAL
%                                         REPORTS}}
%        \put(16.1,3.55){\makebox(0,0)[b]{\tiny\sffamily D-44221
%                                         DORTMUND}}
%        \thicklines
%        \put(12,3.25){\line(1,0){8.4}}
%        \put(12,4.35){\line(1,0){8.4}}
%      \end{picture}
%      ^^A
%      \caption{A rough outline of the \mbox{DIN-A4}~cardboard cover
%      page for diploma and doctoral theses and project reports
%      provided by the Department of Computer Science at the
%      TU Dortmund.  The title page of the document is
%      visible through the window.}
%      ^^A
%      \label{fig:cover}
%    \end{figure}
%    \begin{figure}
%      \centering
%      \setlength{\unitlength}{0.25cm}
%      \begin{picture}(21,29.7)
%        \thicklines
%        \put(0,0){\framebox(21,29.7){\mbox{}}}
%        \put(1.6,25.65){\rule{1.375mm}{1.375mm}}
%        \thinlines
%        \put(7.5,26.5){\makebox(0,0)[b]{\tiny\sffamily
%                                        UNIVERSIT\"{A}T DORTMUND}}
%        \put(7.5,25.6){\makebox(0,0)[b]{\tiny\sffamily FACHBEREICH
%                                        INFORMATIK}}
%        \put(18.4,25.6){\framebox(2,1.5){\mbox{}}}
%        \put(7.5,23){\makebox(0,0)[c]{\tiny Your Name}}
%        \put(7.5,20){\makebox(0,0)[c]{\scriptsize The Title}}
%        \put(7.5,16.5){\makebox(0,0)[b]{\tiny Date}}
%        \put(13,15.4){\framebox(7.4,9.1){\mbox{}}}
%        \put(16.7,21){\makebox(0,0)[b]{\tiny\ttfamily additional}}
%        \put(16.7,20){\makebox(0,0)[b]{\tiny\ttfamily optional}}
%        \put(16.7,19){\makebox(0,0)[b]{\tiny\ttfamily logo}}
%        \put(19.4,26){\makebox(0,0)[b]{\tiny\ttfamily logo}}
%        \put(7.5,13.6){\makebox(0,0)[b]{\tiny\sffamily INTERNE
%                                        BERICHTE}}
%        \put(7.5,12.75){\makebox(0,0)[b]{\tiny\sffamily INTERNAL
%                                         REPORTS}}
%        \put(2.9,9.5){\makebox(0,0)[lb]{\tiny Address}}
%        \put(2.9,9){\makebox(0,0)[lb]{\tiny of Chair}}
%        \put(2.9,7.5){\makebox(0,0)[lb]{\tiny Supervisors}}
%        \put(16.4,7){\framebox(4,3){\mbox{}}}
%        \put(18.4,8){\makebox(0,0)[b]{\tiny\ttfamily chair logo}}
%        \put(16.1,3.55){\makebox(0,0)[b]{\tiny\sffamily D-44221
%                                         DORTMUND}}
%        \thicklines
%        \put(12,3.25){\line(1,0){8.4}}
%        \put(12,4.35){\line(1,0){8.4}}
%      \end{picture}
%      ^^A
%      \caption{The title page as generated by \package{\filename}.
%        The important part of the title page (author, title and date)
%        is visible through the window in the cover page.  This sketch
%        can only give you a very coarse impression.  For a more
%        authentic one use the example (see section \ref{sec:example}
%        on the pages \pageref{sec:example}ff).}
%      ^^A
%      \label{fig:fbititle}
%    \end{figure}
%    
%    As you can see the title page is not only adjusted to the
%    cardboard, but even imitates the cover: it repeats the text found
%    on the cover page.  Usually theses are presented to the world in
%    two shapes: printed on paper or electronically (e.g.\ as a
%    \mbox{PDF} or PostScript file).  In the first case the repetition
%    is not necessary, in the second (electronical) case one would
%    miss important information without it.  Since it doesn't hurt in
%    the paper case I decided to make it possible to repeat this
%    `decoration' of the cover page on the title page (see options
%    \Lopt{decor} and \Lopt{nodecor} in section \ref{subsec:options}).
%
%    This package doesn't make much sense outside of Germany or even
%    outside the TU Dortmund.  Nevertheless the
%    documentation is in English.  This shouldn't be a problem
%    nowadays and it's a good training for me \winkey
%  \end{documentation}
%
%  \begin{documentation}
%    \changes{v1.2m}{2011/02/06}{new}
%    \subsection{Why the name?}
%^^A =================================================================
%^^A   The history of `FBI'
%^^A =================================================================
%    \label{subsec:name}
%
%    When this package was created, the Department of Computer Science
%    had the name `\textbf{F}ach\textbf{b}ereich \textbf{I}nformatik'
%    in german. The abbreviation `FBI' was quite common in those
%    days. Since the package is meant for that department I used the
%    abbreviation for my package. (And of course because its kinda
%    cool \winkey)
%
%    In the meantime however the `Universität Dortmund' was
%    renamed to `Technische Universität Dortmund' (technical
%    university of Dortmund) and the department to `Fakultät für
%    Informatik'.
%  \end{documentation}
%
%  \begin{documentation}{Other packages}
%    \changes{v0.7c}{2002/11/20}{new}
%    \changes{v1.2e}{2006/01/03}{correct links to packages}
%    \changes{v1.2g}{2006/07/11}{Note \package{udotitle}}
%    \changes{v1.2k}{2008/02/17}{Note \package{pgthesis}}
%    \subsection{Other packages}
%    \label{subsec:other}
%
%    Apart from \package{\filename} there is at least one more
%    approach that deals with the same subject.  This is
%    \package{diplomatitle}\footnote{\url{http://ls6-www.cs.uni-dortmund.de/\symbol{126}leineweb/tex/interneBerichte/}
%    (Some of the files aren't reachable.  Perhaps you have to contact
%    the author first.)} by \person{Thomas Leineweber}\footnote{\mail[Thomas
%    Leineweber]{leineweb@ls6.cs.uni-dortmund.de}}.
%    \package{diplomatitle} isn't officially released.  It hasn't left
%    development status yet and it is doubtful if it ever will, as
%    the author seems to have abandoned active development.
%
%    \NEWdescription{2008/02/17 v1.2k}Together with \person{Thomas},
%    \person{Marc Seitz}\footnote{\mail[Marc
%      Seitz]{marc@marcseitz.de}} worte \package{pgthesis} which is
%    based on \package{\filename}. It aims at final reports of project
%    groups (Projektgruppen Endberichte) but isn't yet officially
%    released. If you are interested please contact the authors.
%
%    Some other approaches use the \env{titlepage}~environment and
%    provide a sort of template for the title page.  Representatives
%    of these approaches are for example the
%    `\LaTeX-Templates'\footnote{\url{http://ls7-www.cs.uni-dortmund.de/\symbol{126}kohler/verschiedenes/LaTeX-Templates.tgz}}
%    by \person{Kohler}\footnote{\mail[Markus
%    Kohler]{markus.kohler@uni-dortmund.de}} or
%    `daTitelblatt'\footnote{\url{http://ls11-www.cs.uni-dortmund.de/resources/docs/daLatex/daTitelblatt.tex}}
%    by \person{Dittrich}\footnote{\mail[Peter
%    Dittrich]{gisbert.dittrich@udo.edu}}.  Of course these
%    template-approaches give a great flexibility to the user.  On the
%    other hand the necessary customization often
%    requires a deeper knowledge of \LaTeX.
%
%    \NEWdescription{2006/07/11 v1.2g}Additionally there is
%    \package{udotitle}\footnote{\url{http://www.forum.fset.de/}} by
%    \person{Gerd Sebastiani}. This package however does not produce a
%    title page to be used with the cardboard of the department of
%    computer science but complies with the official corporate design
%    of the university.
%  \end{documentation}
%
%  \begin{documentation}{New}
%    \changes{v1.2d}{2005/12/14}{written}
%    \changes{v1.2e}{2006/01/03}{\Lopt{decor} added}
%    \changes{v1.2i}{2006/09/10}{References added}
%    \changes{v1.2i}{2006/09/10}{\Lopt{declaration} added}
%    \changes{v1.2m}{2011/02/06}{renaming of uni and fbi}
%^^A =================================================================
%^^A   Compared to the last major version, what's new in this one
%^^A =================================================================
%    \subsection{What's new}
%    \label{subsec:new}
%
%    \NEWdescription{2006/09/10 v1.2i}Since the last stable version
%    v1.0d (2003/01/08) some new features were added:
%    \begin{enumerate}
%    \item compatibility with the \ams-classes (\package{amsbook} or
%      \package{amsreport}) as baseclasses (see section
%      \ref{subsubsec:ams} on page \pageref{subsubsec:ams})
%    \item better handling of baseclass-specific macros
%    \item new options \Lopt{decor} and \Lopt{nodecor} (see section
%      \ref{subsubsec:decor} on page \pageref{subsubsec:decor})
%    \item better warnings if needed files could not be found
%    \item new options \Lopt{ngerman} and \Lopt{american} (see section
%      \ref{subsubsec:language} on page \pageref{subsubsec:language})
%    \item new options \Lopt{declaration} and \Lopt{nodeclaration}
%      (see section \ref{subsubsec:declaration} on page
%      \pageref{subsubsec:declaration})
%    \item the university and the department were renamed since the
%      last public release.
%    \end{enumerate}
%
%  \end{documentation}
%
%  \begin{documentation}{Needs}
%    \changes{v0.3e}{2002/04/04}{update (class changes)}
%    \changes{v0.4e}{2002/04/09}{update (\package{german.sty} and
%      \package{scrbook})}
%    \changes{v0.5j}{2002/09/21}{update (\package{graphicx.sty})}
%    \changes{v0.7b}{2002/11/13}{add reasons}
%    \changes{v0.7h}{2002/12/12}{restrict \package{graphicx}}
%    \changes{v0.7i}{2002/12/14}{suggest latest \koma-version}
%    \changes{v1.1b}{2003/01/30}{update \koma-version}
%    \changes{v1.1c}{2003/02/07}{support \ams}
%    \changes{v1.2b}{2005/01/17}{killed spaces}
%    \changes{v1.2d}{2005/12/14}{update \koma-version}{}
%^^A =================================================================
%^^A   What is required?
%^^A   What is recommended?
%^^A   What is supported?
%^^A =================================================================
%    \subsection{What do you need}
%    \label{subsec:need}
%
%    There are some packages, that are required with the use of
%    \package{\filename}.  Some others are recommended.
%    \begin{enumerate}
%    \item Packages, that are essentially required by
%      \package{\filename}:
%      \begin{enumerate}
%      \item \LaTeXe\ (at least the 1994/12/01~release)^^A
%        \footnote{\ctanurl{macros/latex/base}}
%
%        \package{\filename} is a \LaTeXe\ document-class.  So
%        obviously you'll need \LaTeXe\ldots
%      \item \package{graphicx}\footnote{\ctanurl{^^A
%            macros/latex/required/graphics/graphicx.dtx}} (at least
%        1996/08/05 v1.0a)
%
%        The logos are included by using the
%        \cmd{\includegraphics}~command provided by
%        \package{graphicx}.
%      \end{enumerate}
%
%    \item Packages, that are recommended to use with
%      \package{\filename}:
%      \begin{enumerate}
%      \item \package{scrbook} (part of \koma^^A
%        \footnote{\ctanurl{macros/latex/contrib/koma-script} by
%          \person{Frank Neukam} and \person{Markus Kohm}
%          \cite{neukam:scrclass, kohm:komabuch}}, at this time the
%        latest version is 2007/12/24 v2.98)
%
%        This is a replacement for the (standard)
%        \package{book}~document-class and has many enhancements and
%        useful features.
%      \end{enumerate}
%
%    \item Packages, that are supported by \package{\filename}:
%      \begin{enumerate}
%      \item \package{amsbook}\NEWfeature{2003/02/07 v1.1c} (part of
%        \ams-\LaTeX^^A
%        \footnote{\ctanurl{macros/latex/required/amslatex} by the
%          \person{American Mathematical Society}
%          \cite{ams:amsclass, ams:instr}}, at this time the
%        latest version is 2004/08/06 v2.20)
%
%        Like \koma\ this is a replacement for the \package{book}
%        class.  This one follows the style conventions of American
%        Mathematical Society publications.
%      \end{enumerate}
%    \end{enumerate}
%
%    Under normal circumstances you don't have to install any special
%    packages (except \package{\filename} of course: its installation
%    process is described in the next section) since all these should
%    be part of every serious \LaTeX-distribution.  If this is not the
%    case you'll find the most recent versions at \ctan\footnote{^^A
%    Comprehensive \TeX{} Archive Network:
%    \url{http://www.ctan.org/}}.
%  \end{documentation}
%
%  \begin{documentation}{Installation}
%    \changes{v0.3b}{2002/03/31}{new}
%    \changes{v0.3c}{2002/04/01}{extended (PGP)}
%    \changes{v0.4f}{2002/07/05}{extended (\cmd{\usedir})}
%    \changes{v0.5j}{2002/09/21}{extended (config file)}
%    \changes{v0.7b}{2002/11/13}{summary}
%    \changes{v0.8a}{2002/12/16}{changed (LPPL removal)}
%    \changes{v1.2d}{2005/12/20}{added \file{make}-section}
%    \changes{v1.2i}{2006/09/11}{extended}
%    \changes{v1.2j}{2006/10/25}{further extended}
%^^A =================================================================
%^^A   Installation guide
%^^A =================================================================
%    \subsection{Installation}
%    \label{subsec:install}
%
%    The file \describefile{\filename.dtx}\package{\filename.dtx} is
%    an `one-file-contains-it-all'.  It contains (of course) the
%    \file{.cls}-file and its documentation (not to forget a
%    customizable driver for the docu), but also the \file{.ins}-batch
%    file, an example and a `read me'.
%
%    It is recommended to check the integrity of the package before
%    installing.  This is done with
%    \describefile{\filename.dtx.asc}\file{\filename.dtx.asc}, an
%    \mbox{OpenPGP} signature made with \program{GnuPG} and the key
%    \texttt{\fontdimen3\font=.5\fontdimen2\font
%      \fontdimen4\font=.3\fontdimen2\font 1024D/F4D24AC9 2002-04-01
%      Andre Dierker (software distribution key)
%      <software@kand.de>}\footnote{\mbox{BTW}: I'm always looking for
%      people to exchange key-signatures.  Contact me!}.  Verify
%    \file{\filename.dtx.asc} with \program{PGP} or \program{GnuPG}
%    (for \program{GnuPG} this is `\file{gnupg -{}-verify
%      \filename.dtx.asc}') to be sure, you got the complete and
%    unmanipulated distribution.
%
%    \subsubsection{By Hand}
%    \label{subsubsec:byhand}
%
%    To start the installation, run \file{\filename.dtx} through
%    \LaTeX\footnote{It is recommended to use \file{pdflatex} instead
%      of \file{latex}. If you prefer an output in \mbox{DVI}-format
%      you can use `\file{pdflatex -ouput-format DVI}'}.  This will
%    generate the batch file (\file{\filename.ins}) and a
%    \file{README}.  Additionally the documentation
%    (\file{\filename.dvi}) is generated (to get the cross-references
%    right, you have to rerun this twice, however).
%
%    The actual installation is done by running the newly generated
%    \describefile{\filename.ins}\file{\filename.ins} through \LaTeX.
%    This will generate the \file{\filename.cls}~file, an
%    \file{example.tex}, the documentation driver
%    (\file{\filename.drv}) and a sample configuration file
%    (\file{\filename.cfg}).  If you have set
%    \cmd{\BaseDirectory}\footnote{see the documentation of the
%      \program{docstrip}~program: \cite{mittelbach:docstrip}} in your
%    \file{docstrip.cfg}, the document-class \file{\filename.cls} is
%    immediately moved to an appropriate location (e.g.\
%    `\file{\$(TEXMF)/tex/latex/misc/}' with a \tds\footnote{\TeX\
%      Directory Structure, see \cite{twgtds:tds}} compliant \LaTeX\
%    installation).  Otherwise you have to move it yourself into a
%    directory searched by \LaTeX. \emph{If you don't know where this
%      could be simply drop the file into your thesis' directory.}
%
%    Now you could already start since the rest of the installation
%    process is optional.
%
%    Normally (with a \tds\ installation) all configuration
%    (\file{.cfg}) files are collected in
%    `\file{\$(TEXMF)/tex/latex/config/}'.  Since there may be already
%    an older \describefile{\filename.cfg}`\file{\filename.cfg}' that
%    perhaps mustn't be overwritten, you have to move (and merge) the
%    file yourself.
%
%    To finish the installation it is recommended to move
%    \file{\filename.dvi} and \file{example.tex} to where you collect
%    the documentations (with a \tds\ compliant \LaTeX\ installation
%    this would be `\file{\$(TEXMF)/doc/tex/latex/\filename}' for
%    example).
%
%    For a demonstration of the possibilities of \package{\filename}
%    see the \describefile{example.tex}example file and run it through
%    \LaTeX.
%
%    The `\file{pdflatex \filename.dtx}'-run above will---by
%    default---generate the `user' documentation.  If you need the
%    full documentation (with complete listing of the documented
%    source code and/or command index and the change history) you may
%    edit \describefile{\filename.drv}\file{\filename.drv} to meet
%    your needs (never edit \file{\filename.dtx} itself!).  For more
%    information on the enhanced documentation see
%    \file{\filename.drv} or \file{README}.
%
%    So, in short you have to do the following:
%    \begin{enumerate}
%    \item Check the integrity of the package: `\file{gnupg -{}-verify
%        \filename.dtx.asc}'
%    \item Generate the documentation: `\file{pdflatex \filename.dtx}'
%    \item Generate the \file{\filename.cls} file: `\file{pdflatex
%        \filename.ins}'
%    \item Finish the documentation: `\file{pdflatex \filename.dtx}'
%      (two times)
%    \item move \file{\filename.cls} (e.g. to your thesis' directory)
%    \item Optional: move \file{\filename.dvi} and \file{example.tex}
%    \end{enumerate}
%
%    \subsubsection{By \file{make}}
%    \label{subsubsec:bymake}
%
%    Alternatively you can use \file{make} to do the tasks. In this
%     case you have to do the following:
%    \begin{enumerate}
%    \item Check the integrity of the package: `\file{gnupg -{}-verify
%        \filename.dtx.asc}'
%    \item Generate the documentation: `\file{make doc}'
%    \item Generate the \file{\filename.cls} file: `\file{make
%        install}'
%    \item move \file{\filename.cls} (e.g. to your thesis' directory)
%    \item Optional: move \file{\filename.dvi} and \file{example.tex}
%    \end{enumerate}
%
%  \end{documentation}
%
%  \begin{documentation}{Todo}
%    \changes{v0.3e}{2002/04/04}{new one (\emph{baseclass} choose)}
%    \changes{v0.4b}{2002/04/05}{new one (bug fixing)}
%    \changes{v0.4d}{2002/04/07}{removed one (\cmd{\baseclass} stuff)}
%    \changes{v0.4g}{2002/08/11}{new one (enhance to a full
%      thesis-class)}
%    \changes{v0.5e}{2002/08/30}{removed marks stuff and title-enhance
%      stuff}
%    \changes{v0.5j}{2002/09/21}{new one (project groups)}
%    \changes{v0.7d}{2002/11/25}{removed one (\cmd{\fbi@stretchto}
%      stuff)}
%    \changes{v0.7h}{2002/12/12}{removed one (\koma-title)}
%    \changes{v0.7i}{2002/12/14}{new one (alternative layouts)}
%^^A =================================================================
%^^A   What has to be done?
%^^A =================================================================
%    \subsection{To do}
%    \label{subsec:todo}
%
%    At this time the package doesn't offer many features.  I plan to
%    add a few as soon as I have the time to:
%    \begin{enumerate}
%    \item The logos of university and department have changed and need
%      to be updated. If someone can provied files, please mail me.
%    \item Better support for final reports of project groups
%      (Projektgruppen Endberichte)
%    \item Provide some alternative layouts
%    \item Provide a \env{titlepage}-like environment to give the user
%      more flexibility.
%    \item Adopt \package{\filename} to the layout of the research
%      reports, a second series with own cover pages.  (These use
%      \mbox{DIN-A5} instead of \mbox{DIN-A4} as paper format.)
%    \item At this time \package{\filename} affects only the title
%      page and doesn't interfere with the layout of the rest of the
%      document.  Enhance the package to a full `thesis'-class,
%      perhaps by integrating the `\LaTeX-Templates' (see subsection
%      \ref{subsec:other} on page \pageref{subsec:other}f).
%    \item Fix bugs (see subsection \ref{subsec:bugs}), misspellings
%      or whatever.
%    \end{enumerate}
%    If you have any further suggestions for enhancements or
%    corrections feel free to mail me.
%  \end{documentation}
%
%  \begin{documentation}{Bugs}
%    \changes{v0.6c}{2002/10/15}{new}
%^^A =================================================================
%^^A   I'm sorry, but there are known bugs
%^^A =================================================================
%    \subsection{Known Bugs}
%    \label{subsec:bugs}
%
%    Actually I'm aware of one bug:
%    \begin{itemize}
%    \item To provide the \cmd{\thanks}-mechanism I had to redefine
%      \cmd{\footnote}.  At the end of \cmd{\maketitle} the
%      \cmd{\footnote}~command is reset to its original definition.
%      Unfortunately the definition is \emph{not} reset, if there's no
%      \cmd{\maketitle} in your document.  A solution is not known.
%    \end{itemize}
%    If you have a solution to fix the bug or if you find a new one I'd
%    be glad to hear\footnote{mail to
%    \mail[Andre Dierker]{dierker@kand.de}} from you!
%  \end{documentation}
%
%  \begin{documentation}{Thanks}
%    \changes{v0.4f}{2002/07/05}{new}
%    \changes{v1.1i}{2003/06/30}{\person{Klaus} added}
%    \changes{v1.2b}{2005/01/05}{\person{Matthias} added}
%    \changes{v1.2b}{2005/01/05}{QuinScape noted}
%    \changes{v1.2d}{2005/12/20}{added and corrected links}
%    \changes{v1.2e}{2006/01/05}{\person{Roman} and \person{Clemens}
%      added}
%    \changes{v1.2e}{2006/01/05}{\person{Katharina} added}
%    \changes{v1.2f}{2006/04/19}{\person{Hanna} added}
%    \changes{v1.2g}{2006/07/17}{\person{Ralf} added}
%    \changes{v1.2i}{2006/09/11}{\person{Dirk} added}
%    \changes{v1.2l}{2008/07/17}{\person{Noah} added}
%    \changes{v1.2m}{2011/02/06}{\person{Timon} added}
%^^A =================================================================
%^^A   Thanks
%^^A =================================================================
%    \subsection{Thanks}
%    \label{subsec:thanks}
%
%    Thanks go to \person{Stephan Lehmke}, the local \TeX- and
%    \LaTeX-Guru at the University of Dortmund.  He put the idea of
%    writing this package into my mind and helped with many tips and
%    hints.  Furthermore I'd like to thank \person{Klaus Kramer}.  He
%    gave me feedback and pointed me to a bug. Further bugs were found
%    by \person{Matthias Schweinoch} and \person{Ralf Kellermann}.
%
%    \person{Roman Klinger} suggested to make the decoration optional
%    (see the options \Lopt{decor} and \Lopt{nodecor} in section
%    \ref{subsec:options}, \person{Clemens Renner} proposed the
%    inclusion of a declaration in \package{\filename}, while
%    \person{Dirk F{\"{o}}rsterling} gave feedback to the installation
%    routine.
%
%    \person{Timon Kelter} provided information about the renaming of
%    university and department and so triggered a new release.
%
%    Furthermore thanks go to QuinScape^^A
%    \footnote{\url{http://www.QuinScape.de/}}, the company that lets
%    me use my \TeX-Skills to earn a living. They have a great product
%    named DocScape\footnote{\url{http://www.DocScape.de/}}. Do you
%    have a large amount of data, that has to be layouted? Give
%    DocScape\footnote{Contact us: \mail{Norbert.Jesse@QuinScape.de}}
%    a try. It is a solution for data based publishing with a rule
%    based layout. It makes possible a complete automatic but
%    nevertheless extreme flexible layout and produces really high
%    quality output.
%
%    Finally I want to thank the three most important persons in my
%    life: my wife \person{Katharina}, my daughter
%    \person{Hanna} and my son \person{Noah}. I love you.
%  \end{documentation}
%
%^^A =================================================================
%^^A   How to use fbithesis
%^^A =================================================================
%    \section{Usage}
%    \label{sec:usage}
%
%    Now lets come to the interesting stuff.
%
%  \begin{documentation}{Loading}
%    \changes{v0.4d}{2002/04/07}{new (\cmd{\baseclass} stuff)}
%    \changes{v0.5j}{2002/09/21}{merged with Baseclass}
%    \changes{v0.7d}{2002/11/25}{mention default of \cmd{\baseclass}}
%^^A =================================================================
%^^A   Loading and:
%^^A   What the hell is `\baseclass'?
%^^A =================================================================
%    \subsection{The \emph{baseclass} and loading}
%    \label{subsec:load}
%
%    You are free to choose your favorite thesis-document-class as
%    the \emph{baseclass}, since the only part concerned by
%    \package{\filename} is the title page.  \package{\filename}
%    doesn't interfere with the layout of the rest of your
%    document.\footnote{However this may change in the future, see
%    subsection \ref{subsec:todo} on page \pageref{subsec:todo}} By
%    default \package{\filename} will use \package{scrbook} (part of
%    \koma, see \cite{neukam:scrclass}) as \emph{baseclass}.
%
%    You may change the \emph{baseclass} by defining the macro
%    \describemacro{\baseclass}\cmd{\baseclass}.
%    \emph{\textbf{Important:} this has to be done \textbf{before} the
%    \cmd{\documentclass}~command!} (See the example in section
%    \ref{sec:example} on the pages \pageref{sec:example}ff.)  For
%    example if you prefer the standard class
%    \package{book} from \LaTeXe\ simply do:
%\begin{verbatim}
%    \def\baseclass{book}
%\end{verbatim}
%    Afterwards the class is loaded with:
%\begin{verbatim}
%   \documentclass{fbithesis}
%\end{verbatim}
%    You can modify the behaviour of \package{\filename} with options
%    (all available options are described below in subsection
%    \ref{subsec:options}):
%\begin{verbatim}
%   \documentclass[<options>]{fbithesis}
%\end{verbatim}
%
%    You may choose every \LaTeXe-document-class as \emph{baseclass},
%    on condition that it provides a \cmd{\maketitle}~command (and its
%    supportive commands as described in subsection
%    \ref{subsubsec:latex} on page \pageref{subsubsec:latex}) and
%    supports a title page.  For example
%    with \package{article} from \LaTeXe\ you have to use its
%    \describeoption{titlepage}\Lopt{titlepage}~option, since
%    \package{article} doesn't generate an explicit title page by
%    default.
%  \end{documentation}
%
%  \begin{documentation}{Options}
%    \changes{v0.4d}{2002/04/07}{extended (\cmd{\baseclass} stuff)}
%    \changes{v0.5j}{2002/09/21}{updated (marks stuff)}
%    \changes{v0.6a}{2002/09/23}{updated (internationalization)}
%    \changes{v1.1i}{2003/06/30}{\Lopt{ngerman} and \Lopt{american}}
%    \changes{v1.2i}{2006/09/04}{\Lopt{decor} added}
%    \changes{v1.2i}{2006/09/10}{structure changed}
%    \changes{v1.2i}{2006/09/10}{\Lopt{a4paper} added}
%    \changes{v1.2i}{2006/09/16}{\Lopt{declaration} added}
%^^A =================================================================
%^^A   Available Options
%^^A =================================================================
%    \subsection{Options}
%    \label{subsec:options}
%
%    There are several class options available with
%    \package{\filename}. Most of the following options are mutual
%    exclusive. (For example \Lopt{draft} and \Lopt{final};
%    \Lopt{german}/\Lopt{ngerman} and \Lopt{english} /
%    \Lopt{american} and others.) If you do specify two opposing
%    options like in this example
%\begin{verbatim}
%    \documentclass[draft,final]{fbithesis}
%\end{verbatim}
%    the last one (in this case \Lopt{final}) `wins'. 
%    \NEWdescription{2003/06/30 v1.1i}However both global options are
%    passed to the packages.  So in this example
%\begin{verbatim}
%    \documentclass[english,american]{fbithesis}
%\end{verbatim}
%    \Lopt{english} will be a kind of fallback if a package doesn't 
%    implement the option \Lopt{american}.
%
%    \subsubsection{\Lopt{draft}/\Lopt{final}}
%
%    The first two options switch between the
%    \describeoption{draft}\Lopt{draft} and
%    \describeoption{final}\Lopt{final}~mode.  The \Lopt{draft}~mode
%    adds some marks to the title page to help with the positioning of
%    the page (see section \ref{sec:custom} on page
%    \pageref{sec:custom}).
%  \end{documentation}
%\begin{verbatim}
%    \documentclass[draft]{fbithesis}
%\end{verbatim}
%    In the \Lopt{final}~mode of course no marks are shown.
%\begin{verbatim}
%    \documentclass[final]{fbithesis}
%\end{verbatim}
%
%    \subsubsection{Language options}
%    \label{subsubsec:language}
%
%    The second bunch of options switches the language.  As you can see
%    below (in subsection \ref{subsubsec:fbithesis} on page
%    \pageref{subsubsec:fbithesis}) the supervisors
%    of the thesis can be added to the title page by using the macro
%    \cmd{\supervisors}.  These are captioned by `Gutachter:' with the
%    \describeoption{german}\Lopt{german}~option.
%\begin{verbatim}
%    \documentclass[german]{fbithesis}
%\end{verbatim}
%    If you want to do your thesis in English, the `Gutachter:' would
%    spoil the effect. It is replaced by `Supervisors:' with the
%    \describeoption{english}\Lopt{english}~option.
%\begin{verbatim}
%    \documentclass[english]{fbithesis}
%\end{verbatim}
%
%    \NEWfeature{2003/06/30 v1.1i}There are two more class options:
%    \describeoption{ngerman}\Lopt{ngerman} and
%    \describeoption{american}\Lopt{american}.  These are just
%    synonyms for \describeoption{german}\Lopt{german} and
%    \describeoption{english}\Lopt{english}.  Since class (or global)
%    options are passed to the imported styles (by \cmd{\usepackage})
%    the synonyms can make things easier: you don't have to specify
%    the optional argument with language-specific packages.  So you
%    can write
%\begin{verbatim}
%    \documentclass[ngerman]{fbithesis}
%    \usepackages{babel}
%\end{verbatim}
%    instead of
%\begin{verbatim}
%    \documentclass[german]{fbithesis}
%    \usepackages[ngerman]{babel}
%\end{verbatim}
%    The language \describeoption{ngerman}\Lopt{ngerman} is the
%    default choice.
%
%    \subsubsection{\Lopt{decor}/\Lopt{nodecor}}
%    \label{subsubsec:decor}
%
%    \begin{figure}
%      \centering
%      \setlength{\unitlength}{0.25cm}
%      \begin{picture}(21,29.7)
%        \thicklines
%        \put(0,0){\framebox(21,29.7){\mbox{}}}
%        \thinlines
%        \put(18.4,25.6){\framebox(2,1.5){\mbox{}}}
%        \put(7.5,23){\makebox(0,0)[c]{\tiny Your Name}}
%        \put(7.5,20){\makebox(0,0)[c]{\scriptsize The Title}}
%        \put(7.5,16.5){\makebox(0,0)[b]{\tiny Date}}
%        \put(13,15.4){\framebox(7.4,9.1){\mbox{}}}
%        \put(16.7,21){\makebox(0,0)[b]{\tiny\ttfamily additional}}
%        \put(16.7,20){\makebox(0,0)[b]{\tiny\ttfamily optional}}
%        \put(16.7,19){\makebox(0,0)[b]{\tiny\ttfamily logo}}
%        \put(19.4,26){\makebox(0,0)[b]{\tiny\ttfamily logo}}
%        \put(2.9,9.5){\makebox(0,0)[lb]{\tiny Address}}
%        \put(2.9,9){\makebox(0,0)[lb]{\tiny of Chair}}
%        \put(2.9,7.5){\makebox(0,0)[lb]{\tiny Supervisors}}
%        \put(16.4,7){\framebox(4,3){\mbox{}}}
%        \put(18.4,8){\makebox(0,0)[b]{\tiny\ttfamily chair logo}}
%      \end{picture}
%      ^^A
%      \caption{The title page as generated by \package{\filename} with
%        option \Lopt{nodecor}. To compare with the repeated
%        decoration please refer to figure \ref{fig:fbititle} on page
%        \pageref{fig:fbititle}}
%      ^^A
%      \label{fig:nodecor}
%    \end{figure}
%    \NEWfeature{2005/12/22 v1.2d}The options
%    \describeoption{decor}\Lopt{decor} and
%    \describeoption{nodecor}\Lopt{nodecor} control the decoration on
%    the title page. As already said in section \ref{sec:intro} it is
%    possible to repeat the decoration of the cardboard on the
%    title page. To do this, all you have to do is:
%\begin{verbatim}
%    \documentclass[decor]{fbithesis}
%\end{verbatim}
%    (which is the default behaviour). If you don't want the
%    decoration (as shown in figure \ref{fig:nodecor}) you can use
%\begin{verbatim}
%    \doucmentclass[nodecor]{fbithesis}
%\end{verbatim}
%
%    \subsubsection{\Lopt{declaration}/\Lopt{nodeclaration}}
%    \label{subsubsec:declaration}
%
%    If you do a diploma thesis you'll have to give a declaration that
%    you have written everything by yourself. By the
%    \NEWfeature{2006/01/18 v1.2e} options
%    \describeoption{declaration}\Lopt{declaration} and
%    \describeoption{nodeclaration}\Lopt{nodeclaration} you are able
%    to include this declaration into your thesis:
%\begin{verbatim}
%    \documentclass[declaration]{fbithesis}
%\end{verbatim}
%    This inserts a new page with a form of the declaration. Since the
%    text is taken from the Diplompr{\"{u}}fungsordnung it should be
%    sufficient for the deans office. You only have to sign it.
%
%    As you might have guessed
%\begin{verbatim}
%    \documentclass[nodeclaration]{fbithesis}
%\end{verbatim}
%    will suppress the declaration. This is the default behaviour.
%
%    \subsubsection{Paper options}
%    \label{subsubsec:paper}
%
%    \NEWfeature{2003/10/08 v1.1n}The position of the various elements
%    on the title page is implemented in the class option
%    \Lopt{a4paper}. There is no need for a alternative \Lopt{letter}
%    because the cardboard is only offered in the paper format
%    \mbox{DIN-A4} (and \mbox{DIN-A5} but that is a topic for further
%    development. See section \ref{subsec:todo} on page
%    \pageref{subsec:todo}). Since there is no other paper format
%    implemented at the time, the option \Lopt{a4paper} is the default
%    behaviour.
%
%    \subsubsection{Options of the \emph{baseclass}}
%    \label{subsubsec:baseoptions}
%
%    Furthermore you may choose every option provided by the
%    \emph{baseclass} (see subsection \ref{subsec:load} on page
%    \pageref{subsec:load}), since all
%    other options are forwarded to it.  For example with the default
%    \emph{baseclass} \package{scrbook}\footnote{\package{scrbook} is
%    part of \koma\ by \person{Frank Neukam} and \person{Markus Kohm}}
%    you may want something like this:
%\begin{verbatim}
%    \documentclass[10pt, a4paper, BCOR12mm, headsepline]{fbithesis}
%\end{verbatim}
%    For a description of possible options of your chosen
%    \emph{baseclass} look at the corresponding documentation.  The
%    \package{scrbook}-options used above for example are described in
%    \cite{neukam:scrclass, kohm:komabuch}.
%
%  \begin{documentation}{Commands}
%    \changes{v0.3b}{2002/03/31}{enhanced}
%    \changes{v0.5j}{2002/09/21}{enhanced (title-enhance stuff)}
%    \changes{v0.6d}{2002/10/19}{enhanced (\cmd{\date}- and
%      \cmd{\thesislogo}-stuff)}
%    \changes{v0.7e}{2002/11/26}{\koma-stuff}
%    \changes{v0.7g}{2002/11/29}{divided in subsubsections, added
%      description of \koma-commands}
%    \changes{v1.1c}{2003/02/07}{\ams-stuff}
%^^A =================================================================
%^^A   Description of the provided commands
%^^A =================================================================
%    \subsection{Commands}
%    \label{subsec:commands}
%
%    \subsubsection{\LaTeX-Commands}
%    \label{subsubsec:latex}
%
%    As in the standard \LaTeXe\ classes the user defines the title
%    and author by the declarations\footnote{For a more detailed view
%    on these macros please look at \cite{ltx2e:ltsect}.}
%    \describemacro{\title}\cmd{\title}\marg{name} and
%    \describemacro{\author}\cmd{\author}\marg{name}. As in the
%    standard \LaTeXe\ classes multiple authors have to be separated
%    with \cmd{\and}. In general master/phd-theses won't have more
%    than one author, but just in case (and because it will be needed
%    for research reports, see subsection \ref{subsec:todo} on page
%    \pageref{subsec:todo}) the
%    \describemacro{\and}\cmd{\and}~command is also provided.
%
%    The \cmd{\date}~command differs from the definition in the
%    \LaTeX-Kernel.  In the standard \LaTeXe\ classes the command is
%    used to specify the date of the document: \cmd{\date}\marg{date}. 
%    In \package{\filename} the macro is enhanced by an optional
%    argument to specify the period of the thesis:
%    \describemacro{\date}\cmd{\date}\oarg{begin date}\marg{end date}. 
%    If you leave out the optional argument only the end date is set,
%    if you leave out the whole \cmd{\date}~command,
%    \cmd{\date}\{\cmd{\today}\} is assumed by default.
%
%    As in the standard classes the title is set by using the
%    \describemacro{\maketitle}\cmd{\maketitle}\footnote{See
%    \cite{lamport:classes} for the original definition}~command.
%    This is redefined in this package to match the cardboard cover
%    page of the Department of Computer Science at the TU Dortmund.
%
%    If you really want to make acknowledgements on the title page you
%    may use
%    \describemacro{\thanks}\cmd{\thanks}\marg{text}\label{cmd:thanks}.
%    The text would be set as a footnote at the bottom of the
%    cardboard window.  In my opinion this does not look well and I
%    recommend not to use \cmd{\thanks}.  The correct place for
%    eMail-addresses, acknowledgements, dedications and such things is
%    a preface or---if you use \package{scrbook} or \package{scrreprt}
%    as the \emph{baseclass}---the enhanced title of \koma\ (see
%    subsection \ref{subsubsec:koma} and \cite{neukam:scrclass,
%      kohm:komabuch})
%
%    The \describemacro{\title}\cmd{\title} and
%    \describemacro{\author}\cmd{\author} commands are mandatory: You
%    have to define them if you want \package{\filename} to do its
%    job.  All other commands are optional.  So the only thing you
%    have to do to use this package is to choose your favorite
%    \emph{baseclass} (see subsection \ref{subsec:load} on page
%    \pageref{subsec:load}), load
%    \package{\filename} and provide the information you would like to
%    have on the title page.
%
%    \subsubsection{\package{\filename}-Commands}
%    \label{subsubsec:fbithesis}
%
%    The commands above are all provided by the standard \LaTeX\
%    classes.  In \package{\filename} there are a few more commands to
%    provide additional information.
%
%    By the command \describemacro{\subject}\cmd{\subject}\marg{sub}
%    you may provide the `type' of the thesis (like `Diplomarbeit', or
%    `Dissertation').  As the \LaTeX-commands above (see subsection
%    \ref{subsubsec:latex}) \cmd{\subject}, too, affects the look
%    in the window of the cardboard.  The content of the following
%    commands is placed in other areas of the title page and isn't
%    visible through the window.
%
%    By using the command
%    \describemacro{\unidologo}\cmd{\unidologo}\marg{filename} you may
%    include the logo of the TU Dortmund to the title page.
%    `\meta{filename}' should be a graphics file (e.g.\
%    \mbox{PDF}). Additionally it is possible to add the logo of the
%    chair to the title page.  This is done by
%    \describemacro{\chairlogo}\cmd{\chairlogo}\marg{filename}.
%
%    If you have a thesis-specific logo, it can be placed on the
%    title page by using
%    \describemacro{\thesislogo}\cmd{\thesislogo}\marg{filename}.  The
%    logo is set next to the window of the cardboard (see figure
%    \ref{fig:fbititle} on page \pageref{fig:fbititle}).
%
%    Some folks want the names of the chair, the department and the
%    university to appear on the title page.  This can be done by
%    \describemacro{\chair}\cmd{\chair}\marg{information}.  The
%    argument \meta{information} may consist of lines separated by
%    `|\\|'.
%
%    The supervisors of the thesis may be provided by
%    \describemacro{\supervisors}\cmd{\supervisors}\marg{first
%    supervisor}\marg{second supervisor}.
%
%    \emph{Please note:} Due to aesthetic reasons it is recommended
%    to use \cmd{\chair}, \cmd{\chairlogo} and \cmd{\supervisors} only
%    in combination: either all or none.
%
%    \subsubsection{\koma-Commands}
%    \label{subsubsec:koma}
%
%    \package{\filename} supports parts of the enhanced title of
%    \describefile{\koma}\koma.  So if you use \package{scrbook} or
%    \package{scrreprt} you may use the following \koma-commands.  For
%    more information on these three macros see \cite[section
%    3.3]{kohm:komabuch}.
%
%    If you print your document two sided, the back of the title page
%    normally is left empty.  You can use the commands
%    \describemacro{\uppertitleback}\cmd{\uppertitleback}\marg{text}
%    and
%    \describemacro{\lowertitleback}\cmd{\lowertitleback}\marg{text}
%    to place additional information there.
%
%    \koma\ provides a special dedication page.  If you want to
%    dedicate your thesis to someone, use
%    \describemacro{\dedication}\cmd{\dedication}\marg{text}.
%
%    There are some more \koma-commands affecting the title.  Theses
%    are ignored by \package{\filename} since they are useless in our
%    case: \cmd{\extratitle} is not necessary since the cardboard
%    cover serves exactly the purpose of the cover page
%    \cmd{\extratitle} would produce.  \cmd{\titlehead} would mess up
%    the layout of the title page and \cmd{\publishers} is nonsense
%    since no thesis has got a publisher.
%
%    \subsubsection{\ams-Commands}
%    \label{subsubsec:ams}
%
%    \NEWfeature{2003/02/07 v1.1c}\package{\filename} also
%    supports \package{amsbook} as baseclass.  However the
%    \describefile{\ams}\ams-classes use a different macro for the
%    dedication than \koma.  So if you choose \package{amsbook} as
%    baseclass you may use the command
%    \describemacro{\dedicatory}\cmd{\dedicatory}\marg{text}.  For
%    more information on this macro see \cite[chapter
%    3]{ams:instr}.
%
%    There are some more \ams-commands affecting the title.  Theses
%    are ignored by \package{\filename} since they are useless in our
%    case: \cmd{\subjclass}, \cmd{\keywords} and \cmd{\translators}
%    are nonsense since no thesis is specified by the
%    \ams-classification or is translated.  The other \ams-commands
%    (like \cmd{\address}, \cmd{\curraddr}, \cmd{\urladdr},
%    \cmd{\email}) are used to provide additional information to
%    contact the author(s).  It is unusual to provide this information
%    on the title page of a thesis.  You may include it into your
%    preface however.
%  \end{documentation}
%
%  \begin{documentation}{Customization}
%    \changes{v0.4b}{2002/04/05}{\file{fbithesis.cfg}}
%    \changes{v0.5k}{2002/09/22}{manually}
%    \changes{v0.8e}{2003/01/01}{invariant positioning}
%    \changes{v0.8f}{2003/01/03}{inverted sense of direction}
%^^A =================================================================
%^^A   How to customize fbithesis
%^^A =================================================================
%    \section{Customization}
%    \label{sec:custom}
%
%    The horizontal and vertical placement of the writable area on
%    the paper depends on many factors like page size and layout,
%    printer margins or corrections done by the device driver.  Some
%    of these (like page layout) can be directly controlled by \TeX,
%    others (like page size) can be taken into account.  Unfortunately
%    there may still be some factors that cannot be influenced by this
%    package, so a correct adjustment cannot be done completely
%    automatically.  A correct adjustment on the other hand is very
%    important to center the title in the window in the cardboard
%    cover.
%
%    \package{\filename} provides a ``pretty good guess'' concerning
%    the placement of the title page, however a correct adjustment
%    cannot be guaranteed.  In fact the ``guess'' is much better than
%    only ``pretty good'': in the case of a mismatch you are strongly
%    recommended to check the positioning of your printer.  Please run
%    `\file{latex testpage.tex}', print a copy, check the result and
%    correct the positioning.  However if this does not help please
%    send a bug report to the author\footnote{mail to \mail[Andre
%    Dierker]{dierker@kand.de}}.  For the meantime
%    \package{\filename} provides a stopgap solution.  Positive values
%    for \describemacro{\titlevadjust}\cmd{\titlevadjust}\marg{length}
%    move the page up, negative values down.  Similar with
%    \describemacro{\titlehadjust}\cmd{\titlehadjust}\marg{length}:
%    positive values move the page to the left, negative to the right.
%  \end{documentation}
%
%  \begin{documentation}{Configuration}
%    \changes{v0.5b}{2002/08/15}{new}
%    \changes{v0.5j}{2002/09/21}{added code for config file}
%    \changes{v1.2m}{2011/02/06}{renaming of unidologo}
%^^A =================================================================
%^^A   Example for a site-wide fbithesis.cfg-file
%^^A =================================================================
%    \subsection{Configuration file}
%    \label{subsec:config}
%
%    You may use a site-wide configuration file
%    \describefile{\filename.cfg}\file{\filename.cfg} to set some
%    defaults.  This configuration file---placed somewhere \LaTeX\ is
%    able to find it---will be read whenever the
%    \package{\filename}~class is used. Of course you may overwrite
%    these local defaults by placing concurrent definitions in your
%    source file.
%
%    To generate the following sample configuration file, run
%    \file{\filename.ins} through \LaTeX. On a \tds\ compliant \LaTeX\
%    installation the configuration files are normally collected in
%    `\file{\$(TEXMF)/doc/tex/latex/config/}'.  However because there
%    may already be an older configuration file `\file{\filename.cfg}'
%    you have to move (and merge) it yourself.
%
%    \begin{macrocode}
%<*config>
%    \end{macrocode}

%    If the graphics-files containing the logos are installed
%    centrally, it may be useful to define the commands
%    \describemacro{\unidologo}\cmd{\unidologo} and
%    \describemacro{\chairlogo}\cmd{\chairlogo} site-wide.
%    (Conforming to \cite{carlisle:graphics} you may want to skip
%    the extensions of the filenames.)
%  \iffalse
%% If the graphic-files containing the logos are installed centrally,
%% it may be useful to define the following commands site-wide.
%% You may safely skip the extensions of the filenames.
%  \fi
%    \begin{macrocode}
 % \unidologo{tulogo}
 % \chairlogo{ls9logo}
%    \end{macrocode}

%    The same with \describemacro{\chair}\cmd{\chair}:
%  \iffalse
%% The same with `\chair':
%  \fi
%    \begin{macrocode}
 % \chair{Chair IX (Virtual Research)\\
 %   Department of Computer Science\\
 %   TU Dortmund}
%    \end{macrocode}

%    \begin{macrocode}
%</config>
%    \end{macrocode}
%  \end{documentation}
%
%  \begin{documentation}{Example}
%    \changes{v0.3d}{2002/04/03}{class changes}
%    \changes{v0.3e}{2002/04/04}{simplified}
%    \changes{v0.5a}{2002/08/14}{added \cmd{\thesisstyle},
%      \cmd{\unidologo} and \cmd{\chairlogo} (title-enhance stuff)}
%    \changes{v0.5b}{2002/08/15}{added \cmd{\chair} and
%      \cmd{\supervisors} (title-enhance stuff)}
%    \changes{v0.5d}{2002/08/29}{minor changes}
%    \changes{v0.5j}{2002/09/21}{added docu}
%    \changes{v0.6b}{2002/09/25}{Logos}
%    \changes{v0.6d}{2002/10/19}{\cmd{\thesislogo}- and
%      \cmd{\date}-stuff}
%    \changes{v0.7h}{2002/12/12}{Logos with DSC-comments}
%    \changes{v0.8e}{2003/01/01}{rely on automatic positioning}
%    \changes{v1.2e}{2006/01/03}{PDF-Versions of the logos}
%    \changes{v1.2j}{2006/10/17}{Commented example}
%    \changes{v1.2j}{2006/10/20}{more comments}
%    \changes{v1.2m}{2011/02/06}{renaming of uni and fbi}
%    \changes{v1.2n}{2011/02/07}{removed EPS-Versions of the logos}
%^^A =================================================================
%^^A   The glorious example! (well, sort of...)
%^^A =================================================================
%    \section{Example}
%    \label{sec:example}
%
%    Here is a little \describefile{example.tex}example file.  To
%    generate it, run \file{\filename.ins} through \LaTeX. First we
%    use the \env{filecontents*}~environment to provide the
%    \mbox{PostScript}-Code of three dummy logos used by the example. 
%    The original logos should be available at your chair, contact
%    your supervisor or system administrator.
%
%    \begin{macrocode}
%<*example>
%    \end{macrocode}
%    At first we include an auxiliary file that contains the logos. You
%    can ignore this line since it is only necessary in this example.
%  \iffalse
%    \begin{macrocode}
 %
 %
 %
 % At first we include an auxiliary file that contains the logos. You
 % may ignore this line. It is only necessary for this example.
%    \end{macrocode}
%  \fi
%    \begin{macrocode}
\include{exampleaux}
%    \end{macrocode}
%    fbithesis supports three classes as `baseclass'. To use `book' or
%    `amsbook' you have to use one of the following lines. To use
%    `scrbook' from KOMA-Script as baseclass you have to do nothing
%    since this is the default. If you don't know what I'm talking
%    about just leave these lines as they are. Almost everyone uses
%    `scrbook' as baseclass. It is a wise decision.
%  \iffalse
%    \begin{macrocode}
 %
 % fbithesis supports three classes as `baseclass'. To use `book' or
 % `amsbook' you have to use one of the following lines. To use
 % `scrbook' from KOMA-Script as baseclass you have to do nothing since
 % this is the default. If you don't know what I'm talking about just
 % leave these lines as they are. Almost everyone uses `scrbook' as
 % baseclass. It is a wise decision.
 %
%    \end{macrocode}
%  \fi
%    \begin{macrocode}
 %           \def\baseclass{book}
 %           \def\baseclass{amsbook}
%    \end{macrocode}
%
%    Of course we choose \package{\filename} as document class. 
%    Additionally we want to look at the
%    \describeoption{draft}\Lopt{draft}~mode and test the option
%    forwarding of \describeoption{a4paper}\Lopt{a4paper} to the
%    \emph{baseclass}.  Since the example is in English, we also
%    choose \describeoption{english}\Lopt{english}.
%    \changes{v0.4c}{2002/04/06}{Example: set option \Lopt{draft}}
%    \changes{v0.8f}{2003/01/03}{Example: set option \Lopt{english}}
%  \iffalse
%    \begin{macrocode}
 %
 % Of course we choose fbithesis as document class.  Additionally we
 % want to look at the draft mode and test the option forwarding of
 % a4paper to the baseclass.  Since the example is in English, we also
 % choose english.
%    \end{macrocode}
%  \fi
%    \begin{macrocode}
\documentclass[a4paper, english]{fbithesis}
%    \end{macrocode}
%
%    We begin our document:
%    \begin{macrocode}
\begin{document}
  \frontmatter
%    \end{macrocode}
%
%    As in the standard \LaTeX\ classes we use the
%    \describemacro{\title}\cmd{\title}~command.  Normally one can
%    trust \TeX's ability to compute a satisfactory line breaking. 
%    However \TeX's algorithm is not optimized for titles but for
%    continuous text.  To make it more difficult the cardboard window
%    is quite small.  So if you prefer a different make up, help
%    yourself with an appropriate placed `|\\|', as you can see in
%    this example.
%  \iffalse
%    \begin{macrocode}
 %
 % As in the standard LaTeX classes we use the title command.  Normally
 % one can trust TeX's ability to compute a satisfactory line breaking.
 % However TeX's algorithm is not optimized for titles but for
 % continuous text.  To make it more difficult the cardboard window is
 % quite small.  So if you prefer a different make up, help yourself
 % with an appropriate placed `\\', as you can see in this example.
%    \end{macrocode}
%  \fi
%    \begin{macrocode}
  \title{Example file for the\\ \texttt{fbithesis} package%
%    \end{macrocode}
%
%    The \describemacro{\thanks}\cmd{\thanks}~command is used to provide
%    further information\footnote{You can safely ignore the
%      \cmd{\fileversion} and \cmd{\filedate}~commands.  They are only
%      helping me creating a consistent distribution of this
%      package.}.  As you can see the result of the
%    \cmd{\thanks}~mechanism does not look well.  Therefore I do not
%    recommend the usage.  It is better to write a preface instead.
%  \iffalse
%    \begin{macrocode}
 %
 % The `\thanks' command may be used to provide further
 % information. But as you can see the result of the `\thanks'
 % mechanism does not look well. Therefore I do not recommend the
 % usage. It is better to write a preface instead.
%    \end{macrocode}
%  \fi
%    \begin{macrocode}
    \thanks{The \texttt{fbithesis}~package has version number
      \fileversion.  It was last revised on \filedate.}%
  }
%    \end{macrocode}
%
%    The usage of the \describemacro{\author}\cmd{\author}~command: In
%    general master/phd-theses will have only one author, but just in
%    case the \describemacro{\and}\cmd{\and}-command is also provided.
%  \iffalse
%    \begin{macrocode}
 %
 % The usage of the \author command: In general master/phd-theses will
 % have only one author, but just in case the \and-command is also
 % provided.
%    \end{macrocode}
%  \fi
%    \begin{macrocode}
  \author{Andre Dierker%
%    \end{macrocode}
%    The use of the command \cmd{\thanks} is not recommended (see page
%    \pageref{cmd:thanks}).
%  \iffalse
%    \begin{macrocode}
 %
 % Again the use of the command `\thanks' is possible but not
 % recommmended. Please refer to the documentation.
%    \end{macrocode}
%  \fi
%    \begin{macrocode}
 %  \thanks{\texttt{software@kand.de}}%
%    \end{macrocode}
%    Perhaps there ist a second author:
%    \begin{macrocode}
  \and Nobody Else%
%    \end{macrocode}
%    Again the use of \cmd{thanks} is not recommended.
%    \begin{macrocode}
  %  \thanks{\texttt{no@body.el.se}}%
  }
%    \end{macrocode}
%    Normally the \describemacro{\subject}subject would be something
%    like `Diplomarbeit' or `Dissertation'\ldots
%  \iffalse
%    \begin{macrocode}
 %
 % Normally the subject would be something like `Diplomarbeit' or
 % `Dissertation' ...
%    \end{macrocode}
%  \fi
%    \begin{macrocode}
  \subject{Example}
%    \end{macrocode}
%    You may give the \describemacro{\date}beginning and the deadline
%    of your thesis here.
%  \iffalse
%    \begin{macrocode}
 %
 % You may give the beginning and the deadline of your thesis here.
%    \end{macrocode}
%  \fi
%    \begin{macrocode}
  \date[Created April 3, 2002]{Printed \today}
%    \end{macrocode}
%    Providing the \describemacro{\supervisors}supervisors of the
%    thesis.
%  \iffalse
%    \begin{macrocode}
 %
 % Providing the supervisors of the thesis.
%    \end{macrocode}
%  \fi
%    \begin{macrocode}
  \supervisors{First Tutor}{Second Tutor}
%    \end{macrocode}
%
%    If there is a site-wide configuration file (see subsection
%    \ref{subsec:config}) the commands
%    \describemacro{\unidologo}\cmd{\unidologo} and
%    \describemacro{\chairlogo}\cmd{\chairlogo} may already be
%    defined.  You may override them locally. Conforming to
%    \cite{carlisle:graphics} we skip the extensions of the
%    filenames. Due to this \TeX\ is able to include the correct
%    version of the file (EPS or PDF)
%  \iffalse
%    \begin{macrocode}
 %
 % You may use the following commands if you want to place a logos on
 % the title page.  Conforming to Carlisle: Packages in the `graphics'
 % bundle we skip the extensions of the filenames. Due to this TeX is
 % able to include the correct version of the file (EPS or PDF)
%    \end{macrocode}
%  \fi
%    \begin{macrocode}
  \unidologo{tulogo}
  \chairlogo{ls9logo}
%    \end{macrocode}
%    You may use the command
%    \describemacro{\thesislogo}\cmd{\thesislogo} if you want to place
%    a thesis-specific logo on the title page.
%    \begin{macrocode}
  \thesislogo{thesislogo}
%    \end{macrocode}
%    The \describemacro{\chair}\cmd{\chair}~command is the other
%    candidate for a site-wide configuration file.  This, too, can be
%    overwritten.
%  \iffalse
%    \begin{macrocode}
 %
 % The chair you are writing your thesis at.
%    \end{macrocode}
%  \fi
%    \begin{macrocode}
  \chair{Chair IX (Virtual Research)\\
    Department of Computer Science\\
    TU Dortmund}
%    \end{macrocode}
%
%    The data provided by the above macros is now used to set the
%    title page.  This is done with the macro
%    \describemacro{\maketitle}\cmd{\maketitle}
%  \iffalse
%    \begin{macrocode}
 %
 % The data provided by the above macros is now used to set the title page.
 % This is done with the macro \maketitle.
%    \end{macrocode}
%  \fi
%    \begin{macrocode}
  \maketitle
%    \end{macrocode}
%    So after the title page is set your thesis may begin:
%  \iffalse
%    \begin{macrocode}
 %
 % So after the title page is set your thesis may begin:
%    \end{macrocode}
%  \fi
%    \begin{macrocode}
  \mainmatter
%    \end{macrocode}
%    \ldots\\^^A
%    \ldots\space{\tiny(Sorry, but I won't write your thesis.  I've
%      had trouble enough with my own one\ldots\winkey)}\\^^A
%    \ldots
%    \begin{macrocode}
  Now here comes your text.
%    \end{macrocode}
%
%    Now our minimal document is ready.
%    \begin{macrocode}
\end{document}
%</example>
%    \end{macrocode}
%
%    Have fun using \package{\filename}.
%
%^^A =================================================================
%^^A   Auxiliary file for the example that contains the logos
%^^A =================================================================
%    \subsection{Logos}
%    \label{subsec:examplelogos}
%
%    Here is a auxiliary \describefile{exampleaux.tex} file that its
%    used by the example. It contains the logos. We use the
%    \env{filecontents*}~environment to provide the \mbox{PostScript}-
%    and \mbox{PDF}-Code of three dummy logos used by the example.
%    The original logos should be available at your chair, contact
%    your supervisor or system administrator.
%
%    \begin{macrocode}
%<*exampleaux>
\begin{filecontents*}{tulogo.pdf}
%    \end{macrocode}
%\begin{small}\begin{verbatim}
%    (Here comes some PDF-code for a provisional logo of the university.)
%\end{verbatim}\end{small}
%  \iffalse
%PDF-1.3
7 0 obj
<</Length 8 0 R>>
stream
0.1 0 0 0.1 0 0 cm
q
q 10 0 0 10 0 0 cm BT
/R5 50 Tf
1 0 0 1 0 33 Tm
(TU)Tj
/R5 35 Tf
0 -25 Td
(Logo)Tj
ET Q
Q
endstream
endobj
8 0 obj
112
endobj
9 0 obj
<</R5
5 0 R>>
endobj
6 0 obj
<</Type/Page/MediaBox [0 0 75 68]
/Parent 3 0 R
/Resources<</ProcSet[/PDF /Text]
/Font 9 0 R
>>
/Contents 7 0 R
>>
endobj
3 0 obj
<< /Type /Pages /Kids [
6 0 R
] /Count 1
>>
endobj
1 0 obj
<</Type /Catalog /Pages 3 0 R
>>
endobj
5 0 obj
<</Subtype/Type1/BaseFont/Times-Roman/Type/Font/Name/R5>>
endobj
4 0 obj
<</Type/FontDescriptor/FontName/Times-Roman>>
endobj
2 0 obj
<</Producer (Aladdin Ghostscript 6.01)
>>endobj
xref
0 10
0000000000 65535 f 
0000000414 00000 n 
0000000596 00000 n 
0000000355 00000 n 
0000000535 00000 n 
0000000462 00000 n 
0000000225 00000 n 
0000000015 00000 n 
0000000177 00000 n 
0000000196 00000 n 
trailer
<< /Size 10 /Root 1 0 R /Info 2 0 R
>>
startxref
652
%%EOF
%  \fi
%    \begin{macrocode}
\end{filecontents*}
%    \end{macrocode}
%    \begin{macrocode}
\begin{filecontents*}{ls9logo.pdf}
%    \end{macrocode}
%\begin{small}\begin{verbatim}
%    (Some more PDF-code for an exemplary logo of a hypothetical chair.)
%\end{verbatim}\end{small}
%  \iffalse
%PDF-1.3
7 0 obj
<</Length 8 0 R>>
stream
0.1 0 0 0.1 0 0 cm
q
q 10 0 0 10 0 0 cm BT
/R5 100 Tf
1 0 0 1 0 2 Tm
(L9)Tj
/R5 65 Tf
28 21 Td
(S)Tj
ET Q
Q
endstream
endobj
8 0 obj
108
endobj
9 0 obj
<</R5
5 0 R>>
endobj
6 0 obj
<</Type/Page/MediaBox [0 0 107 70]
/Parent 3 0 R
/Resources<</ProcSet[/PDF /Text]
/Font 9 0 R
>>
/Contents 7 0 R
>>
endobj
3 0 obj
<< /Type /Pages /Kids [
6 0 R
] /Count 1
>>
endobj
1 0 obj
<</Type /Catalog /Pages 3 0 R
>>
endobj
5 0 obj
<</Subtype/Type1/BaseFont/Times-Roman/Type/Font/Name/R5>>
endobj
4 0 obj
<</Type/FontDescriptor/FontName/Times-Roman>>
endobj
2 0 obj
<</Producer (Aladdin Ghostscript 6.01)
>>endobj
xref
0 10
0000000000 65535 f 
0000000411 00000 n 
0000000593 00000 n 
0000000352 00000 n 
0000000532 00000 n 
0000000459 00000 n 
0000000221 00000 n 
0000000015 00000 n 
0000000173 00000 n 
0000000192 00000 n 
trailer
<< /Size 10 /Root 1 0 R /Info 2 0 R
>>
startxref
649
%%EOF
%  \fi
%    \begin{macrocode}
\end{filecontents*}
%    \end{macrocode}
%    \begin{macrocode}
\begin{filecontents*}{thesislogo.eps}
%    \end{macrocode}
%\begin{small}\begin{verbatim}
%    (Even more PDF-code for a dummy thesis-specific logo.)
%\end{verbatim}\end{small}
%  \iffalse
%PDF-1.3
7 0 obj
<</Length 8 0 R>>
stream
0.1 0 0 0.1 0 0 cm
q
q 10 0 0 10 0 0 cm BT
/R5 58 Tf
1 0 0 1 0 28 Tm
(FBI)Tj
/R5 35 Tf
0 -27 Td
(Thesis)Tj
ET Q
Q
endstream
endobj
8 0 obj
114
endobj
9 0 obj
<</R5
5 0 R>>
endobj
6 0 obj
<</Type/Page/MediaBox [0 0 90 68]
/Parent 3 0 R
/Resources<</ProcSet[/PDF /Text]
/Font 9 0 R
>>
/Contents 7 0 R
>>
endobj
3 0 obj
<< /Type /Pages /Kids [
6 0 R
] /Count 1
>>
endobj
1 0 obj
<</Type /Catalog /Pages 3 0 R
>>
endobj
5 0 obj
<</Subtype/Type1/BaseFont/Times-Roman/Type/Font/Name/R5>>
endobj
4 0 obj
<</Type/FontDescriptor/FontName/Times-Roman>>
endobj
2 0 obj
<</Producer (Aladdin Ghostscript 6.01)
>>endobj
xref
0 10
0000000000 65535 f 
0000000416 00000 n 
0000000598 00000 n 
0000000357 00000 n 
0000000537 00000 n 
0000000464 00000 n 
0000000227 00000 n 
0000000015 00000 n 
0000000179 00000 n 
0000000198 00000 n 
trailer
<< /Size 10 /Root 1 0 R /Info 2 0 R
>>
startxref
654
%%EOF
%  \fi
%    \begin{macrocode}
\end{filecontents*}
%</exampleaux>
%    \end{macrocode}
%  \end{documentation}
%
%  \begin{documentation}{Small print}
%    \changes{v0.4b}{2002/04/05}{new}
%    \changes{v0.8a}{2002/12/16}{changed (LPPL removal)}
%    \changes{v1.2h}{2006/08/30}{suppress page break}
%^^A =================================================================
%^^A   We insert the `small print' here.
%^^A =================================================================
%    \vfill
%    \noindent\begin{minipage}{\textwidth}
%    \setlength{\parindent}{10pt}
%    \mbox{}\hfill
%    \scriptsize\package{\filename} is Copyright
%    \copyright\ 2002-2011 by Andre Dierker
%    \vspace{2em}
%
%    There is no warranty for the \package{\filename}~package.  I
%    provide \package{\filename} `as is', without warranty of any
%    kind, either expressed or implied, including, but not limited to,
%    the implied warranties of merchantability and fitness for a
%    particular purpose.  The entire risk as to the quality and
%    performance of \package{\filename} is with you.  Should
%    \package{\filename} prove defective, you assume the cost of all
%    necessary servicing, repair, or correction.
%
%    The \package{\filename}~package may be distributed and/or
%    modified under the conditions of the \LaTeX\ Project Public
%    License (see \cite{latex3-project:lppl}), either version 1.3
%    of this license or (at your option) any later version.
%
%    The latest version of this license is in
%    \url{http://www.latex-project.org/lppl.txt} and version 1.3 or
%    later is part of all distributions of \LaTeX\ version 2005/12/01
%    or later.
%
%    The \package{\filename}~package has the LPPL maintenance status
%    ``author-maintained''.
%
%    The Current Maintainer of this package is Andre Dierker.
%
%    The \package{\filename}~package consists of all files 
%    listed in \file{README}
%    \end{minipage}
%    \par\newpage
%  \end{documentation}
%
%^^A =================================================================
%^^A   The `user' documentation ends here, or strictly speaking: it
%^^A   ends after the following stuff (the argument of
%^^A   \StopEventually).  In case of the `user' docu it will be
%^^A   appended here, in case of the `programmer' docu it will be
%^^A   delayed and inserted below at \Finale
%^^A =================================================================
%    \StopEventually{
%
%  \begin{documentation}{References}
%    \changes{v0.4a}{2002/04/04}{new}
%    \changes{v0.5j}{2002/09/21}{added more}
%    \changes{v0.6d}{2002/10/19}{added \file{ltclass}}
%    \changes{v0.7e}{2002/11/26}{added \package{tracking.sty} and \TeX
%      book}
%    \changes{v0.7i}{2002/12/14}{updated}
%    \changes{v0.8f}{2003/01/03}{updated}
%    \changes{v1.1b}{2003/01/30}{updated}
%    \changes{v1.1c}{2003/02/07}{added \ams-stuff}
%    \changes{v1.1f}{2003/03/20}{added \package{graphics}}
%    \changes{v1.2d}{2005/12/14}{updated}
%^^A =================================================================
%^^A   We can't get enough!  Of course we also want a
%^^A   bibliography ;-)
%^^A =================================================================
%    \addcontentsline{toc}{section}{References}
%
%    \begin{thebibliography}{10}
%
%    \bibitem{ams:amsclass} {American Mathematical Society}.  \newblock The
%      {amsart}, {amsproc}, and {amsbook} document classes.  \newblock
%      \ctanurl{macros/\B latex/\B required/\B amslatex/\B classes/\B
%        amsclass.dtx}, August 2004.
%
%    \bibitem{ams:instr} {American Mathematical Society} and Michael
%      Downes.  \newblock {\ams}-{\LaTeX}: Instructions for preparation of
%      paper and monographs.  \newblock \ctanurl{macros/\B latex/\B
%        required/\B amslatex/\B classes/\B instr-l.tex}, December 1999.
%
%    \bibitem{ltx2e:ltsect} Johannes Braams, David~P. Carlisle, Alan
%      Jeffrey, Leslie Lamport, Frank Mittelbach, Chris Rowley, Tobias
%      Oetiker, and Rainer Sch\"{o}pf.  \newblock ltsect.dtx.  \newblock
%      \ctanurl{macros/\B latex/\B base/\B ltsect.dtx}, December 1996.
%
%    \bibitem{ltx2e:ltfloat} Johannes Braams, David~P. Carlisle, Alan
%      Jeffrey, Leslie Lamport, Frank Mittelbach, Chris Rowley, and Rainer
%      Sch\"{o}pf.  \newblock ltfloat.dtx.  \newblock \ctanurl{macros/\B
%        latex/\B base/\B ltfloat.dtx}, October 2002.
%
%    \bibitem{carlisle:graphics} David~P. Carlisle.  \newblock Packages in
%      the `graphics' bundle.  \newblock \ctanurl{macros/\B latex/\B
%        required/\B graphics/\B grfguide.tex}, January 1999.
%
%    \bibitem{ltx2e:ltboxes} David~P. Carlisle, Leslie Lamport, Frank
%      Mittelbach, and Chris Rowley.  \newblock ltboxes.dtx.  \newblock
%      \ctanurl{macros/\B latex/\B base/\B ltboxes.dtx}, April 1999.
%
%    \bibitem{ltx2e:graphics} David~P. Carlisle and Sebastian P.~Q. Rahtz.
%      \newblock The graphics package.  \newblock \ctanurl{macros/\B
%        latex/\B required/\B graphics/\B graphics.dtx}, July 2001.
%
%    \bibitem{glazkov:tracking} D.~A. Glazkov.  \newblock tracking.sty.
%      \newblock \ctanurl{macros/\B latex/\B contrib/\B supported/\B
%        tracking/\B tracking.sty}, March 1996.
%
%    \bibitem{knuth:1986:texbook} Donald~Erwin Knuth.  \newblock {\em The
%        {\TeX}book}.  \newblock Computers \&
%      typesetting. Ad{\-d}i{\-s}on-Wes{\-l}ey, Reading, MA, USA, 1986.
%
%    \bibitem{kohm:komabuch} Markus Kohm and Jens-Uwe Morawski.  \newblock
%      {\em {\koma}: Eine Sammlung von Klassen und Paketen f\"{u}r
%        {\LaTeX}}.  \newblock Edition dante. Lehmanns Fachbuchhandlung,
%      2., \"{u}berarbeitete und erweitere auflage edition, January 2006.
%
%    \bibitem{lamport:classes} Leslie Lamport, Frank Mittelbach, and
%      Johannes Braams.  \newblock Standard document classes for {\LaTeX}
%      version 2e.  \newblock \ctanurl{macros/\B latex/\B base/\B
%        classes.dtx}, February 2004.
%
%    \bibitem{mittelbach:docstrip} Frank Mittelbach, Denys Duchier,
%      Johannes Braams, Marcin Woli{\'{n}}ski, and Mark Wooding.  \newblock
%      The {DocStrip} program.  \newblock \ctanurl{macros/\B latex/\B
%        base/\B docstrip.dtx}, March 1999.
%
%    \bibitem{ltx2e:ltclass} Frank Mittelbach, Chris Rowley, Alan Jeffrey,
%      and David~P. Carlisle.  \newblock The main structure of documents.
%      \newblock \ctanurl{macros/\B latex/\B base/\B ltclass.dtx}, August
%      2001.
%
%    \bibitem{neukam:scrclass} Frank Neukam and Markus Kohm.  \newblock Die
%      {Haupt}-classes und -packages des {\koma} {P}akets.  \newblock
%      \ctan: \url{macros/\B latex/\B contrib/\B supported/\B
%        koma-script/\B scrclass.dtx}, August 2005.
%
%    \bibitem{twgtds:tds} {TUG} Working~Group on~a {\TeX} Directory
%      Structure ({TWG}-{\tds}).  \newblock A directory structure for
%      {\TeX} files.  \newblock \ctanurl{tds/\B tds.pdf}, April 1999.
%
%    \bibitem{latex3-project:lppl} The~{\LaTeX3} Project.  \newblock The
%      {\LaTeX} {P}roject {P}ublic {L}icense.  \newblock URL: \url{http:/\B
%        /\B www.latex-project.org/\B lppl.txt}, October 2004.
%
%    \end{thebibliography}
%
%    %\bibliography{fbithesis}
%    %\bibliographystyle{plain}
%  \end{documentation}
%
%^^A =================================================================
%^^A   By default we'll build the `user' docu, that is: without an
%^^A   index.  But if the user made an index we should include it.
%^^A =================================================================
%    \PrintIndex
%
%^^A =================================================================
%^^A   Same as with the index above: if the user has specified
%^^A   `RecordChanges' in her `ltxdoc.cfg', we should print the
%^^A   changes here.
%^^A =================================================================
%    \sloppy\PrintChanges
%
%^^A =================================================================
%^^A   Make sure that the index and the changes are not printed twice
%^^A   since ltxdoc.cfg might have a second \PrintIndex or
%^^A   \PrintChanges command. (See everysel.dtx by Martin Schr\"oder)
%^^A =================================================================
%    \let\PrintChanges=\relax
%    \let\PrintIndex=\relax
%
%^^A =================================================================
%^^A   End the multicols-environment in the table of contents
%^^A =================================================================
%    \ifmulticols
%      \addtocontents{toc}{\protect\end{multicols}}
%    \fi
%
%    } ^^A end of \StopEventually
%
%    \changes{v0.7d}{2002/11/25}{Implementation: `@'-disclaimer}
%    \changes{v0.8a}{2002/12/16}{Implementation: changed (LPPL
%      removal)}
%    \changes{v1.1i}{2003/06/30}{whole code: changed all
%      \cmd{\fbi@}\meta{command} to \cs{}\meta{command}|@fbi| to avoid
%      clustering}
%    \changes{v1.1k}{2003/07/28}{whole code: changed all
%      \cs{}\meta{command}|@fbi| back to \cs{fbi@}\meta{command}}
%    \changes{v1.1n}{2003/10/08}{whole code: schematized names of
%      internal macros}
%^^A =================================================================
%^^A   The following will only be included into the `programmer' docu
%^^A   We follow the structure suggested in [Kopka: `LateX', Vol. 3,
%^^A   section 2.5]
%^^A =================================================================
%    \section{Implementation}
%    \label{sec:implement}
%
%    \describefile{\filename.cls}\emph{Please note:} The macros
%    containing a `@' are internal commands.  They do \emph{not}
%    belong to the user interface and should not be called directly by
%    the end user!  You may get unpredictable results if you don't
%    know what you are doing.  Internal macros may be changed by me
%    without announcement or warning, so be careful.  Use them at your
%    own risk if you cannot resist\ldots
%
%^^A =================================================================
%^^A   Initial initialization
%^^A =================================================================
%    \subsection{Initialization}
%    \label{subsec:init}
%
%  \begin{length}{\fbi@skip@v}
%  \begin{length}{\fbi@skip@h}
%    This initializes two registers that hold the accumulated
%    horizontal and vertical translation of the print space
%    (especially of the title page).
%    \changes{v0.1a}{2001/09/16}{implemented}
%    \changes{v0.8b}{2002/12/20}{adjustment re-implemented}
%    \begin{macrocode}
%<*package>
\newlength{\fbi@skip@v}%
\newlength{\fbi@skip@h}%
%    \end{macrocode}
%  \end{length}
%  \end{length}
%
%  \begin{counter}{\fbi@tempcnta}
%  \begin{counter}{\fbi@tempcntb}
%    For various issues we need some counters.
%    \changes{v1.2e}{2006/01/20}{new}
%    \begin{macrocode}
\newcount\fbi@tempcnta%
\newcount\fbi@tempcntb%
%    \end{macrocode}
%  \end{counter}
%  \end{counter}
%
%  \begin{switch}{fbi@draft}
%    This initializes \cmd{\iffbi@draft}.  If \cmd{\iffbi@draft} is
%    true, a frame is made around the window in the cover page and
%    some marks are shown that make it easy to check the placement of
%    the title page.  This can be controlled by the options
%    \describeoption{draft}\describeoption{final}^^A \Lopt{draft} and
%    \Lopt{final} (see subsection \ref{subsec:optiondeclare}).
%    \changes{v0.3d}{2002/04/03}{new (\Lopt{draft} revision)}
%    \begin{macrocode}
\newif\iffbi@draft%
%    \end{macrocode}
%  \end{switch}
%
%  \begin{switch}{fbi@decor}
%    This initializes \cmd{\iffbi@decor}.  If \cmd{\iffbi@decor} is
%    true, the `decoration' of the cover page (the text above and
%    below the window and the address of the university) is shown.
%    This can be controlled by the options
%    \describeoption{decor}\describeoption{nodecor}^^A
%    \Lopt{decor} and \Lopt{nodecor} (see subsection
%    \ref{subsec:optiondeclare}).
%    \changes{v1.2e}{2006/01/03}{new}
%    \begin{macrocode}
\newif\iffbi@decor%
%    \end{macrocode}
%  \end{switch}
%
%  \begin{switch}{fbi@declaration}
%    This initializes \cmd{\iffbi@declaration}.  If
%    \cmd{\iffbi@declaration} is true, the declaration is shown.  This
%    can be controlled by the options
%    \describeoption{delcaration}\describeoption{nodeclaration}^^A
%    \Lopt{declaration} and \Lopt{nodeclaration} (see subsection
%    \ref{subsec:optiondeclare}).
%    \changes{v1.2e}{2006/01/05}{new}
%    \begin{macrocode}
\newif\iffbi@declaration%
%    \end{macrocode}
%  \end{switch}
%
%  \begin{switch}{fbi@base@ams}
%  \begin{switch}{fbi@base@koma}
%    This initializes \cmd{\iffbi@base@ams} and \cmd{\iffbi@base@koma}. 
%    Sometimes we have to do different things, depending on the
%    choosen baseclass.  With these switches we can easily distinguish
%    between different baseclasses.
%    \changes{v1.1c}{2003/02/07}{new}
%    \begin{macrocode}
\newif\iffbi@base@ams%
\newif\iffbi@base@koma%
%    \end{macrocode}
%  \end{switch}
%  \end{switch}
%
%  \begin{macro}{\baseclass}
%    By default \package{scrbook} is used as \emph{baseclass}. You may
%    change this behavior by
%    defining \cmd{\baseclass} to the class of your choice.
%    \emph{\textbf{Important:} this has to be done \textbf{before} the
%    \cmd{\documentclass}~command!} (See the example in section
%    \ref{sec:example})
%    \changes{v0.4d}{2002/04/07}{new (\cmd{\baseclass} stuff)}
%    \changes{v0.4f}{2002/07/05}{definition changed}
%    \begin{macrocode}
\providecommand*{\baseclass}{scrbook}%
%    \end{macrocode}
%  \end{macro}
%
%    \changes{v0.6d}{2002/10/19}{Hooks: new}
%    \changes{v1.1o}{2004/03/21}{Font 'n Hooks: Fonts}
%^^A =================================================================
%^^A   We define all fonts here, used in fbithesis.
%^^A   We use \AtEndDocument to inform the user about the bug.
%^^A =================================================================
%    \subsection{Fonts and Hooks}
%    \label{subsec:hooks}
%
%    We do not use fixed fonts on the title page but variables, that 
%    could be changed by the user. For each element on the title page 
%    one variable is defined.
%
%  \begin{macro}{\fbi@font@author}
%    We use \cmd{\Large} as the default fontsize for the author.
%    \changes{v1.1p}{2004/03/21}{new}
%    \begin{macrocode}
\newcommand*{\fbi@font@author}{\Large}
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\fbi@font@title}
%    The title is set in size \cmd{\LARGE} and boldface.
%    \changes{v1.1p}{2004/03/21}{new}
%    \begin{macrocode}
\newcommand*{\fbi@font@title}{\LARGE\bfseries}
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\fbi@font@subject}
%  \begin{macro}{\fbi@font@date}
%    For subject and date the fontsize \cmd{\large} is used by
%    default.
%    \changes{v1.1p}{2004/03/21}{new}
%    \begin{macrocode}
\newcommand*{\fbi@font@subject}{\large}
\newcommand*{\fbi@font@date}{\large}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%
%  \begin{macro}{\fbi@font@thanks}
%    We use \cmd{\scriptsize} for the thanks-information.
%    \changes{v1.1p}{2004/03/21}{new}
%    \begin{macrocode}
\newcommand*{\fbi@font@thanks}{\scriptsize}
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\fbi@font@chair}
%  \begin{macro}{\fbi@font@super}
%    The dates according supervisors and chair are set in
%    the normal fontsize.
%    \changes{v1.1p}{2004/03/21}{new}
%    \begin{macrocode}
\newcommand*{\fbi@font@chair}{\normalsize}
\newcommand*{\fbi@font@super}{\normalsize}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%
%
%    As already said in subsection \ref{subsec:bugs} (page
%    \pageref{subsec:bugs}), there is a bug
%    in \package{\filename} so that every \cmd{\footnote}~command in
%    the document is ignored if the \cmd{\maketitle} is left out. 
%    Because there is no known solution at this time, we have to
%    inform the user about the bug.  We use the
%    \cmd{\AtEndDocument}~hook, provided by the \LaTeX-Kernel (see
%    \cite{ltx2e:ltclass}).  If we are at the end of the document
%    and \cmd{\fbi@cleanup} wasn't called, there was no
%    \cmd{\maketitle} in the document and an error is thrown:
%    \changes{v0.7d}{2002/11/25}{Hooks: made it an error}
%    \changes{v1.1p}{2004/12/22}{Hooks: use \cmd{\footnote}/
%      \cmd{old@footnote}}
%    \begin{macrocode}
\AtEndDocument{%
  \ifx\footnote\@oldfootnote
   \else%
    \ClassError{fbithesis}{No \protect\maketitle\space found.  Due to a
     bug in `fbithesis'\MessageBreak every \protect\footnote -command
     is ignored}{Type <return> to proceed, but please note: all
     \protect\footnote -commands in the\MessageBreak document have
     been ignored.  See `Known Bugs'\MessageBreak in the documentation
     of the class for further info.}%
  \fi%
}%
%    \end{macrocode}
%
%^^A =================================================================
%^^A   Declaration of the options we want to provide
%^^A =================================================================
%    \subsection{Option Declaration}
%    \label{subsec:optiondeclare}
%
%  \begin{option}{draft}
%    With the \Lopt{draft}~option we generate
%    some marks that help checking the placement of the title page. 
%    See the command \cmd{\fbi@place@marks} for the implementation.
%    \changes{v0.2b}{2002/10/11}{new}
%    \changes{v0.3d}{2002/04/03}{revision}
%    \changes{v0.5f}{2002/09/04}{pass to \emph{baseclass}}
%    \changes{v0.5j}{2002/09/21}{simplified (\env{picture} stuff)}
%    \changes{v1.1o}{2003/12/03}{Feedback}
%    \begin{macrocode}
\DeclareOption{draft}{%
  \fbi@drafttrue%
  \PassOptionsToClass{draft}{\baseclass}
  \ClassInfo{fbithesis}{Option `draft' choosen}
}%
%    \end{macrocode}
%  \end{option}
%
%  \begin{option}{final}
%    With the \Lopt{final}~option (the default)
%    no marks are shown.
%    \changes{v0.2b}{2001/10/11}{new}
%    \changes{v0.3d}{2002/04/03}{\Lopt{draft} revision}
%    \changes{v1.1o}{2003/12/03}{Feedback}
%    \begin{macrocode}
\DeclareOption{final}{%
  \fbi@draftfalse%
  \ClassInfo{fbithesis}{Option `final' choosen}
}%
%    \end{macrocode}
%  \end{option}
%
%  \begin{option}{german}
%    By using the \cmd{\supervisors}~command these can be added to the
%    title page.  With the \Lopt{german}~option
%    (the default) they are captioned by `Gutachter'.
%    \changes{v0.6a}{2002/09/23}{new (internationalization)}
%    \changes{v1.1o}{2003/12/03}{Feedback}
%    \changes{v1.2d}{2005/12/22}{Renamed \cmd{\fbi@str@supervisors}
%      with \cmd{\fb@text@supervisors}}
%    \begin{macrocode}
\DeclareOption{german}{%
  \gdef\fbi@text@supervisors{Gutachter:}%
  \gdef\fbi@text@placendate{Ort, Datum}%
  \gdef\fbi@text@name{Unterschrift}%
  \ClassInfo{fbithesis}{Option `german' choosen}
}%
%    \end{macrocode}
%  \end{option}
%
%  \begin{option}{ngerman}
%    The class option \Lopt{ngerman} is just a
%    synonym for \Lopt{german} (see above).  Since the
%    class- (or global-) options are passed to the (by
%    \cmd{usepackage}) imported styles the synonym can make things
%    easier: you don't have to specify the optional argument with
%    language-specific packages (see section \ref{subsec:options} on page
%    \pageref{subsec:options}f).
%    \NEWfeature{2003/06/30 v1.1i}
%    \changes{v1.1i}{2003/06/30}{new}
%    \changes{v1.1o}{2003/12/03}{Feedback}
%    \changes{v1.2d}{2005/12/22}{Renamed \cmd{\fbi@str@supervisors}
%      with \cmd{\fb@text@supervisors}}
%    \begin{macrocode}
\DeclareOption{ngerman}{%
  \gdef\fbi@text@supervisors{Gutachter:}%
  \gdef\fbi@text@placendate{Ort, Datum}%
  \gdef\fbi@text@name{Unterschrift}%
  \ClassInfo{fbithesis}{Option `ngerman' choosen}
}%
%    \end{macrocode}
%  \end{option}
%
%  \begin{option}{english}
%    Some folks want to write their thesis in English.  The German
%    `Gutachter' would spoil the effect.  So with the
%    \Lopt{english}~option this is replaced by
%    `Supervisors'.
%    \changes{v0.6a}{2002/09/23}{new (internationalization)}
%    \changes{v1.1o}{2003/12/03}{Feedback}
%    \changes{v1.2d}{2005/12/22}{Renamed \cmd{\fbi@str@supervisors}
%      with \cmd{\fb@text@supervisors}}
%    \begin{macrocode}
\DeclareOption{english}{%
  \gdef\fbi@text@supervisors{Supervisors:}%
  \gdef\fbi@text@placendate{Place, Date}%
  \gdef\fbi@text@name{Signature}%
  \ClassInfo{fbithesis}{Option `english' choosen}
}%
%    \end{macrocode}
%  \end{option}
%
%  \begin{option}{american}
%    Again \Lopt{american} is just a synonym
%    for \Lopt{english} (see above).
%    \NEWfeature{2003/06/30 v1.1i}
%    \changes{v1.1i}{2003/06/30}{new}
%    \changes{v1.1o}{2003/12/03}{Feedback}
%    \changes{v1.2d}{2005/12/22}{Renamed \cmd{\fbi@str@supervisors}
%      with \cmd{\fb@text@supervisors}}
%    \begin{macrocode}
\DeclareOption{american}{%
  \gdef\fbi@text@supervisors{Supervisors:}%
  \gdef\fbi@text@placendate{Place, Date}%
  \gdef\fbi@text@name{Signature}%
  \ClassInfo{fbithesis}{Option `american' choosen}
}%
%    \end{macrocode}
%  \end{option}
%
%  \begin{option}{decor}
%    It is possible, to show the strings \qm{TECHNISCHE
%    UNIVERSIT\"{A}T DORTMUND} and \qm{FAKULTÄT FÜR INFORMATIK} above
%    and \qm{INTERNE BERICHTE} and \qm{INTERNAL REPORTS} below the
%    cardboard window.
%
%    With the \Lopt{decor}~option the strings are shown. If you prefer
%    to not show the strings see option \Lopt{nodecor} below.
%    \NEWfeature{2005/12/22 v1.2d}
%    \changes{v1.2d}{2005/12/22}{new}
%    \begin{macrocode}
\DeclareOption{decor}{%
%    \end{macrocode}
%    \begin{macrocode}
  \fbi@decortrue%
  \ClassInfo{fbithesis}{Option `decor' choosen}
}%
%    \end{macrocode}
%  \end{option}
%
%  \begin{option}{nodecor}
%    It is possible, to show the strings \qm{TECHNISCHE
%    UNIVERSIT\"{A}T DORTMUND} and \qm{FAKULTÄT FÜR INFORMATIK} above
%    and \qm{INTERNE BERICHTE} and \qm{INTERNAL REPORTS} below the
%    cardboard window.
%
%    With the \Lopt{nodecor}~option the strings are \emph{not} shown.
%    Use the \Lopt{decor}~option (see above) to show the strings.
%    \NEWfeature{2005/12/22 v1.2d}
%    \changes{v1.2d}{2005/12/22}{new}
%    \begin{macrocode}
\DeclareOption{nodecor}{%
  \fbi@decorfalse%
  \ClassInfo{fbithesis}{Option `nodecor' choosen}
}%
%    \end{macrocode}
%  \end{option}
%
%  \begin{option}{declaration}
%    \changes{v1.2e}{2006/01/05}{new}
%    \begin{macrocode}
\DeclareOption{declaration}{%
%    \end{macrocode}
%    \begin{macrocode}
  \fbi@declarationtrue%
  \ClassInfo{fbithesis}{Option `declaration' choosen}
}%
%    \end{macrocode}
%  \end{option}
%
%  \begin{option}{nodeclaration}
%    \changes{v1.2e}{2006/01/05}{new}
%    \begin{macrocode}
\DeclareOption{nodeclaration}{%
  \fbi@declarationfalse%
  \ClassInfo{fbithesis}{Option `nodeclaration' choosen}
}%
%    \end{macrocode}
%  \end{option}
%
%  \begin{option}{a4paper}
%    The default layout for a4paper is defined.  There are up to four
%    different values for an element: the vertical and horizontal
%    position of the element and its vertical and horizontal size. 
%    Some of the elements share values. For example the horizontal
%    size of the window is equal to the one of windowhead and
%    windowfoot.
%    \NEWfeature{2003/10/08 v1.1n}
%    
%    The values for the horizontal and vertical position of an element
%    specify the left lower egde of it.
%
%    As the number of dimen-registers is limited in \TeX we use macros
%    to store the coordinates of the elements. The used unit for all
%    values is `cm'.
%    \changes{v1.1g}{2003/03/27}{Layout: definition}
%    \changes{v1.1j}{2003/07/03}{Layout: definition
%      changed to macros}
%    \changes{v1.1n}{2003/10/08}{new}
%    \begin{macrocode}
\DeclareOption{a4paper}{%
%    \end{macrocode}
%  \begin{macro}{\fbi@size@h@paper}
%    Horizontal size of the whole sheet of paper.
%    \begin{macrocode}
  \newcommand{\fbi@size@h@paper}{21}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\fbi@size@v@paper}
%    Vertical size of the whole sheet of paper.
%    \begin{macrocode}
  \newcommand{\fbi@size@v@paper}{29.7}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\fbi@pos@h@}
%    Horizontal position of the window, its head, its foot and the
%    chair data.
%    \begin{macrocode}
  \newcommand{\fbi@pos@h@}{2.9}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\fbi@pos@h@square}
%    Horizontal position of the black square.
%    \begin{macrocode}
  \newcommand{\fbi@pos@h@square}{1.6}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\fbi@size@h@square}
%    Horizontal size of the black square. Since it is a square, the 
%    vertical size is equal to this.
%    \begin{macrocode}
  \newcommand{\fbi@size@h@square}{0.55}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\fbi@pos@h@address}
%    Horizontal position of the address line.
%    \begin{macrocode}
  \newcommand{\fbi@pos@h@address}{12}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\fbi@pos@v@windowhead}
%    Vertical position of the windowhead.
%    \begin{macrocode}
  \newcommand{\fbi@pos@v@windowhead}{25.65}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\fbi@size@v@windowhead}
%    Vertical size of the windowhead.  The value is also used by the
%    tulogo.
%    \begin{macrocode}
  \newcommand{\fbi@size@v@windowhead}{1.45}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\fbi@pos@v@window}
%    Vertical position of the window in the cardboard.
%    \begin{macrocode}
  \newcommand{\fbi@pos@v@window}{15.4}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\fbi@pos@v@windowfoot}
%    Verticla position of the windowfoot.
%    \begin{macrocode}
  \newcommand{\fbi@pos@v@windowfoot}{12.75}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\fbi@size@v@windowfoot}
%    Vertical size of the windowfoot.
%    \begin{macrocode}
  \newcommand{\fbi@size@v@windowfoot}{1.4}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\fbi@size@h@window}
%    Horizontal size of the window in the cardboard.
%    \begin{macrocode}
  \newcommand{\fbi@size@h@window}{9.2}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\fbi@size@v@window}
%    Vertical size of the window in the cardboard.
%    \begin{macrocode}
  \newcommand{\fbi@size@v@window}{9.1}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\fbi@pos@v@address}
%    Vertical position of the address.
%    \begin{macrocode}
  \newcommand{\fbi@pos@v@address}{3.73}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\fbi@pos@v@addresshead}
%    Vertical position of the line above the address.
%    \begin{macrocode}
  \newcommand{\fbi@pos@v@addresshead}{4.35}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\fbi@pos@v@addressfoot}
%    Vertical position of the line below the address.
%    \begin{macrocode}
  \newcommand{\fbi@pos@v@addressfoot}{3.5}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\fbi@size@h@address}
%    Horizontal size of the address line.
%    \begin{macrocode}
  \newcommand{\fbi@size@h@address}{8.3}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\fbi@size@v@address}
%    Vertical size of the address line.
%    \begin{macrocode}
  \newcommand{\fbi@size@v@address}{0.45}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\fbi@pos@v@chair}
%    Vertical position of the chair data. The value is also used by 
%    the chairlogo.
%    \begin{macrocode}
  \newcommand{\fbi@pos@v@chair}{6.8}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\fbi@size@v@chair}
%    Vertical size of the chair data. The value is alos used by 
%    the chairlogo.
%    \begin{macrocode}
  \newcommand{\fbi@size@v@chair}{3.2}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\fbi@pos@h@logo}
%    Horizontal position of the logos. At the time the logos are
%    flush right, so their actual position may differ form this value.
%    \begin{macrocode}
  \newcommand{\fbi@pos@h@logo}{13}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\fbi@size@h@logo}
%    Horizontal size of the logos. Since the logos aren't streched to
%    this value, the may be free space.
%    \begin{macrocode}
  \newcommand{\fbi@size@h@logo}{7.2}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\fbi@pos@v@scale}
%    Vertical position of the horizontal scales on the left and on the
%    right.
%    \begin{macrocode}
  \newcommand{\fbi@pos@v@scale}{14.85}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\fbi@size@h@scale}
%    The size between the two horizontal scales on the left and
%    on the right.
%    \begin{macrocode}
  \newcommand{\fbi@size@h@scale}{19}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\fbi@pos@h@scale}
%    Horizontal position of the vertical scales at the top and at the
%    bottom of the paper.
%    \begin{macrocode}
  \newcommand{\fbi@pos@h@scale}{10.5}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\fbi@size@v@scale}
%    The size between the vertical scales at the top and at the
%    bottom of the paper.
%    \begin{macrocode}
  \newcommand{\fbi@size@v@scale}{27.7}
%    \end{macrocode}
%  \end{macro}
%    \changes{v1.1o}{2003/12/03}{Feedback}
%    \begin{macrocode}
  \ClassInfo{fbithesis}{Option `a4paper' choosen}
}%
%    \end{macrocode}
%  \end{option}
%
%    To use the cardboard cover page, the document has to be in the
%    format \describeoption{a4paper}\mbox{DIN-A4}.  Additionally the
%    \package{\filename}~package does only make sense, if an explicit
%    \describeoption{titlepage}title page is generated.  So we pass
%    these essential options to the baseclass.
%    \changes{v1.1d}{2003/02/17}{Options: request
%                                \Lopt{a4paper} and \Lopt{titlepage}}
%    \begin{macrocode}
\PassOptionsToClass{a4paper,titlepage}{\baseclass}
%    \end{macrocode}
%
%  \begin{option}{*}
%    All other options are passed to the \emph{baseclass}.  The user
%    can choose the \emph{baseclass} by defining the macro
%    \cmd{\baseclass} to her favorite document class (see subsection
%    \ref{subsec:load} on page \pageref{subsec:load}).
%    \changes{v0.3d}{2002/04/03}{new (class-changes)}
%    \changes{v0.4d}{2002/04/07}{\cmd{\baseclass} stuff}
%    \changes{v1.1o}{2003/12/03}{Feedback}
%    \begin{macrocode}
\DeclareOption*{%
  \PassOptionsToClass{\CurrentOption}{\baseclass}
  \ClassInfo{fbithesis}{Option `\CurrentOption' choosen}
}%
%    \end{macrocode}
%  \end{option}
%
%^^A =================================================================
%^^A   Process options
%^^A =================================================================
%    \subsection{Option Processing}
%    \label{subsec:optionproc}
%
%    If no options are given we assume
%    \describeoption{ngerman}\Lopt{ngerman}, show the strings with
%    \describeoption{decor}\Lopt{decor} and do the
%    \describeoption{final}\Lopt{final}~mode by default.  This means
%    that no frames are made.  If you specify both (opposing) options
%    like \Lopt{[final,draft]}, the last one (so in this case
%    \Lopt{draft}) `wins' (this is due to the star in
%    \cmd{\ProcessOptions*}).
%    \changes{v0.2b}{2001/10/11}{Option Proc.: new}
%    \changes{v0.4c}{2002/04/06}{Option Proc.: only default opts with
%      no \file{.cfg}}
%    \changes{v0.4h}{2002/08/13}{Option Proc.: \file{.cfg} stuff}
%    \changes{v0.6a}{2002/09/23}{Option Proc.: internationalization}
%    \changes{v1.2d}{2005/12/22}{Option Proc.: default
%      \Lopt{decor}}
%    \begin{macrocode}
\ExecuteOptions{final,ngerman,decor,nodeclaration}%
\ProcessOptions*\relax%
%    \end{macrocode}
%
%^^A =================================================================
%^^A   Further loading
%^^A =================================================================
%    \subsection{Loading addition\-al pack\-ages}
%    \label{subsec:loadadd}
%
%    Load the \emph{baseclass}.  The user can choose the
%    \emph{baseclass} by defining \cmd{\baseclass} to a different
%    class.
%    \changes{v0.3d}{2002/04/03}{Loading: new (class-changes)}
%    \changes{v0.4d}{2002/04/07}{Loading: \cmd{\baseclass} stuff}
%    \changes{v0.4e}{2002/04/09}{Loading: \package{german.sty} not
%      needed anymore}
%    \begin{macrocode}
\LoadClass{\baseclass}
%    \end{macrocode}
%    
%    After \cmd{\LoadClass} the choosen \emph{baseclass} is finally
%    known since it cannot be changed.  So now is the right time to
%    set \cmd{\iffbi@base@koma} and \cmd{\iffbi@base@ams}.
%    \changes{v0.7e}{2002/11/26}{Loading: set \cmd{\iffbi@base@koma}}
%    \changes{v1.1e}{2003/03/04}{Loading: set \cmd{\iffbi@base@ams}}
%    \begin{macrocode}
\begingroup
  \def\@temptokena{scrbook}
  \ifx\baseclass\@temptokena
    \global\fbi@base@komatrue\global\fbi@base@amsfalse
    \ClassInfo{fbithesis}{KOMA-Script is chosen as baseclass}
  \else
    \def\@temptokena{amsbook}
    \ifx\baseclass\@temptokena
      \global\fbi@base@amstrue\global\fbi@base@komafalse
    \ClassInfo{fbithesis}{AMS is chosen as baseclass}
    \else
%    \end{macrocode}
%    Neither \koma\ nor \ams\ but an unknown documentclass is choosen
%    as \emph{baseclass}.  Since both \cmd{\iffbi@base@koma} and
%    \cmd{\iffbi@base@ams} have to be set to |false|, none of the
%    special features in the subsections \ref{subsubsec:koma} (page
%    \pageref{subsubsec:koma}) and
%    \ref{subsubsec:ams} (page \pageref{subsubsec:ams}) are activated.
%    \begin{macrocode}
      \global\fbi@base@komafalse\global\fbi@base@amsfalse
      \ClassInfo{fbithesis}{No special class is chosen as baseclass}
    \fi
  \fi
\endgroup
%    \end{macrocode}
%
%    We need the \cmd{\includegraphics}~command from the
%    \package{graphicx}~package (see \cite{carlisle:graphics}) to
%    place some logos.  Since we make use of the option
%    \Lopt{keepaspectratio} we need at least \package{graphicx}
%    1995/12/06 v0.6h.  However in \package{graphicx} 1996/08/05 v1.0a
%    a bug is fixed which could concern us.  So to be sure we request
%    v1.0a or later.
%    \changes{v0.5a}{2002/08/14}{Loading: \package{graphicx} required
%      (title-enhance stuff)}
%    \changes{v0.7h}{2002/12/12}{Loading: request at least
%      \package{graphicx} 1996/08/05 v1.0a}
%    \begin{macrocode}
\RequirePackage{graphicx}[1996/08/05]
%    \end{macrocode}
%
%^^A =================================================================
%^^A   Begin of the Main Part
%^^A =================================================================
%    \subsection{Main Part}
%    \label{subsec:main}
%
%^^A =================================================================
%^^A   Define the (userlevel) commands we want to provide
%^^A =================================================================
%    \subsubsection{User-level Commands}
%    \label{subsubsec:comm}
%
%    The following four macros are provided by the \LaTeX-kernel
%    (described in \cite{ltx2e:ltsect}) to provide information
%    about the title, author(s) and date of the document.  The
%    information is stored away in internal control sequences.  It is
%    the task of the \cmd{\maketitle}~command to use this information. 
%    Some of these macros keep their original definition, some are
%    enhanced by additional features.
%
%  \begin{macro}{\title}
%  \begin{macro}{\author}
%    These macros are defined in the \LaTeX kernel and are shown here
%    just for your information.
%    \begin{macrocode}
% \def\title#1{\gdef\@title{#1}}
% \def\author#1{\gdef\@author{#1}}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%
%  \begin{macro}{\and}
%    We do want to support the \package{amsbook} document class as
%    possible \emph{baseclass}.  Unfortunately the \ams-classes use a
%    different definition of the \cmd{\and}~macro (see
%    \cite{ams:amsclass}).  So if the user has choosen
%    \package{amsbook} as baseclass we have to redefine it to the
%    `original' (\package{book}) definition (see
%    \cite{ltx2e:ltsect}).
%    \changes{v1.1c}{2003/02/07}{new (\ams\ stuff)}
%    \changes{v1.1e}{2003/03/04}{use \cmd{\iffbi@base@ams}}
%    \begin{macrocode}
\iffbi@base@ams
  \renewcommand*{\and}{%      % \begin{tabular}
    \end{tabular}%
    \hskip 1em \@plus.17fil%
    \begin{tabular}[t]{c}}%   % \end{tabular}
\fi%
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\date}
%    As in \cite{ltx2e:ltsect} the mandatory argument of
%    \cmd{\date} is stored in \cmd{\@date}.  The optional argument is
%    stored in the new macro \cmd{\fbi@startdate}.
%    \changes{v0.6c}{2002/10/15}{new (\cmd{\date} stuff)}
%    \begin{macrocode}
\renewcommand*{\date}[2][]{%
  \gdef\fbi@startdate{#1}%
  \gdef\@date{#2}%
}%
%    \end{macrocode}
%  \begin{macro}{\fbi@startdate}
%    The \cmd{\date}~macro gets today's date by default.  This is
%    already done in the \LaTeX-kernel (see
%    \cite{ltx2e:ltsect}).  \cmd{\fbi@startdate} is set to
%    `nothing' by default.
%    \begin{macrocode}
% \gdef\@date{\today}
\gdef\fbi@startdate{}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%
%  \begin{macro}{\@oldfootnote}
%    Rescue the original definition of \cmd{\footnote} before
%    redefining \cmd{\footnote} and \cmd{\thanks}.
%    \changes{v0.5i}{2002/09/19}{new (\cmd{\thanks} stuff)}
%    \begin{macrocode}
\let\@oldfootnote=\footnote%
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\thanks}
%    The usage of the \cmd{\thanks}~command is only allowed inside the
%    window area, namely the commands \cmd{\title}, \cmd{\author},
%    \cmd{\date} and \cmd{\subject} (but it makes sense only with
%    the two first\ldots).  We locally restore the function of
%    \cmd{\thanks} inside of \cmd{\fbi@place@window} (see below).
%    \changes{v0.5i}{2002/09/19}{new (\cmd{\thanks} stuff)}
%    \begin{macrocode}
\renewcommand*{\thanks}[1]{%
  \ClassError{fbithesis}{With `fbithesis' the
    use of \protect\thanks\space is only allowed\MessageBreak with the
    \protect\author\space and the \protect\title\space command}{Type
    <return> to proceed.  The \protect\thanks\space will
    be ignored.}%
}%
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\footnote}
%    The usage of \cmd{\footnote} is ignored on the whole title page.
%    We will restore the original definition from \cmd{\@oldfootnote}
%    in \cmd{\fbi@cleanup} (called by \cmd{\maketitle}).  So
%    unfortunately \cmd{\footnote} is not reset to its original
%    definition if there is no \cmd{\maketitle} in the document.
%    This is a know bug (see subsection \ref{subsec:bugs} on page
%    \pageref{subsec:bugs}).
%    \changes{v0.5i}{2002/09/19}{new (\cmd{\thanks} stuff)}
%    \changes{v0.6d}{2002/10/19}{changed}
%    \begin{macrocode}
\renewcommand*{\footnote}[1]{\ClassWarning{fbithesis}{The use of
    \protect\footnote\space is not allowed here.  Either
    you\MessageBreak tried \protect\footnote\space on the title
    page (then you have to\MessageBreak use \protect\thanks\space
    instead) or you forgot a \protect\maketitle\MessageBreak in
    you document.\MessageBreak This footnote will be ignored}}%
%    \end{macrocode}
%  \end{macro}
%
%    The filenames of the university- and chair-logos are stored in
%    two macros named
%    \describemacro{\fbi@logo@tu}\cmd{\fbi@logo@tu} and
%    \describemacro{\fbi@logo@chair}\cmd{\fbi@logo@chair}.
%    ^^ATodo: Abst"ande korrigieren (mehr Text hier), sieht Kacke aus.
%  \begin{macro}{\unidologo}
%  \begin{macro}{\chairlogo}
%    However the macros above are only defined if the files really
%    exist.  The macro \cmd{\fbi@testgfile} checks the existance of
%    the file and defines the macro \cmd{\fbi@logo@}\meta{type}.  If
%    the file isn't found a warning will be thrown.
%    \changes{v0.5a}{2002/08/14}{new (title-enhance stuff)}
%    \changes{v1.1e}{2003/03/04}{use \cmd{\fbi@testGfile}}
%    \changes{v1.1f}{2003/03/20}{use \meta{type}}
%    \begin{macrocode}
\newcommand*{\unidologo}[1]{%
  \fbi@testGfile{tu}{#1}%
}%
\newcommand*{\chairlogo}[1]{%
  \fbi@testGfile{chair}{#1}%
}%
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \begin{macro}{\thesislogo}
%    Besides the university- and chair-logos also a thesis-specific
%    logo is possible.  The filename is stored in
%    \describemacro{\fbi@logo@thesis}\cmd{\fbi@logo@thesis}.  Again that
%    macro is only defined, if the file exists.
%    \changes{v0.6d}{2002/10/19}{new}
%    \changes{v1.1d}{2003/02/17}{use \cmd{\fbi@testGfile}}
%    \changes{v1.1f}{2003/03/20}{use \meta{type}}
%    \begin{macrocode}
\newcommand*{\thesislogo}[1]{%
  \fbi@testGfile{thesis}{#1}%
}%
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\thesistype}
%    Due to compatibility reasons with \koma\ the old command
%    \cmd{\thesistype} was renamed to \cmd{\subject} (see below).
%    Since some of the users may already use \cmd{\thesistype}, an
%    warning is given.
%    \changes{v0.7e}{2002/11/26}{new}
%    \begin{macrocode}
\newcommand*{\thesistype}[1]{%
  \ClassWarning{fbithesis}{Due to compatibility reasons
  \protect\thesistype\space was renamed\MessageBreak to
  \protect\subject.  Please change your document}{Type
  <return> to proceed.}%
  \gdef\@subject{#1}%
}%
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\subject}
%    If the user has chosen \koma\ as \emph{baseclass}, \cmd{\subject}
%    is already defined (see \cite{neukam:scrclass}). The
%    standard \LaTeXe-classes don't provide such a command. So we
%    have to ensure it is present.
%    \changes{v0.5a}{2002/08/14}{new (title-enhance stuff)}
%    \changes{v0.7e}{2002/11/26}{compatibility with \koma}
%    \begin{macrocode}
\providecommand*{\subject}[1]{%
  \gdef\@subject{#1}%
}%
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\supervisors}
%    This macro is used to fill the \cmd{\fbi@supervis@i} and
%    \cmd{\fbi@supervis@ii} macros.
%    \changes{v0.5b}{2002/08/15}{new (title-enhance stuff)}
%    \changes{v0.7d}{2002/11/25}{internals changed}
%    \begin{macrocode}
\newcommand*{\supervisors}[2]{
  \gdef\fbi@supervis@i{#1}%
  \gdef\fbi@supervis@ii{#2}%
}%
%    \end{macrocode}
%  \end{macro}
%    
%  \begin{macro}{\chair}
%    The chair data is stored in \cmd{\fbi@chair}.
%    \changes{v0.5b}{2002/08/15}{new (title-enhance stuff)}
%    \begin{macrocode}
\newcommand*{\chair}[1]{%
  \gdef\fbi@chair{#1}%
}%
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\titlevadjust}
%  \begin{macro}{\titlehadjust}
%    These macros are used to set the \cmd{\fbi@skip@v} and
%    \cmd{\fbi@skip@h}~values.  Usually a manual positioning isn't
%    needed.  In the case of a mismatch the user should correct the
%    positioning of the printer.
%    \changes{v0.1b}{2001/09/17}{implemented}
%    \changes{v0.4f}{2002/07/05}{definition changed}
%    \changes{v0.4f}{2002/07/05}{typo corrected (Thanks Stephan!)}
%    \changes{v0.4h}{2002/08/13}{definition changed: set, not add}
%    \changes{v0.8b}{2002/12/20}{adjustment re-implemented}
%    \changes{v0.8e}{2003/01/01}{throw warning}
%    \changes{v0.8f}{2003/01/03}{inverted sense of direction}
%    \begin{macrocode}
\newcommand*{\titlevadjust}[1]{%
  \ClassWarning{fbithesis}{A manual correction of the positioning of
    the title\MessageBreak page should not be necessary.  Refer to
    section\MessageBreak `Customization' in the documentation for
    further\MessageBreak info}
  \setlength{\fbi@skip@v}{#1}%
}%
\newcommand*{\titlehadjust}[1]{%
  \ClassWarning{fbithesis}{A manual correction of the positioning of
    the title\MessageBreak page should not be necessary.  Refer to
    section\MessageBreak `Customization' in the documentation for
    further\MessageBreak info}
  \setlength{\fbi@skip@h}{#1}%
}%
%    \end{macrocode}
%  \end{macro}
%  \end{macro}

%    \changes{v1.2d}{2005/12/22}{Internal: new}
%^^A =================================================================
%^^A   Define internal macros
%^^A =================================================================
%    \subsubsection{Internal Macros}
%    \label{subsubsec:internal}
%
%  \begin{macro}{\fbi@text@tu}
%  \begin{macro}{\fbi@text@do}
%  \begin{macro}{\fbi@text@fi}
%    The macros \cmd{\fbi@text@tu} and \cmd{\fbi@text@fi} hold the
%    text that is shown above the cardboard window.
%
%    The `\"{A}' consist of more than one token (|\"{A}|).  Below we
%    use \cmd{\fbi@dolist} to spread the content of \cmd{\fbi@text@tu}. 
%    Since the macro processes tokens, the `\"{A}' has to be also
%    exactly one token.
%    \changes{v1.2e}{2006/01/03}{new}
%    \changes{v1.2m}{2011/02/06}{added \cmd{\fbi@text@do}}
%    \changes{v1.2m}{2011/02/06}{renamed \cmd{\fbi@text@fbi} to
%      \cmd{\fbi@text@fi}}
%    \begin{macrocode}
\def\fbi@text@tu{TECHNISCHE UNIVERSIT{\fbi@ae}T}%
\def\fbi@text@do{DORTMUND}%
\def\fbi@text@fi{FAKULT{\fbi@ae}T F{\fbi@ue}R INFORMATIK}%
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%
%  \begin{macro}{\fbi@text@ir@de}
%  \begin{macro}{\fbi@text@ir@en}
%    The macros \cmd{fbi@text@ir@de} and \cmd{fbi@text@ir@en} hold the
%    text that is shown below the cardboard window.
%    \changes{v1.2e}{2006/01/03}{new}
%    \begin{macrocode}
\def\fbi@text@ir@de{INTERNE BERICHTE}%
\def\fbi@text@ir@en{INTERNAL REPORTS}%
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%
%  \begin{macro}{\fbi@text@address}
%    The macro \cmd{\fbi@text@address} holds the text that is shown in
%    the lower right part of the page.
%    \changes{v1.2e}{2006/01/03}{new}
%    \begin{macrocode}
\def\fbi@text@address{GERMANY \fbi@dot\space D-44221 DORTMUND}%
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\maketitle}
%    In the standard \LaTeXe\ classes the definition of
%    \cmd{\maketitle} depends on whether an explicit title page is
%    made.  Since we can be sure, that an explicit title page will be
%    generated (see section \ref{subsec:optiondeclare}) we can skip 
%    the \cs{if@titlepage}~switch.
%    \changes{v0.1a}{2001/09/16}{basic redefinition}
%    \changes{v0.5c}{2002/08/28}{basic redefinition
%      (\env{picture} stuff)}
%    \changes{v0.5c}{2002/08/28}{swapped out code to a number of
%      new commands (swap out stuff)}
%    \changes{v0.6a}{2002/09/23}{added \cmd{\iffbi@chair} evaluation}
%    \changes{v0.7a}{2002/11/06}{use \cmd{\ClassInfo}}
%    \changes{v0.7g}{2002/11/29}{removed \cmd{\iffbi@chair}
%      evaluation}
%    \changes{v0.7h}{2002/12/12}{support optional argument}
%    \changes{v0.8b}{2002/12/20}{adjustment re-implemented}
%    \changes{v0.8c}{2002/12/30}{invariant vertical positioning}
%    \changes{v0.8d}{2002/12/31}{invariant horizontal positioning}
%    \changes{v0.8f}{2003/01/03}{warnings corrected}
%    \changes{v0.8f}{2003/01/03}{inverted sense of direction of
%      \cmd{\fbi@skip@h} and \cmd{\fbi@skip@v}}
%    \changes{v1.1d}{2003/02/17}{remove \cs{if@titlepage}}
%    \changes{v1.1g}{2003/03/27}{begun preparation (flexible layout 
%      stuff)}
%    \changes{v1.1j}{2003/07/03}{completed preparation (flexible
%      layout stuff)}
%    \changes{v1.1n}{2003/10/08}{define helping macros local}
%    \begin{macrocode}
\renewcommand{\maketitle}[1][1]{%
  \begin{titlepage}%
%    \end{macrocode}
%
%   We interrupt the redefinition of \cmd{\maketitle} to introduce a
%   few local macros helping us to create the new layout of the
%   title page. These are put here, because they are only called in
%   \cmd{\maketitle} and can therefore remain local (to the scope of
%   \cmd{\maketitle}). The actual redefinition will take place later
%   (see section \ref{subsubsec:maketitle} on page
%   \pageref{subsubsec:maketitle}).
%
%    \changes{v1.1n}{2003/10/08}{Local: new}
%^^A =================================================================
%^^A   Define local macros
%^^A =================================================================
%    \subsubsection{Local Macros}
%    \label{subsubsec:local}
%    
%  \begin{macro}{\fbi@warning}
%    The macro \cmd{\fbi@warning}\marg{command} warns the user if a
%    baseclass-command \meta{command} is used, that is ignored by
%    \package{\filename}.
%    \changes{v1.1c}{2003/02/07}{new}
%    \begin{macrocode}
  \newcommand*{\fbi@warning}[1]{%
    \ClassWarning{fbithesis}{As explained in the documentation some of
    the title-\MessageBreak affecting commands of KOMA-Script- or
    AMS-classes are\MessageBreak of no use with
    `fbithesis'.\MessageBreak The command `\string##1' is ignored}}%
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\extratitle}
%  \begin{macro}{\titlehead}
%  \begin{macro}{\publishers}
%    As described in subsection \ref{subsubsec:koma} (page
%    \pageref{subsubsec:koma}) some of the
%    title-affecting commands from \koma\ are ignored by
%    \package{\filename}.  They are redefined so the user gets a
%    warning if he uses them.
%    \changes{v1.1c}{2003/02/07}{redefine \koma-commands}
%    \changes{v1.1e}{2003/03/04}{use \cmd{\iffbi@base@koma}}
%    \begin{macrocode}
  \iffbi@base@koma
    \renewcommand*{\extratitle}[1]{\fbi@warning{\extratitle}}%
    \renewcommand*{\titlehead}[1]{\fbi@warning{\titlehead}}%
    \renewcommand*{\publishers}[1]{\fbi@warning{\publishers}}%
  \fi
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%
%  \begin{macro}{\address}
%  \begin{macro}{\curraddr}
%  \begin{macro}{\email}
%  \begin{macro}{\urladdr}
%  \begin{macro}{\keywords}
%  \begin{macro}{\translator}
%  \begin{macro}{\subjclass}
%    As described in subsection \ref{subsubsec:ams} (page
%    \pageref{subsubsec:ams}) some of the
%    title-affecting commands from \ams\ are ignored by
%    \package{\filename}.  They are redefined so the user gets a
%    warning if he uses them.
%    \changes{v1.1c}{2003/02/07}{redefine \ams-commands}
%    \changes{v1.1e}{2003/03/04}{use \cmd{\iffbi@base@ams}}
%    \begin{macrocode}
  \iffbi@base@ams
    \renewcommand*{\address}[2][]{\fbi@warning{\address}}%
    \renewcommand*{\curraddr}[2][]{\fbi@warning{\curraddr}}%
    \renewcommand*{\email}[2][]{\fbi@warning{\email}}%
    \renewcommand*{\urladdr}[2][]{\fbi@warning{\urladdr}}%
    \renewcommand*{\keywords}[1]{\fbi@warning{\keywords}}%
    \renewcommand*{\translator}[2][]{\fbi@warning{\translator}}%
    \renewcommand*{\subjclass}[1]{\fbi@warning{\subjclass}}%
  \fi
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%
%    The following three definitions are based on \cmd{\dolist} (see
%    \cite[answer to example 11.5]{knuth:1986:texbook}).
%    \cmd{\fbi@dolist} will be used by \cmd{\fbi@stretchto} (see
%    below).
%  \begin{macro}{\fbi@dolist}
%    Assign the next token to \cmd{\fbi@next} and call
%    \cmd{\fbi@donext} after that.
%    \changes{v0.7d}{2002/11/25}{new}
%    \begin{macrocode}
  \def\fbi@dolist{\afterassignment\fbi@donext\let\fbi@next= }%
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\fbi@donext}
%    Process the next token (stored in \cmd{\fbi@next}).
%    \changes{v0.7d}{2002/11/25}{new}
%    \changes{v0.7h}{2002/12/12}{optimization with \cs{expandafter}
%      (Thanks to Stephan)}
%    \begin{macrocode}
  \def\fbi@donext{%
%    \end{macrocode}
%    If we have reached the end of the list, we stop (do nothing).
%    \begin{macrocode}
    \ifx\fbi@next\fbi@endlist%
    \else%
%    \end{macrocode}
%    Otherwise call a macro named \cmd{\fbi@do} for each token.
%    \begin{macrocode}
      \fbi@do%
%    \end{macrocode}
%    Do a recursive call of \cmd{\fbi@dolist} to process the next
%    token.  Of course we have to use \cs{expandafter} to get this
%    actually done \emph{after} the \cs{fi}.
%    \begin{macrocode}
      \expandafter\fbi@dolist%
    \fi}%
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\fbi@endlist}
%    Recursive definition of \cmd{\fbi@endlist}.
%    \changes{v0.7d}{2002/11/25}{new}
%    \begin{macrocode}
  \def\fbi@endlist{\fbi@endlist}%
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\fbi@stretchto}
%    The macro \cmd{\fbi@stretchto}\marg{width}\marg{textmacro} stretches
%    the content of \cs{}\meta{textmacro} to \meta{width}.
%
%    This command is based on the \package{tracking}-style (see
%    \cite{glazkov:tracking}) by
%    \person{Glazkov}\footnote{\mail[D. A.
%      Glazkov]{glazkov@sci.lpi.msk.su}}.
%
%    It makes use of the \cmd{\fbi@dolist} defined above to place
%    \cmd{\kern} commands between each two tokens.
%    \cmd{\fbi@stretchto} is used by some of the
%    \cmd{\fbi@place@}\meta{\ldots} commands to stretch a string to a
%    given length.
%    \changes{v0.7d}{2002/11/25}{new}
%    \changes{v0.7f}{2002/11/28}{optimized}
%    \changes{v1.2d}{2005/12/22}{expand textmacro}
%    \begin{macrocode}
  \newcommand*{\fbi@stretchto}[2]{%
    \@tempcnta=\z@%
%    \end{macrocode}
%    First we have to count the tokens.  So we define \cmd{\fbi@do} to
%    add `1' to a counter and call \cmd{\fbi@dolist} with the string.
%    \begin{macrocode}
    \def\fbi@do{\advance\@tempcnta by\@ne\relax}%
%    \end{macrocode}
%    Since the second argument is a macro we have to expand it to its
%    content before calling \cmd{\fbi@dolist}
%    \begin{macrocode}
    \expandafter\fbi@dolist##2\fbi@endlist%
    \advance\@tempcnta by\m@ne\relax
%    \end{macrocode}
%    After that we calculate the extra space that has to be added
%    between each two tokens.
%    \begin{macrocode}
    \setbox\@tempboxa=\hbox{##2}%
    \@tempdima=##1%
    \advance\@tempdima by-\wd\@tempboxa\relax
    \divide\@tempdima by\@tempcnta\relax
%    \end{macrocode}
%    Now we call \cmd{\fbi@dolist} again with the string, this time
%    \cmd{\fbi@do} is defined to place an appropriate \cmd{\kern}
%    after each token.
%    \begin{macrocode}
    \def\fbi@do{%
      \expandafter\if\space\fbi@next%
        \setbox\@tempboxa=\hbox{\ }%
      \else%
        \setbox\@tempboxa=\hbox{\fbi@next}%
      \fi%
      \box\@tempboxa\kern\@tempdima}%
    \hbox{\expandafter\fbi@dolist##2\fbi@endlist\unkern}}%
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\fbi@place@windowheader}
%    This is the code that does the header above the window.  The
%    fontsize of 20 point is rather exact but I'm not yet satisfied
%    with the font and its thickness.  We use the font Helvetica,
%    unfortunately it doesn't match exactly (see the `O', `M' or `R').
%    \changes{v0.2a}{2001/09/17}{removed `underfull vbox'-warning}
%    \changes{v0.4e}{2002/04/09}{removed \package{german.sty}
%      usage}
%    \changes{v0.5c}{2002/08/28}{new (swap out stuff)}
%    \changes{v0.5g}{2002/09/12}{corrected}
%    \changes{v0.7d}{2002/11/25}{use \cmd{\fbi@stretchto}}
%    \changes{v0.7i}{2002/12/14}{request font with normal width}
%    \changes{v1.1g}{2003/03/27}{begun preparation (flexible layout 
%      stuff)}
%    \changes{v1.1h}{2003/05/29}{\"{A}-calculations}
%    \changes{v1.1j}{2003/07/03}{completed preparation (flexible
%      layout stuff)}
%    \changes{v1.2m}{2011/02/06}{use \cmd{\fbi@ue}}
%    \begin{macrocode}
  \newcommand*{\fbi@place@windowheader}{%
%    \end{macrocode}
%    The `\"{A}' consists of more than one token (|\"{A}|).  Below we
%    use \cmd{\fbi@dolist} to spread a text containing an `\"{A}'. 
%    Since the macro processes tokens, the `\"{A}' has to be also
%    exactly one token.
%    \begin{macrocode}
    \def\fbi@ae{\"{A}}%
%    \end{macrocode}
%    The same applies to ``\"{U}:
%    \begin{macrocode}
    \def\fbi@ue{\"{U}}%
    \fontfamily{phv}\fontseries{b}\fontsize{20}{22}\selectfont%
%    \end{macrocode}
%    The height of the header above the window and the logo of the
%    university (see \cmd{\fbi@place@tulogo}) is
%    \cmd{\fbi@size@v@windowhead} (1.45cm).  This is, however, meant
%    without the dots of the `\"{A}'.  So we have to measure the
%    difference between `\"{A}' and `A' and enlarge the parbox by this
%    value.
%    \begin{macrocode}
    \setbox\@tempboxa=\hbox{\fbi@ae}%
    \@tempdima=\ht\@tempboxa%
    \setbox\@tempboxa=\hbox{A}%
    \advance\@tempdima by-\ht\@tempboxa%
    \@tempdimb=\fbi@size@v@windowhead cm%
    \advance\@tempdimb by \@tempdima%
%    \end{macrocode}
%    Now, having calculated the correct enlarged height of the header,
%    we set the box.
%    \changes{v1.2d}{2005/12/22}{use \cmd{\fbi@text@uni} and
%      \cmd{\fbi@text@fbi}}
%    \changes{v1.2m}{2011/02/06}{use \cmd{\fbi@text@tu}, 
%      \cmd{\fbi@text@do} and \cmd{\fbi@text@fi}}
%    \begin{macrocode}
    \parbox[b][\@tempdimb][s]{\fbi@size@h@window cm}{%
      \vspace{\z@}%
      \fbi@stretchto{\fbi@size@h@window cm}{\fbi@text@tu}\par
      \fbi@stretchto{\fbi@size@h@window cm}{\fbi@text@do}\par\vfil%
      \fontseries{m}\selectfont%
      \fbi@stretchto{\fbi@size@h@window cm}{\fbi@text@fi}\par}
  }%
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\fbi@place@tulogo}
%    If \cmd{\fbi@logo@tu} is defined (by using \cmd{\unidologo}),
%    the logo of the TU Dortmund is set here.  It is
%    resized to a height of \cmd{\fbi@size@v@windowhead} (the same
%    height as the height of \cmd{\fbi@place@windowheader}) and a
%    width of \cmd{\fbi@size@h@logo}.  By the option
%    \Lopt{keepaspectratio} we take care not to distort the logo.
%    \changes{v0.5a}{2002/08/14}{use \cmd{\fbi@logo@tu}
%      (title-enhance stuff)}
%    \changes{v0.5c}{2002/08/28}{new (swap out stuff)}
%    \changes{v0.6a}{2002/09/23}{control width}
%    \changes{v1.1g}{2003/03/27}{begun preparation (flexible layout 
%      stuff)}
%    \changes{v1.1j}{2003/07/03}{completed preparation (flexible
%      layout stuff)}
%    \changes{v1.2m}{2011/02/06}{renamed from \cmd{\fbi@place@unilogo}
%      to \cmd{\fbi@place@tulogo}}
%    \begin{macrocode}
  \newcommand*{\fbi@place@tulogo}{%
    \ifx\fbi@logo@tu\undefined\else%
      \makebox(\fbi@size@h@logo,\fbi@size@v@windowhead)[br]{%
        \includegraphics[width=\fbi@size@h@logo cm,%
                         height=\fbi@size@v@windowhead cm,%
                         keepaspectratio]{%
          \fbi@logo@tu}}%
    \fi
  }%
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\fbi@place@window}
%    This is the code that does the window in the cover page.  The
%    content of the following \env{minipage} matches the window in the
%    cardboard so it is also visible even with a closed cover.
%    \changes{v0.3e}{2002/04/04}{\Lopt{draft} revision}
%    \changes{v0.4c}{2002/04/06}{swapped out}
%    \changes{v0.4f}{2002/07/05}{definition changed}
%    \changes{v0.5i}{2002/09/19}{\cmd{\thanks} stuff}
%    \changes{v0.6c}{2002/10/15}{\cmd{\date} stuff}
%    \changes{v1.1g}{2003/03/27}{begun preparation (flexible layout 
%      stuff)}
%    \changes{v1.1j}{2003/07/03}{completed preparation (flexible
%      layout stuff)}
%    \changes{v1.1p}{2004/03/21}{font variables used}
%    \begin{macrocode}
  \newcommand*{\fbi@place@window}{%
    \begin{minipage}[b][\fbi@size@v@window cm][s]{\fbi@size@h@window cm}%
%    \end{macrocode}
%
%    Before we begin to place the title-information, there have to be
%    redefinitions of some macros concerning
%    \describemacro{\footnote}\cmd{\footnote}/\cmd{\thanks}.  Normally
%    the arguments of \describemacro{\thanks}\cmd{\thanks} are
%    collected in a macro named \describemacro{\@thanks}\cmd{\@thanks}
%    and placed at the bottom of the page later.  In our case this
%    doesn't make sense, since the contents of \cmd{\@thanks} would be
%    hidden by the cardboard cover while the footnote-marks are
%    visible.  So the appropriate place for the contents is the bottom
%    of the window in the cover page.  So we can simply use the
%    \cmd{\footnote}~command (rescued in \cs{@oldfootnote}) of the
%    \env{minipage}~environment.  Due to the limited space we use a
%    smaller fontsize than normal.  Additionally we don't want the
%    \env{minipage}~numbering of footnotes (\textit{a}, \textit{b},
%    \textit{c}, \ldots see \cite{ltx2e:ltboxes}) so we redefine
%    \cmd{\thempfootnote} (see \cite{ltx2e:ltfloat}) to get the
%    \koma~numbering ($\ast$, $\dagger$, $\ddagger$, \ldots).
%    \begin{macrocode}
      \let\footnotesize=\fbi@font@thanks%
      \def\thempfootnote{\@fnsymbol\c@mpfootnote}%
%    \end{macrocode}
%    As said before, the footnotes look rather bad on the title page
%    and I do not recommend to use the \cmd{\thanks}~mechanism.  It
%    would be a much better idea to put eMail-addresses,
%    acknowledgements, dedications and such things in a preface.  So
%    we drop a warning on the usage of \cmd{\thanks}.
%    \begin{macrocode}
      \def\thanks{\ClassWarningNoLine{fbithesis}{The use of
          \protect\thanks\space is not recommended with \MessageBreak
          `fbithesis'.  Write a preface instead}%
%    \end{macrocode}
%    Nevertheless we process the footnote:
%    \begin{macrocode}
        \@oldfootnote}%
%    \end{macrocode}
%    We set the author(s) in a \cmd{\Large}~font.  As in the standard
%    \LaTeX\ classes we do this inside a tabular environment to get
%    them in a single column.  Since the \ams-classes store the
%    authors in \cmd{\authors} instead of \cmd{\@author} we have to
%    distinguish between the possible baseclasses.
%    \changes{v1.1c}{2003/02/07}{support \ams-title}
%    \changes{v1.1e}{2003/03/04}{use \cmd{\iffbi@base@ams}}
%    \begin{macrocode}
      \vspace{\z@}%
      \begin{center}%
        \vskip 2em%
        {\fbi@font@author%
          \lineskip .75em%
          \begin{tabular}[t]{c}%
            \iffbi@base@ams\authors\else\@author\fi
          \end{tabular}\par}%
%    \end{macrocode}
%    We leave a little space and set the title in a \cmd{\LARGE}~font.
%    \begin{macrocode}
        \vfil%
        {\fbi@font@title\@title\par}%
        \vfil%
%    \end{macrocode}
%    If \cmd{\@subject} is defined (by using \cmd{\subject},
%    see above) it is placed here.  Before the date we leave a little
%    whitespace again.
%    \begin{macrocode}
        \ifx\@subject\undefined\else%
          {\fbi@font@subject\@subject\par}%
          \vfil%
        \fi%
%    \end{macrocode}
%    If \cmd{\fbi@startdate} is defined (by using the optional
%    argument of \cmd{\date}, see above) we place it---followed by a
%    dash---before the date.
%    \begin{macrocode}
        {\fbi@font@date\ifx\@empty\fbi@startdate\else%
                 {\fbi@startdate} --
               \fi%
               \@date\par}%
      \end{center}%
%    \end{macrocode}
%    Without the small skip here the text would glue to the windowborder
%    which would be ugly.
%    \changes{v1.2g}{2006/07/14}{prevent the text to glue to the window}
%    \begin{macrocode}
      \vskip 2em%
%    \end{macrocode}
%    Since there is already a skip we suppress an additional
%    \cmd{\skip}\cmd{\footins}.
%    \changes{v1.2i}{2006/09/04}{No skip before footnotes}
%    \begin{macrocode}
      \skip\footins=\z@%
    \end{minipage}}%
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\fbi@place@thesislogo}
%    If \cmd{\fbi@logo@thesis} is defined (by using \cmd{\thesislogo}),
%    another logo is set here.  It is resized to a height of
%    \cmd{\fbi@size@v@window} (the same height as the height of
%    \cmd{\fbi@place@window}) and a width of \cmd{\fbi@size@h@logo}.
%    By the option \Lopt{keepaspectratio} we take care not to distort
%    the logo.
%    \changes{v0.6d}{2002/10/19}{new}
%    \changes{v1.1g}{2003/03/27}{begun preparation (flexible layout 
%      stuff)}
%    \changes{v1.1j}{2003/07/03}{completed preparation (flexible
%      layout stuff)}
%    \begin{macrocode}
  \newcommand*{\fbi@place@thesislogo}{%
    \ifx\fbi@logo@thesis\undefined\else%
      \makebox(\fbi@size@h@logo,\fbi@size@v@window)[cr]{%
        \includegraphics[width=\fbi@size@h@logo cm,%
                         height=\fbi@size@v@window cm,%
                         keepaspectratio]{%
          \fbi@logo@thesis}}%
    \fi
  }%
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\fbi@place@windowfooter}
%    This is the code that does the footer below the window.  Again
%    Helvetica doesn't match exactly but its the best font I got.
%    \changes{v0.5c}{2002/08/28}{new (swap out stuff)}
%    \changes{v0.5g}{2002/09/12}{corrected}
%    \changes{v0.7d}{2002/11/25}{use \cmd{\fbi@stretchto}}
%    \changes{v1.1g}{2003/03/27}{begun preparation (flexible layout 
%      stuff)}
%    \changes{v1.1j}{2003/07/03}{completed preparation (flexible
%      layout stuff)}
%    \changes{v1.2d}{2005/12/22}{use \cmd{\fbi@text@ir@de} and
%      \cmd{\fbi@text@ir@en}}
%    \begin{macrocode}
  \newcommand*{\fbi@place@windowfooter}{%
    \parbox[b][\fbi@size@v@windowfoot cm][s]{\fbi@size@h@window cm}{%
      \vspace{\z@}%
      \fontfamily{phv}\fontseries{m}\fontsize{20}{22}\selectfont%
      \fbi@stretchto{\fbi@size@h@window cm}{\fbi@text@ir@de}\par\vfil%
      \fbi@stretchto{\fbi@size@h@window cm}{\fbi@text@ir@en}\par
    }}%
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\fbi@place@chair}
%    This is the code that places the contents of \cmd{\fbi@chair},
%    \cmd{\fbi@supervis@i} and \cmd{\fbi@supervis@ii}.
%    \changes{v0.5a}{2002/04/10}{prepared use of
%      \cmd{\fbi@supervisors} and \cmd{\fbi@chair} (title-enhance
%      stuff)}
%    \changes{v0.5c}{2002/08/28}{new (swap out stuff)}
%    \changes{v0.5h}{2002/09/18}{corrected}
%    \changes{v0.5j}{2002/09/21}{bug fixed}
%    \changes{v0.6a}{2002/09/23}{use \cmd{\fbi@str@supervisors}
%      (internationalization)}
%    \changes{v0.6a}{2002/09/23}{use \cmd{\iffbi@chair}}
%    \changes{v0.7g}{2002/11/29}{remove \cmd{\iffbi@chair}}
%    \changes{v1.1g}{2003/03/27}{begun preparation (flexible layout 
%      stuff)}
%    \changes{v1.1j}{2003/07/03}{completed preparation (flexible
%      layout stuff)}
%    \changes{v1.1p}{2004/03/21}{font variables used}
%    \changes{v1.2d}{2005/12/22}{Renamed \cmd{\fbi@str@supervisors}
%      with \cmd{\fb@text@supervisors}}
%    \begin{macrocode}
  \newcommand*{\fbi@place@chair}{%
    \parbox[b][\fbi@size@v@chair cm][s]{\fbi@size@h@window cm}{%
      \vspace{\z@}%
      {\fbi@font@chair\fbi@chair\par}%
      \vfil%
      {\fbi@font@super%
      {\bfseries\fbi@text@supervisors}\par
      \fbi@supervis@i\par
      \fbi@supervis@ii\par}
    }%
  }%
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\fbi@place@chairlogo}
%    On \cmd{\fbi@chairtrue} the logo of the chair is set here.  It is
%    resized to a height of \cmd{\fbi@size@v@chair} (the same height
%    as the height of \cmd{\fbi@place@chair}) and a width of
%    \cmd{\fbi@size@h@logo}.  By the option \Lopt{keepaspectratio} we
%    take care not to distort the logo.
%    \changes{v0.5a}{2002/04/10}{use \cmd{\fbi@logo@chair}
%      (title-enhance stuff)}
%    \changes{v0.5c}{2002/08/28}{new (swap out stuff)}
%    \changes{v0.6a}{2002/09/23}{use \cmd{\iffbi@chair}}
%    \changes{v0.6a}{2002/09/23}{control width}
%    \changes{v0.7g}{2002/11/29}{remove \cmd{\iffbi@chair}}
%    \changes{v1.1g}{2003/03/27}{begun preparation (flexible layout 
%      stuff)}
%    \changes{v1.1j}{2003/07/03}{completed preparation (flexible
%      layout stuff)}
%   \begin{macrocode}
  \newcommand*{\fbi@place@chairlogo}{%
    \ifx\fbi@logo@chair\undefined\else%
      \makebox(\fbi@size@h@logo,\fbi@size@v@chair)[cr]{%
        \includegraphics[width=\fbi@size@h@logo cm,%
                         height=\fbi@size@v@chair cm,%
                         keepaspectratio]{%
          \fbi@logo@chair}}%
    \fi
  }%
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\fbi@place@address}
%    This is the code that does the address.
%    \changes{v0.5d}{2002/08/29}{new}
%    \changes{v0.5g}{2002/09/12}{corrected}
%    \changes{v0.7d}{2002/11/25}{use \cmd{\fbi@stretchto}}
%    \changes{v1.1g}{2003/03/27}{begun preparation (flexible layout 
%      stuff)}
%    \changes{v1.1j}{2003/07/03}{completed preparation (flexible
%      layout stuff)}
%    \changes{v1.2d}{2005/12/22}{use \cmd{\fbi@text@address}}
%    \begin{macrocode}
  \newcommand*{\fbi@place@address}{%
    \makebox(\fbi@size@h@address,\fbi@size@v@address)[b]{%
      \vspace{\z@}%
      \fontfamily{phv}\fontseries{m}\fontsize{14}{16}\selectfont%
      \def\fbi@dot{$\cdot$}%
      \fbi@stretchto{\fbi@size@h@address cm}{\fbi@text@address}}}%
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\fbi@place@marks}
%    We add some marks to the title page in the
%    \Lopt{draft}~mode.  This will help you to
%    check the placement of the title page.  At the top, bottom, left
%    and right border of the paper millimeter scales are placed, so
%    you can easily read the necessary translation of the title page. 
%    If the placement is correct, a frame will match the window of the
%    cardboard.\describeoption{draft}
%    \changes{v0.5d}{2002/08/29}{new}
%    \changes{v0.6d}{2002/10/19}{better: scales}
%    \changes{v1.1j}{2003/07/03}{begun preparation (flexible layout 
%      stuff)}
%    \changes{v1.1m}{2003/09/16}{completed preparation (flexible
%      layout stuff)}
%    \begin{macrocode}
  \iffbi@draft%
    \newcommand*{\fbi@place@marks}{%
      \thinlines%
%    \end{macrocode}
%
%  \begin{macro}{\fbi@hscale}
%    We create a new savebox named \cmd{\fbi@hscale}.
%    \changes{v1.1m}{2003/09/16}{new}
%    \begin{macrocode}
      \newsavebox{\fbi@hscale}%
%    \end{macrocode}
%    The savebox is defined to contain a horizintal centimeter scale. 
%    At each millimeter a line is drawn (longer lines at $0$, $0.5$
%    and $1$ centimeter).  Since we want to make the center of the
%    left line the reference point, each line has to be centered.
%    So we have to move the starting points of each line by the half of
%    the line's length.
%    \begin{macrocode}
      \savebox{\fbi@hscale}(0,0){%
%    \end{macrocode}
%    First we draw a long line at $0$ and $1$ centimeter.
%    \begin{macrocode}
        \multiput(0,-0.6)(1,0){2}{%
          \put(0,0){\line(0,1){1.2}}%
        }%
%    \end{macrocode}
%    A semilong line is placed at $0.5$ centimeter.
%    \begin{macrocode}
        \put(0.5,-0.4){\line(0,1){0.8}}%
%    \end{macrocode}
%    The rest is filled with short lines every $0.1$ centimeter.
%    \begin{macrocode}
        \multiput(0.1,-0.15)(0.1,0){9}{%
          \put(0,0){\line(0,1){0.3}}%
        }%
      }%
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\fbi@vscale}
%    We create a new savebox named \cmd{\fbi@vscale}.
%    \begin{macrocode}
      \newsavebox{\fbi@vscale}%
%    \end{macrocode}
%    \changes{v1.1m}{2003/09/16}{new}
%    The savebox is defined to contain a vertical centimeter scale. 
%    At each millimeter a line is drawn (longer lines at $0$, $0.5$
%    and $1$ centimeter).  Since we want to make the center of the
%    bottom line the reference point, each line has to be centered.
%    So we have to move the starting points of each line by the half of
%    the line's length.
%    \begin{macrocode}
      \savebox{\fbi@vscale}(0,0){%
%    \end{macrocode}
%    First we draw a long line at $0$ and $1$ centimeter.
%    \begin{macrocode}
        \multiput(-0.6,0)(0,1){2}{%
          \put(0,0){\line(1,0){1.2}}%
        }%
%    \end{macrocode}
%    A semilong line is placed at $0.5$ centimeter.
%    \begin{macrocode}
        \put(-0.4,0.5){\line(1,0){0.8}}%
%    \end{macrocode}
%    The rest is filled with short lines every $0.1$ centimeter.
%    \begin{macrocode}
        \multiput(-0.15,0.1)(0,0.1){9}{%
          \put(0,0){\line(1,0){0.3}}%
        }%
      }%
%    \end{macrocode}
%  \end{macro}
%
%    Now we continue with placing the marks.  First we generate a
%    frame showing the window of the cardboard.  This is useful while
%    layouting the stuff in it.
%    \begin{macrocode}
      \put(\fbi@pos@h@,\fbi@pos@v@window){%
        \framebox(\fbi@size@h@window,\fbi@size@v@window){}}%
%    \end{macrocode}
%    Two horizontal scales a placed, one at the left the other at the
%    right border of the page.  We begin with the left scale,
%    vertically spaced (at \cmd{\fbi@hscalemid}).  The second one is
%    placed with a distance of \cmd{\fbi@hscaleleft} at the right
%    border of the page.
%    \begin{macrocode}
      \multiput(0,\fbi@pos@v@scale)(\fbi@size@h@scale,0){2}{%
%    \end{macrocode}
%    Each scale is two centimeters long. A horizontal
%    one-centimeter-scale is saved in the box \cmd{\fbi@hscale}. We
%    use it twice.
%    \begin{macrocode}
        \multiput(0,0)(1,0){2}{%
          \put(0,0){\usebox{\fbi@hscale}}%
        }%
      }%
%    \end{macrocode}
%    This is some sort of bad hack here.  I don't know why the scales
%    have to be moved by $0.5$ centimeter, but otherwise it wouldn't
%    be correct.  If someone knows the reason I'll be all ears!
%    \begin{macrocode}
      \put(0,0.5){%
%    \end{macrocode}
%    Two vertical scales, one at the bottom the other at the top of 
%    the page a placed. We begin with the bottom scale, horizontally 
%    spaced (at \cmd{\fbi@vscalemid}). The second one is placed with 
%    a distance of \cmd{\fbi@vscalebottom} at the top of the page.
%    \begin{macrocode}
        \multiput(\fbi@pos@h@scale,0)(0,\fbi@size@v@scale){2}{%
%    \end{macrocode}
%    Each scale is two centimeters long. A vertical
%    one-centimeter-scale is saved in the box \cmd{\fbi@vscale}. We
%    use it twice.
%    \begin{macrocode}
          \multiput(0,0)(0,1){2}{%
            \put(0,0){\usebox{\fbi@vscale}}%
          }%
        }%
      }%
%    \end{macrocode}
%    \begin{macrocode}
    }%
  \else%
    \let\fbi@place@marks=\relax
  \fi%
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\fbi@text@declaration}
%    The macro \cmd{\fbi@text@declaration} holds the text for the
%    declaration.
%    \changes{v1.2e}{2006/01/05}{new}
%    \begin{macrocode}
\def\fbi@text@declaration{%
%    \end{macrocode}
%    We have to find out how many authors there are. To do this we
%    redefine the macro \cmd{\and} and expand the macro \cmd{\@author}
%    (or \cmd{\authors} if we are using \ams). To make the changes
%    local we open a group
%    \begin{macrocode}
  \begingroup
    \fbi@tempcnta=\z@%
    \@tempswafalse%
%    \end{macrocode}
%  \begin{macro}{\and}
%    Now we redefine the macro \cmd{\and}. After this we are able to
%    detect the use of the macro because it sets the switch
%    \cmd{\@tempswa} to true.
%    \changes{v1.2e}{2006/01/17}{new}
%    \changes{v1.2g}{2006/07/17}{make switch global}
%    \begin{macrocode}
    \renewcommand*{\and}{%
%    \end{macrocode}
%    Since we are in a group here we cannot use \cmd{\@tempswatrue}.
%    This would last only until the end of the group. We want to have
%    a global switch, so we need to do the \cmd{\let} manually.
%    \begin{macrocode}
      \global\let\if@tempswa=\iftrue%
      \global\advance\fbi@tempcnta by \@ne%
    }%
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\thanks}
%    Perhaps there are \cmd{\thanks}-calls in \cmd{authors}. We have to
%    make these harmless.
%    \changes{v1.2e}{2006/01/18}{new}
%    \begin{macrocode}
    \let\thanks=\@gobble%
%    \end{macrocode}
%  \end{macro}
%
%    The macro \cmd{\@author} has to be executed so the changed
%    definition of \cmd{\and} comes to work. Since we do not want to put
%    something on paper here we ``print'' in a box.
%    \begin{macrocode}
    \setbox\@tempboxa=\vbox{\iffbi@base@ams\authors\else\@author\fi}%
    \ClassInfo{fbithesis}{Number of authors: \the\fbi@tempcnta +1}%
%    \end{macrocode}
%    We do not need the content of the box \cmd{\@tempboxa} we only
%    need the macro \cmd{\@author} being completly expanded. With the
%    switch \cmd{\@tempswa} we are now able to determine wether there
%    is more than one author. So we can define the text-macros:
%  \begin{macro}{\fbi@text@mewe}
%    The macro \cmd{fbi@text@mewe} 
%    Currently only the german language is supported.
%    \changes{v1.2e}{2006/01/05}{new}
%    \changes{v1.2e}{2006/01/17}{support for more than one author}
%    \begin{macrocode}
    \xdef\fbi@text@mewe{\if@tempswa wir\else ich\fi}%
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\fbi@text@have}
%    Currently only the german language is supported.
%    \changes{v1.2e}{2006/01/05}{new}
%    \changes{v1.2e}{2006/01/17}{support for more than one author}
%    \begin{macrocode}
    \xdef\fbi@text@have{\if@tempswa haben\else habe\fi}%
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\fbi@text@declare}
%    Currently only the german language is supported.
%    \changes{v1.2e}{2006/01/05}{new}
%    \changes{v1.2e}{2006/01/17}{support for mpre than one author}
%    \begin{macrocode}
    \xdef\fbi@text@declare{\if@tempswa erkl\"{a}ren\else erkl\"{a}re\fi}%
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\fbi@text@work}
%    Currently only then german language is supported.
%    \changes{v1.2e}{2006/01/17}{new}
%    \begin{macrocode}
    \xdef\fbi@text@work{%
      \if@tempswa
        entsprechend gekennzeichneten Teile der vorliegenden\space%
        Gruppenarbeit%
      \else
        vorliegende Arbeit%
      \fi
    }%
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\and}
%    Again we redefine the makro \cmd{\and}. For the declaration text we
%    need a comma-separated list of all authors but the last author
%    separated by `und'.
%    \changes{v1.2e}{2006/01/18}{new}
%    \begin{macrocode}
    \fbi@tempcntb=\z@%
    \renewcommand*{\and}{%
      \advance\fbi@tempcntb by \@ne%
%    \end{macrocode}
%    The number of authors: \Lcount{fbi@tempcnta}. Up to
%    \Lcount{fbi@tempcnta} we insert a comma between two authors, for
%    the last author we insert an `und'.
%    \begin{macrocode}
      \ifnum\fbi@tempcntb<\fbi@tempcnta
        \unskip ,\space%
       \else
        und\space%
      \fi
    }%
%    \end{macrocode}
%  \end{macro}
%    \begin{macrocode}
    Hiermit \fbi@text@declare\space\fbi@text@mewe ,
    \iffbi@base@ams\authors\else\@author\fi , dass \fbi@text@mewe\ die
    \fbi@text@work\ selbstst\"{a}ndig verfasst und keine anderen als
    die angegebenen Quellen und Hilfsmittel verwendet \fbi@text@have .
    Zitate \fbi@text@have\space\fbi@text@mewe\ stets kenntlich
    gemacht.
  \endgroup
}%
%    \end{macrocode}
%  \end{macro}
%
%    Now we have all the macros defined hepling us in 
%    \cmd{\maketitle}. We are now able to continue with the 
%    redefinition of this central macro.
%
%    \changes{v1.1n}{2003/10/08}{Redef. of \cmd{\maketitle}: new}
%^^A =================================================================
%^^A   Continuation of \renewcommand{\maketitle}
%^^A =================================================================
%    \subsubsection{Redefinition of \cmd{\maketitle}}
%    \label{subsubsec:maketitle}
%
%    The \koma-classes provide a mechanism to set the number, the page
%    numbering will start with.  This is done by an optional argument
%    to \cs{maketitle} and defaults to $1$.
%    \begin{macrocode}
    \setcounter{page}{#1}%
%    \end{macrocode}
%    Now here comes the `pretty good guess'.  We accumulate all
%    vertical translations of the print space calculated by \TeX\ in
%    \Llength{\fbi@skip@v} and the horizontal ones in
%    \Llength{\fbi@skip@h}.  If the printers positioning is correct we
%    now know exactly at which position on the page we are.
%    \begin{macrocode}
    \addtolength{\fbi@skip@v}{\topmargin}%
    \addtolength{\fbi@skip@v}{\headheight}%
    \addtolength{\fbi@skip@v}{\headsep}%
    \addtolength{\fbi@skip@v}{\topskip}%
    \addtolength{\fbi@skip@v}{\baselineskip}%
    \addtolength{\fbi@skip@h}{\oddsidemargin}%
    \addtolength{\fbi@skip@v}{1in}%
    \addtolength{\fbi@skip@h}{1in}%
    \addtolength{\fbi@skip@v}{\voffset}%
    \addtolength{\fbi@skip@h}{\hoffset}%
%    \end{macrocode}
%    For the interested user the resulting values are written into the
%    \file{.log}~file.
%    \begin{macrocode}
    \ClassInfo{fbithesis}{%
      These are the calculated values describing the\MessageBreak
      translation of the print space:\MessageBreak Vertical
      skip\space\space\space=\space\the\fbi@skip@v\MessageBreak
      Horizontal skip\space=\space\the\fbi@skip@h}%
%    \end{macrocode}
%    With \cmd{\fbi@skip@v} and \cmd{\fbi@skip@h} we vertically and
%    horizontally place the title page.
%    \begin{macrocode}
    \null\vskip -\fbi@skip@v\vbox to \z@{%
    \noindent\hskip -\fbi@skip@h\hb@xt@\z@{%
%    \end{macrocode}
%    We open a \env{picture}~environment over the whole page. This
%    allows us to place the components exactly where we want them.
%    \begin{macrocode}
    \setlength{\unitlength}{1cm}%
    \@picture(\fbi@size@h@paper,\fbi@size@v@paper)(0,0)
%    \end{macrocode}
%    If the decoration is to be shown \ldots
%    \begin{macrocode}
      \iffbi@decor
%    \end{macrocode}
%    place the header above the window \ldots
%    \begin{macrocode}
        \put(\fbi@pos@h@,\fbi@pos@v@windowhead){\fbi@place@windowheader}%
%    \end{macrocode}
%    and place the black filled square.
%    \begin{macrocode}
        \put(\fbi@pos@h@square,\fbi@pos@v@windowhead){%
          \rule{\fbi@size@h@square cm}{\fbi@size@h@square cm}}%
      \fi
%    \end{macrocode}
%    Place the logo of the TU Dortmund (if it is provided).
%    \begin{macrocode}
      \put(\fbi@pos@h@logo,\fbi@pos@v@windowhead){\fbi@place@tulogo}%
%    \end{macrocode}
%    This is now the window in the cover page.  Depending on
%    \cmd{\iffbi@draft} the \cmd{\fbi@place@window} is framed or not.
%    \changes{v0.4c}{2002/04/06}{swapped out code to
%                                \cmd{\fbi@place@windo}}
%    \begin{macrocode}
      \put(\fbi@pos@h@,\fbi@pos@v@window){\fbi@place@window}%
%    \end{macrocode}
%    Place the thesis-logo (if it is provided).
%    \begin{macrocode}
      \put(\fbi@pos@h@logo,\fbi@pos@v@window){\fbi@place@thesislogo}%
%    \end{macrocode}
%    Place the footer below the window if the decoration is to be shown.
%    \begin{macrocode}
      \iffbi@decor
        \put(\fbi@pos@h@,\fbi@pos@v@windowfoot){\fbi@place@windowfooter}%
      \fi
%    \end{macrocode}
%    Place the chair and the supervisors.
%    \changes{v0.5f}{2002/09/04}{placement corrected
%      (\env{picture} stuff)}
%    \begin{macrocode}
      \put(\fbi@pos@h@,\fbi@pos@v@chair){\fbi@place@chair}%
%    \end{macrocode}
%    Place the logo of the chair.
%    \changes{v0.5f}{2002/09/04}{placement corrected
%      (\env{picture} stuff)}
%    \begin{macrocode}
      \put(\fbi@pos@h@logo,\fbi@pos@v@chair){\fbi@place@chairlogo}%
%    \end{macrocode}
%    Place the address on the right side, near the bottom of the page.
%    \changes{v0.5d}{2002/08/29}{added address placement}
%    \changes{v0.5f}{2002/09/04}{placement corrected
%      (\env{picture} stuff)}
%    \begin{macrocode}
      \iffbi@decor
        \linethickness{0.5mm}%
        \put(\fbi@pos@h@address,\fbi@pos@v@addresshead){\line(1,0){%
          \fbi@size@h@address}}%
        \put(\fbi@pos@h@address,\fbi@pos@v@addressfoot){\line(1,0){%
          \fbi@size@h@address}}%
        \put(\fbi@pos@h@address,\fbi@pos@v@address){\fbi@place@address}%
      \fi
%    \end{macrocode}
%    If we are in \describeoption{draft}\Lopt{draft}~mode the frames
%    are placed on the page.
%    \begin{macrocode}
      \fbi@place@marks%
%    \end{macrocode}
%    Close the \env{picture}~environment and prevent overfull h- and
%    vboxes.
%    \begin{macrocode}
    \endpicture\hss}%
    \vss}%
%    \end{macrocode}
%    The following code is based on (and mostly copied from)
%    \cite{neukam:scrclass}.  With it the enhanced title of \koma\
%    is also provided by \package{\filename}.  For a description see
%    \cite{kohm:komabuch}.
%    \changes{v0.7e}{2002/11/26}{support \koma-title}
%    \changes{v1.1e}{2003/03/04}{use \cmd{\iffbi@base@koma}}
%    \begin{macrocode}
    \iffbi@base@koma
      \if@twoside
        \clearpage\thispagestyle{empty}%
        \noindent\begin{minipage}[t]{\textwidth}%
          \ifx\@uppertitleback\undefined\else%
            \@uppertitleback%
          \fi%
        \end{minipage}\par%
        \vfill%
        \noindent\begin{minipage}[b]{\textwidth}%
          \ifx\@lowertitleback\undefined\else%
            \@lowertitleback%
          \fi%
        \end{minipage}%
      \fi
    \fi
%    \end{macrocode}
%    \changes{v1.2e}{2006/01/18}{declaration implemented}
%    \changes{v1.2e}{2006/01/23}{signature lines implemented}
%    \changes{v1.2j}{2008/02/17}{layout of signatures changed}
%    \begin{macrocode}
    \if@twoside
      \iffbi@declaration
        \cleardoublepage\thispagestyle{empty}%
        \noindent\begin{minipage}[t]{\textwidth}%
          \noindent\fbi@text@declaration\par%
          \vspace{1cm}%
          \fbi@tempcntb=\z@%
          \loop
            \vspace{1.5cm}%
            \noindent\rule{6cm}{1pt}\hspace{0.5cm}%
            \rule{6cm}{1pt}\par%
            \noindent\parbox{6cm}{\small\fbi@text@placendate}\hspace{0.5cm}%
            \parbox{6cm}{\small\fbi@text@name}\par%
           \ifnum\fbi@tempcntb<\fbi@tempcnta
            \advance\fbi@tempcntb by \@ne%
          \repeat
        \end{minipage}
      \fi
    \fi
%    \end{macrocode}
%    This, too, is based on \cite{neukam:scrclass}.  However since the
%    \ams-classes use a different macro for the dedication, we have to
%    distinguish between the baseclasses.
%    \changes{v1.1c}{2003/02/07}{support \ams-title}
%    \changes{v1.1e}{2003/03/04}{use \cmd{\iffbi@base@ams} and
%      \cmd{\iffbi@base@koma}}
%    \begin{macrocode}
    \iffbi@base@ams
      \ifx\@dedicatory\@empty\else
        \clearpage\thispagestyle{empty}\null\vfill
        {\centering\Large\@dedicatory\par}
        \vskip \z@ \@plus3fill
        \if@twoside\clearpage\thispagestyle{empty}\cleardoublepage\fi
      \fi
    \else
      \iffbi@base@koma
        \ifx\@dedication\@empty\else
          \clearpage\thispagestyle{empty}\null\vfill
          {\centering\Large\@dedication\par}
          \vskip \z@ \@plus3fill
          \if@twoside%
            \clearpage\thispagestyle{empty}\cleardoublepage%
          \fi
        \fi
      \fi
    \fi
%    \end{macrocode}
%    Finish the title page.
%    \begin{macrocode}
  \end{titlepage}%
%    \end{macrocode}
%    Clean things up and save memory.
%    \changes{v0.6a}{2002/09/23}{use \cmd{\fbi@cleanup}}
%    \begin{macrocode}
  \fbi@cleanup%
}%
%    \end{macrocode}
%  \end{macro}
%
%    \changes{v1.1n}{2003/10/08}{Internal: new}
%^^A =================================================================
%^^A   Define internal commands
%^^A =================================================================
%    \subsubsection{Internal Commands}
%    \label{subsubsec:intern}
%
%  \begin{macro}{\fbi@cleanup}
%    After the title is set we have to do some cleanup.
%    \changes{v0.6a}{2002/09/23}{new}
%    \changes{v0.6d}{2002/10/19}{\cmd{\date}- and
%      \cmd{\thesislogo}-stuff}
%    \changes{v0.7e}{2002/11/26}{\koma-stuff}
%    \changes{v1.1p}{2004/03/21}{\cmd{\fbi@place@}|*|-commands removed}
%    \changes{v1.1p}{2004/03/21}{made global}
%    \changes{v1.2b}{2005/01/03}{cleanup isn't that neccessary}
%    \begin{macrocode}
\newcommand*{\fbi@cleanup}{%
%    \end{macrocode}
%    We reset the \Lcount{footnote}~counter and restore
%    \cmd{\footnote}'s original definition.
%    \begin{macrocode}
  \setcounter{footnote}{0}%
  \global\let\footnote=\@oldfootnote
}%
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\fbi@testGfile}
%    This command is mostly based on the definition of
%    \cmd{\Ginclude@graphics}, part of the \package{graphics}-package
%    (see \cite{ltx2e:graphics} by \person{David P.\ Carlisle}.
%
%    The macro \cmd{\fbi@testGfile}\marg{type}\marg{filename} is used
%    to ensure a graphics file \meta{filename} can in fact be found by
%    \TeX's search path.  As \meta{type} one out of |tu|, |chair| or
%    |thesis| is possible.  The macro is called by the macros
%    \cmd{\tulogo}, \cmd{\chairlogo} or \cmd{\thesislogo}.  Otherwise
%    these macros would just define the corresponding internal
%    \describecsfamily{fbi@logo@\meta{type}}
%    \cmd{\fbi@logo@}\meta{type}.  So if a graphics file is missing,
%    the user would get an error not until these macros are called in
%    \cmd{\maketitle}.
%    \changes{v1.1d}{2003/02/17}{new}
%    \changes{v1.1e}{2003/03/04}{finished}
%    \changes{v1.1f}{2003/03/20}{use \meta{type}}
%    \changes{v1.2m}{2011/02/06}{type `uni' renamed to `tu'}
%    \begin{macrocode}
\newcommand*{\fbi@testGfile}[2]{
%    \end{macrocode}
%    Enclose the following in a group to make changes local.
%    \begin{macrocode}
  \begingroup
  \let\input@path\Ginput@path
%    \end{macrocode}
%    The filename is parsed: we have to know if an extension is given.
%    \begin{macrocode}
  \filename@parse{#2}%
  \ifx\filename@ext\relax
%    \end{macrocode}
%    If there is no extension, all possible ones are tried:
%    \begin{macrocode}
    \@for\Gin@temp:=\Gin@extensions\do{%
%    \end{macrocode}
%    If we already found an existing file using one of the possible
%    extensions, we do nothing.
%    \begin{macrocode}
      \ifx\Gin@ext\relax
%    \end{macrocode}
%    Otherwise, given the possible extension \cmd{\Gin@temp} check
%    whether the file exists.  If it does \cmd{\Gin@ext} will be set
%    to this extension.
%    \begin{macrocode}
        \Gin@getbase\Gin@temp
      \fi}%
  \else
%    \end{macrocode}
%    If the user supplied an explicit extension, try that one only.
%    \begin{macrocode}
    \Gin@getbase{\Gin@sepdefault\filename@ext}%
  \fi
  \ifx\Gin@ext\relax
%    \end{macrocode}
%    If no file is found, throw a warning. The calling
%    \Bslash\meta{type}|logo| command will be ignored.
%    \begin{macrocode}
    \ClassWarning{fbithesis}{File `#2' not found.  The command
    `\backslash #1'\MessageBreak is ignored}
%    \end{macrocode}
%    If the graphics file really exists, set
%    \describecsfamily{fbi@logo@\meta{type}}\cs{fbi@logo@}\meta{type}
%    to \meta{filename}.
%    \begin{macrocode}
  \else\expandafter\gdef\csname fbi@logo@#1\endcsname{#2}\fi
  \endgroup%
}
%    \end{macrocode}
%  \end{macro}
%
%^^A =================================================================
%^^A   Config file
%^^A =================================================================
%    \subsection{Load Configuration}
%    \label{subsec:loadconfig}
%
%    Input a local configuration file (\file{\filename.cfg}), if it
%    exists.
%    \changes{v0.3d}{2002/04/03}{Config: use \file{\filename.cfg}}
%    \changes{v0.4h}{2002/08/13}{Config: changed (\file{.cfg} stuff)}
%    \begin{macrocode}
\InputIfFileExists{fbithesis.cfg}
  {\typeout{****************************************^^J%
            * Local config file fbithesis.cfg used *^^J%
            ****************************************}
  }{}%
%</package>
%    \end{macrocode}
%
%^^A =================================================================
%^^A   Here the \StopEventually stuff will be appended (if we build
%^^A   the `programmer' docu)
%^^A =================================================================
%    \Finale
%
\endinput
%
% end of file `fbithesis.dtx'
%%% Local Variables:
%%% mode: texdoc
%%% TeX-master: t
%%% End:
