% \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.0d", %%% date = "$Date: 2003/01/08 14:29:25 $", %%% filename = "fbithesis.dtx, %%% address = "Andre Dierker %%% Informatik VII %%% Universit\"at Dortmund %%% D-44221 Dortmund %%% Germany", %%% telephone = "+49 231 755 6371", %%% FAX = "+49 231 755 6321", %%% URL = "http://ls7-www.cs.uni-dortmund.de/~dierker/", %%% email = "dierker@ls7.cs.uni-dortmund.de (Internet)", %%% pgp-key = "1024D/DD2BCC9D 1999-10-27 Andre Dierker", %%% pgp-fingerprint = "8182 D1CE B1B4 2D58 B6FF %%% CBD8 8E3B 739E DD2B CC9D", %%% pgp-key = "1024D/F4D24AC9 2002-04-01 Andre Dierker %%% (software distribution key) ", %%% pgp-fingerprint = "461E 2EB4 DE3A 6BC8 3320 %%% 2A7B 59C5 21EA F4D2 4AC9", %%% codetable = "ISO/ASCII", %%% keywords = "University of Dortmund, Department of %%% computer science, internal, research, %%% project, technical, report, master, diploma, %%% phd, doctoral, thesis, dissertation, title %%% page, cover page, cardboard, %%% Universit\"at Dortmund, Fachbereich %%% Informatik, Diplomarbeit, Doktorarbeit, %%% Projektgruppe, Forschungsbericht, Intern, %%% Bericht, Endbericht, Deckblatt, Titelseite, %%% Titelblatt, %%% maketitle, titlepage, documentclass", %%% dependencies = "\LaTeXe", %%% supported = "yes", %%% checksum = "53805 3019 13101 126390", %%% abstract = "This is a LaTeX2e package providing a new %%% document-class tuned for research reports or %%% internal reports like master/phd-theses at %%% the University of Dortmund.", %%% docstring = "At the department of computer science %%% (German: `Fachbereich Informatik' or short: %%% `FBI') at the University of Dortmund (or %%% short: `UniDo') 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. %%% %%% The checksum field above contains a CRC-16 %%% checksum as the first value, followed by the %%% equivalent of the standard UNIX wc (word %%% count) utility output of lines, words, and %%% characters. This is produced by Robert %%% Solovay's checksum utility.", %%% copyright = "fbithesis.dtx, the documented macro-file for %%% the fbithesis package %%% Copyright (C) 2002 2003 Andre Dierker %%% %%% This program may be distributed and/or %%% modified under the conditions of the LaTeX %%% Project Public License, either version 1.2 %%% 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.2 or later is part of all %%% distributions of LaTeX version 1999/12/01 or %%% later. %%% %%% This program consists of the files %%% fbithesis.dtx and fbithesis.dtx.asc." %%% } % % %<*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 % University of Dortmund. % % At the department of computer science (German: `Fachbereich % Informatik' or short: `FBI') at the University of Dortmund (or short % `UniDo') 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, 00readme.txt 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 % % \fi % %^^A ================================================================= %^^A Some basic integrity-test stuff %^^A ================================================================= % \CheckSum{818} %% \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} %<*readme> %^^A ================================================================= %^^A Here is the 00readme.txt file %^^A It is written on first LaTeX run if it does not already exist %^^A ================================================================= \begin{filecontents*}{00readme.txt} The fbithesis package ($Date: 2003/01/08 14:29:25 $) Copyright (C) 2002 2003 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 University of Dortmund. At the department of computer science at the University of 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 File: 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. 00readme.txt 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. LaTeX fbithesis.dtx Creates the (LaTeX2e) documentation. optionally: Edit fbithesis.drv and customize the documentation 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 LaTeX example.tex Demonstrates the possibilities of this package. Contact: E-Mail: dierker@ls7.cs.uni-dortmund.de Address: Andre Dierker, Informatik VII, Universit\"at Dortmund, D-44221 Dortmund, Germany Legal stuff: 00readme.txt, the ReadMe file for the fbithesis package Copyright (C) 2002 2003 Andre Dierker This file is part of the fbithesis package. ------------------------------------------- There is no warranty for the fbithesis package. I provide the program `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 program prove defective, you assume the cost of all necessary servicing, repair, or correction. This program may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.2 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.2 or later is part of all distributions of LaTeX version 1999/12/01 or later. This is a generated file. It may not be distributed without the original source file fbithesis.dtx. This program consists of the files fbithesis.dtx and fbithesis.dtx.asc. 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 program must be distributed together with them. \end{filecontents*} % % % \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} %<*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 2003 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.2 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.2 or later is part of all distributions of LaTeX %% version 1999/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 `00readme.txt'. %% %% 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 ------------------- \def\batchfile{fbithesis.ins} \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 2003 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.2 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.2 or later is part of all distributions of LaTeX version\nline% 1999/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 in\nline% the file `00readme.txt'.} % %% 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% \askonceonly% % \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}}% \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}% \Msg{*}% \makeatletter\@ifundefined{basedir}{% \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 TEXINPUTS path.}% }{}\makeatother% \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 00readme.txt}% \Msg{*}% \Msg{*}% \Msg{* Happy TeXing!}% \Msg{*}% \Msg{**************************************************************}% \Msg{}% }% % \endbatchfile \end{filecontents} % % % \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{2003/01/08} % % % The required LaTeX version: %<*dtx|driver|package|example> \NeedsTeXFormat{LaTeX2e}[1994/12/01]% % % % Identification of the docstrip file: %<*dtx> \ProvidesFile %===================================================================== {fbithesis.dtx} %===================================================================== % % % Identification of the driver file: %\ProvidesFile{fbithesis.drv} % % Identification of the example file: %\ProvidesFile{example.tex} % % Identification of the configuration file: %\ProvidesFile{fbithesis.cfg} % % Identification of the package file: %\ProvidesClass{fbithesis} % % Provide command to identify example file: %\def\DescribesFile#1 [#2 #3 #4 (#5)] % {\def\filedate{#2}\def\fileversion{#3}} % % Identification of the example file: %\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} [2003/01/08 v1.0d % Documentation for fbithesis (AD)] % \iffalse % % A short description and author for driver, example, config % and package file: % UniDo FBI Report class (AD)] % Example % Configuration % Driver % for fbithesis (AD)] % % A short description and author for the docstrip file: %<*dtx> Documented source for fbithesis (AD)] % % % \changes{v0.3c}{2002/04/01}{Driver: revised} % \changes{v0.8a}{2002/12/16}{Driver: changed (LPPL removal)} %^^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}}{} % 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 -s gind.ist fbithesis % 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 -s gind.ist fbithesis % 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 any 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 -s gglo.ist -o fbithesis.gls fbithesis.glo % and re-process, with or without this line (faster without) %\RecordChanges \begin{document} \DocInput{fbithesis.dtx} \end{document} % % \fi % %^^A ================================================================= %^^A We continue with the `normal' .dtx-file %^^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} % %^^A ================================================================= %^^A Even with enabled crossrefs do not index all macros. %^^A ================================================================= % \DoNotIndex{\@empty} % \DoNotIndex{\@ifundefined} % \DoNotIndex{\@maketitle} % \DoNotIndex{\@ne} % \DoNotIndex{\@plus} % \DoNotIndex{\@tempboxa, \@tempcnta, \@tempdima} % \DoNotIndex{\\, \", \{, \} } % \DoNotIndex{\addtolength, \AtEndDocument, \advance} % \DoNotIndex{\afterassignment} % \DoNotIndex{\begin, \begingroup, \bf, \bfseries, \box} % \DoNotIndex{\baselineskip} % \DoNotIndex{\ClassError, \ClassWarning, \ClassWarningNoLine} % \DoNotIndex{\ClassInfo, \CurrentOption, \cdot, \count} % \DoNotIndex{\centering, \cleardoublepage, \clearpage} % \DoNotIndex{\DeclareRobustCommand, \def, \documentclass} % \DoNotIndex{\DeclareOption, \dimen, \divide} % \DoNotIndex{\else, \end, \ExecuteOptions, \endgroup} % \DoNotIndex{\expandafter} % \DoNotIndex{\fontfamily, \fontseries, \fontsize} % \DoNotIndex{\footnoterule, \footnotesize, \frontmatter} % \DoNotIndex{\fboxrule, \fboxsep \framebox} % \DoNotIndex{\fi, \filedate, \fileversion} % \DoNotIndex{\gdef, \global, \GenericWarning} % \DoNotIndex{\hfill, \hfil, \hskip, \hspace, \hbox, \hss, \hb@xt@} % \DoNotIndex{\headheight, \headsep, \hoffset} % \DoNotIndex{\IfFileExists, \InputIfFileExists, \ifx, \if} % \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} % \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 Some definitions to enhance the logical mark-up of this %^^A documentation %^^A ================================================================= % ^^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 eMails, urls % \DeclareRobustCommand*{\url}[1]{|#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 package options % \DeclareRobustCommand*{\Lopt}[1]{\textsf{#1}} % \DeclareRobustCommand*{\smiley}{|:-)|} % \DeclareRobustCommand*{\winkey}{|;-)|} % \DeclareRobustCommand*{\koma}{\textsf{K\kern.05em O\kern.05em% % M\kern.05em A\kern.1em-\kern.1em Script}} % \DeclareRobustCommand*{\tds}{TDS} % \DeclareRobustCommand*{\ctan}{\textsc{ctan}} % \DeclareRobustCommand*{\mail}[2]{\person{#1} % \url{\textless #2\textgreater}} % % \changes{v0.3c}{2002/04/01}{Docu: \cmd{\ifmulticols} implemented} % \changes{v0.4f}{2002/07/05}{Docu: \cmd{\ifmulticols} corrected} %^^A ================================================================= %^^A If there is a multicol.sty present, we'll print the table of %^^A contents with 2 columns %^^A ================================================================= % \newif\ifmulticols % \IfFileExists{multicol.sty}{\multicolstrue}{\multicolsfalse} % %^^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@ls7.cs.uni-dortmund.de}}} % \date{Printed on \today} % \maketitle % % \changes{v0.3c}{2002/04/01}{Abstract: revised} % \changes{v0.8a}{2002/12/16}{Abstract: changed (LPPL removal)} %^^A ================================================================= %^^A A small abstract %^^A ================================================================= % \begin{abstract} % \package{\filename.cls} is a new \LaTeXe\ document-class tuned % for research reports or internal reports like master/phd-theses % at the University of Dortmund. Its main function is providing % a replacement for the command \cmd{\maketitle} to meet special % demands. See \file{00readme.txt} for a short overview and % additional (legal) information and \file{example.tex} for---you % guess it---an example. % \end{abstract} % % \changes{v0.3c}{2002/04/01}{TOC: two columns (copied from % \package{doc.dtx})} % \changes{v0.7f}{2002/11/28}{TOC: 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}} % \AtEndDocument{\addtocontents{toc}{\protect\end{multicols}}} % \fi % % {\parskip 0pt ^^A We have to reset \parskip (bug in \LaTeX, % ^^A see doc.dtx) % \tableofcontents % } % % \changes{v0.3c}{2002/04/01}{Introduction: revised} % \changes{v0.4h}{2002/08/13}{Introduction: new paragraph dealing % with templates} % \changes{v0.5d}{2002/08/29}{Introduction: rearranged} % \changes{v0.7b}{2002/11/13}{Introduction: new figure showing % title page} % \changes{v0.7b}{2002/11/13}{Introduction: new paragraph % concerning the imitation} % \changes{v0.8e}{2003/01/01}{Introduction: fixed bad phrasing} %^^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 (German: % `\textbf{F}ach\textbf{b}ereich \textbf{I}nformatik' or short: % `FBI') at the University of Dortmund (or short `UniDo') there are % cardboard cover pages (see figure \ref{fig:cover}) for internal % reports like master/phd-theses. The main function of the % \LaTeXe\ document-class \package{\filename} is a replacement for % the \cmd{\maketitle}~command to typeset a title page that is % adjusted to these cover pages (see figure \ref{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 % University of Dortmund. The title page of the document is % visible thru 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 \today}} % \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 placed such that it is visible thru 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}).} % ^^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 PDF or % PostScript file). In the first case there is no reason for the % repetition, in the second (electronical) case one would miss % important information without it. Since it doesn't hurt in the % paper case I decided to simply always repeat the content of cover % page on the title page. % % This package doesn't make much sense outside of Germany or even % outside the University of Dortmund. Nevertheless the % documentation is in English. This shouldn't be a problem % nowadays and its a good training for me \winkey % % \changes{v0.7c}{2002/11/20}{Other: new} %^^A ================================================================= %^^A The rivalry ;-) %^^A ================================================================= % \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{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, since % the author seems to have abandoned active development. % % 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/misc/LaTeX-Templates.tgz}} % by \person{Kohler}\footnote{\mail{Markus % Kohler}{kohler@ls7.cs.uni-dortmund.de}} or % `daTitelblatt'\footnote{\url{http://ls11-www.cs.uni-dortmund.de/people/dittrich/alife/da.html}} % by \person{Dittrich}\footnote{\mail{Peter % Dittrich}{dittrich@ls11.cs.uni-dortmund.de}}. Of course these % template-approaches give to the user a great flexibility. On the % other hand the necessary customizations to the users needs often % require a deeper knowledge of \LaTeX. % %^^A ================================================================= %^^A Left empty and commented out until version 1.0 is reached %^^A ================================================================= % ^^A \subsection{What's new} % ^^A \label{subsec:new} % % \changes{v0.3e}{2002/04/04}{Needs: update (class changes)} % \changes{v0.4e}{2002/04/09}{Needs: update (\package{german.sty} % and \package{scrbook})} % \changes{v0.5j}{2002/09/21}{Needs: update % (\package{graphicx.sty})} % \changes{v0.7b}{2002/11/13}{Needs: reasons} % \changes{v0.7h}{2002/12/12}{Needs: restrict \package{graphicx}} % \changes{v0.7i}{2002/12/14}{Needs: suggest latest \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{fbithesis}. 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)\footnote{\ctan: % \file{macros/latex/base}} % % \package{fbithesis} is a \LaTeXe\ document-class. So % obviously you'll need \LaTeXe\ldots % \item \package{graphicx}\footnote{\ctan: % \file{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\footnote{\ctan: % \file{macros/latex/contrib/supported/koma-script} by % \person{Frank Neukam} and \person{Markus Kohm} % \cite{neukam:scrclass, neukam:koma}}, at % this time the latest version is 2002/09/18 v2.9j) % % This is a replacement for the (standard) % \package{book}~document-class and has many % enhancements and useful features. % \end{enumerate} % % ^^A \item Packages, that are supported by % ^^A \package{\filename}: % ^^A \begin{enumerate} % ^^A \item % ^^A \end{enumerate} % \end{enumerate} % % Under normal circumstances you don't have to install any special % packages (except \package{fbithesis} 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{ % Comprehensive \TeX{} Archive Network: % \url{http://www.ctan.org/}}. % % \changes{v0.3b}{2002/03/31}{Installation: new} % \changes{v0.3c}{2002/04/01}{Installation: extended (PGP)} % \changes{v0.4f}{2002/07/05}{Installation: extended % (\cmd{\usedir})} % \changes{v0.5j}{2002/09/21}{Installation: extended (config file)} % \changes{v0.7b}{2002/11/13}{Installation: summary} % \changes{v0.8a}{2002/12/16}{Installation: changed (LPPL removal)} %^^A ================================================================= %^^A Installation guide %^^A ================================================================= % \subsection{Installation} % \label{subsec:install} % % \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 \file{\filename.dtx.asc} a % \mbox{OpenPGP} signature made with \mbox{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) % }\footnote{\mbox{BTW}: I'm always looking for % people to exchange key-signatures. Contact me!}. Verify % \file{\filename.dtx.asc} with \mbox{PGP} or \mbox{GnuPG} (for % \mbox{GnuPG} this is `\file{gnupg -{}-verify % \filename.dtx.asc}') to be sure, you got the complete and % not manipulated distribution. % % To start the installation, run \file{\filename.dtx} through % \LaTeX . This will generate the batch file % (\file{\filename.ins}) and a \file{00readme.txt}. 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 % \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 set % \cmd{\BaseDirectory}\footnote{see the documentation of the % \file{docstrip}~program: \cite{mittelbach:1999: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:1999:tds}} compliant % \LaTeX\ installation). Otherwise you have to move it yourself % into a directory searched by \LaTeX . % % 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 `\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 example file and run it through \LaTeX . % % The `\file{latex \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 \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{00readme.txt}. % % 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{latex \filename.dtx}' % \item Generate the \file{\filename.cls} file: `\file{latex % \filename.ins}' % \item Finish the documentation: `\file{latex \filename.dtx}' % (two times) % \item Optionally: move \file{\filename.cls}, % \file{\filename.dvi} and \file{example.tex} % % \end{enumerate} % % \changes{v0.3e}{2002/04/04}{Todo: new one (\emph{baseclass} % choose)} % \changes{v0.4b}{2002/04/05}{Todo: new one (bug fixing)} % \changes{v0.4d}{2002/04/07}{Todo: removed one % (\cmd{\baseclass} stuff)} % \changes{v0.4g}{2002/08/11}{Todo: new one (enhance to a full % thesis-class)} % \changes{v0.5e}{2002/08/30}{Todo: removed % marks stuff and title-enhance stuff} % \changes{v0.5j}{2002/09/21}{Todo: new one (project groups)} % \changes{v0.7d}{2002/11/25}{Todo: removed one % (\cmd{\fbi@stretchto} stuff)} % \changes{v0.7h}{2002/12/12}{Todo: removed one (\koma-title)} % \changes{v0.7i}{2002/12/14}{Todo: new one (alternative layouts)} %^^A ================================================================= %^^A What have to be done? %^^A ================================================================= % \subsection{To do} % \label{subsec:todo} % % At this time this package doesn't offer many features. I plan to % add a few as soon as I have the time to: % \begin{enumerate} % \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 % ones are in \mbox{DIN-A5} instead of \mbox{DIN-A4}.) % \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}). % \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. % % \changes{v0.6c}{2002/10/15}{Bugs: new} %^^A ================================================================= %^^A I'm sorry, but there are known bugs %^^A ================================================================= % \subsection{Known Bugs} % \label{subsec:bugs} % % At this time, there is only one know 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 a bug or if you find a new one I'd % be glad to hear\footnote{mail to % mail{Andre Dierker}{dierker@ls7.cs.uni-dortmund.de}} from you! % % \changes{v0.4f}{2002/07/05}{Thanks: new} %^^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 gave me the idea of % writing this package and helped with many tips and hints. % %^^A ================================================================= %^^A How to use fbithesis %^^A ================================================================= % \section{Usage} % \label{sec:usage} % % \changes{v0.4d}{2002/04/07}{Baseclass: new (\cmd{\baseclass} % stuff)} % \changes{v0.5j}{2002/09/21}{Loading: merged with Baseclass} % \changes{v0.7d}{2002/11/25}{Loading: mention default of % \cmd{\baseclass}} %^^A ================================================================= %^^A Loading and: %^^A What the hell is `\baseclass'? %^^A ================================================================= % \subsection{Loading and the \emph{baseclass}} % \label{subsec:load} % % You are free to choose your own 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}} 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}.) 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 behavior of \package{\filename} with options % (all available options are described below in subsection % \ref{subsec:options}): %\begin{verbatim} % \documentclass[]{fbithesis} %\end{verbatim} % % You may choose any \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}) and supports a title page. For example % with \package{article} from \LaTeXe\ you have to use its % \Lopt{titlepage}~option, since \package{article} doesn't generate % an explicit title page by default. % % \changes{v0.4d}{2002/04/07}{Options: extended % (\cmd{\baseclass} stuff)} % \changes{v0.5j}{2002/09/21}{Options: updated % (marks stuff)} % \changes{v0.6a}{2002/09/23}{Options: updated % (internationalization)} %^^A ================================================================= %^^A Available Options %^^A ================================================================= % \subsection{Options} % \label{subsec:options} % % There are four class options available with \package{fbithesis}. % The first two switch between the \Lopt{draft} and % \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}). %\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} % % The second pair of options switch the language. As you can see % below (in subsection \ref{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 % \Lopt{german}~option. This language is the default choice. %\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 % \Lopt{english}~option. %\begin{verbatim} % \documentclass[english]{fbithesis} %\end{verbatim} % % Each of the two pairs of options (\Lopt{draft}/\Lopt{final} and % \Lopt{german}/\Lopt{english}) are mutual exclusive. 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'. % % Furthermore you may choose every option provided by the % \emph{baseclass} (see subsection \ref{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: %\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, neukam:koma}. % % \changes{v0.3b}{2002/03/31}{Commands: enhanced} % \changes{v0.5j}{2002/09/21}{Commands: enhanced (title-enhance % stuff)} % \changes{v0.6d}{2002/10/19}{Commands: enhanced % (\cmd{\date}- and % \cmd{\thesislogo}-stuff)} % \changes{v0.7e}{2002/11/26}{Commands: \koma-stuff} % \changes{v0.7g}{2002/11/29}{Commands: divided in subsubsections, % added description of \koma-commands} %^^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:1996: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}) 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{fbithesis} 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 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:2001: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 University of % Dortmund. % % If you really want to make acknowledgements on the title page you % may use \DescribeMacro{\thanks}\cmd{\thanks}\marg{text}. The % text would be set as a footnote at the bottom of the cardboard % window. In my opinion this looks ugly 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 % \ref{subsubsec:koma} and \cite{neukam:scrclass, neukam:koma}) % % The \cmd{\title} and \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}), load % \package{\filename}, provide the information you would like to % have on the title page and adjust the page on the paper (see % section \ref{sec:custom}). % % \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 % \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 thru the window. % % By using the command % \DescribeMacro{\unidologo}\cmd{\unidologo}\marg{filename} you may % include the logo of the University of Dortmund to the title page. % `\meta{filename}' should be a graphics file (e.g.\ \mbox{EPS}). % 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. % % 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 \marg{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 % \koma. So if you use \file{scrbook} or \file{scrreprt} you may % use the following \koma-commands. For more information on these % three macros see \cite[section 3.3]{neukam:koma}. % % 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. % % \changes{v0.4b}{2002/04/05}{Customization: \file{fbithesis.cfg}} % \changes{v0.5k}{2002/09/22}{Customization: manually} % \changes{v0.8e}{2003/01/01}{Customization: invariant positioning} % \changes{v0.8f}{2003/01/03}{Customization: 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@ls7.cs.uni-dortmund.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. % % \changes{v0.5b}{2002/08/15}{Configuration: new} % \changes{v0.5j}{2002/09/21}{Configuration: (code for config % file)} %^^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 \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 file 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 \mbox{EPS}-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:1999:graphics} you may want to skip % the extensions of the filenames.) % \iffalse %% If the EPS-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{unilogo} % \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\\ % University of Dortmund} % \end{macrocode} % \begin{macrocode} % % \end{macrocode} % % \changes{v0.3d}{2002/04/03}{Example: class changes} % \changes{v0.3e}{2002/04/04}{Example: simplified} % \changes{v0.5a}{2002/08/14}{Example: added \cmd{\thesisstyle}, % \cmd{\unidologo} and \cmd{\charlogo} % (title-enhance stuff)} % \changes{v0.5b}{2002/08/15}{Example: added \cmd{\chair} and % \cmd{\supervisors} % (title-enhance stuff)} % \changes{v0.5d}{2002/08/29}{Example: minor changes} % \changes{v0.5j}{2002/09/21}{Example: added docu} % \changes{v0.6b}{2002/09/25}{Example: Logos} % \changes{v0.6d}{2002/10/19}{Example: \cmd{\thesislogo}- and % \cmd{\date}-stuff} % \changes{v0.7h}{2002/12/12}{Example: Logos with DSC-comments} % \changes{v0.8e}{2003/01/01}{Example: rely on automatic % positioning} %^^A ================================================================= %^^A The glorious example! (sort of...) %^^A ================================================================= % \section{Example} % \label{sec:example} % % Here is a little 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> \begin{filecontents*}{unilogo.eps} % \end{macrocode} %\begin{small}\begin{verbatim} % (Here comes some EPS-code for a provisional logo of the university.) %\end{verbatim}\end{small} % \iffalse %!PS-Adobe-3.0 EPSF-3.0 %%BoundingBox: 0 0 75 68 %%Creator: Andre Dierker %%CreationDate: 2002/09/25 %%DocumentData: Clean7Bit %%For: Example for fbithesis %%Title: Uni Logo %%Version: 1.0 1 (Times-Roman) findfont 50 scalefont setfont 0 33 moveto (Uni) show (Times-Roman) findfont 35 scalefont setfont 0 8 moveto (Logo) show showpage %%EOF % \fi % \begin{macrocode} \end{filecontents*} \begin{filecontents*}{ls9logo.eps} % \end{macrocode} %\begin{small}\begin{verbatim} % (Some more EPS-code for an exemplary logo of a hypothetical chair.) %\end{verbatim}\end{small} % \iffalse %!PS-Adobe-3.0 EPSF-3.0 %%BoundingBox: 0 0 107 70 %%Creator: Andre Dierker %%CreationDate: 2002/09/25 %%DocumentData: Clean7Bit %%For: Example for fbithesis %%Title: LS9 Logo %%Version: 1.0 1 (Times-Roman) findfont 100 scalefont setfont 0 2 moveto (L9) show (Times-Roman) findfont 65 scalefont setfont 28 23 moveto (S) show showpage %%EOF % \fi % \begin{macrocode} \end{filecontents*} \begin{filecontents*}{thesislogo.eps} % \end{macrocode} %\begin{small}\begin{verbatim} % (Even more EPS-code for a dummy thesis-specific logo.) %\end{verbatim}\end{small} % \iffalse %!PS-Adobe-3.0 EPSF-3.0 %%BoundingBox: 0 0 90 68 %%Creator: Andre Dierker %%CreationDate: 2002/10/19 %%DocumentData: Clean7Bit %%For: Example for fbithesis %%Title: Thesis Logo %%Version: 1.0 1 (Times-Roman) findfont 58 scalefont setfont 0 28 moveto (FBI) show (Times-Roman) findfont 35 scalefont setfont 0 1 moveto (Thesis) show showpage %%EOF % \fi % \begin{macrocode} \end{filecontents*} % \end{macrocode} % % To show the use of the \cmd{\baseclass}~command, we choose a % different \emph{baseclass}. If you comment this line out, % \package{\filename} will fall back to its build-in default class % \file{scrbook.cls}. % \begin{macrocode} \def\baseclass{book} % \end{macrocode} % % Of course we choose \package{\filename} as document class. % Additionally we want to look at the \Lopt{draft}~mode and test % the option forwarding of \Lopt{a4paper} to the \emph{baseclass}. % Since the example is in English, we also choose \Lopt{english}. % \changes{v0.4c}{2002/04/06}{Example: set option \Lopt{draft}} % \changes{v0.8f}{2003/01/03}{Example: set option \Lopt{english}} % \begin{macrocode} \documentclass[draft, 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 make up. However % \TeX's algorithm is not optimized for titles but for continuous % text. To make it more difficult the width of the cardboard % window is only 9.2\,cm. So if you prefer a different make up, % help yourself with an appropriate placed `|\\|', as you can see % in this example. % \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 looks % quite ugly. Therefor I do not recommend the usage. It is better % to write a preface instead. % \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. % \begin{macrocode} \author{Andre Dierker% \thanks{\texttt{dierker@ls7.cs.uni-dortmund.de}} \and Nobody Else\thanks{\texttt{no@body.el.se}}} % \end{macrocode} % Normally the \DescribeMacro{\subject}subject would be something % like `Diplomarbeit' or `Dissertation'\ldots % \begin{macrocode} \subject{Example} % \end{macrocode} % You may give the \DescribeMacro{\date}beginning and the deadline % of your thesis here. % \begin{macrocode} \date[Created April 3, 2002]{Printed \today} % \end{macrocode} % Providing the \DescribeMacro{\supervisors}supervisors of the % thesis. % \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:1999:graphics} we skip the extensions of the % filenames.) % \begin{macrocode} \unidologo{unilogo} \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. % \begin{macrocode} \chair{Chair IX (Virtual Research)\\ Department of Computer Science\\ University of 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} % \begin{macrocode} \maketitle \mainmatter % \end{macrocode} % % Sorry, but I won't write your thesis. I've had trouble enough % with my own one\ldots\winkey % \begin{macrocode} Now here comes your text. % \end{macrocode} % % Now our minimal document is ready. % \begin{macrocode} \end{document} % % \end{macrocode} % % Have fun using \package{\filename}. % % \changes{v0.4b}{2002/04/05}{Small print: new} % \changes{v0.8a}{2002/12/16}{Small print: changed (LPPL removal)} %^^A ================================================================= %^^A We insert the `small print' here. %^^A ================================================================= % {\vfill\hfill\scriptsize\package{\filename} is Copyright % \copyright\ 2002 2003 by Andre Dierker % \vspace{1cm} % % 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:1999:lppl}), either version 1.2 % 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.2 or % later is part of all distributions of \LaTeX\ version 1999/12/01 % or later.}\par\newpage % %^^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{ % % \changes{v0.4a}{2002/04/04}{References: new} % \changes{v0.5j}{2002/09/21}{References: added more} % \changes{v0.6d}{2002/10/19}{References: added \file{ltclass}} % \changes{v0.7e}{2002/11/26}{References: added % \package{tracking.sty} and \TeX book} % \changes{v0.7i}{2002/12/14}{References: updated} % \changes{v0.8f}{2003/01/03}{References: updated} %^^A ================================================================= %^^A We can't get enough! Of course we also want a %^^A bibliography ;-) %^^A ================================================================= % \addcontentsline{toc}{section}{References} % \begin{thebibliography}{1} % % \bibitem{ltx2e:1996: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 \ctan: \url{macros/latex/base/ltsect.dtx}, December % 1996. % % \bibitem{ltx2e:1999:ltfloat} % Johannes Braams, David~P. Carlisle, Alan Jeffrey, Leslie Lamport, % Frank Mittelbach, Chris Rowley, and Rainer Sch\"{o}pf. % \newblock ltfloat.dtx. % \newblock \ctan: \url{macros/latex/base/ltfloat.dtx}, April 1999. % % \bibitem{carlisle:1999:graphics} % David~P. Carlisle. % \newblock Packages in the `graphics' bundle. % \newblock \ctan: % \url{macros/latex/required/graphics/grfguide.tex}, January % 1999. % % \bibitem{ltx2e:1999:ltboxes} % David~P. Carlisle, Leslie Lamport, Frank Mittelbach, and Chris % Rowley. % \newblock ltboxes.dtx. % \newblock \ctan: \url{macros/latex/base/ltboxes.dtx}, April 1999. % % \bibitem{glazkov:1996:tracking} % D.~A. Glazkov. % \newblock tracking.sty. % \newblock \ctan: % \url{macros/latex/contrib/supported/tracking/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{lamport:2001:classes} % Leslie Lamport, Frank Mittelbach and Johannes Braams. % \newblock Standard document classes for {\LaTeX} version 2e. % \newblock \ctan: \url{macros/latex/base/classes.dtx}, April 2001. % % \bibitem{mittelbach:1999:docstrip} % Frank Mittelbach, Denys Duchier, Johannes Braams, Marcin % Woli{\'{n}}ski, and Mark Wooding. % \newblock The {DocStrip} program. % \newblock \ctan: \url{macros/latex/base/docstrip.dtx}, March % 1999. % % \bibitem{ltx2e:2001:ltclass} % Frank Mittelbach, Chris Rowley, Alan Jeffrey, and David~P. % Carlisle. % \newblock The main structure of documents. % \newblock \ctan: \url{macros/latex/base/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/latex/contrib/supported/koma-script/scrclass.dtx}, % September 2002. % % \bibitem{neukam:koma} % Frank Neukam, Markus Kohm and Axel Kielhorn. % \newblock Das {\koma} {P}aket. % \newblock \ctan: % \url{macros/latex/contrib/supported/koma-script/scrguide.ps}, % September 2002. % % \bibitem{twgtds:1999:tds} % {TUG} Working~Group on~a {\TeX} Directory Structure % ({TWG}-{\tds}). % \newblock A directory structure for {\TeX} files. % \newblock \ctan: \url{tds/tds.pdf}, April 1999. % % \bibitem{latex3-project:1999:lppl} % The~{\LaTeX}3 Project. % \newblock The {\LaTeX} {P}roject {P}ublic {L}icense. % \newblock \url{http://www.latex-project.org/lppl.txt}, % September 1999. % % \end{thebibliography} % % ^^A\bibliography{fbithesis} % ^^A\bibliographystyle{plain} % %^^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 ================================================================= % \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 end of \StopEventually % % \changes{v0.7d}{2002/11/25}{Implementation: `@'-disclaimer} % \changes{v0.8a}{2002/12/16}{Implementation: changed (LPPL % removal)} %^^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} % % \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{macro}{\fbi@vskip} % \begin{macro}{\fbi@hskip} % 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@vskip}% \newlength{\fbi@hskip}% % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\iffbi@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 % \Lopt{draft/final}~options (see subsection \ref{subsec:optiondeclare}). % \changes{v0.3d}{2002/04/03}{new (\Lopt{draft} revision)} % \begin{macrocode} \newif\iffbi@draft% % \end{macrocode} % \end{macro} % % \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} %^^A ================================================================= %^^A We use \AtEndDocument to inform the user about the bug. %^^A No Fonts at this time %^^A ================================================================= % \subsection{Hooks} % \label{subsec:hooks} % % As already said in subsection \ref{subsec:bugs}, there is a bug % in \package{fbithesis} so that every \cmd{\footnote}~command in % the document is ignored if the \cmd{\maketitle} is left out. % Because there is no solution known 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:2001: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} % \begin{macrocode} \AtEndDocument{% \ifx\fbi@placewindow\relax\else% \ClassError{fbithesis}{No \protect\maketitle\space found. Due to a bug in `fbithesis' any\MessageBreak \protect\footnote -command is ignored. See `Known Bugs' in the\MessageBreak documentation of the class for further info}{Type to proceed. All \protect\footnote -commands in the document were ignored.}\fi% }% % \end{macrocode} % %^^A ================================================================= %^^A Declaration of the options we want to provide %^^A ================================================================= % \subsection{Option Declaration} % \label{subsec:optiondeclare} % % With the \Lopt{draft}~option we generate some marks that help % checking the placement of the title page. See the command % \cmd{\fbi@placemarks} for the implementation. % \changes{v0.2b}{2002/10/11}{\Lopt{draft}: new option} % \changes{v0.3d}{2002/04/03}{\Lopt{draft}: % (\Lopt{draft} revision)} % \changes{v0.5f}{2002/09/04}{pass \Lopt{draft} to the % \emph{baseclass}} % \changes{v0.5j}{2002/09/21}{simplified (\env{picture} stuff)} % \begin{macrocode} \DeclareOption{draft}{% \fbi@drafttrue% \PassOptionsToClass{draft}{\baseclass} }% % \end{macrocode} % % With the \Lopt{final}~option (the default) no marks are shown. % \changes{v0.2b}{2001/10/11}{\Lopt{final}: new option} % \changes{v0.3d}{2002/04/03}{\Lopt{final}: % (\Lopt{draft} revision)} % \begin{macrocode} \DeclareOption{final}{% \fbi@draftfalse% }% % \end{macrocode} % % 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}{\Lopt{german}: new option % (internationalization)} % \begin{macrocode} \DeclareOption{german}{% \gdef\textfbi@supervisors{Gutachter:}% }% % \end{macrocode} % % 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}{\Lopt{english}: new option % (internationalization)} % \begin{macrocode} \DeclareOption{english}{% \gdef\textfbi@supervisors{Supervisors:}% }% % \end{macrocode} % % 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}). % \changes{v0.3d}{2002/04/03}{Options: new (class-changes)} % \changes{v0.4d}{2002/04/07}{Options: \cmd{\baseclass} stuff} % \begin{macrocode} \DeclareOption*{% \PassOptionsToClass{\CurrentOption}{\baseclass} }% % \end{macrocode} % %^^A ================================================================= %^^A Process options %^^A ================================================================= % \subsection{Option Processing} % \label{subsec:optionproc} % % If no options are given we assume \Lopt{german} and do the % \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} % \begin{macrocode} \ExecuteOptions{final,german}% \ProcessOptions*\relax% % \end{macrocode} % %^^A ================================================================= %^^A Further loading %^^A ================================================================= % \subsection{Loading of 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} % \changes{v0.7e}{2002/11/26}{Loading: set \cmd{\iffbi@koma}} % \begin{macrocode} \LoadClass{\baseclass}% % \end{macrocode} % % We need the \cmd{\includegraphics}~command from the % \package{graphicx}~package (see \cite{carlisle:1999:graphics}) to % place some logos. Since we make use of the |keepaspectratio|-key % 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 Define the commands we want to provide %^^A Main Part %^^A ================================================================= % \subsection{Defining Commands} % \label{subsec:comm} % % \begin{macro}{\title} % \begin{macro}{\author} % \begin{macro}{\and} % These three macros are provided by the \LaTeX -kernel (described in % \cite{ltx2e:1996: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 the information provided. The % definitions of these macros are shown here for information. % \begin{macrocode} % \def\title#1{\gdef\@title{#1}} % \def\author#1{\gdef\@author{#1}} % \end{macrocode} % The implementation of the \cmd{\and}~macro is a bit more % complicated. For more information have a look at % \cite{ltx2e:1996:ltsect}. % \begin{macrocode} % \def\and{} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}{\date} % As in \cite{ltx2e:1996: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} % The \cmd{\date}~macro gets today's date by default. This is % already done in the \LaTeX -kernel (see % \cite{ltx2e:1996:ltsect}). \cmd{\fbi@startdate} is set to % `nothing' by default. % \begin{macrocode} % \gdef\@date{\today} \gdef\fbi@startdate{} % \end{macrocode} % \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@placewindow} (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 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 not \cmd{\maketitle} in the document. % This is a know bug (see subsection \ref{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} % % \begin{macro}{\unidologo} % \begin{macro}{\chairlogo} % The filenames of the university- and chair-logos are stored in % \cmd{\fbi@unidologo} and \cmd{\fbi@charlogo}. % \changes{v0.5a}{2002/08/14}{new (title-enhance stuff)} % \begin{macrocode} \newcommand*{\unidologo}[1]{% \gdef\fbi@unidologo{#1}% }% \newcommand*{\chairlogo}[1]{% \gdef\fbi@chairlogo{#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 % \cmd{\fbi@thesislogo}. % \changes{v0.6d}{2002/10/19}{new} % \begin{macrocode} \newcommand*{\thesislogo}[1]{% \gdef\fbi@thesislogo{#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 % error is given. % \changes{v0.7e}{2002/11/26}{new} % \begin{macrocode} \newcommand*{\thesistype}[1]{% \ClassError{fbithesis}{Due to compatibility reasons \protect\thesistype\space was renamed\MessageBreak to \protect\subject. Please change your document}{Type 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@vskip} and % \cmd{\fbi@hskip}~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@vskip}{#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@hskip}{#1}% }% % \end{macrocode} % \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} % This command is based on the \package{tracking}-style (see % \cite{glazkov:1996:tracking}) by % \person{Glazkov}\footnote{\mail{D. A. % Glazkov}{glazkov@sci.lpi.msk.su}}. % % It stretches a string to a given length and 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[..]} commands to stretch a string to a % given length. % \changes{v0.7d}{2002/11/25}{new} % \changes{v0.7f}{2002/11/28}{optimized} % \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}% \fbi@dolist#2\fbi@endlist% \advance\@tempcnta by\m@ne% % \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% \divide\@tempdima by\@tempcnta% % \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{\fbi@dolist#2\fbi@endlist\unkern}}% % \end{macrocode} % \end{macro} % % \begin{macro}{\fbi@placewindowheader} % 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'). % I'm not that firm with fonts and would be happy if someone could % point me to the originally used font. % \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} % \begin{macrocode} \newcommand*{\fbi@placewindowheader}{% \parbox[b][1.55cm][s]{9.2cm}{% \vspace{\z@}% \fontfamily{phv}\fontseries{b}\fontsize{20}{22}\selectfont% % \end{macrocode} % Since \cmd{\fbi@dolist} processes tokens, the `\"{A}' has to be % also exactly one token. % \begin{macrocode} \def\fbi@ae{\"{A}}% \fbi@stretchto{9.2cm}{UNIVERSIT\fbi@ae T DORTMUND}\par\vfil% \fontseries{m}\selectfont% \fbi@stretchto{9.2cm}{FACHBEREICH INFORMATIK}\par }} % \end{macrocode} % \end{macro} % % \begin{macro}{\fbi@placeunidologo} % If \cmd{\fbi@unidologo} is defined (by using \cmd{\unidologo}), % the logo of the University of Dortmund is set here. It is % resized to a height of 1.42\,cm (the same height as the height of % \cmd{\fbi@placewindowheader}) and a width of 7.2\,cm. By the % |keepaspectratio| we take care not to distort the logo. % \changes{v0.5a}{2002/08/14}{use \cmd{\fbi@unidologo} % (title-enhance stuff)} % \changes{v0.5c}{2002/08/28}{new (swap out stuff)} % \changes{v0.6a}{2002/09/23}{control width} % \begin{macrocode} \newcommand*{\fbi@placeunidologo}{% \ifx\fbi@unidologo\undefined\else% \makebox(7.2,1.45)[br]{% \includegraphics[width=7.2cm,height=1.45cm,keepaspectratio]{% \fbi@unidologo}}% \fi }% % \end{macrocode} % \end{macro} % % \begin{macro}{\fbi@placewindow} % 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} % \begin{macrocode} \newcommand*{\fbi@placewindow}{% \begin{minipage}[b][9.1cm][s]{9.2cm}% % \end{macrocode} % % Before we begin to place the title-information, there have to be % redefinitions of some macros concerning % \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 since we don't want the \env{minipage}~numbering of % footnotes (\textit{a}, \textit{b}, \textit{c}, \ldots see % \cite{ltx2e:1999:ltboxes}) we redefine \cmd{\thempfootnote} (see % \cite{ltx2e:1999:ltfloat}) to get the \koma~numbering ($\ast$, % $\dagger$, $\ddagger$, \ldots). % \begin{macrocode} \let\footnotesize=\scriptsize% \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}% \@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. We leave a little space and set the % title in a \cmd{\LARGE}~font. % \begin{macrocode} \vspace{\z@}% \begin{center}% \vskip 2em% {\Large \lineskip .75em% \begin{tabular}[t]{c}% \@author \end{tabular}\par}% \vfil% {\LARGE\bfseries\@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% {\large\@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} {\large\ifx\@empty\fbi@startdate\else% {\fbi@startdate} -- \fi% \@date\par}% \vskip 2em% \end{center}% \end{minipage}}% % \end{macrocode} % \end{macro} % % \begin{macro}{\fbi@placethesislogo} % If \cmd{\fbi@thesislogo} is defined (by using \cmd{\thesislogo}), % another logo is set here. It is resized to a height of 9.1\,cm % (the same height as the height of \cmd{\fbi@placewindow}) and a % width of 7.2\,cm. By the |keepaspectratio| we take care not to % distort the logo. % \changes{v0.6d}{2002/10/19}{new} % \begin{macrocode} \newcommand*{\fbi@placethesislogo}{% \ifx\fbi@thesislogo\undefined\else% \makebox(7.2,9.1)[cr]{% \includegraphics[width=7.2cm,height=9.1cm,keepaspectratio]{% \fbi@thesislogo}}% \fi }% % \end{macrocode} % \end{macro} % % \begin{macro}{\fbi@placewindowfooter} % 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}} % \begin{macrocode} \newcommand*{\fbi@placewindowfooter}{% \parbox[b][1.4cm][s]{9.2cm}{% \vspace{\z@}% \fontfamily{phv}\fontseries{m}\fontsize{20}{22}\selectfont% \fbi@stretchto{9.2cm}{INTERNE BERICHTE}\par\vfil% \fbi@stretchto{9.2cm}{INTERNAL REPORTS}\par }}% % \end{macrocode} % \end{macro} % % \begin{macro}{\fbi@placechair} % 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{\textfbi@supervisors} % (internationalization)} % \changes{v0.6a}{2002/09/23}{use \cmd{\iffbi@chair}} % \changes{v0.7g}{2002/11/29}{remove \cmd{\iffbi@chair}} % \begin{macrocode} \newcommand*{\fbi@placechair}{% \parbox[b][3.2cm][s]{9.2cm}{% \vspace{\z@}% \fbi@chair\par% \vfil% {\bf\textfbi@supervisors}\\ \fbi@supervis@i\\ \fbi@supervis@ii\par }% }% % \end{macrocode} % \end{macro} % % \begin{macro}{\fbi@placechairlogo} % On \cmd{\fbi@chairtrue} the logo of the chair is set here. It is % resized to a height of 3.2\,cm (the same height as the height of % \cmd{\fbi@placechair}) and a width of 7.2\,cm. By the % |keepaspectratio| we take care not to distort the logo. % \changes{v0.5a}{2002/04/10}{use \cmd{\fbi@chairlogo} % (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}} % \begin{macrocode} \newcommand*{\fbi@placechairlogo}{% \makebox(7.2,3.2)[cr]{% \includegraphics[width=7.2cm,height=3.2cm,keepaspectratio]{% \fbi@chairlogo}}% }% % \end{macrocode} % \end{macro} % % \begin{macro}{\fbi@placeaddress} % 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}} % \begin{macrocode} \newcommand*{\fbi@placeaddress}{% \makebox(8.3,0.45)[b]{% \vspace{\z@}% \fontfamily{phv}\fontseries{m}\fontsize{14}{16}\selectfont% \def\fbi@dot{$\cdot$}% \fbi@stretchto{8.3cm}{GERMANY \fbi@dot\space D-44221 DORTMUND}}}% % \end{macrocode} % \end{macro} % % \begin{macro}{\fbi@placemarks} % 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. % \changes{v0.5d}{2002/08/29}{new} % \changes{v0.6d}{2002/10/19}{better: scales} % \begin{macrocode} \iffbi@draft% \newcommand*{\fbi@placemarks}{% \thinlines% \put(2.9,15.4){\framebox(9.2,9.1){}} \multiput(0,0)(0,27.7){2}{\multiput(0,0)(0,1){2}{ \put(10,0){\line(1,0){1}}\put(10,1){\line(1,0){1}} \multiput(10.3,0.1)(0,0.1){4}{\line(1,0){0.4}} \put(10.1,0.5){\line(1,0){0.8}} \multiput(10.3,0.6)(0,0.1){4}{\line(1,0){0.4}}}} \multiput(0,0)(19,0){2}{\multiput(0,0)(1,0){2}{ \put(0,14.35){\line(0,1){1}}\put(1,14.35){\line(0,1){1}} \multiput(0.1,14.65)(0.1,0){4}{\line(0,1){0.4}} \put(0.5,14.45){\line(0,1){0.8}} \multiput(0.6,14.65)(0.1,0){4}{\line(0,1){0.4}}}} }% \else% \let\fbi@placemarks=\relax \fi% % \end{macrocode} % \end{macro} % % \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} % \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} % We can save some storage space by emptying the internal % information macros. % \begin{macrocode} \global\let\@title=\@empty \global\let\@author=\@empty \global\let\@thanks=\@empty \global\let\@date=\@empty \global\let\@oldfootnote=\@empty \global\let\@subject=\@empty \global\let\@extratitle\@empty \global\let\@titlehead\@empty \global\let\@publishers\@empty \global\let\@uppertitleback\@empty \global\let\@lowertitleback\@empty \global\let\@dedication\@empty \global\let\fbi@startdate=\@empty \global\let\fbi@unidologo=\@empty \global\let\fbi@chair=\@empty \global\let\fbi@thesislogo=\@empty \global\let\fbi@chairlogo=\@empty \global\let\fbi@supervis@i=\@empty \global\let\fbi@supervis@ii=\@empty \global\let\fbi@vskip=\@empty \global\let\fbi@hskip=\@empty \global\let\textfbi@supervisors=\@empty % \end{macrocode} % After the title is set the declaration commands \cmd{\title}, % etc.\ can vanish. We disable them. % \begin{macrocode} \global\let\title=\relax \global\let\author=\relax \global\let\and=\relax \global\let\thanks=\relax \global\let\date=\relax \global\let\subject\relax \global\let\extratitle\relax \global\let\titlehead\relax \global\let\publishers\relax \global\let\uppertitleback\relax \global\let\lowertitleback\relax \global\let\dedication\relax \global\let\unidologo=\relax \global\let\chair=\relax \global\let\thesislogo=\relax \global\let\chairlogo=\relax \global\let\supervisors=\relax \global\let\titlevadjust=\relax \global\let\titlehadjust=\relax \global\let\maketitle=\relax % \end{macrocode} % The same with internal commands: we disable them, too. % \begin{macrocode} \global\let\fbi@placewindowheader=\relax \global\let\fbi@placeunidologo=\relax \global\let\fbi@placewindow=\relax \global\let\fbi@placewindowfooter=\relax \global\let\fbi@placechair=\relax \global\let\fbi@placethesislogo=\relax \global\let\fbi@placechairlogo=\relax \global\let\fbi@placeaddress=\relax \global\let\fbi@placemarks=\relax \global\let\fbi@cleanup=\relax }% % \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. For compatibility reasons we support the switch. Since % the \package{\filename}~package is not useful without a title % page we drop a warning if no explicit page is wanted (see below % on page \pageref{title_error}). % \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.7g}{2002/11/29}{added warnings if ignored commands % were used} % \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@hskip} and % \cmd{\fbi@vskip}} % \begin{macrocode} \renewcommand{\maketitle}[1][1]{% \if@titlepage \begin{titlepage}% % \end{macrocode} % 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@vskip} and the horizontal ones in % \Llength{\fbi@hskip}. If the printers positioning is correct we % now know exactly at which position on the page we are. % \begin{macrocode} \addtolength{\fbi@vskip}{\topmargin}% \addtolength{\fbi@vskip}{\headheight}% \addtolength{\fbi@vskip}{\headsep}% \addtolength{\fbi@vskip}{\topskip}% \addtolength{\fbi@vskip}{\baselineskip}% \addtolength{\fbi@hskip}{\oddsidemargin}% \addtolength{\fbi@vskip}{1in}% \addtolength{\fbi@hskip}{1in}% \addtolength{\fbi@vskip}{\voffset}% \addtolength{\fbi@hskip}{\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 print space translation:\MessageBreak Vertical skip\space\space\space=\space\the\fbi@vskip\MessageBreak Horizontal skip\space=\space\the\fbi@hskip}% % \end{macrocode} % If some of the \koma-commands were used that were ignored by % \package{\filename} we warn the user. % \begin{macrocode} \ifx\extratitle\undefined\else \ifx\@extratitle\@empty\else \ClassWarningNoLine{fbithesis}{As explained in the documentation some of the title\MessageBreak affecting commands of KOMA-Script are of no use with\MessageBreak `fbithesis'.\MessageBreak The command \protect\extratitle\space is ignored}% \fi\fi \ifx\titlehead\undefined\else \ifx\@titlehead\@empty\else \ClassWarningNoLine{fbithesis}{As explained in the documentation some of the title\MessageBreak affecting commands of KOMA-Script are of no use with\MessageBreak `fbithesis'.\MessageBreak The command \protect\titlehead\space is ignored}% \fi\fi \ifx\publishers\undefined\else \ifx\@publishers\@empty\else \ClassWarningNoLine{fbithesis}{As explained in the documentation some of the title\MessageBreak affecting commands of KOMA-Script are of no use with\MessageBreak `fbithesis'.\MessageBreak The command \protect\publishers\space is ignored}% \fi\fi % \end{macrocode} % With \cmd{\fbi@vskip} and \cmd{\fbi@hskip} we vertically and % horizontally place the title page. % \begin{macrocode} \null\vskip -\fbi@vskip\vbox to \z@{% \noindent\hskip -\fbi@hskip\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}% \begin{picture}(21.0,29.7) % \end{macrocode} % Place the header above the window. % \begin{macrocode} \put(2.9,25.65){\fbi@placewindowheader}% % \end{macrocode} % Place the black filled square. % \begin{macrocode} \put(1.6,25.65){\rule{5.5mm}{5.5mm}}% % \end{macrocode} % Place the logo of the University of Dortmund (if it is provided). % \begin{macrocode} \put(13.0,25.65){\fbi@placeunidologo}% % \end{macrocode} % This is now the window in the cover page. Depending on % \cmd{\iffbi@draft} the \cmd{\fbi@placewindow} is framed or not. % \changes{v0.4c}{2002/04/06}{swapped out code to % \cmd{\fbi@placewindow}} % \begin{macrocode} \put(2.9,15.4){\fbi@placewindow}% % \end{macrocode} % Place the thesis-logo (if it is provided). % \begin{macrocode} \put(13.0,15.4){\fbi@placethesislogo}% % \end{macrocode} % Place the footer below the window. % \begin{macrocode} \put(2.9,12.75){\fbi@placewindowfooter}% % \end{macrocode} % Place the chair and the supervisors. % \changes{v0.5f}{2002/09/04}{placement corrected % (\env{picture} stuff)} % \begin{macrocode} \put(2.9,6.8){\fbi@placechair}% % \end{macrocode} % Place the logo of the chair. % \changes{v0.5f}{2002/09/04}{placement corrected % (\env{picture} stuff)} % \begin{macrocode} \put(13.0,6.8){\fbi@placechairlogo}% % \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} \linethickness{0.5mm}% \put(12.0,4.35){\line(1,0){8.3}}% \put(12.0,3.5){\line(1,0){8.3}}% \put(12.0,3.73){\fbi@placeaddress}% % \end{macrocode} % If we are in \Lopt{draft}~mode the frames are placed on the page. % \begin{macrocode} \fbi@placemarks% % \end{macrocode} % Close the \env{picture}~environment and prevent overfull h- and % vboxes. % \begin{macrocode} \end{picture}\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{neukam:koma}. % \changes{v0.7e}{2002/11/26}{support \koma-title} % \begin{macrocode} \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 \ifx\@dedication\undefined\else \clearpage\thispagestyle{empty}\null\vfill {\centering\Large\@dedication\par} \vskip \z@ \@plus3fill \if@twoside \clearpage\thispagestyle{empty}\cleardoublepage \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} % Throw an error message if an explicit title page is not wanted. % \changes{v0.2a}{2001/09/17}{error message is not shown on package % load but on call of \cmd{\maketitle}} % \changes{v0.3e}{2002/04/04}{class-changes} % \label{title_error} % \begin{macrocode} \else \ClassError{fbithesis}{Please use option `titlepage' to generate a separate\MessageBreak title page! The class `fbithesis' doesn't support\MessageBreak a title without a separate page}{Type \space \space to proceed. No title will be generated.}% % \end{macrocode} % Clean things up and save memory. % \begin{macrocode} \fbi@cleanup% \fi }% % \end{macrocode} % \end{macro} % %^^A ================================================================= %^^A Config file %^^A ================================================================= % \subsection{Load Configuration} % \label{subsec:loadconfig} % % Input a local configuration file (\file{fbithesis.cfg}), if it % exists. % \changes{v0.3d}{2002/04/03}{Config: use \file{fbithesis.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% ****************************************} }{}% % % \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: latex %%% TeX-master: t %%% End: