%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% $Id: dtk.dtx,v 1.1 1996/09/13 22:03:51 gerd Exp gerd $
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\DTK@RCS$#1: #2 #3${#2}
\def\filename{dtk.dtx}
\xdef\fileversion{\DTK@RCS$Revision: 1.1 $}
\xdef\filedate{\DTK@RCS$Date: 1996/09/13 22:03:51 $}
\let\docversion=\fileversion
\let\docdate=\filedate
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\iffalse
\typeout{%
%% Purpose:
        A LaTeX Class/Style for ``Die TeXnische Komoedie''.
        Version \fileversion
}% 
%%
%% Documentation:
%%      The documentation  can be generated   from the original  file
%%      dtk.dtx with the doc style/package. LaTeX the file dtk.tex to
%%      get the full documentation in {\sc dvi} format.
%%
%%
%% Author: Gerd Neugebauer
%%         Mainzer Str. 8
%%         56321 Rhens
%% Mail:   gerd@informatik.uni-koblenz.de
%%
%% Copyright (C) 1995-1996 Gerd Neugebauer
%%
%%  dtk.dtx is distributed in the hope that it  will  be useful, but
%%  WITHOUT  ANY  WARRANTY.   No    author  or  distributor  accepts
%%  responsibility to anyone for the consequences of using it or for
%%  whether it serves any particular purpose or works at all, unless
%%  he says so in writing.
%% 
%%  Everyone is granted permission to  copy, modify and redistribute
%%  dtk.dtx,  provided  this copyright notice is preserved  and  any
%%  modifications are indicated.
%% 
%%
%% This style is still under development and  may be replaced with a
%% new version which provides an enhanced functionality.
%%
%\fi
%
% \title{A \LaTeX\ Class and Style for\\``Die \TeX{}nische 
%        Kom{\"o}die''\thanks{This file documents \filename\ version
%        \fileversion\ as of \filedate.}} 
% \author{Gerd Neugebauer\\
%	  Mainzer Str.\ 8\\
%	  56321 Rhens (Germany)\\
%	  Net: {\tt gerd@informatik.uni-koblenz.de}}
%
% \date{{\footnotesize Documentation date: \docdate}}
%
% \maketitle
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \changes{0.24}{1996/05/10}{First public release.}
% \changes{0.25}{1996/05/27}{Towards the new layout}
% \changes{0.26}{1996/05/27}{Towards the new layout}
% \changes{0.27}{1996/05/27}{Towards the new layout}
% \changes{0.28}{1996/05/27}{Towards the new layout}
% \changes{0.29}{1996/06/21}{Logos improved. ContentsArt slightly modified.}
% \changes{1.0}{1996/07/18}{New layout is ready. (DTK 1/96 in print)}
% \changes{1.1}{1996/09/13}{Fixing a minor problem with long titles.\\
%	double backslash in titles are now ignored in headlines and toc.}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% \DoNotIndex{\ ,\",\',\.,\[,\\,\],\^,\`,\~,\@,\@dottedtocline}
% \DoNotIndex{\@gobble,\@gobbletwo,\@highpenalty,\@ifnextchar,\@ifstar}
% \DoNotIndex{\@ifundefined,\@namedef\@pnumwidth,\@startsection,\@starttoc}
% \DoNotIndex{\@tempdima,\@thefnmark,\@undefined,\AA,\AE}
% \DoNotIndex{\CurrentOption,\DeclareOption,\H,\L,\LARGE,\LaTeX,\Large}
% \DoNotIndex{\LoadClass,\O,\OE,\OptionNotUsed,\PassOptionsToClass}
% \DoNotIndex{\ProcessOptions,\ProvidesClass,\RequirePackage,\TeX}
% \DoNotIndex{\aa,\addcontentsline,\addpenalty,\advance,\addvspace,\ae,\arabic}
% \DoNotIndex{\b,\baselineskip,\begin,\begingroup,\bf,\bgroup,\egroup}
% \DoNotIndex{\bigskip,\c,\cal,\catcode,\chardef,\circ,\clearpage,\closein,\closeout}
% \DoNotIndex{\clubpenalty,\csname,\d,\def,\dimen,\diamond,\divide,\documentclass,\dp}
% \DoNotIndex{\else,\em,\empty,\end,\endcsname,\endgroup,\endinput,\endlist}
% \DoNotIndex{\expandafter,\fbox,\fi,\footskip,\framebox,\frenchspacing}
% \DoNotIndex{\futurelet,\gdef,\global,\hangafter,\hangindent,\hbox,\headheight,\headsep,\hfil}
% \DoNotIndex{\hfill,\hrule,\hskip,\hspace,\hss,\ht,\huge,\ifcat,\ifeof,\ifdim}
% \DoNotIndex{\ifx,\ignorespaces,\immediate,\index,\input,\it}
% \DoNotIndex{\itemindent,\itemsep,\jobname,\kern,\l,\labelsep,\labelwidth}
% \DoNotIndex{\large,\leavevmode,\leftmark,\leftskip,\let,\list}
% \DoNotIndex{\long,\lower,\m@th,\magstep,\makeindex,\markboth,\medskip,\newblock}
% \DoNotIndex{\newcommand,\newcount,\newenvironment,\newfont,\newif,\newpage,\newread}
% \DoNotIndex{\newwrite,\nobreak,\noindent,\normalsize,\null,\o,\oe}
% \DoNotIndex{\openin,\openout,\pagestyle,\par,\paragraph,\parbox}
% \DoNotIndex{\parfillskip,\parindent,\parsep,\parskip,\partopsep}
% \DoNotIndex{\penalty,\quad,\raggedbottom,\raise,\relax,\renewcommand,\renewenvironment}
% \DoNotIndex{\rightskip,\rm,\rule,\sbox,\sc,\setcounter,\settowidth,\sf,\sfcode}
% \DoNotIndex{\sl,\sloppy,\small,\space,\ss,\string,\t}
% \DoNotIndex{\textstyle,\the,\thepage,\thispagestyle,\topmargin,\topsep}
% \DoNotIndex{\tt,\typeout,\u,\unitlength,\usecounter,\v,\varepsilon,\vbox}
% \DoNotIndex{\vfill,\vsize,\vskip,\vspace,\vss,\wd,\widowpenalty,\write,\xdef,\z@}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%    \CheckSum{2071}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%  \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         \~}
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%    \begin{abstract}
%
%    dtk.dtx provides a class and style file for typesetting ``Die
%    \TeX\-nische Ko\-m\"o\-die''---the communications of the German
%    \TeX{} Users Group DANTE e.V. This means that this class can be
%    used by article writers to typeset a single article as well as to
%    produce the complete journal.
%
%    The class and style file is written in a way that it can be used
%    both with \LaTeX\,2.09 and \LaTeXe. Thus it can be used by all
%    persons which are familiar with any flavor of \LaTeX.
%
%    The features of \LaTeXe\ are provided in the \LaTeX\,2.09 mode only
%    to a certain extend. Thus it might not be possible to typeset an
%    article prepared for \LaTeXe\ with \LaTeX\,2.09.
%
%    On the other side it is possible to process an article prepared
%    for \LaTeX\,2.09 with \LaTeXe{} (in native mode). This is justified
%    since \LaTeXe{} is the standard nowadays and \LaTeX\,2.09 should
%    cease to exists in the next decade.
%    \end{abstract}
%
%    \newpage
%    \tableofcontents
%    \newpage
%
%    \section{The User Interface}
%
%    The user interface can be divided into two parts. The first part concerns
%    the normal user who is writing a single article. The second part concerns
%    the user who composes a complete journal.
%
%
%    \subsection{The User Interface for Article Writers}
%
%    The user interface for ordinary users is mainly the interface as it is
%    provided by the documentclass article. In addition to the normal commands
%    the following macros and environments are defined:
%
%    \DescribeMacro{\address}
%    This macro is used to put the address of an author into the list of
%    authors. It should be given before the \verb|\maketitle| command. The
%    first argument is the first name of an author. The second argument is the
%    last name of the author. The third argument is it's address. Several
%    lines in the address are separated by \verb|\\|. Missing arguments should
%    be filled with \verb|\null|.
%
%    Several invocations of \verb|address| are possible. E.g. if the article
%    has been written by several authors. The address and the author can be
%    omitted completely --- e.g. for anonoymous letters to the editor.  But
%    this should not be the normal case.
%
%    \DescribeEnv{abstract}
%    Each article should have be started with a short paragraph describing
%    what this article is about. This paragraph is called abstract. The
%    environment \verb|abstract| is meant for marking a paragraph as
%    abstract. 
%
%
%
%    The following restrictions should be taken into account:
%
%    The sectioning commands are mapped to their star variants.  This
%    means that the commands like \verb|\section| are not numbered. It
%    should not be tried to to put references to those commands.
%
%
%    The following logos are provided by this package if not defined
%    somewhere else. The user is stronly encouraged to use those
%    macros to typeset the logos instead of making their own.
%
%    \begin{tabular}{ll}
%    {\tt\char'134LaTeX}	&\LaTeX					\\
%    {\tt\char'134LaTeXe}	&\LaTeXe				\\
%    {\tt\char'134LaTeXTeX}
%        &(\kern-.15emL\kern-.36em\raise.3ex\hbox{\sc
%        a}\kern-.3em)\kern-.15em\TeX					\\ 
%    {\tt\char'134BibTeX}	&\BibTeX				\\
%    {\tt\char'134MF}		&\MF					\\
%    {\tt\char'134METAFONT}	&\MF					\\
%    {\tt\char'134MP}		&\MP					\\
%    {\tt\char'134METAPOST}	&\MP					\\
%    {\tt\char'134MakeIndex}	&{\it MakeIndex}			\\
%    {\tt\char'134AmS}		&\AmS					\\
%    {\tt\char'134AmSTeX}	&\AmSTeX				\\
%    {\tt\char'134LAmSTeX}	&\LAmSTeX				\\
%    {\tt\char'134PicTeX}	&
%             P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC\kern-.11em\TeX\\
%    {\tt\char'134eV}		&e.\kern-.18emV\kern-.18em.		\\
%    {\tt\char'134dante}	&DANTE e.\kern-.18emV\kern-.18em.	\\
%    {\tt\char'134Dante}	&DANTE, Deutschsprachige Anwendervereinigung
%    				 \TeX~e.\kern-.18emV\kern-.18em.	\\ 
%    {\tt\char'134DTK}		&Die \TeX{}nische Ko\-m{\"o}\-die	\\
%    {\tt\char'134TUG}		&\TeX{} Users Group			\\
%    {\tt\char'134NFSS}		&{\sf NFSS}				\\
%    {\tt\char'134PS}		&{\rm PostScript}
%    \end{tabular}
%
%
%    \DescribeMacro{\footnote}
%    Footnotes are typeset in a special way. As a consequence of the
%    inplementation \TeX{} is not allowed to split footnotes across
%    several pages. Thus you have to keep your footnotes short. It is
%    bad style to pack the main body of text into footnotes (except
%    for critical editions).
%
%
%    \subsection{The Interface for the Production of the Whole Journal}
%
%    The first thing one needs to know is that a complete journal
%    starts with a title page. This title page contains the volume,
%    the number and the date of publication.  Since part of this
%    information is used later it is stored in macros.
%
%    \DescribeMacro{\DieTeXnischeKomoedie}
%    The macro \verb|\DieTeXnischeKomoedie| is provided for this purpose. It
%    takes three arguments. The first argument is the number. The second
%    argument is the annual set and the third argument is the publication
%    date. 
%
%    \DescribeMacro{\CoverArt}
%    The macro \verb|\DieTeXnischeKomoedie| calls the macro \verb|\CoverArt|
%    to typeset the cover page. \verb|\CoverArt| gets the same three arguments
%    as the calling macro \verb|\DieTeXnischeKomoedie|. This macro is
%    responsible to fill the first page adequately. This maro might be
%    redefined to alter the layout of the journal.
%
%    \DescribeMacro{\Label}
%    The macro \verb|\label| has been redefined to be local for each
%    article. Thus it turned out to be necessary to allow assigning of
%    labels which are not restricted by this ``module system''. The
%    macro \verb|\Label| sets such a global label.
%
%    \DescribeMacro{\Ref}
%    The macro \verb|\ref| has been redefined to be local for each
%    article. The macro \verb|\Ref| references a global label set with
%    \verb|Label|.
%
%    \DescribeMacro{\Pageref}
%    The macro \verb|\pageref| has been redefined to be local for each
%    article. The macro \verb|\Pageref| references a global label set with
%    \verb|Label|.
%
%
%
%    \vfill\noindent\hrulefill
%
%    {\em To be completed}
%
%    \noindent\hrulefill\vfill\null
%
%    \StopEventually{}
%    \newpage
%    \if@undefined\environment
%    \newenvironment{environment}[1]{}{}
%    \fi
%
%
%    \section{The Implementation}
%
%    The implementation is mainly based on existing styles/classes. This file
%    contains only adaptions required to provide the logical markup
%    and the definitions to get the special layout of ``Die \TeX
%    nische Kom\"odie''.
%
%
%
%
%    \subsection{Basic Definitions}
%
%    First we have to determine which kind of \LaTeX{} is running. We use
%    the existence of the macro \verb|\documentclass| to see if we have a
%    \LaTeXe. This macro should not be defined in \LaTeX\,2.09.
%    
%    \begin{macrocode}
\newif\ifOldLaTeX
\@ifundefined{documentclass}{\OldLaTeXtrue}{\OldLaTeXfalse}
%    \end{macrocode}
%
%     Now we need a boolean to see if we are in the author version or
%     in the full version. The author version has several commands
%     disabled. The full version is turned on by giving the option
%     \verb|full| to the documentclass/style command.
%
%    \begin{macrocode}
\newif\ifDTK@Author@
\DTK@Author@true
%    \end{macrocode}
%
%    The boolean \verb|DTK@german@| is used to determine if the german
%    package should be loaded automatically. Usually it is turned on.
%    Under certain circumstances it might be necessary to load other
%    packages before the german package. Thus this variable can be set
%    via a package option.
%
%    \begin{macrocode}
\newif\ifDTK@german@
\DTK@german@true
%    \end{macrocode}
%
%    The boolean \verb|DTK@ancient@layout@| is used to turn on the
%    backward compatibility mode. If it is on then the old layout is
%    emulated. In a future version this will be extracted into a
%    separate file.
%
%    \begin{macrocode}
\newif\ifDTK@ancient@layout@
\DTK@ancient@layout@false
%    \end{macrocode}
%
%    
%
%    \subsection{Compatibility Definitions}
%
%    Since we want to use this style with \LaTeX\,2.09 and \LaTeXe{} we have
%    to define a common interface. For this purpose we use a subset of
%    the style writers interface already defined for \LaTeXe{} style
%    writers. Since some macros are not defined in \LaTeX\,2.09 we
%    implement them --- at least to the degree needed here.
%
%    \begin{macrocode}
\ifOldLaTeX
%    \end{macrocode}
%
%    \begin{macro}{\RequirePackage}
%    The macro \verb|RequirePackage| simply tries to load the appropriate
%    style file. The category code of \verb|@| is changed temporarily.
%    The old value is is saved in \verb|\DTK@cat| and restored at the end.
%    
%    Optional arguments are not supported, yet.
%
%    \begin{macrocode}
  \newcommand\RequirePackage[1]{
    \chardef\DTK@cat=\the\catcode`\@
    \catcode`\@=11
    \input{#1.sty}%
    \catcode`\@=\DTK@cat}
%    \end{macrocode}
%    \end{macro}
%    
%    \begin{macro}{\LoadClass}
%    The concept of class and package files has not been so different in
%    \LaTeX\,2.09. Thus the same that has been said for \verb|\RequirePackage|
%    holds also for the macro \verb|\LoadClass|. Thus we just make it a
%    synonym. 
% 
%    \begin{macrocode}
  \let\LoadClass=\RequirePackage
%    \end{macrocode}
%    \end{macro}
%    
%    \begin{macro}{\InputIfFileExists}
%    Now things get a little bit more complicated. To implement the
%    macro \verb|\InputIfFileExists| we try to open the file. If this
%    fails we assume that the file does not exist. The appropriate
%    action is performed in both cases.
% 
%    \begin{macrocode}
  \newcommand\InputIfFileExists[3]{%
    \openin\DTK@file #1
    \ifeof\DTK@file\closein\DTK@file #3%
    \else\closein\DTK@file #2\input{#1}%
    \fi}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\DeclareOption}
%    The options in \LaTeX\,2.09 are defined as special named
%    macros. This is emulated here. The star variant is simply mapped
%    to do nothing.
%    \begin{macrocode}
  \newcommand\DeclareOption{\@ifstar{\@gobble}{\DTK@DeclareOption}}
  \newcommand\DTK@DeclareOption[2]{\@namedef{ds@#1}{#2}}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\ProcessOptions}
%    In \LaTeX\,2.09 the options are processed automatically. Thus
%    this macro is simply a noop.
%    \begin{macrocode}
  \let\ProcessOptions=\relax
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\OptionNotUsed}
%    This feature is not present in \LaTeX\,2.09. Thus the argument is
%    silently absorbed and the macro is simply a noop.
%    \begin{macrocode}
  \let\OptionNotUsed=\gobble
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\ProvidesClass}
%    This declaration is used to type out the version information.
%    \begin{macrocode}
  \def\ProvidesClass#1[#2]{\typeout{Document Style #1 #2}}
%    \end{macrocode}
%    \end{macro}
%
%    Just for fun we define some font switching commands. In fact the
%    behaviour in \LaTeXe{} is more complex. But I think these
%    definitions are enough to avoid errors.
%    \begin{macrocode}
  \newcommand\emph[1]{{\em #1}\/}
  \newcommand\textbf[1]{{\bf #1}}
  \newcommand\textrm[1]{{\rm #1}}
  \newcommand\textsc[1]{{\sc #1}}
  \newcommand\textsf[1]{{\sf #1}}
  \newcommand\textsl[1]{{\sl #1\/}}
  \newcommand\textit[1]{{\it #1\/}}
  \newcommand\texttt[1]{{\tt #1}}

  \@ifundefined{fontshape}{\let\fontshape=\@gobble}{}
  \@ifundefined{selectfont}{\let\selectfont=\relax}{}

  \newcommand\providescommand[2]{\ifx#1\@undefined\newcommand#1{#2}\fi}
%    \end{macrocode}
%
%    \begin{macrocode}
\fi
%    \end{macrocode}
%
%    We need a new handle to read files. This handle will be used to
%    implement \verb|\InputIfFileExists|. Since \verb|\newread| is
%    declared \verb|\outer| we have to allocate the new handle here. It is
%    just used in the \LaTeX\,2.09 mode.
% 
%    \begin{macrocode}
\newread\DTK@file
%    \end{macrocode}
%
%    Now we can continue without considering the \LaTeX{} dialect any
%    more. Any changes we make from now on are exclusivly based on the
%    interface defined above. 
%
%    This is all we had to do to implement the compatibility mode. It might
%    turn out that more features are desirable. Those extensions are left to
%    future versions of this class, eh sorry, style.
%
%
%
%    \subsection{Initializations}
%
%    
%    Now we can start to define the class. The version date is taken
%    from the macro \verb|\filedate|. This macro is defined at the
%    beginning of this file. The value is changed by the version
%    control system rcs.
%    \begin{macrocode}
\ProvidesClass{dtk}[\filedate\space  gene]
%    \end{macrocode}
%    
%    The options to switch to other point sizes are disabled. Nobody
%    is supposed to use this class with another than the single design
%    size.
%    \begin{macrocode}
\DeclareOption{10pt}{\OptionNotUsed}
\DeclareOption{11pt}{\OptionNotUsed}
\DeclareOption{12pt}{\OptionNotUsed}
%    \end{macrocode}
%    
%    The options to switch the oneside and twoside settings are
%    disabled. Nobody is supposed to use this class with another than
%    the single design size. 
%    \begin{macrocode}
\DeclareOption{twoside}{\OptionNotUsed}
\DeclareOption{oneside}{\OptionNotUsed}
%    \end{macrocode}
%    
%    We define an internal style option ``full''. This loads
%    the multicolumn package from the Mainz distribution. It is only
%    needed to produce the full journal. Additionally several macros
%    are only defined in the full version. This makes sure that authors can
%    not play with too much internal macros.
%    \begin{macrocode}
\DeclareOption{full}{\DTK@Author@false}
%    \end{macrocode}
%    
%    The package option \verb|omitgerman| can be used to omit the
%    loading of \verb|german.sty|. This migth be necessary if packages
%    are required which have to be loaded before \verb|german|.
%    \begin{macrocode}
\DeclareOption{omitgerman}{\DTK@german@false}
%    \end{macrocode}
%    
%    In 1996 the layout of ``Die TeXnische Komoedie'' has been
%    changed. The option \verb|ancient| can be used to switch back to
%    the old layout. Currently both layout definitions are contained
%    in this class. In a future version the old layout will be
%    extracted into a separate file.
%    \begin{macrocode}
\DeclareOption{ancient}{\DTK@ancient@layout@true}
%    \end{macrocode}
%    
%    The remaining options are handed down to the base class \verb|book|.
%    This works for \LaTeXe{} and is a noop for \LaTeX\,2.09.
%    \begin{macrocode}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{book}}
%    \end{macrocode}
%    
%    Now we can process all options. Again this works for \LaTeXe{}
%    and is a noop for \LaTeX\,2.09 since the options are
%    automatically processed there.
%    \begin{macrocode}
\ProcessOptions
%    \end{macrocode}
%
%    \subsection{Loading the Used Packages/Styles}
%
%    This class is a variation of the \verb|book| class. Thus
%    we load the base class. This loading is done with the macro from
%    the interface definition or the built-in \LaTeXe{} primitive.
%    \begin{macrocode}
\LoadClass{book}
%    \end{macrocode}
%
%    The package ``{\tt german}'' is used since this class is intended to be
%    used by german users mainly. As one result the language is set to
%    german as default. On the other side some parameters are modified
%    to get a layout according to german habits. E.g. fench spacing is
%    activated.
%
%    There are some known problems when german.sty is used. Therefore
%    it might turn out necessary to load german.sty after other
%    packages have been loaded. For this purpose the option
%    |omitgerman| can be used. To ensure proper operation of dtk it is
%    necesary to call the macro \verb|\DTKgerman| after the style german
%    has been loaded.
%    \begin{macrocode}
\ifDTK@german@
\RequirePackage{german}
\else
\typeout{*** Warning: Loading of german has been omitted. You have to
  load it manually.}
\typeout{*** Don't forget to use the macro \string\DTKgerman\space
  afterwards.}
\fi
%    \end{macrocode}
%
%    The package ``{\tt multicol}'' is used in the full version. Thus
%    we only load it if the option \verb|full| has been given.
%    \begin{macrocode}
\ifDTK@Author@\else
  \RequirePackage{multicol}
\fi
%    \end{macrocode}
%
%    \subsection{Layout Parameters}
%
%    The layout can be influenced by a large number of
%    parameters. Thus the design decisions have been made transparent
%    (to a certain degree at least). These options are not meant to be
%    changed except when a new layout is beeing designed and implemented.
%
%
%    The size of the paper is A5. Thus the printable area is defined
%    appropriately. The height is set to 484pt = 170.10654mm; the
%    width is 342pt = 120.19925mm. This is slightly larger than in the
%    predecessor style.
%    \begin{macrocode}
\textheight = 484pt
\textwidth  = 342pt
%    \end{macrocode}
%
%    The page is flushed left. A left margin of one inch is the default
%    on any properly installed printer. Any adjustment of the
%    printable area on the page is left to the output driver.
%    \begin{macrocode}
\oddsidemargin  = 0pt
\evensidemargin = \oddsidemargin
\topmargin      = 0pt
%    \end{macrocode}
%
%    The head line needs some space. In fact this depends on some
%    configurable macros. Nevertheless we take the old values and
%    leave it to a user to change those values if required.
%    \begin{macrocode}
\ifDTK@ancient@layout@
  \headheight = 14pt
  \headsep    = 12pt
\else
  \headheight = 17pt
  \headsep    = 17pt
\fi
%    \end{macrocode}
%
%    The foot line needs some space. The same remarks given above
%    apply here too.
%    \begin{macrocode}
\ifDTK@ancient@layout@
  \footskip = 21pt
\else
  \footskip = 24pt
\fi
%    \end{macrocode}
%
%    Paragraphs are not indented but separated by additional lead
%    only. This lead may expand a little bit but it may not
%    shrink. (Since the whole journal is typeset with raggedbottom it
%    is not clear to me if this makes sense at all)
%    \begin{macrocode}
\parskip   = 0.5\baselineskip \advance\parskip by 0pt plus 2pt
\parindent = 0pt
%    \end{macrocode}
%
%    To reduce the probability that a float requires a complete page
%    we increase the allowed fraction which can be occupied by floats
%    at the top and the bottom of the page. Additionally we reduce the
%    fraction required for text.
%    \begin{macrocode}
\renewcommand\topfraction{.9}
\renewcommand\bottomfraction{.9}
\renewcommand\textfraction{.1}
%    \end{macrocode}
%
%    As promised before we disable vertical adjustment of pages. This
%    seems to be a good strategy to avoid ragged apearance by too much
%    space between paragraphs.
%    \begin{macrocode}
\raggedbottom
%    \end{macrocode}
%
%    To avoid a bad layout we adjust some parameters. Thus we try to
%    avoid widows and clubs.
%    \begin{macrocode}
\clubpenalty  = 10000
\widowpenalty = 10000
%    \end{macrocode}
% 
%    \begin{macro}{\DTKgerman}
%    We will change some of the captions names used within \LaTeX{}. To avoid
%    that the package ``{\tt german}'' undoes our efforts we anchor the
%    changes in the \verb|\captionsgerman| macro. To do so we have to save the
%    old meaning in an internal name. 
%    \begin{macrocode}
\newcommand\DTKgerman{
  \let\DTK@captionsgerman=\captionsgerman
  \let\captionsgerman=\DTK@captionsgerman
}
%    \end{macrocode}
%    \end{macro}
% 
%    \begin{macro}{\DTK@captionsgerman}
%
%    Now we can redefine the captions command. First of all we use the
%    old definition. Thus we avoid duplicating the whole definition
%    and maybe getting in trouble with some future version. 
%    \begin{macrocode}
\newcommand\DTK@captionsgerman{
  \DTK@captionsgerman
%    \end{macrocode}
% 
%    \begin{macro}{\refname}
%    Just in case that an article contains a list of references we
%    define the title for this section.
%    Well, in fact we assume that the \LaTeX{} used is not too
%    ancient. Otherwise this will not work properly.
%    \begin{macrocode}
  \gdef\refname{Literatur}%
%    \end{macrocode}
%    \end{macro}
% 
%    \begin{macro}{\bibname}
%    Ok. And now the same trick for the title of the bibliography.
%    \begin{macrocode}
  \gdef\bibname{Literatur}%
%    \end{macrocode}
%    \end{macro}
% 
%    \begin{macro}{\contentsname}
%    The headline for the table of contents is defined appropriately.
%    \verb|\volume| contains the number of the current volume. This
%    number is set by the macro producing the front page.
%    \begin{macrocode}
  \gdef\contentsname{Inhalt Heft \volume}%
%    \end{macrocode}
%    \end{macro}
% 
%    Now we are done. We just have to make sure that the new values
%    are activated by calling the new captions macros.
% 
%    \begin{macrocode}
}
%    \end{macrocode}
%    \end{macro}
% 
%    If the option german has been loaded automatically then we have
%    to modify the captions at once. Otherwise the user is responsible
%    to call \verb|\DTKgerman| after the package german has been loaded.
%    \begin{macrocode}
\ifDTK@german@
  \DTKgerman
\fi
%    \end{macrocode}
% 
%    \begin{macro}{\addressname}
%    The heading for the list of authors is defined in this macro.
%    \begin{macrocode}
\newcommand\addressname{Autoren/Organisatoren}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\volume}
%    The number of the current volume is stored in this macro. The
%    value is automatically set with the macro
%    \verb|\DieTeXnischeKomoedie|. Since this macro is usually only
%    used in the full version we provide a reasonable default.
%    \begin{macrocode}
\newcommand\volume{?/?? --- Entwurf}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\footmark}
%    This macro contains the text of the running foot.
%    \begin{macrocode}
\newcommand\footmark{Die \TeX nische Kom{\"o}die \volume}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\ChapterFont}
%    This macro contains the font changing command issued before
%    typesetting a chapter title. 
%    \begin{macrocode}
\ifDTK@ancient@layout@
  \newcommand\ChapterFont{\Large\bf}
\else
  \newcommand\ChapterFont{\Large\sf}
\fi
%    \end{macrocode}
%    \end{macro}
% 
%    \begin{macro}{\SectionFont}
%    This macro contains the font changing command issued before
%    typesetting the section heading.
%    \begin{macrocode}
\ifDTK@ancient@layout@
  \newcommand\SectionFont{\normalsize\bf}
\else
  \newcommand\SectionFont{\large\sf}
\fi
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\SubsectionFont}
%    This macro contains the font changing command issued before
%    typesetting the subsection heading.
%    \begin{macrocode}
\ifDTK@ancient@layout@
  \newcommand\SubsectionFont{\normalsize\it}
\else
  \newcommand\SubsectionFont{\normalsize\sf}
\fi
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\SubsubsectionFont}
%    This macro contains the font changing command issued before
%    typesetting the subsubsection heading and below.
%    \begin{macrocode}
\ifDTK@ancient@layout@
  \newcommand\SubsubsectionFont{\normalsize\it}
\else
  \newcommand\SubsubsectionFont{\normalsize\sf}
\fi
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\AuthorFont}
%    This macro contains the font changing command issued before
%    typeseting the author of an article. 
%    \begin{macrocode}
\ifDTK@ancient@layout@
  \newcommand\AuthorFont{\normalsize\rm}
\else
  \newcommand\AuthorFont{\large\sf}
\fi
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\TitleFont}
%    This macro contains the font changing command issued before
%    typeseting the title of an article. 
%    \begin{macrocode}
\ifDTK@ancient@layout@
  \newcommand\TitleFont{\large\bf}
\else
  \newcommand\TitleFont{\Large\sf}
\fi
%    \end{macrocode}
%    \end{macro}
% 
%    \begin{macro}{\HeadFont}
%    This macro contains the font changing command issued before
%    typeseting the running head line. 
%    \begin{macrocode}
\ifDTK@ancient@layout@
  \newcommand\HeadFont{\sl}
\else
  \newcommand\HeadFont{\sf\fontshape{sl}\selectfont}
\fi
%    \end{macrocode}
%    \end{macro}
% 
%    \begin{macro}{\FootFont}
%    This macro contains the font changing command issued before
%    typeseting the running foot line. 
%    \begin{macrocode}
\ifDTK@ancient@layout@
  \newcommand\FootFont{\footnotesize\sl}
\else
  \newcommand\FootFont{\footnotesize\sf\fontshape{sl}\selectfont}
\fi
%    \end{macrocode}
%    \end{macro}
% 
%    \begin{macro}{\PagenoFont}
%    This macro contains the font changing command issued before
%    typeseting the page number. 
%    \begin{macrocode}
\ifDTK@ancient@layout@
  \newcommand\PagenoFont{\rm}
\else
  \newcommand\PagenoFont{\sf}
\fi
%    \end{macrocode}
%    \end{macro}
% 
%    \begin{macro}{\NewpageThreshold}
%    The macro \verb|\NewpageThreshold| is used to determine how much
%    space is needed on a page to start a new article. If less space
%    is left then the next article is started on the next page.
%    \begin{macrocode}
\newcommand\NewpageThreshold{100pt}
%    \end{macrocode}
%    \end{macro}
% 
%    \begin{macro}{\HeadRuleDepth}
%    This macro contains the depth of the line between the running
%    head and the main body of text.
%    \begin{macrocode}
\ifDTK@ancient@layout@
  \newcommand\HeadRuleDepth{0.1pt}
\else
  \newcommand\HeadRuleDepth{0pt}
\fi
%    \end{macrocode}
%    \end{macro}
% 
%    \begin{macro}{\FootRuleDepth}
%    This macro contains the depth of the line between the running
%    foot and the main body of text.
%    \begin{macrocode}
\ifDTK@ancient@layout@
  \newcommand\FootRuleDepth{0.1pt}
\else
  \newcommand\FootRuleDepth{0pt}
\fi
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\ContentsParSkip}
%    This macro contains the parskip used for the table of contents.
%    \begin{macrocode}
\newcommand\ContentsParSkip{1pt}
%    \end{macrocode}
%    \end{macro}
%
%
%    \subsection{Useful Macros}
%
%    This section contains some useful abbreviations. They are mainly
%    some kind of logos.
%
%   The following hack is from Bernd Raichle.
%
%   Fuer LaTeX 2.09 (mit oder ohne NFSS) benoetigen wir noch
%   so etwas wie \verb|\smaller| aus dem veralteteten `smaller.sty',
%   um SmallCaps fuer (fast) alle Schriftarten nachzubilden.
%   Fuer SmallCaps muss jedoch um mehr Schriftgrade als bei
%  \verb|\smaller| verkleinert werden, so dass hier eine neue
%   Definition namens \verb|\logo@smaller| folgt, deren Verkleinerung
%   sich an den `math sizes' (hier: \verb|\scriptfont<fam>|) orientiert,
%   die standardmaessig mit \LaTeX2e definiert werden.
%
%    \begin{macrocode}
\ifOldLaTeX
\expandafter\ifx\csname selectfont\endcsname\relax
  % Fuer OFSS benoetigen wir noch einen Hack, damit
  % wir wieder auf die Schriftfamilie/Series/Shape
  % zurueckwechseln. Dazu ``missbrauchen'' wir die
  % `math group/fam', die in den Makros in der Datei
  % "lfonts.tex" entsprechend mit veraendert wird.
  \newcommand{\logo@sm@ller}{\relax
    \expandafter\logo@sm@ll@r\expandafter{\the\fam}}
  \newcommand{\logo@sm@ll@r}[1]{%
    % \ifx\@currsize\tiny \tiny\fi
    \ifx\@currsize\scriptsize \tiny\fi
    \ifx\@currsize\footnotesize \tiny\fi
    \ifx\@currsize\small \scriptsize\fi
    \ifx\@currsize\normalsize \scriptsize\fi
    \ifx\@currsize\large \footnotesize\fi
    \ifx\@currsize\Large \normalsize\fi
    \ifx\@currsize\LARGE \large\fi
    \ifx\@currsize\huge \Large\fi

    \ifx\@currsize\Huge \huge\fi
    \ifcase#1\relax\rm\or\mit\or\cal\or\tenex  % not sure about the tenex
        \or\it\or\sl\or\bf\or\tt\or\sf\or\sc\or\ly\fi}
\else
  % Mit NFSS (fuer LaTeX 2.09) koennen wir die Groesse
  % unabhaengig von den anderen Font-Eigenschaften aendern,
  % so dass dies etwas einfacher geht.
  \newcommand{\logo@sm@ller}{%
    \relax\@nomath\logo@smaller
    \ifx\f@size\@vpt \else
      \ifx\f@size\@vipt  \fontsize\@vpt{6pt}\fi
      \ifx\f@size\@viipt \fontsize\@vpt{6pt}\fi
      \ifx\f@size\@viiipt \fontsize\@vipt{7pt}\fi
      \ifx\f@size\@ixpt \fontsize\@vipt{7pt}\fi
      \ifx\f@size\@xpt \fontsize\@viipt{8pt}\fi
      \ifx\f@size\@xipt \fontsize\@viiipt{9.5pt}\fi
      \ifx\f@size\@xiipt \fontsize\@viiipt{9.5pt}\fi
      \ifx\f@size\@xivpt \fontsize\@xpt{12pt}\fi
      \ifx\f@size\@xviipt \fontsize\@xiipt{14pt}\fi
      \ifx\f@size\@xxpt \fontsize\@xivpt{18pt}\fi
      \ifx\f@size\@xxvpt \fontsize\@xxpt{25pt}\fi
      \selectfont
    \fi}
  % die ersten NFSS-Versionen benutzten noch den Makroname
  % \size statt \fontsize
  \@ifundefined{fontsize}{\let\fontsize=\size}{}
\fi
\newcommand{\logo@smaller}{\protect\logo@sm@ller}
\fi
%    \end{macrocode}
%
%    \subsubsection{Macros from texnames.sty}
%
%    The following macros are taken from the file {\tt texnames.sty}
%    version \verb|1.09| from \verb|<16 March 1993>| by Nelson
%    H.\,F.~Beebe. I have simply included the definitions here to avoid
%    additional files to be distributed with dtk.dtx. The original
%    documentation has been wrapped into the doc format. And here it goes:
%
%    In the following, we first give the ``official'' definition,
%    then follow it with spelling variants.  Alternate definitions
%    are discarded in favor of the official one.  Each family is
%    separated by a line like the following one.
%   
%    \begin{macro}{\TeX}
%    Only change from plain.tex is the \verb|\spacefactor| assignment
%    (suggested by Phil Taylor), so that \TeX\ at the end of a
%    sentence isn't treated as an abbreviation.
%
%    \begin{macrocode}
\renewcommand\TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX%
  \spacefactor1000 }
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\AmS}
%    From the AMS tex/ams/amslatex/fontsel/nfssinst.tex file:
%    \begin{macrocode}
\@ifundefined{AmS}{%
  \def\AmS{\(\cal A\)\kern-.1667em\lower.5ex\hbox
    {\(\cal M\)}\kern-.125em{\(\cal S\)}}}{}
\@ifundefined{AMS}{\let\AMS=\AmS}{}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\AmSLaTeX}
%    \begin{macrocode}
\@ifundefined{AmSLaTeX}{\def\AmSLaTeX{\AmS-\LaTeX}}{}
\@ifundefined{AMSLaTeX}{\let\AMSLaTeX=\AmSLaTeX}{}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\AmSTeX}
%    Mike Spivak's amstex/amstex.tex 1.1d [26-Aug-1988] has\\
%    \verb|\def\AmSTeX{{\textfontii A}\kern-.1667em\lower.5ex\hbox|\\
%    \verb|            {\textfontii M}\kern-.125em{\textfontii S}-\TeX}|\\
%    and 2.1 [05-Apr-1991] has an equivalent definition.
%    AmSTeX's \verb|\textfontii| is exactly the same as \verb|\cal|, which
%    all \TeX variants understand.
%
%    \begin{macrocode}
\@ifundefined{AmSTeX}{%
  \def\AmSTeX{$\cal A$\kern-.1667em\lower.5ex\hbox{$\cal M$}%
    \kern-.125em$\cal S$-\TeX}}{}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\AMSTEX}
%    Leslie Lamport's latex/tmanual.tex [10-Jul-1984] (an early
%    draft of the book) defines it in uppercase with the standard
%    definition.
%    \begin{macrocode}
\@ifundefined{AMSTEX}{\let\AMSTEX=\AmSTeX}{}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\AMSTEX}
%    Barbara Beeton's latex/deproc.sty [24-Apr-1986] and inputs/tugbot.sty
%    [11-Jan-1988] uses this spelling, but the definition\\
%    \verb|\leavevmode\hbox{$\cal A\kern-.2em\lower.376ex \hbox{$\cal|\\
%    \verb|M$}\kern-.2em\cal S$-\TeX}|
%    \begin{macrocode}
\@ifundefined{AMSTeX}{\let\AMSTeX=\AmSTeX}{}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\BibTeX}
%    The definitions of \verb|\BibTeX| and \verb|\SLiTeX| in Leslie Lamport's
%    latex/local.tex lower the E by 0.7ex, while \TeX in plain.tex lowers
%    it by 0.5ex.  Oren Patashnik's bibtex/btxdoc.tex and bibtex/btxhak.tex
%    [08-Feb-1988] and bibtex/bibtex.web 0.99c [xx-Feb-1988] use this same
%    name and definition, but Oren said using \TeX here is ok.  (Curiously,
%    \LaTeX itself does not define macros for any \TeX ware except \LaTeX and
%    \TeX!)
%
%    \begin{macrocode}
\ifOldLaTeX
  \newcommand{\BibTeX}{\protect\pBibTeX}
  \newcommand{\pBibTeX}{B\kern-.05em%
    \hbox{\logo@smaller I\kern-.025emB}\kern-.08em%
    \-\TeX}
\else
  \DeclareRobustCommand{\BibTeX}{B\kern-.05em%
    % Der folgende Hack stammt aus der Definition des
    % Makros \LaTeX, siehe Datei `ltlogos.dtx' der
    % LaTeX2e-Verteilung.
    \hbox{$\m@th$% %% force math size calculations
          \csname S@\f@size\endcsname
          \fontsize\sf@size\z@
          \math@fontsfalse\selectfont
          I\kern-.025emB}%
    \kern-.08em%
    \-\TeX}
\fi
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\BIBTeX}
%    Leslie Lamport uses this spelling in latex.tex, but not as a
%    macro.  We include it for consistency with AMSTeX.
%
%    \begin{macrocode}
\@ifundefined{BIBTeX}{\let\BIBTeX=\BibTeX}{}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\BIBTEX}
%    Leslie Lamport's latex/slides.tex [05-Jun-1984],
%    latex/tmanual.tex [10-Jul-1984] (an early draft of the book),
%    and latex/lerrata.tex [23-Jul-1985] have this spelling, but the
%    definition \verb|BIB\kern-.1em\TeX|.
%
%    \begin{macrocode}
\@ifundefined{BIBTEX}{\let\BIBTEX=\BibTeX}{}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\LAMSTeX}
%    From tugboat.com 1.08 [24-Oct-1990].
%
%    \begin{macrocode}
\@ifundefined{LAMSTeX}{%
  \newcommand\LAMSTeX{L\raise.42ex\hbox{\kern-.3em\the\scriptfont2 A}%
    \kern-.2em\lower.376ex\hbox{\the\textfont2 M}%
    \kern-.125em {\the\textfont2 S}-\TeX}}{}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\LamSTeX}
%    \begin{macrocode}
\@ifundefined{LamSTeX}{\let\LamSTeX=\LAMSTeX}{}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\LAmSTeX}
%    This variant seems likely to appear:
%
%    \begin{macrocode}
\@ifundefined{LAmSTeX}{\let\LAmSTeX=\LAMSTeX}{}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\LaTeX}
%    The definition from latex.tex (LATEX VERSION 2.09 <14 January 1991>)
%    and bibtex.web 0.99c [xx-Feb-1988] lowers the E slightly more than
%    \TeX, but consistency seems more desirable.  See comments at \BibTeX.
%    Different definitions are given by latex/deproc.sty [24-Apr-1986],
%    amstex/man.sty [15-Dec-1986] inputs/tugbot.sty [11-Jan-1988], and
%    latex/tugboat.com 1.08 [24-Oct-1990].
%
%    \begin{macrocode}
\@ifundefined{LaTeX}{%
  \def\LaTeX{L\kern-.36em\raise.3ex\hbox{\sc a}\kern-.15em\TeX}}{}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\LATEX}
%    latex/slides.tex [05-Jun-1984] and latex/lerrata.tex [23-Jul-1985]
%    have this spelling, but different definitions
%
%    \begin{macrocode}
\@ifundefined{LATEX}{\let\LATEX=\LaTeX}{}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\LATEX}
%    latex/slides.tex [05-Jun-1984] and latex/lerrata.tex [23-Jul-1985]
%    have this spelling, but different definitions
%
%    \begin{macrocode}
\ifOldLaTeX
  \newcommand\LaTeXTeX{(\kern-.15emL\kern-.36em\raise.3ex\hbox{\sc
      a}\kern-.3em)\kern-.15em\TeX}%
\else
  \DeclareRobustCommand{\LaTeXTeX}{(\kern-.15emL\kern-.36em%
    {\sbox\z@ T%
      \vbox to\ht0{\hbox{$\m@th$%
          \csname S@\f@size\endcsname
          \fontsize\sf@size\z@
          \math@fontsfalse\selectfont
          A}%
        \vss}%
      }\kern-.2em)%
    \kern-.15em%
    \TeX}
\fi
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\MF}
%    Don Knuth's mf.web 2.7 [xx-Sep-1990] and Barbara Beeton's
%    latex/deproc.sty [24-Apr-1986] use an equivalent of this definition.
%    The font is variously named \verb|\logo|, \verb|\manfnt|, and
%    \verb|\mf|. plain.tex
%    preloads \verb|\manfnt|.  manfnt has the letters A, E, F, M, N, O, T in
%    various sizes plus extra symbols for Don Knuth's books Computers and
%    Typesetting, and Concrete Mathematics, while logo10 has only those
%    letters in one size.  AmSTeX uses \verb|\logo| in amsppt.sty and
%    imappt.sty, so we should avoid it, and tugboat.com uses
%    \verb|\mf| for \verb|{\smc Metafont}|. We therefore use
%    \verb|\manfnt| here, defining it if necessary.  QUESTION: should
%    we use manfnt, or logo10? 
%
%    \begin{macrocode}
\ifOldLaTeX
  \ifx\manfnt\@undefined
    \font\manfnt=logo10
  \fi
  \ifx\manfntsl\@undefined
    \font\manfntsl=logosl10
  \fi
  \def\MF{{\ifdim\fontdimen1\font>0pt \let\manfnt = \manfntsl \fi
      {\manfnt META}\-{\manfnt FONT}}\spacefactor1000 }%
  \def\MP{{\ifdim\fontdimen1\font>0pt \let\manfnt = \manfntsl \fi
      {\manfnt META}\-{\manfnt POST}}\spacefactor1000 }%
\else
%    \end{macrocode}
%
%    The following improved definitions are taken from mflogo by Ulrik Vieth.
%
%    \begin{macrocode}
\DeclareFontFamily{U}{logo}{}
\DeclareFontShape{U}{logo}{m}{n}{
  <8> <9> gen * logo
  <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88> logo10
}{}
\DeclareFontShape{U}{logo}{m}{it}{
  <8> <9> gen * logosl
  <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88> logosl10
}{}
\DeclareFontShape{U}{logo}{m}{sl}{
  <-> ssub * logo/m/it
}{}
\DeclareFontShape{U}{logo}{sbc}{n}{
  <8> <9> sub * logo/m/n
  <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88> logobf10
}{}
\DeclareFontShape{U}{logo}{b}{n}{
  <8> <9> sub * logo/m/n
  <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88> logod10
}{}
\DeclareFontShape{U}{logo}{bx}{n}{
  <-> ssub * logo/b/n
}{}
\DeclareRobustCommand\logofamily{%
  \not@math@alphabet\logofamily\relax
  \fontencoding{U}\fontfamily{logo}\selectfont}
\DeclareTextFontCommand{\textlogo}{\logofamily}
\def\MF{\textlogo{META}\-\textlogo{FONT}\@}
\def\MP{\textlogo{META}\-\textlogo{POST}\@}
\fi
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\METAFONT}
%    I cannot find any ``official'' uses of this alternate, but it
%    seems likely that people will use it.
%
%    \begin{macrocode}
\@ifundefined{METAFONT}{\let\METAFONT=\MF}{}
%    \end{macrocode}
%    \end{macro}
%    \begin{macro}{\METAPOST}
%    In analogy to \verb|METAFONT|.
%
%    \begin{macrocode}
\@ifundefined{METAPOST}{\let\METAPOST=\MP}{}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\SLITEX}
%    Leslie Lamport's latex/slides.tex [05-Jun-1984].  His
%    latex/lerrata.tex [23-Jul-1985] and latex/tmanual.tex
%    [10-Jul-1984] (an early draft of the book) define it as
%    SLI\TeX!  The \LaTeX\ User's Guide and Reference Manual (1986)
%    appears to use small caps, and possibly kerning, for Sli.
%    I need to ask Leslie to suggest a preferred definition.
%
%    \begin{macrocode}
\@ifundefined{SLITEX}{
  \newcommand\SLITEX{%
    S\kern-.065em L\kern-.18em\raise.32ex\hbox{i}%
    \kern-.03em\TeX}}{}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\SLiTeX}
%    latex/local.tex (sample Local Guide) [27-Oct-1988] uses
%    this name, but defines it as\\
%    \verb|{\rm S\kern-.06em{\sc l\kern-.035emi}\kern-.06em T\kern|\\
%    \verb|  -.1667em\lower.7ex\hbox{E}\kern-.125emX}|\\
%    with an extra-low E, and kerned Sli in small caps.  Is this
%    what the \LaTeX\ User's Guide and Reference Manual (1986) used?
%
%    \begin{macrocode}
\@ifundefined{SLiTeX}{\let\SLiTeX=\SLITEX}{}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\SliTeX}
%    latex/slitex.tex [08-Jun-1988] uses SliTeX in typeouts,
%    but not as a macro -- what a way to confuse the user.
%
%    \begin{macrocode}
\@ifundefined{SliTeX}{\let\SliTeX=\SLITEX}{}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\SLITeX}
%    I cannot find a use of this one, but it seems a likely
%    candidate anyway, and is consistent with AMSTeX and BIBTeX.
%
%    \begin{macrocode}
\@ifundefined{SLITeX}{\let\SLITeX=\SLITEX}{}
%    \end{macrocode}
%    \end{macro}
%
%
%    \begin{macro}{\NTS}
%    This one comes from a communication with Bernd Raichle.
%
%    \begin{macrocode}
\newcommand\NTS{\mbox{\mathsurround=0pt
    \(\cal N\mkern -4mu\lower .5ex\hbox{$\cal T$}\mkern -2mu S\)}}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\MakeIndex}
%    This one comes from a communication with Bernd Raichle based on
%    makeindex.tex -- released 17 February 1987 by Leslie Lamport.
%    \begin{macrocode}
\newcommand\MakeIndex{\textit{Make\-Index}}
%    \end{macrocode}
%    \end{macro}
%
%
%    \subsubsection{Additional Macros for Logos}
%
%    The following macros are maily form the predecessor style
%    file. Some new ones have been added.
%
%    \begin{macro}{\eV}
%    The abbreviation for e.\kern-.18emV\kern-.18em.\ is defined in
%    this macro. The kerning of the letters is corrected manually.
%
%    Disclaimer: I have not invented this macro. It has been defined
%    this way in the predecessor style.
%    \begin{macrocode}
\ifDTK@ancient@layout@
  \newcommand\eV{e.\kern-.18emV\kern-.18em\@ifnextchar.{}{.}}
\else
  \newcommand\eV{e.V\kern-.18em\@ifnextchar.{}{.}}
\fi
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\dante}
%    The ``official logo'' for DANTE e.\kern-.18emV\kern-.18em.\ is
%    defined.
%    \begin{macrocode}
\newcommand\dante{DANTE \eV}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\Dante}
%    The long name of DANTE.
%    \begin{macrocode}
\newcommand\Dante{DANTE, Deutschsprachige Anwendervereinigung \TeX~\eV}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\DTK}
%    The long name of this booklet, eh journal.
%    \begin{macrocode}
\newcommand\DTK{Die \TeX\-ni\-sche Ko\-m{\"o}\-die}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\LaTeXe}
%    If \verb|\LaTeXe| is not defined then define it. Since this macro
%    is so essential we just want to be sure that it exists.
%    \begin{macrocode}
\ifx\LaTeXe\@undefined
  \def\LaTeXe{\LaTeX{}\kern.05em2$_{\textstyle\varepsilon}$}
\fi
%    \end{macrocode}
%    \end{macro}
%
%
%    \begin{macro}{\PS}
%    We define the logo for Post\-Script.
%    \begin{macrocode}
\newcommand\PS{Post\-Script}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\PiC}
%    For some reason this is not defined in texnames.sty. Since it has
%    been in the predecessor of this style it is also defined here.
%    \begin{macrocode}
\newcommand\PiC{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\PiCTeX}
%    Now the previous macro is combined with \TeX.
%    \begin{macrocode}
\newcommand\PiCTeX{\PiC\kern-.11em\TeX}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\TUG}
%    The \TeX{} Users Group.
%    \begin{macrocode}
\newcommand\TUG{\TeX{} Users Group}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\TUGboat}
%    The communications of the \TeX{} Users Group
%    \begin{macrocode}
\newcommand\TUGboat{\textsl{TUGboat}}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\TTN}
%    The communications of the \TeX{} Users Group
%    \begin{macrocode}
\newcommand\TTN{\textsl{\TeX{} and TUG NEWS}}
%    \end{macrocode}
%    \end{macro}
%
%
%    \begin{macro}{\NFSS}
%    The New Font Selection Scheme.
%    \begin{macrocode}
\newcommand\NFSS{\textsf{NFSS}}
%    \end{macrocode}
%    \end{macro}
%
%
%
%    \subsection{Size Changing Commands and Mathematics}
%
%    The size changing commands \verb|\small| and \verb|\footnotesize|
%    redefine also \verb|\@listi|. This effect has to be undone.
% 
% 
%    \begin{macro}{\DTK@math}
%    This macro modifies the relavant parameters for typesetting
%    mathematics. 
%    \begin{macrocode}
\newcommand\DTK@math{%
  \abovedisplayskip      = 4pt plus 2pt minus 1pt
  \belowdisplayskip      = \abovedisplayskip
  \abovedisplayshortskip = 2pt plus 2pt
  \belowdisplayshortskip = \abovedisplayshortskip
}
%    \end{macrocode}
%    \end{macro}
% 
%    \begin{macro}{\@normalsize}
%    This is an internal size changing command. We save the old
%    definition in \verb|\DTK@@normalsize| and redefine it. After the
%    old definition is used some sizes are changed to a smaller value.
%    \begin{macrocode}
\let\DTK@@normalsize=\@normalsize
\def\@normalsize{%
  \DTK@@normalsize
  \DTK@math
  \let\@listi=\@listI}
%    \end{macrocode}
%    \end{macro}
% 
%    \begin{macro}{\normalsize}
%    This is a size changing command. We save the old
%    definition in the macro \verb|\DTK@normalsize| and redefine
%    it. After the old definition is used some sizes are changed to a
%    smaller value. 
%    \begin{macrocode}
\let\DTK@normalsize=\normalsize
\renewcommand\normalsize{%
  \DTK@normalsize
  \DTK@math
  \let\@listi=\@listI}
\normalsize
%    \end{macrocode}
%    \end{macro}
% 
%    \begin{macro}{\small}
%    This is a size changing command. We save the old
%    definition in \verb|\DTK@small| and redefine it. After the
%    old definition is used some sizes are changed to a smaller value.
%    \begin{macrocode}
\let\DTK@small=\small
\renewcommand\small{%
  \DTK@small
  \DTK@math
  \let\@listi=\@listI}
%    \end{macrocode}
%    \end{macro}
% 
%    \begin{macro}{\footnotesize}
%    This is a size changing command. We save the old
%    definition in the macro \verb|\DTK@footnotesize| and redefine
%    it. After the old definition is used some sizes are changed to a
%    smaller value. 
%    \begin{macrocode}
\let\DTK@footnotesize=\footnotesize
\renewcommand\footnotesize{%
  \DTK@footnotesize
  \DTK@math
  \let\@listi=\@listI}
%    \end{macrocode}
%    \end{macro}
% 
%
%    \subsection{List Making Environments}
%
%    The list making environments \verb|description|, \verb|itemize|,
%    and \verb|enumerate| are adapted to use less vertical space. This
%    is mainly done by resetting \verb|\parsep|, \verb|\itemsep|, and
%    \verb|\topsep|. 
%
%    The environments \verb|itemize| and \verb|enumerate| use the
%    macros \verb|@listi|, \verb|@listii|, etc. Thus it is sufficient
%    to redefine those macros.
%
%    \begin{macrocode}
\def\@listI{%
  \leftmargin = \leftmargini
  \parsep     = \parskip
  \topsep     = 0pt plus 2pt
  \itemsep    = 0pt plus 2pt}
%    \end{macrocode}
%
%    \begin{macrocode}
\let\@listi=\@listI
%    \end{macrocode}
%
%    \begin{macrocode}
\def\@listii{%
  \leftmargin = \leftmarginii
  \labelwidth = \leftmarginii
  \advance   \labelwidth by-\labelsep
  \parsep     = \parskip
  \topsep     = 0pt plus 2pt
  \itemsep    = 0pt plus 2pt}
%    \end{macrocode}
%
%    \begin{macrocode}
\def\@listiii{%
  \leftmargin = \leftmarginiii
  \labelwidth = \leftmarginiii
  \advance   \labelwidth by-\labelsep
  \partopsep  = 1pt plus 0pt minus 1pt
  \parsep     = \parskip
  \topsep     = 0pt plus 2pt
  \itemsep    = 0pt plus 2pt}
%    \end{macrocode}
%    We activate the defaults.
%    \begin{macrocode}
\@listi
%    \end{macrocode}
%
%    For some reason \verb|@listi| is redefined in \verb|small| and
%    \verb|\footnotesize|. Thus we have to take care to undo the
%    changes made there. For this purpose we save the old definitions
%    and restore the intended meaning of \verb|\@listi| after calling
%    the old macro.
%
%
%    \begin{macrocode}
\ifDTK@ancient@layout@\else
  \renewcommand\labelitemi{$\m@th\circ$}
  \renewcommand\labelitemii{$\m@th\triangleright$}
  \renewcommand\labelitemiii{$\m@th\diamond$}
  \setlength\leftmargini{1.5em}
  \setlength\leftmarginii{1.4em}
  \setlength\leftmarginiii{1.3em}
  \setlength\leftmarginiv{1.2em}
\fi
%    \end{macrocode}
%
%    \begin{environment}{description}
%    To get things smaller we completely redefine the description
%    environment. Nevertheless we make use of the old label formatting
%    macro.
%    \begin{macrocode}
\renewenvironment{description}{%
  \begin{list}{}{%
    \labelwidth = 0pt
    \itemindent = -\leftmargin
    \parsep     = \parskip
    \topsep     = 0pt plus 2pt
    \itemsep    = 0pt plus 2pt
    \let\makelabel=\descriptionlabel}%
  }{\end{list}}

\ifDTK@ancient@layout@\else
\renewcommand\descriptionlabel[1]{\hspace\labelsep
                                {\normalsize\it #1}}
\fi
%    \end{macrocode}
%    \end{environment}
%
%    \begin{environment}{quotation}
%    Since the whole journal does not use parindent we make the
%    quotation environment the same as the quote environment.
%    \begin{macrocode}
\ifDTK@ancient@layout@\else
\renewenvironment{quotation}{
  \list{}{\rightmargin\leftmargin}%
  \item\relax
}{\endlist}
\fi
%    \end{macrocode}
%    \end{environment}
%
%    \begin{environment}{roll}
%    We add a new type of list making environment. The \verb|roll|
%    does not indent per default but just typesets the argument of the
%    \verb|\item| macro in boldface. It has one optional argument
%    which can be used to specify the amount of indentation desired.
%    
%    \begin{macrocode}
\newenvironment{roll}%
  {\@ifnextchar[{\r@ll}{\r@ll[0pt]}}%
  {\end{list}}
%    \end{macrocode}
%
%    \begin{macrocode}
\def\r@ll[#1]{\begin{list}{}{%
    \labelwidth = #1
    \leftmargin = \labelwidth
    \itemsep    = .3ex
    \let\makelabel=\rolllabel}%
  }
%    \end{macrocode}
%    \end{environment}
%
%    Typeset the label of a \verb|roll| environment.
%    \begin{macrocode}
\newcommand\rolllabel[1]{\hspace\labelsep \textbf{#1}\hfill}
%    \end{macrocode}
%
%
%    \begin{environment}{example}
%    We provide an environment for typesetting example code.
%    It is typeset in a smaller font with an indentation left and right.
%    \begin{macrocode}
\newenvironment{example}{\begin{quote}\small}{\end{quote}}
%    \end{macrocode}
%    \end{environment}
%
%
%
%
%
%    \begin{macrocode}
\long\def\@caption#1[#2]#3{\par\addcontentsline{\csname
  ext@#1\endcsname}{#1}{\protect\numberline{\csname
  the#1\endcsname}{\ignorespaces #2}}\begingroup
    \@parboxrestore
    \small
    \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
  \endgroup}
%    \end{macrocode}
%
%
%    \subsection{Sectioning Commands}
%
%
%    The counter \verb|secnumdepth| determines which sectional units
%    are decorated with a number. Since we don't want sections and
%    everything below to be numbered we set this counter to 0.
%    \begin{macrocode}
\setcounter{secnumdepth}{0}
%    \end{macrocode}
%
%    All but the first article are separated by additional vertical
%    space from the preceding text. Thus we define a new boolean
%    variable to determine which article is the first one in a chapter.
%    \begin{macrocode}
\newif\ifFirstArticle
\FirstArticletrue
%    \end{macrocode}
%
%    \begin{macro}{\part}
%    This definition is used in the author version, where \verb|\part|
%    should not be used. An error message is issued instead.
%    \begin{macrocode}
\ifDTK@Author@
  \renewcommand\part{%
    \typeout{*** Parts can not be used in single articles.}}
\else
%    \end{macrocode}
%
%    A part is aligned to the next full page. A special page style is
%    used on a first page of a part. The macro \verb|\part| has one
%    ordinary argument which constitutes the main title of the part.
%    This argument can be preceeded by an optional argument---enclosed
%    in brackets. This first optional argument is used as the running
%    head. If it is missing the main title is used instead.
%
%    The main argument can be followed by another optional argument.
%    This second optional argument is the subtitle of the part.
%    If none is given then the empty default is used instead.
%    The second optional argument is an enhancement compared to the
%    original definition of parts in \LaTeX. 
%
%    \begin{macrocode}
  \renewcommand\part{%
    \clearpage
    \thispagestyle{part}%
    \FirstArticletrue
    \Advance@Label@Prefix
    \part@star*}
\fi
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\part@star}
%    This macro strips any additional stars (*). If the next character
%    is a \verb|[| then the part macro has an optional argument.
%    \begin{macrocode}
\def\part@star*{%
  \@ifnextchar*{\part@star}{%
    \@ifnextchar[{\part@optional}{\part@normal}}}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\part@optional}
%    This macro treats the case that the part macro has an optional
%    argument.  This optional argument is used in the running head and
%    the table of contents.
%    \begin{macrocode}
\def\part@optional[#1]#2{%
  \markboth{#1}{#1}%
  \addcontentsline{toc}{part}{#1}%
  \@ifnextchar[{\part@subtitle{#2}}{\part@nosubtitle{#2}}}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\part@normal}
%    This macro treats the case that the part has no optional
%    argument.  In this case the title itself is used in the head and
%    in the table of contents.
%    \begin{macrocode}
\def\part@normal#1{%
  \markboth{#1}{#1}%
  \addcontentsline{toc}{part}{#1}%
  \@ifnextchar[{\part@subtitle{#1}}{\part@nosubtitle{#1}}}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\part@subtitle}
%    This macro treats the case that the part has an optional
%    argument for a subtitle.
%    \begin{macrocode}
\def\part@subtitle#1[#2]{\TopArt{#1}{\\#2}\bigskip\par}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\part@nosubtitle}
%    This macro treats the case that the part has no optional
%    argument for a subtitle.
%    \begin{macrocode}
\def\part@nosubtitle#1{\TopArt{#1}{}\bigskip\par}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\TopArt}
%    This macro is used to generate the layout of the beginning of a
%    part. It takes two arguments. The first argument is the title of
%    the part and the second argument is its subtitle. If the subtitle
%    is not empty then it is started by \verb|\\|.
%    \begin{macrocode}
\ifDTK@ancient@layout@
\newcommand\TopArt[2]{%
  \begingroup
    \unitlength = 1pt
    \@tempcnta  = \textwidth
    \divide\@tempcnta by \unitlength
    \framebox(\@tempcnta,38){\parbox{.95\textwidth}{%
        \begin{center}{\large\bf #1}#2 \end{center}}}
  \endgroup}
\else
\newcommand\TopArtRule{2pt}
\newcommand\TopArt[2]{%
  \begin{minipage}{\textwidth}\parskip=0pt\parindent=0pt
    \null\vspace{18pt}\par\raggedright\large\sf
    {\huge\sf #1}\\[-.5ex]\rule{\textwidth}{\TopArtRule}%
    \vspace{2pt} #2
  \end{minipage}}
\fi
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\chapter}
%    In the author version of this class no chapters are allowed. They
%    are activated when the option \verb|full| is given to the
%    class/style. Otherwise an error message is printed.
%    \begin{macrocode}
\ifDTK@Author@
  \renewcommand\chapter{%
    \typeout{*** Chapters can not be used in single articles.}}
\else
%    \end{macrocode}
%    
%    The appearance of a chapter is the same as the appearance of a
%    section. Additionally a line is added to the table of contents
%    and the headline is set appropriately.
%    
%    Since we want to deal with optional arguments and star variants
%    things are becoming a little bit more complicated. I don't know
%    if it is worth the effort. Maybe nobody will ever use this
%    feature anyhow.
%    \begin{macrocode}
  \renewcommand\chapter{%
    \@ifnextchar*{\chapter@star}{%
      \@ifnextchar[{\chapter@optional}{\chapter@normal}}}
\fi
%    \end{macrocode}
%    Ignore any number of stars. Well this may be to harsh but I think
%    this is enough. 
%    \begin{macrocode}
\def\chapter@star*{\chapter}
%    \end{macrocode}
%    Provide a default for the optional argument.
%    \begin{macrocode}
\def\chapter@normal#1{\chapter@optional[#1]{#1}}
%    \end{macrocode}
%    Now do the whole job.
%    \begin{macrocode}
\def\chapter@optional[#1]{%
  \typeout{#1}%
  \Advance@Label@Prefix
  \addcontentsline{toc}{chapter}{#1}%
  \markboth{#1}{#1}%
  \FirstArticletrue
  \@startsection{chapter}{0}{\z@}{-1ex plus-1ex minus
    -.2ex}{.5ex plus.2ex}{\ChapterFont}*%
  }
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\section}
%    The section is redefined to use less vertical space than the
%    original definition. 
%    
%    \begin{macrocode}
\ifDTK@ancient@layout@
\renewcommand\section{\@startsection{section}{1}{\z@}{%
    -1ex plus-1ex minus-.2ex}{.5ex plus.2ex}{\SectionFont}}
\else
\renewcommand\section{\@startsection{section}{1}{\z@}{%
    -2ex plus-1ex minus-.2ex}{.5ex plus.2ex}{\SectionFont}}
\fi
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\subsection}
%    The subsection is redefined to use less vertical space than the
%    original definition. 
%    
%    \begin{macrocode}
\ifDTK@ancient@layout@
\renewcommand\subsection{\@startsection{subsection}{2}{\z@}{%
    -1ex plus-1ex minus-.2ex}{0.75ex plus.2ex}{\SubsectionFont}}
\else
\renewcommand\subsection{\@startsection{subsection}{2}{\z@}{%
    -2ex plus-1ex minus-.2ex}{0.75ex plus.2ex}{\SubsectionFont}}
\fi
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\subsubsection}
%    The subsubsection is redefined to use less vertical space than
%    the original definition. 
%    
%    \begin{macrocode}
\ifDTK@ancient@layout@
\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}{%
    -1ex plus-1ex minus-.2ex}{0.75ex plus.2ex}{\SubsubsectionFont}}
\else
\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}{%
    -2ex plus-1ex minus-.2ex}{0.75ex plus.2ex}{\SubsubsectionFont}}
\fi
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\paragraph}
%    The paragraph is redefined to use less vertical space than the
%    original definition. 
%    
%    \begin{macrocode}
\ifDTK@ancient@layout@
\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}{%
    1ex plus1ex minus.2ex}{-.5ex}{\SubsubsectionFont}}
\else
\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}{%
    0ex plus1ex minus.2ex}{-.5ex}{\SubsubsectionFont}}
\fi
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\subparagraph}
%    The subparagraph is redefined to use less vertical space than the
%    original definition. 
%    
%    \begin{macrocode}
\ifDTK@ancient@layout@
\renewcommand\subparagraph{\@startsection{subparagraph}{4}%
  {\parindent}{1ex plus1ex minus.2ex}{-.5ex}{\SubsubsectionFont}}
\else
\renewcommand\subparagraph{\@startsection{subparagraph}{4}%
  {\parindent}{0ex plus1ex minus.2ex}{-.5ex}{\SubsubsectionFont}}
\fi
%    \end{macrocode}
%    \end{macro}
%
%
%    \subsection{The Article Layout}
%
%
%    \begin{macro}{\maketitle}
%    The title of an article is typeset together with the author
%    information.  If it is the first article in this chapter then
%    additional vertical space is added.
%
%    The title is added to the table of contents and the headline is
%    adjusted appropriately.
%
%    The macro \verb|\NewpageThreshold| is used to determine how much
%    space is needed aon a page to start a new article. If less space
%    is left then the next article is started on the next page.
%
%    Now we can start to typeset the head of an article and perform
%    all tasks required in this situation.
%
%    \begin{macrocode}
\renewcommand\maketitle{%
%    \end{macrocode}
%
%    If we are not in a complete journal then we use a different page style
%    for the first page. Thus it is possible to use this class to typeset
%    preprints and get a better layout of the first page.
%    \begin{macrocode}
  \ifDTK@Author@ \thispagestyle{part}\fi
%    \end{macrocode}
%
%    Now we have to ensure that there is enough space left on this page to
%    start a new article. If there isn't enough space we start the article on
%    the next page.
%    \begin{macrocode}
  \ifDTK@ancient@layout@\else\vspace{12pt}\fi
  \begingroup
    \dimen0=\vsize
    \advance\dimen0 by -\pagetotal
    \ifdim\dimen0<\NewpageThreshold
      \newpage
      \global\FirstArticletrue
    \fi
  \endgroup
%    \end{macrocode}
%
%    The namespace for labels has to be switched. This is done by
%    calling the macro \verb|\Advance@Label@Prefix|.
%    \begin{macrocode}
  \Advance@Label@Prefix
%    \end{macrocode}
%
%    We encapsulate the title and author information in a minipage to avoid a
%    pagebreak in beween (maybe not necessary). Then we draw a line to
%    separate the article from the previous one. The line is required if the
%    boolean variable \verb|FirstArticle| is true. This variable is set
%    afterwards. 
%    \begin{macrocode}
  \begingroup
    \begin{minipage}{\textwidth}
      \ifFirstArticle
        \global\FirstArticlefalse
        \vskip 3pt
      \else
        \ifDTK@ancient@layout@
          \rule{\textwidth}{.4pt}%
          \vskip 14pt plus 8pt minus 12pt%
        \else
          \vspace{32pt plus 8pt minus 16pt}%
        \fi
      \fi
%    \end{macrocode}
%
%
%    \begin{macrocode}
      \setcounter{footnote}0
%    \end{macrocode}
%
%    Now we insert the title and the author. The title is also put into the
%    table of contents. The running head is adjusted.
%    \begin{macrocode}
      \@flushglue=0pt plus .3\textwidth\relax
      \raggedright
      \TitleFont
      \spaceskip=\fontdimen2\font\relax
      \xspaceskip=\fontdimen7\font\relax
      \@title
      \ifx\@author\@empty\else
        \bigskip\par
        \AuthorFont\@author
      \fi
    \end{minipage}%
    \@thanks
    \let\thanks\@gobble
    \addcontentsline{toc}{chapter}{\@title}%
    \markboth{\@title}{\@title}%
  \endgroup
%    \end{macrocode}
%
%    Finally we rest certain values and insert some space to the beginning of
%    the article.
%    \begin{macrocode}
  \let\@title=\@empty
  \let\@author=\@empty
  \let\@thanks=\@empty
  \setcounter{figure}0
  \setcounter{table}0
  \setcounter{equation}0
%  \setcounter{footnote}0
  \medskip\par}
%    \end{macrocode}
%    \end{macro}
%
%    Several authors are separated by \verb|\and|. Here is a first
%    approximation to deal with this case.
%
%    \begin{macrocode}
\renewcommand\and{, }
%    \end{macrocode}
%
%    We provide default values for the author, the title and the
%    footnote of the title. All of them are empty.
%    \begin{macrocode}
\let\@title=\@empty
\let\@author=\@empty
\let\@thanks=\@empty
%    \end{macrocode}
%
%    \begin{environment}{abstract}
%    The abstract is typeset in a smaller font indented left and right.
%    The use of the quote environment ensures that the abstract can be
%    broken at the end of the line.
%
%    \begin{macrocode}
\newenvironment{abstract}{%
  \begin{quote}\small 
    }{%
  \end{quote}\medskip\par}
%    \end{macrocode}
%    \end{environment}
%
%
%    \subsection{Numbering}
%    
%    The numbering is done on a global basis. No chapter numbers are
%    prepended. Especially since none are used at all. This is just
%    like in the article class.
%
%    \begin{macrocode}
\renewcommand\thefigure{\arabic{figure}}
\renewcommand\thetable{\arabic{table}}
\renewcommand\theequation{\arabic{equation}}
%    \end{macrocode}
%
%
%    \subsection{Labels}
%    
%    Labels have to be used on an per article basis for this purpose
%    we use a macro to hold the prefix for the labels. This prefix is
%    prepended whenever something is done with the labels.
%
%    The prefix is constructed from a numeric counter. This counter is
%    allocated and initialized. Maybe I could live without this
%    counter but this way the labels look nicer (if you ever see them).
%    \begin{macrocode}
\newcount\DTL@label
\DTL@label=0
%    \end{macrocode}
%
%    \begin{macro}{\Advance@Label@Prefix}
%    This macro is expanded whenever a new module is entered. It has
%    to take care that a new and unique prefix string for the labels
%    is generated and stored in the macro \verb|\Label@Prefix|.
%    \begin{macrocode}
\newcommand\Advance@Label@Prefix{%
  \advance\DTL@label 1
  \xdef\Label@Prefix{module \the\DTL@label:}}
%    \end{macrocode}
%    \end{macro}
%
%    The label prefix has to be initalized. The easiest way to perform
%    this task is touse the macro defined above.
%    \begin{macrocode}
\Advance@Label@Prefix
%    \end{macrocode}
%
%    Sometimes it is desirable to use labels in the old
%    sense. I.e. without the module system. For this purpose we keep
%    the old definitions of the macros \verb|\ref|, \verb|\label|, and
%    \verb|\pageref| under the new names \verb|\Ref|, \verb|\Label|, and
%    \verb|\Pageref| respectivly.
%    \begin{macrocode}
\let\Ref=\ref
\let\Label=\label
\let\Pageref=\pageref
%    \end{macrocode}
% 
%    \begin{macro}{\ref}
%    The module prefix is prepended before the original \verb|\ref|
%    macros is used.
%    \begin{macrocode}
\renewcommand\ref[1]{\Ref{\Label@Prefix:#1}}
%    \end{macrocode}
%    \end{macro}
% 
%    \begin{macro}{\label}
%    The module prefix is prepended before the original \verb|\label|
%    macros is used.
%    \begin{macrocode}
\renewcommand\label[1]{\Label{\Label@Prefix:#1}}
%    \end{macrocode}
%    \end{macro}
% 
%    \begin{macro}{\pageref}
%    The module prefix is prepended before the original \verb|\pageref|
%    macros is used.
%    \begin{macrocode}
\renewcommand\pageref[1]{\Pageref{\Label@Prefix:#1}}
%    \end{macrocode}
%    \end{macro}
%
%
%    \subsection{Bibliography}
%
%    \begin{macro}{\thebibliography}
%    Instead of using a \verb|\chapter*| to start a bibliography we
%    use a \verb|\section*|. Thus the bibliography should not appear
%    in the table of contents.
%    \begin{macrocode}
\renewcommand\thebibliography[1]{%
  \section*{\refname}%
  \list{[\arabic{enumi}]}{%
    \settowidth\labelwidth{[#1]}%
    \leftmargin\labelwidth
    \advance\leftmargin\labelsep
    \usecounter{enumi}}
  \def\newblock{\hskip .11em plus .33em minus .07em}
  \sloppy\clubpenalty4000\widowpenalty4000
  \sfcode`\.=1000\relax}
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\DTK@bibliography}
%    This macro is used to overwrite the macro \verb|\bibliography|
%    when the complete journal is typeset.
%    \begin{macrocode}
\newcommand\DTK@bibliography[1]{
  \InputIfFileExists{#1.bbl}{}{\typeout{--- File #1.bbl not found.}}}
%    \end{macrocode}
%    \end{macro}
% 
%    \subsection{Footnotes}
%
%    This is just my personal taste. I have incorporated my
%    fnblock.sty. This style option arranges things in a way that
%    footnotes do not go beneath the footnotemarks. In addition they
%    can be indented at the right side.
%
%    Both indentation at both sides can be  configured with the
%    following two macros:
%    \begin{macrocode}
\newcommand\DTK@fnrightmargin{0em}
\newcommand\DTK@fnleftmargin{1em}
%    \end{macrocode}
%
%    And now we make the footnote to behave as desired.
%    \begin{macrocode}
\ifDTK@ancient@layout@\else
\long\def\@makefntext#1{%
  \begin{list}{}{%
      \rightmargin=0pt%
      \parsep=0.333\baselineskip plus 2pt
      \leftmargin=\DTK@fnleftmargin}
  \item\mbox{}\llap{$^{\@thefnmark}$\kern1pt}#1
  \end{list}}

\renewcommand\footnoterule{%
  \kern-3\p@
  \hrule\@width0.333\columnwidth
  \kern2.6\p@}
\fi
%    \end{macrocode}
%
%
%    \subsection{Defining Page Styles}
%
%    \subsubsection{The Page Style plain}
%
%    The page style plain provides a head line and a foot line.  The
%    page number is printed in the outer corner of the head line.  The
%    inner part of the head line contains the title of the current
%    article. 
%
%    The foot line contains the name and number of the current journal
%    flushed towards the inner border of the page.
%
%    The head line and the footline are separated by a bar from the
%    main body of text.
%
%    \begin{macrocode}
\renewcommand\ps@plain{%
  \let\@mkboth=\@gobbletwo
  \let\chaptermark=\@gobble
  \let\sectionmark=\@gobble
  \let\subsectionmark=\@gobble
  \def\@oddhead{\vbox{\hbox to \textwidth{%
        \let\\=\relax
        \HeadFont \rightmark \hfil\PagenoFont\thepage}\kern 3pt
      \ifdim\HeadRuleDepth>0pt \hrule depth\HeadRuleDepth\fi}}%
  \def\@evenhead{\vbox{\hbox to \textwidth{%
        \let\\=\relax
        \PagenoFont \thepage\hfil\HeadFont \leftmark}\kern 3pt
      \ifdim\HeadRuleDepth>0pt \hrule depth\HeadRuleDepth\fi}}%
  \def\@oddfoot{\vbox{%
      \ifdim\FootRuleDepth>0pt \hrule depth\FootRuleDepth \fi
      \kern 5pt \hbox to \textwidth{\FootFont \footmark\hfil\null}}}%
  \def\@evenfoot{\vbox{%
      \ifdim\FootRuleDepth>0pt \hrule depth\FootRuleDepth \fi
      \kern 5pt \hbox to \textwidth{\null\hfil\FootFont \footmark}}}}
%    \end{macrocode}
% 
%    \subsubsection{The Page Style part}
% 
%    The page style \verb|part| contains the same foot as the page style
%    \verb|plain|. The head line is empty.
% 
%    This style is used when a new part is started. It can be
%    configured by redefining the macros \verb|FootRuleDepth|,
%    \verb|\FootFont|, and \verb|\PagenoFont|.
% 
%    \begin{macrocode}
\newcommand\ps@part{%
  \let\@mkboth=\@gobbletwo
  \let\chaptermark=\@gobble
  \let\sectionmark=\@gobble
  \let\subsectionmark=\@gobble
  \let\@oddhead=\@empty
  \let\@evenhead=\@empty
  \def\@oddfoot{\vbox{%
      \ifdim\FootRuleDepth>0pt \hrule depth\FootRuleDepth \fi
      \kern 5pt \hbox to \textwidth{\FootFont \footmark\hfil\null}}}%
  \def\@evenfoot{\vbox{%
      \ifdim\FootRuleDepth>0pt \hrule depth\FootRuleDepth \fi
      \kern 5pt \hbox to \textwidth{\null\hfil\FootFont \footmark}}}}
%    \end{macrocode}
% 
%    The default page style is plain. This has been set by the book
%    style before. If we want our changes to take effect we have to
%    reinitialize the page style.
% 
%    \begin{macrocode}
\pagestyle{plain}
%    \end{macrocode}
%
%
%
%    \subsection{The Layout of the Titlepage}
%
%    \begin{macro}{\DieTeXnischeKomoedie}
%    This macro produces the title page. It has three arguments. The
%    first argument is the number of the volume. This value is also
%    stored in the macro \verb|\volume| for later use. The second
%    argument is the number of the year and the third argument is the
%    date when this volume is released. The date is given as month and
%    year. 
%
%    The appearance of the cover page is determined by the macro
%    \verb|\CoverArt|. This can be redefined to get a different cover
%    page.
%    \begin{macrocode}
\ifDTK@Author@\else
  \newcommand\DieTeXnischeKomoedie[3]{%
    \thispagestyle{empty}%
    \gdef\volume{#1}%
    \gdef\DTKedition{#2}%
    \gdef\DTKdate{#3}%
    \global\let\bibliography=\DTK@bibliography
    \global\let\bibliographystyle=\@gobble
    \CoverArt{#1}{#2}{#3}%
    \newpage}
\fi
%    \end{macrocode}
%    \end{macro}
%
%    \begin{macro}{\CoverArt}
%
%    This macro implements the layout of the cover page of
%    DTK. It can be redefined to get a different layout.
%
%    \begin{macrocode}
\ifDTK@ancient@layout@
\newcommand\CoverArt[3]{
  \ifx\CoverTitleFont\@undefined
    \newfont\CoverTitleFont{cmr17 scaled \magstep 5}%
  \fi
  \begin{center}
    {\LARGE DANTE\\[14pt]
     \Large Deutschsprachige Anwendervereinigung \TeX\ \eV}%
    \\\rule{\textwidth}{2pt}\par\vfill
    \CoverTitleFont    Die
    \\[22pt]       \TeX nische
    \\[22pt]       Kom{\"o}die
    \par\vfill\rule{\textwidth}{2pt}\\[4pt]\large
    Heft #1\hfill #2.\ Jahrgang\hfill #3
    \normalsize
  \end{center}\vspace*{28.5pt}}
%    \end{macrocode}
% 
% 
%    \begin{macrocode}
\else
%    \end{macrocode}
% 
%    This macro determines the thickness of the horizontal rule
%    separating the publisher from the edition information.
%    \begin{macrocode}
\newcommand\CoverArt@linewidth{0pt}%{1.2pt}
%    \end{macrocode}
% 
%    \begin{macrocode}
\newcommand\CoverArt@barwidth{2.41pt}
%    \end{macrocode}
% 
%    \begin{macrocode}
\newcommand\CoverArt@font{\Large\raggedleft}
%    \end{macrocode}
% 
%    \begin{macrocode}
\newcommand\CoverArt@small{\footnotesize}
%    \end{macrocode}
% 
%    \begin{macrocode}
\newcommand\CoverArt@gap{2em}
%    \end{macrocode}
% 
%    \begin{macrocode}
\newcommand\CoverArt[3]{%
  \ifx\CoverTitleFont\@undefined
  \newfont\CoverTitleFont{cmr17 scaled \magstep 5}
  \fi
  \ifx\CoverNumberFont\@undefined
  \newfont\CoverNumberFont{cmr17 scaled 3583}
  \fi
  \vspace*{-34pt}\hfill
  \setbox\@tempboxa=\hbox to \textheight{\null\hfill\CoverTitleFont
    Die \TeX nische Kom\"odie\hfill\null}%
  \@tempdimb=\ht\@tempboxa
  \advance\@tempdimb by\dp\@tempboxa
  \hbox to\@tempdimb{%
    \vbox to\wd\@tempboxa{%
      \vskip\wd\@tempboxa
      \special{ps:gsave currentpoint currentpoint translate
        270 rotate neg exch neg exch translate}%
      \box\@tempboxa\vss}\hss}%
  \special{ps:currentpoint grestore moveto} \
  \rule{\CoverArt@barwidth}{\textheight}
  \begin{minipage}[b]{.7\textwidth}\raggedright
    \rule{1em}{0pt}%
    \dimen2=\textwidth\advance\dimen2-1em
    \parbox{\dimen2}{\CoverArt@font
      DANTE\\
      Deutschsprachige\\
      Anwendervereinigung
      \TeX\ \eV}\\[1ex]
    \dimen3=\textwidth\advance\dimen3-\CoverArt@gap
    \hfill\rule{\dimen3}{\CoverArt@linewidth}%
    \\[-\baselineskip]\null\hspace{1em}%
    {\CoverArt@small #2. Jahrgang\quad Heft #1\quad #3}%
    \\[-\baselineskip]\rule{0pt}{.617647\textheight}%
    \CoverNumberFont    
    \null\hfill
    \makebox(0,0)[br]{%
      \special{ps:gsave \CoverArt@gray}%
      \CoverArt@strip@no #1;\hspace{1pt}%
      \special{ps:grestore}}%
%    \makebox(0,0)[br]{\CoverTitleFontII%
%      \CoverArt@strip@no #1;\hspace{1pt}}%
  \end{minipage}%
}

\newcommand\CoverArt@gray{.95 setgray}

\def\CoverArt@strip@no#1/#2#3#4#5;{#1\raisebox{0.35ex}{\CoverTitleFont/}#4#5}
\fi
%    \end{macrocode}
%    \end{macro}
%
%
%    \subsection{List of Addresses}
%
%    Addresses can be given anywhere throughout the whole
%    document. The address together with the page where it has been
%    given is stored in the index.
% 
%    The list of addresses is handled by the index mechanism of
%    \LaTeX.  I (safely) assume that nobody has the desire to make an
%    index for a journal.
%
%    \begin{macro}{\address}
%    The address macro takes three arguments. The first argument is the
%    first name the second is the last name and the third is the
%    address where several lines can be included which are separated
%    by \verb|\\|. 
%
%    The macro can be e.g. as follows:\\
%    \verb|\address{Gerd}{Neugebauer}%|\\
%    \verb|        {"Odenburger Str. 16\\64295 Darmstadt}|
%
%
%    The address is given to \verb|\index| to be stored in the .idx
%    file. This file is sorted and reformatted to produce the sorted
%    list of addresses.
%
%    The problem was to get the correct (German) ordering. For this
%    purpose the \TeX{} macros which  are (normally) part of a name
%    have to be expanded properly. Unfortunately plain expansion may
%    leave braces which confuse makeindex. To get rid of these braces
%    we have to scan the tokens and transfer those tokens that are not
%    braces. 
%
%    We use one big assumption. We assume that a name does not contain
%    a dollar sign. Well, it is rather unusual that mathematics is
%    part of a name.
%
%    The better solution would be a future version of makeindex which
%    is able to cope with those problems (wait and pray:-)
%    \begin{macrocode}
\newcommand\address[3]{%
  \begingroup
    \def\"##1{\@ifundefined{detex@@##1}{##1}%
      {\csname detex@@##1\endcsname}}%
    \let"=\"%
    \def\ss{ss}%
    \let\'=\relax
    \let\`=\relax
    \let\^=\relax
    \let\.=\relax
    \let\==\relax
    \let\d=\relax
    \let\b=\relax
    \let\c=\relax
    \let\v=\relax
    \let\H=\relax
    \let\t=\relax
    \let\u=\relax
    \let\~=\relax
    \def\o{o}%
    \def\O{O}%
    \def\aa{aa}%
    \def\AA{Aa}%
    \def\l{l}%
    \def\L{L}%
    \def\ae{ae}%
    \def\AE{Ae}%
    \def\oe{oe}%
    \def\OE{Oe}%
    \def\TeX{TeX}%
    \def\LaTeX{LaTeX}%
    \def\LaTeXe{LaTeX2e}%
    \let\null=\relax
    \xdef\@ddress{#2, #1}%
  \endgroup
  \begingroup
    \def\\{\string\\}%
    \def\"{\string"}%
    \def"{\string"}%
    \def\null{}%
    \expandafter\@strip\@ddress$%$
    \index{\STRIP@*#1 #2!#3}%
  \endgroup
}
%    \end{macrocode}
%    \end{macro}
%    For the removing of \TeX\ macros in addresses we need some
%    definitions to perform the mapping.
%    \begin{macrocode}
\let\strip@grp={
\let\strip@end=$%$
\def\@strip{\def\STRIP@{}\strip@I}
\def\strip@I{\let\strip@next=\strip@I
  \futurelet\strip@CHAR\strip@II}
\def\strip@II#1{%
  \ifx\strip@CHAR\strip@end
    \let\strip@next=\relax
  \else\ifx\strip@CHAR\strip@grp
    \strip@I #1$%$
    \let\strip@next=\strip@I
  \else\ifcat\strip@CHAR A
    \xdef\STRIP@{\STRIP@#1}%
  \else\ifcat\strip@CHAR.
    \xdef\STRIP@{\STRIP@#1}%
  \else\ifcat\strip@CHAR\space
    \xdef\STRIP@{\STRIP@ #1}%
  \fi\fi\fi\fi\fi
  \strip@next}
%    \end{macrocode}
%
%    \begin{macrocode}
\def\detex@@a{ae}
\def\detex@@o{oe}
\def\detex@@u{ue}
\def\detex@@A{Ae}
\def\detex@@O{Oe}
\def\detex@@U{Ue}
\def\detex@@s{ss}
%    \end{macrocode}
% 
%    \begin{environment}{theaddresses}
%    The addresses are collected in an environment Addresses. This
%    environment is used to customize the layout of this list.
%    \begin{macrocode}
\ifDTK@Author@\else
\newenvironment{theaddresses}{%
  \chapter{\addressname}\Label{addresses}
  \begingroup
  \def\addressitem##1##2##3{\par{\bf ##1}\hfill[\ignorespaces ##3]%
    \\ ##2}
  \begin{multicols}{2}%
    }{%
  \end{multicols}%
  \endgroup
  }
\fi
%    \end{macrocode}
%    \end{environment}
% 
%    \begin{macro}{\listofaddresses}
%    This macro reads the index file which is assumed to contain the
%    properly formatted list of authors. If this file does not exist
%    then a warning is printed. 
%
%    \begin{macrocode}
\ifDTK@Author@
  \newcommand\listofaddresses{%
    \typeout{*** listofaddresses not supported in articles.}}
\else
  \newcommand\listofaddresses{%
    \InputIfFileExists{\jobname.ind}{}{%
      \typeout{No file \jobname.ind.}%
      \typeout{Use the following command to create it:\space\space
        makeindex -s dtk.ist \jobname}%
      \typeout{\space}}%
  }
\fi
%    \end{macrocode}
%    \end{macro}
% 
%
%    \subsection{The Table of Contents}
%
%    \begin{macro}{\tableofcontents}
%    The table of contents should appear as a page of it's own. It
%    should have an appropriate headline if it is long
%    enough. Otherwise the first page has no headline and no page
%    number. 
%    
%    \begin{macrocode}
\ifDTK@Author@
  \renewcommand\tableofcontents{%
    \typeout{*** tabelofcontents not supported in articles.}}
\else
  \renewcommand\tableofcontents{%
    \clearpage
    \thispagestyle{empty}%
    \markboth{\contentsname}{\contentsname}%
    \ContentsArt
    \begingroup
      \parskip=\ContentsParSkip
      \let\\=\relax
      \@starttoc{toc}
    \endgroup
  }
  \ifDTK@ancient@layout@
  \newcommand\ContentsArt{\part@nosubtitle{\contentsname}}
  \else
  \newcommand\ContentsArt{%
    \vspace*{-\headheight}\vspace*{-\headsep}\vspace*{-2pt}
    \begin{minipage}{\textwidth}
        \Huge Die \TeX nische Kom\"odie\\[2pt]%
        \rule{\textwidth}{2pt}\\[2pt]%
        \null\hfill
        \CoverArt@small \DTKedition. Jahrgang\quad Heft \volume\quad\DTKdate
    \end{minipage}\vspace{16pt minus 8pt}\par
    }
  \fi
\fi
%    \end{macrocode}
%    \end{macro}
%
%    The lines contained in the table of contents are determined by
%    the counter \verb|tocdepth|. The counter defines a level above
%    which the lines are suppressed in the table of contents.
%
%    We are only interested in chapters and parts. Chapters have level
%    0 and parts have level -1. Thus we set \verb|tocdepth| to 0.
%    \begin{macrocode}
\setcounter{tocdepth}{0}
%    \end{macrocode}
%    The layout of the lines in the table of contents is determined by
%    the macros \verb|\l@|{\em type}. Some of them are redefined next.
%
%    \begin{macro}{\l@part}
%    This macro determines the layout of the line in the table of
%    contents for parts. It simply imitates the layout of chapters
%    without additional space.
%    
%    \begin{macrocode}
\renewcommand\l@part[2]{%
  \addpenalty{-\@highpenalty}%
  \addvspace{0.5em plus 0pt}% space above part line
  \@tempdima 1.5em
  \begingroup
    \parindent \z@ \rightskip \@pnumwidth
    \parfillskip -\@pnumwidth
    \bf
    \leavevmode
    \advance\leftskip\@tempdima
    \hskip -\leftskip
    #1\nobreak\hfil \nobreak\hbox to\@pnumwidth{\hss #2}\par
    \penalty\@highpenalty
  \endgroup}
%    \end{macrocode}
%    \end{macro}
% 
%    \begin{macro}{\l@chapter}
%    This macro determines the layout of the line in the table of
%    contents for chapters. It simply imitates the layout of
%    sections. 
%    
%    \begin{macrocode}
\renewcommand\l@chapter{\@dottedtocline{0}{1.5em}{2.3em}}
%    \end{macrocode}
%    \end{macro}
%
%
%    That's all.
%
%    \PrintChanges
%
%    \PrintIndex
%
%    \Finale
%
\endinput
%
% Local Variables: 
% mode: latex
% TeX-master: t
% End: 

